/* ============================================================
   tokens.css — 设计令牌
   主题：晴空浅色 · 磨砂玻璃（默认）/ 工业暗色 / 老年大字体模式
   ============================================================ */
:root {
  /* 品牌色 —— 能源绿（光伏） */
  --brand: #0f9d58;
  --brand-strong: #0c7d46;
  --brand-soft: rgba(15, 157, 88, .12);
  --brand-grad: linear-gradient(135deg, #12b76a, #059669);
  --brand-ink: #ffffff;

  /* 六态状态机色彩语言（浅底加深，保证可读对比度） */
  --st-pending: #b97a08;      /* 待受理 琥珀 */
  --st-accepted: #1976d2;     /* 已受理 蓝 */
  --st-material: #7c4dff;     /* 待领料审批 紫 */
  --st-material-ok: #00838f;  /* 领料完成 青 */
  --st-fixing: #e8542f;       /* 消缺中 橙 */
  --st-done: #12a05c;         /* 已消缺 绿 */
  --st-false: #64748b;        /* 误报 灰 */

  /* 语义色 */
  --danger: #e5484d;
  --danger-soft: rgba(229, 72, 77, .11);
  --warn: #b97a08;
  --warn-soft: rgba(185, 122, 8, .12);
  --ok: #12a05c;
  --ok-soft: rgba(18, 160, 92, .12);
  --info: #1976d2;
  --info-soft: rgba(25, 118, 210, .11);

  /* 角色 */
  --c-dept: #00838f;
  --c-runner: #1976d2;
  --c-tech: #12a05c;
  --c-admin: #7c4dff;

  /* 缺陷等级（Ⅰ级紧急 / Ⅱ级重要 / Ⅲ级一般） */
  --sv-critical: #d92d20;
  --sv-major: #dc7609;
  --sv-minor: #4a7fb5;
  --sv-critical-soft: rgba(217, 45, 32, .11);
  --sv-major-soft: rgba(220, 118, 9, .13);
  --sv-minor-soft: rgba(74, 127, 181, .12);

  /* 浅色主题（默认）—— 晴空磨砂玻璃 */
  --bg: #e8eef6;
  --bg-grad: radial-gradient(1100px 620px at 82% -12%, rgba(18, 183, 106, .14), transparent 58%),
             radial-gradient(900px 560px at -14% 22%, rgba(25, 118, 210, .10), transparent 55%),
             radial-gradient(760px 500px at 50% 118%, rgba(124, 77, 255, .07), transparent 60%);
  --panel: #ffffff;
  --panel-2: #f2f6fb;
  --panel-3: #e7edf5;
  --line: rgba(23, 48, 82, .13);
  --line-strong: rgba(23, 48, 82, .26);
  --ink: #14293e;
  --ink-2: #42607c;
  --ink-3: #7c93aa;
  --ink-inv: #f4f9fd;

  /* 磨砂玻璃令牌（浅色） */
  --glass-bg: rgba(255, 255, 255, .60);
  --glass-bg-strong: rgba(255, 255, 255, .74);
  --glass-line: rgba(255, 255, 255, .78);
  --glass-edge: rgba(23, 48, 82, .10);
  --glass-blur: 18px;
  --glass-highlight: rgba(255, 255, 255, .9);
  --glass-shade: rgba(255, 255, 255, .45);

  --focus: #1976d2;
  --shadow-1: 0 1px 2px rgba(16, 40, 70, .06), 0 8px 24px -12px rgba(16, 40, 70, .22);
  --shadow-2: 0 18px 48px -16px rgba(16, 40, 70, .32);

  /* 字体 */
  --font-sans: "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
  --font-mono: "SF Mono", "JetBrains Mono", "Cascadia Mono", Consolas, "Courier New", monospace;
  --font-scale: 1;

  /* 布局 */
  --appbar-h: 56px;
  --tabbar-h: 62px;
  --netbar-h: 34px;
  --radius: 14px;
  --radius-s: 9px;
  --pad: 16px;
  --touch: 46px;
  --dur: .22s;
  --ease: cubic-bezier(.3, .8, .3, 1);
}

/* 工业暗色主题 —— 夜间作业 / 值班室 */
html[data-theme="dark"] {
  --brand: #2fd886;
  --brand-strong: #22b86d;
  --brand-soft: rgba(47, 216, 134, .14);
  --brand-grad: linear-gradient(135deg, #3ce894, #17a865);
  --brand-ink: #062818;

  --st-pending: #f0a63a;
  --st-accepted: #4aa8ff;
  --st-material: #b58cff;
  --st-material-ok: #6fd3ff;
  --st-fixing: #ff8a5c;
  --st-done: #3fd68c;
  --st-false: #8b98a8;

  --danger: #ff5d6c;
  --danger-soft: rgba(255, 93, 108, .13);
  --warn: #f0a63a;
  --warn-soft: rgba(240, 166, 58, .13);
  --ok: #3fd68c;
  --ok-soft: rgba(63, 214, 140, .13);
  --info: #4aa8ff;
  --info-soft: rgba(74, 168, 255, .13);

  --c-dept: #6fd3ff;
  --c-runner: #4aa8ff;
  --c-tech: #3fd68c;
  --c-admin: #b58cff;

  /* 缺陷等级（暗色） */
  --sv-critical: #ff6b5e;
  --sv-major: #f5a524;
  --sv-minor: #7fb2e5;
  --sv-critical-soft: rgba(255, 107, 94, .14);
  --sv-major-soft: rgba(245, 165, 36, .15);
  --sv-minor-soft: rgba(127, 178, 229, .14);

  --bg: #0a1420;
  --bg-grad: radial-gradient(1200px 700px at 80% -10%, rgba(47,216,134,.07), transparent 60%),
             radial-gradient(900px 600px at -20% 30%, rgba(74,168,255,.06), transparent 55%);
  --panel: #101f30;
  --panel-2: #16283d;
  --panel-3: #1c3148;
  --line: rgba(148, 178, 208, .16);
  --line-strong: rgba(148, 178, 208, .30);
  --ink: #e8f1f8;
  --ink-2: #a7b8c9;
  --ink-3: #6d8095;
  --ink-inv: #06121d;

  /* 磨砂玻璃令牌（暗色） */
  --glass-bg: rgba(22, 40, 61, .58);
  --glass-bg-strong: rgba(22, 40, 61, .76);
  --glass-line: rgba(148, 178, 208, .18);
  --glass-edge: rgba(148, 178, 208, .14);
  --glass-highlight: rgba(148, 178, 208, .12);
  --glass-shade: rgba(10, 20, 32, .5);

  --focus: #4aa8ff;
  --shadow-1: 0 1px 2px rgba(0,0,0,.35), 0 6px 18px -8px rgba(0,0,0,.5);
  --shadow-2: 0 12px 40px -12px rgba(0,0,0,.65);
}


/* ============================================================
   高级黑主题（Premium Noir）—— 中性黑灰 / 实心圆角卡 / 细边框 / 大号等宽数字
   参考：小米汽车 App 的视觉语言（去毛玻璃、去彩色倾向、强对比层级）
   ============================================================ */
html[data-theme="premium"] {
  /* 品牌色：保留能源绿，但降饱和更沉稳 */
  --brand: #4ade80;
  --brand-strong: #22c55e;
  --brand-soft: rgba(74, 222, 128, .13);
  --brand-grad: linear-gradient(135deg, #4ade80, #16a34a);
  --brand-ink: #04140b;

  --st-pending: #fbbf24;
  --st-accepted: #60a5fa;
  --st-material: #c084fc;
  --st-material-ok: #22d3ee;
  --st-fixing: #fb923c;
  --st-done: #4ade80;
  --st-false: #8a8a8e;

  --danger: #f87171;
  --danger-soft: rgba(248, 113, 113, .14);
  --warn: #fbbf24;
  --warn-soft: rgba(251, 191, 36, .14);
  --ok: #4ade80;
  --ok-soft: rgba(74, 222, 128, .14);
  --info: #60a5fa;
  --info-soft: rgba(96, 165, 250, .14);

  --c-dept: #22d3ee;
  --c-runner: #60a5fa;
  --c-tech: #4ade80;
  --c-admin: #c084fc;

  --sv-critical: #f87171;
  --sv-major: #fbbf24;
  --sv-minor: #93c5fd;
  --sv-critical-soft: rgba(248, 113, 113, .14);
  --sv-major-soft: rgba(251, 191, 36, .14);
  --sv-minor-soft: rgba(147, 197, 253, .14);

  /* —— 基底：纯正中性与黑 —— */
  --bg: #0a0a0b;
  --bg-grad: radial-gradient(900px 520px at 84% -14%, rgba(74, 222, 128, .06), transparent 62%),
             radial-gradient(760px 460px at -12% 18%, rgba(96, 165, 250, .045), transparent 58%);
  --panel: #141416;          /* 卡片实心底 */
  --panel-2: #1c1c1f;        /* 次级面 */
  --panel-3: #26262a;        /* 三级面 */
  --line: rgba(255, 255, 255, .085);      /* 细边框 */
  --line-strong: rgba(255, 255, 255, .17);
  --ink: #f5f5f7;            /* 主文字：近白 */
  --ink-2: #a1a1a6;          /* 次文字：中性灰 */
  --ink-3: #6e6e73;          /* 弱文字 */
  --ink-inv: #0a0a0b;

  /* 去毛玻璃：实心面板 */
  --glass-bg: rgba(20, 20, 22, .96);
  --glass-bg-strong: #141416;
  --glass-line: rgba(255, 255, 255, .085);
  --glass-edge: rgba(255, 255, 255, .085);
  --glass-blur: 0px;         /* 关键：关闭模糊，追求纯净 */
  --glass-highlight: rgba(255, 255, 255, .04);
  --glass-shade: rgba(0, 0, 0, .5);

  --focus: #4ade80;
  --shadow-1: 0 1px 2px rgba(0, 0, 0, .5);
  --shadow-2: 0 20px 50px -20px rgba(0, 0, 0, .85);

  --radius: 18px;            /* 更大的圆角，更柔和 */
  --radius-s: 12px;
}

/* 高级黑专属：卡片与控件质感（细边框 + 实心 + 无模糊） */
html[data-theme="premium"] .card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 16px;
}
html[data-theme="premium"] .card.glass { background: var(--panel-2); border-color: var(--line); }
html[data-theme="premium"] .card + .card { margin-top: 12px; }
html[data-theme="premium"] .panel {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: none; backdrop-filter: none;
}
html[data-theme="premium"] .kpi-ribbon {
  background: var(--line); border-color: var(--line); border-radius: var(--radius);
  box-shadow: none; overflow: hidden;
}
html[data-theme="premium"] .kpi { background: var(--panel); }
html[data-theme="premium"] a.kpi:hover { background: var(--panel-2); }
/* 大号等宽数字（小米式数据表现） */
html[data-theme="premium"] .kpi .kv { font-size: 25px; letter-spacing: -.4px; }
html[data-theme="premium"] .kpi .kk { font-size: 12px; letter-spacing: .2px; }
/* 输入与按钮 */
html[data-theme="premium"] .input,
html[data-theme="premium"] .textarea,
html[data-theme="premium"] .select {
  background: var(--panel-2); border: 1px solid var(--line); border-radius: var(--radius-s);
}
html[data-theme="premium"] .input:focus,
html[data-theme="premium"] .textarea:focus,
html[data-theme="premium"] .select:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
html[data-theme="premium"] .btn { border-radius: var(--radius-s); }
html[data-theme="premium"] .btn-primary { background: var(--brand-grad); color: var(--brand-ink); border-color: transparent; }
/* 顶栏/底栏：纯黑浮层 */
html[data-theme="premium"] .appbar {
  background: rgba(10, 10, 11, .92); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--line);
}
html[data-theme="premium"] .tabbar {
  background: rgba(10, 10, 11, .94); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid var(--line);
}
html[data-theme="premium"] #sidebar { background: #0d0d0f; border-right: 1px solid var(--line); }
/* 表格 */
html[data-theme="premium"] .wk-tablewrap { background: var(--panel); border-color: var(--line); }
html[data-theme="premium"] .wk-table thead th { background: var(--panel-2) !important; }
html[data-theme="premium"] .wk-tr:nth-child(even) td { background: rgba(255, 255, 255, .022) !important; }
html[data-theme="premium"] .wk-tr:nth-child(even) .wk-c-chk,
html[data-theme="premium"] .wk-tr:nth-child(even) .wk-c-seq { background: #161618 !important; }
html[data-theme="premium"] .wk-c-chk, html[data-theme="premium"] .wk-c-seq { background: var(--panel) !important; }
/* 弹窗 */
html[data-theme="premium"] .modal { background: #17171a; border: 1px solid var(--line-strong); box-shadow: var(--shadow-2); backdrop-filter: none; }
html[data-theme="premium"] .modal-acts { background: #17171a; }
html[data-theme="premium"] .sheet { background: #17171a; border: 1px solid var(--line-strong); backdrop-filter: none; }

/* 老年模式 / 大字体 */
html[data-elder="1"] {
  --font-scale: 1.18;
  --touch: 54px;
  --radius: 16px;
}
html[data-elder="1"] .hint,
html[data-elder="1"] .mini { font-size: calc(14px); }

/* 视障动效减弱 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
