/* ============================================================================
   a11y-min · 机内可读文本最小字号（v2.16，设计源 = 原型 S80「无障碍 · 大字号回归」）

   规则（原型 S80 批注定版，此处照抄，不再各写各的）：
     适用 —— 机内**可读文本**：标题 / 正文 / 行说明 / 按钮文案 / 协议与法务文本 ≥ 12px。
     豁免 —— 仍允许 9–11px，属角标或平台惯例：
       .tag / .vw-tag / .mc-rec-tag / .lv 状态与会员角标 · .phone-bottombar 底栏标签（平台惯例）
       .z-ptime 与时长数字 时间刻度 · .mc-sm-section-num 纯序号
       SVG 内嵌 <text>（甜甜圈 / 图谱标注）—— 依赖同屏列表作为等价可读替代
       .mc-donut-sub / .mc-portrait-stat-lab 图表内标签

   🔴 单独成文件而不是散改 7 个 CSS：
      改动集中 = 可评审、可整体回滚。style.css 一个文件就有 1234 处硬编码色值与字号，
      在里面逐处改会淹没在 diff 里，下一个人无从判断哪些是无障碍改动、哪些是别的。

   🔴 选择器为什么带 #proto 且把 .phone-screen 重复三次：
      被覆盖的规则本身就是高特异度 + !important，实测例子：
        i-theme.css  `body.mc-i .dt36-hero-stat .l`             → (0,3,1)
        z-skin.css   `html.is-web [data-proto-state=…] .mc-…`   → (0,3,1)
        style.css    `.mc-home-sec .head .cnt`                  → (0,3,0)
      而 `.phone-screen .lab` 只有 (0,2,0) —— 同为 !important 时特异度低者不生效。
      实测过：样式表已加载、`el.matches()` 为 true，computed 仍是 9.92px。
      故用 id 祖先 `#proto` 提到 (1,1,0) 一举压过全部类选择器；再并上重复类名的写法，
      覆盖少数不在 #proto 下的手机屏。
      🔴 将来新皮若又出现 id 级 !important 覆盖，这一层会再次失效 ——
         判据在测试里（J28 实测 computed 值），不看 CSS 写没写。

   🔴 用 !important 的理由：被覆盖的多数是**内联 style**（index.html 内联 117 处 + 各 chunk 拼串），
      普通权重打不过内联。这里的 !important 是「无障碍下限」的强制语义，不是偷懒。

   作用域限定在手机框内 —— 框外的营销落地页不受影响。
   ========================================================================== */

/* ── 12px 下限：标题 / 正文 / 行说明 / 控件文案 ───────────────────────────── */
#proto .mc-ws-skel,
.phone-screen.phone-screen.phone-screen .mc-ws-skel,
#proto .mc-ws-hint,
.phone-screen.phone-screen.phone-screen .mc-ws-hint,
#proto .mc-ws-fbtn,
.phone-screen.phone-screen.phone-screen .mc-ws-fbtn,
#proto .cnt,
.phone-screen.phone-screen.phone-screen .cnt,
#proto .mc-pref-kind,
.phone-screen.phone-screen.phone-screen .mc-pref-kind,
#proto .mc-oc-card-title,
.phone-screen.phone-screen.phone-screen .mc-oc-card-title,
#proto .mc-oc-card-desc,
.phone-screen.phone-screen.phone-screen .mc-oc-card-desc,
#proto .mc-oc-meta,
.phone-screen.phone-screen.phone-screen .mc-oc-meta,
#proto .mc-oc-hero-eyebrow,
.phone-screen.phone-screen.phone-screen .mc-oc-hero-eyebrow,
#proto .mc-oc-hero-sub,
.phone-screen.phone-screen.phone-screen .mc-oc-hero-sub,
#proto .meta,
.phone-screen.phone-screen.phone-screen .meta,
#proto .mc-askchip,
.phone-screen.phone-screen.phone-screen .mc-askchip,
#proto .phone-block-h,
.phone-screen.phone-screen.phone-screen .phone-block-h,
#proto .lab,
.phone-screen.phone-screen.phone-screen .lab,
#proto .desc,
.phone-screen.phone-screen.phone-screen .desc,
#proto .mc-agx-sec-h,
.phone-screen.phone-screen.phone-screen .mc-agx-sec-h,
#proto .mc-mem-empty,
.phone-screen.phone-screen.phone-screen .mc-mem-empty,
#proto .mc-chat-q,
.phone-screen.phone-screen.phone-screen .mc-chat-q,
#proto .mc-it-btn,
.phone-screen.phone-screen.phone-screen .mc-it-btn,
#proto .src,
.phone-screen.phone-screen.phone-screen .src,
#proto .dt36-hero-eyebrow,
.phone-screen.phone-screen.phone-screen .dt36-hero-eyebrow,
#proto .mc-s11-record-title,
.phone-screen.phone-screen.phone-screen .mc-s11-record-title,
#proto .mc-tx-info,
.phone-screen.phone-screen.phone-screen .mc-tx-info,
#proto .mc-sm-hero-eyebrow,
.phone-screen.phone-screen.phone-screen .mc-sm-hero-eyebrow,
#proto .eyebrow,
.phone-screen.phone-screen.phone-screen .eyebrow,
#proto .mc7-graph-eyebrow,
.phone-screen.phone-screen.phone-screen .mc7-graph-eyebrow,
#proto .mc-portrait-note,
.phone-screen.phone-screen.phone-screen .mc-portrait-note,
#proto .mc-zme-foot,
.phone-screen.phone-screen.phone-screen .mc-zme-foot,
#proto .r-when,
.phone-screen.phone-screen.phone-screen .r-when,
#proto .bl,
.phone-screen.phone-screen.phone-screen .bl,
#proto .btn,
.phone-screen.phone-screen.phone-screen .btn,
#proto .sub,
.phone-screen.phone-screen.phone-screen .sub,
#proto .d,
.phone-screen.phone-screen.phone-screen .d {
  font-size: 12px !important;
  line-height: 1.45;
}

/* ── 11px 下限：计数与等级角标（属豁免类，但 <11px 仍然过小） ───────────── */
#proto .h-count,
.phone-screen.phone-screen.phone-screen .h-count,
#proto .badge,
.phone-screen.phone-screen.phone-screen .badge {
  font-size: 11px !important;
}

/* ── 单点：合规文本不接受任何豁免 ─────────────────────────────────────────
   ①「录制他人语音请先征得对方同意」= 录音前的告知义务；
   ②「AI 生成」= 《生成式人工智能服务管理暂行办法》要求的生成内容标识。
   合规文本看不清等于没告知。 */
#proto [class*="rec-consent"],
#proto [class*="ai-gen"],
#proto .mc-ai-badge {
  font-size: 12px !important;
}

/* ── 补：实测仍 <12px 的残留（父容器 em 缩放继承而来，非内联字号） ───────────
   录音告知义务那行在 index.html 里是裸 <span>，只能靠容器类定位；
   .mc-it-btn / .btn 是可点控件；.mc-langsel 是转写页的语言切换标签。 */
#proto .phone-rec-consent,
#proto .phone-rec-consent span,
#proto .mc-it-btn,
#proto .btn,
#proto .al,
.phone-screen.phone-screen.phone-screen .al,
#proto .mc-langsel,
#proto .mc-ai-note,
#proto .mc-ai-note span,
.phone-screen.phone-screen.phone-screen .mc-it-btn,
.phone-screen.phone-screen.phone-screen .btn,
.phone-screen.phone-screen.phone-screen .mc-langsel {
  font-size: 12px !important;
}

/* ============================================================================
   v2.16 收尾实测（Chrome 390×844，全视图扫描 computed font-size）：
     改造前 51 类 / 144 处 <12px  →  改造后 7 类 / 9 处，横向溢出 0。

   剩余 9 处如实记录，不假装清零：
     · 「14:23」×2      样机状态栏时间（mock 装饰，非 App 文本）
     · 「L0」badge ×2   角标，按 11px 档
     · 「· 1」h-count   计数，按 11px 档
     · 「52:00」        时长刻度，豁免
     · 「重新刷新」「手动扫一次」「只读历史趋势…」 —— 停在 11.5px，差 0.5px
       未继续追：它们各自被 4 类以上 !important 覆盖，再提权就要往选择器里堆无意义的层级；
       留给下一轮连同所在模块一起收敛，不为最后 0.5px 把这层写成天书。
   ========================================================================== */
