/* =========================================================
   Nova 会员中心主题 — 完整样式（自包含布局，不依赖父主题 CSS）
   存放路径：/public/themes/clientarea/nova/custom.css
   ========================================================= */

:root {
  --nova-brand: #4f46e5;
  --nova-brand-2: #7c3aed;
  --nova-ink: #0f172a;
  --nova-muted: #64748b;
  --nova-line: #e2e8f0;
  --nova-bg: #f5f6fb;
  --nova-grad: linear-gradient(135deg, #4f46e5 0%, #7c3aed 60%, #a855f7 100%);
}

html, body { height: 100%; }
body {
  margin: 0;
  font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  background: var(--nova-bg);
  color: var(--nova-ink);
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--nova-brand); }
a:hover { color: var(--nova-brand-2); text-decoration: none; }

/* ================= 顶部导航 ================= */
#page-topbar {
  position: fixed; top: 0; left: 0; right: 0; height: 64px; z-index: 1002;
  background: #fff; border-bottom: 1px solid var(--nova-line);
  display: flex; align-items: center;
}
.navbar-header { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 0 20px; }
.navbar-header .d-flex { display: flex; align-items: center; }
.navbar-brand-box { display: flex; align-items: center; }
.navbar-brand-box .logo-lg img { height: 32px; width: auto; }
.navbar-brand-box .logo-text {
  font-size: 19px; font-weight: 800; color: transparent;
  background: var(--nova-grad); -webkit-background-clip: text; background-clip: text;
}
.header-item {
  border: 0; background: transparent; color: var(--nova-ink);
  font-size: 16px; padding: 8px 10px; border-radius: 10px; cursor: pointer; position: relative;
}
.header-item:hover { background: #f1f5f9; }
.header-item .badge { position: absolute; top: 2px; right: 0; }
#vertical-menu-btn { font-size: 18px; }

/* ================= 侧边栏 ================= */
.vertical-menu {
  position: fixed; top: 64px; left: 0; bottom: 0; width: 230px; z-index: 1001;
  background: #0b1220; overflow-y: auto; padding-top: 12px;
}
#sidebar-menu { padding: 0 8px 40px; }
#sidebar-menu ul { list-style: none; margin: 0; padding: 0; }
#sidebar-menu > ul > li { margin: 2px 0; }
#sidebar-menu a {
  display: flex; align-items: center; gap: 10px;
  color: #cbd5e1; font-size: 14px; padding: 11px 14px; border-radius: 10px;
}
#sidebar-menu a i { font-size: 18px; width: 20px; text-align: center; }
#sidebar-menu a:hover { color: #fff; background: rgba(255,255,255,0.07); }
#sidebar-menu a.active { background: var(--nova-grad); color: #fff; box-shadow: 0 6px 16px rgba(79,70,229,0.35); }

/* ================= 主内容区 ================= */
.main-content { margin-left: 230px; padding-top: 64px; min-height: 100vh; display: flex; flex-direction: column; }
.page-content { padding: 24px; flex: 1; }
.page-content > .container-fluid { max-width: 1400px; }
.page-title-box { display: none; }

/* ================= 卡片 / 表格 ================= */
.card { border: 1px solid var(--nova-line); border-radius: 14px; box-shadow: 0 1px 3px rgba(15,23,42,0.05); }
.card-body { padding: 20px; }
.card-title { font-weight: 700; }
.table { color: var(--nova-ink); }
.table thead th { background: #f8fafc; color: var(--nova-muted); font-weight: 600; border-bottom: 1px solid var(--nova-line); white-space: nowrap; }
.table td { vertical-align: middle; }

/* ================= 按钮 ================= */
.btn { border-radius: 10px; font-weight: 600; }
.btn-primary { background: var(--nova-grad); border: 0; box-shadow: 0 6px 16px rgba(79,70,229,0.25); }
.btn-primary:hover { background: linear-gradient(135deg, #4338ca 0%, #6d28d9 60%, #9333ea 100%); }
.btn-outline-secondary { border-color: var(--nova-line); color: var(--nova-ink); }
.btn-outline-primary { border-color: var(--nova-brand); color: var(--nova-brand); }
.btn-outline-primary:hover { background: var(--nova-brand); color: #fff; }
.text-primary { color: var(--nova-brand) !important; }
.bg-primary { background-color: var(--nova-brand) !important; }
.badge-primary, .badge-soft-primary { background: rgba(79,70,229,0.12) !important; color: var(--nova-brand) !important; }
.badge-soft-danger { background: rgba(239,68,68,0.1) !important; color: #ef4444 !important; }
.badge-soft-success { background: rgba(16,185,129,0.1) !important; color: #10b981 !important; }

/* ================= 表单 ================= */
.form-control { border-radius: 10px; border-color: var(--nova-line); }
.form-control:focus { border-color: var(--nova-brand); box-shadow: 0 0 0 0.15rem rgba(79,70,229,0.12); }
.form-group label, .col-form-label { font-weight: 600; font-size: 13px; color: var(--nova-ink); }
.input-group-text { border-radius: 10px 0 0 10px; border-color: var(--nova-line); background: #f8fafc; }
.input-group-append .btn { border-radius: 0 10px 10px 0; }
.custom-control-label { font-size: 13px; }

/* ================= 仪表盘统计卡 ================= */
.bl-yellow { border-left: 4px solid #f59e0b !important; }
.bl-green { border-left: 4px solid #10b981 !important; }
.bl-blue { border-left: 4px solid #3b82f6 !important; }
.bl-global { border-left: 4px solid var(--nova-brand) !important; }
.bl-hov:hover { box-shadow: 0 8px 24px rgba(15,23,42,0.1) !important; }
.link { cursor: pointer; }

/* ================= 用户头像 ================= */
.user-center_header {
  width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
  background: var(--nova-grad); color: #fff; font-weight: 700; font-size: 14px;
}

/* ================= 登录 / 注册全屏页 ================= */
.nova-auth {
  min-height: 100vh; display: flex; align-items: center; justify-content: center;
  padding: 32px 16px;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(124,58,237,0.20), transparent 60%),
    radial-gradient(800px 420px at 10% 110%, rgba(6,182,212,0.16), transparent 55%),
    var(--nova-bg);
}
.nova-auth-card { width: 100%; max-width: 440px; background: #fff; border-radius: 18px; box-shadow: 0 20px 60px rgba(15,23,42,0.14); overflow: hidden; }
.nova-auth-card .head { background: var(--nova-grad); color: #fff; padding: 30px 32px 24px; text-align: center; }
.nova-auth-card .head .logo { width: 52px; height: 52px; border-radius: 14px; background: rgba(255,255,255,0.18); display: inline-flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 800; margin-bottom: 10px; }
.nova-auth-card .head h1 { font-size: 22px; margin: 0 0 4px; color: #fff; }
.nova-auth-card .head p { margin: 0; font-size: 13.5px; color: rgba(255,255,255,0.85); }
.nova-auth-card .body { padding: 28px 32px 30px; }
.nova-auth-card .links { display: flex; justify-content: space-between; font-size: 13.5px; margin: 12px 0 4px; }
.nova-auth-card .foot { text-align: center; padding: 0 32px 28px; font-size: 13px; color: var(--nova-muted); }
.nova-auth-card .alert { border-radius: 10px; }

/* ================= 页脚 ================= */
.footer { background: #fff; border-top: 1px solid var(--nova-line); color: var(--nova-muted); padding: 16px 24px; }

/* ================= 其它 ================= */
.dropdown-menu { border-radius: 12px; border: 1px solid var(--nova-line); box-shadow: 0 10px 30px rgba(15,23,42,0.12); }
.dropdown-item { font-size: 14px; border-radius: 8px; padding: 8px 14px; }
.dropdown-item:hover { background: #f1f5f9; color: var(--nova-brand); }
.nav-tabs .nav-link { color: var(--nova-muted); }
.nav-tabs .nav-link.active { color: var(--nova-brand); border-bottom: 2px solid var(--nova-brand); border-top: 0; border-left: 0; border-right: 0; }
.progress-bar { background: var(--nova-grad); }
.border-bottom { border-bottom: 1px solid var(--nova-line) !important; }

/* ================= 响应式 ================= */
@media (max-width: 991.98px) {
  .vertical-menu { transform: translateX(-100%); transition: transform .2s ease; }
  .vertical-menu.show { transform: translateX(0); }
  .main-content { margin-left: 0; }
}
