/* ============================================================================
 * 彤梦焙语 · PC 端（桌面）可读性基线  pc-base.css
 * 版本 v2.1 · 2026-09-20 · 规范见项目根 DESIGN.md
 * ----------------------------------------------------------------------------
 * 定位：**纯增强层**，且**只在桌面生效**。
 *       全部规则包在 @media (min-width:1024px) 内 —— 手机/平板（<=1023px）
 *       看到的像素与引入前完全一致。
 *
 * 与 mobile-base.css 镜像对称：
 *     mobile-base.css  →  @media (max-width:900px)   手机端适配
 *     pc-base.css      →  @media (min-width:1024px)  桌面端可读性
 *
 * 用法（**必须**放在页面自身 <style> 之后、</head> 之前）：
 *     <link rel="stylesheet" href="design-tokens.css?v=20260920dt2">
 *     <style> …页面自身样式… </style>
 *     <link rel="stylesheet" href="pc-base.css?v=20260920pc2">
 *
 * v1.0 只做「不改变排版结构」的修正（颜色 / 焦点 / 滚动条 / 资源约束）。
 * v2.1（批次三 · 修正版）叠加视觉口径修正：品牌橙文字色合规、正文字号下限 12px、
 *        内容宽度统一 1320px —— 这三项**会改变观感**，属已确认的设计取舍。
 *        v2.0 → v2.1 的两处修正（均由 1440×900 双态实测触发）：
 *          a) 字号选择器从「类名集合」改为「实际匹配校验」，避免 !important 把
 *             本应保持大字号的行（如 td.num 金额列）压小；
 *          b) 品牌橙规则补 !important 并增补 #E67E22/#E8A53A 两个变体 ——
 *             归因实测其被页面内联 <style> 按加载顺序压过。
 *
 * 修订依据（2026-09-20 PC 端实测，Edge 1440×900，26 个业务页）：
 *   · 对比度不足 26/26 页；根因是 --text-sub(#8B6F47)=4.47:1 与
 *     --text-mute(#B89B7A)=2.33~2.62:1 未达 WCAG AA（4.5:1），
 *     此二者在 24 个页面里被逐页重复定义且取值完全一致 → 一处收敛即可全站生效。
 *   · 焦点可见性 0/28 页有 :focus-visible 兜底 → 键盘用户无法定位焦点。
 * ========================================================================= */

@media (min-width:1024px){

  /* ── 1. 辅助文字对比度达标（本文件的核心修正）─────────────────────────
     24 个页面在各自 :root 里把这两个变量写死为同一个值：
         --text-sub : #8B6F47  →  白底 4.47:1  （AA 需 4.5:1，擦线不合格）
         --text-mute: #B89B7A  →  白底 2.33:1  （严重不足，几乎看不清）
     本文件最后加载，同特异性下按顺序胜出，一次修正覆盖 24 页 × 约 276 处选择器。
     新值取自 design-tokens.css 的暖灰阶，色相不变、仅降明度 ——
     观感仍是"浅棕辅助字"，只是变得读得清；不涉及品牌色，可随时撤下。
         #5C534A(--n-600) → 6.69:1 ✓
         #6B6157(--n-500) → 5.38:1 ✓
     回退：删除本文件里的这一条 :root 规则，或整份 pc-base.css 撤链。 */
  :root{
    --text-sub:#5C534A;
    --text-mute:#6B6157;
  }

  /* ── 2. 焦点可见性（键盘可用性）──────────────────────────────────────
     design-tokens.css 已用 box-shadow 做焦点环，但 box-shadow 在
     overflow:hidden / 滚动容器内会被裁掉。桌面端补一条真实 outline，
     保证每个可聚焦元素在任何容器里都能被看见。仅交互态，不改变静态外观。 */
  :focus-visible{
    outline:2px solid var(--brand-600,#B85E1E);
    outline-offset:2px;
  }
  /* 鼠标点击不描边，避免视觉噪音（:focus-visible 天然满足，此处兜底旧内核） */
  :focus:not(:focus-visible){ outline:none; }

  /* ── 3. 滚动条：细身、低饱和，与暖色主题一致 ─────────────────────────
     纯外观增强，只影响滚动条本身，不参与布局。 */
  *{
    scrollbar-width:thin;
    scrollbar-color:var(--n-300,#DCCEBB) transparent;
  }
  ::-webkit-scrollbar{ width:10px; height:10px; }
  ::-webkit-scrollbar-track{ background:transparent; }
  ::-webkit-scrollbar-thumb{
    background:var(--n-300,#DCCEBB); border-radius:var(--r-pill,999px);
    border:2px solid transparent; background-clip:content-box;
  }
  ::-webkit-scrollbar-thumb:hover{ background:var(--n-400,#A99E8F); background-clip:content-box; }
  ::-webkit-scrollbar-corner{ background:transparent; }

  /* ── 4. 资源约束：图片/画布/内嵌图表不得撑破所在容器 ─────────────────
     桌面端窄栏（侧栏 248px 旁的卡片）里最容易出现图表溢出。 */
  img,canvas,svg{ max-width:100%; }
  img{ height:auto; }
  /* 图表容器内的 canvas 保持自身比例，避免被拉变形 */
  canvas{ height:auto; }

  /* ── 5. 文本选中色：用品牌浅底 + 深字，保证选中后仍读得清 ──────────── */
  ::selection{ background:var(--brand-200,#F9D5B8); color:var(--brand-900,#4A250B); }

  /* ── 6. 表格与长表格的滚动兜底 ─────────────────────────────────────
     permission.html 的权限矩阵在 1440 下宽 1399px（容器 1100px），
     必须能横向滚动而不是被压扁成乱码。 */
  .tbl-wrap,.table-scroll{ overflow-x:auto; }
  table{ max-width:100%; }


  /* ═══════════════════════════════════════════════════════════════════════
     v2.0 · 2026-09-20 · 批次三（视觉口径）—— 品牌色合规 / 字号下限 / 宽度统一
     ═══════════════════════════════════════════════════════════════════════ */

    /* ── 8. 品牌橙作文字色合规化 ────────────────────────────────────────
     24 个页面把 --primary(#E8833A) 当文字色用了 138 处（79 个唯一选择器）。
     实测对比度：#E8833A 白底 2.71:1 / 浅棕底 2.46:1 —— 远低于 WCAG AA 4.5:1。
     统一收敛到 --brand-700(#964B18)：色相不变（暖棕橙），仅降明度 ——
         白底 6.33:1 ✓  卡底 6.13:1 ✓  浅棕底 5.73:1 ✓  浅橙底 5.49:1 ✓
     ⚠ 只覆盖 `color` 属性；background / border / fill 一律不动 ——
        --caramel 等被用作**背景填充**的变量必须原样保留
        （实测整体收敛变量会把背景也改坏，某页不合格数 63 → 154）。
     ⚠ 必须带 !important：归因实测（_pc3_orange_attrib.txt）显示，本组选择器与页面内联
        <style> 同特异度时按加载顺序落败；另有 21 处是 JS 往元素行内写 color:var(--primary)，
        作者样式表的 !important 是唯一能压住行内普通声明的合法手段。 */
  .section-title svg, .back:hover,
  .tag.blue, .stat .v,
  .alert-btn, .chart-title svg,
  .coeff-chip, .collapse-btn:hover,
  .demand-tag.down, .emp-edit-btn,
  .goal-ring .ring-pct, .hours-item.upcoming .hi-icon,
  .member-rank-amount, .nav-home:hover,
  .nday-section-title svg, .nday-tomorrow-tag,
  .nday-tomorrow-title, .note b,
  .ocr-result-title, .perf-section-title svg,
  .sal-tbl .net, .sum-card .sc-value.amber,
  .target-amounts .ta-done, .btn.ghost,
  .tag.orange, .adj-admin .adj-sec,
  .adj-total b, .back,
  .btn-add, .btn-mgr:hover,
  .card-go, .cat-title,
  .cat-toggle, .chip .cnt,
  .cost-cell, .dept .drow.target b,
  .detail-sec, .grp-title,
  .hero .badge, .hero h2 .accent,
  .his-sum b, .ico-cost,
  .ico-sales, .ing-menu-item.cust,
  .kpi-label svg, .lib-cat-edit:hover,
  .lib-cat-title, .lib-cat-toggle,
  .lib-dept, .lib-dept-uncls,
  .lib-summary b, .link-card svg,
  .mini, .modal h3,
  .navbtn:hover, .payslip-head .net,
  .pd-pct, .pf-box .pp,
  .pf-sec h3, .plan-table td.num,
  .prod-sub, .raw .cnt,
  .recipe-card .rtag, .reward .rv,
  .salary-total b, .score,
  .search-box:focus-within, .seg button.on,
  .stat-label svg, .subtab.active,
  .sup-count, .tab .dot-badge,
  .tab:hover, .tg,
  .trend-tab.on, .waste-export-btn,
  tfoot td, tr.cat-row td,
  tr.row.open .caret, .payout-tag-undone,
  .p-mid .sug-pri, .kpi-cell.warn .kc-val,
  .dept-rt-head .rt-val, .dept-rt-head .rt-pct,
  .dept-targets .dt-val, .ring-text .ring-pct
  { color:var(--brand-700,#964B18) !important; }

/* ── 9. 正文字号下限 12px ──────────────────────────────────────────
     只抬「承载信息」的正文/标签/说明文字。清单不是按类名拍的，而是逐个
     选择器跑 querySelectorAll 实测：**命中的所有元素最大字号 <= 12px 才收录**，
     保证抬升动作不可能把任何一处大字压小。
       本次收录 45 个选择器 / 913 个元素
     剔除的三类：
       · 命中元素里存在 >12px 的（如 .col-sm 会命中 1244 个 13px 表格金额、
         .col-price/.col-qty 各 221 个 13px）—— 全局覆盖会把它们压小；
       · 紧凑设计（.chip 413 / .mat-code 221 / .badge / .tag 等标签胶囊与编码），
         强改会引起换行与列宽变化；
       · 本次未匹配到元素、无法验证安全性的（.iws-label 等）。
     加 !important 的原因：这些类在页面里的原生规则多写成 `.a .b{font-size:11px}`
     这类复合选择器（特异性 0,2,0 起）。pc-base.css 虽然后加载，但特异性低者
     直接出局 —— 实测不加 !important 时 277 处 .row-sub 只有 11 处生效。 */
  .row-sub,
  .col-sm.ro,
  .shift,
  .btn-return-lib,
  .sub-loc,
  .tm,
  .rw-head,
  .hint,
  .sub-base,
  .sum-cell,
  .mini,
  .rw-head.rw-w,
  .brand-text > span,
  .cell.cell-empty,
  .stat-sub,
  .alert-title > span,
  .d2,
  .dept-members,
  .st-note,
  .ds,
  .kc-sub,
  .kpi-sub,
  .band-val > small,
  .rl > small,
  .tm-label,
  .pd-range,
  .hi-label,
  .dept-desc,
  .rt-label,
  .rt-pct,
  .dept-rt-time,
  .dept-count,
  .wk > span,
  .ch-seg,
  .cl-pct,
  .dt > span,
  .ds > b,
  .foot,
  .sb-sub,
  .todo-updated,
  .ring-label,
  .profit-bar-label,
  .src-time,
  .ring-cap,
  .rule-foot{ font-size:12px !important; }

  /* 内联 style 里的字号（230 处）：内联特异性最高，同样需 !important。
     已实测确认 .chip / .mat-code / .badge / .tag 均无内联字号 → 无误伤。 */
  [style*="font-size:9px"],
  [style*="font-size: 9px"],
  [style*="font-size:9.5px"],
  [style*="font-size: 9.5px"],
  [style*="font-size:10px"],
  [style*="font-size: 10px"],
  [style*="font-size:10.5px"],
  [style*="font-size: 10.5px"],
  [style*="font-size:11px"],
  [style*="font-size: 11px"],
  [style*="font-size:11.5px"],
  [style*="font-size: 11.5px"]{ font-size:12px !important; }

  /* ── 10. 内容宽度统一 1320px ───────────────────────────────────────
     现状 9 种取值：1080(14页) / 1100(2) / 1120(2) / 1180 / 1280 / 980 /
     900 / 540 / 520。统一到 1320px（1440 视口下左右各留 60px；
     1280 及以下视口因 max-width 只是上限不会溢出 —— 实测溢出 0 页）。
     例外（保留刻意窄版式，不加宽）：
       · 工资条 / 确认页 —— 正文含 #sub（**运行时** DOM 锚点；
         注：静态 HTML 里的 #objBox 页面加载后并不存在，不可用作锚点）；
       · 考试答题页     —— 正文含 #paperBox。
     选择器用 :has()：旧内核不支持时整条规则自动失效，宽度回落各页原值。 */
  body:not(:has(#sub)):not(:has(#paperBox)) .wrap,
  body:not(:has(#sub)):not(:has(#paperBox)) .prod-app,
  body:not(:has(#sub)):not(:has(#paperBox)) .cost-app{
    max-width:1320px;
  }

  /* ── 7. 打印：出纸时去掉交互装饰（对账/工资条常用） ────────────────── */
}

@media print{
  .sidebar,.side,.appbar,.tabbar,.btn,.no-print{ display:none !important; }
  body{ background:#fff; }
  .card,.panel,.box{ box-shadow:none; border-color:#ccc; }
}
