/* ============================================================
   tokens.css — 设计令牌 v2（墨夜·鎏金 v2）
   来源：design_handoff_首页重设计/README.md §Design Tokens（像素级定稿）
   旧 token 名全部保留为别名，未重构页面不受影响。
   ============================================================ */

:root {
  /* ---- 响应式流式单位（2026-08-07 去整页 transform:scale 改造） ----
     1920×1080 基准下 --u = 1px；组件度量写 calc(N * var(--u)) 即「设计稿 N px」。
     min(vw,vh) 双轴取小 = 旧 fitApp 的 Math.min(w/W,h/H) 语义，但布局流式满铺无留边；
     下限 0.85（≈旧方案 1366×768 实测 scale 0.854）、上限 1.45（4K 防夸张放大）。
     ⚠ JS 侧同款系数在 app.js fitApp 的 app.uFactor（ECharts canvas 字号用），两处公式必须同步改。 */
  --u: clamp(0.85px, min(0.0520833vw, 0.0925926vh), 1.45px);
  --col-w: calc(356 * var(--u));       /* 首页左右浮层栏宽（356 @1920） */
  --subtabs-w: calc(176 * var(--u));   /* 二级页子标签栏宽（176 @1920） */

  /* ---- 底部悬浮栏（模块导航 / 图层栏）专属缩放因子 ----
     --u 的 0.85 下限是为正文可读性设的；但导航是定宽内容（八模块自然宽 ≈1030×u），
     视口低于约 1550 后 --u 不再缩、可用带宽却继续收窄 → 导航压住左右浮层卡片
     （1366 档实测溢出 89px/侧，盖住"今日用电"卡的异常用能条开头）。
     这里按可用带宽再取一次 min：装得下时完全等于 --u（≥1600 档逐像素不变），
     装不下才继续缩。
     ⚠ 1030 = 八模块导航在 --u=1 时的自然宽度；增删模块或改模块名后须重测更新。 */
  /* 48px 预留 = 24px/侧视觉留白 + 导航自身未变量化的固定量（边框/斜切，实测约 18px），
     取 24 时 1366 档只剩 3px/侧、几乎贴住卡片 */
  --nav-band: calc(100vw - 744 * var(--u) - 48px);   /* 两栏之间可用宽（356+16 各一侧）扣预留 */
  --u-nav: min(var(--u), calc(var(--nav-band) / 1030));

  /* ---- v2 · 背景 / 面板 ---- */
  --bg-0: #0B0908;                     /* 页面最底（更深的暖黑） */
  --bg-3d-top: #191510;                /* 三维区顶部渐变起色 */
  --panel: rgba(20, 17, 13, .84);      /* 浮层卡片（配 blur(8px)） */
  --panel-solid: rgba(30, 25, 19, .92);/* 输入框 / select / 头像底 */
  --line: rgba(201, 169, 110, .15);    /* 描边 */
  --line-strong: rgba(201, 169, 110, .34);

  /* ---- v2 · 品牌 ---- */
  --gold: #C9A96E;
  --gold-bright: #E8CE94;
  --cinnabar: #C8402F;

  /* ---- v2 · 状态（一色一义） ---- */
  --ok: #5FAE8C;       /* 正常 / 安全 / 在线 */
  --warn: #D6B44A;     /* 提醒 / 临近阈值 / 一般告警 */
  --major: #E08A2E;    /* 中风险 / 重要 */
  --crit: #E0483A;     /* 高风险 / 紧急 */
  --info: #5D96B2;     /* 提示级 */
  --off: #77705F;      /* 离线 / 禁用 */

  /* ---- v2 · 文字 ---- */
  --t-1: #F0E9DC;
  --t-2: #BDB2A0;
  --t-3: #8A8071;
  --t-disabled: #544C42;

  /* ---- v2 · 字体 ---- */
  --font-sans: "Source Han Sans SC", "Noto Sans SC", "PingFang SC",
               "Microsoft YaHei", "微软雅黑", sans-serif;
  --font-num: "DIN Alternate", "Bahnschrift", "Consolas", monospace;

  /* ---- 过渡 ---- */
  --trans: 200ms ease-out;

  /* ============================================================
     旧 token 别名（v1 → v2 映射；未重构的二级页内容区继续使用）
     ============================================================ */
  --bg-1: #16130F;                     /* 旧大卡片底（近似 --panel 实色） */
  --bg-2: #1F1A15;                     /* 内层卡片 / 表头 */
  --bg-3: #2A231C;                     /* 悬停 / 分隔 */
  --cinnabar-soft: #A8382B;
  --celadon: var(--ok);                /* 旧青绿 → v2 ok */
  --azurite: var(--info);              /* 旧石青 → v2 info */
  --malachite: #8FB39B;                /* 图表第三系列（保留） */

  /* 告警四级（旧名 → v2 状态色，色值一致语义统一） */
  --lv-critical: var(--crit);
  --lv-critical-bg: rgba(224, 72, 58, 0.12);
  --lv-major: var(--major);
  --lv-major-bg: rgba(224, 138, 46, 0.12);
  --lv-minor: var(--warn);
  --lv-minor-bg: rgba(214, 180, 74, 0.12);
  --lv-info: var(--info);
  --lv-info-bg: rgba(93, 150, 178, 0.12);
  --lv-ok: var(--ok);
  --lv-ok-bg: rgba(95, 174, 140, 0.12);

  /* 图表配色序列 */
  --chart-1: #C9A96E;  /* 鎏金 */
  --chart-2: #5D96B2;  /* 石青 */
  --chart-3: #8FB39B;  /* 石绿 */
  --chart-4: #C8402F;  /* 朱砂 */
  --chart-5: #A98C5A;  /* 赭石 */
  --chart-6: #6B7E93;  /* 灰青 */
}
