:root {
color-scheme: light;
--bg-black:        #ffffff;
--bg-dark:         #f5f5f7;
--bg-elevated:     #fbfbfd;
--ink-primary:     #1d1d1f;
--ink-secondary:   #6e6e73;
--brand:      #F37021;
--brand-strong: #C2410C;
--brand-bg-soft:     #FFF2E9;
--brand-border:      #FFD2B8;
--success:         #34c759;
--price:           #ff3b30;
--divider:         #d2d2d7;
/* v19.9-r3 VQ8：表单控件边界色（WCAG 1.4.11 要求 UI 组件边界 ≥3:1）。
   改前 .pickup-input 用 1.5px solid transparent + 白底 → 白页面上输入框完全不可见（0:1）。
   #8e877e 对白底实测 3.55:1（--divider #d2d2d7 只有 1.51:1，不达标）。 */
--field-border:    #8e877e;
--brand-grad:         linear-gradient(135deg, #FF8A3D, #C2410C);
--brand-text:         #1d1d1f;
--brand-accent:       #F37021;
--brand-accent-light: #C2410C;
/* v19.9：首屏 H1 渐变专用令牌。此前直接复用 --brand-text（正文主色），
   夜间正文近白但首段渐变起点仍是深色，导致夜间标题首段对比度 1.11:1。
   独立成令牌后，日/夜各取一套，正文颜色不受影响。 */
--hero-grad-a: #1d1d1f;
--hero-grad-b: #D9560F;
--hero-grad-c: #C2410C;
--aurora-a:           rgba(255,138,61,0.06);
--aurora-b:           rgba(255,150,80,0.08);
--aurora-c:           rgba(243,112,33,0.05);
--lift-dur:           0.35s;
--lift-ease:          cubic-bezier(0.22, 1, 0.36, 1);
/* ---- v19.8-r8 动效时长三档（第19版第8轮 M6）----
   改前全站 transition 有 11 种时长（0.08–0.4s），同为"悬停反馈"却有 4 种不同值。
   收敛为三档后，节奏可预期；--lift-dur 保留，属品牌动效（卡片抬起）不在收敛范围。
   归类按数值：≤0.18s→fast；0.2–0.35s→base；≥0.38s→slow。 */
--dur-fast:           150ms;   /* 点击 / 悬停反馈 */
--dur-base:           250ms;   /* 常规过渡 */
--dur-slow:           400ms;   /* 入场 / 展开 */
/* 类型/间距/圆角令牌：从 home.css 提升到 base.css，
   否则 used / privacy / 4 品牌页会因未定义 var() 全部回落到 0/默认值 */
--fs-xs:  12px;
--fs-sm:  13px;
--fs-md:  15px;
--fs-lg:  17px;
--fs-xl:  20px;
--fs-2xl: 28px;
--fs-3xl: clamp(28px, 6vw, 32px);
--fs-4xl: clamp(30px, 8vw, 40px);
--sp-1: 4px;  --sp-2: 8px;  --sp-3: 12px; --sp-4: 16px;
--sp-5: 20px; --sp-6: 24px; --sp-7: 32px; --sp-8: 40px;
--r-sm: 8px;  --r-md: 12px; --r-lg: 16px; --r-xl: 24px; --r-pill: 999px;
--nav-h: 66px;      /* nav 实际高度（上下 16px + 34px 控件），JS 会按实测值覆写；默认取 66 避免首帧跳动 */
/* ---- v19.1-r9 版式标尺令牌（单一真相源）----
   过去 --measure / 垂直节奏以字面量散落在 home.css 的 6 处 breakpoint 覆写里
   （hero-inner 600/700/980、section 600/960、footer 600/960），改一处要同步改 6 处。
   统一收成三个令牌后，节宽与 section 垂直节奏各只有一个定义入口。
   参考 Norrly《State of Web Design 2026》 n=285：获奖站内容列宽中位数 1140px、
   圆角中位数 10px —— 本站取 960/600 两档是服务型单页的合理收敛，保留不改。 */
--measure: 960px;          /* 宽屏内容列宽（≥768px 生效） */
--measure-sm: 600px;       /* 窄屏 / 阅读型区块列宽 */
--space-section: 64px;     /* section 上下留白（窄屏），8px 网格 */
--space-section-lg: 96px;  /* section 上下留白（≥768px） */
--gutter: clamp(20px, 5vw, 32px);  /* 横向安全外距，随视口平滑收缩 */
/* ---- v19.1-r8 顶部安全区令牌 ----
   · --sat/--sal/--sar：系统上报的安全区（index.html 已 viewport-fit=cover）。
     非刘海设备、macOS 普通窗口一律上报 0px => 不会多出任何留白，观感与 nmb 版一致；
     只有刘海机 / 灵动岛 / standalone PWA 才有非零值。
     注意：不要再叠 "display-mode: fullscreen" 之类的兜底值——那会在非刘海的
     macOS 全屏窗口上凭空造出一条白边，正是本次要修的问题。
   · --header-bg：nav + 标签栏共用的毛玻璃底色，夜间模式有覆盖。 */
--sat: env(safe-area-inset-top, 0px);
--sal: env(safe-area-inset-left, 0px);
--sar: env(safe-area-inset-right, 0px);
--header-bg: rgba(255,255,255,0.72);
--header-bg-solid: #ffffff;
/* home.css 行 1-17 提升：used / privacy / 4 品牌页用到这些命名 */
--bg: var(--bg-black);
--card: #ffffff;
--text: #1d1d1f;            /* 等同 --text-primary 的别名（home.css/privacy.css 用它） */
--text-primary: #1d1d1f;
--text-secondary: #6e6e73;
--text2: #6e6e73;           /* 等同 --text-secondary 的别名（privacy.css 用它） */
--accent: #F37021;
--accent-hover: #A83A06;
--accent-light: #C2410C;
--accent-text: #C2410C;
/* ---- v19.4-r1 C1–C3：白字载体角色令牌（单一真相源，依据 19,4.txt §2.4）----
   规则：给「白字 / 白色图标」当背景的填充色，只许引用本组令牌；不得直接用
   --accent / --green / --red / --success / --price / --text-primary —— 它们或被夜间
   反转（--text-primary 夜值 #f5f5f7：白字 on 它 = 1.09:1，实测全站最差，见 used.css
   .filter-chip.active）、或昼值过浅（--accent 昼 #E85A0C 白字 3.56；--green #34c759
   白字 2.22；--success #30d158 白字 2.02），当白字底必然不达 SC 1.4.3 的 4.5:1。
   取值全部本机复算（sRGB 相对亮度 L=0.2126R+0.7152G+0.0722B，对比度=(L1+.05)/(L2+.05)）：
     · --accent-text-bg  昼 #a04a00（白 6.04）/ 夜 #0071e3（白 4.70）
     · --accent-hover    昼 #C24A08（白 4.91）/ 夜 #005bb8（白 6.59）← 白字载体的 hover
     · --green-text      #1a7f37（白 5.08，昼夜同值）
     · --red-text        #d70015（白 5.38，昼夜同值）
     · --amber-text      昼 #b25000 / 夜 #D98A45（夜值 6.36 on #0e1a2e；原昼夜同值时仅 3.35）
     · --chip-active-bg 昼 #1d1d1f（白 13.94）/ 夜 #3a3a3c（白 11.02）← 筛选芯片选中态
   --green / --red / --success 保留原亮值，但只许作状态点 / 进度 / 描边等非白字用途。
   色相一律不变，只降亮度：替换后视觉仍是「这个绿 / 这个红」，只是深一档。 */
--accent-text-bg: #C2410C;
--chip-active-bg: #1d1d1f;
--accent-rgb: 243,112,33;
--accent-glow-rgb: 255,140,80;
--accent-wash: rgba(243,112,33,0.08);
--green: #34c759;
--orange: #ff9500;
--red: #ff3b30;
--green-text: #1a7f37;
--red-text: #d70015;
--amber-text: #b25000;
--star: #ff9f0a;
--shadow-card: 0 1px 2px rgba(0,0,0,0.03), 0 6px 28px rgba(0,0,0,0.06);
--shadow-card-hover: 0 2px 4px rgba(0,0,0,0.04), 0 18px 48px rgba(0,0,0,0.10);
--shadow-float: 0 24px 80px rgba(0,0,0,0.25);   /* v19.8-r8 M11：弹窗/命令面板唯一一档 */
--radius: var(--r-lg);  --radius-lg: var(--r-lg);   /* v19.8-r8 M5：旧 token 归并到新档，不删除（约12处引用跟着变） */
--radius-xs: 4px;  --radius-sm: 8px;  --radius-pill: 999px;
--line: #d2d2d7;            /* 等同 --divider 的别名（used.css 第 119 行） */
--safe-bottom: env(safe-area-inset-bottom, 0px);
--font-stack: system-ui, -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;
--ease-out: cubic-bezier(0.25, 1, 0.5, 1);
}
:root[data-theme="night"] {
color-scheme: dark;
--bg-black:          #0b1220;
--bg-dark:           #141a2a;
--bg-elevated:       #1a2236;
--ink-primary:       #f5f5f7;
--ink-secondary:     #aeaeb2;
--divider:           #2a3142;
/* v19.9-r3 VQ8：夜间控件边界 #6e7484 —— 对 #0b1220 实测 4.01:1、对卡面 #1a2236 3.39:1。 */
--field-border:      #6e7484;
--brand:        #0071e3;   /* 深底 + 白字填充载体：#fff on #0071e3 = 4.70 OK(AA) */
/* v19.1-r9：夜间「文字 / 图标 / 描边」角色用的蓝由 #005bb8 提亮为 #4aa3ff。
   #005bb8 在夜间三个卡面上的实测对比度：on #1a2236 = 2.40、on #141a2a = 2.63、on #0b1220 = 2.84，
   全部低于 WCAG 2.2 SC 1.4.3 的 4.5:1（S01）。#4aa3ff 同三面实测：6.01 / 6.59 / 7.11，全部过 AA。
   色相仍是品牌蓝，只提亮度；白天的品牌橙 #E85A0C 未动。
   --accent-hover / --accent-light / --brand-accent-light 保留 #005bb8：
   它们是「深底 + 白字」的填充载体，白字 6.59:1 本来就达标，提亮反而会掉对比度。 */
--brand-strong:   #4aa3ff;
--brand-grad:           linear-gradient(135deg, #0071e3, #005bb8);
--brand-accent:         #0071e3;
--brand-accent-light:   #005bb8;
/* v19.9：夜间 H1 渐变令牌（与日间同名，值不同）。
   取 #f5f5f7 / #4aa3ff / #0071e3，对 #0b1220 背景对比度 17.2 / 7.11 / 3.99，均 ≥3:1。 */
--hero-grad-a: #f5f5f7;
--hero-grad-b: #4aa3ff;
--hero-grad-c: #0071e3;
--aurora-a:             rgba(0,113,227,0.10);
--aurora-b:             rgba(41,151,255,0.12);
--aurora-c:             rgba(0,91,184,0.08);
--brand-bg-soft:        #0e1a2e;
--brand-border:         #1e3a5f;
--price:                #ff453a;
--success:              #30d158;
/* home.css 18-25 行提升：accent 系列在夜间统一变蓝 */
--accent:               #0071e3;
--accent-hover:         #005bb8;   /* 白字载体：#fff on #005bb8 = 6.59 OK(AA) */
--accent-light:         #005bb8;
/* 文字 / 图标 / 描边角色：#4aa3ff（在夜间三个卡面上 6.01 / 6.59 / 7.11，全过 AA）。
   白字载体角色：--accent-text-bg 必须保持深色，见下条。 */
--accent-text:          #4aa3ff;
/* v19.3-r1 C1：r9 的回归修复。
   r9 为修夜间文字对比度，把 --accent-text-bg 与 --accent-text 一起提亮成 #4aa3ff——
   但 --accent-text-bg 是「白字载体」（给白字当背景的填充色），白字 on #4aa3ff = 2.63:1，
   全站主按钮夜间集体不达 AA，比修之前（#005bb8 白字 6.59）更糟。
   正解：把「文字角色」与「白字载体角色」拆开——
     · --accent-text      = #4aa3ff  文字/图标/描边（深底之上，需要亮）
     · --accent-text-bg   = #0071e3  白字载体（需深，白字 4.70 达标）
     · --accent-hover     = #005bb8  白字载体的 hover（更深，白字 6.59 达标）
   于是「默认 → 悬停」方向正确：默认比悬停亮一档、悬停变深，符合 3.3 C1 与前沿 Q7 的推荐答案。 */
--accent-text-bg:       #0071e3;
/* 筛选芯片选中态专用深底。不取 #0b1220：它等于夜间 --bg，芯片会与页底同色、形状不可辨；
   #3a3a3c 与未选中芯片（--card 夜 #1a2236）和页底（#0b1220）都有可感知差。白字 11.02 OK(AA)。 */
--chip-active-bg:       #3a3a3c;
/* V10-01：--amber-text 夜间必须覆写。
   原注释写「夜间沿用昼值 #b25000（白 5.20 达标）」——那个 5.20 是**白字压琥珀底**的比值，
   不是**琥珀字压深底**的比值。夜间实际渲染是琥珀字放在 #0e1a2e 卡片上，复算只有 3.35:1；
   #b25000 作文字用在深底上另有 3.60（on #0b1220），两者都低于 4.5。
   影响 3 处文字：home.css:139 .store-card__nav / home.css:176 .scope-chip__tag /
   used.css:169 .badge-stock；另 3 处图标（trust-item svg / price-ico / svc-ico--board）
   同值但图标阈值 3:1，本来达标，改后只会更清晰。
   取值 #D98A45：on #0e1a2e = 6.36、on #0b1220 = 6.88，色相仍是琥珀。
   --green-text / --red-text 维持「夜间沿用昼值」不变（它们是白字载体，提亮反而掉对比度）。 */
--amber-text:           #D98A45;
/* --green-text / --red-text 夜间不覆写，沿用昼值 #1a7f37 / #d70015：
   白字载体需要「深」，夜间提亮会掉对比度（5.08 / 5.38 已达标），改了反而是回归。
   （--amber-text 已不在此列，见上一条 —— 它作「深底上的文字」用，必须提亮。） */
--accent-rgb:           0,113,227;
--accent-glow-rgb:      41,151,255;
--accent-wash:          rgba(0,113,227,0.10);
/* 文本/边框/卡片在夜间的暗色化（home.css 缺这些，index.html 之前会留白底） */
--text:                 #f5f5f7;
--text-primary:         #f5f5f7;
--text-secondary:       #aeaeb2;
--text2:                #aeaeb2;
--card:                 #1a2236;
--bg:                   #0b1220;
--line:                 #2a3142;
--shadow-card:          0 1px 2px rgba(0,0,0,0.30), 0 6px 28px rgba(0,0,0,0.50);
--shadow-card-hover:    0 2px 4px rgba(0,0,0,0.35), 0 18px 48px rgba(0,0,0,0.60);
--shadow-float:         0 24px 80px rgba(0,0,0,0.55);
/* 顶部两条（nav + 标签栏）夜间不再留白底 */
--header-bg:            rgba(11,18,32,0.72);
--header-bg-solid:      #0b1220;
/* V9-02：底部浮动栏夜间改深色玻璃。--dock-bg 全站只在第 441 行定义一次（昼值
   rgba(255,255,255,.78)），夜间块此前无任何 dock 覆写，导致深蓝页面上悬着一条近白胶囊，
   比首屏标题还抢眼。改与页底同族、保留毛玻璃。NN/g《Dark Mode》原文要求浮动组件
   在两个模式下「equally distinctive」——过亮与过暗同样是缺陷（S02）。 */
--dock-bg:              rgba(11, 18, 32, 0.78);
/* 同上：0.5px 的 rgba(0,0,0,.06) 顶边线在深底上会被吞掉，改白色极淡描边勾出边界。 */
--dock-border-top:      rgba(255, 255, 255, 0.08);
/* 夜间中性填充走蓝灰族（与 --bg-elevated #1a2236 同族再深一档），白字 12.59 达标。 */
--fill-neutral:         #2c3346;
}
/* v19.8-r8 · M3 夜间信任条绿字修复（第19版第8轮）
   依据：本地 WCAG 复算（A 级）。.pickup-trust__main（home.css）用 --green-text #1a7f37，
   所在容器是 <section class="section" id="pickup">（非暗带），夜间压在页面深底
   #0b1220 上 = 3.69:1，不达 AA 4.5。日间白底本已达标，故只在夜间覆写。
   处置：夜间改用 --success #30d158（压 #0b1220 = 9.26，过 AA），保持绿色「安心」语义。 */
:root[data-theme="night"] .pickup-trust__main { color: var(--success); }
/* v19.8-r8 · M2（收窄版）夜间保修绿字修复
   Edge CDP 实测：日间 .price-warranty = #1a7f37 on rgb(255,255,255) = 5.08 PASS，
   但夜间压 .price-card 的 #1a2236 只有 3.12 FAIL。故只做夜间覆写，日间不动。
   改用 --success（夜 #30d158）= 7.83，过 AA；--green-text 本身仍保持 #1a7f37
   以维持"白字按钮载体"（白压它 5.08 达标）。 */
:root[data-theme="night"] .price-warranty { color: var(--success); }
/* v19.8-r8 · M3 扩展：夜间其余绿字落点（Edge CDP 实测后追加，2026-10-20）
   实测夜间失败：.vote-result #1a7f37 on #0b1220 = 3.69（文字，需 4.5）
                 .trust-item svg  #1a7f37 on 合成底 = 2.49（图标，需 3.0）
   修法同上：夜间改用 --success（#30d158）；--green-text 不动，保留其"白字载体"角色。
   未改的 .voice__action--wx / .pickup-done__check / .pickup-slider--* 是"背景填充"，
   判据是白字压它们（5.08 已达标）或纯装饰，不属本规则范围。 */
:root[data-theme="night"] .vote-result,
:root[data-theme="night"] .trust-item:nth-child(2) svg,
:root[data-theme="night"] #battery .price-ico,
:root[data-theme="night"] .service-card .svc-ico--battery { color: var(--success); }
/* v19.1-r8 刘海 / 灵动岛避让策略（替代 r7）：
   · 顶部：不再给 nav 打负 margin、也不再给 voicebar 打补丁——统一由 body 的
     padding-top: var(--sat) 承接，并在最顶层铺一条同色固定色带（见 home.css body::before），
     保证"背景完整铺满顶部"且内容不被刘海压住。sat=0 时该色带高度为 0，零副作用。
   · 中央：nav 是 title 居左 / actions 居右的 space-between 布局，正中本来就是空白，
     不存在被刘海压住的内容；标签栏的标签从左起排，同理。因此取消 r7 的 --island-gap
     强制留白（它在窄窗口下会挤压 title 与 actions，属于本次要修的错位来源）。
   · macOS 刘海屏说明：Safari 普通窗口 / 全屏下系统仍保留菜单栏带，页面不会被刘海覆盖，
     env() 上报 0 即为正确值；只有 standalone PWA 才会上报真实 inset，本方案已覆盖。 */
* { margin:0; padding:0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
[hidden] { display: none; }
:focus-visible { outline: 2px solid var(--brand-strong); outline-offset: 2px; }
html {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
scroll-behavior: smooth;
}
/* v19.1-r9：全站减少动效的唯一总闸。
   home.css 里分散着 6 处 @media (prefers-reduced-motion) 局部关闭（reveal / devsel /
   float-bar / nav-theme-btn / hearing 等），但 html 的平滑滚动、及各 upstream pseudo
   元素的 transform 没人管 —— 单独局部开关漏一处就前功尽弃。
   这里用一条带 !important 的总闸兜底：放在链首也能压住后续文件的同特异性规则。
   依据 WCAG 2.2 SC 2.3.3（Animation from Interactions）与 19.1.txt S01。 */
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto !important; }
*, *::before, *::after {
animation-duration: 0.001ms !important;
animation-delay: 0ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.001ms !important;
transition-delay: 0ms !important;
scroll-behavior: auto !important;
}
}
/* 锚点跳转补偿：v19.1-r8 把 nav 高度恢复成 nmb 的 66px（上下 16px + 34px 控件），
   故补偿值同步改为 66px，配合 home.css 的 scroll-padding-top:20px => 总偏移 86px，
   落点在导航下方留 20px 呼吸位；再叠 --sat 保证刘海机上也不被顶部色带压住。 */
[id]:not(body) { scroll-margin-top: calc(66px + var(--sat, 0px)); }
body {
background: var(--bg-black);
color: var(--ink-primary);
/* V9-14：原来这里硬编码了一份「五字族」字体栈（缺 system-ui / SF Pro Display /
   Noto Sans SC / Helvetica Neue），而 index/used/weixiu 的 body 各自又用 var(--font-stack)
   覆盖了它 —— 结果 ask / privacy 两页落到这份短栈上，同一段中文在 Windows 上少了
   Noto Sans SC 兜底、在 macOS 上少了 SF Pro Display。改为引用唯一令牌。 */
font-family: var(--font-stack);
font-size: var(--fs-lg);
line-height: 1.65;
overscroll-behavior-y: contain;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
a, button, input, select, textarea, label, summary {
touch-action: manipulation;
}
a { color: var(--brand-strong); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, h4 {
color: var(--ink-primary);
letter-spacing: -0.02em;
font-weight: 600;
}
em { font-style: normal; }
p { color: var(--ink-primary); }
img { border-radius: var(--r-md); display: block; max-width: 100%; }
.nav {
position: sticky; top: 0; z-index: 50;
/* v19.1-r9：删除原先的 height: 48px。
   base.css 的 48px 与 home.css/used.css 的 padding:16px 20px 是同一元素的两套几何：
   box-sizing border-box 下内容区被压到 16px，而内部控件为 32px —— nav 子元素纵向溢出、
   且 --nav-h 被 JS 读成 48px 导致标签栏吸顶偏移错位（19.1.txt D7）。
   高度改由内边距自然撑开，index / used / privacy 三处一并修正。 */
background: rgba(255,255,255,0.72);
backdrop-filter: saturate(180%) blur(20px);
-webkit-backdrop-filter: saturate(180%) blur(20px);
border-bottom: 1px solid transparent;
display: flex; align-items: center; justify-content: space-between;
padding: 0 var(--sp-5);
padding-top: calc(0px + env(safe-area-inset-top, 0px));
padding-left: calc(20px + env(safe-area-inset-left, 0px));
padding-right: calc(20px + env(safe-area-inset-right, 0px));
transition:border-color var(--dur-base) ease;
}
.nav-scrolled .nav { border-bottom-color: var(--divider); }
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
.nav { background: #fff; }
}
:root[data-theme="night"] .nav { background: rgba(11,18,32,0.72); border-bottom-color: var(--divider); }
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
:root[data-theme="night"] .nav { background: #0b1220; }
}
.nav-brand { font-size: var(--fs-lg); font-weight: 600; color: var(--ink-primary); }
.nav-phone { font-size: var(--fs-md); color: var(--brand-strong); white-space: nowrap; }
.btn-primary {
display: inline-flex; align-items: center; justify-content: center;
height: 48px; border-radius: var(--r-pill);
/* v19.1-r9：原 background: var(--brand) 即白字 on #E85A0C = 3.56:1，
   不达 SC 1.4.3。改 --accent-text-bg（白天 #a04a00）= 6.04:1；夜间该令牌为 #0071e3
   （白字 4.70 达标），角色拆分说明见 base.css 昼/夜两处 --accent-text-bg 上方注释。
   v19.4-r1 C4：上版注释里的夜间取值与那句「深底另算」的免责话术，与 r10 落地值不符，
   已按 base.css 昼/夜两处 --accent-text-bg 的实际值同步。注释不再复述被推翻的旧色值，
   以免后续 grep 把它当有效取值取走。
   #E85A0C 仍作装饰色（条/边框/图标/徽章）保留。 */
background: var(--accent-text-bg);
color: #fff;
font-size: var(--fs-md); font-weight: 600;
padding: 0 var(--sp-7);
border: none;
transition:background var(--dur-fast) ease, transform var(--dur-fast) ease;
}
/* hover 不再提亮（提亮会把刚补回来的对比度又吃掉）：白天 #C24A08 白字 4.91 达标，夜间 #005bb8 白字 6.59 达标 */
.btn-primary:hover { background: var(--accent-hover); text-decoration: none; }
.btn-primary:active { transform: scale(0.98); }
.btn-secondary {
display: inline-flex; align-items: center; justify-content: center;
height: 48px; border-radius: var(--r-pill);
background: transparent;
border: 1px solid var(--brand-strong);
color: var(--brand-strong);
font-size: var(--fs-md); font-weight: 600;
padding: 0 var(--sp-7);
transition:background var(--dur-fast) ease;
}
.btn-secondary:hover { background: var(--aurora-a); text-decoration: none; }
.card {
background: var(--bg-dark);
border-radius: var(--r-md);
padding: var(--sp-5);
}
.card-elevated {
background: var(--bg-elevated);
border-radius: var(--r-md);
padding: var(--sp-5);
}
.divider { border: none; border-top: 1px solid var(--divider); margin:0; }
input, textarea, select {
background: var(--bg-elevated);
border: 1px solid var(--divider);
border-radius: var(--r-md);
color: var(--ink-primary);
font-size: var(--fs-md);
padding: var(--sp-3) var(--sp-4);
font-family: inherit;
}
input::placeholder { color: var(--ink-secondary); }
input:focus, textarea:focus, select:focus {
border-color: var(--brand-strong);
outline: none;
}
.trust-line {
font-size: var(--fs-sm);
color: var(--ink-secondary);
text-align: center;
}
.scan-controls {
display: flex; gap: var(--sp-2); flex-wrap: wrap;
}
.scan-btn {
height: 36px; border-radius: var(--r-pill);
background: var(--bg-elevated);
border: 1px solid var(--divider);
color: var(--ink-primary);
font-size: var(--fs-sm); font-weight: 500;
padding: 0 var(--sp-4);
cursor: pointer;
transition:background var(--dur-fast) ease;
}
.scan-btn:hover { background: var(--divider); }
/* v19.3-r1 C1：--brand-strong 是「文字/图标」角色令牌（夜值 #4aa3ff），
   拿它当白字背景 = 2.63:1。白字载体一律改引用 --accent-text-bg。 */
.scan-btn.active { background: var(--accent-text-bg); color: #fff; border-color: var(--accent-text-bg); }
.xray-overlay {
position: absolute; inset: 0;
pointer-events: none;
border-radius: var(--r-md);
opacity: 0; transition:opacity var(--dur-base) ease;
}
.xray-overlay.visible { opacity: 1; }
.float-bar, .bottom-bar {
position: fixed; left: 0; right: 0; bottom: 0;
z-index: 40;
/* v19.10：高度改走共享令牌。此前这里是字面量 56px，而 index/品牌页是 60，
   二手页又没自己的高度，于是三页底栏分别是 74/56/60 三种高度。 */
height: var(--dock-h);
background: var(--bg-dark);
border-top: 1px solid var(--divider);
display: flex; align-items: center; justify-content: center; gap: var(--sp-3);
padding: 0 var(--sp-5);
padding-bottom:env(safe-area-inset-bottom, 0px);
}
body.kb-open .float-bar,
body.kb-open .bottom-bar { display: none; }
.back-to-top {
position: fixed; right: 16px; bottom: 72px;
z-index: 35;
width: 44px; height: 44px;
border-radius:50%;
background: var(--bg-dark);
border: 1px solid var(--divider);
color: var(--ink-secondary);
display: flex; align-items: center; justify-content: center;
cursor: pointer;
opacity: 0; visibility: hidden;
transition:opacity var(--dur-base) ease, visibility var(--dur-base) ease;
}
.back-to-top.visible { opacity: 1; visibility: visible; }
.back-to-top svg { width: 16px; height: 16px; display: block; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.back-to-top { transition:opacity var(--dur-base) ease, visibility var(--dur-base) ease, transform var(--dur-base) ease; }
@media (hover: hover) { .back-to-top:hover { transform: translateY(-2px); } }
.back-to-top:active { transform: scale(0.92); }
.js .js-rv { opacity: 0; transition:opacity var(--dur-base) ease; }
.js .js-rv.is-visible { opacity: 1; }
@media (hover: none), (pointer: coarse) {
.btn-primary, .btn-secondary, .scan-btn { min-height: 44px; }
}
.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;
}
@media (prefers-reduced-motion: reduce) {
* { transition:none !important; animation: none !important; }
.js .js-rv { opacity: 1; }
.nav { transition:none; }
}
/* ═══════════════════════════════════════════════════════════════════════════
   共享组件层 v19.10 · 让子页面与首页「同一类元素长得一样」
   ---------------------------------------------------------------------------
   背景：首页的章节标题（小号英文标签 + 渐变竖条 + 大标题）与 eyebrow 原本只写在
        home.css 里，于是 used / 4 个品牌页 / privacy / ask 各自另写一套，
        结果同类元素在 7 个页面上有 4 种字号、3 种字距、2 种颜色、2 种有无竖条。
   做法：把「章节标题 + eyebrow」提升为本文件里的共享组件，页面样式只保留布局差异。
   约束：只定义组件外形（字号/字距/颜色/竖条/间距），不含任何页面级布局；
        页面若需要特殊处理（如 .section--band 的深底反色），在自己的样式里覆盖。
   --------------------------------------------------------------------------- */

:root {
  /* eyebrow：全大写小标签 */
  --eyebrow-fs:    var(--fs-xs);
  --eyebrow-track: 0.12em;
  --eyebrow-mb:    12px;
  /* 子页 H1 档位：营销型子页共用（二手页 / 4 个品牌页）。
     首页 hero 更大（.hero h1 自有 clamp），工具与法务页用 --fs-3xl，见各自文件。 */
  --fs-page:       clamp(30px, 6.4vw, 44px);
  /* section header：H2 主标题 */
  --heading-fs:    clamp(24px, 6vw, 32px);
  --heading-ls:    -0.02em;
  --heading-lh:    1.15;
  --heading-mb:    28px;
  /* 标题上方渐变竖条（首页视觉签名） */
  --rule-w:        36px;
  --rule-h:        4px;
  --rule-mb:       14px;
  /* 控件与底部操作栏（浮动胶囊） */
  --control-h:     48px;
  --control-h-sm:  40px;
  --dock-max:      520px;
  --dock-mb:       12px;
  --dock-pad:      8px;
  --dock-h:        60px;
  /* 底部浮动栏底色：index/used/品牌页共用。此前 index 与 used 各自硬编码
     rgba(255,255,255,.78)，品牌页用 --header-bg（夜间变深），三者不一致。 */
  --dock-bg:       rgba(255, 255, 255, 0.78);
  /* 顶边线：昼用极淡黑（白底可见），夜由夜间块覆写为极淡白（深底可见）。 */
  --dock-border-top: rgba(0, 0, 0, 0.06);
  /* V9-05：底栏「次要动作」的中性填充。此前 index/used 各自硬编码 #2c2c2e，
     无令牌就无夜间覆写点。白字 13.94 达标（S01）。 */
  --fill-neutral:  #2c2c2e;
}

/* ---- eyebrow：小号大写标签 ------------------------------------------------ */
.nv-eyebrow,
.wx-eyebrow,
.ai-eyebrow {
  display: block;
  font-size: var(--eyebrow-fs);
  font-weight: 600;
  letter-spacing: var(--eyebrow-track);
  text-transform: uppercase;
  color: var(--accent-text);
  margin-bottom: var(--eyebrow-mb);
}

/* ---- section header：H2 + 渐变竖条 --------------------------------------- */
.section-header,
.wx-section__head > h2 {
  font-size: var(--heading-fs);
  font-weight: 700;
  letter-spacing: var(--heading-ls);
  line-height: var(--heading-lh);
  margin-bottom: var(--heading-mb);
}

.section-header::before,
.wx-section__head > h2::before {
  content: '';
  display: block;
  width: var(--rule-w);
  height: var(--rule-h);
  border-radius: calc(var(--rule-h) / 2);
  background: var(--brand-grad);
  margin-bottom: var(--rule-mb);
}

.section-header em,
.wx-section__head > h2 em {
  color: var(--accent-text);
  font-style: normal;
}

/* 窄屏：标题略收一档，避免长中文标题在 375px 下折成三行 */
@media (max-width: 767px) {
  .section-header,
  .wx-section__head > h2 {
    font-size: var(--fs-3xl);
    margin-bottom: var(--sp-5);
  }
}
