/* ============================================================
   设计令牌 · 双主题（暗色 = 指挥中心，浅色 = 白昼办公）
   语义色：红=异常/超限，绿=正常/达成，黄=预警，紫=AI
   ============================================================ */
:root[data-theme="dark"]{
  --bg:#06090e; --bg2:#0a0f16; --panel:#0e141d; --panel2:#121a25; --panel3:#17202e;
  --line:rgba(120,170,255,.10); --line2:rgba(120,170,255,.20);
  --text:#e8eef8; --text2:#a8b6cb; --dim:#6b7c94;
  --accent:#22d3ee; --accent-d:rgba(34,211,238,.13); --accent-l:#67e8f9;
  --blue:#3b82f6; --ok:#34d399; --warn:#fbbf24; --bad:#f87171; --purple:#a78bfa;
  --iso-top:#1b2534; --iso-left:#141d29; --iso-right:#0f1722;
  --shadow:0 18px 50px rgba(0,0,0,.45);
  --glow:0 0 0 1px rgba(34,211,238,.25), 0 0 24px rgba(34,211,238,.12);
  --sidebar:#080d14; --topbar:rgba(8,13,20,.86);
  --grid-line:rgba(120,170,255,.055);
  --mask:rgba(2,5,9,.72);
  --chart-grid:rgba(120,170,255,.10);
  --chart-axis:#6b7c94;
  --chart-1:#22d3ee; --chart-2:#3b82f6; --chart-3:#a78bfa; --chart-4:#34d399;
  --chart-5:#fbbf24; --chart-6:#f87171; --chart-7:#67e8f9; --chart-8:#f472b6;
  --scroll:rgba(120,170,255,.25);
}
:root[data-theme="light"]{
  --bg:#eef2f7; --bg2:#f5f8fc; --panel:#ffffff; --panel2:#f4f7fb; --panel3:#e9eff7;
  --line:rgba(15,23,42,.09); --line2:rgba(15,23,42,.17);
  --text:#0d1726; --text2:#41536b; --dim:#7a8ba3;
  --accent:#0891b2; --accent-d:rgba(8,145,178,.10); --accent-l:#0e7490;
  --blue:#2563eb; --ok:#059669; --warn:#d97706; --bad:#dc2626; --purple:#7c3aed;
  --iso-top:#cfdcee; --iso-left:#b3c7de; --iso-right:#96b0cf;
  --shadow:0 14px 40px rgba(20,40,80,.13);
  --glow:0 0 0 1px rgba(8,145,178,.18), 0 0 18px rgba(8,145,178,.08);
  --sidebar:#f7fafd; --topbar:rgba(255,255,255,.88);
  --grid-line:rgba(15,23,42,.045);
  --mask:rgba(15,23,42,.35);
  --chart-grid:rgba(15,23,42,.09);
  --chart-axis:#7a8ba3;
  --chart-1:#0891b2; --chart-2:#2563eb; --chart-3:#7c3aed; --chart-4:#059669;
  --chart-5:#d97706; --chart-6:#dc2626; --chart-7:#0e7490; --chart-8:#db2777;
  --scroll:rgba(15,23,42,.22);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  background:var(--bg); color:var(--text); font-size:13px; line-height:1.5;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased; overflow:hidden;
}
body::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(900px 500px at 82% -8%, var(--accent-d), transparent 70%),
    radial-gradient(700px 420px at 0% 100%, rgba(59,130,246,.10), transparent 70%),
    linear-gradient(var(--grid-line) 1px, transparent 1px) 0 0/44px 44px,
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px) 0 0/44px 44px;
  opacity:.9;
}
body.plain::before{display:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:8px}
::-webkit-scrollbar-track{background:transparent}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace}
.dim{color:var(--dim)}
.t2{color:var(--text2)}
.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.purple{color:var(--purple)}.accent{color:var(--accent)}
.hidden{display:none!important}
