/* 主题变量与基础重置：深/浅两套 CSS 变量 + 全局 reset */
  :root{
    --bg:#0f1822; --panel:#16222e; --panel2:#1d2d3c; --line:#273a4c;
    --txt:#e6eef5; --muted:#8aa0b3; --accent:#2dd4bf; --accent2:#38bdf8;
    --warn:#f59e0b; --danger:#ef4444; --ok:#22c55e;
    /* 派生表面/控件色（供主题切换）*/
    --input-bg:#0d161f; --item-bg:#0e1925; --scroll:#2a3f52;
    --btn-sec:#26384a; --seg-bg:#16242f; --badge-bg:#0d2030; --badge-line:#1c3a4f;
    --overlay:rgba(15,24,34,.92); --faint:#5d7183; --btn-txt:#06131c;
    /* 动目标绿：必须与 js/targets.js 的 TGT_COLOR_DARK/LIGHT 逐字相同——
       侧栏圆点、归属徽标与地图上的动目标本体是同一个东西，不同色就失去指代作用。
       之所以另立变量而不复用 --ok：--ok 是「在线/正常」语义，两者含义无关。 */
    --tgt:#64be5a;
    /* 推演复现紫：右侧功能栏第 5 个图标、状态栏与「开始推演复现」按钮。
       与 js/mission.js 的任务航路紫是两码事——那是地图覆盖物色（高德只吃字面量），
       这里是 DOM 色，两者互不引用，各改各的。 */
    --purple:#a78bfa;
    /* 上面几个主色的 RGB 分量：rgba() 不接受 hex 变量，需要半透明底/光晕时用
       rgba(var(--xxx-rgb),.16)。改色时两处要一起改。 */
    --accent-rgb:45,212,191; --accent2-rgb:56,189,248; --warn-rgb:245,158,11;
    --danger-rgb:239,68,68; --ok-rgb:34,197,94; --faint-rgb:93,113,131;
    --tgt-rgb:52,200,35; --purple-rgb:167,139,250;
  }
  body.light{
    --bg:#eef2f6; --panel:#ffffff; --panel2:#f4f7fa; --line:#d5dde5;
    --txt:#1a2733; --muted:#5b6b7a; --accent:#0d9488; --accent2:#0284c7;
    --warn:#b45309; --danger:#dc2626; --ok:#15803d;
    --input-bg:#ffffff; --item-bg:#f4f7fa; --scroll:#c3ccd6;
    --btn-sec:#d7e0ea; --seg-bg:#e3eaf1; --badge-bg:#e0edf7; --badge-line:#a9c9e0;
    --overlay:rgba(255,255,255,.92); --faint:#8595a4; --btn-txt:#ffffff;
    --tgt:#15803d; --purple:#7c3aed;
    --accent-rgb:13,148,136; --accent2-rgb:2,132,199; --warn-rgb:180,83,9;
    --danger-rgb:220,38,38; --ok-rgb:21,128,61; --faint-rgb:133,149,164;
    --tgt-rgb:21,128,61; --purple-rgb:124,58,237;
  }
  *{box-sizing:border-box}
  html,body{height:100%;margin:0;font-family:"Segoe UI",-apple-system,"Microsoft YaHei",sans-serif;
    background:var(--bg);color:var(--txt);overflow:hidden}
  body{display:flex;flex-direction:column}
