:root{
  --brand:#2B6DEF; --brand-h:#4A85F5; --brand-a:#1F5BD6; --brand-bg:#EAF1FE;
  --success:#21BA72; --success-bg:#E6F7EF;
  --warning:#F2A93B; --warning-bg:#FEF3E2;
  --danger:#E5484D; --danger-bg:#FCEBEC;
  --info:#8A94A6; --info-bg:#F1F3F7;
  --bg-page:#F5F7FA; --bg-card:#FFFFFF; --bg-head:#FAFBFC;
  --border:#E4E7ED; --border-l:#EEF1F5;
  --t-1:#1F2733; --t-2:#4E5969; --t-3:#8A94A6; --t-4:#BCC4D0;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;
  --r-sm:4px;--r:8px;--r-lg:12px;
  --sh-card:0 1px 4px rgba(20,30,50,.06);
  --sh-pop:0 6px 24px rgba(20,30,50,.14);
  --ff:"PingFang SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  /* 语义别名：兼容 layout/各页面中使用的简写变量名（避免未定义导致白底白字） */
  --font:var(--ff);
  --bg:var(--bg-page);
  --line:var(--border);
  --ok:var(--success);
  --warn:var(--warning);
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--ff);color:var(--t-1);background:var(--bg-page);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto;padding:0 var(--s5) var(--s7)}
header.hero{background:linear-gradient(120deg,#1F5BD6,#2B6DEF 60%,#3f86ff);color:#fff;padding:var(--s7) var(--s5);border-radius:0 0 var(--r-lg) var(--r-lg)}
header.hero h1{margin:0 0 var(--s2);font-size:30px;letter-spacing:1px}
header.hero p{margin:0;opacity:.92;max-width:760px}
header.hero .tag{display:inline-block;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);padding:2px 10px;border-radius:999px;font-size:12px;margin-bottom:var(--s3)}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s5);margin-top:var(--s5);box-shadow:var(--sh-card)}
.grid{display:grid;gap:var(--s4)}
.g3{grid-template-columns:repeat(3,1fr)}
.g2{grid-template-columns:1fr 1fr}
.kpi{background:#fff;border:1px solid var(--border);border-radius:var(--r);padding:14px;box-shadow:var(--sh-card)}
.kpi .k{color:var(--t-3);font-size:12px}.kpi .v{font-size:24px;font-weight:700;margin-top:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 16px;border-radius:var(--r);font-size:14px;border:1px solid transparent;cursor:pointer;text-decoration:none;font-family:var(--ff)}
.btn-primary{background:var(--brand);color:#fff}.btn-plain{background:#fff;color:var(--brand-a);border-color:var(--brand)}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:4px;font-size:12px}
.tag-b{background:var(--brand-bg);color:var(--brand-a)} .tag-s{background:var(--success-bg);color:var(--success)} .tag-i{background:var(--info-bg);color:var(--t-3)}
.tag-w{background:var(--warning-bg);color:#B9740B} .tag-d{background:var(--danger-bg);color:var(--danger)}
.note{border:1px dashed var(--brand);background:var(--brand-bg);border-radius:var(--r);padding:12px 14px;color:var(--brand-a);font-size:13px;margin-top:12px}
code{background:var(--bg-head);padding:1px 6px;border-radius:var(--r-sm);color:var(--brand-a);font-size:12px}
a{color:var(--brand-a)}
