/* Member pages only. Tokens mirror shenjian/ui_reference_tokens.py.
   Admin pages do not load this sheet. No financial or navigation behavior. */
:root {
  color-scheme: dark;
  --bg-app: #10151F; --bg-sidebar: #10141D; --bg-surface: #141B27;
  --bg-card: #171D2A; --bg-elevated: #202838; --border-default: #2B3547;
  --text-primary: #F2F1FF; --text-secondary: #B7C1DC; --text-muted: #8190AD;
  --brand-primary: #7847FF; --brand-secondary: #A481FF;
  --success: #16D5A0; --warning: #F5BD58; --danger: #F27B95;
  --ink: var(--text-primary); --muted: var(--text-secondary);
  --green: var(--brand-secondary); --lime: #30265F;
  --paper: var(--bg-app); --line: var(--border-default);
  --white: var(--bg-card); --red: var(--danger);
  font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", sans-serif;
}
body { background: var(--bg-app); color: var(--text-primary); font-size: 15px; }
button { min-height: 44px; border: 1px solid transparent; border-radius: 8px;
  background: linear-gradient(180deg,#8755FF,var(--brand-primary)); color: var(--text-primary); }
button:hover { background: #9465FF; }
button:active { background: #5630CC; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--brand-secondary); outline-offset: 3px;
}
button.secondary, button.ghost { border: 1px solid #50607C; background: var(--bg-elevated); color: var(--text-primary); }
button.secondary:hover, button.ghost:hover { background:#2D354A; border-color:var(--brand-secondary); }
button.danger { background:#392431; color:var(--danger); border-color:#684050; }
button:disabled { background:var(--bg-surface); color:#667089; border-color:var(--line); opacity:1; transform:none; box-shadow:none; }
button.small { min-height:34px; font-size:13px; }
input,select,textarea { background:var(--bg-elevated); border-color:#50607C; color:var(--text-primary); border-radius:8px; }
input::placeholder,textarea::placeholder { color:var(--text-muted); }
label { color:var(--text-secondary); font-size:14px; }
h1,h2,h3 { letter-spacing:0; }
h1 { font-size:28px; } h2 { font-size:18px; } h3 { font-size:16px; }
.muted,.subtle { font-size:14px; }
.brand-mark { color:transparent; font-size:0; background:transparent url('/assets/shenjian-logo.svg') center/contain no-repeat; }
.sidebar .brand-mark { color:transparent; font-size:0; }
.sidebar { background:var(--bg-sidebar); border-right:1px solid var(--line); color:var(--text-primary); padding:28px 16px; }
.nav-label { color:var(--text-muted); font-size:12px; letter-spacing:0; }
.nav button { color:var(--text-secondary); font-size:15px; border:1px solid transparent; min-height:46px; }
.nav button.active { background:#30265F; border-color:#51408A; color:var(--text-primary); }
.nav button:hover { background:#292340; color:var(--text-primary); }
.nav-icon { border:0; border-radius:0; width:20px; height:20px; opacity:1; }
.sidebar-bottom { border-color:var(--line); color:var(--text-muted); font-size:12px; }
.main { padding:0 32px 32px; }
.topbar { height:76px; margin-bottom:28px; }
.topbar-right { flex-wrap:wrap; }
.avatar { background:#30265F; border-color:#51408A; color:var(--text-primary); }
.env { background:#352E25; color:var(--warning); border-color:#645335; font-size:12px; letter-spacing:0; }
.page-head { margin-bottom:24px; }
.grid { gap:16px; }
.stat,.panel,.plan { background:var(--bg-card); border-color:var(--line); border-radius:12px; }
.stat { padding:24px; } .stat-label { font-size:14px; } .stat-note { font-size:12px; color:var(--text-muted); }
.stat-value { font-size:28px; letter-spacing:0; overflow-wrap:anywhere; }
.panel { margin-bottom:20px; } .panel-head,.panel-body { padding:20px 24px; }
.panel-head { background:var(--bg-surface); }
.panel-head p { font-size:13px; }
table { font-size:14px; } th { background:var(--bg-surface); color:var(--text-secondary); font-size:13px; }
td { border-color:var(--line); padding:16px 18px; } td .subtle { font-size:12px; }
tbody tr:hover { background:#202838; }
.empty { color:var(--text-muted); padding:44px 24px; font-size:14px; }
.badge { background:#30265F; color:#CDBAFF; font-size:12px; }
.badge.pending { background:#352E25; color:var(--warning); }
.badge.rejected,.badge.closed { background:#392431; color:var(--danger); }
.badge.paid { background:#15332F; color:var(--success); }
.hero { background:linear-gradient(115deg,#292143,#171D2A); border-color:#44375F; padding:24px; }
.hero p,.hero .eyebrow { color:var(--text-secondary); }
.hero-art { color:var(--brand-secondary); }
.plan.featured { border-color:var(--brand-primary); background:#211D36; }
.plan .tag { color:#CDBAFF; background:#30265F; }
.plan ul { color:var(--text-secondary); font-size:14px; }
.notice { background:var(--bg-elevated); color:var(--text-secondary); font-size:14px; border:1px solid var(--line); }
.copy-box input { background:var(--bg-elevated); font-size:14px; }
.copy-box button { white-space:nowrap; }
.invite-code { color:var(--brand-secondary); }
.step { font-size:14px; } .step strong { font-size:15px; }
.step b { color:var(--brand-secondary); background:#30265F; }
.money-positive { color:var(--success); } .money-negative { color:var(--warning); }
.footer-note { color:var(--text-muted); font-size:12px; }
.account-dot { background:var(--success); }
.tabs { gap:12px; flex-wrap:wrap; }
.tabs button { background:var(--bg-elevated); border:1px solid #50607C; padding:10px 16px; border-radius:8px; color:var(--text-secondary); margin-bottom:12px; }
.tabs button.active { background:#30265F; color:var(--text-primary); border-color:var(--brand-primary); }
.tabs button:hover { background:#2D354A; }
dialog { background:var(--bg-card); color:var(--text-primary); box-shadow:0 24px 80px #0008; padding:24px; }
dialog::backdrop { background:#080C16B3; }
.mock-panel { border-color:#6B5735; background:#28251F; }
.payment-note,.mock-panel p { color:var(--text-secondary); font-size:14px; }
#toast { background:var(--bg-elevated); border:1px solid #51408A; color:var(--text-primary); box-shadow:0 8px 28px #0006; font-size:14px; }
.login-story { background:linear-gradient(145deg,#211935,var(--bg-sidebar)); color:var(--text-primary); }
.login-story p { color:var(--text-secondary); }
.login-box { width:100%; max-width:420px; }
.story-art { background:#211D36; border-color:#51408A; }
.story-art::after { border-color:#44375F; }
.story-art .art-line { background:#4F4073; }
.story-art .art-line:first-of-type { background:var(--brand-secondary); }
.art-dots i { background:var(--text-muted); }
.workspace-launch { background:linear-gradient(115deg,#30265F,var(--bg-card)); border:1px solid #51408A; box-shadow:none; }
.workspace-launch .eyebrow,.workspace-launch p { color:var(--text-secondary); }
.launch-button { background:var(--brand-primary); color:var(--text-primary); box-shadow:none; }
.launch-button:hover { background:#9465FF; }
.launch-button:disabled { background:var(--bg-elevated); color:#8190AD; }
.launch-play { background:#F2F1FF18; }
.receipt-enlarge,.receipt-full { background:var(--bg-elevated); color:var(--text-primary); }
.receipt-enlarge:hover { background:#2D354A; }
.amount-choice input:checked+span { background:#30265F; border-color:var(--brand-primary); color:var(--text-primary); }
.amount-choice input:focus-visible+span { outline-color:var(--brand-secondary); }
.code-block { background:var(--bg-elevated); }
.fund-recharges { background:#15332F; color:var(--success); }
.fund-commissions { background:#30265F; color:var(--brand-secondary); }
.fund-ledger { background:#352E25; color:var(--warning); }
@media(max-width:1150px) { .main{padding:0 24px 28px;} }
@media(max-width:780px) {
  .main{padding:0 16px 24px;} .sidebar{padding:24px 10px;} .topbar{height:auto;min-height:76px;padding:12px 0;}
  .copy-box{flex-wrap:wrap;} .copy-box input{min-width:0;flex:1 1 240px;} .page-head{flex-wrap:wrap;}
}
