/* ============================================================
   fangdai40 设计系统单源 tokens.css（T06R4 · 高级浅色换肤）
   本版 = R3 骨架 100% 保留（bento/间距/动效/结构全不动），
   只把深色分层体系翻转为浅色分层（Linear light / Stripe light 做法）。
   参照系（popular-web-designs，每条决策可追溯）：
   · Linear light —— #FAFBFC 基座 + 白提升面 + 极浅灰蓝分层，
     近黑文字 #16181D（非纯黑），亮度分层逻辑与暗端同构
   · Stripe light —— 极浅环境色晕（强调色 8-12% 透明度柔光）、
     白卡 + 极浅描边 + 极浅投影做 elevation、深色页脚锚
   · Apple —— bento 不对称、交替底色章节节奏、单一强调色纪律、
     980px pill CTA、近黑页脚反白锚（Linear/Stripe 均如此）
   强调色 R4 适配：#2DD4A8(暗端) → #0F7E5F(亮端，4.87:1 AA 正文级)；
   亮版 #12A57F 仅用于 ≥64px 大数字。中文栈 system-ui 不变。
   ============================================================ */

:root {
  /* —— 1. 色彩（Linear light 分层 × 青绿强调深化） —— */
  --bg0: #FAFBFC;            /* 页面基座（Stripe 白系微冷） */
  --bg1: #16181D;            /* footer 锚区（近黑反白锚，Linear/Stripe light 页脚手法） */
  --bg2: #FFFFFF;            /* 白色提升面（结果卡/表容器实底） */
  --bg3: #FFFFFF;            /* 悬浮/hover 表面（v3 同构占位） */

  --ink: #16181D;            /* 主文字（Linear 亮端 #16181D，非纯黑防生硬） */
  --ink-2: #4A5160;          /* 次文字 7.7:1 */
  --ink-3: #5E6675;          /* 辅助说明 5.6:1 */
  --ink-4: #6B7280;          /* 注释/免责 4.7:1（v3 的 3.25 提升到正文级） */

  --hairline: #E6E9EE;       /* 极浅灰蓝细描边（Linear 月光线的亮端） */
  --hairline-2: #D4D9E0;     /* 高一档描边 */

  --glow: #0F7E5F;           /* 青绿深化（暗端 #2DD4A8 的浅底适配版，4.87:1） */
  --glow-2: #12A57F;         /* 亮版：仅 hero B 数字/404 span（≥64px 大字，3.1:1 AA-large） */
  --glow-soft: rgba(16,167,124,.09);   /* 柔光底 */
  --glow-line: rgba(15,126,95,.32);    /* 强调描边 */

  --warm: #B45309;           /* 「多付」点睛深化（浅底 AA 级 4.85:1） */
  --warn: #C23636;           /* 误读/警示 tag 深化（5.2:1） */

  --focus: #0F7E5F;

  /* 玻璃面板（Stripe light：白底半透明 + blur + 浅描边） */
  --glass: rgba(255,255,255,.62);
  --glass-2: rgba(255,255,255,.80);

  /* —— 2. 字体（全站中文 system-ui；数字/代码 mono） —— */
  --font-hei: system-ui, -apple-system, "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei", sans-serif;
  --font-num: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;

  /* —— 3. 字号（电影感：数字超大、正文克制） —— */
  --fs-annotation: 12px;
  --fs-small: 13px;
  --fs-body: 15px;
  --fs-note: 13px;
  --fs-h3: 17px;
  --fs-h2: 20px;
  --fs-h1: 30px;
  --fs-hero-num: 64px;       /* 移动 375 起步；768↑ 88；1280↑ 108 */
  --fs-conclusion: 16px;
  --fs-kicker: 12px;

  /* —— 4. 间距与栅格 —— */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px; --space-10: 40px;
  --space-12: 48px; --space-16: 64px; --space-20: 80px;
  --gutter: 20px;
  --measure: 40em;
  --maxw: 1200px;            /* Linear 容器宽 */
  --maxw-narrow: 720px;

  /* —— 5. 圆角（Raycast 档位：6/8/12，pill 999） —— */
  --r-s: 6px;
  --r-m: 8px;
  --r-l: 12px;
  --r-pill: 999px;

  /* —— 6. 层次（Stripe light：极浅投影 + 浅描边；hover 加极浅品牌 halo） —— */
  --shadow-card: 0 0 0 1px var(--hairline),
                 0 1px 2px rgba(22,24,29,.04),
                 0 8px 24px rgba(22,24,29,.06);
  --shadow-lift: 0 0 0 1px var(--hairline-2),
                 0 0 0 4px rgba(15,126,95,.08),
                 0 12px 32px rgba(22,24,29,.10);
  --shadow-pop: 0 0 0 1px var(--hairline-2),
                0 16px 48px rgba(22,24,29,.14);
  --z-nav: 40; --z-popover: 60;

  /* —— 7. 动效 —— */
  --t-fast: 140ms;
  --t-num: 520ms;
}

/* ============ 基础 ============ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  font-family: var(--font-hei);
  font-size: var(--fs-body);
  line-height: 1.75;
  color: var(--ink);
  background: var(--bg0);
  -webkit-font-smoothing: antialiased;
}

/* 环境柔光：顶部青绿极淡光晕 + 极淡噪点（Stripe light 环境色手法：8-10% 透明度柔光，浅端做法） */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(1100px 480px at 50% -140px, rgba(16,167,124,.055), transparent 62%),
    radial-gradient(900px 500px at 88% 12%, rgba(94,110,242,.030), transparent 60%);
}
body::after {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .04 0'/></filter><rect width='140' height='140' filter='url(%23n)'/></svg>");
  background-size: 140px 140px;
}

::selection { background: rgba(16,167,124,.22); color: #16181D; }

a { color: var(--glow); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #0C6B51; }

/* ============ 通用组件 ============ */

/* 眉题 kicker：发光小胶囊（Linear pill 变体，青绿点字） */
/* kicker 胶囊描边（浅底版强调描边） */
.kicker {
  font-size: var(--fs-kicker); font-weight: 600;
  letter-spacing: .14em; color: #0C6B51;
  display: inline-flex; align-items: center; gap: var(--space-2);
  padding: 5px 12px; border-radius: var(--r-pill);
  background: var(--glow-soft);
  border: 1px solid rgba(15,126,95,.28);
}
.kicker::before { content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--glow); box-shadow: 0 0 6px rgba(15,126,95,.45); flex: none; }

/* 章节头：去报纸感 → 亮度分层（Linear：无分隔线，靠留白+层级） */
.sec-head {
  display: flex; align-items: baseline; gap: var(--space-4);
  margin: var(--space-16) 0 var(--space-6);
}
.sec-head h2 {
  font-size: var(--fs-h2); font-weight: 600; margin: 0;
  letter-spacing: -.01em; color: var(--ink);
}
.sec-head .sec-no {
  font-family: var(--font-num); font-size: var(--fs-small);
  color: var(--ink-4); letter-spacing: .08em;
}

/* 输入卡：玻璃卡（Raycast 卡 + Linear rgba 白） */
.card {
  background: var(--glass);
  border: 1px solid var(--hairline);
  border-radius: var(--r-l);
  box-shadow: var(--shadow-card);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
}

/* 标签 */
.f-label {
  display: block; font-size: var(--fs-small); font-weight: 600;
  color: var(--ink-2); margin-bottom: var(--space-2); letter-spacing: .02em;
}

/* 输入框：白瓷内槽 + 聚焦品牌环（Stripe light input 手法） */
.f-input, .f-select {
  width: 100%; min-height: 48px; padding: 11px 14px;
  font-family: var(--font-num); font-size: 18px; font-weight: 600;
  color: var(--ink); background: #FFFFFF;
  border: 1px solid var(--hairline-2); border-radius: var(--r-s);
  outline: none; transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.f-input:focus-visible, .f-select:focus-visible {
  border-color: var(--glow);
  box-shadow: 0 0 0 3px rgba(15,126,95,.14);
}
.f-input::placeholder { color: var(--ink-4); font-weight: 400; }
.f-select { appearance: none; padding-right: 34px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M1 1l4 4 4-4' stroke='%235E6675' stroke-width='1.5' fill='none'/></svg>");
  background-repeat: no-repeat; background-position: right 13px center; }
.f-select option { background: #FFFFFF; color: var(--ink); }

/* chip：暗玻璃胶囊（Linear ghost button 6px→pill） */
.chip {
  font-family: var(--font-num); font-size: var(--fs-small); font-weight: 500;
  padding: 9px 14px; min-height: 44px;
  background: var(--glass-2); color: var(--ink-2);
  border: 1px solid var(--hairline); border-radius: var(--r-s);
  cursor: pointer;
  transition: opacity var(--t-fast), border-color var(--t-fast), color var(--t-fast), background var(--t-fast);
}
.chip:hover { opacity: .75; color: var(--ink); border-color: var(--hairline-2); }
.chip:active { transform: translateY(1px); }
.chip[aria-pressed="true"] {
  background: rgba(45,212,168,.13); color: var(--glow);
  border-color: rgba(45,212,168,.35);
}

/* 分段控件：浅轨道 + 滑动白瓷指示器（Stripe light segmented；motion.js 驱动位移动画） */
.seg {
  position: relative; display: inline-flex; padding: 3px;
  background: #EDF0F4; border: 1px solid var(--hairline);
  border-radius: var(--r-s);
}
.seg .seg-thumb {
  position: absolute; top: 3px; bottom: 3px; left: 3px;
  width: calc(50% - 3px); border-radius: 4px;
  background: #FFFFFF; border: 1px solid rgba(15,126,95,.22);
  box-shadow: 0 1px 2px rgba(22,24,29,.10), 0 2px 8px rgba(22,24,29,.06);
  transition: transform var(--t-num) cubic-bezier(.22,1,.36,1);
}
.seg button {
  position: relative; z-index: 1;
  font-size: var(--fs-small); font-weight: 600;
  padding: 10px 18px; min-height: 44px; width: 8.5em;
  background: none; border: 0; cursor: pointer;
  color: var(--ink-3); transition: color var(--t-fast);
}
.seg button[aria-pressed="true"] { color: var(--glow); }
.seg button:focus-visible { outline: 2px solid var(--glow-line); outline-offset: 2px; border-radius: 4px; }

/* 结果卡：不对称（A 收窄 + B 大卡自带边光，Apple bento 大小对比） */
.result-card {
  position: relative;
  padding: var(--space-6);
  border-radius: var(--r-l);
  background: linear-gradient(180deg, #FFFFFF, #FCFDFD);
  border: 1px solid var(--hairline);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.result-card::before {           /* 顶缘 1px 高光（浅底：极浅白高光） */
  content: ""; position: absolute; inset: 0 0 auto 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.9), transparent);
}
.is-B::after {                    /* B 卡（更长年限）专属青绿边光（浅底柔化版） */
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: 0 0 0 1px rgba(15,126,95,.20), 0 0 44px rgba(16,167,124,.10) inset;
}
.rc-chipA, .rc-chipB { display: none; }
.result-card .rc-year {
  font-weight: 600; font-size: var(--fs-h3);
  display: flex; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-2);
  color: var(--ink);
}
.result-card .rc-year::after {
  content: ""; flex: 1; height: 1px; margin-left: var(--space-2);
  background: linear-gradient(90deg, var(--hairline), transparent);
}
.is-A .rc-year::before {
  content: "A"; font-family: var(--font-num); font-size: 11px; font-weight: 600;
  color: var(--ink-3); border: 1px solid var(--hairline-2);
  padding: 1px 6px; border-radius: 4px; letter-spacing: .06em;
}
.is-B .rc-year::before {
  content: "B"; font-family: var(--font-num); font-size: 11px; font-weight: 600;
  color: var(--glow); border: 1px solid rgba(15,126,95,.32);
  background: rgba(16,167,124,.10);
  padding: 1px 6px; border-radius: 4px; letter-spacing: .06em;
}
/* hero 数字：深字 + 青绿光晕（浅底做法：字色深、光晕做氛围；任务执行清单点 3） */
.rc-num {
  font-family: var(--font-num); font-weight: 700;
  font-size: var(--fs-hero-num);
  letter-spacing: -.04em; line-height: 1.04;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  text-shadow: 0 0 20px rgba(16,167,124,.20);
  display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2);
  margin: 0 0 var(--space-2);
}
.is-B .rc-num { color: var(--glow-2); text-shadow: 0 0 30px rgba(16,167,124,.28), 0 0 3px rgba(16,167,124,.18); }
.rc-num .num-ghost { opacity: 0; }
.rc-unit {
  font-family: var(--font-hei); font-size: 13px; font-weight: 400;
  color: var(--ink-3); letter-spacing: .04em;
}
.rc-sub { font-family: var(--font-num); font-size: var(--fs-small); color: var(--ink-3); margin: 0 0 var(--space-3); }
.rc-rows { margin-top: var(--space-2); }
.rc-row {
  display: flex; justify-content: space-between; gap: var(--space-3);
  padding: 9px 0; border-bottom: 1px solid var(--hairline);
  font-size: var(--fs-small);
}
.rc-row:last-child { border-bottom: 0; }
.rc-row .k { color: var(--ink-3); font-weight: 400; }
.rc-row .v { font-family: var(--font-num); font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink-2); }

/* 结论卡：青绿浅底横幅（Apple 单主张 section × Stripe light 柔光底） */
.conclusion {
  margin-top: var(--space-6);
  background:
    linear-gradient(180deg, rgba(16,167,124,.10), rgba(16,167,124,.05)),
    #FFFFFF;
  color: var(--ink);
  border: 1px solid rgba(15,126,95,.26);
  border-radius: var(--r-l);
  padding: var(--space-5) var(--space-6);
  font-size: var(--fs-conclusion); font-weight: 600;
  line-height: 1.8;
  box-shadow: 0 0 0 1px rgba(15,126,95,.06), 0 8px 28px rgba(22,24,29,.06);
  overflow: hidden;
}
.conclusion .c-num { font-family: var(--font-num); color: var(--glow); }
.conclusion .c-num-down { font-family: var(--font-num); color: var(--warm); }

/* 差值行：玻璃胶囊对 */
.diff-row {
  display: flex; flex-wrap: wrap; gap: var(--space-3);
  margin-top: var(--space-4); font-size: var(--fs-small);
}
.diff-pill {
  display: inline-flex; align-items: center;
  background: var(--glass-2); border: 1px solid var(--hairline-2);
  border-radius: var(--r-pill); padding: 7px 14px;
  color: var(--ink-2); font-weight: 400;
}
.diff-pill b { font-family: var(--font-num); color: var(--ink); margin-left: 4px; }

/* 表格：暗玻璃行情表（Raycast 数据卡；隔行 Linear 亮度分层） */
.tbl { width: 100%; border-collapse: collapse; font-size: var(--fs-small); background: transparent; }
.tbl caption { text-align: left; font-size: var(--fs-annotation); color: var(--ink-4); padding-bottom: var(--space-2); }
.tbl th, .tbl td { padding: 10px 12px; text-align: right; border-bottom: 1px solid var(--hairline); }
.tbl th:first-child, .tbl td:first-child { text-align: left; }
.tbl thead th {
  font-weight: 600; color: var(--ink-2);
  border-top: 1px solid var(--hairline-2); border-bottom: 1px solid var(--hairline-2);
  white-space: nowrap;
}
.tbl td { font-family: var(--font-num); font-variant-numeric: tabular-nums; color: var(--ink-2); }
.tbl td:first-child { font-family: var(--font-hei); color: var(--ink-2); }
.tbl tbody tr:nth-child(odd) { background: rgba(22,24,29,.018); }
.tbl .tA, .tbl .tB { color: var(--ink); font-weight: 600; }
.tbl .tB { color: var(--glow); }
.tbl .tDiff { color: var(--warm); font-weight: 600; }

/* 引用框（政策页声明） */
.callout {
  background: var(--glass);
  border: 1px solid var(--hairline);
  border-radius: var(--r-m);
  padding: var(--space-4) var(--space-5);
  font-size: var(--fs-small); color: var(--ink-3);
}

/* 误读双标签 */
.misread-tag {
  display: inline-block; font-size: var(--fs-annotation); font-weight: 600;
  padding: 2px 9px; border-radius: var(--r-pill); letter-spacing: .05em;
}
.misread-tag.wrong { background: rgba(194,54,54,.09); color: #C23636; border: 1px solid rgba(194,54,54,.26); }
.misread-tag.right { background: var(--glow-soft); color: var(--glow); border: 1px solid rgba(15,126,95,.26); }

/* FAQ */
.faq-item { border-bottom: 1px solid var(--hairline); }
.faq-item:last-child { border-bottom: 0; }
.faq-q { font-weight: 600; font-size: var(--fs-h3); color: var(--ink); padding: var(--space-4) 0 var(--space-2); margin: 0; }
.faq-a { color: var(--ink-2); font-size: var(--fs-body); margin: 0 0 var(--space-4); }

/* 页脚（全站免责组件样式壳；文案由 T04 §6.1 逐字注入）*/
/* R4：页脚 = 浅色站的近黑反白「锚」（Linear/Stripe light 页脚手法），对比度独立校准 */
.site-footer {
  margin-top: var(--space-20);
  border-top: 1px solid rgba(255,255,255,.08);
  background: var(--bg1);
  color: #B3BAC6;
  font-size: var(--fs-annotation); line-height: 1.9;
  padding: var(--space-8) var(--gutter) var(--space-10);
}
.site-footer a { color: #C9D0DB; text-decoration: underline; }
.site-footer a:hover { color: #4ED2A8; }
.site-footer .f-links a { color: #C9D0DB; display: inline-block; padding: 12px 12px 12px 0; }

/* T07X: 政策依据外链 —— 沿用站内链接视觉（全局 a=青绿下划线 hover 加深；页脚内继承页脚灰绿），
   触控目标 ≥44px：inline-block + 上下 padding 11px（文字行盒 ~22.8px + 22px = ~44.8px），
   负 margin 抵消多余占位避免行距膨胀；相邻行均为非重叠文本/自带 padding 的链接行，无点击冲突 */
a.ext-src {
  display: inline-block;
  padding: 11px 0;
  margin: -8px 0;
  min-height: 44px;
  box-sizing: border-box;
  text-underline-offset: 4px;
}

/* 无 JS 降级条 */
.nojs {
  background: rgba(180,83,9,.07); border: 1px dashed rgba(146,64,14,.38);
  color: #92400E;
  padding: var(--space-4); border-radius: var(--r-m); font-size: var(--fs-small);
}

.num, .num-roll { font-variant-numeric: tabular-nums; }

/* 响应式断点：375 基准 → 768 → 1280 */
@media (min-width: 768px) {
  :root { --fs-h1: 38px; --fs-hero-num: 88px; --fs-conclusion: 19px; --fs-h2: 24px; --gutter: 32px; }
}
@media (min-width: 1280px) {
  :root { --fs-h1: 44px; --fs-hero-num: 108px; }
}

/* ============================================================
   页面级布局（preview 页面专用层；T07 可并入生产 CSS）
   ============================================================ */
.wrap { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.wrap.narrow { max-width: var(--maxw-narrow); }

/* —— 顶栏：白玻璃 blur sticky（Apple 导航玻璃的浅端 + Linear sticky） —— */
.topbar {
  position: sticky; top: 0; z-index: var(--z-nav);
  background: rgba(250,251,252,.78);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--hairline);
}
.topbar-in { display: flex; align-items: center; justify-content: space-between; min-height: 60px; gap: var(--space-4); }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); padding: 8px 0; }
.brand-mark {
  font-family: var(--font-num); font-weight: 700; font-size: 15px;
  background: linear-gradient(135deg, #0F7E5F, #0C6B51);
  color: #FFFFFF;
  width: 36px; height: 36px; border-radius: var(--r-s);
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 1px 2px rgba(22,24,29,.18), 0 0 14px rgba(16,167,124,.28);
}
.brand-name { font-weight: 600; font-size: 15px; letter-spacing: .01em; display: flex; flex-direction: column; line-height: 1.15; }
.brand-sub { font-weight: 400; font-size: 10px; color: var(--ink-4); letter-spacing: .14em; }
.topnav { display: flex; align-items: center; gap: var(--space-4); font-size: var(--fs-small); }
.topnav a {
  text-decoration: none; color: var(--ink-2); font-weight: 500;
  display: inline-flex; align-items: center;
  min-height: 44px; padding: 10px 14px; border-radius: var(--r-s);
  border: 1px solid transparent;
  transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast);
}
.topnav a:hover { color: var(--glow); background: var(--glass-2); border-color: var(--hairline); }
.nav-date { font-family: var(--font-num); font-size: var(--fs-annotation); color: var(--ink-4); }

/* —— 首页 hero：暗场大字（Linear hero：压缩负字距 + 大留白） —— */
.hero { padding-top: var(--space-12); padding-bottom: var(--space-4); }
.hero h1 {
  font-weight: 700; color: var(--ink);
  font-size: var(--fs-h1); line-height: 1.24; letter-spacing: -.015em;
  margin: var(--space-5) 0 var(--space-3);
  text-wrap: balance;
}
.h1-glow { color: var(--glow); }
.hero-sub { font-size: var(--fs-body); color: var(--ink-2); margin: 0 0 var(--space-4); max-width: 40em; }
.lede {
  font-size: var(--fs-body); color: var(--ink-3);
  line-height: 1.95; max-width: 40em;
  border-left: 2px solid var(--glow-line); padding-left: var(--space-4);
  margin: var(--space-5) 0 0;
}

/* —— 工具区：桌面 bento 不对称 5/7（Apple bento × Linear 双列） —— */
.tool-grid { display: grid; gap: var(--space-8); grid-template-columns: 1fr; margin-top: var(--space-8); }
.input-card { padding: var(--space-6); align-self: start; }
.field { margin-bottom: var(--space-5); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-3); }
.f-note { font-size: var(--fs-annotation); color: var(--ink-4); line-height: 1.7; margin: var(--space-2) 0 0; }
.input-note { margin: var(--space-3) 0 var(--space-5); }
.swap-note { font-size: var(--fs-annotation); color: var(--ink-4); margin: calc(-1 * var(--space-3)) 0 var(--space-5); }
.share-line { font-size: var(--fs-annotation); color: var(--ink-4); word-break: break-all; margin: var(--space-4) 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.share-line code { font-family: var(--font-num); background: rgba(22,24,29,.05); padding: 3px 8px; border-radius: 4px; border: 1px solid var(--hairline); color: var(--ink-3); }

/* 结果区 */
.results { position: relative; }
.results .sec-head { margin-top: 0; }
.rc-grid { display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
.rc-grid > .result-card { min-width: 0; }
.rc-num { max-width: 100%; }
.disclaim { font-size: var(--fs-annotation); color: var(--ink-4); line-height: 1.8; margin-top: var(--space-3); }

/* 表格容器 */
.tbl-bento { display: grid; gap: var(--space-4); margin: var(--space-4) 0; }
.tbl-wrap {
  overflow-x: auto; margin: 0;
  -webkit-overflow-scrolling: touch;
  border: 1px solid var(--hairline); border-radius: var(--r-m);
  background: var(--glass);
}
.tbl-wrap .tbl { margin: 0; }
.tbl-wrap .tbl th:first-child, .tbl-wrap .tbl td:first-child { padding-left: 14px; }
.tbl-note { font-size: var(--fs-annotation); color: var(--ink-4); line-height: 1.8; }

/* 新政 teaser */
.policy-teaser ul.teaser-list { margin: 0 0 var(--space-4); padding-left: 1.2em; color: var(--ink-2); }
.policy-teaser li { margin-bottom: 6px; }
.cta-link { font-weight: 600; color: var(--glow); white-space: nowrap; display: inline-block; padding: 12px 0; transition: opacity var(--t-fast); }
.cta-link:hover { opacity: .75; }

/* FAQ */
.faq { padding-bottom: var(--space-4); }

/* 政策页 */
.narrow h1 {
  font-weight: 700; font-size: var(--fs-h1);
  line-height: 1.34; margin: var(--space-4) 0 var(--space-5); text-wrap: balance;
}
.narrow .kicker { margin-top: var(--space-8); }
.qa-list .faq-q { padding-top: var(--space-5); }
.track { display: grid; gap: var(--space-3); grid-template-columns: 1fr; margin: var(--space-4) 0; }
.track-col {
  background: var(--glass); border: 1px solid var(--hairline); border-radius: var(--r-m);
  padding: var(--space-4); font-size: var(--fs-small); color: var(--ink-2);
}
.track-col p { margin: 6px 0; }
.track-t { margin-top: 0; }
.misread {
  background: var(--glass); border: 1px solid var(--hairline); border-radius: var(--r-m);
  padding: var(--space-4) var(--space-5); margin-bottom: var(--space-4);
  transition: border-color var(--t-fast), transform var(--t-fast);
}
.misread:hover { border-color: rgba(194,54,54,.30); }
.mr-head { font-weight: 600; font-size: var(--fs-h3); margin: 0 0 var(--space-2); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--ink); }
.mr-body { color: var(--ink-2); margin: 0; display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.mr-body .misread-tag { margin-top: 3px; flex: none; }
.body-text { color: var(--ink-2); }
.cta-final { margin: var(--space-10) 0 var(--space-12); }
.cta-btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 16px;
  background: var(--glow); color: #FFFFFF; text-decoration: none;
  padding: 14px 26px; border-radius: var(--r-pill);
  border: 1px solid rgba(12,107,81,.55);
  box-shadow: 0 1px 2px rgba(22,24,29,.15), 0 0 20px rgba(16,167,124,.22), 0 1px 0 rgba(255,255,255,.35) inset;
  transition: transform var(--t-fast), box-shadow var(--t-fast), opacity var(--t-fast);
}
.cta-btn:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(22,24,29,.15), 0 0 30px rgba(16,167,124,.32), 0 1px 0 rgba(255,255,255,.35) inset; opacity: .94; }
.cta-btn:active { transform: translateY(1px); box-shadow: 0 1px 6px rgba(16,167,124,.18); }

/* 法律页 */
.legal h2 {
  font-size: var(--fs-h3); font-weight: 600; color: var(--ink);
  margin: var(--space-8) 0 var(--space-3); padding-top: var(--space-4);
  border-top: 1px solid var(--hairline);
}
.legal p, .legal li { color: var(--ink-2); font-size: var(--fs-note); line-height: 1.9; }
.legal ul { padding-left: 1.3em; }
.legal .meta-date { font-family: var(--font-num); color: var(--ink-4); font-size: var(--fs-small); }
.legal code { font-family: var(--font-num); background: rgba(22,24,29,.05); padding: 2px 6px; border-radius: 4px; }

/* 404 */
.p404 { text-align: center; padding: var(--space-20) var(--gutter); }
.p404 .code {
  font-family: var(--font-num); font-size: clamp(96px, 24vw, 200px); font-weight: 700;
  color: var(--ink); letter-spacing: -.04em; line-height: 1;
  text-shadow: 0 0 32px rgba(16,167,124,.18);
}
.p404 .code span { color: var(--glow-2); text-shadow: 0 0 26px rgba(16,167,124,.35); }
.p404 h1 { font-size: var(--fs-h2); margin: var(--space-4) 0; }
.p404 ul { list-style: none; padding: 0; }
.p404 li { margin: var(--space-3) 0; }
.p404 a { font-weight: 600; font-size: 16px; display: inline-block; padding: 12px 0; }

/* —— 数字滚动（motion.js 驱动） —— */
.num-roll { transition: opacity var(--t-num) ease, transform var(--t-num) ease; }

/* —— 滚动显现（motion.js reveal：初始态在这里，no-js/降级安全） —— */
.js .reveal { opacity: 0; transform: translateY(14px); }
.js .reveal.rv-in { opacity: 1; transform: none; transition: opacity .6s cubic-bezier(.22,1,.36,1), transform .6s cubic-bezier(.22,1,.36,1); }

/* —— 响应式 —— */
@media (min-width: 1024px) {
  .tool-grid { grid-template-columns: 5fr 7fr; gap: var(--space-6); align-items: start; }
  .rc-grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .hero { padding-top: var(--space-16); }
}
@media (min-width: 768px) {
  .input-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--space-5); }
  .input-grid .field-narrow { margin-bottom: 0; }
  .track { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1280px) {
  .hero h1 { font-size: 48px; }
  .narrow h1 { font-size: 36px; }
}

/* 滚动显现动画可用性：用户偏好减弱动效时还原 */
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1 !important; transform: none !important; }
  .num-roll { transition: none !important; }
  .seg .seg-thumb { transition: none !important; }
}
@media (prefers-reduced-motion: no-preference) {
  *, *::before, *::after { scroll-behavior: smooth; }
}

/* skip link 聚焦态 */
.skip:focus { left: 8px !important; top: 8px; position: absolute; z-index: 100;
  background: var(--glow); color: #FFFFFF; padding: 12px 16px; border-radius: var(--r-s); text-decoration: none; font-weight: 600; }
