/* ============================================================
   CR-2026-102 · 学科页内容层词汇表（subject.css）—— 单一 owner
   ------------------------------------------------------------
   范围：根目录学科页（APQP / PPAP / CP / MSA / ISO9000 / IATF16949 / VDA63）
        共用的内容层组件与左侧栏三态 chrome。
   纪律：
     * 壳层（顶栏/页脚/品牌/复位）唯一 owner 仍是 assets/css/components.css，
       本文件不碰壳层；色值全部走 tokens。
     * 页面只允许「使用」本词汇表，不得再内联重复定义同一选择器
       （门禁 _verify_subject_css.py 校验：每选择器全站唯一定义）。
     * 本文件由 _shot/_gen_subject_css.py 从 APQP.html / MSA.html 提取生成，
       勿手改；要改词汇表先改生成器或源页后再同步。
   内容：
     [1] rail 三态 chrome + ap-* 词汇表（161 条，APQP∩MSA 逐字一致）
     [2] 知识页组件 sd-/quick-links/ql-/rd-/cr-/sub-h/sw-（77 条，源自 MSA）
     [3] 打印单元（跨页表头重复，源自 MSA 块2 共享声明）
   ============================================================ */

/* ---------- [1] rail 三态 + ap-* 词汇表 ---------- */
  .ap-hero { background: var(--shell-bg); color: var(--shell-txt); padding: 30px 0 34px; margin-top: 8px; border-top: 1px solid var(--shell-line); border-bottom: 1px solid var(--shell-line); }
  .ap-hero-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 22px; }
  .ap-hero-t1 { font-size: 13px; font-family: var(--font-en); letter-spacing: 1.6px; text-transform: uppercase; color: var(--brand); margin: 0 0 6px; }
  .ap-hero-t2 { font-size: 21px; font-weight: 700; margin: 0; letter-spacing: .3px; }
  .ap-hero-sub { font-size: 13px; color: var(--shell-muted); margin: 6px 0 0; line-height: 1.6; }
  .ap-total { display: flex; align-items: center; gap: 14px; }
  .ap-total-num { font-family: var(--font-en); font-size: 34px; font-weight: 700; color: var(--brand); line-height: 1; letter-spacing: -.5px; }
  .ap-total-num i { font-size: 15px; font-style: normal; color: var(--shell-dim); }
  .ap-total-tx { font-size: 12px; color: var(--shell-muted); line-height: 1.5; }
  .ap-st { position: relative; background: var(--shell-panel); border: 1px solid var(--shell-line); border-radius: var(--radius-sm); padding: 14px 14px 12px; cursor: pointer; text-align: left; color: inherit; font: inherit; transition: border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease); }
  .ap-st:hover { border-color: var(--brand); transform: translateY(-2px); background: var(--shell-panel2); }
  .ap-st.on { border-color: var(--brand); }
  .ap-st-hd { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
  .ap-st-no { font-family: var(--font-en); font-size: 11px; font-weight: 700; letter-spacing: 1px; color: var(--brand); background: var(--brand-soft); border-radius: 4px; padding: 2px 7px; }
  .ap-st-nm { font-size: 13.5px; font-weight: 600; color: var(--shell-txt); line-height: 1.35; }
  .ap-st-en { display: block; font-size: 10.5px; font-family: var(--font-en); color: var(--shell-dim); letter-spacing: .3px; margin-top: 2px; font-weight: 400; }
  .ap-st-ft { display: flex; align-items: center; gap: 9px; margin-top: 4px; }
  .ap-ring { --p: 0; position: relative; width: 38px; height: 38px; border-radius: 50%; flex: none; background: conic-gradient(var(--brand) calc(var(--p) * 1%), var(--shell-line2) 0); }
  .ap-ring::after { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--shell-panel); }
  .ap-ring b { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--font-en); font-size: 10.5px; font-weight: 700; color: var(--shell-txt); z-index: 1; }
  .ap-st-cnt { font-size: 11.5px; color: var(--shell-dim); line-height: 1.45; }
  .ap-gate { display: flex; align-items: flex-start; gap: 12px; padding: 13px 16px; background: var(--brand-tint); border: 1px solid var(--brand-tint-4); border-left: 3px solid var(--brand); border-radius: var(--radius-sm); margin: 16px 0 4px; }
  .ap-gate-k { font-size: 11.5px; font-weight: 700; color: var(--brand-ink); letter-spacing: .5px; flex: none; }
  .ap-gate-v { font-size: 13.5px; color: var(--work-txt); line-height: 1.65; }
  .ap-gate-v b { color: var(--brand-ink); }
  .ap-clauses { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0 2px; }
  .ap-cl { font-size: 11.5px; font-family: var(--font-en); color: var(--work-muted); background: var(--work-panel2); border: 1px solid var(--work-line); border-radius: var(--radius-pill); padding: 4px 11px; }
  .ap-cl b { color: var(--brand-ink); font-weight: 700; }
  .ap-lanes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
  .ap-lane { background: var(--work-panel); border: 1px solid var(--work-line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
  .ap-lane-hd { display: flex; align-items: center; gap: 8px; padding: 11px 14px; border-bottom: 1px solid var(--work-line); background: var(--work-panel2); }
  .ap-lane-ic { width: 20px; height: 20px; flex: none; color: var(--brand-ink); }
  .ap-lane-t { font-size: 13px; font-weight: 700; color: var(--work-txt); letter-spacing: .3px; }
  .ap-lane-n { margin-left: auto; font-family: var(--font-en); font-size: 11px; color: var(--work-dim); background: var(--work-panel); border: 1px solid var(--work-line2); border-radius: var(--radius-pill); padding: 1px 8px; }
  .ap-lane-bd { padding: 12px 14px 14px; }
  .ap-in { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
  .ap-in li { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; line-height: 1.55; }
  .ap-in .k { font-family: var(--font-en); font-size: 10.5px; font-weight: 700; color: var(--brand-ink); background: var(--brand-tint); border-radius: 4px; padding: 2px 6px; flex: none; margin-top: 1px; }
  .ap-in .tx { color: var(--work-txt); }
  .ap-in .sub { display: block; font-size: 11.5px; color: var(--work-muted); margin-top: 3px; line-height: 1.5; }
  .ap-pr { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
  .ap-pr li { font-size: 13px; line-height: 1.55; }
  .ap-pr .nm { color: var(--work-txt); font-weight: 600; }
  .ap-pr a.nm { color: var(--brand-ink); text-decoration: none; border-bottom: 1px dashed var(--brand-ink); }
  .ap-pr a.nm:hover { color: var(--brand-strong); }
  .ap-pr .tx { display: block; font-size: 11.5px; color: var(--work-muted); margin-top: 3px; line-height: 1.5; }
  .ap-pr .sfx { font-size: 10px; color: var(--work-dim); }
  .ap-out { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
  .ap-oc { border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); }
  .ap-oc:hover { border-color: var(--work-line2); box-shadow: var(--shadow-work); }
  .ap-oc.done { border-color: var(--ok-ink); background: var(--ok-tint); }
  .ap-oc-hd { display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px 8px; }
  .ap-ck { position: relative; width: 17px; height: 17px; flex: none; margin-top: 2px; cursor: pointer; }
  .ap-ck input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
  .ap-ck i { position: absolute; inset: 0; border: 1.5px solid var(--work-line2); border-radius: 4px; background: var(--work-panel); transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); pointer-events: none; }
  .ap-ck i::after { content: ''; position: absolute; left: 5px; top: 1.5px; width: 5px; height: 9px; border: solid var(--work-panel); border-width: 0 2px 2px 0; transform: rotate(42deg) scale(0); transition: transform var(--dur-fast) var(--ease); }
  .ap-ck input:checked + i { background: var(--ok); border-color: var(--ok); }
  .ap-ck input:checked + i::after { transform: rotate(42deg) scale(1); }
  .ap-ck input:focus-visible + i { outline: 2px solid var(--brand); outline-offset: 2px; }
  .ap-oc-t { flex: 1; min-width: 0; }
  .ap-oc-no { font-family: var(--font-en); font-size: 10.5px; font-weight: 700; color: var(--brand-ink); }
  .ap-oc-nm { font-size: 13px; font-weight: 600; color: var(--work-txt); line-height: 1.4; margin-top: 1px; }
  .ap-oc-en { font-family: var(--font-en); font-size: 10.5px; color: var(--work-dim); letter-spacing: .2px; }
  html[lang="en"] .ap-oc-nm { display: none; }
  html[lang="en"] .ap-oc-en { font-size: 13px; font-weight: 600; color: var(--work-txt); line-height: 1.4; margin-top: 1px; letter-spacing: 0; }
  .ap-oc-d { font-size: 11.5px; color: var(--work-muted); line-height: 1.6; margin: 0 0 9px; padding: 0 12px; }
  .ap-oc-a { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 11px; }
  .ap-b { font-size: 11.5px; line-height: 1; padding: 6px 10px; border-radius: 6px; border: 1px solid var(--work-line2); background: var(--work-panel); color: var(--work-muted); text-decoration: none; cursor: pointer; font-family: inherit; transition: all var(--dur-fast) var(--ease); }
  .ap-b:hover { border-color: var(--brand); color: var(--brand-ink); background: var(--brand-soft); }
  .ap-b.pri { border-color: var(--brand); color: var(--brand-ink); background: var(--brand-tint); font-weight: 600; }
  .t-split > .t-panels { min-width: 0; }
  .ap-dock { min-width: 0; margin-top: 16px; border: 1px solid var(--brand); border-radius: var(--radius); background: var(--work-panel); box-shadow: var(--shadow-work); overflow: hidden; }
  .ap-dock[hidden] { display: none; }
  .ap-dock-hd { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--brand-tint); border-bottom: 1px solid var(--work-line); }
  .ap-dock-t { font-size: 12.5px; font-weight: 700; color: var(--brand-ink); line-height: 1.5; }
  .ap-dock-t span { font-weight: 400; color: var(--work-muted); }
  .ap-dock-bd { padding: 12px 14px 14px; }
  .ap-form-bar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 9px; }
  .ap-form-t { font-size: 11.5px; color: var(--work-dim); margin-right: auto; line-height: 1.5; }
  .ap-tw { overflow-x: auto; min-width: 0; border: 1px solid var(--work-line); border-radius: 8px; background: var(--work-panel); }
  .ap-table { border-collapse: collapse; width: 100%; font-size: 12px; min-width: 620px; table-layout: fixed; }
  .ap-table th { background: var(--brand-tint); color: var(--brand-ink); font-weight: 700; text-align: left; padding: 7px 9px; border-bottom: 1px solid var(--work-line); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; position: sticky; top: 0; }
  .ap-table td { padding: 0; border-bottom: 1px solid var(--work-line); }
  .ap-table tr:last-child td { border-bottom: none; }
  .ap-cell { width: 100%; border: none; background: transparent; padding: 6px 9px; font: inherit; font-size: 12px; color: var(--work-txt); outline: none; box-sizing: border-box; }
  .ap-cell:focus { background: var(--brand-soft); }
  .ap-cell.ro { background: var(--work-panel2); color: var(--work-muted); font-family: var(--font-mono); text-align: center; }
  .ap-del { border: none; background: transparent; color: var(--work-dim); cursor: pointer; padding: 4px 8px; font-size: 13px; line-height: 1; }
  .ap-del:hover { color: var(--alert-ink); }
  .ap-hint { font-size: 11px; color: var(--work-dim); line-height: 1.6; margin: 8px 0 0; }
  .ap-map { display: grid; grid-template-columns: 120px 1fr; gap: 0; margin: 18px 0 6px; }
  .ap-map-row { display: contents; }
  .ap-map-k { font-size: 11.5px; font-weight: 700; color: var(--work-muted); padding: 9px 10px 9px 0; border-bottom: 1px solid var(--work-line); }
  .ap-map-c { padding: 9px 0; border-bottom: 1px solid var(--work-line); display: flex; gap: 6px; flex-wrap: wrap; }
  .ap-form-t b { color: var(--work-txt); }
  .ap-chip { font-size: 11px; line-height: 1.45; padding: 5px 9px; border-radius: 6px; background: var(--work-panel2); border: 1px solid var(--work-line); color: var(--work-txt); }
  .ap-chip.p { background: var(--blue-tint); border-color: var(--work-line2); }
  .ap-chip.k { background: var(--brand-tint); border-color: var(--brand-tint-4); color: var(--brand-ink); }
  .ap-chip.g { background: var(--ok-tint); border-color: var(--ok-ink); color: var(--ok-ink); }
  .ap-refs { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; margin-top: 14px; }
  .ap-ref { border: 1px solid var(--work-line); border-radius: var(--radius-sm); padding: 11px 13px; background: var(--work-panel); }
  .ap-ref-n { font-size: 12.5px; font-weight: 700; color: var(--work-txt); }
  .ap-ref-e { font-family: var(--font-en); font-size: 10.5px; color: var(--work-dim); margin-top: 2px; }
  .ap-ref-d { font-size: 11.5px; color: var(--work-muted); margin-top: 6px; line-height: 1.6; }
  .ap-note { margin-top: 16px; padding: 12px 15px; border-radius: var(--radius-sm); background: var(--alert-tint); border-left: 3px solid var(--alert-ink); }
  .ap-note h4 { margin: 0 0 6px; font-size: 12.5px; color: var(--alert-ink); }
  .ap-note p { margin: 0; font-size: 12px; line-height: 1.7; color: var(--work-txt); }
  .ap-bar { position: sticky; bottom: 0; z-index: 20; margin-top: 26px; background: var(--work-panel); border: 1px solid var(--work-line); border-radius: var(--radius-sm); box-shadow: var(--shadow-work); padding: 10px 14px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .ap-bar-tx { font-size: 12px; color: var(--work-muted); margin-right: auto; line-height: 1.5; }
  .ap-bar b { color: var(--brand-ink); font-family: var(--font-en); }
  .ap-meter b { color: var(--brand-ink); font-family: var(--font-en); font-size: 14px; }
  .ap-meter-bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--brand), var(--brand-ink)); transition: width .3s ease; }
  .ap-meter-n { font-size: 11.5px; color: var(--work-dim); }
  .work { padding-left: 80px; transition: padding-left .25s ease; }
  body.rail-pinned .work { padding-left: 258px; }
  body.rail-hover #rail:not(.pinned) { width: 236px; }
  body.rail-hover .work { padding-left: 258px; }
  /* ═══ CR-2026-118b：侧栏「无感」化 ═══════════════════════════════════════
     背景：CR-118 把侧栏改成透明底以融入浅色页面，但页面底色并非处处相同——
     顶栏 .topbar(--shell-bg #0B0E14) 与页脚 .footer(--footer-bg #080B11) 都是深色，
     透明侧栏叠在深色上时其浅色分隔线与图标会形成刺眼竖条（用户反馈 3 条现象）。

     本组三条修复：
       ① 顶栏下不画线：border-right 归零，分隔线改由 ::before 承载并下移 6px，
          黑底上不再出现浅色断点。
       ② 自身不透明浅色底：不再依赖下方底色，深色区叠加时也不会「透视」出竖条。
       ③ 进入深色页脚区自动淡出：纯 CSS scroll-driven（Edge 155 实测支持），
          零 JS、零生成器改动，9 页自动生效。
     能力实测：CSS.supports('animation-timeline','view()') === true（Edge 155.0.0.0）。
     降级：极旧浏览器不支持 scroll timeline 时，侧栏保持不透明浅色底可见——
       此时现象②减弱但③不会淡出，属可接受的优雅降级。 */

  /* ⚠ body / .footer 两条是全局选择器（timeline 机制必须挂在同时包含 #rail 与 .footer
     的最近祖先上，body 恰好同时包含两者，各页 <body> 无 class 无更近祖先）。
     语义上 inert：不改变任何既有渲染，仅声明一条具名时间线；但若将来给 body 挂
     会与本规则打架的类，须回来复查。 */
  body { timeline-scope: --woqFooterTL; }
  .footer { view-timeline-name: --woqFooterTL; view-timeline-axis: block; }

  /* 侧栏本体：不透明浅色底（不依赖下方底色，深色区叠加也不透视出竖条）
     + 不画 border-right（顶栏下不断线）
     + 随页脚进入视口渐隐，pointer-events 随之关闭，避免不可见侧栏挡住页脚链接 */
  #rail { position: fixed; left: 0; top: var(--topbar-h); bottom: 0; width: 58px; margin: 0; padding: 44px 0 0; overflow: visible; background: var(--work-bg); border: 0; border-right: 0; border-radius: 0; z-index: 70; transition: width .25s ease; animation: woqRailFade linear both; animation-timeline: --woqFooterTL; animation-range: entry 0% entry 100%; }
  @keyframes woqRailFade { from { opacity: 1; pointer-events: auto; } to { opacity: 0; pointer-events: none; } }
  /* 分隔线：顶栏下留 6px 空隙，避免浅色线在深色顶栏底边形成断点 */
  #rail::before { content: ""; position: absolute; right: 0; top: 6px; bottom: 0; width: 1px; background: var(--work-line); pointer-events: none; }
  /* ⚠ CR-2026-118：#rail 同时带 .t-rail（site.css 的 sticky 竖栏原型），后者声明
     `max-height: calc(100vh - 104px)`，与本规则的 top:var(--topbar-h)+bottom:0 冲突——
     实测侧栏被压到 796px（900−104），底部固定露 40px 空区。
     这里显式解除高度上限，让 bottom:0 真正生效、侧栏铺满到视口底。 */
  #rail.t-rail { max-height: none; height: auto; }
  #rail.pinned { width: 236px; }
  #rail .t-item { position: relative; min-height: 46px; height: auto; padding: 9px 17px; align-items: center; gap: 11px; border-bottom: 0; border-left: 3px solid transparent; color: var(--work-muted); overflow: hidden; }
  #rail:hover .t-item:not(:hover), #rail:hover .t-item.on:not(:hover) { transform: none; opacity: 1; }
  #rail .t-item:hover, #rail .t-item.on:hover { transform: none; box-shadow: none; }
  #rail .t-item:hover { background: rgba(8,145,178,.08); }
  #rail .t-item.on { background: rgba(8,145,178,.14); border-left-color: var(--brand); }
  #rail .t-item.on .t-meta .nm { color: var(--work-txt); }
  #rail .t-idx { display: none; }
  #rail .t-ic { flex: 0 0 22px; height: 22px; display: flex; align-items: center; justify-content: center; }
  #rail .t-ic svg { width: 19px; height: 19px; }
  #rail .t-item.on .t-ic { color: var(--brand); }
  #rail .t-meta { display: none; min-width: 0; gap: 1px; }
  #rail .t-meta .stage { color: var(--work-dim); }
  #rail .t-meta .nm { font-size: 13.5px; font-weight: 600; color: var(--work-txt); }
  #rail .t-meta .nm .en { display: none; }
  #rail .t-ring { display: none; margin-left: auto; flex: 0 0 24px; }
  #rail .t-ring svg { width: 24px; height: 24px; transform: rotate(-90deg); }
  #rail .t-ring .bg { stroke: var(--work-line); stroke-width: 3.4; fill: none; }
  #rail .t-ring .fg { stroke: var(--brand); stroke-width: 3.4; fill: none; stroke-linecap: round; transition: stroke-dashoffset .35s ease; }
  #rail .t-ring text { fill: var(--work-muted); font-size: 8.5px; font-weight: 700; transform: rotate(90deg); transform-origin: center; }
  #rail:not(.pinned):hover { box-shadow: 14px 0 34px rgba(8,24,40,.10); }
  #rail:not(.pinned):hover .t-item { width: auto; }
  #rail:not(.pinned):hover .t-meta, #rail.pinned .t-meta { display: flex; }
  #rail:not(.pinned):hover .t-ring, #rail.pinned .t-ring { display: block; }
  body.rail-hover #rail:not(.pinned) .t-meta { display: flex; }
  body.rail-hover #rail:not(.pinned) .t-ring { display: block; }
  body.rail-hover #rail:not(.pinned) .t-item::after { opacity: 0 !important; }
  #rail:not(.pinned) .t-item::after { content: attr(data-tip); position: absolute; left: calc(100% + 10px); top: 50%; transform: translateY(-50%); background: var(--work-panel); color: var(--work-txt); border: 1px solid var(--work-line); border-radius: 6px; padding: 5px 10px; font-size: 12px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .12s ease; z-index: 80; box-shadow: var(--shadow-work); }
  #rail:not(.pinned) .t-item:hover::after { opacity: 1; }
  #rail:not(.pinned):hover .t-item::after { opacity: 0 !important; }
  #rail.pinned .t-item::after { display: none; }
  /* CR-2026-118：底色融入后图钉改为「浅底 + 细描边 + 常驻低透明度」，
     hover/图钉态才升到不透明——既融入又不至于在浅色底上消失（实测原透明底方案下几乎不可见）。 */
  .rail-pin { position: absolute; top: 7px; right: 6px; width: 24px; height: 24px; padding: 0; border-radius: 6px; border: 1px solid var(--work-line); background: var(--work-panel); color: var(--work-muted); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 9; opacity: .85; box-shadow: var(--shadow-work); transition: opacity .15s ease; }
  .rail-pin svg { width: 14px; height: 14px; }
  .rail-pin:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
  #rail:hover .rail-pin, #rail.pinned .rail-pin { opacity: 1; }
  #rail.pinned .rail-pin { background: var(--brand); color: #fff; border-color: var(--brand); }
  .r-mini { display: block; text-align: center; color: var(--brand); font-family: var(--font-en); font-size: 9.5px; font-weight: 700; padding: 4px 0 6px; }
  #rail.pinned .r-mini { display: none; }
  .r-total { display: none; position: absolute; left: 0; right: 0; bottom: 0; padding: 10px 16px; border-top: 1px solid var(--work-line); font-size: 11.5px; color: var(--work-muted); }
  #rail.pinned .r-total { display: block; }
  .r-total b { color: var(--work-txt); font-family: var(--font-en); }
  .r-total .bar { display: block; height: 5px; border-radius: 99px; background: var(--work-line); margin-top: 6px; overflow: hidden; }
  .r-total .bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--brand), var(--brand-ink)); transition: width .3s ease; }

/* ---------- [2] 知识页组件（研究卡 / 入口 / 速查表 / 判据表） ---------- */
  .sd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 10px; margin-top: 12px; }
  .sd-c { display: block; background: var(--work-panel); border: 1px solid var(--work-line); border-radius: var(--radius-sm); padding: 12px 14px; text-decoration: none; transition: border-color .15s, transform .15s; }
  .sd-c:hover { border-color: var(--brand-ink); transform: translateY(-1px); }
  .sd-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
  .sd-no { font-family: var(--font-en); font-size: 10.5px; font-weight: 700; letter-spacing: 1px; color: var(--brand-ink); background: var(--brand-tint); border-radius: 4px; padding: 2px 7px; flex: none; }
  .sd-nm { font-size: 13.5px; font-weight: 700; color: var(--work-txt); line-height: 1.35; }
  .sd-d { font-size: 11.5px; color: var(--work-muted); line-height: 1.65; margin: 0 0 9px; }
  .sd-ft { display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; border-top: 1px dashed var(--work-line); padding-top: 8px; }
  .sd-k { font-size: 10.5px; color: var(--work-dim); flex: none; }
  .sd-v { font-size: 11.5px; color: var(--brand-ink); font-weight: 700; }
  .sd-ve { font-family: var(--font-en); font-size: 10px; color: var(--work-dim); }
  .quick-links { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px; margin: 14px 0 4px; padding: 11px 12px; border: 1px solid var(--brand-line); border-radius: var(--radius-sm); background: var(--brand-tint); }
  .ql-k { font-size: 11px; font-weight: 700; color: var(--brand-ink); letter-spacing: .5px; flex: none; align-self: center; }
  .ql-c { flex: 1 1 190px; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 7px 10px; border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); text-decoration: none; transition: border-color .15s, transform .15s; }
  .ql-c:hover { border-color: var(--brand-ink); transform: translateY(-1px); }
  .ql-c b { font-size: 12.5px; color: var(--work-txt); }
  .ql-c span { font-size: 10.5px; color: var(--work-muted); line-height: 1.5; }
  .ql-note { flex: 1 1 100%; font-size: 10.5px; color: var(--work-dim); line-height: 1.55; }
  .ql-note b { color: var(--work-muted); }
  .sd-how { font-size: 11.5px; color: var(--work-txt); line-height: 1.65; margin: 0 0 9px; padding-left: 9px; border-left: 2px solid var(--brand-line); }
  .sd-k-flow { color: var(--work-dim); }
  .sd-flow { font-size: 11px; color: var(--work-muted); }
  .rd-figrow td { padding: 0 10px 12px; }
  .rd-figs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 4px 0 2px; }
  .rd-fig { margin: 0; display: flex; flex-direction: column; gap: 5px; border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); padding: 8px 9px; min-width: 0; }
  .rd-fig figcaption { display: flex; align-items: baseline; gap: 7px; font-size: 11px; font-weight: 700; letter-spacing: .3px; }
  .rd-fig figcaption .en { font-family: var(--font-en); font-weight: 400; font-size: 10px; color: var(--work-dim); }
  .rd-fig-case figcaption { color: var(--work-muted); }
  .rd-fig-good figcaption { color: var(--ok-ink); }
  .rd-fig-bad figcaption { color: #b42318; }
  .rd-fig-good { border-color: rgba(0,138,99,.28); }
  .rd-fig-bad { border-color: rgba(180,35,24,.28); }
  .rd-fig-box { position: relative; width: 100%; aspect-ratio: 400 / 210; min-height: 132px; overflow: hidden; }
  .rd-fig-box svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .rd-fig-na { margin: 0; font-size: 11.5px; color: var(--work-dim); }
  .rd-tip { margin: 10px 0 4px; padding: 8px 11px; font-size: 11.5px; color: var(--work-muted); line-height: 1.65; border-left: 3px solid var(--brand-line); background: var(--brand-tint); }
  .rd-note-box { margin: 10px 0 4px; padding: 12px 14px; border-radius: var(--radius-sm); background: var(--brand-tint); border: 1px solid var(--brand-line); }
  .rd-note-box .sub-h { margin: 0 0 8px; }
  .rd-box { display: grid; gap: 8px; margin: 10px 0 4px; }
  .rd-ok, .rd-bad { display: flex; gap: 10px; padding: 11px 13px; border-radius: var(--radius-sm); font-size: 12.5px; line-height: 1.7; }
  .rd-ok { background: var(--ok-tint); border: 1px solid rgba(0,138,99,.22); border-left: 3px solid var(--ok-ink); color: var(--work-txt); }
  .rd-bad { background: rgba(180,35,24,.06); border: 1px solid rgba(180,35,24,.20); border-left: 3px solid #b42318; color: var(--work-txt); }
  .rd-badge { font-size: 11px; font-weight: 700; letter-spacing: .4px; flex: none; padding-top: 1px; }
  .rd-ok .rd-badge { color: var(--ok-ink); }
  .rd-bad .rd-badge { color: #b42318; }
  .rd-ok b, .rd-bad b { font-weight: 700; }
  .rd-ok b { color: var(--ok-ink); }
  .rd-bad b { color: #b42318; }
  .rd-legend { display: flex; align-items: center; gap: 14px; margin: 12px 0 8px; flex-wrap: wrap; font-size: 11.5px; color: var(--work-dim); }
  .rd-lg { display: inline-flex; align-items: center; gap: 6px; }
  .rd-lg .sw { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
  .sw-ok { background: var(--ok-ink); }
  .sw-bad { background: #b42318; }
  .rd-tbl-wrap, .cr-wrap { overflow-x: auto; border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); }
  .rd-tbl { border-collapse: collapse; width: 100%; min-width: 820px; font-size: 12px; }
  .rd-tbl th, .rd-tbl td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--work-line); line-height: 1.65; }
  .rd-tbl thead th { background: var(--brand-tint); color: var(--brand-ink); font-size: 11.5px; font-weight: 700; position: sticky; top: 0; z-index: 2; }
  .rd-tbl tbody th { font-weight: 700; color: var(--work-txt); white-space: nowrap; }
  .rd-tbl tbody th[scope="row"] { width: 132px; }
  .rd-nm { display: block; font-size: 12.5px; }
  .rd-en { display: block; font-family: var(--font-en); font-size: 10px; color: var(--work-dim); font-weight: 400; margin-top: 2px; white-space: nowrap; }
  .rd-ideal { color: var(--work-muted); background: rgba(0,138,99,.045); }
  .rd-errs { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
  .rd-errs li { display: flex; gap: 8px; align-items: baseline; }
  .rd-sym { font-family: var(--font-en); font-size: 9.5px; font-weight: 700; color: #b42318; background: rgba(180,35,24,.10); border-radius: 3px; padding: 2px 5px; flex: none; white-space: nowrap; position: relative; top: -1px; }
  .rd-txt { color: var(--work-muted); }
  .rd-txt b { color: var(--work-txt); font-weight: 700; }
  .rd-tbl tbody tr:last-child th, .rd-tbl tbody tr:last-child td { border-bottom: none; }
  .cr-tbl { border-collapse: collapse; width: 100%; min-width: 700px; font-size: 12px; }
  .cr-tbl th, .cr-tbl td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--work-line); vertical-align: top; line-height: 1.6; }
  .cr-tbl thead th { background: var(--work-panel2); color: var(--work-txt); font-size: 11.5px; font-weight: 700; }
  .cr-tbl thead th.cr-ok { background: rgba(0,138,99,.12); color: var(--ok-ink); }
  .cr-tbl thead th.cr-warn { background: rgba(191,138,0,.12); color: #8a6300; }
  .cr-tbl thead th.cr-bad { background: rgba(180,35,24,.10); color: #b42318; }

  /* ===== MSA 方法详解（说明书注入，双语） ===== */
  .msa-manual-block { margin: 14px 0; padding: 14px 16px; border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); }
  .msa-manual-block > .sub-h { margin: 0 0 10px; font-size: 15px; color: var(--brand-ink); border-left: 4px solid var(--brand-line); padding-left: 9px; }
  .msa-manual h3 { font-size: 14px; color: var(--work-txt); margin: 16px 0 6px; font-weight: 700; letter-spacing: .2px; }
  .msa-manual h3:first-child { margin-top: 0; }
  .msa-manual h4 { font-size: 13px; color: var(--brand-ink); margin: 12px 0 4px; }
  .msa-manual p { margin: 7px 0; font-size: 13px; line-height: 1.78; color: var(--work-txt); }
  .msa-manual b, .msa-manual strong { color: var(--brand-ink); font-weight: 700; }
  .msa-manual table { border-collapse: collapse; width: 100%; font-size: 12.5px; margin: 8px 0; }
  .msa-manual th, .msa-manual td { border: 1px solid var(--work-line); padding: 7px 9px; text-align: left; vertical-align: top; line-height: 1.6; }
  .msa-manual th { background: var(--brand-tint); color: var(--brand-ink); font-weight: 700; }
  .msa-manual ul, .msa-manual ol { margin: 6px 0 6px 22px; padding: 0; }
  .msa-manual li { margin: 4px 0; font-size: 13px; line-height: 1.7; }
  .msa-manual code { background: #eef3f9; padding: 1px 5px; border-radius: 4px; font-size: 12px; font-family: Consolas, Monaco, monospace; }
  /* 双语切换：默认中文；EN 模式显示英文容器 */
  html:not([lang="en"]) .msa-manual[data-lang="en"] { display: none; }
  html[lang="en"] .msa-manual[data-lang="zh"] { display: none; }

  /* ===== MSA 读图卡片：理想状态 / 典型不良 并排，分隔清晰 ===== */
  .rd-pairs { display: flex; flex-direction: column; gap: 16px; margin: 8px 0; }
  .rd-pair { border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); padding: 10px 12px; }
  .rd-pair-hd { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
  .rd-pair-hd .rd-nm { font-size: 13.5px; font-weight: 700; color: var(--work-txt); }
  .rd-pair-hd .rd-en { font-family: var(--font-en); font-size: 10.5px; color: var(--work-dim); }
  .rd-pair-hd .rd-sym { font-family: var(--font-en); font-size: 9.5px; font-weight: 700; color: #b42318; background: rgba(180,35,24,.10); border-radius: 3px; padding: 2px 5px; }
  .rd-pair-see { font-size: 11.5px; color: var(--work-muted); line-height: 1.55; margin-bottom: 8px; }
  .rd-pair-see b, .rd-pair-see strong { color: var(--brand-ink); }
  .rd-pair-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; position: relative; }
  .rd-pair-grid::after { content: ""; position: absolute; top: 6px; bottom: 6px; left: 50%; width: 1px; background: var(--work-line); transform: translateX(-.5px); }
  .rd-card { padding: 0 12px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
  .rd-card-cap { font-size: 11.5px; font-weight: 700; letter-spacing: .3px; }
  .rd-card-good .rd-card-cap { color: var(--ok-ink); }
  .rd-card-bad .rd-card-cap { color: #b42318; }
  .rd-card .rd-fig-box { position: relative; width: 100%; aspect-ratio: 400 / 210; min-height: 120px; overflow: hidden; border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: #fff; margin-bottom: 2px; }
  .rd-card .rd-fig-box svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .rd-card-txt { font-size: 11.5px; line-height: 1.62; color: var(--work-txt); }
  .rd-card-txt b, .rd-card-txt strong { font-weight: 700; }
  .rd-card-good .rd-card-txt { background: rgba(0,138,99,.05); border-left: 3px solid var(--ok-ink); padding: 6px 9px; border-radius: 0 4px 4px 0; }
  .rd-card-bad .rd-card-txt { background: rgba(180,35,24,.05); border-left: 3px solid #b42318; padding: 6px 9px; border-radius: 0 4px 4px 0; }
  .rd-card-txt ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
  .rd-card-txt li { display: flex; gap: 7px; align-items: baseline; font-size: 11.5px; line-height: 1.62; }
  .rd-card-txt .rd-sym { font-family: var(--font-en); font-size: 9.5px; font-weight: 700; color: #b42318; background: rgba(180,35,24,.10); border-radius: 3px; padding: 2px 5px; flex: none; white-space: nowrap; position: relative; top: -1px; }
  @media (max-width: 560px) {
    .rd-pair-grid { grid-template-columns: 1fr; }
    .rd-pair-grid::after { display: none; }
    .rd-card { padding: 0; }
    .rd-card + .rd-card { margin-top: 10px; border-top: 1px dashed var(--work-line); padding-top: 10px; }
  }
  .cr-tbl tbody th { font-weight: 700; color: var(--work-txt); white-space: nowrap; }
  .cr-tbl td.cr-ok { color: var(--ok-ink); }
  .cr-tbl td.cr-warn { color: #8a6300; }
  .cr-tbl td.cr-bad { color: #b42318; }
  .cr-tbl tbody tr:last-child th, .cr-tbl tbody tr:last-child td { border-bottom: none; }
  .sub-h { font-size: 15px; margin: 24px 0 6px; color: var(--work-txt); font-weight: 700; }

/* ---------- [4] ISO 模块增强：章节手风琴 + 变化速览表 + 文件体系分层（CR-2026-106） ---------- */
  /* 章节手风琴：每章折叠，默认仅第 4 章展开（open 由生成器加） */
  .ap-acc { border: 1px solid var(--work-line); border-radius: var(--radius); margin: 14px 0 0; background: var(--work-panel); overflow: hidden; }
  .ap-acc + .ap-acc { margin-top: 10px; }
  .ap-acc > .ap-acc-sum { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 12px; padding: 13px 16px; background: var(--work-panel2); border-bottom: 1px solid transparent; user-select: none; transition: background var(--dur-fast) var(--ease); }
  .ap-acc > .ap-acc-sum::-webkit-details-marker { display: none; }
  .ap-acc > .ap-acc-sum::before { content: ''; width: 9px; height: 9px; border-right: 2px solid var(--brand-ink); border-bottom: 2px solid var(--brand-ink); transform: rotate(-45deg); transition: transform var(--dur-fast) var(--ease); flex: none; margin-left: 2px; }
  .ap-acc[open] > .ap-acc-sum::before { transform: rotate(45deg); }
  .ap-acc > .ap-acc-sum:hover { background: var(--brand-tint); }
  .ap-acc[open] > .ap-acc-sum { border-bottom-color: var(--work-line); background: var(--brand-tint); }
  .ap-acc-t { font-size: 14.5px; font-weight: 700; color: var(--work-txt); line-height: 1.4; flex: 1; min-width: 0; }
  .ap-acc-badges { display: inline-flex; gap: 6px; flex: none; }
  .ap-acc-badge { font-family: var(--font-en); font-size: 10.5px; font-weight: 700; letter-spacing: .3px; padding: 3px 9px; border-radius: var(--radius-pill); white-space: nowrap; }
  .ap-acc-badge.new { color: var(--ok-ink); background: var(--ok-tint); border: 1px solid rgba(0,138,99,.25); }
  .ap-acc-badge.str { color: #8a6300; background: rgba(191,138,0,.12); border: 1px solid rgba(191,138,0,.30); }
  .ap-acc-body { padding: 4px 16px 14px; }
  .ap-acc-body > .panel-desc:first-child { margin-top: 12px; }
  /* 变化速览表：章节内紧凑三列表 */
  .chg-tbl { border-collapse: collapse; width: 100%; margin: 12px 0 4px; font-size: 12px; }
  .chg-tbl th, .chg-tbl td { text-align: left; vertical-align: top; padding: 7px 10px; border-bottom: 1px solid var(--work-line); line-height: 1.5; }
  .chg-tbl thead th { background: var(--work-panel2); color: var(--work-txt); font-size: 11px; font-weight: 700; }
  .chg-tbl tbody tr:last-child td { border-bottom: none; }
  .chg-tbl .chg-cl { font-family: var(--font-en); font-weight: 700; color: var(--brand-ink); white-space: nowrap; width: 60px; }
  /* 变化 / 程度徽标（chg-tbl 与 doc-tbl 共用） */
  .chg-lv { display: inline-block; font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: var(--radius-pill); white-space: nowrap; }
  .chg-lv.new { color: var(--ok-ink); background: var(--ok-tint); }
  .chg-lv.str { color: #8a6300; background: rgba(191,138,0,.12); }
  .chg-lv.minor { color: var(--work-muted); background: var(--work-panel2); border: 1px solid var(--work-line); }
  .chg-lv.rm { color: #b42318; background: rgba(180,35,24,.08); }
  /* 文件体系分层（第 05 节） */
  .doc-tier { margin: 16px 0 4px; }
  .doc-tier-h { font-size: 14px; font-weight: 700; color: var(--work-txt); margin: 0 0 2px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
  .doc-tier-h .dt-en { font-family: var(--font-en); font-size: 10.5px; color: var(--work-dim); font-weight: 400; }
  .doc-tier-h .dt-n { font-family: var(--font-en); font-size: 11px; color: var(--brand-ink); background: var(--brand-tint); border-radius: 4px; padding: 2px 8px; font-weight: 700; }
  .doc-tier .doc-note { font-size: 11px; color: var(--work-dim); margin: 2px 0 0; line-height: 1.6; }
  .doc-tbl { border-collapse: collapse; width: 100%; font-size: 12px; margin-top: 8px; }
  .doc-tbl th, .doc-tbl td { text-align: left; vertical-align: top; padding: 8px 11px; border-bottom: 1px solid var(--work-line); line-height: 1.55; }
  .doc-tbl thead th { background: var(--brand-tint); color: var(--brand-ink); font-size: 11px; font-weight: 700; position: sticky; top: 0; }
  .doc-tbl tbody tr:hover { background: var(--brand-tint); }
  .doc-tbl .d-code { font-family: var(--font-en); font-weight: 700; color: var(--brand-ink); white-space: nowrap; width: 86px; }
  .doc-tbl .d-cl { font-family: var(--font-en); color: var(--work-muted); white-space: nowrap; width: 116px; }
  /* CR-2026-111：四层清单新增第 5 列「关联文件」（上下游关系：← 上游 / → 下游） */
  .doc-tbl .d-rel { font-size: 11.5px; color: var(--work-muted); min-width: 200px; }
  .doc-tbl tbody tr:last-child td { border-bottom: none; }
  /* CR-2026-112：文件清单手风琴（doctiers/doclist → details.doc-acc，视觉复用 ap-acc） */
  .doc-acc { border: 1px solid var(--work-line); border-radius: var(--radius); margin: 14px 0 0; background: var(--work-panel); overflow: hidden; }
  .doc-acc + .doc-acc { margin-top: 10px; }
  .doc-acc > .doc-acc-sum { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; padding: 12px 16px; background: var(--work-panel2); border-bottom: 1px solid transparent; user-select: none; transition: background var(--dur-fast) var(--ease); }
  .doc-acc > .doc-acc-sum::-webkit-details-marker { display: none; }
  .doc-acc > .doc-acc-sum::before { content: ''; width: 9px; height: 9px; border-right: 2px solid var(--brand-ink); border-bottom: 2px solid var(--brand-ink); transform: rotate(-45deg); transition: transform var(--dur-fast) var(--ease); flex: none; align-self: center; margin-left: 2px; }
  .doc-acc[open] > .doc-acc-sum::before { transform: rotate(45deg); }
  .doc-acc > .doc-acc-sum:hover { background: var(--brand-tint); }
  .doc-acc[open] > .doc-acc-sum { border-bottom-color: var(--work-line); background: var(--brand-tint); }
  .doc-acc .doc-acc-t { font-size: 14px; font-weight: 700; color: var(--work-txt); line-height: 1.4; }
  .doc-acc .dt-en { font-family: var(--font-en); font-size: 10.5px; color: var(--work-dim); font-weight: 400; }
  .doc-acc .dt-n { font-family: var(--font-en); font-size: 11px; color: var(--brand-ink); background: var(--brand-tint); border-radius: 4px; padding: 2px 8px; font-weight: 700; }
  .doc-acc-body { padding: 4px 16px 12px; }
  .doc-acc-body > .rd-tbl-wrap { margin-top: 4px; }
  /* 条款→成文信息→文件 追溯矩阵（第 05 节） */
  .doc-trace { border-collapse: collapse; width: 100%; font-size: 12px; margin-top: 8px; }
  .doc-trace th, .doc-trace td { text-align: left; vertical-align: top; padding: 8px 11px; border-bottom: 1px solid var(--work-line); line-height: 1.55; }
  .doc-trace thead th { background: var(--work-panel2); color: var(--work-txt); font-size: 11px; font-weight: 700; }
  .doc-trace .dt-cl { font-family: var(--font-en); font-weight: 700; color: var(--brand-ink); white-space: nowrap; width: 70px; }
  .doc-trace .dt-tier { font-family: var(--font-en); font-weight: 700; color: var(--work-muted); white-space: nowrap; width: 56px; }
  .doc-trace tbody tr:last-child td { border-bottom: none; }

  /* ---------- [5] ISO 条款手风琴 + 标准原文块（CR-2026-107） ---------- */
  .cl-acc { border: 1px solid var(--work-line); border-radius: var(--radius); margin: 10px 0 0; background: var(--work-panel); overflow: hidden; }
  .cl-acc > .cl-sum { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--work-panel2); user-select: none; transition: background var(--dur-fast) var(--ease); }
  .cl-acc > .cl-sum::-webkit-details-marker { display: none; }
  .cl-acc > .cl-sum::before { content: ''; width: 8px; height: 8px; border-right: 2px solid var(--brand-ink); border-bottom: 2px solid var(--brand-ink); transform: rotate(-45deg); transition: transform var(--dur-fast) var(--ease); flex: none; margin-left: 2px; }
  .cl-acc[open] > .cl-sum::before { transform: rotate(45deg); }
  .cl-acc > .cl-sum:hover { background: var(--brand-tint); }
  /* CR-2026-109：章内仅一条款 → 一级展开（不套二级 details），点章标题即见正文 */
  .cl-flat { border: 1px solid var(--work-line); border-radius: var(--radius); margin: 10px 0 0; background: var(--work-panel); overflow: hidden; }
  .cl-flat > .cl-flat-h { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: var(--brand-tint); border-bottom: 1px solid var(--work-line); }
  .cl-no { font-family: var(--font-en); font-weight: 700; color: var(--brand-ink); font-size: 12px; flex: none; }
  .cl-t { font-size: 13.5px; font-weight: 700; color: var(--work-txt); flex: 1; min-width: 0; }
  .cl-body { padding: 4px 14px 14px; }
  .std-doc { border: 1px solid var(--work-line); border-radius: var(--radius-sm); background: var(--work-panel); padding: 10px 12px; margin-top: 8px; }
  .std-h { display: flex; align-items: baseline; gap: 8px; font-size: 11px; font-weight: 700; color: var(--brand-ink); margin-bottom: 5px; }
  .std-src { font-family: var(--font-en); font-size: 9.5px; color: var(--work-dim); background: var(--brand-tint); border-radius: 3px; padding: 1px 6px; }
  .std-tx { margin: 0; font-size: 12px; line-height: 1.7; color: var(--work-txt); }
  /* 标准原文内的「术语定义」列表（第 3 章，3.1–3.20） */
  .std-defs { margin-top: 10px; border-top: 1px dashed var(--work-line2); padding-top: 10px; }
  .std-defs-h { font-size: 11px; font-weight: 700; color: var(--brand-ink); margin-bottom: 4px; }
  .std-def { padding: 7px 0; border-bottom: 1px solid var(--work-line); }
  .std-def:last-child { border-bottom: none; padding-bottom: 2px; }
  .std-def-h { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
  .std-def-no { font-family: var(--font-en); font-size: 11px; font-weight: 700; color: var(--brand-ink); flex: none; min-width: 34px; }
  .std-def-t { font-size: 12.5px; font-weight: 700; color: var(--work-txt); }
  .std-def-en { font-family: var(--font-en); font-size: 11px; color: var(--work-dim); }
  html[lang="en"] .std-def-en { display: none; }
  .std-def-x { margin: 3px 0 0 42px; font-size: 12px; line-height: 1.65; color: var(--work-txt); }
  .std-def-n { margin: 2px 0 0 42px; font-size: 11px; line-height: 1.6; color: var(--work-muted); }
  /* 变化程度徽标（与 .chg-lv 同源，复用色板） */
  .chg-lv { font-size: 10.5px; font-weight: 700; padding: 1px 8px; border-radius: var(--radius-pill); white-space: nowrap; flex: none; }
  .chg-lv.new { color: #1f7a3d; background: #e3f5e8; }
  .chg-lv.str { color: #b06a00; background: #fbeccd; }
  .chg-lv.minor { color: var(--work-muted); background: var(--work-panel2); border: 1px solid var(--work-line); }
  /* CR-2026-108：IATF 补充条款性质徽标 ◆ 核心（蓝色，区别于新增/强化） */
  .chg-lv.core { color: #1d4ed8; background: #e5edfb; }
  /* CR-2026-109：＝ 同 ISO 9001（IATF 全文收录的 ISO 9001 基准条款，中性灰） */
  .chg-lv.same { color: #475569; background: #eef1f5; border: 1px solid var(--work-line); }
  html[lang="en"] .chg-lv.new { color: #1f7a3d; }
  html[lang="en"] .chg-lv.str { color: #b06a00; }
  html[lang="en"] .chg-lv.core { color: #1d4ed8; }
  html[lang="en"] .chg-lv.same { color: #475569; }

/* ---------- [3] 打印：速查表跨页表头重复 + 纸张自适应 ---------- */
@media print {
  .rd-tbl-wrap, .cr-wrap { overflow: visible; }
  .rd-tbl, .cr-tbl { min-width: 0 !important; font-size: 9.5px; }
  .rd-tbl thead { display: table-header-group; }
  .rd-tbl tr, .cr-tbl tr { break-inside: avoid; }
  .rd-tbl th, .rd-tbl td, .cr-tbl th, .cr-tbl td { padding: 5px 7px; }
  .msa-manual-block { break-inside: avoid; }
  .rd-pair { break-inside: avoid; }
  .rd-pair-grid { grid-template-columns: 1fr 1fr; }
  .rd-card .rd-fig-box { box-shadow: none; }
  .ap-acc { break-inside: avoid; }
  .ap-acc > .ap-acc-sum::before { display: none; }
  .ap-acc > .ap-acc-sum { background: var(--work-panel2) !important; }
  .ap-acc[open] > .ap-acc-sum { border-bottom-color: var(--work-line); }
  .ap-acc:not([open]) > .ap-acc-body { display: block !important; }
  .cl-acc { break-inside: avoid; }
  .cl-acc > .cl-sum::before { display: none; }
  .cl-acc > .cl-sum { background: var(--work-panel2) !important; }
  .cl-acc[open] > .cl-sum { border-bottom-color: var(--work-line); }
  .cl-acc:not([open]) > .cl-body { display: block !important; }
  .cl-flat { break-inside: avoid; }
  .cl-flat > .cl-flat-h { background: var(--work-panel2) !important; }
  .std-doc { break-inside: avoid; }
  .std-def { break-inside: avoid; }
  .std-def-en { display: inline !important; }
  .doc-tier { break-inside: avoid; }
  /* CR-2026-112：手风琴清单打印时强制展开（与 ap-acc/cl-acc 同惯例），避免闭合态丢内容 */
  .doc-acc { break-inside: avoid; }
  .doc-acc > .doc-acc-sum::before { display: none; }
  .doc-acc > .doc-acc-sum { background: var(--work-panel2) !important; }
  .doc-acc[open] > .doc-acc-sum { border-bottom-color: var(--work-line); }
  .doc-acc:not([open]) > .doc-acc-body { display: block !important; }
  .doc-tbl, .doc-trace, .chg-tbl { font-size: 9px; }
  .doc-tbl thead, .doc-trace thead { display: table-header-group; }
  .doc-tbl tr, .doc-trace tr, .chg-tbl tr { break-inside: avoid; }
}

/* CR-2026-072c：七大工具 每面板 PREVIEW 标签移到三个入口按钮（培训/试算/应用）上方 */
.t-stage.t-inline { margin: 14px 0 0; }
.t-stage.t-inline .line { opacity: .7; }

/* ============================================================
   P1 视觉增强（CR-2026-129d 后续 · 2026-10-18）
   ------------------------------------------------------------
   2026-10-18 用户验收通过，已全量铺开：原属性门控（仅 ISO9000.html 与
   MSA.html 两页挂 data-p1 生效）已删除，选择器前缀已去掉 → 本块对全部
   引用 subject.css 的页面生效：10 个模块页（APQP/AS9100/CP/IATF16949/
   ISO13485/ISO19011/PPAP/VDA63/ISO9000/MSA）+ 七大工具/新七大工具 +
   抽样检验 + L-Doc demo。以上均为 theme-light 浅色页，无深色页混入；
   tokens.css 中角色别名定义在 :root，全站可用。
   铺开手法留档（可复用）：试点即"带门控的本块"，验收后删 body 属性 +
   去选择器前缀即成全局——铺开源就是试点块本身，无需另写一份。
   依据：docs/深浅范式决策与浅色页去寡淡方案_2026-10-18.md P1 节。

   ① 三阶表面 + hairline + shadow-1
      现状：卡片已有 #FFFFFF 卡面 + 发丝线，但**缺投影** → "没有颜色也没有厚度"。
      本项只补卡片级 shadow-1（不新增色阶、不改表头下沉色），是最低风险的去寡淡。
   ② 章节节律
      分页范式（.t-panels[data-paged]）一次只显示一个 .t-panel，**没有跨章 band 交替**
      （交替只对长滚动页成立）→ 节律落在章头：编号徽标 chip 化 + 标题左侧 3px 色条。
   ③ 克制暗岛
      纪律：普通数据表/公式一律浅色三阶**不压黑**；真黑仅限控制图/数据可视化/长代码块，
      每屏 ≤1 处、圆角 + 轻标签框定。两页实测 0 处暗岛（合规），此处仅备词汇表。
   ④ 范式过渡品牌带属壳层 → 在 woq-next.css，不在此重复定义。
   ============================================================ */
.sd-c,
.ap-oc,
.rd-fig,
.ap-ref,
.ap-lane,
.msa-manual-block,
.rd-pair,
.std-doc,
.rd-note-box,
.woq-island { box-shadow: var(--shadow-1); }

/* ② 章节节律：编号徽标 chip + 标题左 3px 品牌色条 */
.panel-h { align-items: center; margin-top: 4px; }
.panel-h .no {
  font-size: 13px; letter-spacing: .5px; color: var(--brand-ink);
  background: var(--surface-sunk); border: 1px solid var(--hairline);
  border-radius: var(--radius-sm); padding: 5px 11px; }
.panel-h h2 {
  border-left: 3px solid var(--brand-ink); padding-left: 12px; }

/* ③ 克制暗岛词汇表（当前两页未使用；供控制图/数据可视化/长代码块按需取用）
   ⚠ 用前必读：.woq-island 是"功能性暗岛"，不是层次手段。层次不够请加三阶表面，
     不要用它。每屏至多 1 处。 */
.woq-island {
  position: relative; margin-top: 26px; border-radius: var(--radius);
  background: #0E1726; color: #E6EAF0; border: 1px solid #243049;
  padding: 20px 22px 22px; box-shadow: var(--shadow-work); }
.woq-island-tag {
  position: absolute; top: -11px; left: 16px; background: var(--work-bg);
  color: var(--work-muted); font-size: 11px; padding: 2px 9px;
  border-radius: var(--radius-pill); border: 1px solid var(--hairline); }
.woq-island h3 { margin: 2px 0 12px; font-size: 15px; font-weight: 700; color: #E6EAF0; }
.woq-island a { color: #5FD0E0; }

/* 打印：暗岛反成浅底深字（避免墨量爆掉），卡片投影取消（与 [3] 打印块同惯例） */
@media print {
  .woq-island { background: #fff; color: #16283A; border-color: #CCD6E2; }
  .woq-island-tag { background: #fff; color: #33475C; border-color: #CCD6E2; }
  .woq-island h3 { color: #16283A; }
  .woq-island a { color: #0e7490; }
  .sd-c,
  .ap-oc,
  .rd-fig,
  .ap-ref,
  .ap-lane,
  .msa-manual-block,
  .rd-pair,
  .std-doc,
  .rd-note-box,
  .woq-island { box-shadow: none; }
}
