/* ============================================================================
 * 文件：web/inos-tokens.css —— INOS 的样式令牌层（AD528 批 0）
 * 作用：把"颜色之外的那些维度"（交互态 / 语义缺口 / 字号 / 行高 / 间距 / 圆角 /
 *       描边阴影 / 控件尺寸 / 层级 / 动效）一次命名齐，并落三个全局组件类。
 *       以后新写界面：**先来这里找令牌，找不到再来这里加**，别在业务 CSS 里写死数字。
 * English: Design-token layer for all INOS web UI. New UI must consume these vars.
 *
 * 【批 0 的第一原则：不改观感】
 *   · 本文件**只新增定义，不覆盖任何已有规则**——加载它之前和之后，页面长得一模一样。
 *   · 尺寸令牌的值取的是现状里出现最多的那一个，**只做"命名"，不做"归并"**
 *     （12px 与 12.5px 并存、hover 39 种写法都还在）。真正的归并是批 7，
 *     要需求方看过预览再拍——那一步会改观感，不能顺手做掉。
 *   · 颜色令牌（AD201）**2026-10-01 起也住在这里**（T-0093，文件末尾两块，从 index.html 原样搬来）。
 *     当初不搬的理由（「一个 <link> 没部署上配色当场消失」）已经不成立：字号 / 圆角 / 层级 / 组件样式
 *     早就全在这个文件里，它缺了页面本来就坏（T-0021 评估）。各页自己的 :root 只许留「本页有意不同」的，
 *     写进 internal/server/t0093_palette_test.go 的白名单并说为什么。
 *
 * 【谁在用】index.html 在自己的 <style> **之前** <link> 进来，于是：
 *   · 令牌可以被业务 CSS 引用；
 *   · 业务 CSS 里若有同名规则，按文档顺序仍然是业务那份赢 → 观感不变。
 * 【守门人】tools/ui-lint.sh（和 go build/vet/test、web-syntax-check 并列跑）。
 * 【决策】AD528（审查者出方案，需求方 2026-09-15 提出）。
 * ==========================================================================*/

:root{
  /* ---- 交互态：现在全仓 39 种 hover 写法，就是因为一直缺这一组 ---- */
  --bg-hover:var(--fill-2);
  --bg-active:var(--fill-3);
  --bg-selected:var(--accent-weak);
  /* 【审查第 28 轮 ①】这两个是 accent 色相的衍生透明度，**从 accent 派生**，不留字面值。
     125 上是 Chromium 151，color-mix 从 Chrome 111 起就有，放心用。
     原字面值是 rgba(47,107,255,.18) 与 rgba(90,130,240,.65)；后者色相本来就和 accent
     差了一点点（应该是当初手调的），这里统一到 accent——它只被 .list-row 用，而 .list-row
     目前还没有任何业务在用，所以这一改不动任何现有界面。 */
  --bg-selected-hover:color-mix(in srgb, var(--accent) 18%, transparent);
  --outline-selected:color-mix(in srgb, var(--accent) 65%, transparent);
  --focus-ring:0 0 0 2px var(--accent-weak), 0 0 0 1px var(--accent);
  --bg-disabled:var(--fill-1);
  --ink-disabled:var(--ink-4);
  --bg-row-alt:rgba(var(--srf),.35);
  --line-hover:var(--line-strong);

  /* ---- 语义缺口：把"可点的蓝"和"只是提示的蓝"分开；"在跑"和"警告"分开 ----
     【审查第 28 轮 ①】`--info` **从 `--accent` 派生，不抄一份色值**。
     它现在和 accent 就是同一个色——`--info` 存在的意义是"以后**可以**分开"，
     不是"现在就得留第二份真相"。真要分那天改这一行即可；
     照抄字面值的后果是：谁调一次 --accent，--info 会静默分叉，
     而那正是 AD528 立项要消灭的东西。
     `--busy` / `--code-bg` 没有对应的现有变量，留字面值是合理的（深色档在下面重定义）。 */
  --info:var(--accent);           --info-weak:var(--accent-weak);
  --busy:#b3710f;                 --busy-weak:rgba(200,140,40,.16);
  --code-bg:rgba(15,30,55,.055);  --code-ink:var(--ink-2);

  /* ---- 字号：5 档（T-0084 · AD575；需求方 2026-09-27 弹窗拍板 11 / 12 / 13 / 15 / 20）----
     --fs-1 注释、分组标题、角标 · --fs-2 次要文字、表格、标签 · --fs-3 正文、按钮、输入框（默认）
     --fs-4 卡片 / 弹窗标题 · --fs-5 大数字、空态标题。
     旧的 8 个名字留作别名指到新 5 档（半档并掉：11.5→12、12.5→13、13.5→13），迁移期（T-0085）不断；
     谁还在用哪个别名，判据 TestFontTokensUsedAreDefined 会点名。 */
  --fs-1:11px; --fs-2:12px; --fs-3:13px; --fs-4:15px; --fs-5:20px;
  --fs-micro:var(--fs-1); --fs-caption:var(--fs-2); --fs-sm:var(--fs-2); --fs-body:var(--fs-3);
  --fs-md:var(--fs-3); --fs-lg:var(--fs-3); --fs-xl:var(--fs-4); --fs-display:var(--fs-5);

  /* ---- 行高 / 字重（只有 400 / 500 / 600 三档：700 / 800 / bold 并到 600，T-0084 C03）/ 等宽字体族 ---- */
  --lh-tight:1.35; --lh-body:1.6; --lh-loose:1.75;
  --fw-normal:400; --fw-medium:500; --fw-semibold:600;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Noto Sans Mono CJK SC",monospace;

  /* ---- 间距（4 的倍数）---- */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px;
  --gutter:14px;

  /* ---- 圆角：6（小元素）/ 10（输入框、列表项）/ 14（卡片）/ 胶囊；窗口 26、弹窗 16（T-0084 · 方案 §二）----
     --r-xs / --r-xl 并掉，留作别名（迁移期有 5 处在用 --r-xs）。
     --radius / --radius-sm / --radius-xs 是 AD201 时期留下的，旧名**暂不删**（还有一处在用）。 */
  --r-sm:6px; --r-md:10px; --r-lg:14px; --r-pill:999px;
  --r-xs:var(--r-sm); --r-xl:var(--r-lg);
  --r-window:26px;   /* = 旧 --radius    */
  --r-dialog:16px;   /* = 旧 --radius-sm */

  /* ---- 描边 / 阴影 ---- */
  --bw:1px; --bw-strong:1.5px; --bw-icon:1.8px;
  --sh-1:0 2px 8px -2px rgba(20,30,60,.18);
  --sh-2:0 10px 28px -8px rgba(20,30,60,.30);
  --sh-3:var(--shadow);              /* 窗口，沿用现值 */

  /* ---- 控件尺寸（把开关那 5 处一次性覆盖收编成 3 档）---- */
  --sw-lg-w:44px; --sw-lg-h:26px;    /* 设置主开关（现 .switch）     */
  --sw-md-w:34px; --sw-md-h:20px;    /* 卡片内 / 列表行（现 .sw-sm） */
  --sw-sm-w:30px; --sw-sm-h:18px;    /* 工具条内嵌（现在的 5 处私改都归这一档） */
  --btn-lg:34px; --btn-md:28px; --btn-sm:24px;
  --icn-btn:26px;
  --input-h:32px; --input-pad:7px 10px;
  --ic-sm:14px; --ic-md:17px; --ic-lg:24px;   /* sic() 现在写死 17px，正好是 md */
  --titlebar-h:38px;
  --side-w:176px;                             /* 应用内侧栏：一档（T-0084 取消 --side-w-wide 232） */

  /* ---- 层级（实测 35 种取值、最大 2147483000 → 8 档命名）---- */
  --z-base:0; --z-raised:10; --z-sticky:100; --z-window:800;
  --z-dock:900; --z-popover:3000; --z-modal:5000; --z-toast:9000; --z-topmost:9999;
  /* T-0085 第 2 批：「真·全屏」的窗口和虚拟机控制台这一层——压过顶栏 / Dock / 别的窗口，但在弹层 / 弹窗 / 轻提示下面。
     原来 .win.fs 写死 99999!important，于是全屏窗口里点出来的弹窗（组件层的 --z-modal 5000）被它自己盖住；
     虚拟机为了压过它把自己的弹窗写成 21 亿（T-0010 那几条注释）。现在一档令牌，全屏里的弹窗照常在上面。 */
  --z-fullscreen:2500;

  /* ---- 作业条终端（T-0084 C04）：深浅两套都是深底浅字，对比度判据量过 ≥ 4.5 ---- */
  --term-bg:#0f1624; --term-ink:#cfe3d6;
  /* ---- 弹窗后面那层压暗（组件层 dialog 用；不许组件里写 rgba） ---- */
  --scrim:rgba(8,12,20,.45);

  /* ---- 动效 ---- */
  --dur-fast:120ms; --dur:200ms; --dur-slow:320ms;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* 深色档：只重定义"本文件新增的那几个含色值的令牌"。
   基础调色板的深色档在文件末尾（T-0093 从 index.html 搬来）。 */
html[data-theme="dark"]{
  /* --info / --info-weak / --bg-selected-hover / --outline-selected **不在这里重定义**：
     它们已经从 --accent / --accent-weak 派生，而那两个在 index.html 的深色档里换过了，
     所以自动就是深色档的值。少写四行 = 少四个会漂的地方。 */
  --busy:#f5c176;  --busy-weak:rgba(240,180,90,.2);
  --term-bg:#0b111c; --term-ink:#bfe5cb;
  --scrim:rgba(0,0,0,.55);
  --code-bg:rgba(255,255,255,.055);
  --sh-1:0 2px 8px -2px rgba(0,0,0,.5);
  --sh-2:0 10px 28px -8px rgba(0,0,0,.6);
}

/* 动效只有这里这几套（T-0084 C29）：转圈 / 骨架屏 / 不定进度，外加桌面外壳的四套、AI 助手的七套。组件层与应用里**不许再写 @keyframes**——
   要新的动效就加在这里，并在组件层里用。 */
@keyframes ui-spin{to{transform:rotate(360deg)}}
@keyframes ui-spin-r{from{transform:translateX(calc(var(--w) - var(--h))) rotate(0)}to{transform:translateX(calc(var(--w) - var(--h))) rotate(360deg)}}   /* 开着的开关在保存中：滑块留在右边原地转（T-0087） */
@keyframes ui-sk{0%{background-position:100% 0}100%{background-position:-100% 0}}
@keyframes ui-indet{0%{left:-35%}100%{left:100%}}
/* 桌面外壳的四套（T-0085 第 3 批从 index.html 搬来，名字没改，外壳里照原样引用）：壁纸云飘 / 启动台进场 / 窗口开 / 窗口关 */
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(3vw)}}
@keyframes lpIn{from{opacity:0; transform:scale(1.04)} to{opacity:1; transform:none}}
@keyframes winIn{from{opacity:0; transform:translateY(12px) scale(.97)}to{opacity:1; transform:none}}
@keyframes winOut{to{opacity:0; transform:translateY(8px) scale(.97)}}
/* AI 助手 / 极简模式的几套（T-0085 第 6 批从 index.html 搬来，名字没改）：光球呼吸 / 听你说话时呼吸更大 / 加载时的双螺旋 /
   录音按钮一跳一跳 / 实时字幕的光标闪 / 执行面板冒出来；ui-pulse 是「正在跑」的小圆点（原来 inos-ui.js 里的 iuPulse，第 5 批删了之后那几个点不闪了，这里补回） */
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes breatheL{0%,100%{transform:scale(.98)}50%{transform:scale(1.10)}}
@keyframes helixSpin{to{transform:rotateY(360deg)}}
@keyframes micpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes zlblink{50%{opacity:0}}
@keyframes execIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes ui-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}

/* 无障碍：系统开了"减少动态效果"就全局关动画。
   这是**唯一一条会影响现有页面的规则**，而且只在用户自己开了那个系统开关时生效——
   那种情况下动画本来就该停，属于修 bug，不算改观感。 */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ======================= 全局组件类（批 0 先落三个） =======================
   这三个类现在**还没有任何业务在用**（批 6 才逐个换过来），先落地是为了
   ① 有个能看的标准；② 样式总览页 ui-tokens.html 拿它们当活样板。
   新写的界面可以直接用，不必等批 6。 */

/* 设置项说明：一行封顶（B8 立的规矩在这里落成类，业务里不再各写各的） */
.hint-line{font-size:var(--fs-caption);color:var(--ink-3);line-height:var(--lh-body);
  margin-top:var(--sp-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 列表行：hover / 激活 / 选中 / 选中再 hover / 键盘焦点 / 禁用，六态一次定死 */
.list-row{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);
  border-radius:var(--r-md);cursor:default;transition:background var(--dur-fast) var(--ease)}
.list-row:hover{background:var(--bg-hover)}
.list-row:active{background:var(--bg-active)}
.list-row.sel{background:var(--bg-selected);outline:var(--bw-strong) solid var(--outline-selected)}
.list-row.sel:hover{background:var(--bg-selected-hover)}
.list-row:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.list-row[aria-disabled="true"]{background:var(--bg-disabled);color:var(--ink-disabled);pointer-events:none}

/* 终端日志 / 检查更新的输出：四处（AI 引擎、Ollama、语音引擎、应用中心）以后共用这一个 */
.term-log{font:var(--fs-sm)/1.55 var(--font-mono);background:var(--code-bg);color:var(--code-ink);
  border:var(--bw) solid var(--line);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);
  max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-all}
.term-log .ok{color:var(--ok)} .term-log .warn{color:var(--warn)}
.term-log .err{color:var(--danger)} .term-log .dim{color:var(--ink-4)}
/* ANSI 一律映射到上面四个语义色，不要直接用原始 ANSI 亮色——深浅主题下会瞎 */

/* ============================================================================
 * 配色令牌（AD201）—— T-0093 从 index.html 原样搬来（2026-10-01），值一个没改。
 * 浅色是 :root，深色是 html[data-theme="dark"]；页面按 prefers-color-scheme 设 data-theme（index / login / setup / installer）。
 * ==========================================================================*/
:root{
  /* ===== AD201 全局配色变量（浅色）=====
     文字四级：ink(标题/正文) > ink-2(次要) > ink-3(说明/小字) > ink-4(占位/禁用)
     填充三级：fill-1(极淡底) fill-2(悬停/标签底) fill-3(激活/轨道底)
     线条两级：line(默认描边) line-strong(强调描边)
     强调色：accent(纯色块) accent-ink(强调色文字，保证在底上够黑) accent-weak(强调色淡底)
     语义色：ok / warn / danger 各配一个 -weak 淡底；开关：sw-off / sw-on / sw-knob
     深色主题在下面整套重定义——所有模块只许用这些变量，不要再写死灰色 rgba，
     否则换主题必然出现「浅色能看深色看不清」（需求方 2026-09-08 反馈）。 */
  /* T-0085 第 3 批：桌面外壳用到的颜色也起了名字（原来写在各条规则里）——窗口底 / 图标块投影 / 红黄绿蓝四个窗口灯 / 窗口灯提示底 /
     运行光点 / 启动台图标底。浅深两套主题共用（灯色和提示底在两套主题下本来就一样；窗口底和光点跟着 --srf / --sb 走）。 */
  --win-bg:rgba(var(--srf),var(--win-a));   /* B-0060：窗口底色＝表面色 × 不透明度 winA（设置里显示的是 100−winA 的「透明度」）。🔴 曾被 T-0085 迁移替换成 var(--win-bg) 自己引用自己 ⇒ 无效值 ⇒ 窗口全透 */ --win-head:rgba(var(--srf),.06); --tile-gloss-end:rgba(var(--srf),0);
  --sh-tile:0 8px 18px -6px rgba(20,30,60,.5); --sh-dot:0 0 2px rgba(0,0,0,.4);
  --tl-close:#ff5f57; --tl-min:#febc2e; --tl-max:#28c840; --tl-full:#2f8bff; --tl-glyph:rgba(0,0,0,.5); --tl-glyph-2:rgba(0,0,0,.55);
  --tip-bg:rgba(20,28,45,.94); --ghost-bg:rgba(20,24,34,.85); --dot:rgba(var(--sb),.85);
  --tile-launch:linear-gradient(150deg,#8b93a7,#c6cddb);
  --tile-voice-m:linear-gradient(150deg,#3c7bff,#6fa0ff); --tile-voice-f:linear-gradient(150deg,#7b5cf0,#a98bff); --tile-voice-local:linear-gradient(150deg,#12b3a6,#5fd8cd); --tile-workdir:linear-gradient(150deg,#6d8cff,#3b5bdb); --tile-temp:linear-gradient(150deg,#f0a63a,#d98b12); --tile-dev:linear-gradient(150deg,#2b2b2b,#131010);
  /* 设置 → 个性化 → 开机画面的缩小预览：照开机那块黑屏的样子画（和主题无关） */
  --boot-bg:#000; --boot-disc:#0a0e16; --boot-edge:inset 0 0 0 1px rgba(255,255,255,.07); --boot-glow:0 0 14px rgba(255,255,255,.55),0 0 30px rgba(207,224,255,.35);
  /* T-0085 第 4 批：文件窗口里和主题无关的几块颜色也起了名字（原来写在 inos-files.js 各条规则里）——
     看图 / 看视频的深底和它上面的浮动工具条（--media-*）、代码编辑区底（--editor-bg）、文档预览那张「白纸」（--paper*）、
     打印出来的纸面（--print-*，打印用的临时文档里没有页面的令牌，由 inos-files.js 按名字把现值抄进去）、Office 断线提示条底（--notice-bg）。 */
  --media-bg:#0d1526; --media-bar:rgba(20,28,45,.62); --media-pop:rgba(20,28,45,.92); --media-chip:rgba(10,18,35,.6);
  --media-ink:#eef3ff; --media-hover:rgba(255,255,255,.16); --media-line:rgba(255,255,255,.18); --media-knob:#fff;
  --editor-bg:#1e1e1e; --notice-bg:#fff3cf; --tile-word:#2f6bff; --tile-excel:#0f9d58; --tile-ppt:#f0762e;   /* Office 应用「新建」三块的底色（产品色，和主题无关） */
  --paper:#fff; --paper-ink:#1b2432; --paper-code:#f2f5fa; --paper-line:#dde3ee; --paper-head:#eef2f9; --paper-sel:#f4f8ff;
  --print-ink:#111; --print-line:#bbb; --print-sub:#666; --print-rule:#e2e2e2; --print-marker:#999;
  /* T-0085 第 5 批：曲线的几种系列色（任务管理器 CPU / 内存 / 磁盘 / 显卡 / 网络 / 写入那条虚线；原来写死在 inos-procs.js 里），和主题无关 */
  --chart-1:#4aa8d8; --chart-2:#7b8fe0; --chart-3:#2fb37a; --chart-4:#c77dff; --chart-5:#d1679e; --chart-6:#f0a33a;
  --accent:#2f6bff; --accent-2:#5b8bff; --accent-ink:#1a4ab8; --accent-weak:rgba(47,107,255,.12);
  --ink:#121d2a; --ink-2:#33414f; --ink-3:#3f4a58; --ink-4:#788494;
  --fill-1:rgba(15,30,55,.05); --fill-2:rgba(15,30,55,.09); --fill-3:rgba(15,30,55,.14);
  /* AD469 停止色（UI 规格表 §0）。规格给的是深色底下的落点（边、底、字、方块四个色值见 UI 规格表 §0）——那套在亮色主题下字几乎看不见，
     所以亮色这份取同一色相压深，暗色那份照规格原值。规格自己也写了"颜色若与现网主题
     变量已有对应就用现网变量"，停止色没有对应变量，这里新建一组。 */
  --stop-line:rgba(214,74,30,.55); --stop-bg:rgba(214,74,30,.10); --stop-fg:#b3400f; --stop-sq:#d64a1e;
  --line:rgba(20,40,70,.16); --line-strong:rgba(20,40,70,.3);
  --ok:#115f32; --ok-weak:rgba(31,138,76,.14); --warn:#724a0e; --warn-weak:rgba(200,140,40,.18);
  /* 路由页三个角色色（AD340 · UI规格表 §0）。浅色单独定，不许复用深色值——浅底上那三个色几乎看不见。 */
  --rt-wan:#2f6bff; --rt-lan:#1a9a52; --rt-wifi:#7a45d8; /* ui-lint-ignore: 这一行就是变量定义本身，色值只能写在这里 */
  --danger:#b01f45; --danger-weak:rgba(201,42,82,.13);
  --sw-off:rgba(120,130,150,.42); --sw-on:var(--accent-solid); --sw-knob:#fff;
  /* 实心控件：白字要达 4.5:1，所以填充色比 --accent / --danger 更深一档 */
  --accent-solid:#2559d8; --danger-solid:#b52447; --ok-solid:#177a41; --on-accent:#fff;
  --tag-purple:#8a3fb0; --tag-teal:#0d8b81; --tag-indigo:#4a4ad0;
  --pop-bg:#ffffff; --pop-ink:#1b2432;   /* AD210：原生下拉弹出列表专用（不透明的 --srf 实色） */
  --srf:255,255,255; --glass:rgba(var(--srf),.78); --win-a:.3;
  --sb:0,0,0; --sb-a:.28; --sb-w:8px;  /* 全局悬浮滚动条（AD95）：浅色主题=深灰半透明 */
  /* T-0085 第 6 批：把 --srf / --sb 这两个「三个数」也做成颜色，半透明一律写 color-mix(in srgb,var(--srf-c) 60%,transparent)——
     不再写 rgba(var(--srf),.6)（守门认不出那是令牌，而且每个透明度都是一份手写）。深色档换了 --srf / --sb，这两个跟着变。
     --shade / --light：和主题无关的纯黑 / 纯白，只给阴影、压暗、高光调透明度用（配色一律走上面的语义令牌）。 */
  --srf-c:rgb(var(--srf)); --sb-c:rgb(var(--sb)); --shade:#000; --light:#fff;
  --sb-thumb:rgba(var(--sb),var(--sb-a)); --sb-thumb-hover:rgba(var(--sb),calc(var(--sb-a) + .18));   /* 滚动条滑块（透明度本身是令牌 --sb-a，所以只能在这里拼） */
  --desk-bg:#0d1830;   /* 壁纸还没画出来之前桌面的底色（和主题无关） */
  --night-tint:rgba(255,150,40,.16);   /* 夜间模式盖在最上面的那层暖色 */
  --native-bg:#10151f;   /* 原生应用（xpra）窗口的底：画面没出来之前、画面边角（和主题无关） */
  --glass-strong:rgba(var(--srf),.93); --glass-thin:rgba(var(--srf),.62);
  --stroke:rgba(var(--srf),.55); --stroke-soft:rgba(var(--srf),.35);
  --shadow:0 24px 70px -18px rgba(20,30,60,.45);
  --bd:blur(34px) saturate(1.5) brightness(1.55);
  --radius:26px; --radius-sm:16px; --radius-xs:12px;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
}
/* 深色主题（AD94）：所有玻璃/窗口表面都用 --srf 作底色，切主题只换变量；跟随系统=按 prefers-color-scheme 自动设置 data-theme */
html[data-theme="dark"]{ --sb:255,255,255; --sb-a:.34; --srf:30,34,46;
  /* 深色：文字整体提亮（说明小字尤其——玻璃面板叠在壁纸上，太暗会糊成一片），填充与线条换成白色低透明度 */
  --ink:#eaf0f8; --ink-2:#ccd6e4; --ink-3:#b0bccc; --ink-4:#8b96a6;
  --accent:#4f83ff; --accent-2:#7ba3ff; --accent-ink:#b9d0ff; --accent-weak:rgba(120,160,255,.2);
  --fill-1:rgba(255,255,255,.06); --fill-2:rgba(255,255,255,.1); --fill-3:rgba(255,255,255,.16);
  --stop-line:rgba(255,107,61,.5); --stop-bg:rgba(255,107,61,.12); --stop-fg:#ffb39e; --stop-sq:#ff8a65;
  --line:rgba(255,255,255,.14); --line-strong:rgba(255,255,255,.26);
  --ok:#6fdda3; --ok-weak:rgba(60,180,110,.22); --warn:#f5c176; --warn-weak:rgba(240,180,90,.2);
  --rt-wan:#8fb4ff; --rt-lan:#7fd48a; --rt-wifi:#c9a2ff; /* ui-lint-ignore: 这一行就是变量定义本身，色值只能写在这里 */
  --danger:#ffb3c1; --danger-weak:rgba(255,110,140,.18);
  --sw-off:rgba(255,255,255,.26); --sw-knob:#f2f5fb;
  --accent-solid:#2f62d8; --danger-solid:#c2385a; --ok-solid:#1e8a4e; --on-accent:#fff;
  --tag-purple:#d29bf0; --tag-teal:#5fd8cd; --tag-indigo:#9c9cf5;
  --win-a:.3; --glass:rgba(30,34,46,.7); --glass-strong:rgba(30,34,46,.9); --glass-thin:rgba(30,34,46,.5);
  --stroke:rgba(255,255,255,.14); --stroke-soft:rgba(255,255,255,.08); --shadow:0 24px 70px -18px rgba(0,0,0,.75);
  --pop-bg:#1e222e; --pop-ink:#eaf0f8;   /* AD210：原生下拉弹出列表专用（不透明的 --srf 实色） */
  --bd:blur(34px) saturate(1.4) brightness(.42); color-scheme:dark }
