/* ============================================================
 * 997idc default 主题覆盖 —— 盒子云（DivCloud）风格改版
 * 规范：主蓝 #0056FF · 浅灰内容区 #F5F6F7 · 白底侧边栏/顶栏
 *       扁平细边框 #E5E6EB · 小圆角 · 无重阴影
 * 本文件在 app.min.css 之后加载，同特异性规则以此为准
 * ============================================================ */

/* ---------- 设计变量 ---------- */
:root {
  --dc-primary: #0056ff;
  --dc-primary-hover: #0049db;
  --dc-primary-active: #003db8;
  --dc-bg: #f5f6f7;
  --dc-border: #e5e6eb;
  --dc-text: #1d2129;
  --dc-text2: #4e5969;
  --dc-text3: #86909c;
  --dc-fill: #f2f3f5;
  --dc-blue-bg: #f0f5ff;
}

/* ---------- 全局 ---------- */
body {
  color: var(--dc-text2);
}
body,
.main-content,
.page-content {
  background: var(--dc-bg) !important;
}
a { color: var(--dc-primary); }
a:hover { color: var(--dc-primary-hover); }
a.text-primary,
.text-primary { color: var(--dc-primary) !important; }

/* ---------- 顶栏 ---------- */
#page-topbar {
  background: #fff;
  box-shadow: none;
  border-bottom: 1px solid var(--dc-border);
}
/* 顶栏 logo 尺寸约束（logo 图为原始大图，必须显式限高，否则撑爆全屏） */
.navbar-brand-box {
  padding: 0;
  background: #fff !important;
}
.logo-lg img,
.logo-sm img {
  height: 42px;
  width: auto;
  max-width: none;
}
.navbar-header .btn.header-item {
  color: var(--dc-text2);
}
.navbar-header .btn.header-item:hover {
  color: var(--dc-primary);
  background: var(--dc-fill);
}
/* 顶栏用户名按钮 */
.navbar-header .btn.header-item.w,
.navbar-header .btn.header-item[class*="d-inline-flex"] {
  color: var(--dc-text);
}

/* ---------- 侧边栏白底（覆盖 data-sidebar=dark 深色样式）---------- */
body[data-sidebar="dark"] .vertical-menu,
body[data-sidebar="dark"] .vertical-menu div[data-simplebar],
body[data-sidebar="dark"] #sidebar-menu,
body[data-sidebar="dark"] #sidebar-menu .metismenu,
body[data-sidebar="dark"] #sidebar-menu ul.nav-second-level,
body[data-sidebar="dark"] #sidebar-menu ul.nav-third-level {
  background: #fff !important;
}
body[data-sidebar="dark"] .vertical-menu {
  border-right: 1px solid var(--dc-border);
}
body[data-sidebar="dark"] #sidebar-menu .metismenu a {
  color: var(--dc-text2) !important;
  font-size: 14px;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu a i {
  color: var(--dc-text3) !important;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu a:hover {
  color: var(--dc-primary) !important;
  background: var(--dc-blue-bg) !important;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu a:hover i {
  color: var(--dc-primary) !important;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu li.mm-active > a,
body[data-sidebar="dark"] #sidebar-menu .metismenu a.active,
body[data-sidebar="dark"] #sidebar-menu .metismenu li.mm-active > a:hover {
  color: var(--dc-primary) !important;
  background: var(--dc-blue-bg) !important;
  font-weight: 600;
  position: relative;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu li.mm-active > a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20%;
  height: 60%;
  width: 3px;
  border-radius: 0 2px 2px 0;
  background: var(--dc-primary);
}
body[data-sidebar="dark"] #sidebar-menu .metismenu li.mm-active > a i,
body[data-sidebar="dark"] #sidebar-menu .metismenu a.active i {
  color: var(--dc-primary) !important;
}
/* 二级/三级子菜单项 */
body[data-sidebar="dark"] #sidebar-menu .metismenu ul.nav-second-level a,
body[data-sidebar="dark"] #sidebar-menu .metismenu ul.nav-third-level a {
  color: var(--dc-text2) !important;
  background: #fff !important;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu ul.nav-second-level a:hover,
body[data-sidebar="dark"] #sidebar-menu .metismenu ul.nav-second-level li.mm-active > a {
  color: var(--dc-primary) !important;
  background: var(--dc-blue-bg) !important;
}
/* 箭头图标 */
body[data-sidebar="dark"] #sidebar-menu .metismenu a.has-arrow:after {
  border-color: var(--dc-text3) !important;
}
body[data-sidebar="dark"] #sidebar-menu .metismenu li.mm-active > a.has-arrow[aria-expanded="true"]:after,
body[data-sidebar="dark"] #sidebar-menu .metismenu a.has-arrow[aria-expanded="true"]:after {
  border-color: var(--dc-primary) !important;
}

/* ---------- 卡片 ---------- */
.card {
  border: 1px solid var(--dc-border);
  border-radius: 4px;
  box-shadow: none;
}
.card-header {
  background: #fff;
  border-bottom: 1px solid var(--dc-border);
}
.card-title { color: var(--dc-text); }

/* ---------- 按钮 ---------- */
.btn {
  border-radius: 2px;
  font-weight: 500;
}
.btn-primary,
.btn-custom {
  background-color: var(--dc-primary) !important;
  border-color: var(--dc-primary) !important;
  color: #fff !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:not(:disabled):not(.disabled):active,
.btn-custom:hover,
.btn-custom:focus {
  background-color: var(--dc-primary-hover) !important;
  border-color: var(--dc-primary-hover) !important;
}
.btn-primary.disabled,
.btn-primary:disabled {
  background-color: #8ab0ff !important;
  border-color: #8ab0ff !important;
}
.btn-light {
  background: var(--dc-fill);
  border-color: var(--dc-border);
  color: var(--dc-text2);
}
.btn-outline-primary {
  color: var(--dc-primary) !important;
  border-color: var(--dc-primary) !important;
  background: #fff !important;
}
.btn-outline-primary:hover {
  background: var(--dc-primary) !important;
  color: #fff !important;
}
.btn-secondary {
  background-color: #fff;
  border-color: var(--dc-border);
  color: var(--dc-text2);
}

/* ---------- 表单 ---------- */
.form-control {
  border: 1px solid var(--dc-border);
  border-radius: 2px;
  color: var(--dc-text);
}
.form-control:focus {
  border-color: var(--dc-primary);
  box-shadow: 0 0 0 3px rgba(0, 86, 255, 0.08);
}
.form-control::placeholder { color: var(--dc-text3); }
select.form-control { background-color: #fff; }
.input-group-append .btn { border-radius: 0 2px 2px 0; }

/* ---------- 表格 ---------- */
.table thead th {
  background: #f7f8fa;
  color: var(--dc-text3);
  font-weight: 600;
  border-bottom: 1px solid var(--dc-border);
}
.table td, .table th { vertical-align: middle; }
.table-bordered { border-color: var(--dc-border); }
.table-bordered td, .table-bordered th { border-color: var(--dc-border); }

/* ---------- 分页 ---------- */
.pagination .page-link {
  border-color: var(--dc-border);
  color: var(--dc-text2);
  border-radius: 2px;
  margin: 0 3px;
}
.pagination .page-item.active .page-link {
  background: var(--dc-primary);
  border-color: var(--dc-primary);
  color: #fff;
}
.pagination .page-link:hover {
  color: var(--dc-primary);
  background: var(--dc-blue-bg);
}

/* ---------- 下拉菜单 ---------- */
.dropdown-menu {
  border: 1px solid var(--dc-border);
  border-radius: 4px;
  box-shadow: 0 6px 16px rgba(29, 33, 41, 0.08);
  padding: 6px;
}
.dropdown-item { border-radius: 2px; color: var(--dc-text2); }
.dropdown-item:hover { background: var(--dc-blue-bg); color: var(--dc-primary); }

/* ---------- 徽标 / 提示 ---------- */
.badge-primary { background: var(--dc-primary) !important; }
.badge-soft-primary { color: var(--dc-primary) !important; background: var(--dc-blue-bg) !important; }
.alert-info {
  background: var(--dc-blue-bg);
  border-color: #c3d7ff;
  color: var(--dc-primary);
}
.nav-tabs-custom .nav-item .nav-link.active {
  color: var(--dc-primary) !important;
}
.nav-tabs-custom .nav-item .nav-link.active:after {
  border-color: var(--dc-primary) var(--dc-primary) transparent !important;
}

/* ============================================================
 * 登录 / 注册页 —— 左品牌区 + 右悬浮登录卡片（参考栖云网络布局）
 * ============================================================ */

/* ---------- 分栏：>=992 左品牌 56% + 右表单；<992 单列 ---------- */
@media (min-width: 992px) {
  .container-fluid.p-0 > .row.no-gutters {
    display: flex !important;
    flex-wrap: nowrap !important;
    min-height: 100vh;
  }
  .container-fluid.p-0 > .row.no-gutters > .col-xl-7.bglogo {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    width: 50% !important;
  }
  .container-fluid.p-0 > .row.no-gutters > .col-xl-5 {
    flex: 1 1 auto !important;
    max-width: none !important;
    width: auto !important;
  }
  /* PC 端品牌区顶部已有 logo，卡片内不再重复 */
  .login_right .logo { display: none !important; }
}
@media (max-width: 991.98px) {
  .container-fluid.p-0 > .row.no-gutters > .col-xl-7.bglogo { display: none !important; }
  .container-fluid.p-0 > .row.no-gutters > .col-xl-5 {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .login_right .logo { display: block !important; margin-bottom: 20px; }
}

/* ---------- 左侧品牌区 ---------- */
.bglogo {
  position: relative;
  background: #fff;
  border-right: 1px solid #e8ebf0;
}
.auth-full-bg {
  position: relative;
  height: 100%;
  min-height: 100vh;
}
.bglogo .bg-overlay,
.bglogo .auth-full-bg .bg-overlay {
  background:
    radial-gradient(700px 420px at 12% 8%, rgba(0, 86, 255, .05), transparent 62%),
    linear-gradient(165deg, #ffffff 0%, #f7faff 55%, #eef4ff 100%) !important;
  opacity: 1 !important;
}
.dc-hero {
  position: relative;
  z-index: 2;
  height: 100%;
  min-height: 100vh;
  padding: 38px 48px 0;
  display: flex;
  flex-direction: column;
}
.dc-hero-logo { margin-bottom: 46px; }
.dc-hero-logo img { height: 36px; width: auto; max-width: 220px; }
.dc-hero-body { max-width: 520px; }
.dc-hero-title {
  font-size: 28px;
  line-height: 1.4;
  font-weight: 700;
  color: #1d2129;
  margin: 0 0 16px;
  letter-spacing: .5px;
}
.dc-hero-desc {
  font-size: 13.5px;
  color: #86909c;
  line-height: 2;
  margin: 0 0 24px;
}
.dc-hero-points { list-style: none; padding: 0; margin: 0; }
.dc-hero-points li {
  position: relative;
  padding-left: 18px;
  font-size: 13.5px;
  color: #4e5969;
  line-height: 2.2;
}
.dc-hero-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 13px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #0056ff;
}
.dc-hero-art { margin-top: auto; padding: 24px 0 40px; }
.dc-hero-art svg { width: 100%; max-width: 440px; height: auto; display: block; }

/* ---------- 右侧：浅灰背景 + 悬浮白卡片 ---------- */
.auth-full-page-content {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 100vh;
  background: #f5f7fa !important;
  padding: 48px 40px !important;
}
.login_right {
  width: 100% !important;
  max-width: 452px !important;
  flex: 0 0 auto !important;
  margin: 0 auto !important;
  background: #fff;
  border: 1px solid #e8ebf0;
  border-radius: 8px;
  padding: 34px 36px 30px;
  box-shadow: 0 10px 40px rgba(29, 33, 41, .07);
  position: relative;
}
/* 旧版左上角"忘记密码"角标：新布局改为表单内链接，隐藏 */
.dc-corner-tag { display: none !important; }

/* ---------- tab 行（左 tab / 右注册链接）---------- */
.dc-tabs-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #f2f3f5;
  margin-bottom: 22px;
}
.dc-tabs-row .affs-nav {
  border-bottom: none;
  margin-bottom: 0;
  flex: 1 1 auto;
}
.affs-nav.nav-tabs .nav-link {
  color: #86909c !important;
  font-size: 15px !important;
  font-weight: 600;
  padding: 0 0 12px !important;
  margin-right: 24px;
  border: none !important;
  background: transparent !important;
  border-radius: 0 !important;
}
.affs-nav.nav-tabs .nav-link.active {
  color: #0056ff !important;
  border-bottom: 2px solid #0056ff !important;
}
.dc-register-link {
  font-size: 12px;
  color: #86909c;
  padding-bottom: 12px;
  white-space: nowrap;
  text-decoration: none;
}
.dc-register-link span { color: #0056ff; margin-left: 2px; }
.dc-register-link:hover { color: #86909c; text-decoration: none; }

/* ---------- 表单控件 ---------- */
.login_right .form-group { margin-bottom: 16px; }
.login_right .form-group label { color: #4e5969; font-size: 13px; margin-bottom: 6px; display: block; }
.login_right .form-control {
  background: #f7f8fa;
  border: 1px solid #f7f8fa;
  border-radius: 4px;
  height: 44px;
  color: #1d2129;
}
.login_right .form-control:focus {
  background: #fff;
  border-color: #0056ff;
  box-shadow: 0 0 0 3px rgba(0, 86, 255, .08);
}
.login_right .form-control::placeholder { color: #b3b8c2; }
.login_right .btn-primary {
  height: 44px;
  border-radius: 4px;
  font-size: 15px;
  letter-spacing: 2px;
  margin-top: 6px;
}
.login_right .mt-4.text-center h5 { color: #b3b8c2; font-size: 12px; font-weight: 400; }
/* 第三方登录按钮保持原色，仅在卡片内留出间距 */
.login_right .list-inline { margin-bottom: 0; }

/* ---------- 登录页轮播例外（历史兼容）---------- */
.auth-review-carousel .item { background: transparent !important; border-bottom: none !important; }

/* ---------- 响应式 ---------- */
@media (max-width: 991.98px) {
  .auth-full-page-content {
    min-height: 100vh;
    padding: 28px 16px !important;
  }
  .login_right { padding: 28px 22px 24px; }
}
@media (max-width: 575.98px) {
  .login_right {
    padding: 24px 18px 20px;
    border-radius: 6px;
  }
  .login_right .btn-primary { letter-spacing: 1px; }
  .page-content { padding: 16px 8px !important; }
}
