/* =============================================================================
 * theme-override.css · 昊翔管家全局企业设计语言（Design System）覆盖层
 * -----------------------------------------------------------------------------
 * 由 src/middleware/static.js 在服务端统一注入：门户 + 五大子系统
 * （base / fina / che2 / kehu / yygj）的每个 HTML <head> 末尾自动挂接，
 * 子系统业务源码零改动。
 *
 * 设计基调：现代 B2B 商业 SaaS —— 中性灰白底、纯白卡片、商务蓝主色，
 *           细边框、弱投影、小圆角；彻底消除浅粉/玫红「玩具感」。
 *
 * 两层覆盖策略：
 *   ① 令牌层（:root）：各系统「颜色/圆角/阴影一律走 CSS 变量」，重定义同名变量即可
 *      整体换肤；:root 与子系统根块同特异性，本文件在 head 末尾加载故胜出。
 *      夜间主题（html[data-theme=night]）特异性更高，独立打开时仍可切换，不受影响。
 *   ② 组件层：少数硬编码粉色（类规则 / 内联 style / SVG 图表属性）用定向选择器收口。
 * ========================================================================== */

/* =============================================================================
 * 主题令牌层：玫粉（默认）/ 商务蓝（可切）
 * 玫粉色值取自系统被压制前的原品牌板（运营管家 :root 原型）：
 *   底 #fdf1f4 · 次底 #fbe7ee · 卡内浅底 #fff7fa · 边 #f3d6e0 · 柔底 #fbe3ec
 *   主品牌 #d6336c · 激活文字 #b02659 · 侧栏选中 #f7c9d8/#a61e4d · 图表二系 #f06595
 * 语义色（成功/警告/危险）与表格行中性底 **跨主题不变**，粉色只当品牌与强调用。
 * ============================================================================= */

:root,
html[data-theme="rose"]{
  /* 字体：保持原覆盖层的无衬线规范，不随主题变 */
  --ff-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
             "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
  --ff-serif: var(--ff-sans);
  --ff-num: var(--ff-sans);
  --hx-font: var(--ff-sans);

  /* 底色与容器：低饱和粉底 */
  --bg: #fdf1f4; --bg2: #fbe7ee;
  --panel: #ffffff; --panel2: #fff7fa;
  --card: #ffffff; --card2: #fff7fa;
  --soft: #fbe3ec;

  /* 边框 */
  --line: #f3d6e0; --line2: #f3d6e0;
  --accent-line: #f7c9d8;
  --brandLine: rgba(214,51,108,.32);

  /* 文字：系统原值 */
  --txt: #333333; --sub: #666666; --dim: #a08b93;
  --text: #333333; --muted: #a08b93; --txt2: #a08b93;
  --ink: #333333; --ink-2: #666666;

  /* 品牌主色：玫粉（--gold/--brand/--pri 是各系统的历史别名，同值归一） */
  --pri: #d6336c; --pri-d: #b02659; --pri-h: #e05c8a; --pri-mid: #f06595;
  --pri-soft: #ffe3ec; --pri-line: #f7b6cd;
  --gold: #d6336c; --gold2: #b02659;
  --brand: #d6336c; --brand2: #b02659;
  --brandSoft: rgba(214,51,108,.10);
  --brand-a: #d6336c; --brand-b: #f06595; --brand-on: #ffffff;
  --cyan: #f06595;

  /* 主按钮 */
  --grad-pri: #d6336c; --grad-pri-txt: #ffffff;

  /* 侧栏选中态 */
  --nav-on: #f7c9d8; --nav-on-fg: #a61e4d; --nav-hover: #fbe4ea;

  /* 阴影与圆角：跨主题不变（只改颜色这一件事） */
  --shadow: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.08);
  --sh: var(--shadow); --sh-card: var(--shadow);
  --sh-pop: 0 12px 32px rgba(16,24,40,.16);
  --sh-btn: 0 1px 2px rgba(214,51,108,.20);
  --sh-modal: 0 12px 40px rgba(16,24,40,.18);
  --sh-drawer: -8px 0 30px rgba(16,24,40,.14);
  --sh-gb: 0 16px 48px rgba(16,24,40,.22);
  --r: 8px; --r-ctl: 6px;

  /* 语义状态色：跨主题不变 */
  --ok: #16a34a; --warn: #d97706; --bad: #dc2626;
  --info: #d6336c;
  --ok-soft: rgba(22,163,74,.12);
  --warn-soft: rgba(217,119,6,.14);
  --bad-soft: rgba(220,38,38,.12);
  --info-soft: rgba(214,51,108,.12);
  --ok-bg: #e9f7ef; --ok-line: #b9e3c9;
  --warn-bg: #fdf1e3; --warn-line: #f5d7ad;
  --bad-bg: #fdeaea; --bad-line: #f3bcbc;

  /* 共享导航 hx-nav 令牌 */
  --hx-pink-bg: #fdf1f4; --hx-pink-soft: #fbe7ee;
  --hx-rose: #d6336c; --hx-rose-dk: #b02659; --hx-rose-lite: #f7b6cd;
  --hx-ink: #333333; --hx-ink-2: #666666; --hx-ink-3: #a08b93;
  --hx-line: #f3d6e0; --hx-line-2: #f3d6e0; --hx-white: #ffffff;

  /* 分享页历史令牌 */
  --pink-bg: #fdf1f4; --rose-soft: #ffe3ec;

  /* 品牌色半透明档（聚焦光环等）：由组件层的 rgba(22,119,255,α) 映射而来。
     α 取值清单是从原件逐字提取的：.10 .12 .18 .20 .25 .35，不多不少。 */
  --pri-a10: rgba(214,51,108,.10);
  --pri-a12: rgba(214,51,108,.12);
  --pri-a18: rgba(214,51,108,.18);
  --pri-a20: rgba(214,51,108,.20);
  --pri-a25: rgba(214,51,108,.25);
  --pri-a35: rgba(214,51,108,.35);
}

/* 商务蓝：与改造前逐值一致，供顶栏切换器切回 */
html[data-theme="blue"]{
  --bg: #f5f7fa; --bg2: #eef2f7;
  --panel: #ffffff; --panel2: #f8fafc;
  --card: #ffffff; --card2: #f8fafc;
  --soft: #f1f5f9;
  --line: #e2e8f0; --line2: #e2e8f0;
  --accent-line: #cbd5e1;
  --brandLine: rgba(22,119,255,.35);
  --txt: #1e293b; --sub: #334155; --dim: #64748b;
  --text: #1e293b; --muted: #64748b; --txt2: #64748b;
  --ink: #1e293b; --ink-2: #334155;
  --pri: #1677ff; --pri-d: #0958d9; --pri-h: #4096ff; --pri-mid: #69b1ff;
  --pri-soft: #e6f4ff; --pri-line: #91caff;
  --gold: #1677ff; --gold2: #0958d9;
  --brand: #1677ff; --brand2: #0958d9;
  --brandSoft: rgba(22,119,255,.10);
  --brand-a: #1677ff; --brand-b: #64748b; --brand-on: #ffffff;
  --cyan: #08979c;
  --grad-pri: #1677ff; --grad-pri-txt: #ffffff;
  --nav-on: #e6f4ff; --nav-on-fg: #0958d9; --nav-hover: #f1f5f9;
  --sh-btn: 0 1px 2px rgba(22,119,255,.20);
  --info: #1677ff; --info-soft: rgba(22,119,255,.12);
  --hx-pink-bg: #f5f7fa; --hx-pink-soft: #eef2f7;
  --hx-rose: #1677ff; --hx-rose-dk: #0958d9; --hx-rose-lite: #91caff;
  --hx-ink: #1e293b; --hx-ink-2: #334155; --hx-ink-3: #64748b;
  --hx-line: #e2e8f0; --hx-line-2: #e2e8f0; --hx-white: #ffffff;
  --pink-bg: #f5f7fa; --rose-soft: #e6f4ff;
  --pri-a10: rgba(22,119,255,.10); --pri-a12: rgba(22,119,255,.12);
  --pri-a18: rgba(22,119,255,.18); --pri-a20: rgba(22,119,255,.20);
  --pri-a25: rgba(22,119,255,.25); --pri-a35: rgba(22,119,255,.35);
}

/* 工具页（roi/profit/contract/entrust）自带 html[data-theme=light] 声明，
   特异性高于 :root；这里给一份同特异性、加载更晚的块，值与玫粉默认一致，
   否则它们会退回自己文件里那套中性灰白。 */
html[data-theme="light"]{
  --bg: #fdf1f4; --bg2: #fbe7ee; --panel: #ffffff; --panel2: #fff7fa; --soft: #fbe3ec;
  --line: #f3d6e0; --txt: #333333; --sub: #666666; --dim: #a08b93;
  --pri: #d6336c; --pri-d: #b02659; --pri-soft: #ffe3ec; --pri-line: #f7b6cd;
  --gold: #d6336c; --gold2: #b02659; --brand: #d6336c;
  --sh: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.08);
}

/* =============================================================================
 * theme-override.css · 昊翔管家全局企业设计语言（Design System）覆盖层
 * -----------------------------------------------------------------------------
 * 由 src/middleware/static.js 在服务端统一注入：门户 + 五大子系统
 * （base / fina / che2 / kehu / yygj）的每个 HTML <head> 末尾自动挂接，
 * 子系统业务源码零改动。
 *
 * 设计基调：现代 B2B 商业 SaaS —— 中性灰白底、纯白卡片、商务蓝主色，
 *           细边框、弱投影、小圆角；彻底消除浅粉/玫红「玩具感」。
 *
 * 两层覆盖策略：
 *   ① 令牌层（:root）：各系统「颜色/圆角/阴影一律走 CSS 变量」，重定义同名变量即可
 *      整体换肤；:root 与子系统根块同特异性，本文件在 head 末尾加载故胜出。
 *      夜间主题（html[data-theme=night]）特异性更高，独立打开时仍可切换，不受影响。
 *   ② 组件层：少数硬编码粉色（类规则 / 内联 style / SVG 图表属性）用定向选择器收口。
 * ========================================================================== */

:root{
  /* ---- 字体：统一现代无衬线中西文系统字体栈 ---- */
  --ff-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
             "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;
  --ff-serif: var(--ff-sans);   /* 标题不再走宋体衬线，全部无衬线 */
  --ff-num: var(--ff-sans);     /* 大数字同栈，tabular-nums 对齐 */
  --hx-font: var(--ff-sans);    /* 共享导航 hx-nav 字体 */

  /* ---- 底色与容器：去粉底，统一中性灰白 ---- */
  --bg: var(--bg); --bg2: var(--bg2);
  --panel: #ffffff; --panel2: var(--panel2);
  --card: #ffffff; --card2: var(--panel2);
  --soft: var(--soft);

  /* ---- 边框：浅灰细边 ---- */
  --line: var(--line); --line2: var(--line);
  --accent-line: var(--accent-line);
  --brandLine: var(--pri-a35);

  /* ---- 文字：标题 / 正文 / 辅助 三级 ---- */
  --txt: var(--txt); --sub: var(--sub); --dim: var(--dim);
  --text: var(--txt); --muted: var(--dim); --txt2: var(--dim);
  --ink: var(--txt); --ink-2: var(--sub);

  /* ---- 品牌主色：商务蓝 ---- */
  --accent: var(--pri); --accent2: var(--pri-d); --accent-d: var(--pri-d);
  --accent-soft: var(--pri-soft); --accent-l: var(--pri-soft);
  --gold: var(--pri); --gold2: var(--pri-d);       /* che2/yygj/工具页的「主品牌」历史名 */
  --brand: var(--pri); --brand2: var(--pri-d);
  --brandSoft: var(--pri-a10);
  --pri: var(--pri);
  --cyan: #08979c;                         /* 原 #f06595 粉色别名归位为青色（图表分类色） */

  /* ---- 主按钮：蓝底白字 ---- */
  --grad-pri: var(--pri); --grad-pri-txt: #ffffff;

  /* ---- 品牌别名（部分渲染器使用） ---- */
  --brand-a: var(--pri); --brand-b: var(--dim); --brand-on: #ffffff;

  /* ---- 侧栏选中态（独立打开时） ---- */
  --nav-on: var(--pri-soft); --nav-on-fg: var(--pri-d); --nav-hover: var(--soft);

  /* ---- 阴影：卡片弱投影；弹层中性投影 ---- */
  --shadow: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.08);
  --sh: var(--shadow); --sh-card: var(--shadow);
  --sh-pop: 0 12px 32px rgba(16,24,40,.16);
  --sh-btn: 0 1px 2px var(--pri-a20);
  --sh-modal: 0 12px 40px rgba(16,24,40,.18);
  --sh-drawer: -8px 0 30px rgba(16,24,40,.14);
  --sh-gb: 0 16px 48px rgba(16,24,40,.22);

  /* ---- 圆角：卡片 8 / 控件 6 ---- */
  --r: 8px; --r-ctl: 6px;

  /* ---- 语义状态色：成功 / 警告 / 危险（保留语义，统一标准值） ---- */
  --ok: #16a34a; --warn: #d97706; --bad: #dc2626;
  --info: var(--pri);
  --ok-soft: rgba(22,163,74,.12);
  --warn-soft: rgba(217,119,6,.14);
  --bad-soft: rgba(220,38,38,.12);
  --info-soft: var(--pri-a12);
  --ok-bg: #e9f7ef; --ok-line: #b9e3c9;
  --warn-bg: #fdf1e3; --warn-line: #f5d7ad;
  --bad-bg: #fdeaea; --bad-line: #f3bcbc;

  /* ---- 共享导航 hx-nav 令牌 ---- */
  --hx-pink-bg: var(--bg); --hx-pink-soft: var(--bg2);
  --hx-rose: var(--pri); --hx-rose-dk: var(--pri-d); --hx-rose-lite: var(--pri-line);
  --hx-ink: var(--txt); --hx-ink-2: var(--sub); --hx-ink-3: var(--dim);
  --hx-line: var(--line); --hx-line-2: var(--line); --hx-white: #ffffff;

  /* ---- 分享页历史令牌 ---- */
  --pink-bg: var(--bg); --rose-soft: var(--pri-soft);
}

/* 工具页（roi/profit/contract/entrust）以 html[data-theme=light] 声明令牌，
   特异性高于 :root；给一份同特异性、加载更晚的同值块收口。 */
html[data-theme="light"]{
  --bg: var(--bg); --bg2: var(--bg2);
  --panel: #ffffff; --panel2: var(--panel2);
  --soft: var(--soft);
  --line: var(--line);
  --txt: var(--txt); --sub: var(--sub); --dim: var(--dim);
  --gold: var(--pri); --gold2: var(--pri-d);
  --brand: var(--pri);
  --sh: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.08);
}

/* =============================================================================
 * 一、字体强制（规范明确要求 !important）
 * ========================================================================== */
*, *::before, *::after{
  font-family: var(--ff-sans) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3,h4,h5,h6{ font-weight: 600; }
.num{ font-variant-numeric: tabular-nums; }

/* =============================================================================
 * 二、全局底色：body / 常见布局容器
 * ========================================================================== */
body{
  background: var(--bg) !important;
  color: var(--txt);
}
::selection{ background: var(--pri-a18); color: inherit; }

/* =============================================================================
 * 三、主操作按钮：所有「新建 / 登记 / 保存 / 提交」类统一蓝底白字
 * ========================================================================== */
.btn.pri, .btn.primary, .btn-primary,
button.primary, .ht-btn.primary,
.btn.g, .hxcolmenu .btn{
  background: var(--pri) !important;
  border-color: var(--pri) !important;
  color: #ffffff !important;
  border-radius: 6px;
  box-shadow: 0 1px 2px var(--pri-a25);
  transition: background .15s, border-color .15s;
}
.btn.pri:hover, .btn.primary:hover, .btn-primary:hover,
button.primary:hover, .ht-btn.primary:hover,
.btn.g:hover{
  background: var(--pri-h) !important;
  border-color: var(--pri-h) !important;
}
.btn.pri:disabled, .btn.primary:disabled, .btn-primary:disabled{
  background: var(--pri-line) !important;
  border-color: var(--pri-line) !important;
  cursor: not-allowed;
  box-shadow: none;
}
/* 次按钮统一中性细边 */
.btn{ border-radius: 6px; }

/* =============================================================================
 * 四、卡片 / 容器：白底 + 浅灰细边 + 8px 圆角 + 弱投影
 * ========================================================================== */
.card, .panel, .bsys, .sfield, .lcard{
  background: #ffffff !important;
  border: 1px solid var(--line) !important;
  border-radius: 8px;
  box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.08);
}

/* =============================================================================
 * 五、表单控件：聚焦时蓝色描边 + 柔和蓝色光环
 * ========================================================================== */
input, select, textarea{ border-radius: var(--r-ctl); }
input:focus, select:focus, textarea:focus{
  border-color: var(--pri) !important;
  box-shadow: 0 0 0 3px var(--pri-a12) !important;
  outline: none;
}
/* 复选/单选/范围滑块蓝色 */
input[type="checkbox"], input[type="radio"]{ accent-color: var(--pri); }
input[type="range"]{ accent-color: var(--pri); }

/* =============================================================================
 * 六、表格：表头中性浅灰底
 * ========================================================================== */
table th, .gtable th, .ht-tb thead th{
  background: var(--panel2) !important;
  color: var(--sub);
  font-weight: 600;
}

/* ── 表头行定版（老板 2026-10-04 图一令：所有页面的顶列一律上下左右居中）─────
 * 本段是全系统「表头对齐」的唯一真源。各页 / 各组件不得再自行给 th 写左对齐或右对齐，
 * 需要豁免的表挂 .hx-noctr（见下），不要另起一条 th 规则，避免出现两套真源。
 * 只动 th，不动 td：数据格保持原有左对齐与 .num / .n / .r 右对齐。
 * 覆盖范围 = 被 static.js 注入本文件的所有页面；车间现场大屏 che2/screen.html
 * 本就不注入（深色看板另有版式），不在此列。 */
th, .gtable th, .ht-tb thead th{
  text-align: center !important;
  vertical-align: middle !important;
}
/* 豁免：th 不是「表头」而是「行标签」或「纸面版式」的表
 *   .pm-tbl th.pm-h  底座权限矩阵首列＝角色名（每行一个角色，不是表头行）
 *   .doc-paper th    客户管家的合同 / 发货单打印件（纸面另有排版要求）
 *   .hx-noctr th     通用逃生舱：财务对账单·工资条、运营管家 4 张「名称｜值」小表等 */
.pm-tbl th.pm-h, .doc-paper th, .hx-noctr th{
  text-align: left !important;
  vertical-align: middle !important;
}

/* =============================================================================
 * 七、标签 / 徽章：语义色保留，中性标签收敛为浅蓝；去「.pink」粉标签
 * ========================================================================== */
.tag{
  display: inline-flex; align-items: center;
  border-radius: 4px; padding: 1px 8px;
  font-size: 12px; line-height: 1.7;
  border: 1px solid var(--pri-line);
  background: var(--pri-soft); color: var(--pri);
}
.tag.ok{ background: #e9f7ef; color: #15803d; border-color: #b9e3c9; }
.tag.warn{ background: #fdf1e3; color: #b45309; border-color: #f5d7ad; }
.tag.bad{ background: #fdeaea; color: #b91c1c; border-color: #f3bcbc; }
.tag.info{ background: var(--pri-soft); color: var(--pri); border-color: var(--pri-line); }
.tag.pink{ background: var(--pri-soft) !important; color: var(--pri) !important; border-color: var(--pri-line) !important; }

/* =============================================================================
 * 八、标题装饰小竖条：统一品牌蓝（变量已换色，此处直接兜底）
 * ========================================================================== */
.sec-title::before, .ghead .gt::before,
.box h3::before, .card h3::before, .sect-t::before,
.dlg h3::before, .mcard h4::before,
.ord-grid .ord-sec::before, .rgrp>h3::before,
.card .ct::before, .grp-t::before{
  background: var(--pri) !important;
}
.tl::before{ background: var(--pri) !important; }
.tl .ev::before{ background: var(--pri) !important; }

/* =============================================================================
 * 九、图表去粉
 * -----------------------------------------------------------------------------
 * SVG 表现属性（fill/stroke）优先级最低，任何匹配的 CSS 规则都能覆盖，
 * 无需改生成图表的业务 JS。玫红/粉色系列 → 蓝色系。
 * ========================================================================== */
svg [fill="#d6336c"], svg [stroke="#d6336c"]{ fill: var(--pri); stroke: var(--pri); }
svg [fill="#f06595"]{ fill: var(--pri-h); }
svg [fill="#faa2c1"]{ fill: var(--pri-mid); }
svg [fill="#ffc9d8"]{ fill: var(--pri-line); }
/* 单独出现时不要误改 stroke：上面 d6336c 的合并规则对仅描边元素也无害 */

/* JS 生成的内联 style（图例文字 / 进度条等）：内联样式需 !important 压制 */
a[style*="#d6336c"], span[style*="#d6336c"],
div[style*="color:#d6336c"]{ color: var(--pri) !important; }
div[style*="background:#d6336c"]{ background: var(--pri) !important; }
div[style*="#f4e4ea"]{ background: var(--line) !important; }

/* =============================================================================
 * 十、零星硬编码粉色（变量管不到的）
 * ========================================================================== */
/* base 登录身份切换条 */
.lg-tabs{ background: var(--soft) !important; }

/* setpw.html：body 底色已由全局 body 规则统一；.who 信息条硬编码粉底在此收敛 */
.who{ background: var(--panel2) !important; border:1px solid var(--line); }

/* bill.html / payslip.html：打印按钮 .btn.g 已在主按钮规则内收敛；
   其本页 .tag 硬编码粉底由第七节 .tag 通用规则覆盖。 */

/* 分享页 share.html（独立窗口打开的对外页）：变量 --rose 在别处是语义红，
   故按该页自己的选择器定向收敛为蓝。 */
.hd b{ color: var(--pri) !important; }
a.btn{ border-color: var(--pri); color: var(--pri); border-radius: 6px; }
a.btn:hover{ background: var(--pri-soft); }
a.btn.solid{ background: var(--pri); border-color: var(--pri); color: #ffffff; }
a.btn.solid:hover{ background: var(--pri-h); border-color: var(--pri-h); }
#box button{
  background: var(--pri) !important; border: 1px solid var(--pri) !important;
  color: #ffffff !important; border-radius: 6px;
}
#box button:hover{ background: var(--pri-h) !important; border-color: var(--pri-h) !important; }

/* =============================================================================
 * 十一、表格行染色封杀：待办/预警类行严禁整行刷粉红底
 * -----------------------------------------------------------------------------
 * 成熟企业级 SaaS 的行级强调只允许两种形态：
 *   ① 整行底色 = 纯白或柔和中性浅灰（var(--panel2)），悬停 var(--soft)；
 *   ② 强调集中在数字本身（红底白字小胶囊徽章，见各页 .nbadge / .cnt-badge）。
 * 任何历史代码用 warn/alert/pending/danger 类名或 .bg-pink 给整行刷粉（#fff1f2 /
 * #fee2e2 / rgba(255,0,0,*) 一族）都在此被强制拦下，杜绝再次冒头。
 * ========================================================================== */
tr[class*="warn"], tr[class*="alert"], tr[class*="pending"], tr[class*="danger"],
.table-row-warn, .table-row-alert, .has-todo, .bg-pink {
  background-color: var(--panel2) !important;
}
tr[class*="warn"]:hover, tr[class*="alert"]:hover,
tr[class*="pending"]:hover, tr[class*="danger"]:hover,
.table-row-warn:hover, .table-row-alert:hover, .has-todo:hover, .bg-pink:hover {
  background-color: var(--soft) !important;
}
/* 悬停也禁止粉色系：一律收敛到中性浅灰蓝 */
tr:hover td{ background: #f7f9fc !important; }

/* =============================================================================
 * 十二、词库下拉自绘组件 hx-dict-select —— 样式真源不在此处
 * -----------------------------------------------------------------------------
 * 组件自带一份 /hx-dict-select.css（与 hx-grid-v1.css、ht-table.js 同一条路子）。
 * 为什么不放本收口段：phone.html 这类由 express.static 直发的页面**不吃本注入层**
 * （static.js 只给 /<sys>/ 下的 HTML 注 <link>），放这里手机端就得再抄一份同义规则，
 * 那就成了两处真源。组件 CSS 一律只取令牌并带 --surf/--ink/--acc 兜底，
 * 企业主题层与手机壳各自那套令牌都能吃到，颜色仍不需要各页自写。
 * ========================================================================== */
