/* apple-font-preferences.css — 字体字号偏好「共享层」（M221）
   ═══════════════════════════════════════════════════════════════════════════
   8 档字体字号偏好（M190 口径，references/apple-preview 同源）从报价页
   business.css 抽出的可复用底座。配套脚本 assets/apple-font-preferences.js
   （window.AppleFontPreferences：首绘回填 / localStorage 持久化 / 控件挂载）。

   ── opt-in 契约 ───────────────────────────────────────────────────────────
   本文件只被显式 <link> 它的页面加载；全部规则锁 html[data-font] /
   html[data-font-size] 属性——不写属性（或页面只 link 不启用偏好层）时，
   下面的声明一条都不命中，--font-size-scale 未定义处恒取 fallback 1。
   与主题无关：两主题（含未挂 data-theme="apple" 的页面）同形同源。

   ── 内容字号接倍率的分工 ─────────────────────────────────────────────────
   本层只提供倍率源（--font-size-scale）与引擎 token；把**本页内容类**逐条
   换成 calc(Npx*var(--font-size-scale,1)) 的清单留在各页 CSS（报价页见
   business.css「内容字号接倍率」段）。页面迁移时：link 本文件 + 挂属性 +
   建清单，三类缺一不可。侧栏/顶栏/身份切换等导航框架字号保持字面量、
   不参与倍率（口径同 apple-preview）。

   ── localStorage 键 ──────────────────────────────────────────────────────
   默认沿用报价页既有键 business-font / business-font-size（值语法同源：
   字体 '18'/'19' + 旧值 song/hei 读时兼容；字号 s/m/l/xl；默认 18 + 小）。
   既有用户偏好与 head 内联首绘脚本不因本层出现而失效；需要隔离的页面可经
   window.AppleFontPreferences.config({ storageKeys }) 改键。 */

/* ── ① 方案 18/19：整页字体族 ────────────────────────────────────────────
   html[data-font] body 特异性 (0,1,2)，压过 lims2.css body 简写 (0,0,1) 与
   theme-apple-overlay.css 的 [data-theme="apple"] body (0,1,1)，两主题下都
   由这里定 font-family。 */
html[data-font="18"] body{font-family:"Cambria","SimSun","Songti SC",serif}
html[data-font="19"] body{font-family:"Segoe UI",Arial,"Microsoft YaHei","PingFang SC","Heiti SC",sans-serif}

/* ── ② 字号四档 → 整页倍率 ────────────────────────────────────────────────
   覆写 lims2.css :root 的 --font-size-scale（默认 1 = 小 = 基座原字号，
   无需规则）；行高 1.55 相对字号自适应。 */
html[data-font-size="m"]{--font-size-scale:1.1}
html[data-font-size="l"]{--font-size-scale:1.2}
html[data-font-size="xl"]{--font-size-scale:1.35}

/* ── ③ choices 渲染引擎的字号 token ──────────────────────────────────────
   vendor 只消费、从不定义（choices.min.css 里是 var(--choices-font-size-md,14px)
   / sm 12px / lg 16px 三个 fallback），接到整页同一倍率上；小档（=1）时与
   vendor fallback 逐像素相等。消费点：.choices=lg、.choices__inner 与
   .choices__input=md、多选芯片=sm、下拉选项=md；检索克隆框经 form-kit 的
   font-size:inherit 跟随 .choices__inner。 */
html[data-font]{--choices-font-size-md:calc(14px*var(--font-size-scale,1));--choices-font-size-sm:calc(12px*var(--font-size-scale,1));--choices-font-size-lg:calc(16px*var(--font-size-scale,1))}

/* ── ④ 8 格分段控件（方案 18/19 × 字号 小/中/大/特大）────────────────────
   视觉与 business.css / apple-preview 的页内副本同值：桌面档（≥768px）放
   顶栏 .top-actions（.font-switch--d），手机档（<768px）换内容区顶部
   （.font-switch--m，纯媒体查询换位）；两处用同一套 .font-opt 选择器，标记
   data-font-opt / data-font-size-opt + aria-pressed，点击/高亮/持久化由
   apple-font-preferences.js 统一接管（挂载即接管，页面无需自写接线）。
   控件条超出可用宽时整条横向滚动（滚动条隐藏；Tab 逐格聚焦自动滚入视野、
   手机可直接横滑）；控件自身文字保持 12px/11px 固定，不参与字号倍率
   （导航小文字口径）。 */
.font-switch{display:inline-flex;align-items:center;gap:2px;padding:3px 4px;border:1px solid var(--line);border-radius:999px;background:var(--surface);max-width:100%;overflow-x:auto;scrollbar-width:none}
.font-switch::-webkit-scrollbar{display:none}
.font-switch-sep{flex:none;width:1px;align-self:stretch;margin:1px 4px;background:var(--line)}
.font-opt{flex:none;border:0;background:transparent;padding:5px 13px;border-radius:999px;font-size:12px;line-height:1.4;color:var(--muted);cursor:pointer;white-space:nowrap;transition:color .15s,background-color .15s,box-shadow .15s}
.font-opt:hover{color:var(--text)}
.font-opt.active{background:var(--blue-600);color:#fff;font-weight:600;box-shadow:0 1px 4px rgba(23,32,51,.18)}
.font-opt:focus-visible{outline:2px solid var(--blue-500);outline-offset:1px}
.font-switch--d{flex:0 1 auto;min-width:180px}
.font-switch--m{display:none}
@media(max-width:767.98px){
  .font-switch--d{display:none}
  .font-switch--m{display:inline-flex;margin:0 0 14px}
  .font-switch--m .font-opt{font-size:11px;padding:4px 10px}
}

/* ── ⑤ 顶栏一行制（控件挂顶栏的页面才需要）────────────────────────────────
   与 business.css M190 段同值：桌面字体控件进顶栏后右侧变宽，space-between
   下面包屑与身份触发器会被压到换行——只对挂了字体档的页面（html[data-font]）
   收紧：面包屑让位收缩（省略号），profile 与身份触发器不许收缩，字体控件
   收缩到 min-width 后内部横滚。控件挂内容区的页面不受影响（仅 gap 收紧一档，
   无布局后果）。 */
html[data-font] .topbar{gap:12px}
html[data-font] .topbar .breadcrumb{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
html[data-font] .top-actions{flex-wrap:nowrap;min-width:0}
html[data-font] .top-actions .profile,html[data-font] .top-actions #identity-mount{flex:none}
html[data-font] .top-actions .identity-trigger{white-space:nowrap}
