/* ==========================================================================
   parts-tokens.css —— 设计令牌（全站唯一数值真源）
   --------------------------------------------------------------------------
   【铁律】任何部件样式只准引用本文件的 --part-* 令牌。
          禁止硬编码颜色、禁止私有变量（历史上出现过 --art-* 私有变量
          与主题令牌两套并存，导致「改了主题色页面没反应」）。

   【R63 / P1 令牌归一】本文件从「部件层令牌」升级为「全站设计令牌」：
     1. 新增基础色板层（--t-*）—— 颜色字面量只允许出现在这一层，
        是全站**唯一数值落点**。
     2. 部件语义令牌 --part-* → 全部 `var(--t-*)` 派生；
        皮肤换肤层 skin-c.css 的 --c-* → 同样 `var(--t-*)` 派生。
     3. 之前两套令牌各自写字面量（D1 债务）：卡片夜间面部件 #2a2438、
        皮肤 #262135，同一视觉两个值。现在只有一个 `--t-pearl`。
     4. 校验：.workbuddy/check-tokens.js 断言 --t-* 与 --part-* / --c-*
        派生关系完整、无字面量泄漏。
        【R65 血泪坑】注释里**禁止**把两个令牌用斜杠直接连写 ——
        星号紧接斜杠会被浏览器当成**注释结束符**，注释提前闭合 →
        紧随其后的「:root 令牌块」被并进非法选择器 →
        **整块亮色令牌规则被解析器丢弃**。
        （实测：全站 1384 处 var(--c-*) / var(--part-*) 声明在亮色下失效；
          暗色因 body.night 块排在后面而幸免。）
        改法：两个令牌之间**留空格**再写斜杠（见上面第 4 条）。
        ⚠️ 本段注释里也不要出现「选择器名 + 花括号」的样例 ——
          .workbuddy/check-tokens.js 用正则抓取令牌块定义，写了会被误当成真块。
        防复发：.workbuddy/tools/token-parse-assert.js 浏览器内断言 + audit.sh [10]。

   【来源】:root 与 body.night 两套数值 1:1 摘自
          assets/css/design-system.css §1（用户原设计，未改一个数值）。
   【明暗】与主题一致：body.night 生效，cookie 名 mbt_theme_night。
   【接入】本文件由 inc/parts-loader.php 入队；R63 起**全站**入队
          （皮肤层也派生自它），不再只在部件页加载。
   ========================================================================== */

/* ==========================================================================
   §A 基础色板层（--t-*）—— 颜色字面量的唯一落点
   --------------------------------------------------------------------------
   【用途】部件令牌（--part-*）与皮肤令牌（--c-*）全部派生自这里。
   【铁律】全站任何其它 CSS 里出现 `#hex` / `rgb(...)` 字面量即违规；
          渐变 / 阴影 / SVG 等复合值只能用 var(--t-*) 组装，
          或在其内注释注明「分量取基础色板同名值」。
   【命名】--t-{色族}-{档位}：purple 紫族 / pearl 白族 / gold 金族 /
          rose 粉族 / blue 蓝族 / ink 字族 / line 线族 / page 页面底。
          明暗两套各一份（暗色不是反色，与主题 body.night 一致）。
   ========================================================================== */
:root{
  /* ---- 粉族（玫瑰粉，作品二强调 #e8b4cb~#f4d1e0，按钮/标签） ---- */
  --t-purple:#e8b4cb;        /* 主色（强调 / 按钮 / 标签） */
  --t-purple-lt:#f4d1e0;     /* 浅端（渐变头 / 悬停） */
  --t-purple-dp:#d99cb0;     /* 深端（标题 / 描边压得住） */
  /* ---- 白族（淡紫白，作品二卡片 #faf7fc） ---- */
  --t-pearl:#faf7fc;         /* 一级面（卡片 / 面板 / 顶栏） */
  --t-pearl-2:#f5eff8;       /* 二级面（原 #f9f9f9 一族） */
  --t-pearl-3:#ece4f3;       /* 三级面（斑马 / hover） */
  /* ---- 金族（香槟金，作品二稀有度/装饰线 #d4af37） ---- */
  --t-gold:#d4af37;          /* 香槟金（渐变尾 / 分隔线 / 星点） */
  --t-gold-lt:#e5c158;       /* 浅金（渐变头 / 悬停） */
  --t-gold-dp:#b8922e;       /* 深金（1px 描边可见） */
  --t-gold-aa:#8a6d1a;       /* R65：AA 金（文字用；描边仍用 gold-dp） */
  --t-gold-hi:#eed98a;       /* 更亮金（hover 渐变头） */
  --t-gold-hi-dp:#e5c158;    /* 更亮金暗端（hover 渐变尾） */
  /* ---- 紫族（梦幻紫，作品二主色调 #b8a9c9 系） ---- */
  --t-rose:#b8a9c9;
  --t-rose-lt:#d4c5e2;
  /* ---- 蓝族（淡蓝紫辅助 #c5d5e8） ---- */
  --t-blue:#c5d5e8;
  --t-blue-lt:#dde8f5;
  /* ---- 字族（深紫，作品二正文 #6b5b7a） ---- */
  --t-ink:#6b5b7a;           /* 正文（深紫） */
  --t-ink-mid:#7d6d8c;       /* 次级文字（部件独有档位） */
  --t-ink2:#a294ab;          /* 次级 / 占位 */
  --t-ink-meta:#7a6b86;      /* R65：达标元数据档（淡紫白面 5.6，AA≥4.5） */
  --t-ink3:#b8acbb;          /* 三级文字 */
  --t-on-gold:#5a4a6e;       /* 金底上的深紫字（D-2：深一档保证对比） */
  --t-on-purple:#5a4a6e;     /* 玫瑰粉底上的深紫字 */
  /* ---- 页面底 / 描边（梦幻淡紫） ---- */
  --t-page:#f5f0f8;
  --t-pearl-mid:#f8f3fb;     /* 页底渐变中间过渡色 */
  --t-line:#e4dcf0;
  --t-line2:#d3c7e6;
  --t-gold-line:rgba(212,175,55,.5); /* 1px 香槟金细线最低可见浓度 */
  /* ---- 语义色（价格 / 状态） ---- */
  --t-free:#8fc7a9;          /* 免费（薄荷） */
  --t-free-text:#4e7d61;     /* 深绿字 */
  --t-tuan:#e8b4cb;          /* 拼团（玫瑰粉） */
  --t-promo:#d4af37;         /* 推广（香槟金） */
  --t-danger:#c46b7a;        /* 低饱和玫红 */
  --t-warn:#c99a3e;          /* 琥珀（配置问题提示） */
  --t-warn-bg:rgba(201,154,62,.12);
  /* ---- VIP 徽标渐变（香槟金） ---- */
  --t-vip-1:#e5c158;
  --t-vip-2:#d4af37;
}
body.night{
  /* ---- 粉族（夜间玫瑰粉提亮） ---- */
  --t-purple:#e8b4cb;
  --t-purple-lt:#f4d1e0;
  --t-purple-dp:#c989a3;
  /* ---- 白族（深紫梦幻夜面板） ---- */
  --t-pearl:#3a3350;
  --t-pearl-2:#453d5e;
  --t-pearl-3:#514865;
  /* ---- 金族（夜间香槟金提亮） ---- */
  --t-gold:#e5c158;
  --t-gold-lt:#f0dd9a;
  --t-gold-dp:#a8863f;
  --t-gold-aa:#eed98a;       /* R65：AA 金（暗底 6+ ✓） */
  --t-gold-hi:#f5e8b8;
  --t-gold-hi-dp:#e5c158;
  /* ---- 紫族 / 蓝族（压暗一档） ---- */
  --t-rose:#8f7da8;
  --t-rose-lt:#a89ac2;
  --t-blue:#4a5c80;
  --t-blue-lt:#3a4a6a;
  /* ---- 字族（米白字） ---- */
  --t-ink:#f5eef8;
  --t-ink-mid:#c9c0d6;
  --t-ink2:#b5aac4;
  --t-ink-meta:#c9c0d6;      /* R65：暗色下取 ink-mid 同值（深底对比 7+ ✓） */
  --t-ink3:#8d819f;
  --t-on-gold:#2b2438;
  --t-on-purple:#3a3350;
  /* ---- 页面底 / 描边（梦幻深夜紫） ---- */
  --t-page:#241f35;
  --t-pearl-mid:#2a243e;
  --t-line:#4a4068;
  --t-line2:#5c4f78;
  --t-gold-line:rgba(229,193,88,.4); /* 暗底上香槟金边 */
  /* ---- 语义色 ---- */
  --t-free:#8fc7a9;
  --t-free-text:#a8dcc0;
  --t-tuan:#e8b4cb;
  --t-promo:#e5c158;
  --t-danger:#e08a99;
  --t-warn:#e0b94a;
  --t-warn-bg:rgba(224,185,74,.15);
  /* ---- VIP 徽标渐变 ---- */
  --t-vip-1:#f0dd9a;
  --t-vip-2:#d4af37;
}

/* ---- 主题原变量的兜底值（正常由 inc/base.php 的 MBThemes_color() 注入） ----

   【2026-10-06 全量换皮 · 款3「幻镜梦行 · 洛可可宫廷」】（取代 B 方案甜系二次元）
     依据：.workbuddy/game_ui_design_text_description.md 作品三。
     调色板换成：珍珠白 #faf8ff / 宫廷紫 #7c6f91 / 洛可可金 #c9a96e /
     玫瑰粉 #d4a5a5 / 淡蓝紫 #b8c5d6，文字深紫灰 #5a5266。
     形状随之收敛（糖果大圆角 → 宫廷小圆角：面板 16 / 卡片 10 / 色块 8），
     标题启用衬线体，装饰启用洛可可金（金框 / 卷草纹 / 皇冠徽章）。
     换皮只改本文件的**数值**，不改任何部件 CSS —— 令牌是唯一真源的意义就在这里。
     ⚠️ B 方案的 skin-b.css 与本令牌**不要同时启用**（会互相打架），
        切换皮肤时两者必须同进同退。
   ========================================================================== */

/* ---- 主题原变量的兜底值（正常由 inc/base.php 的 MBThemes_color() 注入） ----
   【为什么用 :where() 包住】(2026-10-06 修正)
     :where() 的优先级恒为 0，所以主题自己注入的
     `:root{--theme-color: …}`（优先级 0,1,0）**一定胜出**。
     反之若主题没注入（异常情况），这里才生效。

     为什么必须这样写：部件样式现在稳定地排在主题样式**之后**
     （见 inc/parts-loader.php 的 mbt_part_flush_pending，挂在 priority 40）。
     如果这里直接写 :root{…}，同优先级下后加载的我们就会把主题注入的
     主色/圆角覆盖掉 —— 表现为「后台改了主题色，前台一点反应没有」，
     是最容易被当成"主题坏了"的一类问题。
   -------------------------------------------------------------------------- */
:where(:root){
  --theme-color:#e8b4cb;      /* 玫瑰粉（梦幻主色） */
  --theme-color2:#d4af37;     /* 香槟金（梦幻辅色） */
  --theme-radius:20px;        /* 梦幻柔和圆角 */
}
/* 【二次元插画换皮 2026-10-15】主题旋钮同值提特异性。
   官方 inc/skin.php → MBThemes_color() 在 wp_head 之后打印 :root{--theme-color}，
   不改特异性的 :where(:root)（优先级 0）会被官方默认橙 #ff5f33 压回。
   用 html:root（(0,1,1) > 官方 :root (0,1,0)）保证玫瑰粉主色生效。 */
html:root{
  --theme-color:#e8b4cb;
  --theme-color2:#d4af37;
  --theme-radius:20px;
}

:root{
  --page-bg:#f5f0f8;
  --panel:#faf7fc;
  --card:#faf7fc;
  --line:#e4dcf0;
  --line2:#d3c7e6;
  --text:#6b5b7a;
  --text2:#7d6d8c;
  --text3:#a294ab;
  --accent:color-mix(in srgb, var(--theme-color,#e8b4cb) 92%, #ffffff 8%);
  --gold1:#d4af37;            /* 香槟金（浅端） */
  --gold2:#e5c158;            /* 香槟金（亮端） */
  --free:#8fc7a9;             /* 薄荷（免费） */
  --r-lg:24px; --r-md:16px; --r-sm:10px;
  /* 战役#21 B10：独立「形状轴」令牌 —— 药丸/胶囊形状（.art-pill-tabs / .art-pill-tab 30px）。
     ⚠️ 与 --r-sm/md/lg（10/16/24 尺寸梯度）是**不同语义轴**，勿混入该梯度序列。 */
  --shape-pill:999px;         /* 可爱胶囊标签 */
  --sh:0 10px 30px -12px rgba(106,91,122,.35);
  --sh-hov:0 16px 40px -14px rgba(232,180,203,.45);
  --font-cjk:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  --font-serif:"YouYuan","幼圆","PingFang SC","Microsoft YaHei",sans-serif;  /* 梦幻圆体标题 */
  --font-num:"DIN Alternate","Bahnschrift","Roboto Condensed",var(--font-cjk);
  /* --gutter/--header-h from inc/base.php :root */
  --accent-text:#a25070;      /* 浅底上的深玫瑰粉文字（比主色深一档，保证对比度） */
  --free-text:#4e7d61;        /* 薄荷深一档 */
  --blue:#c5d5e8;             /* 淡蓝紫（梦幻辅助） */
  --reading:72ch; /* U-1 reading width */
}
/* 2026-10-06：原文件此处有一份**完全重复**的 body.night 块（59-76 与 78-95 逐字相同），
   已合并为下面这一份。数值同时换成 B 方案的深紫夜态。 */
body.night{
  --page-bg:#241f35;   /* 梦幻深夜紫页面底 */
  --panel:#3a3350;
  --card:#453d5e;
  --line:#4a4068;
  --line2:#5c4f78;
  --text:#f5eef8;
  --text2:#c9c0d6;
  --text3:#b5aac4;
  --accent:color-mix(in srgb, var(--theme-color,#e8b4cb) 75%, #ffffff 25%);
  --free:#8fc7a9;
  /* R-18 night follows */
  --accent-text:var(--accent);
  --free-text:#a8dcc0;
  --blue:#4a5c80;
  --gold1:#e5c158;     /* 深底上香槟金提亮 */
  --gold2:#f0dd9a;
  --sh:0 10px 28px -12px rgba(0,0,0,.55);
  --sh-hov:0 18px 40px -14px rgba(0,0,0,.6);
}

/* ==========================================================================
   部件层语义令牌 —— 部件样式只准用下面这些
   ========================================================================== */
:root{
  /* 表面（款3 珍珠白宫廷：底淡紫、面板珍珠白）—— R63 派生自 --t-* 基础色板 */
  --part-page-bg:var(--t-page);
  --part-panel:var(--t-pearl);
  --part-card:var(--t-pearl);
  --part-line:var(--t-line);
  --part-line2:var(--t-line2);

  /* 文字 */
  --part-text:var(--t-ink);
  --part-text2:var(--t-ink-meta); /* R65：原 --t-ink-mid(4.22) → --t-ink-meta(4.94)，次级文字亦达 AA */
  --part-text3:var(--t-ink-meta); /* R65：原 --t-ink2(2.77) → --t-ink-meta(4.94)，全站 text3 元数据均达 AA */

  /* 强调（接主题主色，改主题色全站跟着变） */
  --part-accent:color-mix(in srgb, var(--theme-color,#7c6f91) 92%, #ffffff 8%);
  --part-accent-text:#5a4a6e;
  --part-on-accent:var(--t-on-purple); /* 紫底上压珍珠白（宫廷感，不用刺眼纯白） */

  /* 警示（2026-10-07 新增）
     唯一用途：图集页「形态不适用于图集」的提示条（parts/buy-bar.php 的
     .part-buybar--na）。它表示「配置有问题、不是你操作错了」，所以用琥珀色
     而不是红色 —— 红色会让人以为是支付失败。 */
  --part-warn:var(--t-warn);
  --part-warn-bg:var(--t-warn-bg);

  /* ---- 款3 洛可可专用令牌（新增，供 parts-rococo.css 与部件装饰用） ----
     这几个不在主题里存在，是款3 换皮引入的；集中命名在这里，
     仍守住「部件样式不写颜色字面量」这条铁律。 */
  --part-gold:var(--t-gold);        /* 洛可可金（描边 / 金框 / 角饰） */
  --part-gold2:var(--t-gold-lt);    /* 洛可可金（亮端 / 渐变终点 / 按钮底） */
  --part-gold-aa:var(--t-gold-aa);  /* R66：AA 金（**金色文字**专用；--part-gold 当文字在亮底仅 2.12） */
  --part-gold-ink:var(--t-on-gold); /* 金底上的文字色 */
  --part-gold-line:var(--t-gold-line); /* 金色细分隔线 */
  --part-royal:var(--t-purple);     /* 宫廷紫（主） */
  --part-royal2:var(--t-purple-lt); /* 宫廷紫（浅） */
  --part-rose:var(--t-rose);        /* 玫瑰粉 */
  --part-rose2:var(--t-rose-lt);    /* 玫瑰粉（浅） */
  --part-blue:var(--t-blue);        /* 淡蓝紫（辅助） */

  /* 语义色（插件联动用）
     【2026-10-06 对齐主题】下面这几个的取值改成与主题 base.css 里
     .vip-tag / .free-tag / .tuan-tag 完全一致，这样图集页的价态标记
     与主题卡片上的角标是同一套颜色语言 —— 不再出现「同一个 VIP，
     卡片上是金色、详情页是另一种金」。
     取值出处（base.css）：.lists .grid .grid-meta .vip-tag / .free-tag / .tuan-tag */
  /* 【款3 换皮说明】下面这几个原本「1:1 对齐主题 base.css 的角标色」，
     洛可可换皮后改为按宫廷体系取值：VIP 直接用洛可可金（宫廷里金色就是
     最高等级色，语义天然吻合），拼团用玫瑰粉，推广用淡蓝紫，免费保留
     低饱和灰绿（宫廷调性不收高饱和色）。
     ⚠️ 因此图集页的角标与主题原生卡片角标**不再同色**——这是有意为之：
        换肤层（skin-c.css）会同步把主题原生角标也改成洛可可体系，
        两边仍然一致；若只换令牌不换肤，就会看到两种金色并存。 */
  --part-free:var(--t-free);
  --part-free-text:var(--t-free-text);   /* 深一档，供"深底上的绿色文字"用（主题无对应物） */
  --part-vip-1:var(--t-vip-1);       /* 洛可可金 起点 */
  --part-vip-2:var(--t-vip-2);       /* 洛可可金 终点 */
  --part-vip-ink:var(--t-on-gold);   /* 金底上的深褐字（宫廷配色不用纯黑） */
  --part-tuan:var(--t-tuan);        /* 玫瑰粉（拼团） */
  --part-promo:var(--t-promo);       /* 淡蓝紫（推广） */
  --part-danger:var(--t-danger);      /* 低饱和暗红，与宫廷调性一致 */

  /* 形状
     【2026-10-06 接主题】前三个圆角改成由主题的 --theme-radius 派生，
     这样后台改「圆角大小」时图集页跟着一起变（与主题同心），
     而不是主题一套圆角、图集页另一套。
     系数是按主题默认 5px 反推的：5×4=20、5×2=10、5×1.2=6 ——
     也就是说改成派生之后**视觉与原来完全一致**，只是多了一层"跟随主题"的能力。
     --part-r-pill 是「药丸 / 胶囊」这个**独立形状轴**（胶囊按钮、标签），
     不参与圆角梯度，保持固定值。

     【2026-10-06 全量换皮·必须加封顶】B 方案把主题圆角调到了 22px，
     若仍直接 ×4 会算出 **88px**（卡片圆角比卡片还大，视觉直接崩）。
     所以三个值都加了上限：卡片级最多 22、中件 12、小件 8。
     主题圆角 ≤ 22px 时行为与原来完全一致，超过就不再跟着长。 */
  --part-r-lg:min(calc(var(--theme-radius, 5px) * 2), 16px);
  --part-r-md:min(calc(var(--theme-radius, 5px) * 1.25), 10px);
  --part-r-sm:min(calc(var(--theme-radius, 5px) * 0.75), 6px);
  --part-r-pill:20px;

  /* 阴影（款3：紫灰柔光，既不是粉调也不是中性灰） */
  --part-sh:0 10px 26px -14px rgba(90,82,102,.38);
  --part-sh-hov:0 16px 34px -14px rgba(124,111,145,.48);
  /* 【2026-10-07 新增】向上投射的阴影。
     已有的两条都是向下投（浮窗、卡片悬停）。图集详情页的预览图面板是
     `position:absolute;bottom:100%` —— 从下方那条向上长出来盖住主图，
     是"由下往上"的一层。用向下阴影会投到主图区外面，看不出浮起感。
     方向相反的阴影不是同一件事，所以单列一条，两套主题各一份。 */
  --part-sh-up:0 -18px 46px -14px rgba(90,82,102,.42);

  /* 字体 */
  --part-font:"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;
  --part-font-serif:var(--font-serif,"KaiTi","STKaiti","PingFang SC",serif); /* 手账手写/圆体标题 */
  --part-font-num:"DIN Alternate","Bahnschrift","Roboto Condensed",var(--part-font);

  /* 布局 */
  --part-gutter:20px;
  --part-grid-gap:16px;

  /* 卡片作者角标（头像位）
     【2026-10-07 新增】图集卡片左下角的作者标识是一个圆点（原 .gcard-au__dot），
     它扮演的是「站内其它卡片里那个头像」的角色，但尺寸差了 24/15 ≈ 1.6 倍：
       · 站内参照 —— .grids .grid .grid-author .avatar = 24px（base.css:545）
       · 详情页规范—— .part-author__avatar = 44px（parts-plugin.css:97）
       · 图集卡片   —— 圆点 = 15px
     用户反馈「文章卡片上用户头像尺寸好像不太对劲」即指此处。
     修法：把圆点提到 **20px**（1440 宽下与 11.5px 名字更匹配，也仍在 104px 的
     xs 档卡片里留得住），窄屏再降到 16px，避免小卡上喧宾夺主。
     只动尺寸与描边，不动配色（配色已由令牌统一）。
     【2026-10-09】圆点已由真节点改为 .gcard-au::before 伪元素（省 DOM），
     消费方 = parts-ui.css 的 .gcard-au::before，令牌名与数值不变。 */
  --part-au-dot:20px;
  --part-au-dot-xs:16px;
  --part-grid-min:196px;   /* 网格卡片最小宽度，列数由 parts/grid.php 读取 */
  --part-grid-min-lg:232px;
  --part-grid-min-sm:150px;
  --part-grid-min-xs:104px;
  --part-break-lg:1500;
  --part-break-md:1100;
  --part-break-sm:760;

  /* 图片上的浮层底
     【为什么不能用主题令牌】图片亮度是完全不可控的（用户可能传一张全白的图），
     要让白字在任意图片上都读得清，只能固定用深色。所以这两个是**有意的例外**，
     集中在这里命名，其它任何地方都不许再写 rgba 遮罩色。
     数值与 assets/css/parts-card.css 里各形态浮层的口径一致。 */
  --part-media-scrim:rgba(8,8,12,.90);
  --part-media-scrim-strong:rgba(8,8,12,.82); /* D-7：照片底文字加强档（亮照片上白字达标的关键档） */
  --part-media-scrim-mid:rgba(8,8,12,.55);
  --part-media-scrim-soft:rgba(8,8,12,.34);
  --part-on-media:#ffffff;
  --part-on-media-dim:rgba(255,255,255,.72);

  /* 分类色唯一真源 = assets/css/parts-card.css §0（卡片专用，就近维护）。
     这里只做 --c 兜底：部件调用时用 style="--c:var(--part-cat-xxx)" 取分类色，
     未传时回落到强调色，保证色脊/色带/色块永远有颜色（不再双写定义） */
  --c:var(--part-accent);

  /* 标签色点四色 —— 取值与主题 base.css 的
     `.lists .list .tag a:nth-child(n):before` 1:1 一致。
     标签行部件（parts/tag-list.php）按 1→4 循环取用这四个色点，
     让图集页的标签与主题卡片里的标签是同一套颜色语言。
     集中命名在这里，是为了守住"部件样式不写颜色字面量"这条铁律。 */
  --part-tag-dot-1:var(--t-gold);   /* 洛可可金 */
  --part-tag-dot-2:var(--t-rose);   /* 玫瑰粉 */
  --part-tag-dot-3:var(--t-purple-lt);   /* 宫廷紫（浅） */
  --part-tag-dot-4:var(--t-blue);   /* 淡蓝紫 */

  /* 来源条标签语义色（Q-06，2026-10-14）：keep=沿用 / new=新设计 / plug=插件联动。
     原 parts-ui.css 6 个硬编码色 + body.night 覆盖收口于此，暗态随令牌切换 */
  --part-ok-bg:#e7f6ec;   --part-ok-fg:#1a7f37;   --part-ok-bd:#bfe6cb;
  --part-new-bg:#eef1ff;  --part-new-fg:#3a4fd8;  --part-new-bd:#c9d2ff;
  --part-hot-bg:#fff2e8;  --part-hot-fg:#c2410c;  --part-hot-bd:#ffd7bd;
}
body.night{
  --part-page-bg:var(--t-page);
  --part-panel:var(--t-pearl);
  --part-card:var(--t-pearl);
  --part-line:var(--t-line);
  --part-line2:var(--t-line2);

  --part-text:var(--t-ink);
  --part-text2:var(--t-ink-meta); /* R65：暗色同 ink2 值(6.16✓) */
  --part-text3:var(--t-ink-meta); /* R65：暗色 --t-ink-meta 同 ink2 值(6.16✓)，text3 统一走达标档 */

  /* 警示令牌的夜态：琥珀要提亮，深底上原来的 #a8720c 会发闷 */
  --part-warn:var(--t-warn);
  --part-warn-bg:var(--t-warn-bg);

  /* 洛可可专用令牌的夜态：金必须提亮，否则在深底上发闷发脏 */
  --part-gold:var(--t-gold);
  --part-gold2:var(--t-gold-lt);
  --part-gold-aa:var(--t-gold-aa);
  --part-gold-ink:var(--t-on-gold);
  --part-gold-line:var(--t-gold-line);
  --part-royal:var(--t-purple);
  --part-royal2:var(--t-purple-lt);
  --part-rose:var(--t-rose);
  --part-rose2:var(--t-rose-lt);
  --part-blue:var(--t-blue);
  --part-rose2:#d8aeae;
  --part-blue:#8a97ad;

  /* 强调色：与白天取同一个值，**不要在夜间调亮**。
     【为什么】这个令牌在两处用法上互相冲突：
       ① 当「填充按钮 / 徽标的底色」用 → 上面压的是珍珠白字（--part-on-accent）；
       ② 当「深色底上的强调文字」用 → 希望它亮一点才看得清。
     只满足 ② 去把它调亮，① 就崩了：浅底 + 浅字，对比度只剩 ~2:1，
     按钮在页面上几乎读不出来（实测夜间详情页的「立即购买」就是糊的）。
     正确做法是拆开：底色沿用主色本身（与白天一致，也与主题自己的按钮一致），
     深底上的文字另用下面那条更亮的 --part-accent-text。 */
  --part-accent:color-mix(in srgb, var(--theme-color,#7c6f91) 92%, #ffffff 8%);
  --part-accent-text:color-mix(in srgb, var(--theme-color,#7c6f91) 68%, #ffffff 32%);
  --part-on-accent:var(--t-on-purple);

  --part-free:var(--t-free);
  --part-free-text:var(--t-free-text);
  --part-vip-1:var(--t-vip-1);
  --part-vip-2:var(--t-vip-2);
  --part-vip-ink:var(--t-on-gold);
  --part-tuan:var(--t-tuan);        /* 玫瑰粉在深底上压暗一档，避免刺眼 */
  --part-promo:var(--t-promo);
  --part-danger:var(--t-danger);

  /* 来源条标签语义色的夜态（Q-06） */
  --part-ok-bg:#12351f;   --part-ok-fg:#5ddb8e;   --part-ok-bd:#1f5c35;
  --part-new-bg:#1b2247;  --part-new-fg:#8fa4ff;  --part-new-bd:#2f3d78;
  --part-hot-bg:#3a2313;  --part-hot-fg:#ffab70;  --part-hot-bd:#6b3f1c;

  --part-sh:0 10px 28px -12px rgba(0,0,0,.7);
  --part-sh-hov:0 18px 40px -14px rgba(124,111,145,.45);
  --part-sh-up:0 -18px 46px -14px rgba(0,0,0,.72);   /* 向上阴影，见浅色那套的说明 */
}

/* R64/W2：无障碍屏幕阅读器专用类（原 9 个模板各自内联，统一抽到此处）
   【用法】<h2 class="mbt-sr-only">...</h2> —— 视觉隐藏但屏幕阅读器可见 */
.mbt-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
