/* =========================================================
   升学 · 未来生活模拟器 —— 设计系统 v2
   配色：青色主色 + 少量琥珀点缀 · 冷调高级中性
   移动端 H5 · 无左侧竖条 · 图片占位代替 emoji
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,400;0,600;0,700;0,800;0,900&display=swap');

:root {
  /* ---- 冷调中性基底 ---- */
  --paper: #f0f8fc;
  --paper-2: #e8f4f9;
  --surface: #ffffff;
  --surface-soft: #f5f8f9;
  --surface-sink: #eef3f4;

  /* ---- 文字（深青灰） ---- */
  --ink: #202020;
  --ink-soft: #41555e;
  --muted: #76878f;
  --faint: #a6b3b9;
  --line: #e5ebed;
  --line-strong: #d4dde0;

  /* ---- 青色（主色 / 信任 / 未来）—— 沿用 --grow* 变量名 ---- */
  --grow: #01BCD6;
  --grow-700: #0a7e8f;
  --grow-600: #0399b0;
  --grow-300: #86dae6;
  --grow-tint: #e1f6f9;
  --grow-tint-2: #c4edf2;

  /* ---- 琥珀只做少量点缀 ---- */
  --coral: #F59E0B;
  --coral-600: #B77905;
  --coral-tint: #FFF8E8;
  --coral-tint-2: #FDECC8;

  /* ---- 数据高光：仍偏青，只保留轻微琥珀提示 ---- */
  --gold: #F59E0B;
  --gold-600: #B77905;
  --gold-tint: #FFF8E8;

  /* ---- 语义色 ---- */
  --good: #0a7e8f;          /* 青：达标/安心 */
  --good-tint: #e1f6f9;
  --warn: #B77905;          /* 琥珀：注意 */
  --warn-tint: #FFF8E8;
  --risk: #D85C4A;          /* 红：现金流不够/需提前安排 */
  --soft-risk: #B77905;     /* 琥珀：真正需要注意 */
  --risk-tint: #FFF8E8;

  /* 对比三色：青色系，不再用多色强对比 */
  --p1: #01BCD6;
  --p2: #078DA2;
  --p3: #0F766E;

  --r-xl: 26px;
  --r: 20px;
  --r-sm: 14px;
  --r-xs: 11px;
  --pill: 999px;

  --sh-xs: 0 1px 2px rgba(18, 40, 48, 0.05);
  --sh-sm: 0 2px 6px rgba(18, 40, 48, 0.06), 0 1px 2px rgba(18, 40, 48, 0.04);
  --sh: 0 8px 22px -10px rgba(18, 40, 48, 0.18), 0 2px 5px rgba(18, 40, 48, 0.05);
  --sh-lg: 0 20px 46px -18px rgba(18, 40, 48, 0.30), 0 4px 12px -6px rgba(18, 40, 48, 0.10);

  --app-w: 468px;
  --num: 'Nunito', -apple-system, BlinkMacSystemFont, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font-family: 'Nunito', -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
  background: var(--surface);
  overflow-x: clip;
}

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; border: 0; background: none; }
b, strong { font-weight: 800; }

.num, .kpi-big, .gap-num, .cmp-v, .stat-num { font-family: var(--num); font-feature-settings: "tnum" 1; }

.checkup-debug-entry {
  position: sticky;
  top: 10px;
  float: right;
  z-index: 8;
  margin: 0 0 -36px 8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(1, 188, 214, .25);
  background: rgba(255, 255, 255, .9);
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
  box-shadow: var(--sh-sm);
  backdrop-filter: blur(10px);
}
.checkup-debug-modal[hidden] { display: none; }
.checkup-debug-modal {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 12px;
}
.checkup-debug-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(7, 26, 32, .48);
}
.checkup-debug-panel {
  position: relative;
  z-index: 1;
  width: min(96vw, 1120px);
  height: min(92vh, 820px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--sh-lg);
}
.checkup-debug-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
}
.checkup-debug-head b { display: block; font-size: 16px; }
.checkup-debug-head span {
  display: block;
  margin-top: 2px;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 750;
}
.checkup-debug-head button {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--surface-sink);
  font-size: 12px;
  font-weight: 900;
}
.checkup-debug-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
}
.checkup-debug-tabs button {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 999px;
  background: #fff;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 900;
}
.checkup-debug-tabs button.on { background: var(--grow); color: #fff; }
.checkup-debug-body {
  flex: 1;
  overflow: auto;
  padding: 14px;
}
.checkup-debug-pane { display: none; }
.checkup-debug-pane.on { display: block; }
.checkup-debug-block {
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}
.checkup-debug-block h3 {
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft);
  font-size: 13px;
}
.checkup-debug-block h3 small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.checkup-debug-empty {
  padding: 18px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}
.checkup-debug-table-wrap {
  max-height: 58vh;
  overflow: auto;
}
.checkup-debug-table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.checkup-debug-table th,
.checkup-debug-table td {
  max-width: 280px;
  padding: 7px 8px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
  white-space: nowrap;
}
.checkup-debug-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #eef7fa;
  color: var(--ink);
  font-weight: 900;
}
.checkup-debug-table td {
  color: var(--ink-soft);
  font-family: var(--num);
}
.checkup-debug-block.compact .checkup-debug-table {
  width: 100%;
}
.checkup-debug-block.compact .checkup-debug-table td:last-child {
  white-space: normal;
  font-family: inherit;
}
.checkup-debug-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.checkup-debug-summary-card {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface-soft);
}
.checkup-debug-summary-card span,
.checkup-debug-summary-card em {
  display: block;
  color: var(--ink-soft);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}
.checkup-debug-summary-card b {
  display: block;
  margin: 2px 0;
  color: var(--grow-700);
  font-size: 22px;
  line-height: 1.1;
  font-family: var(--num);
}

/* ================= 手机外壳 ================= */
.phone {
  width: min(100%, var(--app-w));
  margin: 0 auto;
  min-height: 100vh;
  min-height: 100dvh;
  padding-bottom: calc(28px + env(safe-area-inset-bottom));
  position: relative;
  border: none;
  border-radius: 16px;
  background: var(--surface);
  box-shadow:
    0 2px 8px rgba(18, 40, 48, 0.06),
    0 12px 32px rgba(18, 40, 48, 0.12),
    0 24px 64px rgba(18, 40, 48, 0.08);
  overflow: visible;
}

@media (max-width: 468px) {
  .phone {
    width: 100%;
    max-width: none;
    border-radius: 0;
    box-shadow: none;
  }
}

/* ================= 顶栏 ================= */
.appbar {
  display: none;
}
.logo {
  width: 40px; height: 40px; flex: 0 0 auto;
  border-radius: 13px; display: grid; place-items: center;
  color: #fff;
  background: var(--grow);
  box-shadow: 0 8px 18px -7px rgba(1, 188, 214, 0.55), inset 0 1px 0 rgba(255,255,255,0.35);
}
.logo-icon {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.appbar .titles { flex: 1 1 auto; min-width: 0; }
.appbar .t1 { font-weight: 900; font-size: 17px; letter-spacing: -0.01em; line-height: 1.2; }
.appbar .t2 { color: var(--muted); font-size: 11.5px; margin-top: 2px; line-height: 1.35; }
.appbar .compare-entry,
.appbar .reset {
  flex: 0 0 auto; font-size: 12.5px; font-weight: 800; color: var(--ink-soft);
  min-height: 44px; padding: 8px 13px; border-radius: var(--pill);
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--surface); box-shadow: var(--sh-xs); border: 1px solid var(--line);
}
.appbar .compare-entry {
  color: var(--grow-700);
  background: var(--grow-tint);
  border-color: var(--grow-tint-2);
}
.appbar .compare-entry.is-active {
  color: #fff;
  background: var(--grow);
  border-color: transparent;
}
.appbar .compare-entry:active,
.appbar .reset:active { transform: translateY(1px); }

/* compare-ui-hidden: 暂时隐藏所有并排对比入口，恢复时改 logic.js 中 COMPARE_UI_ENABLED 为 true */
body.compare-ui-hidden #compareBtn,
body.compare-ui-hidden .compare-entry,
body.compare-ui-hidden [data-add-explore],
body.compare-ui-hidden [data-go-compare] {
  display: none !important;
}

/* ================= 旅程进度（3 站） ================= */
.journey {
  position: relative; z-index: 3;
  display: flex; align-items: center; justify-content: stretch; gap: 4px;
  margin: 12px 14px 6px; padding: 4px;
  min-width: 0;
  border: 1px solid rgba(1, 188, 214, .20);
  border-radius: var(--pill);
  background: rgba(245, 251, 252, .92);
}
.j-sep {
  display: none;
}
.j-step {
  flex: 1 1 0; min-width: 0;
  display: flex; align-items: center; justify-content: center;
  min-height: 34px; padding: 6px 8px;
  color: var(--muted);
  border-radius: var(--pill);
  transition: color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.j-title {
  font-size: 12.5px; font-weight: 900; line-height: 1;
  text-align: center; max-width: 100%;
  white-space: nowrap;
}
.j-hint {
  display: none;
}

@media (max-width: 420px) {
  .journey { margin-inline: 10px; }
  .j-step { padding-inline: 6px; }
}
.j-step.done { color: var(--grow-700); }
.j-step.done .j-title::before {
  content: "";
}
.j-step.active {
  color: #ffffff;
  background: var(--grow);
  box-shadow: 0 6px 14px -10px rgba(1, 188, 214, .8);
}
.j-step[disabled] { opacity: .42; pointer-events: none; }

/* ================= 屏幕容器 ================= */
#screen { padding: 10px 16px 10px; background: var(--surface); }
.screen { animation: rise .4s cubic-bezier(.2,.8,.2,1); }
body.checkup-preview-mode .journey,
body.checkup-preview-mode .appbar .compare-entry,
body.checkup-preview-mode .dock {
  display: none !important;
}
.checkup-preview-shell {
  padding-bottom: 22px;
}
@keyframes rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ================= 卡片 / 面板 ================= */
.card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r); box-shadow: var(--sh);
  padding: 18px; margin: 14px 0;
}
.card.flat { box-shadow: var(--sh-sm); }

/* 标题：无竖条，改用文字权重 + 小圆点 */
.head { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }
.head h2 { margin: 0; font-size: 17.5px; font-weight: 900; letter-spacing: -0.01em; display: flex; align-items: center; gap: 9px; }
.head h2::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto;
  background: var(--grow);
}
.head.grow h2::before { background: var(--grow); }
.head.gold h2::before { background: var(--gold); }
.head .pill {
  margin-left: auto; flex: 0 0 auto; color: var(--ink-soft);
  font-size: 11.5px; font-weight: 800; background: var(--surface-sink);
  padding: 5px 11px; border-radius: var(--pill);
}

/* ================= 按钮 ================= */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 50px; padding: 0 22px; border-radius: var(--r-sm);
  font-weight: 800; font-size: 15px; letter-spacing: -0.01em;
  transition: transform .12s, box-shadow .2s, background .2s;
}
.btn:active { transform: translateY(1px) scale(.995); }
.btn.block { width: 100%; }
.btn.grow {
  color: #fff; background: var(--grow);
  box-shadow: 0 13px 26px -12px rgba(1, 188, 214, 0.55);
}
.btn.coral {
  color: #fff; background: linear-gradient(150deg, var(--coral), var(--coral-600));
  box-shadow: 0 13px 26px -12px rgba(183,121,5,0.65);
}
.btn.ghost {
  background: var(--surface); color: var(--ink-soft);
  border: 1px solid var(--line-strong); box-shadow: var(--sh-xs);
}
.btn.ghost:hover { border-color: var(--grow); color: var(--grow-700); }
.btn.soft { background: var(--grow-tint); color: var(--grow-700); border: 1px solid var(--grow-tint-2); }
.btn.sm { min-height: 40px; font-size: 13.5px; padding: 0 15px; border-radius: var(--r-xs); }
.btn[disabled] { opacity: .45; pointer-events: none; }
.btn-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

/* ================= 确认弹窗 ================= */
.confirm-dialog[hidden] { display: none; }
.confirm-dialog {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 24px;
}
.confirm-dialog-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(18, 40, 48, .45);
  backdrop-filter: blur(2px);
}
.confirm-dialog-card {
  position: relative;
  z-index: 1;
  width: min(100%, 320px);
  padding: 22px 20px 16px;
  border-radius: var(--r);
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--sh-lg);
  animation: confirm-enter .24s cubic-bezier(.2, .8, .2, 1);
}
.confirm-dialog-title {
  margin: 0;
  font-size: 18px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -.02em;
  color: var(--ink);
  text-wrap: balance;
}
.confirm-dialog-message {
  margin: 10px 0 0;
  font-size: 14px;
  font-weight: 750;
  line-height: 1.6;
  color: var(--ink-soft);
  text-wrap: pretty;
}
.confirm-dialog-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 18px;
}
@keyframes confirm-enter {
  from { opacity: 0; transform: translateY(10px) scale(.98); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .confirm-dialog-card { animation: none; }
}
body.confirm-dialog-open {
  overflow: hidden;
}

/* ================= 图片占位（用户自填） ================= */
.imgph {
  position: relative; overflow: hidden; border-radius: var(--r-sm);
  background:
    repeating-linear-gradient(135deg, var(--surface-sink) 0 9px, var(--surface-soft) 9px 18px);
  border: 1px solid var(--line);
  display: grid; place-items: center;
}
.imgph > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.imgph .imgph-tag {
  position: relative; z-index: 1;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; font-weight: 700; color: var(--muted);
  background: rgba(255,255,255,0.82); padding: 3px 8px; border-radius: var(--pill);
  letter-spacing: .02em; text-align: center; line-height: 1.4;
}

/* ================= ① 选专业 ================= */
.pick-hero {
  margin: 6px 0 8px; padding: 22px 20px 20px; border-radius: var(--r-xl);
  background:
    radial-gradient(420px 200px at 88% -30%, var(--grow-tint-2) 0, rgba(196,237,242,0) 70%),
    linear-gradient(160deg, var(--grow-tint) 0%, var(--surface) 70%);
  border: 1px solid var(--grow-tint-2); box-shadow: var(--sh);
}
.pick-hero .kick {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 900; color: var(--grow-700);
  background: var(--surface); padding: 6px 13px; border-radius: var(--pill); box-shadow: var(--sh-xs);
}
.pick-hero .kick::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); }
.pick-hero h1 { margin: 14px 0 7px; font-size: 27px; line-height: 1.22; letter-spacing: -0.02em; font-weight: 900; text-wrap: balance; }
.pick-hero h1 em { font-style: normal; color: var(--grow-700); }
.pick-hero p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.65; }
.coverage-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin-top: 15px;
}
.coverage-strip .cov-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 8px 9px;
  border-radius: var(--r-xs);
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid var(--grow-tint-2);
  text-align: center;
}
.coverage-strip .cov-label {
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}
.coverage-strip .cov-val {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  white-space: nowrap;
}
.coverage-strip b {
  color: var(--grow-700);
  font-size: 16px;
  line-height: 1.1;
}
.coverage-strip .cov-val i {
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink-soft);
}

.sub-label { font-size: 12.5px; font-weight: 800; color: var(--muted); margin: 18px 4px 10px; }
.form-hint {
  margin: -2px 0 10px 31px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.major-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.major-card {
  position: relative; text-align: left; padding: 0 0 14px;
  border-radius: var(--r); background: var(--surface);
  border: 1.5px solid var(--line); box-shadow: var(--sh-sm);
  transition: transform .16s, box-shadow .2s, border-color .2s; overflow: hidden;
}
.major-card:hover { transform: translateY(-3px); box-shadow: var(--sh); border-color: var(--grow-300); }
.major-card:active { transform: translateY(-1px); }
.major-card.sel { border-color: var(--grow); box-shadow: 0 0 0 3px var(--grow-tint-2), var(--sh); }
.major-card.sel::after {
  content: "✓"; position: absolute; top: 9px; right: 9px; z-index: 2;
  width: 22px; height: 22px; border-radius: 50%; background: var(--grow); color: #fff;
  display: grid; place-items: center; font-size: 12px; font-weight: 900; box-shadow: var(--sh-sm);
}
.major-card .mc-img { width: 100%; height: 82px; border-radius: 0; border: 0; border-bottom: 1px solid var(--line); }
.major-card .mc-body { padding: 11px 13px 0; }
.major-card .mc-name { font-weight: 900; font-size: 15px; letter-spacing: -0.01em; }
.major-card .mc-cat { font-size: 11px; font-weight: 800; color: var(--muted); margin-top: 2px; }
.major-card .mc-one { margin-top: 8px; font-size: 12px; color: var(--ink-soft); line-height: 1.5; }
.major-card .mc-pay {
  margin-top: 10px; display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 800; color: var(--grow-700);
  background: var(--grow-tint); padding: 4px 9px; border-radius: var(--pill);
}

.pick-note {
  margin-top: 14px; padding: 13px 15px; background: var(--surface-soft);
  border: 1px dashed var(--line-strong); border-radius: var(--r-sm);
  font-size: 12px; color: var(--muted); line-height: 1.6;
}

.city-rec {
  margin: 12px 0 12px;
  padding: 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--grow-tint-2);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 82%);
}
.city-rec-hint {
  margin: 0 0 10px;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  line-height: 1.5;
}
.city-rec-chips {
  display: grid;
  gap: 8px;
}
.city-chip {
  min-width: 0;
  min-height: 68px;
  padding: 10px 9px;
  border-radius: var(--r-xs);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  text-align: left;
  box-shadow: var(--sh-xs);
}
.city-chip b {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  line-height: 1.2;
}
.city-chip span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
  white-space: normal;
}
.city-chip.on {
  color: #fff;
  border-color: transparent;
  background: var(--grow);
  box-shadow: 0 12px 24px -15px rgba(1,188,214,.62);
}
.city-chip.on span { color: rgba(255,255,255,.82); }
.city-rec-empty {
  margin: 12px 0 12px;
  padding: 12px 13px;
  border-radius: var(--r-sm);
  border: 1px dashed var(--line-strong);
  background: var(--surface-soft);
}

/* 选定后的录入面板 */
.setup-card {
  margin-top: 14px; padding: 18px; border-radius: var(--r);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 72%);
  border: 1px solid var(--grow-tint-2); box-shadow: var(--sh);
  animation: rise .3s cubic-bezier(.2,.8,.2,1);
}
.setup-card .sc-title { font-weight: 900; font-size: 16px; letter-spacing: -0.01em; }
.setup-card .sc-sub { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.setup { display: grid; gap: 13px; margin-top: 15px; }
.field span { display: block; margin-bottom: 7px; font-size: 12.5px; font-weight: 800; color: var(--ink-soft); }
.field input, .field select, .picker-trigger {
  width: 100%; min-height: 48px; padding: 0 15px;
  border: 1px solid var(--line-strong); border-radius: var(--r-sm);
  background: var(--surface); outline: none; transition: border-color .15s, box-shadow .15s;
}
.field input:focus, .field select:focus, .picker-trigger:focus { border-color: var(--grow); box-shadow: 0 0 0 4px var(--grow-tint-2); }
.picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  line-height: 1;
  text-align: left;
  font-weight: 900;
  color: var(--muted);
  background: linear-gradient(180deg, #fff, var(--surface-soft));
}
.picker-trigger > span {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.2;
  transform: translateY(3px);
}
.picker-trigger.has-value { color: var(--ink); }
.picker-trigger:disabled { opacity: .56; cursor: not-allowed; }
.picker-trigger i {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

/* ================= 探索切换 chips ================= */
.explore-bar { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 6px; margin: 2px 0 0; scrollbar-width: none; }
.explore-bar::-webkit-scrollbar { display: none; }
.echip {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 14px; border-radius: var(--pill);
  background: var(--surface); border: 1px solid var(--line-strong);
  color: var(--ink-soft); font-size: 13px; font-weight: 800; box-shadow: var(--sh-xs);
}
.echip .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ec, var(--grow)); flex: 0 0 auto; }
.echip.active { border-color: transparent; color: #fff; background: var(--ec, var(--grow)); box-shadow: var(--sh-sm); }
.echip.active .dot { background: #fff; }
.echip.add { color: var(--grow-700); background: var(--grow-tint); border: 1px dashed var(--grow-300); font-weight: 900; }

.prospect-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: stretch;
  gap: 10px;
  margin-top: 4px;
}
.compare-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin: 4px 0 12px;
}
.compare-page-head h1 {
  margin: 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.compare-page-head p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.5;
}
.compare-page-head .btn {
  flex: 0 0 auto;
  min-height: 36px;
  white-space: nowrap;
}
.compare-controls { margin-bottom: 12px; }
.choice-select-list {
  display: grid;
  gap: 8px;
  min-width: 0;
}
.choice-option {
  position: relative;
  width: 100%;
  display: flex;
  align-items: stretch;
  min-width: 0;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-strong);
  background: linear-gradient(160deg, var(--surface), var(--surface-soft));
  color: var(--ink-soft);
  box-shadow: var(--sh-xs);
  transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
  overflow: hidden;
}
.choice-main {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 10px 12px 14px;
  border: none;
  background: transparent;
  color: inherit;
  text-align: left;
}
.choice-remove {
  flex: 0 0 auto;
  width: 40px;
  border: none;
  border-left: 1px solid transparent;
  background: transparent;
  color: var(--muted);
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: color .14s ease, background .14s ease;
}
.choice-remove:hover { color: var(--coral-600); background: var(--coral-tint); }
.choice-option.selected {
  border-color: var(--cc, var(--grow));
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 80%);
  box-shadow: 0 12px 28px -20px rgba(10,126,143,.45);
}
.choice-mark {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 2px solid var(--cc, var(--grow));
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}
.choice-mark.radio { border-radius: 50%; }
.choice-mark.box { border-radius: 6px; }
.choice-option.selected .choice-mark { background: var(--cc, var(--grow)); }
.choice-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 9px;
  min-width: 0;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 900;
  line-height: 1.35;
}
.choice-line b,
.choice-line span,
.choice-line em {
  min-width: 0;
  font-style: normal;
}
.choice-line em { color: var(--grow-700); }
.choice-line b::after,
.choice-line span::after {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin-left: 9px;
  border-radius: 50%;
  background: var(--cc, var(--grow));
  transform: translateY(-1px);
}
.choice-add {
  width: 100%;
  min-height: 38px;
  border-radius: var(--r-sm);
  border: 1px dashed var(--grow-300);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 900;
}
.view-toggle {
  justify-self: start;
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  min-height: 40px;
  background: var(--surface-sink);
  border-radius: var(--pill);
  padding: 3px;
  gap: 2px;
  border: 1px solid var(--line);
  box-shadow: var(--sh-xs);
}
.view-toggle button {
  min-width: 0;
  height: 34px;
  padding: 0 8px;
  border-radius: var(--pill);
  font-size: 12.5px;
  line-height: 1;
  font-weight: 800;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.view-toggle button.on { background: var(--surface); color: var(--ink); box-shadow: var(--sh-xs); }

/* ================= 概要卡 ================= */
.summary-card { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.summary-card .sm-img { width: 52px; height: 52px; flex: 0 0 auto; border-radius: 14px; }
.summary-card.readonly { margin-bottom: 14px; }
.summary-card .sm-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 4px;
  color: var(--grow-700);
  font-size: 11.5px;
  font-weight: 900;
}
.summary-card .sm-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--grow);
}
.summary-card .sm-name { font-weight: 900; font-size: 16px; letter-spacing: -0.01em; }
.summary-card .sm-meta { color: var(--muted); font-size: 12px; margin-top: 2px; }
.choice-summary-card { background: linear-gradient(160deg, var(--surface), var(--surface-soft)); }
.choice-summary-card {
  padding: 13px 16px;
}
.summary-line {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-size: 13px;
  line-height: 1.35;
  color: var(--ink-soft);
  font-weight: 800;
}
.summary-line > * {
  min-width: 0;
}
.summary-line b {
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
  white-space: nowrap;
}
.summary-line span {
  color: var(--ink);
  font-size: 14px;
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.summary-line em {
  flex: 0 0 auto;
  color: var(--grow-700);
  font-style: normal;
  white-space: nowrap;
}
.summary-line > * + *::before {
  content: "";
  display: inline-block;
  width: 5px;
  height: 5px;
  margin: 0 8px 2px 0;
  border-radius: 50%;
  background: var(--grow);
  vertical-align: middle;
}
.summary-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.summary-facts .sf {
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--surface);
}
.summary-facts .sf.full { grid-column: 1 / -1; }
.summary-facts span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.summary-facts b {
  display: block;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}

/* ================= 就业画像 ================= */
.employment-brief {
  margin: 0 0 14px;
  padding: 14px 15px;
  border-radius: var(--r-sm);
  border: 1px solid var(--grow-tint-2);
  background: linear-gradient(160deg, rgba(1, 188, 214, 0.10), rgba(255,255,255,0.9) 78%);
}
.employment-brief-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 9px;
}
.employment-brief-head span {
  flex: 0 0 auto;
  color: var(--grow-700);
  font-size: 11px;
  font-weight: 900;
  background: var(--surface);
  border: 1px solid var(--grow-tint-2);
  border-radius: var(--pill);
  padding: 4px 9px;
}
.employment-brief-head b {
  min-width: 0;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}
.employment-brief-body { margin-top: 10px; position: relative; }
.employment-brief-text {
  margin: 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.75;
}
.employment-brief-text.clamped {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  position: relative;
  text-overflow: clip;
}
.employment-brief-text.clamped.overflowing::after {
  content: '......';
  position: absolute;
  right: 0;
  bottom: 0;
  padding-left: 2em;
  background: linear-gradient(90deg, rgba(252, 254, 255, 0) 0%, rgba(252, 254, 255, 0.92) 42%, #fcfeff 62%);
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.75;
  letter-spacing: 0.06em;
  pointer-events: none;
}
.employment-brief-toggle {
  margin-top: 8px;
  padding: 0;
  border: none;
  background: none;
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}
.employment-brief-toggle:hover { color: var(--grow); }
.employment-brief-toggle[hidden] { display: none; }

.employment-signals {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 11px;
}
.employment-signals span {
  color: var(--grow-700);
  font-size: 11px;
  font-weight: 850;
  border-radius: var(--pill);
  background: rgba(255,255,255,.76);
  border: 1px solid var(--grow-tint-2);
  padding: 4px 9px;
}

/* ================= 出路分叉卡 ================= */
.path-guide {
  margin: 0 0 10px;
  padding: 8px 12px;
  border-radius: var(--pill);
  background: var(--surface-sink);
  color: var(--ink-soft);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.45;
}
.path-list { display: grid; gap: 11px; }
.prospect-path-list { margin: 8px 0 14px; }
.path-section-title {
  margin: 14px 0 8px;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.path-card-wrap {
  display: grid;
  min-width: 0;
  max-width: 100%;
  border-radius: var(--r-sm);
  transition: box-shadow .18s;
}
.path-card {
  display: flex;
  flex-direction: column;
  text-align: left; width: 100%; min-width: 0; padding: 15px 15px 14px;
  border-radius: var(--r-sm); border: 1.5px solid var(--line); background: var(--surface);
  transition: border-color .16s, box-shadow .18s, transform .16s, background .18s;
}
.path-card:hover { transform: translateY(-2px); box-shadow: var(--sh); border-color: var(--grow-300); }
.path-card.active {
  border-color: var(--grow);
  background: linear-gradient(160deg, rgba(225, 246, 249, 0.72), var(--surface) 58%);
  box-shadow: none;
}
.path-card.locked {
  opacity: .62;
  cursor: not-allowed;
  background: var(--surface-soft);
}
.path-card.locked:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--line);
}
.path-card.locked .pc-action {
  color: var(--soft-risk);
  background: var(--risk-tint);
  border: 1px solid var(--coral-tint-2);
}
.path-unlock {
  justify-self: end;
  min-height: 34px;
  margin: 8px 4px 0 0;
  padding: 0 12px;
  border-radius: var(--pill);
  border: 1px solid var(--grow-tint-2);
  background: var(--surface);
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
  box-shadow: var(--sh-xs);
}
.path-unlock:active { transform: translateY(1px); }

/* —— 卡底：家里账（读书投入性价比 + 毕业后需要家庭帮什么） —— */
.path-card .pc-ledger {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
  padding: 11px 12px 10px;
  border-radius: var(--r-xs);
  background: linear-gradient(150deg, rgba(255, 136, 0, 0.09), rgba(255, 248, 232, 0.55) 72%);
  border: 1px solid rgba(255, 136, 0, 0.14);
}
.path-card .pc-tag-group {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.path-card .pc-tag-group + .pc-tag-group {
  padding-top: 10px;
  border-top: 1px solid rgba(255, 136, 0, 0.12);
}
.path-card .pc-tag-group-k {
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: .04em;
  color: var(--coral-700);
}
.path-card .pc-tag-group-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}
.path-card .pc-ledger .tag {
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink-soft);
  border: 1px solid rgba(212, 221, 224, 0.55);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.65);
}
.path-card .pc-ledger .tag.good {
  color: var(--grow-700);
  border-color: rgba(3, 153, 176, 0.28);
}
.path-card .pc-ledger .tag.warn {
  background: rgba(255, 255, 255, 0.94);
  color: #8f5a00;
  border-color: rgba(183, 121, 5, 0.32);
}
.path-card .pc-ledger .tag.risk {
  color: var(--risk);
  border-color: rgba(216, 92, 74, 0.28);
}
.path-card .pc-tag-group-support .pc-support-total-row {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 136, 0, 0.18);
}
.path-card .pc-ledger .pc-support-breakdown {
  margin-top: 4px;
}
.pc-support-total-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.pc-support-total-k {
  display: flex;
  align-items: baseline;
  gap: 2px;
  min-width: 0;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.2;
  color: var(--ink-soft);
  white-space: nowrap;
  overflow: hidden;
}
.pc-support-total-title {
  flex: 0 0 auto;
  font-size: 12.5px;
  font-weight: 800;
  color: var(--ink-soft);
  white-space: nowrap;
}
.pc-support-total-note {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  white-space: nowrap;
}
.pc-support-total-v {
  flex: 0 0 auto;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  color: var(--coral-700);
  letter-spacing: -.02em;
  white-space: nowrap;
}
.pc-support-total-v small {
  font-size: 13px;
  font-weight: 800;
  margin-left: 1px;
}
.pc-support-breakdown {
  margin: 6px 0 0;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted);
}
.path-card-wrap .pc-support-row .btn-row {
  margin-top: 0;
  padding-top: 11px;
  border-top: 1px dashed var(--line-strong);
}
.path-card-wrap .pc-support-row-hint { padding-bottom: 12px; }
.path-card-wrap .pc-self-care-tip {
  margin: 0;
  padding-top: 11px;
  border-top: 1px dashed var(--line-strong);
  font-size: 12px;
  line-height: 1.55;
  font-weight: 700;
  color: var(--muted);
}
.path-support-page .path-support-content { margin-top: 12px; }
.path-support-block {
  margin-top: 12px;
  padding: 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: var(--surface-soft);
}
.path-support-block-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
  font-weight: 800;
}
.path-support-block-head b { font-size: 16px; color: var(--coral-700); }
.path-support-table-wrap { margin-top: 8px; overflow-x: auto; }
.path-support-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11.5px;
}
.path-support-table th,
.path-support-table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.path-support-total {
  margin-top: 14px;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
}
.path-support-total b { font-size: 22px; color: var(--coral-700); }

.path-card-detail {
  min-width: 0;
  max-width: 100%;
  padding: 0 0 14px;
  border: 1.5px solid var(--grow);
  border-top: none;
  border-radius: 0 0 var(--r-sm) var(--r-sm);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 75%);
}
.path-card-detail.page {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.path-card-detail .income-card.nested,
.path-card-detail .path-life-block {
  min-width: 0;
  max-width: 100%;
  margin: 12px 0 0;
  padding: 14px;
  border-radius: var(--r-sm);
  background: var(--surface);
  border: 1px solid var(--line);
}
.path-card-detail.page > .income-card.nested {
  padding: 15px;
  border-color: rgba(1, 188, 214, 0.18);
  background: #fff;
}
.path-card-detail.page > .path-life-block {
  padding: 0;
  border: 0;
  background: transparent;
}
.path-card-detail .chart-wrap {
  max-width: 100%;
  min-width: 0;
}
.path-detail-page {
  min-height: 0;
  margin: 0;
  padding: 4px 0 20px;
  touch-action: pan-y;
  view-transition-name: path-detail-page;
  animation: pathDetailIn .22s cubic-bezier(.2,.8,.2,1);
  transform: translateX(var(--path-drag-x, 0));
  opacity: var(--path-drag-opacity, 1);
}
body.path-detail-returning .screen {
  animation: pathListBack .18s cubic-bezier(.2,.8,.2,1);
}
.path-detail-page.dragging {
  transition: none;
  cursor: grabbing;
}
.path-detail-page.swipe-exit {
  transform: translateX(var(--path-exit-x, 44px));
  opacity: 0;
  transition: transform .13s cubic-bezier(.22, .76, .24, 1), opacity .13s ease;
}
.path-page-tags {
  display: flex;
  flex-direction: column;
  gap: 11px;
  min-width: 0;
  margin: 0 0 10px;
  padding: 12px 14px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: var(--surface);
}
.path-page-tags-toolbar {
  display: flex;
  align-items: center;
  margin: -2px 0 2px;
}
.path-page-path-k {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}
.path-page-path-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
}
.path-page-path-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.path-page-path-item > span {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
}
.path-page-path-item > b {
  font-size: 13px;
  font-weight: 900;
  line-height: 1.35;
  color: var(--ink);
  word-break: break-word;
}
.path-page-path-item > b.uncertain { color: var(--coral-600); }
.path-page-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  min-width: 0;
  padding-top: 11px;
  border-top: 1px dashed var(--line-strong);
}
.path-page-hero {
  position: relative;
  margin: 0 0 12px;
  padding: 15px 15px 16px;
  border-radius: var(--r);
  border: 1px solid var(--grow-tint-2);
  background:
    radial-gradient(circle at 92% 4%, rgba(1, 188, 214, 0.16), transparent 34%),
    linear-gradient(180deg, #ffffff 0%, #f3fbfd 100%);
  overflow: hidden;
}
.path-page-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.path-page-eyebrow-solo {
  display: block;
  margin-bottom: 10px;
}
.path-page-close {
  flex: 0 0 auto;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 11px 0 9px;
  border-radius: var(--pill);
  color: var(--ink-soft);
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--grow-tint-2);
  box-shadow: var(--sh-xs);
  font-size: 12.5px;
  font-weight: 900;
  line-height: 1;
  transition: transform .14s ease, background .18s ease, border-color .18s ease;
}
.path-page-close span {
  color: var(--grow-700);
  font-size: 19px;
  line-height: 0;
  transform: translateY(-1px);
}
.path-page-close:hover {
  background: var(--surface);
  border-color: var(--grow-300);
}
.path-page-close:active {
  transform: scale(.96);
}
.path-page-eyebrow {
  display: inline-flex;
  flex: 0 0 auto;
  padding: 5px 10px;
  border-radius: var(--pill);
  color: var(--grow-700);
  background: rgba(255,255,255,.8);
  border: 1px solid var(--grow-tint-2);
  font-size: 11px;
  font-weight: 900;
}
.path-page-title-row {
  display: grid;
  gap: 3px;
}
.path-page-title-row span {
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.25;
}
.path-page-title-row h1 {
  margin: 0;
  color: var(--ink);
  font-size: 27px;
  line-height: 1.12;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.path-page-summary {
  margin: 10px 0 0;
  color: var(--ink-soft);
  font-size: 14.5px;
  font-weight: 750;
  line-height: 1.62;
}
.path-signal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.path-signal {
  min-width: 0;
  padding: 10px 11px;
  border-radius: var(--r-xs);
  border: 1px solid rgba(1, 188, 214, 0.18);
  background: rgba(255,255,255,.74);
}
.path-signal span {
  display: block;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.25;
}
.path-signal b {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 13.5px;
  font-weight: 950;
  line-height: 1.25;
}
.path-signal.good b { color: var(--grow-700); }
.path-signal.warn,
.path-signal.risk {
  border-color: var(--coral-tint-2);
  background: rgba(255, 248, 232, .72);
}
.path-signal.warn b,
.path-signal.risk b { color: var(--warn); }
.path-hero-actions {
  display: grid;
  grid-template-columns: 1.08fr .92fr;
  gap: 8px;
  margin-top: 14px;
}
.path-hero-primary,
.path-hero-secondary {
  min-width: 0;
  min-height: 42px;
  border-radius: var(--r-sm);
  font-size: 13px;
  font-weight: 950;
  transition: transform .12s ease, background .18s ease, border-color .18s ease;
}
.path-hero-primary {
  color: #fff;
  background: var(--grow);
}
.path-hero-secondary {
  color: var(--grow-700);
  background: rgba(255,255,255,.82);
  border: 1px solid var(--grow-tint-2);
}
.path-hero-primary:active,
.path-hero-secondary:active {
  transform: translateY(1px) scale(.99);
}
@keyframes pathDetailIn {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes pathListBack {
  from { opacity: .94; transform: translateX(-6px); }
  to { opacity: 1; transform: translateX(0); }
}
::view-transition-old(path-detail-page),
::view-transition-new(path-detail-page) {
  animation-duration: .28s;
  animation-timing-function: cubic-bezier(.2,.8,.2,1);
}
@media (prefers-reduced-motion: reduce) {
  .path-detail-page,
  body.path-detail-returning .screen,
  .path-detail-page.swipe-exit {
    animation: none;
    transition: none;
  }
  ::view-transition-old(path-detail-page),
  ::view-transition-new(path-detail-page) {
    animation: none;
  }
}
.path-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.path-detail-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -0.01em;
}
.path-card .pc-top { display: flex; align-items: center; gap: 8px; min-width: 0; max-width: 100%; }
.path-card .pc-index {
  flex: 0 0 auto;
  font-size: 10.5px;
  font-weight: 900;
  color: var(--grow-700);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
  border-radius: var(--pill);
  padding: 3px 8px;
  white-space: nowrap;
}
.path-card h3 { margin: 0; flex: 1 1 auto; min-width: 0; font-size: 16px; font-weight: 900; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.path-card .pc-action {
  margin-left: auto;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  padding: 0 10px;
  border-radius: var(--pill);
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}
.path-card p { margin: 8px 0 0; font-size: 13px; color: var(--ink-soft); line-height: 1.6; }

/* —— 卡面三事实：挣多少 · 过什么日子 · 干什么活 —— */
.path-card .pc-facts {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  width: 100%;
  margin-top: 11px;
  padding: 10px 0 0;
  border-top: 1px solid rgba(10, 126, 143, 0.12);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.path-card.active .pc-facts {
  background: transparent;
  border-color: rgba(10, 126, 143, 0.14);
  box-shadow: none;
}
.path-card .pc-fact { display: grid; gap: 3px; align-content: start; min-width: 0; }
.path-card .pc-fact:first-child { padding-right: 12px; }
.path-card .pc-fact:nth-child(2) { padding-left: 12px; border-left: 1px solid rgba(10, 126, 143, 0.10); }
.path-card .pc-fact.wide {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-top: 9px;
  padding-top: 8px;
  border-top: 1px solid rgba(10, 126, 143, 0.10);
}
.path-card .pc-fact-k {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .01em;
  color: var(--ink-soft);
  white-space: nowrap;
}
.path-card .pc-fact-v {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px;
  min-width: 0;
  font-weight: 900;
  color: var(--ink);
  line-height: 1.25;
}
.path-card .pc-fact-v b { font-size: 17px; line-height: 1.15; letter-spacing: -0.01em; color: var(--grow-700); }
.path-card .pc-fact-v b i { font-style: normal; font-weight: 800; font-size: 13px; margin: 0 1px; color: var(--grow-600); }
.path-card .pc-fact-v em { font-style: normal; font-size: 11px; font-weight: 800; color: var(--ink-soft); }
.path-card .pc-fact-v.miss { font-size: 12.5px; font-weight: 700; color: var(--ink-soft); }
.path-card .pc-stars { font-size: 12px; letter-spacing: 1.5px; color: var(--coral); transform: translateY(-1px); }
.path-card .pc-trend {
  align-self: center;
  margin-left: 2px;
  padding: 2px 7px;
  border-radius: var(--pill);
  border: 1px solid rgba(10, 126, 143, 0.12);
  background: rgba(255, 255, 255, 0.82);
  font-size: 10px;
  font-weight: 800;
  color: var(--ink-soft);
  white-space: nowrap;
}
.path-card .pc-trend.fast { color: var(--grow-700); border-color: rgba(10, 126, 143, 0.18); background: rgba(255, 255, 255, 0.92); }
.path-card .pc-fact-v.jobs { font-size: 12.5px; font-weight: 800; color: var(--ink-soft); }
.path-card .pc-fact-v.jobs i { font-style: normal; font-weight: 400; color: var(--muted); padding: 0 5px; }

/* —— 卡底引导：教育标签 + 展开入口 —— */
.path-card .pc-go-row {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px dashed var(--line-strong);
}
.path-card .pc-ledger + .pc-go-row {
  margin-top: 12px;
}
.path-card .pc-go-spark { flex: 0 0 auto; width: 16px; height: 16px; color: var(--grow-600); }
.path-card .pc-go-text {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.35;
  color: var(--ink-soft);
}
.path-card .pc-go-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 30px;
  padding: 0 11px;
  border-radius: var(--pill);
  font-size: 12.5px;
  font-weight: 800;
  color: var(--grow-700);
  background: var(--surface);
  border: 1px solid var(--line-strong);
  box-shadow: var(--sh-xs);
}
.path-card:hover .pc-go-btn {
  border-color: var(--grow-300);
  background: var(--grow-tint);
}
.path-card .pc-go-btn svg { width: 11px; height: 11px; transition: transform .18s cubic-bezier(.2,.8,.2,1); }
.path-card:hover .pc-go-btn svg { transform: translateX(2px); }
.path-card:active .pc-go-btn { transform: translateY(1px); }
@media (prefers-reduced-motion: reduce) {
  .path-card .pc-go-btn svg { transition: none; }
  .path-card:hover .pc-go-btn svg { transform: none; }
}

.tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 11px; min-width: 0; max-width: 100%; }
.path-card .tags { margin-top: 8px; }
.tag { font-size: 11px; font-weight: 800; padding: 4px 10px; border-radius: var(--pill); background: var(--surface-sink); color: var(--ink-soft); }
.tag.good { background: var(--good-tint); color: var(--grow-700); }
.tag.warn { background: var(--warn-tint); color: var(--warn); }
.tag.risk { background: var(--risk-tint); color: var(--soft-risk); }

.head .pill.conf.good { background: var(--good-tint); color: var(--grow-700); }
.head .pill.conf.warn { background: var(--warn-tint); color: var(--warn); }
.head .pill.conf.risk { background: var(--risk-tint); color: var(--soft-risk); }

.city-insight-card {
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 78%);
  border-color: var(--grow-tint-2);
}
.city-insight-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.city-insight-grid > div {
  min-width: 0;
  padding: 12px 13px;
  border-radius: var(--r-sm);
  border: 1px solid var(--grow-tint-2);
  background: rgba(255,255,255,.74);
}
.city-insight-grid span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.city-insight-grid b {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.35;
}
.warn-note {
  color: var(--warn);
  background: var(--warn-tint);
  border: 1px solid var(--coral-tint-2);
  border-radius: var(--r-xs);
  padding: 9px 10px;
}
.city-section-copy {
  margin: -2px 0 12px;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.65;
}
.rec-city-list {
  display: grid;
  gap: 10px;
}
.rec-city-card {
  padding: 13px 14px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: linear-gradient(160deg, var(--surface), var(--surface-soft));
}
.rec-city-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.rec-city-top b {
  min-width: 0;
  font-size: 15px;
  line-height: 1.25;
}
.rec-city-top span,
.table-mark,
.mini-conf {
  flex: 0 0 auto;
  border-radius: var(--pill);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  padding: 4px 8px;
}
.rec-city-top span {
  color: var(--grow-700);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
}
.rec-city-card p {
  margin: 8px 0 0;
  color: var(--ink);
  font-size: 12.5px;
  font-weight: 850;
  line-height: 1.55;
}
.rec-city-card em {
  display: block;
  margin-top: 7px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
  font-style: normal;
}
.city-recommend-card .city-conclusion-block:not(:first-child) {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.city-recommend-card .city-conclusion-block p {
  margin: 0;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.7;
  font-weight: 800;
}
.table-mark {
  display: inline-flex;
  margin-left: 6px;
  color: #fff;
  background: var(--grow);
  vertical-align: middle;
}
.mini-conf {
  display: inline-flex;
  margin-left: 6px;
  vertical-align: middle;
  background: var(--surface-sink);
  color: var(--ink-soft);
  font-family: 'PingFang SC', sans-serif;
}
.mini-conf.good { color: var(--grow-700); background: var(--good-tint); }
.mini-conf.warn { color: var(--warn); background: var(--warn-tint); }
.mini-conf.risk { color: var(--soft-risk); background: var(--risk-tint); }

/* ================= 投入账 ================= */
.kpi-row { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.kpi { padding: 14px; border-radius: var(--r-sm); background: linear-gradient(160deg, var(--surface), var(--surface-soft)); border: 1px solid var(--line); }
.kpi .kpi-big { font-size: 21px; font-weight: 900; letter-spacing: -0.01em; color: var(--ink); line-height: 1.15; }
.kpi .kpi-big.grow { color: var(--grow-700); }
.kpi .kpi-big.gold { color: var(--gold-600); }
.kpi .kpi-lbl { margin-top: 7px; font-size: 11.5px; color: var(--muted); line-height: 1.45; }
.education-cost-card {
  background: linear-gradient(180deg, var(--surface), #fbfdfe 74%);
}
.cost-card-head .pill {
  white-space: nowrap;
  color: var(--gold-600);
  background: var(--gold-tint);
  border: 1px solid var(--coral-tint-2);
}
.degree-assumption {
  margin-top: 12px;
  padding: 12px 13px;
  border-radius: 16px;
  border: 1px solid var(--grow-tint-2);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 82%);
}
.choice-context-line {
  margin: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  white-space: nowrap;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0;
}
.choice-context-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.education-cost-card .choice-context-line::before {
  content: "路径";
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: var(--pill);
  color: var(--grow-700);
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid rgba(10, 126, 143, 0.14);
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.1;
}
.degree-assumption.uncertain {
  border-color: var(--coral-tint-2);
  background: linear-gradient(160deg, var(--coral-tint), var(--surface) 82%);
}
.degree-assumption.uncertain .choice-context-uncertain { color: var(--coral-600); }
.degree-assumption .choice-context-note {
  margin: 8px 0 0;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.4;
}
.degree-assumption.uncertain .choice-context-note {
  color: var(--coral-600);
  opacity: 0.88;
}
.cost-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(108px, 0.94fr);
  gap: 12px;
  align-items: stretch;
  margin-top: 12px;
  padding: 15px;
  border-radius: 16px;
  border: 1px solid rgba(183, 121, 5, 0.22);
  background:
    linear-gradient(135deg, rgba(255, 248, 232, 0.96), rgba(255, 255, 255, 0.92) 48%, rgba(225, 246, 249, 0.88));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}
.cost-hero-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
}
.cost-hero-main span,
.cost-hero-side span {
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}
.cost-hero-main b {
  min-width: 0;
  color: var(--gold-600);
  font-family: var(--num);
  font-size: 28px;
  font-weight: 900;
  line-height: 1.08;
  white-space: nowrap;
}
.cost-hero-main em {
  color: var(--ink-soft);
  font-style: normal;
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.35;
}
.cost-hero-side {
  display: grid;
  gap: 7px;
}
.cost-hero-side div {
  min-width: 0;
  display: grid;
  gap: 3px;
  align-content: center;
  padding: 9px 10px;
  border-radius: 13px;
  border: 1px solid rgba(18, 40, 48, 0.08);
  background: rgba(255, 255, 255, 0.74);
}
.cost-hero-side b {
  min-width: 0;
  color: var(--ink);
  font-family: var(--num);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.15;
  white-space: nowrap;
}
.cost-segments {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}
.cost-segment {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 12px;
  align-items: stretch;
  min-width: 0;
  padding: 12px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.82);
}
.cost-seg-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 12px;
  border-right: 1px solid var(--line);
}
.cost-seg-main small {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.1;
}
.cost-seg-main b {
  display: block;
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.25;
}
.cost-seg-main span {
  display: block;
  margin-top: 3px;
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
}
.cost-seg-detail {
  min-width: 0;
  display: grid;
  gap: 8px;
}
.cost-breakdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  min-width: 0;
}
.cost-breakdown span {
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
}
.cost-breakdown small {
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 900;
  line-height: 1.1;
}
.cost-breakdown b {
  min-width: 0;
  color: var(--ink);
  font-family: var(--num);
  font-size: 12.5px;
  font-weight: 900;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.cost-seg-subtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 9px;
  min-width: 0;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.cost-seg-subtotal span {
  flex: 0 0 auto;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
}
.cost-seg-subtotal b {
  min-width: 0;
  text-align: right;
  color: var(--gold-600);
  font-family: var(--num);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.cost-segment p {
  grid-column: 2;
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.45;
}
.cost-footnote {
  margin: 10px 2px 0;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.55;
}
.cost-total {
  display: grid;
  gap: 5px;
  margin-top: 11px;
  padding: 14px;
  border-radius: var(--r-sm);
  border: 1px solid var(--coral-tint-2);
  background: var(--gold-tint);
}
.cost-total span {
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 900;
}
.cost-total b {
  color: var(--gold-600);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.15;
}
.cost-total em {
  color: var(--ink-soft);
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.35;
}

@media (max-width: 340px) {
  .cost-hero {
    grid-template-columns: 1fr;
  }
  .cost-hero-side {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .cost-segment {
    grid-template-columns: 1fr;
  }
  .cost-seg-main {
    padding-right: 0;
    padding-bottom: 9px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .cost-breakdown {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }
  .cost-breakdown span {
    padding: 6px 5px;
  }
}

.note { margin: 12px 2px 0; font-size: 12px; color: var(--muted); line-height: 1.6; }
.income-head {
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.income-head > div {
  min-width: 0;
}
.income-head h2 {
  line-height: 1.2;
}
.income-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.35;
}
.income-head .pill {
  margin-top: 2px;
  background: var(--grow-tint);
  color: var(--grow-700);
  border: 1px solid var(--grow-tint-2);
  white-space: normal;
  text-align: right;
  max-width: 46%;
}
.income-ops-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0 0 11px;
}
.income-ops-cell {
  min-width: 0;
  padding: 10px 9px;
  border-radius: var(--r-xs);
  background: var(--surface-soft);
  border: 1px solid var(--line);
}
.income-ops-summary span {
  display: block;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.25;
}
.income-ops-value {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 4px;
  min-width: 0;
}
.income-ops-value b {
  display: block;
  flex: 1;
  min-width: 0;
  color: var(--ink);
  font-size: 12.5px;
  font-weight: 950;
  line-height: 1.28;
  overflow-wrap: anywhere;
}
.income-peak-premise-toggle {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  color: var(--muted);
  font-size: 11px;
  font-weight: 950;
  font-style: italic;
  line-height: 1;
  cursor: pointer;
}
.income-peak-premise-toggle.is-open {
  border-color: var(--gold-tint);
  background: var(--gold-tint);
  color: var(--gold-600);
}
.income-peak-premise {
  display: block;
  margin-top: 5px;
  color: var(--ink-soft);
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.45;
}
.income-peak-premise[hidden] {
  display: none;
}
.curve-loading {
  display: grid;
  place-items: center;
  min-height: 160px;
  border: 1px dashed var(--grow-tint-2);
  border-radius: var(--r-sm);
  background: linear-gradient(180deg, var(--grow-tint), var(--surface));
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 900;
}
.income-section-title {
  margin: 14px 0 8px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 950;
  line-height: 1.25;
}
.income-narrative {
  position: relative;
  margin: 0 0 10px;
  padding: 12px 14px 12px 32px;
  border-radius: var(--r-sm);
  border: 1px solid var(--grow-tint-2);
  background: linear-gradient(160deg, #f1fbfd, var(--surface) 90%);
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.75;
  font-weight: 800;
  font-style: normal;
}
.income-narrative::before {
  content: '\201C';
  position: absolute;
  left: 10px;
  top: 4px;
  font-size: 34px;
  line-height: 1;
  font-weight: 300;
  font-style: normal;
  color: var(--grow-600);
  opacity: 0.42;
  pointer-events: none;
}
.income-narrative.muted { color: var(--muted); font-weight: 700; }

/* ================= 收入图表（对齐 CareerCurveLarge） ================= */
.chart-wrap {
  margin-top: 4px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.chart-wrap.career-curve-wrap {
  padding: 6px;
  border-radius: var(--r);
  border: 1px solid rgba(1, 188, 214, 0.12);
  background: linear-gradient(180deg, #fbfeff 0%, #f4fbfd 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.82);
  min-height: 250px;
}
.income-chart {
  display: block;
  width: 100%;
  min-width: 0;
}
.income-chart:not(.career-income-chart) {
  height: 200px;
}
.career-income-chart {
  cursor: crosshair;
  overflow: visible;
  display: block;
  width: 100%;
  height: 236px;
  aspect-ratio: unset;
}
.career-hit { cursor: crosshair; }
.career-plot-bg {
  fill: rgba(255, 255, 255, 0.82);
  stroke: rgba(1, 188, 214, 0.12);
  stroke-width: 1;
}
.career-point-caption-current {
  letter-spacing: 0.01em;
}
.career-point-caption {
  paint-order: stroke;
  stroke: rgba(255, 255, 255, 0.92);
  stroke-width: 3px;
  stroke-linejoin: round;
}
.career-peak-callout rect {
  filter: drop-shadow(0 3px 8px rgba(183, 121, 5, 0.1));
}
.career-current-marker line {
  opacity: 0.16;
}
.milestone-dot {
  fill: #fff;
  stroke: rgba(1, 188, 214, 0.72);
  stroke-width: 2;
}
.career-peak-marker circle:nth-child(2) {
  filter: drop-shadow(0 2px 4px rgba(183, 121, 5, 0.16));
}
@media (prefers-reduced-motion: reduce) {
  .career-income-chart animate {
    display: none;
  }
  .career-path-past,
  .career-path-future {
    stroke-dashoffset: 0 !important;
  }
  .career-path-future {
    filter: none !important;
  }
}
.income-point-detail {
  margin-top: 10px;
  padding: 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--grow-tint-2);
  background: #fff;
}
.ipd-main {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: center;
}
.ipd-main span { font-size: 13px; font-weight: 900; color: var(--ink); line-height: 1.35; }
.ipd-main b { font-size: 18px; font-weight: 900; color: var(--grow-700); text-align: left; }
.ipd-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}
.ipd-grid div {
  min-width: 0;
  padding: 9px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--line);
}
.ipd-grid .ipd-range-wide {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.ipd-grid.offer {
  grid-template-columns: 1fr;
}
.ipd-grid .ipd-range-wide b { margin-top: 0; text-align: right; }
.ipd-grid span {
  display: block;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 800;
  line-height: 1.35;
}
.ipd-grid b {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 12.5px;
  font-weight: 900;
  line-height: 1.25;
}
.ipd-cause {
  display: block;
  margin-top: 6px;
  color: var(--ink-soft);
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.45;
}
.ipd-note {
  margin: 10px 0 0;
  padding-top: 10px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  line-height: 1.68;
  color: var(--ink-soft);
  font-weight: 600;
}
.ipd-note em {
  font-style: normal;
  font-weight: 800;
  color: var(--muted);
}
.career-ladder {
  margin-top: 12px;
  padding: 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: linear-gradient(180deg, #fff, var(--surface-soft));
}
.career-ladder + .income-narrative {
  margin-top: 12px;
}
.career-ladder-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.career-ladder-head h3 {
  margin: 0;
  color: var(--ink);
  font-size: 14px;
  font-weight: 950;
  line-height: 1.25;
}
.career-ladder-head p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.35;
}
.ladder-sources {
  flex: 0 0 auto;
  max-width: 46%;
  text-align: right;
  color: var(--grow-700);
  font-size: 10.5px;
  font-weight: 850;
}
.ladder-sources summary {
  cursor: pointer;
  list-style: none;
}
.ladder-sources summary::-webkit-details-marker { display: none; }
.ladder-source-list {
  margin-top: 6px;
  padding: 8px;
  border-radius: var(--r-xs);
  background: #fff;
  border: 1px solid var(--line);
  text-align: left;
}
.ladder-source-list p {
  margin: 0 0 6px;
  color: var(--ink-soft);
  font-size: 10.5px;
  line-height: 1.45;
  font-weight: 650;
}
.ladder-source-list p:last-child { margin-bottom: 0; }
.ladder-source-list a { color: var(--grow-700); font-weight: 900; }
.ai-impact-strip {
  margin: 0 0 10px;
  border-radius: var(--r-xs);
  border: 1px solid var(--line);
  background: #fff;
}
.ai-impact-strip summary {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 9px;
  cursor: pointer;
  list-style: none;
}
.ai-impact-strip summary::-webkit-details-marker { display: none; }
.ai-impact-strip[open] summary {
  align-items: flex-start;
}
.ai-impact-icon {
  flex: 0 0 auto;
  color: var(--coral-600);
  font-size: 12px;
  line-height: 1;
}
.ai-impact-pill,
.ladder-ai-tag {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 4px 7px;
  border-radius: var(--pill);
  border: 1px solid var(--line);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}
.ai-impact-high {
  border-color: var(--coral-tint-2);
  background: var(--coral-tint);
  color: var(--coral-600);
}
.ai-impact-mid {
  border-color: var(--gold-tint);
  background: var(--gold-tint);
  color: var(--gold-600);
}
.ai-impact-low {
  border-color: var(--line);
  background: var(--surface-sink);
  color: var(--ink-soft);
}
.ai-impact-message {
  min-width: 0;
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 11.5px;
  font-weight: 850;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ai-impact-strip[open] .ai-impact-message {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.ai-impact-chips {
  display: grid;
  gap: 7px;
  padding: 0 9px 9px 30px;
}
.ai-impact-chip-row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 6px;
  align-items: center;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.35;
}
.ai-impact-chip-row b {
  align-self: center;
  color: var(--ink-soft);
  font-weight: 950;
}
.ai-impact-chip-row span {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.ai-impact-chip.replace {
  background: var(--surface-sink);
  color: var(--muted);
  text-decoration: line-through;
}
.ai-impact-chip.value {
  background: #fff;
  color: var(--grow-700);
  border: 1px solid var(--grow-tint-2);
}
.ladder-entry-note {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: var(--r-xs);
  background: var(--gold-tint);
  color: var(--gold-600);
  font-size: 11.5px;
  font-weight: 850;
  line-height: 1.45;
}
.ladder-steps {
  display: grid;
  gap: 0;
}
.ladder-step {
  width: 100%;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 8px;
  padding: 8px 0;
  text-align: left;
  color: inherit;
}
.ladder-step:focus-visible {
  outline: 2px solid var(--grow);
  outline-offset: 3px;
  border-radius: var(--r-xs);
}
.ladder-rail {
  position: relative;
  display: flex;
  justify-content: center;
}
.ladder-rail::before {
  content: '';
  position: absolute;
  top: 16px;
  bottom: -14px;
  width: 2px;
  border-radius: var(--pill);
  background: var(--line);
}
.ladder-step:last-child .ladder-rail::before { display: none; }
.ladder-rail i {
  position: relative;
  z-index: 1;
  width: 10px;
  height: 10px;
  margin-top: 4px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--line-strong);
}
.ladder-step.current .ladder-rail i {
  border-color: var(--grow);
  box-shadow: 0 0 0 5px rgba(1, 188, 214, 0.13);
}
.ladder-content {
  min-width: 0;
  display: grid;
  gap: 5px;
  padding: 9px 10px;
  border-radius: var(--r-xs);
  border: 1px solid transparent;
}
.ladder-step.current .ladder-content {
  background: #fff;
  border-color: var(--grow-tint-2);
  box-shadow: var(--sh-xs);
}
.ladder-step.peak .ladder-content {
  background: linear-gradient(180deg, #fff, var(--gold-tint));
}
.ladder-topline,
.ladder-title-row,
.ladder-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.ladder-topline { justify-content: space-between; }
.ladder-age {
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 900;
}
.ladder-peak-badge,
.ladder-ratio-pill {
  flex: 0 0 auto;
  border-radius: var(--pill);
  font-size: 10px;
  font-weight: 950;
  line-height: 1;
}
.ladder-peak-badge {
  padding: 4px 7px;
  background: var(--gold-tint);
  color: var(--gold-600);
  border: 1px solid var(--coral-tint-2);
}
.ladder-title-row {
  align-items: flex-start;
  flex-wrap: wrap;
}
.ladder-title-row b {
  color: var(--ink);
  font-size: 13px;
  font-weight: 950;
  line-height: 1.25;
}
.ladder-ai-tag {
  border-color: var(--coral-tint-2);
  background: #fff;
  color: var(--coral-600);
}
.ladder-title-row em {
  max-width: 100%;
  padding: 3px 7px;
  border-radius: var(--pill);
  background: var(--surface-soft);
  border: 1px solid var(--line);
  color: var(--ink-soft);
  font-style: normal;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.ladder-meta {
  justify-content: space-between;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.35;
}
.ladder-income-note {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}
.ladder-ratio-pill {
  padding: 5px 7px;
  background: var(--grow-tint);
  color: var(--grow-700);
  border: 1px solid var(--grow-tint-2);
}
.ladder-detail {
  display: none;
  gap: 6px;
  padding-top: 7px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.58;
}
.ladder-detail b {
  color: var(--ink);
  font-weight: 900;
}
.ladder-step.current .ladder-detail {
  display: grid;
}
.ladder-disclaimer {
  margin: 9px 0 0;
  padding-top: 9px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.5;
}
.income-ladder-mini .cmp-v {
  display: grid;
  gap: 8px;
  font-size: 11.5px !important;
  line-height: 1.45;
  text-align: left;
}
.income-ladder-mini .cmp-v span {
  color: var(--ink-soft);
  font-weight: 750;
}
.income-ladder-mini-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.income-ladder-mini-line .ai-impact-pill {
  min-height: 19px;
  padding: 4px 7px;
}
.income-ladder-mini button {
  justify-self: start;
  min-height: 28px;
  padding: 0 10px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  color: var(--grow-700);
  border: 1px solid var(--grow-tint-2);
  font-size: 11px;
  font-weight: 900;
}
.income-ladder-mini button:active { transform: translateY(1px); }
.legend { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 12px; padding: 0 2px; }
.legend .lg { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 800; color: var(--ink-soft); }
.legend .lg i { width: 11px; height: 11px; border-radius: 4px; flex: 0 0 auto; }

@media (max-width: 380px) {
  .career-ladder-head { display: grid; }
  .ladder-sources {
    max-width: none;
    text-align: left;
  }
  .ipd-main {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .ipd-main b { font-size: 16px; }
}

/* ================= 生活图景账单卡 ================= */
.life-sim-card {
  --life-spend: #9ccfd9;
  --life-rent: var(--grow-700);
  --life-food: #2fa6b8;
  --life-transport: #7fb6c1;
  --life-fun: #c5d5d9;
  --life-savings: var(--grow);
  margin-top: 12px;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: none;
}
.path-card-detail .path-life-block .life-sim-card { margin-top: 10px; }
.path-life-support {
  margin-top: 12px;
  padding: 14px;
  border-radius: var(--r-sm);
  border: 1px solid var(--coral-tint-2);
  background: linear-gradient(160deg, var(--coral-tint), var(--surface) 78%);
}
.path-life-support-ok {
  border-color: var(--grow-tint-2);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 78%);
}
.path-life-support-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.path-life-support-head h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 900;
  color: var(--ink);
}
.path-life-support-total {
  font-size: 18px;
  font-weight: 900;
  color: var(--coral-700);
  white-space: nowrap;
}
.path-life-support-lines {
  margin: 0 0 8px;
  padding-left: 18px;
  font-size: 12.5px;
  line-height: 1.55;
  font-weight: 700;
  color: var(--ink-soft);
}
.path-life-support-advice { margin: 0; line-height: 1.6; }
.path-life-support-cta.btn-row { margin-top: 12px; margin-bottom: 0; }
.path-support-page .path-support-summary-card { margin-bottom: 10px; }
.path-support-page > .path-support-intro {
  margin: 0 0 12px;
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 78%);
  border: 1px solid var(--grow-tint-2);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.path-support-page .path-support-plan-card {
  margin-bottom: 10px;
  padding: 14px;
}
.path-support-page .path-support-edit {
  margin-top: 14px;
  padding-top: 14px;
}
.path-support-page .path-support-save-row { margin-top: 0; padding-bottom: 8px; }

/* —— 托举测算三步导航 —— */
.support-flow-nav {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  margin: 0 0 12px;
  padding: 10px 4px 8px;
  border-radius: var(--r-sm);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--sh-xs);
}
.support-flow-nav .sf-step {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 0 2px;
  color: var(--muted);
  text-align: center;
}
.support-flow-nav .sf-no {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
  font-family: var(--num);
  line-height: 1;
  background: var(--surface-sink);
  color: var(--muted);
  border: 1.5px solid var(--line);
}
.support-flow-nav .sf-label {
  font-size: 10.5px;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: -.01em;
}
.support-flow-nav .sf-sub {
  font-weight: 700;
  opacity: .88;
}
.support-flow-nav .sf-sep {
  flex: 0 0 14px;
  align-self: center;
  height: 1px;
  margin-top: -14px;
  background: var(--line);
  opacity: .75;
}
.support-flow-nav .sf-step.active {
  color: var(--grow-700);
}
.support-flow-nav .sf-step.active .sf-no {
  background: var(--grow);
  border-color: var(--grow);
  color: #fff;
}
.support-flow-nav .sf-step.done {
  color: var(--grow-700);
}
.support-flow-nav .sf-step.done .sf-no {
  background: var(--grow-tint);
  border-color: var(--grow-tint-2);
  color: var(--grow-700);
  font-size: 10px;
}
#scr-s2 > .support-flow-nav,
#scr-s4 > .support-flow-nav {
  margin: 0 0 10px;
}
#scr-s4 > .estim-block {
  margin: 0 0 14px;
}
#scr-s2 > .s2-intro {
  margin: 0 0 12px;
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 78%);
  border: 1px solid var(--grow-tint-2);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}
.s2-intro-tag {
  display: inline-block;
  margin: 0;
  padding: 3px 9px;
  border-radius: var(--pill);
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: .04em;
  color: var(--grow-700);
  background: var(--surface);
  border: 1px solid var(--grow-tint-2);
}
.s2-intro-lead {
  margin: 0;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 800;
  color: var(--ink);
}
.s2-intro-detail {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.65;
  font-weight: 700;
  color: var(--ink-soft);
}

.path-support-estimate {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.path-support-edit-lead {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.55;
  font-weight: 700;
  color: var(--ink-soft);
  text-align: left;
  text-wrap: pretty;
  margin-bottom: 12px;
}
.path-support-estimate-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
}
.path-support-estimate-total-k {
  font-size: 13px;
  font-weight: 800;
  color: var(--ink-soft);
}
.path-support-estimate-total b {
  font-size: 28px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--grow-700);
  white-space: nowrap;
}
.path-support-estimate-total b small {
  margin-left: 2px;
  font-size: 14px;
  font-weight: 800;
}
.path-support-panels {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.path-support-panel {
  padding: 14px;
  border-radius: var(--r-sm);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--sh-xs);
}
.path-support-panel-home,
.path-support-panel-life {
  background: linear-gradient(165deg, var(--surface) 0%, rgba(255, 248, 232, 0.65) 100%);
  border-color: var(--coral-tint-2);
}
.path-support-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.path-support-panel-title {
  margin: 0;
  font-size: 14px;
  font-weight: 900;
  color: var(--ink);
}
.path-support-panel-sub {
  margin: 3px 0 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.path-support-panel-hero { text-align: right; flex-shrink: 0; }
.path-support-panel-hero-k {
  display: block;
  margin-bottom: 2px;
  font-size: 10.5px;
  font-weight: 800;
  color: var(--coral-600);
}
.path-support-panel-hero b {
  font-size: 26px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--coral-700);
  white-space: nowrap;
}
.path-support-panel-hero b small {
  margin-left: 1px;
  font-size: 13px;
  font-weight: 800;
}
.path-support-progress-track {
  display: flex;
  height: 10px;
  border-radius: var(--pill);
  overflow: hidden;
  background: var(--surface-sink);
}
.path-support-progress-self {
  background: var(--grow);
  min-width: 4px;
}
.path-support-progress-gap {
  background: #FF9900;
  border-left: 1px solid rgba(146, 88, 0, 0.35);
  min-width: 4px;
}
.path-support-progress-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 8px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--ink-soft);
}
.path-support-progress-legend-year {
  flex-basis: 100%;
  font-size: 11px;
  font-weight: 800;
  color: var(--muted);
}
.path-support-progress-legend .dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 5px;
  border-radius: 50%;
  vertical-align: -1px;
}
.path-support-progress-legend .dot.self { background: var(--grow); }
.path-support-progress-legend .dot.gap { background: #FF9900; }
.path-support-panel-facts {
  list-style: none;
  margin: 0 0 12px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.path-support-panel-facts-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.path-support-panel-facts-grid li {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 4px;
  padding: 10px 11px;
  border-radius: var(--r-xs);
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid var(--line);
}
.path-support-panel-facts-grid li span {
  font-size: 11px;
  line-height: 1.45;
  text-align: center;
}
.path-support-panel-facts-grid li b {
  font-size: 14px;
  text-align: center;
}
.path-support-panel-facts li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-size: 12.5px;
}
.path-support-panel-facts li span {
  font-weight: 700;
  color: var(--muted);
}
.path-support-panel-facts li b {
  font-weight: 800;
  color: var(--ink);
  text-align: right;
}
.path-support-breakdown {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow: hidden;
  background: var(--surface-soft);
}
.path-support-breakdown-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-top: 1px solid var(--line);
}
.path-support-breakdown-row:first-child { border-top: 0; }
.path-support-breakdown-row-rich {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.path-support-breakdown-details {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 6px 14px;
  margin: 0;
}
.path-support-breakdown-detail { display: contents; }
.path-support-breakdown-detail dt {
  margin: 0;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--muted);
}
.path-support-breakdown-detail dd {
  margin: 0;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.35;
  color: var(--ink);
  text-align: right;
}
.path-support-breakdown-row-rich .path-support-breakdown-label {
  font-size: 13.5px;
  color: var(--ink);
}
.path-support-breakdown-label {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 800;
  color: var(--ink-soft);
}
.path-support-breakdown-value {
  flex: 1 1 auto;
  text-align: right;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
  color: var(--ink);
}
.path-support-breakdown-value em {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
}
.path-support-edit .plan-items { margin-top: 0; }
.life-sim-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
}
.life-sim-head h3 {
  margin: 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.25;
}
.life-sim-head p {
  margin: 3px 0 0;
  color: var(--ink-soft);
  font-size: 11.5px;
  font-weight: 750;
  line-height: 1.35;
}
.life-sim-head .pill {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 11px;
  font-weight: 900;
}
.tier-stars {
  display: inline-flex; align-items: center; flex-shrink: 0; flex-wrap: nowrap;
  color: var(--grow-700); letter-spacing: .5px; font-size: 12px;
  white-space: nowrap;
}
.tier-stars .off { display: inline; color: var(--line-strong); white-space: nowrap; }
.capacity-facts b .tier-stars { display: inline-flex; white-space: nowrap; }
.life-years {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 12px;
}
.life-years button {
  width: 100%;
  min-height: 32px;
  padding: 0 9px;
  border-radius: 11px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 900;
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .12s ease;
}
.life-years button.active {
  border-color: var(--grow);
  background: var(--grow-tint);
  color: var(--grow-700);
}
.life-years button:active { transform: translateY(1px); }

.life-income-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-top: 13px;
  padding: 13px;
  border-radius: 14px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
}
.life-income-line > div > span,
.life-compact-saving span {
  display: block;
  color: var(--ink-soft);
  font-size: 11.5px;
  font-weight: 750;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.life-income-line b {
  display: block;
  margin-top: 2px;
  color: var(--ink);
  font-family: var(--num);
  font-size: 24px;
  font-weight: 900;
  line-height: 1.05;
}
.life-income-line b small {
  margin-left: 2px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.life-income-line em {
  display: block;
  margin-top: 4px;
  color: var(--ink-soft);
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}
.life-tier {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  justify-self: end;
  max-width: none;
  padding: 5px 9px;
  border-radius: var(--pill);
  background: var(--surface);
  color: var(--ink-soft);
  font-size: 11.5px;
  font-weight: 900;
  border: 1px solid var(--line);
  white-space: nowrap;
  justify-content: flex-end;
  text-align: right;
}
.life-tier .tier-stars {
  display: inline-flex;
  flex-shrink: 0;
}
.life-stack { margin-top: 13px; }
.life-stack-stats {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-bottom: 8px;
}
.life-stack-stat {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.life-stack-stat.savings,
.life-stack-stat.deficit {
  justify-content: flex-end;
  text-align: right;
}
.life-stack-name {
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
  white-space: nowrap;
}
.life-stack-stat b {
  color: var(--ink);
  font-family: var(--num);
  font-size: 13.5px;
  font-weight: 900;
  line-height: 1.1;
  white-space: nowrap;
  font-feature-settings: "tnum" 1;
  letter-spacing: -0.02em;
}
.life-stack-stat.spend b { color: #2a8a99; }
.life-stack-stat.savings b { color: var(--grow-700); }
.life-stack-stat.deficit b { color: #c77700; }
.life-stack-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: 50%;
}
.life-stack-stat.spend .life-stack-dot {
  background: linear-gradient(135deg, #5aacbb 0%, #8ecfd9 100%);
  box-shadow: 0 0 0 1px rgba(42, 138, 153, 0.18);
}
.life-stack-stat.savings .life-stack-dot {
  background: linear-gradient(135deg, var(--grow-700) 0%, var(--grow) 100%);
  box-shadow: 0 0 0 1px rgba(1, 188, 214, 0.22);
}
.life-stack-stat.deficit .life-stack-dot {
  background: linear-gradient(135deg, #f0b429 0%, var(--coral) 100%);
  box-shadow: 0 0 0 1px rgba(199, 119, 0, 0.2);
}
.life-stack-bar-wrap {
  padding: 4px;
  border-radius: var(--pill);
  background: linear-gradient(180deg, var(--surface-sink) 0%, var(--surface-soft) 100%);
  border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}
.life-stack-bar {
  display: flex;
  gap: 4px;
  width: 100%;
  height: 20px;
  align-items: stretch;
}
.life-stack-seg {
  min-width: 10px;
  border-radius: 999px;
  overflow: hidden;
  transition: width .28s cubic-bezier(0.22, 1, 0.36, 1);
}
.life-stack-seg i {
  display: block;
  width: 100%;
  height: 100%;
}
.life-stack-seg.spend {
  background: linear-gradient(90deg, #4fa8b8 0%, #8ecfd9 55%, #a8dce4 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38);
}
.life-stack-seg.savings {
  background: linear-gradient(90deg, var(--grow-700) 0%, var(--grow) 62%, #33d4e8 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 0 10px rgba(1, 188, 214, 0.16);
}
.life-stack-seg.deficit {
  background: linear-gradient(90deg, #efb84a 0%, var(--coral) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.life-stack-legend {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 850;
}
.life-stack-legend span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  white-space: nowrap;
}
.life-stack-legend span i {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: currentColor;
}
.life-stack-legend span b {
  font-weight: 900;
  color: var(--ink);
}
.life-stack-legend .rent i { background: var(--life-rent); }
.life-stack-legend .food i { background: var(--life-food); }
.life-stack-legend .transport i { background: var(--life-transport); }
.life-stack-legend .fun i { background: var(--life-fun); border: 1px solid var(--line-strong); }
.life-stack-legend .savings i { background: var(--life-savings); }

.life-sim-rows {
  display: grid;
  gap: 8px;
  margin-top: 13px;
}
.life-plan-note {
  margin: 0;
  font-size: 11.5px;
  line-height: 1.4;
  font-weight: 800;
  color: var(--muted);
}
.life-sim-gaps {
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px dashed var(--line-strong);
}
.life-gap-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid var(--coral-tint-2);
  background: var(--coral-tint);
}
.life-gap-total span {
  font-size: 12.5px;
  font-weight: 800;
  color: var(--ink-soft);
}
.life-gap-total b {
  font-family: var(--num);
  font-size: 16px;
  font-weight: 900;
  color: var(--coral-700);
  white-space: nowrap;
}
.life-gap-total small {
  font-size: 11px;
  font-weight: 800;
}
.life-sim-row {
  width: 100%;
  display: grid;
  grid-template-columns: 32px 58px minmax(0, 1fr) 14px;
  grid-template-rows: auto auto;
  column-gap: 8px;
  row-gap: 0;
  align-items: center;
  padding: 10px 11px;
  border-radius: 13px;
  border: 1px solid var(--line);
  background: var(--surface);
  text-align: left;
  transition: border-color .16s ease, background .16s ease;
}
.life-sim-row:has(.life-row-mark.rent),
.life-sim-row:has(.life-row-mark.food),
.life-sim-row:has(.life-row-mark.transport),
.life-sim-row:has(.life-row-mark.fun) {
  border-color: rgba(10, 126, 143, 0.14);
  background: linear-gradient(135deg, #f4fcfe 0%, #fff 72%);
}
.life-sim-row.is-savings {
  border-color: var(--grow-tint-2);
  background: var(--grow-tint);
}
.life-sim-row.has-warn {
  border-color: var(--coral-tint-2);
  background: var(--coral-tint);
}
.life-row-mark {
  grid-row: 1;
  grid-column: 1;
  width: 34px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--surface-sink);
  border: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}
.life-row-mark.rent,
.life-row-mark.food,
.life-row-mark.transport,
.life-row-mark.fun,
.life-row-mark.savings {
  color: var(--grow-700);
  background: var(--grow-tint);
  border-color: var(--grow-tint-2);
}
.life-row-amount {
  grid-row: 1;
  grid-column: 2;
  min-width: 0;
  color: var(--grow-700);
  font-family: var(--num);
  font-size: 11.5px;
  font-weight: 900;
  line-height: 1.2;
  text-align: left;
  white-space: nowrap;
  font-feature-settings: "tnum" 1;
  letter-spacing: -0.02em;
}
.life-sim-row.is-savings .life-row-amount { color: var(--grow); }
.life-row-headline {
  grid-row: 1;
  grid-column: 3;
  min-width: 0;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.42;
  overflow-wrap: anywhere;
}
.life-warn-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--coral);
}
.life-row-end {
  grid-row: 1;
  grid-column: 4;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 5px;
}
.life-row-arrow {
  width: 7px;
  height: 7px;
  border-right: 2px solid var(--faint);
  border-bottom: 2px solid var(--faint);
  transform: rotate(45deg);
  transition: transform .16s ease, border-color .16s ease;
}
.life-sim-row.is-open .life-row-arrow {
  border-color: var(--grow-700);
  transform: rotate(225deg);
}
.life-row-detail {
  grid-row: 2;
  grid-column: 3 / 5;
  display: block;
  max-height: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.5;
  transition: max-height .18s ease, margin-top .18s ease;
}
.life-sim-row.is-open .life-row-detail {
  max-height: 72px;
  margin-top: 4px;
}

.life-section-label {
  margin-top: 14px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
}
.life-milestone {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.45;
}
.life-milestone span {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--grow-tint);
}
.life-home-progress {
  margin-top: 9px;
  padding: 10px;
  border-radius: 13px;
  background: var(--surface-soft);
}
.life-home-track {
  height: 8px;
  border-radius: var(--pill);
  background: var(--surface-sink);
  overflow: hidden;
}
.life-home-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--grow);
  transition: width .22s ease;
}
.life-home-progress p {
  margin: 7px 0 0;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.5;
}
.life-after-note {
  margin: 9px 2px 0;
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 750;
}
.life-missing {
  margin-top: 12px;
  padding: 12px;
  border-radius: 13px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
}
.life-missing b {
  display: block;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
}
.life-missing p {
  margin: 5px 0 0;
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.55;
}
.life-one-liner {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 13px;
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 12.5px;
  font-weight: 900;
  line-height: 1.55;
}
.life-sim-card.compact {
  margin-top: 14px;
  padding: 12px;
  background: rgba(255,255,255,.82);
}
.life-sim-card.compact .life-income-line { margin-top: 10px; }
.life-compact-saving {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  align-items: baseline;
  margin-top: 11px;
  padding: 10px;
  border-radius: 13px;
  background: var(--grow-tint);
}
.life-compact-saving b {
  justify-self: end;
  color: var(--grow-700);
  font-family: var(--num);
  font-size: 16px;
  font-weight: 900;
}
.life-compact-saving em {
  grid-column: 1 / -1;
  color: var(--ink-soft);
  font-size: 11.5px;
  font-style: normal;
  font-weight: 800;
}

@media (max-width: 380px) {
  .life-sim-card {
    padding: 12px;
    border-radius: 14px;
  }
  .life-sim-head {
    align-items: stretch;
  }
  .life-sim-head h3 {
    font-size: 15px;
  }
  .life-years button {
    padding: 0 8px;
  }
  .life-years {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .life-income-line {
    grid-template-columns: 1fr;
  }
  .life-tier {
    justify-self: start;
  }
  .life-sim-row {
    grid-template-columns: 28px 52px minmax(0, 1fr) 12px;
    column-gap: 7px;
    padding: 9px 10px;
  }
  .life-row-mark {
    width: 28px;
  }
  .life-row-amount {
    font-size: 10.5px;
  }
  .life-stack-legend {
    grid-template-columns: 1fr;
    gap: 5px 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .life-years button,
  .life-stack-bar i,
  .life-stack-seg,
  .life-row-detail,
  .life-row-arrow,
  .life-home-track i {
    transition: none;
  }
}

/* ================= 城市对比表 ================= */
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-sm); scrollbar-width: thin; }
table.city { width: 100%; border-collapse: collapse; font-size: 12.5px; background: var(--surface); }
table.city th, table.city td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
table.city td.wrap { white-space: normal; min-width: 130px; line-height: 1.5; }
table.city thead th { background: var(--surface-sink); font-weight: 800; color: var(--ink-soft); position: sticky; top: 0; }
table.city tbody tr:last-child td { border-bottom: 0; }
table.city tr.hl td { background: var(--grow-tint); font-weight: 800; }
table.city .strong { font-weight: 800; color: var(--ink); font-family: var(--num); }

/* ================= 并排对比 ================= */
.cmp-board { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(244px, 1fr); gap: 12px; overflow-x: auto; padding: 2px 2px 12px; scrollbar-width: thin; }
.cmp-col { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--r); background: var(--surface); box-shadow: var(--sh); overflow: hidden; }
.cmp-col.best { box-shadow: 0 0 0 2px var(--cc), var(--sh-lg); }
.cmp-head { padding: 15px 15px 13px; color: #fff; background: var(--cc-grad); position: relative; }
.cmp-head .rank { position: absolute; top: 11px; right: 11px; font-size: 10.5px; font-weight: 900; background: rgba(255,255,255,.24); padding: 3px 9px; border-radius: var(--pill); }
.cmp-head .m { font-size: 15.5px; font-weight: 900; letter-spacing: -0.01em; }
.cmp-head .d { margin-top: 3px; font-size: 12px; opacity: .94; }
.cmp-head .w { margin-top: 7px; font-size: 11px; opacity: .82; }
.cmp-body { padding: 4px 15px 15px; }
.cmp-r { padding: 11px 0; border-top: 1px solid var(--line); }
.cmp-r:first-child { border-top: 0; }
.cmp-r .k { font-size: 11px; color: var(--muted); font-weight: 800; }
.cmp-r .cmp-v { margin-top: 4px; font-size: 18px; font-weight: 900; color: var(--ink); letter-spacing: -0.01em; display: flex; align-items: baseline; gap: 5px; }
.cmp-r .cmp-v small { font-size: 11px; font-weight: 700; color: var(--muted); font-family: 'PingFang SC', sans-serif; }
.meter { margin-top: 8px; height: 7px; border-radius: 99px; background: var(--surface-sink); overflow: hidden; }
.meter > i { display: block; height: 100%; border-radius: 99px; background: var(--cc); }
.cmp-pill { display: inline-block; font-size: 10.5px; font-weight: 900; padding: 3px 9px; border-radius: var(--pill); }
.cmp-verdict { margin-top: 4px; padding: 11px 13px; border-radius: var(--r-sm); background: var(--surface-soft); font-size: 12px; line-height: 1.6; color: var(--ink-soft); }
.cmp-verdict b { color: var(--ink); }
.cmp-verdict p { margin: 0 0 10px; }
.cmp-verdict .cmp-go-family { margin-top: 2px; }

.metric { margin-top: 18px; }
.metric:first-child { margin-top: 4px; }
.metric .ml { display: flex; justify-content: space-between; align-items: baseline; font-size: 13px; font-weight: 800; margin-bottom: 10px; }
.metric .ml .hint { font-size: 11px; color: var(--muted); font-weight: 700; }
.mbar { display: grid; grid-template-columns: 64px 1fr auto; align-items: center; gap: 10px; margin-top: 8px; }
.mbar .mn { font-size: 11.5px; font-weight: 800; color: var(--ink-soft); display: inline-flex; align-items: center; gap: 6px; }
.mbar .mn i { width: 9px; height: 9px; border-radius: 3px; flex: 0 0 auto; }
.mbar .mt { height: 12px; border-radius: 99px; background: var(--surface-sink); overflow: hidden; }
.mbar .mt > i { display: block; height: 100%; border-radius: 99px; transform-origin: left; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.mbar .mv { font-size: 12px; font-weight: 900; color: var(--ink); min-width: 52px; text-align: right; font-family: var(--num); }

/* ================= ③ 算我家 · 向导 ================= */
.fam-choice-panel { margin: 0 0 12px; }
.fam-choice-lead {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 800;
  color: var(--ink-soft);
  line-height: 1.5;
}
.fam-hero {
  margin: 6px 0 2px; padding: 22px 20px; border-radius: var(--r-xl);
  background:
    radial-gradient(380px 200px at 90% -20%, var(--grow-tint) 0, rgba(225,246,249,0) 70%),
    linear-gradient(160deg, var(--grow-tint) 0%, var(--surface) 72%);
  border: 1px solid var(--grow-tint-2); box-shadow: var(--sh);
}
.fam-hero .kick { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 900; color: var(--grow-700); background: var(--surface); padding: 6px 13px; border-radius: var(--pill); box-shadow: var(--sh-xs); }
.fam-hero .kick::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--grow); }
.fam-hero h1 { margin: 14px 0 8px; font-size: 24px; line-height: 1.28; letter-spacing: -0.015em; font-weight: 900; text-wrap: balance; }
.fam-hero h1 em { font-style: normal; color: var(--grow-700); }
.fam-hero p { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; }
.fam-hook-card { margin-bottom: 12px; }

.step-affirm {
  margin: 0 0 12px;
  padding: 10px 14px;
  border-radius: var(--r-sm);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.opt-social-anchor {
  margin: 6px 0 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-soft);
  line-height: 1.45;
}
.opt-social-anchor { display: block; margin-top: 4px; font-weight: 500; }

.capacity-card {
  margin: 6px 0 14px;
  padding: 20px;
  border-radius: var(--r);
  border: 1px solid var(--grow-tint-2);
  background: linear-gradient(160deg, var(--grow-tint), var(--surface) 78%);
  box-shadow: var(--sh);
}
.capacity-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
  background: var(--surface);
  border: 1px solid var(--grow-tint-2);
  border-radius: var(--pill);
  padding: 5px 12px;
}
.capacity-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--grow);
}
.capacity-card h2 {
  margin: 13px 0 8px;
  font-size: 22px;
  line-height: 1.32;
  font-weight: 900;
  letter-spacing: -0.015em;
}
.capacity-card p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.65;
}
.capacity-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin-top: 15px;
}
.capacity-facts div {
  min-width: 0;
  padding: 11px 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.76);
}
.capacity-facts > div > span {
  display: block;
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 850;
  line-height: 1.35;
}
.capacity-facts b {
  display: block;
  margin-top: 4px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.35;
}
.capacity-card .life-sim-card,
.life-scene-card .life-sim-card {
  margin-top: 14px;
}
.life-scene-card .head { margin-bottom: 2px; }
.family-band-card .note {
  margin-top: 12px;
}
.family-band-combo { padding: 16px; }
.family-band-combo.is-collapsed .band-combo-body { display: none; }
.band-combo-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.band-combo-head .choice-select-list.embedded {
  margin-top: 12px;
}
.band-combo-head .choice-option {
  border-color: rgba(10, 126, 143, 0.18);
  box-shadow: none;
}
.band-toggle {
  flex: 0 0 auto;
  min-height: 28px;
  padding: 0 10px;
  border-radius: var(--pill);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--grow-700);
  font-size: 11.5px;
  font-weight: 900;
  box-shadow: var(--sh-xs);
}
.band-toggle:active { transform: translateY(1px); }
.band-scene {
  display: grid;
  gap: 6px;
  margin-top: 14px;
  padding: 14px;
  border-radius: var(--r-sm);
  border: 1px solid var(--grow-tint-2);
  background: rgba(255,255,255,.78);
}
.band-scene span {
  width: fit-content;
  padding: 4px 9px;
  border-radius: var(--pill);
  background: var(--surface-sink);
  color: var(--grow-700);
  font-size: 11px;
  font-weight: 900;
}
.band-scene b {
  font-size: 14px;
  line-height: 1.55;
}
.capacity-ask-card {
  margin-top: 14px;
  padding: 18px 18px 16px;
  border-radius: var(--r);
  border: 1px solid var(--coral-tint-2);
  background: linear-gradient(165deg, var(--coral-tint), var(--surface) 78%);
  box-shadow: var(--sh-sm);
}
.capacity-ask-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 10px;
  padding: 5px 12px;
  border-radius: var(--pill);
  border: 1px solid var(--coral-tint-2);
  background: rgba(255,255,255,.82);
  color: var(--coral-600);
  font-size: 12px;
  font-weight: 900;
}
.capacity-ask-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--coral);
}
.capacity-ask-copy {
  margin: 0 0 14px;
  color: var(--ink-soft);
  font-size: 13.5px;
  line-height: 1.68;
}
.capacity-ask-copy b { color: var(--coral-600); font-weight: 900; }
.capacity-ask-card .capacity-decision {
  display: grid;
  gap: 10px;
  margin-top: 0;
}
.capacity-ask-card .opt {
  background: rgba(255,255,255,.88);
  border-color: rgba(183,121,5,.2);
}
.capacity-ask-card .opt:hover {
  border-color: var(--coral);
  box-shadow: var(--sh-sm);
}
.capacity-ask-card .opt-forward::after {
  border-color: var(--coral-600);
}
.capacity-decision {
  display: grid;
  gap: 11px;
  margin-top: 16px;
}

.q-title { margin: 0; font-size: 21px; line-height: 1.3; letter-spacing: -0.015em; font-weight: 900; text-wrap: balance; }
.q-copy { margin: 9px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.7; }

/* 期望选择：琥珀色主题卡片 */
.expect-choice-card {
  margin-top: 14px;
  padding: 18px 18px 16px;
  border-radius: var(--r);
  border: 1px solid var(--coral-tint-2);
  background: linear-gradient(165deg, var(--coral-tint), var(--surface) 78%);
  box-shadow: var(--sh-sm);
}
.expect-choice-card .q-title { color: var(--ink); }
.expect-choice-card .q-copy { color: var(--ink-soft); }
.expect-choice-card .opt-grid { margin-top: 14px; }
.expect-choice-card .opt {
  background: rgba(255,255,255,.88);
  border-color: rgba(183,121,5,.2);
}
.expect-choice-card .opt:hover {
  border-color: var(--coral);
  box-shadow: var(--sh-sm);
}
.expect-choice-card .opt.sel {
  border-color: var(--coral);
  background: linear-gradient(160deg, var(--coral-tint), var(--surface) 80%);
  box-shadow: 0 12px 26px -16px rgba(183,121,5,.35);
}
.expect-choice-card .opt.sel::after {
  background: var(--coral);
}
.expect-choice-card .opt-forward::after {
  border-color: var(--coral-600);
}

/* 托举角色选择：琥珀色主题 */
.role-choice-card {
  margin-top: 22px;
  padding: 18px 18px 16px;
  border-radius: var(--r);
  border: 1px solid var(--coral-tint-2);
  background: linear-gradient(165deg, var(--coral-tint), var(--surface) 78%);
  box-shadow: var(--sh-sm);
}
.role-choice-card .q-title { margin: 0; font-size: 18px; color: var(--ink); }
.role-choice-card .opt-grid { margin-top: 14px; }
.role-choice-card .opt {
  background: rgba(255,255,255,.88);
  border-color: rgba(183,121,5,.2);
}
.role-choice-card .opt:hover {
  border-color: var(--coral);
  box-shadow: var(--sh-sm);
}
.role-choice-card .opt-forward::after {
  border-color: var(--coral-600);
}

/* why 提示：无 emoji，用小色块 */
.why { display: flex; gap: 11px; align-items: flex-start; padding: 13px 15px; margin: 14px 0 4px; border-radius: var(--r-sm); background: var(--grow-tint); border: 1px solid var(--grow-tint-2); }
.why .ic { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: var(--grow); margin-top: 5px; }
.why div { font-size: 12.5px; line-height: 1.62; color: var(--grow-700); }
.why b { color: var(--grow-700); }
.why.coral { background: var(--coral-tint); border-color: var(--coral-tint-2); }
.why.coral .ic { background: var(--coral); }
.why.coral div, .why.coral b { color: var(--coral-600); }

/* 选项卡：无 emoji（可带图） */
.opt-grid { display: grid; gap: 11px; margin-top: 16px; }
.opt {
  position: relative; text-align: left; width: 100%;
  padding: 15px 16px; border-radius: var(--r-sm);
  border: 1.5px solid var(--line-strong); background: var(--surface);
  transition: border-color .16s, box-shadow .18s, transform .14s, background .18s;
}
.opt.has-img { padding-left: 70px; min-height: 74px; }
.opt .opt-img { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 12px; }
.opt:hover { transform: translateY(-2px); box-shadow: var(--sh); border-color: var(--grow-300); }
.opt.sel { border-color: var(--grow); background: linear-gradient(160deg, var(--grow-tint), var(--surface) 80%); box-shadow: 0 12px 26px -16px rgba(10,126,143,.45); }
.opt.sel::after { content: "✓"; position: absolute; top: 13px; right: 14px; width: 22px; height: 22px; border-radius: 50%; background: var(--grow); color: #fff; display: grid; place-items: center; font-size: 12px; font-weight: 900; }
.opt b { display: block; font-size: 15px; font-weight: 900; letter-spacing: -0.01em; }
.opt span { display: block; margin-top: 4px; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.opt.opt-forward { padding-right: 44px; }
.opt.opt-forward::after {
  content: "";
  position: absolute;
  right: 18px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -3.5px;
  border-top: 2px solid var(--grow-700);
  border-right: 2px solid var(--grow-700);
  transform: rotate(45deg);
  opacity: .72;
  transition: right .14s ease, opacity .14s ease;
}
.opt.opt-forward:hover::after { right: 15px; opacity: 1; }

/* 期望选项：大图卡片 */
.opt-grid.asp-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
.opt.opt-card {
  padding: 0; overflow: hidden; min-height: 0;
  display: flex; flex-direction: column;
}
.opt.opt-card .opt-card-media {
  width: 100%; aspect-ratio: 4 / 3;
  border: none; border-radius: 0;
  background: var(--surface-sink);
}
.opt.opt-card .opt-card-media .imgph-tag {
  position: absolute; left: 10px; bottom: 10px; z-index: 2;
  font-family: inherit; font-size: 11px; font-weight: 900;
  color: #fff; background: rgba(0,0,0,.42);
  backdrop-filter: blur(6px); padding: 4px 10px;
  letter-spacing: .04em;
}
.opt.opt-card .opt-card-body { padding: 10px 12px 12px; flex: 1; }
.opt.opt-card .opt-card-body b { font-size: 13px; line-height: 1.35; }
.opt.opt-card .opt-card-body span { font-size: 11.5px; margin-top: 3px; line-height: 1.45; }
.opt.opt-card.sel::after { top: 8px; right: 8px; z-index: 3; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.opt.opt-card:hover { transform: translateY(-3px); }
.opt.opt-card.sel { border-color: var(--grow); }
/* 账上不够可视化 */
.gap-card { margin-top: 16px; padding: 18px; border-radius: var(--r); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--sh-sm); }
.gap-card.tight { border-color: var(--grow-tint-2); background: linear-gradient(165deg, var(--grow-tint), var(--surface) 72%); }
.gap-card.ok { border-color: var(--grow-tint-2); background: linear-gradient(165deg, var(--grow-tint), var(--surface) 72%); }
.gap-verdict { display: flex; align-items: center; gap: 12px; }
.gap-verdict .gv-ic { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; font-size: 20px; font-weight: 900; color: #fff; flex: 0 0 auto; }
.gap-card.tight .gv-ic { background: linear-gradient(150deg, #15c4dc, var(--grow-700)); }
.gap-card.ok .gv-ic { background: linear-gradient(150deg, #15c4dc, var(--grow-700)); }
.gap-card.tight .q-copy { color: var(--grow-700); }
.gap-verdict .gv-t { font-size: 16px; font-weight: 900; letter-spacing: -0.01em; }
.gap-verdict .gv-s { font-size: 12px; color: var(--muted); margin-top: 1px; }

.gap-bars { margin-top: 16px; display: grid; gap: 13px; }
.gap-line .gl-top { display: flex; justify-content: space-between; align-items: baseline; font-size: 12px; font-weight: 800; color: var(--ink-soft); margin-bottom: 7px; }
.gap-line .gl-val { font-family: var(--num); font-weight: 900; }
.gap-track { height: 14px; border-radius: 99px; background: var(--surface-sink); overflow: hidden; position: relative; }
.gap-track > i { display: block; height: 100%; border-radius: 99px; transform-origin: left; transition: transform .7s cubic-bezier(.2,.8,.2,1); }
.gap-track > i.earn { background: linear-gradient(90deg, var(--grow-300), var(--grow)); }
.gap-track > i.want { background: linear-gradient(90deg, var(--grow-300), var(--grow-700)); }
.gap-amt { margin-top: 14px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.gap-amt .gap-num { font-size: 30px; font-weight: 900; letter-spacing: -0.02em; }
.gap-amt.tight .gap-num { color: var(--coral-600); }
.gap-amt.ok .gap-num { color: var(--grow-700); }
.gap-amt .gap-cap { font-size: 12.5px; color: var(--muted); }

.plan-intro-card {
  margin-top: 6px;
  padding: 18px 18px 16px;
  border-radius: var(--r);
  border: 1px solid var(--coral-tint-2);
  background: linear-gradient(165deg, var(--coral-tint), var(--surface) 78%);
  box-shadow: var(--sh-sm);
}
.plan-intro-card .q-title { margin: 0; color: var(--ink); }
.plan-intro-card .q-copy { margin-top: 8px; color: var(--ink-soft); }
.plan-intro-note {
  margin-top: 12px;
  padding: 12px 14px 12px 28px;
  border-radius: var(--r-sm);
  border: 1px solid rgba(183,121,5,.14);
  background: rgba(255,255,255,.62);
  font-size: 12.5px;
  line-height: 1.62;
  color: var(--coral-600);
  position: relative;
}
.plan-intro-note::before {
  content: "";
  position: absolute;
  left: 14px;
  top: 17px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--coral);
}
.plan-intro-note b { font-weight: 900; }

.plan-entry-card {
  margin-top: 14px;
  padding: 16px 16px 14px;
  border-radius: var(--r);
  border: 1px solid var(--line);
  background: linear-gradient(180deg, var(--surface), var(--surface-soft) 100%);
  box-shadow: var(--sh-sm);
}
.plan-entry-card .sub-label {
  margin: 0 0 10px;
  color: var(--ink-soft);
}
.plan-entry-card .chip-multi {
  margin-top: 0;
  margin-bottom: 0;
}
.plan-entry-divider {
  height: 1px;
  margin: 16px 0;
  background: var(--line);
}
.plan-items {
  display: grid;
  gap: 12px;
  width: 100%;
  min-width: 0;
}
.plan-item {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 14px;
  border-radius: var(--r-sm);
  border: 1px solid rgba(1,188,214,.16);
  background:
    radial-gradient(circle at 18px 0, rgba(1,188,214,.12), transparent 42px),
    linear-gradient(180deg, #fff, var(--surface-soft) 100%);
  box-shadow: 0 12px 28px -24px rgba(18,40,48,.34), inset 0 1px 0 rgba(255,255,255,.82);
  position: relative;
}
.plan-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 11px;
}
.plan-item-label {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
  font-size: 12.5px;
  font-weight: 900;
  color: var(--grow-700);
}
.plan-item-remove {
  min-height: 28px;
  padding: 0 10px;
  border-radius: var(--pill);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--muted);
  font-size: 11.5px;
  font-weight: 800;
}
.plan-item-remove:active { transform: translateY(1px); }
.plan-item .plan-form-section { margin-bottom: 12px; }
.plan-seg.plan-mode-seg {
  margin-bottom: 13px;
  padding: 4px;
  border-radius: var(--pill);
  border: 1px solid var(--grow-tint-2);
  background: var(--grow-tint);
  box-shadow: none;
}
.plan-seg.plan-mode-seg button {
  min-height: 44px;
  display: grid;
  place-items: center;
  gap: 2px;
  line-height: 1.1;
  color: var(--grow-700);
  background: transparent;
  box-shadow: none;
}
.plan-seg.plan-mode-seg button b {
  font-size: 13px;
  font-weight: 900;
  color: inherit;
}
.plan-seg.plan-mode-seg button span {
  font-size: 10.5px;
  font-weight: 750;
  color: var(--grow-600);
}
.plan-seg.plan-mode-seg button.on {
  background: var(--grow);
  color: #fff;
  box-shadow: 0 6px 14px -8px rgba(1,188,214,.55);
}
.plan-seg.plan-mode-seg button.on b,
.plan-seg.plan-mode-seg button.on span {
  color: #fff;
}
.plan-item-fields { margin-top: 0; min-width: 0; }
.plan-item .plan-grid { min-width: 0; }
.plan-item .plan-field-label {
  font-size: 10.5px;
  color: var(--ink-soft);
}
.plan-item .plan-input {
  min-height: 50px;
  border-color: rgba(29,74,84,.12);
  box-shadow: inset 0 1px 2px rgba(18,40,48,.03), 0 8px 18px -18px rgba(18,40,48,.42);
}
.plan-item .plan-input-key {
  border-color: rgba(1,188,214,.28);
  background: linear-gradient(180deg, #fff, rgba(231,250,253,.78));
}
.plan-add-btn {
  width: 100%;
  min-height: 42px;
  margin-top: 12px;
  border-radius: var(--r-sm);
  border: 1.5px dashed var(--line-strong);
  background: rgba(255,255,255,.72);
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 900;
}
.plan-add-btn:active { transform: translateY(1px); }
.plan-entry-card .plan-seg {
  background: var(--surface-sink);
}
.plan-entry-card .plan-seg.plan-mode-seg {
  background: var(--grow-tint);
  border-color: var(--grow-tint-2);
}
.plan-entry-card .plan-input {
  background: var(--surface);
}
.plan-entry-card .source-row-title {
  margin-top: 14px;
  margin-bottom: 8px;
}
.source-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 0;
}
.source-row .opt {
  min-height: 0;
  padding: 13px 14px;
}
.source-row .opt b {
  font-size: 13.5px;
}
.source-row .opt span {
  font-size: 11.5px;
}
.support-type-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 14px;
}
.support-type-row button {
  min-height: 42px;
  padding: 0 12px;
  border-radius: var(--pill);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--sh-xs);
}
.support-type-row button.sel {
  border-color: var(--grow);
  background: var(--grow);
  color: #fff;
}
.plan-form-section { margin-bottom: 14px; }
.plan-field-label {
  display: block;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.03em;
  color: var(--muted);
}
.plan-seg {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px;
  padding: 3px;
  border-radius: var(--pill);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.72);
  box-shadow: var(--sh-xs);
}
.plan-seg button {
  min-height: 38px;
  padding: 0 10px;
  border-radius: var(--pill);
  font-size: 13px;
  font-weight: 800;
  color: var(--muted);
  transition: all .18s ease;
}
.plan-seg button.on {
  background: var(--surface);
  color: var(--grow-700);
  box-shadow: var(--sh-sm);
}
.plan-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.plan-field-wide { grid-column: 1 / -1; }
.plan-input {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 14px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-strong);
  background: rgba(255,255,255,.9);
  box-shadow: inset 0 1px 2px rgba(18,40,48,.04);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.plan-input-key {
  border-color: var(--grow-tint-2);
  background: linear-gradient(180deg, #fff, var(--grow-tint));
}
.plan-input:focus-within {
  border-color: var(--grow);
  box-shadow: 0 0 0 4px var(--grow-tint-2);
}
.plan-input input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  padding: 0;
  font-size: 20px;
  font-weight: 900;
  font-family: var(--num);
  color: var(--ink);
  letter-spacing: -0.02em;
}
.plan-input input::-webkit-outer-spin-button,
.plan-input input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.plan-input input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
.plan-suffix {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 800;
  color: var(--ink-soft);
  white-space: nowrap;
}
.chip-multi { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 6px; }
.cm { padding: 10px 14px; border-radius: var(--pill); border: 1.5px solid var(--line-strong); background: var(--surface); font-size: 13px; font-weight: 800; color: var(--ink-soft); transition: all .15s; }
.cm.on { border-color: transparent; background: var(--grow); color: #fff; box-shadow: var(--sh-sm); }

.verdict-card.seed-plan {
  margin-top: 14px;
  padding: 16px 18px;
  border-radius: var(--r);
  background: var(--surface);
  border: 1px solid var(--grow-tint-2);
  box-shadow: var(--sh-xs);
  color: var(--ink);
}
.verdict-card.seed-plan .vc-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 10px;
  color: var(--grow-700);
  font-size: 11.5px;
  font-weight: 900;
  letter-spacing: 0.02em;
}
.verdict-card.seed-plan .vc-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--grow);
}
.verdict-card.seed-plan h3 {
  margin: 0 0 14px;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.01em;
  line-height: 1.45;
  color: var(--ink);
  text-wrap: balance;
}
.verdict-card.seed-plan .vc-row { display: flex; gap: 8px; flex-wrap: wrap; }
.verdict-card.seed-plan .vc-stat {
  flex: 1 1 0;
  min-width: 100px;
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
  border-radius: var(--r-sm);
  padding: 11px 12px;
}
.verdict-card.seed-plan .vc-stat .s1 { font-size: 11px; font-weight: 800; color: var(--muted); }
.verdict-card.seed-plan .vc-stat .s2 { font-size: 14px; font-weight: 900; margin-top: 3px; color: var(--grow-700); }

.plan-cta { margin-top: 14px; padding: 20px; border-radius: var(--r); background: var(--surface); border: 1.5px solid var(--coral-tint-2); box-shadow: var(--sh); position: relative; overflow: hidden; }
.plan-cta::before { content: ""; position: absolute; right: -40px; top: -40px; width: 130px; height: 130px; border-radius: 50%; background: radial-gradient(var(--coral-tint), transparent 70%); }
.plan-cta .pc-eyebrow { font-size: 12px; font-weight: 900; color: var(--coral-600); }
.plan-cta h3 { margin: 8px 0 7px; font-size: 18px; font-weight: 900; letter-spacing: -0.01em; line-height: 1.35; position: relative; text-wrap: balance; }
.plan-cta p { margin: 0 0 16px; font-size: 13px; color: var(--ink-soft); line-height: 1.65; position: relative; }
.plan-cta .pc-list { display: grid; gap: 9px; margin: 0 0 16px; position: relative; }
.plan-cta .pc-list .li { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; color: var(--ink-soft); line-height: 1.5; }
.plan-cta .pc-list .li .ck { flex: 0 0 auto; width: 18px; height: 18px; border-radius: 50%; background: var(--coral-tint); color: var(--coral-600); display: grid; place-items: center; font-size: 11px; font-weight: 900; margin-top: 1px; }

.plan-cta.seed-cta {
  margin-top: 18px;
  padding: 22px 20px 20px;
  background: linear-gradient(168deg, var(--ink) 0%, #163a44 58%, #0f5662 100%);
  border: none;
  box-shadow: var(--sh-lg);
  color: #fff;
}
.plan-cta.seed-cta::before {
  right: -56px;
  top: -72px;
  width: 200px;
  height: 200px;
  background: radial-gradient(rgba(1, 188, 214, 0.42), transparent 68%);
}
.plan-cta.seed-cta .pc-eyebrow {
  position: relative;
  font-size: 11.5px;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: var(--grow-300);
}
.plan-cta.seed-cta h3 {
  position: relative;
  margin: 7px 0 14px;
  font-size: 20px;
  font-weight: 900;
  letter-spacing: -0.015em;
  line-height: 1.32;
  color: #fff;
}
.plan-cta.seed-cta .pc-list {
  gap: 10px;
  margin-bottom: 18px;
}
.plan-cta.seed-cta .pc-list .li {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.55;
}
.plan-cta.seed-cta .pc-list .li .ck {
  background: rgba(1, 188, 214, 0.22);
  color: var(--grow-300);
  border: 1px solid rgba(134, 218, 230, 0.35);
}
.plan-cta.seed-cta .btn.seed-cta-btn {
  position: relative;
  font-size: 15px;
  padding: 14px 18px;
  gap: 8px;
  color: var(--ink);
  background: #fff;
  box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.28);
  animation: seed-cta-pulse 2.4s ease-in-out infinite;
}
.plan-cta.seed-cta .seed-cta-arrow {
  display: inline-flex;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
  animation: seed-cta-arrow-nudge 1.5s ease-in-out infinite;
}
@keyframes seed-cta-pulse {
  0%, 100% {
    box-shadow: 0 10px 24px -10px rgba(0, 0, 0, 0.28);
    transform: translateY(0);
  }
  50% {
    box-shadow: 0 14px 30px -8px rgba(1, 188, 214, 0.42), 0 0 0 2px rgba(134, 218, 230, 0.28);
    transform: translateY(-1px);
  }
}
@keyframes seed-cta-arrow-nudge {
  0%, 100% { transform: translateX(0); opacity: 0.82; }
  50% { transform: translateX(5px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .plan-cta.seed-cta .btn.seed-cta-btn,
  .plan-cta.seed-cta .seed-cta-arrow { animation: none; }
}

/* ================= 家庭财务体检 M1 ================= */
.checkup-toast {
  position: fixed;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  width: min(100% - 36px, 420px);
  transform: translateX(-50%);
  z-index: 70;
  padding: 12px 16px;
  border-radius: var(--r-sm);
  background: rgba(18, 40, 48, 0.94);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  box-shadow: var(--sh-lg);
  transition: opacity .2s ease, transform .2s ease;
}
.checkup-toast.out { opacity: 0; transform: translate(-50%, 8px); }

.checkup-state-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.checkup-state-badge.tight,
.checkup-verdict-card.tight .checkup-state-badge,
.checkup-seed-card.tight .checkup-state-badge { background: var(--coral-tint); color: var(--coral-600); }
.checkup-state-badge.risky,
.checkup-verdict-card.risky .checkup-state-badge,
.checkup-seed-card.risky .checkup-state-badge { background: var(--surface-sink); color: var(--ink); }

.checkup-seed-card,
.checkup-verdict-card,
.checkup-flow-head,
.checkup-report-head,
.checkup-section,
.checkup-confirm-card,
.checkup-consult-card {
  margin-top: 14px;
  padding: 18px;
  border-radius: var(--r);
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: var(--sh-xs);
}
.checkup-seed-card,
.checkup-verdict-card {
  border-color: var(--grow-tint-2);
  background: linear-gradient(160deg, var(--grow-tint), #fff 72%);
}
.checkup-seed-card.tight,
.checkup-verdict-card.tight {
  border-color: var(--coral-tint-2);
  background: linear-gradient(160deg, var(--coral-tint), #fff 74%);
}
.checkup-seed-card.risky,
.checkup-verdict-card.risky {
  border-color: var(--line-strong);
  background: linear-gradient(160deg, var(--surface-sink), #fff 72%);
}
.checkup-verdict-top,
.checkup-section-head,
.checkup-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.checkup-verdict-top > span:last-child,
.checkup-section-head > span,
.checkup-card-head > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
  white-space: nowrap;
}
.checkup-seed-card h2,
.checkup-verdict-card h2,
.checkup-flow-head h2,
.checkup-report-head h2 {
  margin: 12px 0 8px;
  color: var(--ink);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.checkup-seed-card p,
.checkup-flow-head p,
.checkup-report-head p,
.checkup-next-space p,
.checkup-consult-card p,
.checkup-nameplate p {
  margin: 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.65;
}
.checkup-seed-stats,
.checkup-verdict-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.checkup-seed-stats div,
.checkup-verdict-stats div {
  min-width: 0;
  padding: 11px 10px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(255,255,255,.86);
}
.checkup-seed-stats span,
.checkup-verdict-stats span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}
.checkup-seed-stats b,
.checkup-verdict-stats b {
  display: block;
  margin-top: 2px;
  color: var(--ink);
  font-family: var(--num);
  font-size: 17px;
  font-weight: 900;
  overflow-wrap: anywhere;
}
.checkup-seed-edit {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(72px, .7fr) minmax(72px, .7fr);
  gap: 8px;
  margin-top: 14px;
}
.checkup-seed-edit label,
.checkup-field {
  display: block;
  min-width: 0;
}
.checkup-seed-edit span,
.checkup-field span {
  display: block;
  margin-bottom: 6px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}
.checkup-seed-edit input,
.checkup-field input,
.checkup-field select {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 0 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  outline: none;
  font-size: 14px;
  font-weight: 850;
}
.checkup-seed-edit input:focus,
.checkup-field input:focus,
.checkup-field select:focus {
  border-color: var(--grow);
  box-shadow: 0 0 0 4px var(--grow-tint-2);
}
.checkup-field input[type="range"] {
  padding: 0;
  min-height: 34px;
  accent-color: var(--grow);
  border: 0;
  background: transparent;
  box-shadow: none;
}
.checkup-range-value {
  display: inline-flex;
  width: fit-content;
  margin-top: 4px;
  padding: 3px 8px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 12px;
  font-family: var(--num);
}
.checkup-pill-group {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.checkup-pill {
  min-height: 36px;
  padding: 0 11px;
  border-radius: var(--pill);
  border: 1px solid var(--line-strong);
  background: var(--surface);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 900;
}
.checkup-pill.on {
  border-color: var(--grow);
  background: var(--grow-tint);
  color: var(--grow-700);
}
.checkup-seed-note,
.checkup-field-hint,
.checkup-risk-line {
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}
.checkup-condition {
  margin: 8px 0 0;
  padding: 9px 10px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.72);
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.55;
}
.checkup-mini-axis {
  margin-top: 14px;
  padding: 12px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(255,255,255,.86);
}
.checkup-axis-rail {
  position: relative;
  height: 8px;
  border-radius: var(--pill);
  background: var(--surface-sink);
}
.checkup-axis-rail i {
  position: absolute;
  top: 50%;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--grow);
  border: 3px solid #fff;
  transform: translate(-50%, -50%);
  box-shadow: var(--sh-sm);
}
.checkup-axis-labels {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}
.checkup-axis-labels b {
  color: var(--ink);
  font-family: var(--num);
}
.checkup-sticky-actions {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: grid;
  gap: 9px;
  margin-top: 14px;
  padding: 12px 0 max(10px, env(safe-area-inset-bottom));
  background: linear-gradient(180deg, rgba(240,248,252,0), var(--paper) 26px, var(--paper));
}

.checkup-progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 14px;
  padding: 12px;
  border-radius: var(--r-sm);
  background: var(--surface-soft);
  border: 1px solid var(--line);
}
.checkup-progress b {
  color: var(--grow-700);
  font-family: var(--num);
  font-size: 18px;
  font-weight: 900;
}
.checkup-progress span {
  margin-left: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}
.checkup-progress-dots {
  display: flex;
  gap: 6px;
}
.checkup-progress-dots i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--line-strong);
}
.checkup-progress-dots i.on { background: var(--grow); }
.checkup-confirm-list {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.checkup-confirm-card.done {
  border-color: var(--grow-tint-2);
  background: linear-gradient(180deg, #fff, var(--grow-tint));
}
.checkup-card-head h3,
.checkup-section-head h3,
.checkup-consult-card h3,
.checkup-next-space h3 {
  margin: 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.35;
}
.checkup-card-head p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.checkup-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}
.checkup-field.wide { grid-column: 1 / -1; }
.checkup-confirm-btn {
  width: 100%;
  min-height: 42px;
  margin-top: 13px;
  border-radius: var(--r-sm);
  background: var(--grow-tint);
  color: var(--grow-700);
  border: 1px solid var(--grow-tint-2);
  font-size: 13px;
  font-weight: 900;
}
.checkup-confirm-card.done .checkup-confirm-btn {
  background: var(--surface);
  border-color: var(--line-strong);
  color: var(--ink-soft);
}

.checkup-skeleton {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}
.checkup-skeleton i {
  display: block;
  height: 8px;
  border-radius: var(--pill);
  background: linear-gradient(90deg, var(--surface-sink), var(--grow-tint), var(--surface-sink));
  background-size: 180% 100%;
  animation: checkup-loading 1.2s ease-in-out infinite;
}
.checkup-skeleton i:nth-child(2) { width: 78%; }
.checkup-skeleton i:nth-child(3) { width: 56%; }
@keyframes checkup-loading {
  from { background-position: 0 0; }
  to { background-position: 180% 0; }
}
.checkup-question-bar {
  float: right;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  margin-left: 8px;
  padding: 0 11px;
  border-radius: var(--pill);
  background: var(--surface);
  border: 1px solid var(--grow-tint-2);
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
}
.checkup-question-bar b {
  font-family: var(--num);
}
.checkup-question-bar span {
  color: var(--muted);
}

.checkup-timeline {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.checkup-time-item {
  width: 100%;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 11px;
  padding: 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: var(--surface-soft);
  text-align: left;
}
.checkup-time-item.strong {
  border-color: var(--grow-tint-2);
  background: var(--grow-tint);
}
.checkup-time-item.warn {
  border-color: var(--coral-tint-2);
  background: var(--coral-tint);
}
.checkup-time-year {
  color: var(--ink);
  font-family: var(--num);
  font-size: 16px;
  font-weight: 900;
}
.checkup-time-year em {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-family: inherit;
  font-size: 11px;
  font-style: normal;
  font-weight: 850;
}
.checkup-time-copy {
  min-width: 0;
}
.checkup-time-copy b {
  display: block;
  color: var(--ink);
  font-size: 13.5px;
  line-height: 1.35;
}
.checkup-time-copy span {
  display: block;
  margin-top: 3px;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.5;
}

.checkup-ledger-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.checkup-ledger-grid > div {
  min-width: 0;
  padding: 12px;
  border-radius: var(--r-sm);
  background: var(--surface-soft);
}
.checkup-ledger-title {
  display: block;
  margin-bottom: 8px;
  color: var(--ink);
  font-size: 13px;
}
.checkup-ledger-grid .checkup-ledger-line {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 0;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
  font-size: 12px;
}
.checkup-ledger-grid .checkup-ledger-line > span {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.checkup-ledger-grid .checkup-ledger-line small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
}
.checkup-entity-pill {
  width: fit-content;
  max-width: 100%;
  padding: 2px 7px;
  border-radius: var(--pill);
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--ink);
  font-size: 10px;
  font-style: normal;
  font-weight: 850;
  white-space: normal;
}
.checkup-ledger-grid .checkup-ledger-line b {
  color: var(--ink);
  font-family: var(--num);
  white-space: nowrap;
}
.checkup-ledger-net {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 850;
}
.checkup-yield-card p {
  margin: 8px 0 10px;
  color: var(--ink-soft);
  font-size: 12px;
  line-height: 1.6;
}
.checkup-yield-rows {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}
.checkup-yield-rows div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: var(--surface-soft);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 850;
}
.checkup-yield-rows div.cur {
  border-color: var(--grow);
  background: var(--grow-tint);
  color: var(--grow-700);
}
.checkup-yield-rows b {
  color: var(--ink);
  font-family: var(--num);
  white-space: nowrap;
}
.checkup-assumptions {
  display: grid;
  gap: 9px;
  margin-top: 12px;
}
.checkup-c1 summary {
  color: var(--ink);
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
}
.checkup-c1 summary .num {
  color: var(--grow-700);
  font-family: var(--num);
}
.checkup-assumptions div {
  padding: 11px 12px;
  border-radius: var(--r-sm);
  background: var(--surface-soft);
  border: 1px solid var(--line);
}
.checkup-assumptions span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
}
.checkup-assumptions b {
  display: block;
  margin-top: 3px;
  color: var(--ink);
  font-size: 13px;
  line-height: 1.45;
}
.checkup-assumptions .engine {
  background: var(--grow-tint);
  border-color: var(--grow-tint-2);
}
.checkup-c1-actions,
.checkup-hook-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.checkup-hook {
  min-height: 34px;
  padding: 0 12px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
  color: var(--grow-700);
  font-size: 12px;
  font-weight: 900;
}
.checkup-hook.ghost {
  background: var(--surface);
  border-color: var(--line-strong);
  color: var(--ink-soft);
}
.checkup-nameplate details {
  margin-top: 10px;
}
.checkup-nameplate summary {
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}
.checkup-next-space {
  background: var(--surface-soft);
}
.checkup-consult-card {
  background: linear-gradient(168deg, var(--ink), #163a44 72%);
  color: #fff;
  border: 0;
}
.checkup-consult-card h3,
.checkup-consult-card p {
  color: #fff;
}
.checkup-consult-card p {
  opacity: .88;
  margin: 6px 0 14px;
}
.checkup-consult-note,
.checkup-consult-sub {
  padding: 10px 12px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.88);
  font-size: 12px;
  font-weight: 850;
  line-height: 1.5;
}
.checkup-consult-sub {
  margin-top: 10px;
  background: transparent;
  padding: 0;
}
.checkup-question-list {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}
.checkup-question {
  width: 100%;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 11px 12px;
  border-radius: var(--r-sm);
  background: rgba(255,255,255,.92);
  color: var(--ink);
  text-align: left;
}
.checkup-question span {
  color: var(--grow-700);
  font-weight: 900;
}
.checkup-question b {
  font-size: 12.5px;
  line-height: 1.45;
}
.checkup-question em {
  padding: 4px 8px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  white-space: nowrap;
}
.checkup-question.kept em {
  background: var(--coral-tint);
  color: var(--coral-600);
}
.checkup-consult-card .btn.soft {
  margin-top: 2px;
  background: #fff;
  color: var(--ink);
  border-color: transparent;
}
.checkup-consult-card .btn.grow {
  margin-top: 10px;
  box-shadow: none;
}

@media (max-width: 380px) {
  .checkup-seed-card,
  .checkup-verdict-card,
  .checkup-flow-head,
  .checkup-report-head,
  .checkup-section,
  .checkup-confirm-card,
  .checkup-consult-card {
    padding: 15px;
  }
  .checkup-seed-edit,
  .checkup-form-grid,
  .checkup-ledger-grid {
    grid-template-columns: 1fr;
  }
  .checkup-seed-stats,
  .checkup-verdict-stats {
    grid-template-columns: 1fr;
  }
  .checkup-time-item {
    grid-template-columns: 72px minmax(0, 1fr);
  }
  .checkup-question {
    grid-template-columns: 22px minmax(0, 1fr);
  }
  .checkup-question em {
    grid-column: 2;
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .checkup-skeleton i { animation: none; }
  .checkup-toast { transition: none; }
}

.reassure { margin-top: 14px; padding: 16px 18px; border-radius: var(--r); background: var(--grow-tint); border: 1px solid var(--grow-tint-2); }
.reassure h3 { margin: 0 0 6px; font-size: 15px; font-weight: 900; color: var(--grow-700); }
.reassure p { margin: 0; font-size: 12.5px; color: var(--ink-soft); line-height: 1.6; }

/* ================= 对比 dock ================= */
.dock {
  position: fixed; left: 50%; transform: translateX(-50%);
  bottom: calc(14px + env(safe-area-inset-bottom));
  width: min(100% - 28px, calc(var(--app-w) - 28px)); z-index: 50;
  display: flex; align-items: center; gap: 11px;
  padding: 10px 12px 10px 16px; border-radius: var(--pill);
  background: rgba(18,40,48,0.94); color: #fff; box-shadow: var(--sh-lg);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  animation: dockin .35s cubic-bezier(.2,.8,.2,1);
}
@keyframes dockin { from { opacity: 0; transform: translate(-50%, 14px); } to { opacity: 1; transform: translate(-50%, 0); } }
.dock .dk-dots { display: flex; gap: 5px; }
.dock .dk-dots i { width: 10px; height: 10px; border-radius: 50%; box-shadow: 0 0 0 2px rgba(255,255,255,.2); }
.dock .dk-txt { font-size: 13px; font-weight: 800; }
.dock .dk-txt b { font-family: var(--num); font-weight: 900; }
.dock .dk-go { margin-left: auto; min-height: 44px; padding: 9px 16px; border-radius: var(--pill); background: #fff; color: var(--ink); font-size: 13px; font-weight: 900; display: inline-flex; align-items: center; }
.dock .dk-go:active { transform: scale(.97); }

/* ================= 空态 ================= */
.empty { padding: 40px 24px; text-align: center; border: 1.5px dashed var(--line-strong); border-radius: var(--r); background: var(--surface); }
.empty .em-dot { width: 38px; height: 38px; border-radius: 50%; margin: 0 auto; background: linear-gradient(150deg, var(--grow-tint), var(--grow-tint-2)); }
.empty h3 { margin: 14px 0 6px; font-size: 16px; font-weight: 900; }
.empty p { margin: 0 0 16px; color: var(--muted); font-size: 13px; line-height: 1.6; }

.mini-actions { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.mini-actions .btn { flex: 1 1 0; }

/* ================= 选专业表单 ================= */
.form-card { padding: 18px; }
.form-step { display: flex; align-items: center; gap: 9px; font-size: 14.5px; font-weight: 900; letter-spacing: -0.01em; margin: 16px 0 10px; }
.form-step:first-child { margin-top: 2px; }
.form-step .fs-no { width: 22px; height: 22px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 900; font-family: var(--num); color: #fff; background: #01BCD6; }
.form-step em { font-style: normal; font-size: 12px; font-weight: 800; color: var(--muted); }
.form-step.disabled { color: var(--muted); }
.sub-hint { font-size: 11.5px; font-weight: 700; color: var(--muted); margin: 0 2px 9px; }
.map-hint {
  width: 100%;
  padding: 11px 13px;
  border: 1px dashed var(--line-strong);
  border-radius: var(--r-sm);
  background: var(--surface-soft);
  color: var(--muted);
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.45;
}

/* ================= 学历选择 ================= */
.degree-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 20px;
  padding: 2px 8px;
  border-radius: var(--pill);
  border: 1px solid var(--grow-tint-2);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}
.degree-badge.uncertain {
  border-color: var(--coral-tint-2);
  background: var(--coral-tint);
  color: var(--coral-600);
}
.choice-line .degree-badge::after { display: none; }
.degree-picker {
  margin: 10px 0 13px;
  min-width: 0;
}
.degree-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 4px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line);
  background: var(--surface-sink);
}
.degree-row.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.degree-opt {
  position: relative;
  min-width: 0;
  min-height: 40px;
  padding: 10px 5px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--ink-soft);
  text-align: center;
  transition: background .16s ease, color .16s ease, border-color .16s ease, transform .12s ease;
}
.degree-opt b {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
}
.degree-opt.on {
  color: var(--ink);
  background: var(--surface);
  border-color: var(--grow-tint-2);
  box-shadow: var(--sh-xs);
}
.degree-opt.on b { color: var(--grow-700); }
.degree-opt.uncertain.on {
  border-color: var(--coral-tint-2);
}
.degree-opt.uncertain.on b { color: var(--coral-600); }
.degree-opt:active { transform: translateY(1px); }
.degree-opt.locked,
.degree-opt:disabled {
  cursor: not-allowed;
  opacity: .58;
  background: rgba(255,255,255,.42);
}
.lock-mark {
  display: inline-flex;
  margin-left: 3px;
  padding: 1px 4px;
  border-radius: var(--pill);
  background: var(--surface-sink);
  color: var(--muted);
  font-size: 9px;
  font-style: normal;
  vertical-align: 1px;
}

@media (max-width: 380px) {
  .degree-row:not(.cols-3) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.picker-sheet {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-end;
  justify-content: stretch;
  padding: 0;
  background: rgba(18, 40, 48, .36);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  touch-action: none;
}
.picker-sheet[hidden] { display: none; }
.picker-panel {
  width: 100%;
  max-width: 100%;
  max-height: min(86dvh, 640px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
  background: var(--surface);
  box-shadow: 0 -10px 36px rgba(18, 40, 48, .18);
  padding-bottom: env(safe-area-inset-bottom);
  animation: pickerSheetUp .28s cubic-bezier(.16, 1, .3, 1);
}
.picker-panel::before {
  content: '';
  display: block;
  width: 40px;
  height: 4px;
  margin: 10px auto 4px;
  border-radius: 99px;
  background: var(--line-strong);
  flex-shrink: 0;
}
@keyframes pickerSheetUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .picker-panel { animation: none; }
}
.picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px 12px;
  border-bottom: 1px solid var(--line);
}
.picker-head b { font-size: 16px; font-weight: 900; }
.picker-head button {
  min-height: 44px;
  padding: 8px 13px;
  border-radius: var(--pill);
  background: var(--grow-tint);
  color: var(--grow-700);
  font-size: 13px;
  font-weight: 900;
}
.picker-options {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 10px 14px calc(18px + env(safe-area-inset-bottom));
}
.picker-search {
  position: relative;
  padding: 10px 16px 14px;
  background: linear-gradient(180deg, var(--surface-soft), var(--surface));
  border-bottom: 1px solid var(--line);
}
.picker-search::before {
  content: '';
  position: absolute;
  left: 30px;
  top: 50%;
  transform: translateY(calc(-50% - 1px));
  width: 14px;
  height: 14px;
  border: 2px solid var(--faint);
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
}
.picker-search::after {
  content: '';
  position: absolute;
  left: 41px;
  top: calc(50% + 6px);
  width: 7px;
  height: 2px;
  background: var(--faint);
  border-radius: 1px;
  transform: rotate(45deg);
  pointer-events: none;
  z-index: 1;
}
.picker-search-input {
  width: 100%;
  height: 44px;
  padding: 0 14px 0 40px;
  border: 1px solid var(--line-strong);
  border-radius: var(--pill);
  background: var(--surface);
  color: var(--ink);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  outline: none;
  box-shadow: var(--sh-xs);
  transition: border-color .15s ease, box-shadow .15s ease;
  -webkit-appearance: none;
  appearance: none;
}
.picker-search-input::placeholder { color: var(--faint); font-weight: 700; }
.picker-search-input:focus {
  border-color: var(--grow);
  box-shadow: 0 0 0 4px var(--grow-tint-2), var(--sh-xs);
}
.picker-search-input::-webkit-search-cancel-button { -webkit-appearance: none; }
.picker-empty {
  padding: 28px 12px 16px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  font-weight: 800;
}
.picker-option[hidden] { display: none; }
.picker-option {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 12px;
  border-radius: var(--r-sm);
  text-align: left;
}
.picker-option + .picker-option { margin-top: 4px; }
.picker-option b { font-size: 14px; font-weight: 900; color: var(--ink); }
.picker-option span {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}
.picker-option.on {
  background: var(--grow-tint);
  box-shadow: inset 0 0 0 1px var(--grow-tint-2);
}
.picker-option.on b { color: var(--grow-700); }

@media (min-width: 469px) {
  .picker-sheet {
    justify-content: center;
    padding: 0 0 max(16px, env(safe-area-inset-bottom));
  }
  .picker-panel {
    width: min(100% - 32px, var(--app-w));
    max-width: min(100% - 32px, var(--app-w));
    border-radius: 24px;
    padding-bottom: 0;
    box-shadow: var(--sh-lg);
  }
  .picker-panel::before { display: none; }
  .picker-options {
    max-height: calc(min(72vh, 560px) - 118px);
    padding-bottom: 18px;
  }
}

@media (max-width: 468px) {
  .picker-head b { font-size: 17px; }
  .picker-option {
    min-height: 48px;
    padding: 14px 12px;
  }
  .picker-option b { font-size: 15px; }
}

/* ================= 隐藏规则列表 ================= */
.rule-list { display: grid; gap: 10px; }
.rule-li { display: grid; grid-template-columns: 16px 1fr; gap: 10px; align-items: start; font-size: 13px; color: var(--ink-soft); line-height: 1.6; }
.rule-li .rule-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gold); margin-top: 7px; }

/* ================= 关键指标横向比 v2 ================= */
.metric2 { margin-top: 20px; padding-top: 16px; border-top: 1px dashed var(--line-strong); }
.metric2:first-of-type, .card .metric2:first-child { margin-top: 4px; padding-top: 0; border-top: 0; }
.m2-top { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 11px; }
.m2-label { font-size: 14px; font-weight: 900; letter-spacing: -0.01em; }
.m2-hint { font-size: 11px; font-weight: 700; color: var(--muted); }
.mrow { display: grid; grid-template-columns: 84px 1fr auto; align-items: center; gap: 9px; padding: 5px 0; }
.mrow.win .mr-name { color: var(--ink); }
.mr-name { font-size: 12px; font-weight: 800; color: var(--muted); display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mr-name i { width: 10px; height: 10px; border-radius: 3px; flex: 0 0 auto; }
.mr-bar { height: 18px; border-radius: 99px; background: var(--surface-sink); overflow: hidden; min-width: 36px; }
.mr-bar > i { display: block; height: 100%; border-radius: 99px; transform-origin: left; transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.mr-val { font-size: 14px; font-weight: 900; color: var(--ink); font-family: var(--num); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; justify-content: flex-end; }
.mrow:not(.win) .mr-val { color: var(--muted); }

/* ================= 欢迎引导屏幕 ================= */
@keyframes welcome-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes welcome-chart-draw {
  from { stroke-dashoffset: var(--board-dash-start, 470); }
  to { stroke-dashoffset: 0; }
}

.welcome-overlay {
  position: fixed;
  left: 50%;
  top: 0;
  width: min(100%, var(--app-w));
  height: 100vh;
  height: 100dvh;
  transform: translateX(-50%);
  z-index: 100;
  overflow: hidden;
  background: var(--paper);
}

.welcome-overlay::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  height: 116px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .96) 42%, #ffffff 100%);
}

.welcome-overlay.hidden { display: none; }

.welcome-card {
  position: relative;
  width: 100%;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--paper);
}

.welcome-home {
  --w-ink: #102832;
  --w-slate: #38525d;
  --w-muted: #5f757e;
  --w-line: rgba(16, 40, 50, .10);
  --w-line-strong: rgba(16, 40, 50, .16);
  --w-cyan: #01BCD6;
  --w-cyan-deep: #087f91;
  --w-cyan-soft: #e3f8fb;
  --w-amber: #B77905;
  --w-amber-soft: rgba(183, 121, 5, .10);
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 100%;
  padding: calc(22px + env(safe-area-inset-top)) 20px calc(108px + env(safe-area-inset-bottom));
  overflow: hidden;
  color: var(--w-ink);
  background: linear-gradient(180deg, var(--paper) 0%, #f7fbfc 48%, #ffffff 100%);
}

.welcome-home::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 360px;
  z-index: 0;
  display: block;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(1, 188, 214, .10), rgba(1, 188, 214, 0) 74%),
    linear-gradient(135deg, rgba(255, 255, 255, .88), rgba(255, 255, 255, 0) 62%);
}

.welcome-home::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 40%;
  z-index: 0;
  display: block;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), #ffffff 76%);
}

.welcome-overlay:not(.hidden) .welcome-home > * {
  animation: welcome-rise 560ms cubic-bezier(.16, 1, .3, 1) both;
}

.welcome-overlay:not(.hidden) .welcome-topline { animation-delay: 0ms; }
.welcome-overlay:not(.hidden) .welcome-hero { animation-delay: 70ms; }
.welcome-overlay:not(.hidden) .welcome-decisions { animation-delay: 180ms; }
.welcome-overlay:not(.hidden) .welcome-primary-cta {
  animation: welcome-rise 560ms cubic-bezier(.16, 1, .3, 1) 280ms both;
}

.welcome-home > * {
  position: relative;
  z-index: 1;
}

.welcome-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.welcome-brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 11px;
  color: var(--w-ink);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.2;
}

.welcome-brand > span:last-child {
  display: grid;
  gap: 2px;
}

.welcome-brand b {
  display: block;
  font-size: 16px;
  line-height: 1.05;
  font-weight: 950;
  letter-spacing: -.01em;
}

.welcome-brand small {
  display: block;
  color: var(--w-muted);
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.2;
}

.welcome-logo {
  width: 46px;
  height: 46px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #fff;
  background: var(--w-cyan);
  border: 1px solid rgba(8, 127, 145, .14);
  box-shadow:
    0 2px 5px rgba(1, 188, 214, .18),
    inset 0 1px 0 rgba(255, 255, 255, .34);
}

.welcome-logo svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.welcome-hero {
  display: grid;
  gap: 20px;
  min-height: 0;
  padding-top: 4px;
}

.welcome-hero-copy {
  max-width: none;
}

.welcome-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px 7px 10px;
  border-radius: var(--pill);
  color: var(--w-cyan-deep);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.2;
  background: #ffffff;
  border: 1px solid rgba(1, 188, 214, .18);
  box-shadow: var(--sh-xs);
}

.welcome-kicker::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--w-amber);
  box-shadow: 0 0 0 3px var(--w-amber-soft);
}

.welcome-hero h1 {
  max-width: 390px;
  margin: 16px 0 0;
  color: var(--w-ink);
  font-size: 31px;
  font-weight: 950;
  line-height: 1.22;
  letter-spacing: -.01em;
  text-wrap: balance;
}

.welcome-subtitle {
  max-width: 380px;
  margin: 13px 0 0;
  color: var(--w-slate);
  font-size: 15px;
  font-weight: 760;
  line-height: 1.68;
  text-wrap: pretty;
}

.welcome-board {
  position: relative;
  overflow: hidden;
  padding: 16px 14px 14px;
  border-radius: var(--r);
  border: 1px solid rgba(1, 188, 214, .16);
  background: #ffffff;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .94) inset,
    0 8px 22px -16px rgba(18, 40, 48, .18);
}

.welcome-board::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(225, 246, 249, .55), rgba(255, 255, 255, 0) 42%),
    linear-gradient(90deg, rgba(1, 188, 214, .04), rgba(1, 188, 214, 0) 52%);
  pointer-events: none;
}

.board-head,
.board-chart,
.board-facts {
  position: relative;
  z-index: 1;
}

.board-head {
  display: grid;
  gap: 5px;
  margin-bottom: 7px;
  padding: 0 1px;
}

.board-head-title {
  color: var(--w-ink);
  font-size: 17px;
  font-weight: 950;
  line-height: 1.15;
  letter-spacing: -.01em;
}

.board-head-sub {
  max-width: 35em;
  color: var(--w-slate);
  font-size: 12px;
  font-weight: 760;
  line-height: 1.48;
  white-space: normal;
  text-wrap: pretty;
}

.board-chart {
  display: block;
  width: calc(100% + 22px);
  height: 166px;
  margin: 1px -11px 0;
  overflow: visible;
}

.welcome-overlay:not(.hidden) .board-line {
  --board-dash-start: 470;
  stroke-dasharray: 470;
  stroke-dashoffset: 470;
  animation: welcome-chart-draw 1.1s cubic-bezier(.16, 1, .3, 1) .35s both;
}

.welcome-overlay:not(.hidden) .board-line-next {
  --board-dash-start: 70;
  stroke-dasharray: 70;
  stroke-dashoffset: 70;
  animation: welcome-chart-draw .6s cubic-bezier(.16, 1, .3, 1) 1.05s both;
}

.board-fill {
  fill: url(#welcomeBoardFill);
}

.board-guides line {
  stroke: rgba(8, 127, 145, .12);
  stroke-width: 1;
  stroke-dasharray: 3 10;
}

.board-line-shadow {
  fill: none;
  stroke: rgba(8, 127, 145, .10);
  stroke-width: 6.5;
  stroke-linecap: round;
  filter: blur(.35px);
}

.board-line {
  fill: none;
  stroke: url(#welcomeBoardStroke);
  stroke-width: 3.35;
  stroke-linecap: round;
  filter: url(#welcomeLineGlow);
}

.board-line-next {
  fill: none;
  stroke: rgba(16, 40, 50, .22);
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-dasharray: 5 8;
}

.board-callout rect {
  fill: rgba(255, 255, 255, .88);
  stroke: rgba(183, 121, 5, .26);
  stroke-width: 1;
  filter: url(#welcomeDotLift);
}

.board-callout text {
  fill: var(--w-cyan-deep);
  font-size: 11px;
  font-weight: 950;
  text-anchor: middle;
  letter-spacing: 0;
}

.board-dots circle {
  fill: #ffffff;
  stroke: var(--w-cyan);
  stroke-width: 3;
  filter: url(#welcomeDotLift);
}

.board-dots .peak-halo {
  fill: rgba(183, 121, 5, .09);
  stroke: rgba(183, 121, 5, .14);
  stroke-width: 1;
  filter: none;
}

.board-dots .peak {
  stroke: var(--w-amber);
  stroke-width: 4;
  filter: url(#welcomeDotLift);
}

.board-dots .future {
  stroke: rgba(16, 40, 50, .18);
  filter: none;
}

.board-labels text {
  fill: var(--w-slate);
  font-size: 11px;
  font-weight: 900;
}

.board-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 4px;
  padding: 8px;
  border-radius: var(--r-sm);
  background: rgba(225, 246, 249, .62);
  border: 1px solid rgba(1, 188, 214, .12);
}

.board-facts span {
  min-width: 0;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  column-gap: 5px;
  align-items: start;
  padding: 7px 4px;
  border-radius: 11px;
  background: rgba(255, 255, 255, .72);
  border: 1px solid rgba(255, 255, 255, .82);
}

.board-fact-icon {
  grid-row: span 2;
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--w-cyan-deep);
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(16, 40, 50, .05);
}

.board-fact-icon svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.board-facts b,
.board-facts small {
  display: block;
  min-width: 0;
  overflow: visible;
  text-overflow: clip;
}

.board-facts b {
  color: var(--w-ink);
  font-size: 11px;
  font-weight: 950;
  line-height: 1.2;
  white-space: nowrap;
}

.board-facts small {
  margin-top: 3px;
  color: var(--w-muted);
  font-size: 10.5px;
  font-weight: 800;
  line-height: 1.3;
  white-space: normal;
}

.welcome-decisions {
  display: grid;
  gap: 9px;
  counter-reset: welcome-step;
}

.welcome-decisions-label {
  margin: 2px 1px 1px;
  color: var(--w-slate);
  font-size: 12px;
  font-weight: 900;
}

.decision-item {
  position: relative;
  counter-increment: welcome-step;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px 13px 12px 12px;
  border: 1px solid rgba(16, 40, 50, .10);
  border-radius: var(--r-sm);
  background: #ffffff;
  box-shadow: var(--sh-xs);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.decision-item::after {
  content: counter(welcome-step);
  position: absolute;
  right: 13px;
  top: 12px;
  color: rgba(16, 40, 50, .22);
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
}

.decision-item:nth-child(2) .decision-mark {
  color: #087f91;
  background: #ffffff;
  border-color: rgba(1, 188, 214, .26);
}

.decision-item:nth-child(3) .decision-mark {
  color: var(--w-amber);
  background: #ffffff;
  border-color: rgba(183, 121, 5, .24);
}

.decision-item:nth-child(4) .decision-mark {
  color: #0a7e8f;
  background: #ffffff;
  border-color: rgba(10, 126, 143, .22);
}

.decision-mark {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: var(--w-cyan-deep);
  background: #ffffff;
  border: 1px solid rgba(1, 188, 214, .22);
  box-shadow: 0 1px 2px rgba(16, 40, 50, .04);
}

.decision-mark svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.decision-item div {
  min-width: 0;
}

.decision-item strong {
  display: block;
  color: var(--w-ink);
  padding-right: 20px;
  font-size: 15px;
  font-weight: 950;
  line-height: 1.25;
  letter-spacing: -.008em;
}

.decision-item p {
  margin: 3px 0 0;
  color: var(--w-slate);
  font-size: 12.5px;
  font-weight: 750;
  line-height: 1.45;
}

.welcome-primary-cta {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: calc(14px + env(safe-area-inset-bottom));
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  min-height: 58px;
  padding: 0 22px;
  border: 0;
  border-radius: var(--r-sm);
  color: #ffffff;
  background: var(--grow);
  box-shadow: 0 13px 26px -12px rgba(1, 188, 214, .58);
  font-size: 16.5px;
  font-weight: 950;
  letter-spacing: 0;
  cursor: pointer;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.cta-label {
  position: relative;
  z-index: 1;
}

.cta-arrow {
  position: relative;
  z-index: 1;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  background: rgba(255, 255, 255, .18);
  transition: transform .18s ease;
}

.cta-arrow svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.welcome-primary-cta:hover {
  background: var(--grow-600);
  box-shadow: 0 13px 26px -12px rgba(1, 188, 214, .66);
}

.welcome-primary-cta:hover .cta-arrow {
  transform: translateX(2px);
}

.welcome-primary-cta:focus-visible {
  outline: 3px solid rgba(1, 188, 214, .28);
  outline-offset: 3px;
}

.welcome-primary-cta:active {
  transform: translateY(1px);
  box-shadow: 0 8px 18px -12px rgba(1, 188, 214, .54);
}

@media (max-width: 420px) {
  .welcome-home {
    gap: 14px;
    padding: calc(16px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom));
  }

  .welcome-primary-cta {
    left: 16px;
    right: 16px;
    min-height: 52px;
    font-size: 16px;
  }

  .welcome-hero {
    gap: 14px;
  }

  .welcome-hero h1 {
    margin-top: 10px;
    font-size: 26px;
    line-height: 1.2;
  }

  .welcome-subtitle {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.55;
  }

  .welcome-board {
    padding: 12px 12px 10px;
  }

  .board-head-sub {
    display: none;
  }

  .board-chart {
    height: 128px;
  }

  .board-facts b {
    font-size: 11px;
  }

  .welcome-decisions {
    gap: 7px;
  }

  .decision-item {
    padding: 10px 11px;
  }

  .decision-item p {
    font-size: 12px;
  }

  .welcome-overlay::after {
    height: 96px;
  }
}

@media (max-width: 380px) {
  .welcome-home {
    gap: 16px;
    padding-right: 16px;
    padding-left: 16px;
  }

  .welcome-primary-cta {
    left: 16px;
    right: 16px;
  }

  .welcome-hero h1 {
    font-size: 24px;
  }

  .welcome-subtitle {
    font-size: 13.5px;
  }

  .welcome-board {
    padding: 13px 12px 11px;
  }

  .board-chart {
    height: 120px;
  }

  .decision-item {
    padding: 11px;
  }
}

@media (max-width: 340px) {
  .welcome-hero h1 {
    font-size: 27px;
  }

  .board-facts {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .board-facts span {
    padding: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .welcome-overlay:not(.hidden) .welcome-home > *,
  .welcome-overlay:not(.hidden) .board-line,
  .welcome-overlay:not(.hidden) .board-line-next {
    animation: none;
  }

  .welcome-overlay:not(.hidden) .board-line,
  .welcome-overlay:not(.hidden) .board-line-next {
    stroke-dashoffset: 0;
  }

  .welcome-primary-cta,
  .decision-item,
  .welcome-primary-cta .cta-arrow {
    transition: none;
  }
}

/* ================= 家庭财务体检 v1.5 原型还原覆盖 ================= */
#famBody .screen {
  display: none;
  padding: 2px 0 26px;
  min-height: 600px;
  position: relative;
}
#famBody .screen.on {
  display: block;
  animation: rise .35s cubic-bezier(.2,.8,.2,1);
}
#famBody .pill,
#famBody button.pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink-soft);
  background: var(--surface-sink);
  padding: 4px 10px;
  border-radius: var(--pill);
  border: none;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: 0;
  line-height: 1.35;
  -webkit-appearance: none;
  appearance: none;
}
#famBody button.pill {
  transition: transform .12s, box-shadow .2s, background .2s;
}
#famBody button.pill:active {
  transform: translateY(1px);
}
#famBody .pill.cy {
  color: var(--grow-700);
  background: var(--grow-tint);
  border: 1px solid var(--grow-tint-2);
}
#famBody .pill.amb {
  color: var(--warn);
  background: var(--warn-tint);
  border: 1px solid var(--coral-tint-2);
}
#famBody .pill.rk {
  color: var(--risk);
  background: var(--risk-tint);
  border: 1px solid #f6cfc8;
}
#famBody button.pill[data-support-plan] {
  width: 100%;
  justify-content: center;
  min-height: 32px;
  padding: 6px 12px;
  font-size: 11.5px;
  box-shadow: var(--sh-xs);
}
#famBody button.pill[data-support-plan]:active {
  box-shadow: none;
}
#famBody .led-nav .pill {
  flex: 0 0 auto;
  min-width: 44px;
  justify-content: center;
  padding: 6px 10px;
  background: var(--surface);
  border: 1px solid var(--line-strong);
  box-shadow: var(--sh-xs);
}
.pips{display:inline-flex;gap:4px;vertical-align:middle}
.pip{width:18px;height:6px;border-radius:99px;background:var(--surface-sink);border:1px solid var(--line)}
.pip.on{background:var(--grow);border-color:transparent}
.meter-txt{font-size:11.5px;font-weight:800;color:var(--ink-soft)}
.sticky-meter{position:sticky;top:0;z-index:6;display:flex;align-items:center;gap:8px;margin:0 -2px 4px;padding:9px 2px;background:rgba(240,248,252,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.sticky-meter .skip{margin-left:auto;font-size:11.5px;font-weight:800;color:var(--muted);text-decoration:underline dotted}
.ccard .reason{font-size:12px;color:var(--muted);line-height:1.55;margin:0 0 10px}
.ccard .c-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ccard .c-idx{font-size:10.5px;font-weight:900;color:var(--grow-700);background:var(--grow-tint);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:2px 8px}
.ccard .c-name{font-weight:900;font-size:14.5px;letter-spacing:0}
.ccard .anchor{font-size:10.5px;color:var(--muted);line-height:1.55;margin-top:8px}
.ccard.done .c-body{display:none}
.ccard.done{padding:11px 15px;background:linear-gradient(160deg,var(--surface),var(--surface-soft))}
.done-pill{display:none;align-items:center;gap:7px;width:100%;text-align:left}
.ccard.done .done-pill{display:flex}
.done-pill .ck{width:18px;height:18px;border-radius:50%;background:var(--grow);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900;flex:0 0 auto}
.done-pill b{font-size:13px}
.done-pill .re{margin-left:auto;font-size:11px;font-weight:800;color:var(--grow-700)}
.pgroup{display:flex;flex-wrap:wrap;gap:7px;margin:4px 0}
.pg{padding:8px 12px;border-radius:var(--pill);border:1px solid var(--line-strong);background:var(--surface);font-size:12px;font-weight:800;color:var(--ink-soft);box-shadow:var(--sh-xs)}
.pg.on{background:var(--grow);color:#fff;border-color:transparent;box-shadow:0 10px 20px -13px rgba(1,188,214,.62)}
.pg.dim{border-style:dashed;color:var(--muted)}
.slider-row{margin:6px 0 2px}
.slider-val{display:flex;align-items:baseline;gap:6px;margin-bottom:2px}
.slider-val b{font-size:20px;font-family:var(--num);color:var(--grow-700)}
.slider-val span{font-size:11.5px;color:var(--muted);font-weight:800}
.amount-slider{margin:0;padding:12px 13px 8px;border-radius:var(--r-xs);background:linear-gradient(165deg,var(--surface-soft),var(--surface));border:1px solid var(--line);box-shadow:var(--sh-xs)}
.amount-slider-head{margin-bottom:10px}
.amount-slider-input-shell{display:flex;align-items:baseline;gap:8px;width:100%;padding:8px 14px;border-radius:var(--pill);border:1px solid var(--grow-tint-2);background:linear-gradient(165deg,var(--surface),var(--grow-tint));box-shadow:var(--sh-xs);cursor:text}
.amount-slider-input-shell:focus-within{border-color:var(--grow-300);box-shadow:0 0 0 1px rgba(1,188,214,.18),var(--sh-xs)}
.amount-slider-input{width:4.5rem;min-width:0;flex:0 0 auto;border:0;background:transparent;padding:0;font-family:var(--num);font-size:22px;font-weight:900;line-height:1;color:var(--grow-700);text-align:left;appearance:none;-webkit-appearance:none}
.amount-slider-input--wide{width:5.75rem}
.amount-slider-input:focus{outline:none}
.amount-slider-input::placeholder{color:var(--faint);font-weight:800}
.amount-slider-unit{margin-left:auto;font-size:11.5px;font-weight:800;color:var(--muted);white-space:nowrap;text-align:right}
.amount-slider-range{margin-top:2px}
.amount-slider-marks{position:relative;height:30px;margin-top:0}
.amount-slider-mark{position:absolute;top:0;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:800;color:var(--faint);white-space:nowrap;transform:translateX(-50%);transition:color .16s ease}
.amount-slider-mark.is-start{transform:none}
.amount-slider-mark.is-end{transform:translateX(-100%)}
.amount-slider-mark i{display:block;width:1px;height:6px;background:var(--line-strong)}
.amount-slider-mark em{font-style:normal;line-height:1.2}
.amount-slider-mark.on{color:var(--ink-soft)}
.lifestyle-picker{margin:0;display:grid;gap:10px}
.lifestyle-picker-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px;border-radius:var(--r-xs);background:var(--grow-tint);border:1px solid var(--grow-tint-2)}
.lifestyle-picker-seg{display:flex;align-items:center;justify-content:center;min-height:3.5rem;padding:6px 4px;border:0;border-radius:10px;background:transparent;color:var(--ink-soft);font:inherit;font-size:10.5px;font-weight:800;line-height:1.25;text-align:center;cursor:pointer;transition:background .18s ease,box-shadow .18s ease,color .18s ease}
.lifestyle-picker-seg.on{background:var(--surface);color:var(--grow-700);box-shadow:var(--sh-xs)}
.lifestyle-picker-detail{padding:12px 13px;border-radius:var(--r-xs);border:1px solid var(--grow-tint-2);background:linear-gradient(180deg,var(--grow-tint),var(--surface) 72%)}
.lifestyle-picker-scene{margin:0 0 10px;font-size:13px;font-weight:750;line-height:1.55;color:var(--grow-700);text-wrap:pretty}
.lifestyle-picker-anchors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.lifestyle-picker-anchor{display:grid;gap:3px;padding:8px 9px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.82);box-shadow:var(--sh-xs)}
.lifestyle-picker-anchor-label{font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--grow-700);text-transform:none}
.lifestyle-picker-anchor-text{font-size:11.5px;font-weight:750;line-height:1.45;color:var(--ink-soft)}
@media (max-width:380px){
  .lifestyle-picker-seg{font-size:10px;min-height:3.25rem}
  .lifestyle-picker-anchors{grid-template-columns:1fr}
}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent;margin:0}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:linear-gradient(90deg,var(--grow) var(--fill,40%),var(--surface-sink) var(--fill,40%));border:1px solid var(--line)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2.5px solid var(--grow);box-shadow:0 3px 8px rgba(1,188,214,.4);margin-top:-9px}
.tickline{display:flex;justify-content:space-between;font-size:10px;color:var(--faint);font-weight:800;margin-top:-2px}
.stepper{display:flex;align-items:center;gap:10px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--r-xs);padding:7px 10px}
.stepper .lb{font-size:12px;font-weight:800;color:var(--ink-soft);flex:1}
.stepper button{width:28px;height:28px;border-radius:50%;background:var(--grow-tint);color:var(--grow-700);font-weight:900;font-size:15px;border:1px solid var(--grow-tint-2)}
.stepper b{min-width:26px;text-align:center;font-family:var(--num);font-size:15px}
.asset-rate-block{margin:10px 0 2px;padding:10px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--r-xs)}
.asset-rate-title{font-size:11.5px;font-weight:900;color:var(--ink-soft);margin:0 0 7px}
.ccard .lens{position:static;top:auto;z-index:auto;margin:0;padding:0;background:transparent;border:0;box-shadow:none}
.ccard .lens .lt{display:none}
.ccard .lens-custom{margin:8px 0 0;padding:8px 10px;background:var(--surface);border-color:var(--line)}
.toast{position:fixed;left:50%;bottom:26px;z-index:60;width:min(352px,86vw);background:var(--ink);color:#fff;border-radius:var(--r-sm);padding:11px 14px;font-size:12px;line-height:1.55;font-weight:700;box-shadow:0 14px 34px -10px rgba(18,40,48,.5);opacity:0;transform:translate(-50%,14px);transition:opacity .2s,transform .2s;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast em{font-style:normal;color:var(--grow-300);font-family:var(--num)}
.vbadge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;border-radius:var(--pill);padding:5px 11px}
.vbadge.steady{color:var(--grow-700);background:var(--good-tint);border:1px solid var(--grow-tint-2)}
.vbadge.tight{color:var(--warn);background:var(--warn-tint);border:1px solid var(--coral-tint-2)}
.vbadge.risky{color:var(--risk);background:rgba(216,92,74,.08);border:1px solid rgba(216,92,74,.22)}
.sheet{position:absolute;inset:0;z-index:40;background:rgba(18,40,48,.45);display:flex;align-items:flex-end}
.sheet[hidden]{display:none}
.sheet-card{background:var(--surface);border-radius:22px 22px 0 0;padding:16px 16px 20px;width:100%;box-shadow:0 -12px 34px rgba(18,40,48,.3);animation:rise .25s cubic-bezier(.2,.8,.2,1)}
.scanwrap{display:flex;flex-direction:column;align-items:center;padding:54px 8px 30px;text-align:center}
.scan-title{font-size:19px;font-weight:900;letter-spacing:0;margin:16px 0 4px}
.scanlines{margin:18px 0 6px;display:grid;gap:11px;text-align:left}
.scanline{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:750;color:var(--faint);transition:color .4s}
.scanline .dot{width:9px;height:9px;border-radius:50%;background:var(--line-strong);flex:0 0 auto;transition:background .4s}
.scanline.lit{color:var(--ink-soft)}
.scanline.lit .dot{background:var(--grow)}

#scr-s4.s4-enter{animation:s4-enter .42s cubic-bezier(.16,1,.3,1)}
@keyframes s4-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  #scr-s4.s4-enter{animation:none}
}
.wave{width:120px;height:120px}
@keyframes flow{to{stroke-dashoffset:-160}}
.wave .w{stroke-dasharray:14 10;animation:flow 2.4s linear infinite}
.s1-hero{background:linear-gradient(168deg,var(--grow-tint) 0%,var(--surface) 52%,var(--surface-soft) 100%);border:1px solid var(--grow-tint-2);border-radius:var(--r);box-shadow:var(--sh);padding:20px 16px 16px;margin:8px 0 12px}
.s1-hero.tight{background:linear-gradient(168deg,var(--warn-tint) 0%,var(--surface) 55%,var(--surface-soft) 100%);border-color:var(--coral-tint-2)}
.s1-hero.risky{background:linear-gradient(168deg,var(--surface-sink) 0%,var(--surface) 55%,var(--surface-soft) 100%);border-color:var(--line-strong)}
.s1-hero .hk{font-size:11.5px;font-weight:850;color:var(--ink-soft);margin-bottom:7px}
.s1-hero .hhead{font-size:clamp(22px,6.2vw,26px);line-height:1.22;font-weight:900;letter-spacing:-.02em;margin:0;text-wrap:balance}
.s1-hero .hhead .key{color:var(--grow-700)}
.s1-hero.tight .hhead .key{color:var(--warn)}
.s1-hero.risky .hhead .key{color:var(--risk)}
.s1-hero .hstat{font-size:13px;font-weight:750;color:var(--ink-soft);line-height:1.65;margin:11px 0 0}
.s1-hero .hstat .num{color:var(--grow-700);font-weight:900;font-family:var(--num)}
.s1-hero .hfine{font-size:10.5px;color:var(--muted);margin-top:13px;line-height:1.6;padding-top:10px;border-top:1px dashed var(--line)}
.s1-hero .hfine u{cursor:pointer;color:var(--grow-700);text-underline-offset:2px}
.s1-aftercopy{margin:14px 0 0;padding:13px 14px;border-radius:var(--r-sm);background:var(--surface-soft);border:1px dashed var(--line-strong)}
.s1-aftercopy-lead{margin:0 0 9px;font-size:13.5px;font-weight:900;color:var(--ink);line-height:1.4;text-wrap:pretty}
.s1-aftercopy-flow{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.s1-aftercopy-flow span{font-size:12px;font-weight:800;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:var(--pill);padding:5px 10px;line-height:1.25}
.s1-aftercopy-tail{margin:0;font-size:13px;line-height:1.6;font-weight:750;color:var(--muted);text-wrap:pretty}
.s1-aftercopy-tail b{color:var(--grow-700);font-weight:900}
.s1-plan-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;padding:10px 14px;border-radius:var(--r-sm);border:1.5px solid var(--grow-tint-2);background:linear-gradient(165deg,var(--surface),var(--grow-tint));box-shadow:var(--sh-sm);cursor:pointer;font-family:inherit;text-align:left;transition:transform .12s,box-shadow .2s,border-color .2s}
.s1-plan-btn:active{transform:translateY(1px);box-shadow:var(--sh-xs)}
.s1-plan-btn--compact{min-height:0;margin-top:4px;padding:5px 6px;border-width:1px;border-color:var(--grow-tint-2);background:var(--surface);box-shadow:none;gap:6px}
.s1-plan-btn--compact .s1-plan-detail{font-size:10.5px;font-weight:800;color:var(--ink-soft);line-height:1.3;flex:1;min-width:0;text-align:left}
.s1-plan-btn--compact .s1-plan-action{font-size:10.5px;padding:3px 7px}
.s1-plan-main{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.s1-plan-label{font-size:11px;font-weight:900;color:var(--grow-700);letter-spacing:.01em}
.s1-plan-detail{font-size:13.5px;font-weight:800;color:var(--ink);line-height:1.35}
.s1-plan-detail b{font-size:15px;color:var(--grow-700)}
.s1-plan-action{flex:0 0 auto;font-size:13px;font-weight:900;color:var(--grow-700);background:var(--surface);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:5px 11px;line-height:1.35;white-space:nowrap}
.s1-cta{width:100%;margin-top:12px;font-size:15px;min-height:48px;box-shadow:0 12px 28px -14px rgba(1,188,214,.72)}
@media (max-width:380px){
  .s1-path-name{font-size:15px}
  .s1-sum-val b{font-size:20px}
  .s1-spend-summary .total .s1-sum-val b{font-size:22px}
  .s1-spend-col{flex-basis:46px}
  .s1-aftercopy-lead{font-size:13px}
  .s1-aftercopy-flow span{font-size:11.5px;padding:4px 8px}
  .s1-aftercopy-tail{font-size:12.5px}
}
.s1-spend-panel{border-radius:var(--r-sm);padding:14px 14px 13px;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--grow-tint-2);box-shadow:var(--sh-xs)}
.s1-path-head{display:flex;flex-direction:column;gap:6px;min-width:0}
.s1-path-name{font-size:16px;font-weight:900;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.s1-path-tag{display:inline-flex;align-self:flex-start;font-size:11px;font-weight:900;border-radius:var(--pill);padding:3px 9px;line-height:1.45}
.s1-path-tag.done{color:var(--grow-700);background:var(--good-tint);border:1px solid var(--grow-tint-2)}
.s1-spend-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
.s1-sum-cell{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:var(--grow-tint);border-radius:10px;text-align:center}
.s1-sum-cell.total{background:linear-gradient(165deg,var(--grow-tint),var(--surface));border:1px solid var(--grow-tint-2)}
.s1-sum-cell>small:first-child{font-size:10.5px;font-weight:800;color:var(--ink-soft);line-height:1.3}
.s1-sum-val{display:inline-flex;align-items:baseline;gap:2px;justify-content:center}
.s1-sum-val b{font-size:22px;line-height:1.05;color:var(--grow-700)}
.s1-sum-val small{font-size:12px;font-weight:900;color:var(--ink-soft);line-height:1}
.s1-spend-summary .total .s1-sum-val b{font-size:24px}
.s1-spend-chart{display:grid;gap:8px}
.s1-spend-chart-title{font-size:12.5px;font-weight:900;color:var(--ink-soft)}
.s1-spend-scroll{overflow-x:auto;overflow-y:hidden;margin:0 -2px;padding:0 2px 2px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--grow-tint-2) transparent}
.s1-spend-scroll::-webkit-scrollbar{height:4px}
.s1-spend-scroll::-webkit-scrollbar-thumb{background:var(--grow-tint-2);border-radius:99px}
.s1-spend-bars{display:flex;align-items:flex-end;gap:8px;width:max-content;min-width:100%;padding:4px 2px 0}
.s1-spend-col{flex:0 0 52px;display:flex;flex-direction:column;align-items:center;gap:5px}
.s1-bar-val{font-size:11px;font-weight:900;color:var(--ink);line-height:1}
.s1-bar-stack{width:34px;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:2px}
.s1-bar-stack i{display:block;border-radius:6px 6px 4px 4px;min-height:0}
.s1-bar-stack i.edu{background:linear-gradient(180deg,var(--grow-300),var(--grow))}
.s1-bar-stack i.support{background:linear-gradient(180deg,#F6C86B,var(--gold))}
.s1-bar-age{font-size:10.5px;font-weight:850;color:var(--muted);font-family:var(--num);line-height:1}
.s1-spend-legend{display:flex;gap:14px;font-size:11px;font-weight:800;color:var(--ink-soft)}
.s1-spend-legend span{display:inline-flex;align-items:center;gap:5px}
.s1-spend-legend i{width:10px;height:10px;border-radius:3px;flex:0 0 auto}
.s1-spend-legend i.edu{background:var(--grow)}
.s1-spend-legend i.support{background:var(--gold)}
.s1-spend-empty{margin:0;font-size:12px;font-weight:750;color:var(--muted);text-align:center;padding:16px 8px;background:var(--surface-sink);border-radius:10px}
.s1-ledger{margin:14px 0 0}
.lens{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--sh-sm);padding:9px 11px;margin:2px 0 8px;position:sticky;top:6px;z-index:7}
.lens .lt{font-size:11px;font-weight:900;color:var(--ink-soft);flex:0 0 auto;white-space:nowrap}
.lens .seg{display:flex;gap:4px;flex:1}
.lens .seg button{flex:1;min-height:32px;border-radius:9px;font-size:12.5px;font-weight:850;color:var(--ink-soft);background:var(--surface-sink);transition:background .18s,color .18s}
.lens .seg button.on{background:var(--grow);color:#fff;box-shadow:0 6px 14px -8px rgba(1,188,214,.6)}
.lens-custom{display:none;align-items:center;gap:10px;margin:0 0 8px;padding:9px 13px;background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r-sm)}
.lens-custom.show{display:flex}
.lens-custom input[type=range]{flex:1}
.lens-custom b{font-family:var(--num);font-size:14px;min-width:46px;text-align:right;color:var(--grow-700);flex:0 0 auto}
.lens-custom .aggr{display:none;font-size:9.5px;font-weight:900;color:var(--coral-600);background:var(--warn-tint);border:1px solid var(--coral-tint-2);border-radius:var(--pill);padding:3px 8px;flex:0 0 auto;white-space:nowrap}
.lens-custom .aggr.show{display:inline-flex}
.band-wrap{margin:20px 2px 10px;padding:16px 13px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--sh-sm);--band-visible:12;--band-gap:4px}
.band-title{display:flex;align-items:baseline;gap:8px;font-size:13.5px;font-weight:900;margin:0 2px 12px}
.band-title span{font-size:10.5px;color:var(--grow-700);font-weight:800;margin-left:auto;text-align:right;max-width:58%}
.band-scroll{container-type:inline-size;overflow-x:auto;overflow-y:hidden;margin:0 -1px 14px;padding:0 1px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--grow-tint-2) transparent}
.band-scroll::-webkit-scrollbar{height:4px}
.band-scroll::-webkit-scrollbar-track{background:transparent}
.band-scroll::-webkit-scrollbar-thumb{background:var(--grow-tint-2);border-radius:var(--pill)}
.diag-band{display:flex;gap:var(--band-gap);align-items:stretch;width:max-content;min-width:100%;padding:14px 1px 23px}
.band-scroll .db,.tail-band .db{flex:0 0 calc((100cqw - (var(--band-visible) - 1) * var(--band-gap)) / var(--band-visible));width:calc((100cqw - (var(--band-visible) - 1) * var(--band-gap)) / var(--band-visible));min-width:0}
.db{height:78px;border-radius:9px;border:0;position:relative;padding:0;cursor:pointer;background:linear-gradient(180deg,var(--grow-300),var(--grow-tint-2));transition:transform .15s,box-shadow .15s,filter .15s}
.db.green{background:linear-gradient(180deg,var(--grow-300),var(--grow-tint-2))}
.db.yellow{background:linear-gradient(180deg,#F6AA22,#F8CD7C)}
.db.red{background:linear-gradient(180deg,#DC6D5D,#EE9384)}
.db.support-yr.green{outline:1.5px solid rgba(134,218,230,.9);outline-offset:-1px}
.db.support-yr.yellow{outline:1.5px solid rgba(246,170,34,.85);outline-offset:-1px}
.db.support-yr.red{outline:1.5px solid rgba(220,109,93,.85);outline-offset:-1px}
.db-support-dot{position:absolute;top:-10px;left:50%;display:block;width:6px;height:6px;border-radius:50%;background:#01BCD6;box-shadow:0 0 0 2px var(--surface);transform:translateX(-50%);pointer-events:none;transition:transform .18s ease-out}
.db:hover.support-yr .db-support-dot,.db:focus-visible.support-yr .db-support-dot{transform:translateX(-50%) scale(1.12)}
@media (prefers-reduced-motion:reduce){.db-support-dot{transition:none}}
.db .yr{position:absolute;top:calc(100% + 9px);left:50%;transform:translateX(-50%);font-size:9px;font-weight:850;color:var(--muted);font-family:var(--num);white-space:nowrap;line-height:1}
.db.support-yr.green .yr{color:var(--grow-600);font-weight:900}
.db.support-yr.yellow .yr{color:var(--gold-600);font-weight:900}
.db.support-yr.red .yr{color:var(--risk);font-weight:900}
.band-legend{display:grid;grid-template-columns:1fr 1fr;gap:5px 16px;margin:28px 2px 0;font-size:10.5px;font-weight:800;color:var(--muted)}
.band-legend-col{display:grid;gap:5px;justify-items:start;text-align:left}
.band-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;vertical-align:-1px;margin-right:5px}
.band-legend .lg i{background:var(--grow-300)}
.band-legend .ly i{background:var(--gold)}
.band-legend .lr i{background:var(--risk)}
.band-legend .lm-support{display:inline-flex;align-items:center;gap:7px}
.band-legend .band-mark-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#01BCD6;flex:0 0 6px;vertical-align:-1px}
.tail-note{font-size:11px;color:var(--muted);font-weight:750;margin:14px 2px 0;padding-top:11px;border-top:1px dashed var(--line);line-height:1.65}
.tail-note-btn{width:100%;display:flex;align-items:flex-start;gap:8px;text-align:left;color:inherit;background:none;padding:0;font-size:inherit;font-weight:inherit;line-height:inherit}
.tail-note-btn>span{flex:1;min-width:0}
.tail-note-btn .tail-toggle-text{flex:0 0 auto;color:var(--grow-700);font-size:10.5px;font-weight:900;background:var(--grow-tint);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:1px 8px;line-height:1.5}
.tail-more{margin-top:14px;padding-top:1px}
.tail-more-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 1px 24px;font-size:11px;font-weight:900;color:var(--ink-soft)}
.tail-more-head b{font-family:var(--num);font-size:12px;color:var(--ink)}
.tail-more-head span{font-size:10px;color:var(--grow-700)}
.tail-scroll{margin:0 -2px;padding:0 2px 8px}
.tail-band{padding:14px 1px 23px;margin-bottom:0}
.split-card{margin:14px 2px 6px;padding:15px 14px 13px;background:linear-gradient(165deg,var(--grow-tint),var(--surface) 70%);border:1px solid var(--grow-tint-2);border-radius:var(--r-sm);box-shadow:var(--sh-sm)}
.split-head{display:flex;align-items:baseline;gap:8px;font-size:13.5px;font-weight:900;margin-bottom:12px}
.split-head .vfy{margin-left:auto;font-size:9.5px;font-weight:900;color:var(--grow-700);background:var(--surface);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:3px 8px;white-space:nowrap}
.split-bar{display:flex;height:30px;border-radius:9px;overflow:hidden;gap:2px}
.split-bar .free{background:linear-gradient(180deg,var(--grow),var(--grow-600));border-radius:9px 3px 3px 9px}
.split-bar .hold{background:linear-gradient(180deg,var(--gold),#f0b45a);border-radius:3px 9px 9px 3px}
.split-labels{display:flex;justify-content:space-between;margin:7px 1px 0;font-size:12px;font-weight:850;color:var(--ink-soft)}
.split-labels b{font-family:var(--num);font-size:14px}
.split-labels .fl{color:var(--grow-700)}
.split-labels .hl{color:var(--coral-600)}
.split-def{font-size:11.5px;line-height:1.6;font-weight:750;color:var(--ink-soft);margin:9px 0 0}
.split-def b{color:var(--grow-700)}
.use-simple{margin-top:12px;padding:10px 11px;border-radius:var(--r-xs);background:rgba(255,255,255,.78);border:1px solid var(--line);box-shadow:var(--sh-xs)}
.use-simple-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:12px;font-weight:900;color:var(--ink)}
.use-simple-head b{flex:0 0 auto;font-family:var(--num);font-size:13px;color:var(--coral-600)}
.use-simple-row{width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);gap:1px 8px;text-align:left;padding:8px 0;border-top:1px dashed var(--line);color:var(--ink-soft)}
.use-simple-row[hidden]{display:none!important}
.use-simple-row b{grid-row:1 / span 2;font-family:var(--num);font-size:12px;font-weight:900;color:var(--coral-600);line-height:1.45;white-space:nowrap}
.use-simple-row span{font-size:12px;font-weight:900;line-height:1.35;color:var(--ink)}
.use-simple-row em{font-size:10.5px;font-style:normal;font-weight:750;line-height:1.45;color:var(--muted)}
.use-simple-more{width:100%;margin:7px 0 0;padding:7px 10px;border-top:1px dashed var(--line);border-radius:var(--pill);color:var(--grow-700);background:var(--grow-tint);font-size:11px;font-weight:900;text-align:center}
.use-simple-note{margin-top:7px;padding-top:7px;border-top:1px dashed var(--line);font-size:11px;line-height:1.5;font-weight:800;color:var(--ink-soft)}
.use-simple.empty .use-simple-head{margin-bottom:0}
.tool-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}
.tool-chips button{font-size:11px;font-weight:850;color:var(--grow-700);background:var(--surface);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:6px 11px;cursor:pointer}
.tp{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-sm);padding:13px 15px;margin:10px 0}
.tp[hidden]{display:none!important}
.tp.red{border-color:#f3c1b8;background:linear-gradient(165deg,var(--risk-tint),var(--surface) 62%)}
.tp.yellow{border-color:var(--coral-tint-2);background:linear-gradient(165deg,var(--warn-tint),var(--surface) 62%)}
.tp.anchor{border-color:var(--grow-tint-2);background:linear-gradient(165deg,var(--grow-tint),var(--surface) 66%)}
.tp .tph{display:flex;align-items:center;gap:9px}
.tp .tpy{font-family:var(--num);font-weight:900;font-size:17px;letter-spacing:0}
.tp.red .tpy{color:var(--risk)}
.tp.yellow .tpy{color:var(--coral-600)}
.tp.anchor .tpy{color:var(--grow-700)}
.tp .tpv{font-size:13px;font-weight:900}
.tp .tpr{margin-left:auto;font-size:10.5px;color:var(--grow-700);font-weight:800;flex:0 0 auto;background:var(--grow-tint);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:4px 10px}
.tp .tpl{font-size:12.5px;line-height:1.7;color:var(--ink-soft);font-weight:700;margin:7px 0 0}
.tp-more{width:100%;margin:8px 0 4px;padding:9px 12px;border-radius:var(--pill);background:var(--surface);border:1px dashed var(--grow-tint-2);color:var(--grow-700);font-size:11.5px;font-weight:900}
.s4-narrative{--risk-700:#b34433;--risk-tint:#FBEAE7;--risk-tint-2:#F6D5CF;max-width:404px;margin:0 auto 18px;color:var(--ink);font-family:-apple-system,"PingFang SC","Source Han Sans SC",sans-serif;line-height:1.7;font-size:14.5px}
.s4-narrative b,.s4-narrative strong{font-weight:800}
.s4-narrative .num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.s4-narrative .opening{padding:44px 4px 8px}
.s4-narrative .opening .who{font-size:12.5px;color:var(--grow-700);font-weight:800;margin-bottom:10px}
.s4-narrative .opening h1{margin:0;font-size:24px;line-height:1.45;font-weight:900;letter-spacing:-.01em;text-wrap:balance}
.s4-narrative .opening h1 em{font-style:normal;color:var(--grow-600)}
.s4-narrative .opening .lede{margin:14px 0 0;font-size:14px;color:var(--ink-soft);font-weight:600}
.s4-narrative .opening .lede b{color:var(--ink)}
.s4-narrative .toc{margin:26px 0 8px;display:grid;gap:0;border-top:1px solid var(--line-strong)}
.s4-narrative .toc a{display:flex;align-items:center;gap:12px;padding:15px 4px;border-bottom:1px solid var(--line-strong);text-decoration:none;color:var(--ink)}
.s4-narrative .toc .dot{width:10px;height:10px;border-radius:50%;flex:none}
.s4-narrative .dot.ok{background:var(--grow)}
.s4-narrative .dot.warn{background:var(--coral)}
.s4-narrative .dot.bad{background:var(--risk)}
.s4-narrative .toc .q{font-size:13px;color:var(--muted);font-weight:700;width:74px;flex:none}
.s4-narrative .toc .a{font-size:14.5px;font-weight:800;flex:1}
.s4-narrative .toc .go{color:var(--faint);font-weight:700}
.s4-narrative .journey{position:relative;margin:34px 0 0;display:block;padding:0}
.s4-narrative .journey::before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--grow-tint-2)}
.s4-narrative .stop{position:relative;padding:0 0 46px 32px}
.s4-narrative .stop::before{content:"";position:absolute;left:0;top:6px;width:16px;height:16px;border-radius:50%;background:var(--surface);border:4px solid var(--grow);box-shadow:0 0 0 4px var(--paper)}
.s4-narrative .stop.alarm::before{border-color:var(--risk)}
.s4-narrative .turn-label{display:none}
.s4-narrative .stop .when{font-size:12.5px;font-weight:900;color:var(--grow-700);letter-spacing:.02em}
.s4-narrative .stop.alarm .when{color:var(--risk-700)}
.s4-narrative .stop h2{font-size:19px;font-weight:900;margin:6px 0 10px;letter-spacing:-.01em;line-height:1.3;text-wrap:balance}
.s4-narrative .stop .talk{margin:0;font-size:14px;color:var(--ink-soft);font-weight:600}
.s4-narrative .stop .talk b{color:var(--ink)}
.s4-narrative .fx{opacity:1;transform:none;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1)}
.s4-narrative .fx.pre{opacity:0;transform:translateY(14px)}
.s4-narrative .stamp{display:inline-flex;align-items:center;gap:8px;margin:14px 0 4px;padding:9px 16px;border-radius:999px;font-weight:900;font-size:15px}
.s4-narrative .stamp.ok{background:var(--grow-tint);color:var(--grow-700);border:1.5px solid var(--grow-tint-2)}
.s4-narrative .stamp.warn{background:var(--coral-tint);color:var(--coral-600);border:1.5px solid #F5E3B8}
.s4-narrative .stamp.bad{background:var(--risk-tint);color:var(--risk-700);border:1.5px solid var(--risk-tint-2)}
.s4-narrative .moment{margin:16px 0 6px}
.s4-narrative .moment .big{font-size:40px;font-weight:900;letter-spacing:-.02em;line-height:1.1}
.s4-narrative .moment .big small{font-size:17px;font-weight:800;margin-left:2px}
.s4-narrative .moment .under{font-size:13px;color:var(--muted);font-weight:700;margin-top:2px}
.s4-narrative .moment.danger .big{color:var(--risk)}
.s4-narrative .moment.calm .big{color:var(--grow-700)}
.s4-narrative .peek{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(10,75,86,.08);overflow:hidden}
.s4-narrative .peek summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:13px 16px;font-size:13.5px;font-weight:800;color:var(--grow-700)}
.s4-narrative .peek summary::-webkit-details-marker{display:none}
.s4-narrative .peek summary .chev{transition:transform .25s ease-out}
.s4-narrative .peek[open] summary .chev{transform:rotate(90deg)}
.s4-narrative .wallet{padding:4px 16px 14px;border-top:1px dashed var(--line-strong)}
.s4-narrative .wallet .wy{font-size:12.5px;color:var(--muted);font-weight:800;padding:10px 0 6px}
.s4-narrative .w-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--surface-soft);font-size:14px;font-weight:700;color:var(--ink-soft)}
.s4-narrative .w-row:last-of-type{border-bottom:none}
.s4-narrative .w-row b{font-size:15px;white-space:nowrap}
.s4-narrative .w-row .pos{color:var(--grow-700)}
.s4-narrative .w-row .neg{color:var(--ink)}
.s4-narrative .w-row.hot .neg{color:var(--risk)}
.s4-narrative .w-row.hot span{color:var(--risk-700);font-weight:800}
.s4-narrative .w-foot{font-size:12.5px;color:var(--muted);font-weight:700;padding-top:9px}
.s4-narrative .kidline{margin:16px 0 4px;display:grid;gap:0}
.s4-narrative .kidstop{display:flex;gap:12px;padding:10px 0}
.s4-narrative .kidstop .age{flex:none;width:58px;text-align:center;align-self:flex-start;background:var(--grow-tint);color:var(--grow-700);font-weight:900;font-size:13px;border-radius:10px;padding:6px 0}
.s4-narrative .kidstop.dim .age{background:var(--surface-sink);color:var(--muted)}
.s4-narrative .kidstop .what{flex:1;font-size:13.5px;font-weight:600;color:var(--ink-soft)}
.s4-narrative .kidstop .what b{display:block;font-size:14.5px;color:var(--ink)}
.s4-narrative .kidstop .tag{display:inline-block;font-size:12px;font-weight:800;border-radius:999px;padding:1px 9px;margin-left:6px;vertical-align:1px}
.s4-narrative .tag.t-rough{background:var(--coral-tint);color:var(--coral-600)}
.s4-narrative .tag.t-stand{background:var(--grow-tint);color:var(--grow-700)}
.s4-narrative .tag.t-good{background:var(--grow-tint-2);color:var(--grow-700)}
.s4-narrative .futures{margin:16px 0 4px;display:grid;gap:10px}
.s4-narrative .future{border-radius:18px;padding:15px 16px;border:1.5px solid var(--line)}
.s4-narrative .future .f-if{font-size:12.5px;font-weight:900;letter-spacing:.02em}
.s4-narrative .future .f-then{font-size:15.5px;font-weight:850;margin-top:3px}
.s4-narrative .future.red{background:var(--risk-tint);border-color:var(--risk-tint-2)}
.s4-narrative .future.red .f-if,.s4-narrative .future.red .f-then{color:var(--risk-700)}
.s4-narrative .future.green{background:var(--grow-tint);border-color:var(--grow-tint-2)}
.s4-narrative .future.green .f-if,.s4-narrative .future.green .f-then{color:var(--grow-700)}
.s4-narrative .futures .so{font-size:14px;font-weight:800;color:var(--ink);padding:2px 2px 0;margin:0}
.s4-narrative .pockets{margin:16px 0 4px;display:grid;gap:10px}
.s4-narrative .pocket{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 28px rgba(10,75,86,.08);padding:14px 16px;display:flex;align-items:center;gap:13px}
.s4-narrative .pocket .pk-ico{flex:none;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-size:20px}
.s4-narrative .pocket.sure .pk-ico{background:var(--grow-tint)}
.s4-narrative .pocket.maybe .pk-ico{background:var(--coral-tint)}
.s4-narrative .pocket .pk-t{flex:1}
.s4-narrative .pocket .pk-amt{font-size:19px;font-weight:900}
.s4-narrative .pocket .pk-amt small{font-size:13px;font-weight:800}
.s4-narrative .pocket .pk-note{font-size:12.5px;font-weight:700;margin-top:1px}
.s4-narrative .pocket.sure .pk-note{color:var(--grow-700)}
.s4-narrative .pocket.maybe .pk-note{color:var(--coral-600)}
.s4-narrative .pocket-sum{padding:4px 4px 0;font-size:14px;font-weight:700;color:var(--ink-soft);margin:0}
.s4-narrative .pocket-sum b{color:var(--ink)}
.s4-narrative .ways{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px}
.s4-narrative .way{border:1.5px solid var(--grow-tint-2);background:var(--surface);color:var(--grow-700);font-weight:800;font-size:13px;border-radius:999px;padding:8px 14px}
.s4-narrative .cta{display:block;width:100%;margin:22px 0 0;background:var(--grow);color:#fff;font-size:16px;font-weight:900;border:none;border-radius:16px;padding:16px;box-shadow:0 12px 26px rgba(1,188,214,.32)}
.s4-narrative .fine{font-size:12px;color:var(--muted);font-weight:600;text-align:center;margin:10px 0 0}
.s4-narrative .hook{margin:18px 0 0;font-size:14px;font-weight:800;color:var(--ink)}
.s4-narrative .hook::after{content:" ↓";color:var(--grow-600)}
.s4-narrative .ending{text-align:center;padding:36px 10px 0;color:var(--muted);font-size:13px;font-weight:700;margin:0}
.s4-narrative .ending b{color:var(--ink-soft)}
@media (prefers-reduced-motion:reduce){.s4-narrative .fx,.s4-narrative .fx.pre{opacity:1;transform:none;transition:none}.s4-narrative .peek summary .chev{transition:none}}

.s4-narrative.s4-awesome{--s4-teal:#01BCD6;--s4-teal-rgb:1,188,214;--s4-amber:#FF9900;--s4-yellow-rgb:255,210,72;--s4-ink:#202020;--s4-muted:#76888f;--s4-paper:#fff;--s4-hairline:0 0 0 .5px rgba(16,40,48,.08);--s4-soft-shadow:0 14px 30px -24px rgba(16,40,48,.36),var(--s4-hairline);--s4-card-shadow:0 12px 24px -22px rgba(16,40,48,.30),var(--s4-hairline);width:100%;max-width:none;margin:0 0 18px;display:block;color:var(--s4-ink);font-size:14px;line-height:1.7}
.s4-awesome-journey{position:relative;margin:0;padding:0}
.s4-awesome-stop-hero{position:relative;padding:0 0 14px}
.s4-awesome-stop-hero .s4-awesome-stop-label{margin:0 0 12px;color:#00899c;font-size:12.5px;font-weight:950;line-height:1.2;letter-spacing:.03em}
.s4-awesome-evidence-rail{--s4-rail-indent:32px;--s4-rail-line-x:11px;position:relative;padding-left:var(--s4-rail-indent)}
.s4-awesome-evidence-rail::before{content:"";position:absolute;left:calc(var(--s4-rail-line-x) - 1px);top:0;bottom:16px;width:2px;background:rgba(var(--s4-teal-rgb),.20);z-index:0}
.s4-awesome-evidence-rail .s4-awesome-stop{overflow:visible}
.s4-awesome-stop{position:relative;padding:0}
.s4-awesome-stop::before{content:"";position:absolute;left:calc(var(--s4-rail-line-x) - var(--s4-rail-indent));top:30px;width:12px;height:12px;border-radius:50%;background:var(--s4-paper);border:3px solid var(--s4-teal);box-shadow:0 0 0 2px var(--paper,#f0f8fc);transform:translate(-50%,-50%);z-index:1}
.s4-awesome-stop.alarm::before{border-color:var(--s4-amber)}
.s4-awesome-journey-bridge{margin:0 0 14px;padding:0;color:var(--s4-muted);font-size:12px;font-weight:850;line-height:1.45}
.s4-narrative.s4-awesome > .s4-awesome-chapter{margin-top:18px}
.s4-awesome *{box-sizing:border-box}
.s4-awesome a{color:inherit;text-decoration:none}
.s4-awesome strong{font-weight:950;color:var(--s4-ink)}
.s4-awesome-hero,.s4-awesome-chapter{position:relative;overflow:hidden;border-radius:24px;background:var(--s4-paper);box-shadow:var(--s4-soft-shadow)}
.s4-awesome-hero{
  padding:20px 16px 18px;
  background:linear-gradient(180deg, #dff5f9 0%, #f4fbfd 22%, #fff 48%);
}
.s4-awesome-chapter{padding:22px 18px}
.s4-awesome-chapter.s4-awesome-tone{background:radial-gradient(circle at 88% 8%,rgba(var(--s4-teal-rgb),.12),transparent 34%),linear-gradient(160deg,var(--s4-paper) 0%,var(--s4-paper) 58%,rgba(var(--s4-teal-rgb),.07) 100%)}
.s4-awesome-chapter.s4-awesome-danger{background:radial-gradient(circle at 88% 10%,rgba(var(--s4-yellow-rgb),.16),transparent 34%),radial-gradient(circle at 88% 90%,rgba(var(--s4-yellow-rgb),.16),transparent 34%),var(--s4-paper)}
.s4-awesome-hero-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid rgba(16,40,48,.08)}
.s4-awesome-hero-tag{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--s4-ink);font-size:13px;font-weight:950;line-height:1.2}
.s4-awesome-hero-tag::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--s4-teal);box-shadow:0 0 0 5px rgba(var(--s4-teal-rgb),.10)}
.s4-awesome-hero-source{flex:0 0 auto;padding:5px 10px;border-radius:999px;background:rgba(var(--s4-teal-rgb),.08);color:#00899c;font-size:12px;font-weight:850;line-height:1.2;white-space:nowrap}
.s4-awesome-hero-head,.s4-awesome-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.s4-awesome-head{margin:0 0 14px}
.s4-awesome-label{display:inline-flex;align-items:center;gap:8px;color:#00899c;font-size:14px;font-weight:950;line-height:1.2}
.s4-awesome-label i{width:10px;height:10px;border-radius:50%;background:var(--s4-teal);box-shadow:0 0 0 6px rgba(var(--s4-teal-rgb),.10)}
.s4-awesome-chip,.s4-awesome-badge{flex:0 0 auto;padding:6px 11px;border-radius:999px;background:rgba(var(--s4-teal-rgb),.10);color:#00899c;font-size:12px;font-weight:950;line-height:1.2;white-space:nowrap;box-shadow:0 0 0 .5px rgba(var(--s4-teal-rgb),.16)}
.s4-awesome-badge.amber{background:rgba(var(--s4-yellow-rgb),.18);color:#a25f00;box-shadow:0 0 0 .5px rgba(162,95,0,.12)}
.s4-awesome-hero-copy{margin:0;max-width:27em;color:var(--s4-ink);font-size:20px;line-height:1.62;font-weight:880;letter-spacing:-.018em;text-wrap:pretty}
.s4-awesome-hero-brief{display:block}
.s4-awesome-hero-brief-inner{margin:0}
.s4-awesome-hero .s4-action-para{color:#2f3a40;font-size:14.5px;font-weight:700;line-height:1.68}
.s4-awesome-hero .s4-action-para .s4-action-key,.s4-awesome-hero .s4-action-para .s4-action-em{font-weight:850}
.s4-awesome-hero-copy.warn{color:#172b31}
.s4-awesome-hero-copy.steady{color:#0d4650}
.s4-awesome-hero-brief--segments{display:block}
.s4-awesome-hero-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.s4-awesome-hero-item{display:flex;align-items:flex-start;gap:10px;margin:0;padding:10px 11px;border-radius:16px;background:rgba(255,255,255,.72);color:var(--s4-ink);font-size:clamp(15px,3.8vw,17px);line-height:1.42;font-weight:930;letter-spacing:-.01em;text-wrap:pretty;box-shadow:var(--s4-hairline)}
.s4-awesome-hero-item.ok{color:#00899c;background:rgba(var(--s4-teal-rgb),.055)}
.s4-awesome-hero-item.steady{background:rgba(255,255,255,.86)}
.s4-awesome-hero-item.warn{background:rgba(var(--s4-yellow-rgb),.16)}
.s4-awesome-hero-mark{flex:0 0 auto;width:22px;height:22px;margin-top:1px;display:grid;place-items:center;border-radius:50%;font-size:12px;font-weight:950;line-height:1}
.s4-awesome-hero-mark.ok{background:rgba(var(--s4-teal-rgb),.12);color:#00899c}
.s4-awesome-hero-mark.warn{background:rgba(var(--s4-yellow-rgb),.24);color:#a25f00}
.s4-awesome-hero-mark.steady{background:rgba(var(--s4-teal-rgb),.10);color:#00899c;font-size:13px}
.s4-awesome-hero-key{font-weight:950;color:#9b5a00}
.s4-awesome-hero-copy.steady .s4-awesome-hero-key,.s4-awesome-hero-item.steady .s4-awesome-hero-key,.s4-awesome-hero-item.ok .s4-awesome-hero-key{color:#00899c}
.s4-awesome-context{margin:0 0 11px;padding:10px 12px;border-radius:15px;background:rgba(255,255,255,.68);color:var(--s4-muted);font-size:12px;line-height:1.62;font-weight:780;box-shadow:var(--s4-hairline)}
.s4-awesome-context strong{color:var(--s4-muted)}
.s4-awesome-conclusions,.s4-awesome-flow{display:grid;gap:14px}
.s4-awesome-flow{gap:14px}
.s4-awesome-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:start;padding:12px;border-radius:17px;background:rgba(255,255,255,.82);box-shadow:var(--s4-card-shadow)}
.s4-awesome-index{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(var(--s4-teal-rgb),.08);color:#00899c;font-size:13px;font-weight:950}
.s4-awesome-row b{display:block;margin:0 0 3px;font-size:15px;line-height:1.28;font-weight:950;color:var(--s4-ink)}
.s4-awesome-row em{display:block;font-style:normal;font-size:12.5px;line-height:1.55;font-weight:850;color:#00899c}
.s4-awesome-giving-combined .s4-awesome-giving-part-divider{height:1px;margin:22px 0 20px;background:rgba(16,40,48,.10)}
.s4-awesome-giving-combined .s4-awesome-giving-part-divider--teal{height:1px;margin:22px 0 20px;background:rgba(16,40,48,.08)}
.s4-awesome-giving-combined .s4-awesome-risk-inner h2,.s4-awesome-giving-combined .s4-awesome-safe-inner h2{margin-top:0}
.s4-awesome-giving-combined .s4-awesome-giving-main h2{margin-top:0}
.s4-awesome-giving-combined .s4-awesome-compare>div{background:rgba(var(--s4-teal-rgb),.08);box-shadow:var(--s4-hairline)}
.s4-awesome-giving-combined .s4-awesome-compare b{color:#01BCD6}
.s4-awesome-meta{flex:1;min-width:0;margin:0;color:var(--s4-muted);font-size:12.5px;font-weight:850;line-height:1.35}
.s4-awesome-chapter h2{margin:0 0 12px;font-size:clamp(20px,4.8vw,23px);line-height:1.18;font-weight:950;letter-spacing:-.01em;text-wrap:balance}
.s4-awesome-chapter p{margin:0 0 14px;color:#3f535c;font-size:14px;line-height:1.68;font-weight:780;text-wrap:pretty}
.s4-action-brief{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:0 3px;margin:0 0 22px;padding:0;border-radius:0;background:none;box-shadow:none;font-family:"Songti SC","Noto Serif SC","STSong","SimSun",Georgia,serif}
.s4-awesome-chapter h2+.s4-action-brief,.s4-awesome-chapter h2+.s4-action-copy-fallback{padding-top:20px}
.s4-action-brief--alert,.s4-action-brief--warn,.s4-action-brief--shift,.s4-action-brief--steady{background:none;box-shadow:none}
.s4-action-quote-mark{color:var(--s4-teal);font-size:18px;font-weight:600;line-height:1.15;font-family:Georgia,"Times New Roman",serif}
.s4-action-quote-mark--open{align-self:start;padding-top:2px}
.s4-action-quote-mark--close{align-self:end;padding-bottom:1px}
.s4-action-lines{display:block;min-width:0;padding:1px 0 0}
.s4-action-para{margin:0;padding:0;color:#3d464c;font-size:14px;line-height:1.65;font-weight:500;letter-spacing:.02em;text-wrap:pretty}
.s4-action-para+.s4-action-para{margin-top:10px}
.s4-action-para--loading{color:var(--s4-muted);font-weight:600;font-style:normal}
.s4-action-para--error{color:#b34433;font-weight:700}
.s4-action-para .s4-action-key{font-family:var(--num);color:var(--s4-teal);font-weight:800;font-feature-settings:"tnum" 1}
.s4-action-para .s4-action-em{color:var(--s4-teal);font-weight:700}
.s4-action-probe{color:var(--s4-teal);font-weight:700}
.s4-action-copy-fallback{margin:0 0 22px;color:#3d464c;font-size:14px;line-height:1.4;font-weight:500;font-family:"Songti SC","Noto Serif SC","STSong","SimSun",Georgia,serif;letter-spacing:.02em;text-wrap:pretty}
.s4-action-copy-fallback .s4-action-quote-mark{color:var(--s4-teal)}
.s4-action-copy-fallback .s4-action-key{font-family:var(--num);color:var(--s4-teal);font-weight:800;font-feature-settings:"tnum" 1}
.s4-action-copy-fallback .s4-action-em{color:var(--s4-teal);font-weight:700}
.s4-awesome-pullquote{margin:32px 0 0;padding:0}
.s4-awesome-pullquote em{display:block;font-style:normal;font-size:12.5px;line-height:1.55;font-weight:850;color:#00899c}
.s4-awesome-evidence{margin:16px 0 0;overflow:hidden;border-radius:16px;background:rgba(255,255,255,.92);box-shadow:var(--s4-hairline)}
.s4-awesome-evidence summary{list-style:none;cursor:pointer;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;color:var(--s4-ink);font-size:13.5px;font-weight:950}
.s4-awesome-evidence summary::-webkit-details-marker{display:none}
.s4-awesome-evidence-head{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.s4-awesome-evidence-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:rgba(var(--s4-teal-rgb),.10);color:#00899c;font-size:11px;font-weight:950;line-height:1.2;white-space:nowrap;font-family:-apple-system,"PingFang SC","Source Han Sans SC",sans-serif}
.s4-awesome-evidence-text{flex:1;min-width:0;color:#40555e;font-family:-apple-system,"PingFang SC","Source Han Sans SC",sans-serif;font-size:13.5px;font-weight:850;line-height:1.45}
.s4-awesome-evidence-toggle{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:rgba(var(--s4-teal-rgb),.10);color:#00899c;transition:background .18s ease}
.s4-awesome-evidence-toggle::before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .18s ease}
.s4-awesome-evidence[open] .s4-awesome-evidence-toggle{background:rgba(var(--s4-teal-rgb),.16)}
.s4-awesome-evidence[open] .s4-awesome-evidence-toggle::before{transform:rotate(-135deg) translateY(1px)}
.s4-awesome-ledger{padding:0 15px 14px}
.s4-awesome-ledger-rows{padding-top:2px;border-top:1px dashed rgba(16,40,48,.10)}
.s4-awesome-ledger-year{padding:10px 0 6px;color:var(--s4-muted);font-size:12px;font-weight:950;line-height:1.4}
.s4-awesome-ledger-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid rgba(16,40,48,.055);color:#40555e;font-size:13px;font-weight:850;line-height:1.35}
.s4-awesome-ledger-row span{min-width:0}
.s4-awesome-ledger-row b{flex:0 0 auto;font-size:14px;font-weight:950;white-space:nowrap}
.s4-awesome-ledger-row .pos{color:#00899c}
.s4-awesome-ledger-row .neg{color:var(--s4-ink)}
.s4-awesome-ledger-row.hot span,.s4-awesome-ledger-row.hot .neg{color:#b34433}
.s4-awesome-ledger-foot{padding-top:9px;color:var(--s4-muted);font-size:12px;font-weight:800;line-height:1.55}
.s4-awesome-kid-path,.s4-awesome-compare,.s4-awesome-safe-money{display:grid;gap:9px;margin-top:18px}
.s4-awesome-independent-card{display:grid;gap:12px;margin-top:4px}
.s4-awesome-independent-block{min-width:0;padding:13px;border-radius:18px;background:rgba(var(--s4-teal-rgb),.06);box-shadow:var(--s4-hairline)}
.s4-awesome-independent-block.home{background:rgba(255,255,255,.88)}
.s4-awesome-independent-block.home.alarm{background:rgba(var(--s4-yellow-rgb),.15)}
.s4-awesome-independent-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}
.s4-awesome-independent-title span{color:var(--s4-ink);font-size:15px;font-weight:950;line-height:1.2}
.s4-awesome-independent-title b{flex:0 0 auto;padding:4px 9px;border-radius:999px;background:#fff;color:#00899c;font-size:11px;font-weight:950;line-height:1.2;box-shadow:var(--s4-hairline)}
.s4-awesome-independent-block.home.alarm .s4-awesome-independent-title b{color:#a25f00}
.s4-awesome-independent-block .s4-awesome-kid-path{margin-top:12px}
.s4-awesome-home-meter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:11px}
.s4-awesome-home-meter>div{min-width:0;padding:10px 8px;border-radius:14px;background:rgba(255,255,255,.78);box-shadow:var(--s4-hairline);text-align:center}
.s4-awesome-home-meter span{display:block;margin-bottom:4px;color:var(--s4-muted);font-size:11px;font-weight:900;line-height:1.2}
.s4-awesome-home-meter b{display:block;color:var(--s4-ink);font-size:14px;font-weight:950;line-height:1.2;white-space:nowrap}
.s4-awesome-kid-row{display:grid;grid-template-columns:66px minmax(0,1fr);gap:11px;align-items:stretch}
.s4-awesome-kid-row>span{display:grid;place-items:center;min-height:74px;border-radius:16px;background:rgba(var(--s4-teal-rgb),.07);color:var(--s4-ink);font-size:16px;font-weight:950}
.s4-awesome-kid-row>div,.s4-awesome-compare>div,.s4-awesome-safe-money>div{min-width:0;padding:12px 13px;border-radius:16px;background:rgba(255,255,255,.86);box-shadow:var(--s4-card-shadow)}
.s4-awesome-kid-row b,.s4-awesome-compare b{display:block;margin-bottom:4px;font-size:15px;line-height:1.28;font-weight:950}
.s4-awesome-kid-row i{display:inline-flex;margin-left:5px;vertical-align:1px;padding:2px 7px;border-radius:999px;background:rgba(var(--s4-teal-rgb),.10);color:#00899c;font-style:normal;font-size:11px;font-weight:950}
.s4-awesome-kid-row:first-child i{background:rgba(255,153,0,.10);color:#a25f00}
.s4-awesome-kid-row p,.s4-awesome-compare p{margin:0;color:#465a62;font-size:13px;line-height:1.56;font-weight:780}
.s4-awesome-deficit-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 8px}
.s4-awesome-deficit-strip>div{min-width:0;padding:11px 8px;border-radius:15px;background:rgba(255,255,255,.86);box-shadow:var(--s4-card-shadow);text-align:center}
.s4-awesome-deficit-strip span{display:block;margin-bottom:4px;color:var(--s4-muted);font-size:11px;line-height:1.2;font-weight:900}
.s4-awesome-deficit-strip b{display:block;color:var(--s4-ink);font-size:15px;line-height:1.25;font-weight:950}
.s4-awesome-deficit-strip>div:nth-child(-n+2) b{white-space:nowrap;font-size:13px;line-height:1.2}
.s4-awesome-method-list{display:grid;gap:9px;margin:12px 0 4px}
.s4-awesome-method{display:grid;grid-template-columns:86px minmax(0,1fr);gap:12px;align-items:start;padding:12px 13px;border-radius:16px;background:rgba(255,255,255,.82);box-shadow:var(--s4-card-shadow)}
.s4-awesome-method>span{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:999px;background:rgba(var(--s4-teal-rgb),.10);color:#00899c;font-size:12px;font-weight:950;line-height:1.15;text-align:center}
.s4-awesome-method b{display:block;margin:0 0 4px;color:var(--s4-ink);font-size:15px;line-height:1.28;font-weight:950}
.s4-awesome-method p{margin:0;color:#465a62;font-size:13px;line-height:1.55;font-weight:780}
.s4-awesome-safe-money{gap:10px;margin:16px 0 12px}
.s4-awesome-safe-money>div{display:grid;grid-template-columns:78px minmax(0,1fr);gap:12px;align-items:center;min-height:64px;padding:12px 13px;border-radius:15px;background:rgba(255,255,255,.92);box-shadow:var(--s4-hairline)}
.s4-awesome-safe-money b{color:#00899c;font-size:26px;line-height:1;font-weight:950}
.s4-awesome-safe-money small{font-size:14px;color:var(--s4-ink)}
.s4-awesome-safe-money p{margin:0;color:#40555e;font-size:13.5px;line-height:1.55;font-weight:850}
.s4-awesome-gap{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 12px;padding:11px 12px;border-radius:15px;background:rgba(var(--s4-yellow-rgb),.16);color:#8f4f00;font-size:14px;font-weight:950;text-align:center;box-shadow:var(--s4-hairline)}
.s4-awesome-gap strong{color:#8f4f00;font-size:13px;line-height:1}
.s4-awesome-hook-lead{margin:0 0 10px;color:var(--s4-ink);font-size:14px;font-weight:950;line-height:1.5}
.s4-awesome-ways{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px}
.s4-awesome-ways button{border:1.5px solid rgba(var(--s4-teal-rgb),.28);border-radius:999px;padding:8px 14px;background:#fff;color:#00899c;font-size:13px;font-weight:950;cursor:pointer}
.s4-awesome-cta{display:block;width:100%;margin:16px 0 0;border:0;border-radius:15px;padding:15px;background:var(--s4-teal);color:#fff;font-size:15px;font-weight:950;line-height:1.35;box-shadow:0 10px 22px rgba(var(--s4-teal-rgb),.26);cursor:pointer}
@media (max-width:380px){.s4-narrative.s4-awesome{gap:12px}.s4-awesome-evidence-rail{--s4-rail-indent:28px;--s4-rail-line-x:9px;padding-left:var(--s4-rail-indent)}.s4-awesome-hero,.s4-awesome-chapter{border-radius:20px;padding-left:14px;padding-right:14px}.s4-awesome-hero-item,.s4-awesome-chapter h2{font-size:17px}.s4-awesome-row{grid-template-columns:32px minmax(0,1fr)}.s4-awesome-safe-money>div{grid-template-columns:68px minmax(0,1fr)}.s4-awesome-home-meter{grid-template-columns:1fr}.s4-awesome-deficit-strip{grid-template-columns:1fr}.s4-awesome-method{grid-template-columns:1fr}.s4-awesome-meta{font-size:12px}}

.verdict{position:relative;background:linear-gradient(165deg,var(--grow-tint),var(--surface) 74%);border:1px solid var(--grow-tint-2);border-radius:var(--r);box-shadow:var(--sh);padding:18px 17px 16px;margin:0 0 6px;overflow:hidden}
.verdict::after{content:"";position:absolute;inset:0 0 auto auto;width:104px;height:104px;border-radius:50%;background:rgba(1,188,214,.08);transform:translate(34px,-42px);pointer-events:none}
.verdict.tight{background:linear-gradient(165deg,var(--warn-tint),var(--surface) 76%);border-color:var(--coral-tint-2)}
.verdict.tight::after{background:rgba(245,158,11,.10)}
.verdict.risky{background:linear-gradient(165deg,var(--risk-tint),var(--surface) 76%);border-color:#f3c1b8}
.verdict.risky::after{background:rgba(216,92,74,.10)}
.verdict .vk{font-size:11.5px;font-weight:850;color:var(--ink-soft);margin:9px 0 3px;letter-spacing:0}
.verdict .vhead{position:relative;z-index:1;font-size:24px;line-height:1.18;font-weight:900;letter-spacing:0;color:var(--ink);text-wrap:balance;margin:0}
.verdict.steady .vhead .key,.verdict.edge .vhead .key{color:var(--grow-700)}
.verdict.tight .vhead .key{color:var(--warn)}
.verdict.risky .vhead .key{color:var(--risk)}
.verdict .vsub{position:relative;z-index:1;font-size:15px;line-height:1.5;font-weight:850;color:var(--ink);margin:11px 0 0;padding:10px 12px;border-radius:var(--r-xs);background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.86);text-wrap:pretty;box-shadow:var(--sh-xs)}
.verdict .vsub .key{font-weight:900}
.verdict.steady .vsub .key,.verdict.edge .vsub .key{color:var(--grow-700)}
.verdict.tight .vsub .key{color:var(--warn)}
.verdict.risky .vsub .key{color:var(--risk)}
.verdict .vstat{position:relative;z-index:1;display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.65;font-weight:750;color:var(--ink-soft);margin:11px 0 0;padding-top:10px;border-top:1px dashed var(--line-strong)}
.verdict .vstat-k{flex:0 0 auto;margin-top:1px;font-size:10px;font-weight:900;line-height:1.55;color:var(--grow-700);background:var(--grow-tint);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:1px 7px}
.verdict.tight .vstat-k{color:var(--warn);background:var(--warn-tint);border-color:var(--coral-tint-2)}
.verdict.risky .vstat-k{color:var(--risk);background:var(--risk-tint);border-color:#f3c1b8}
.verdict .vstat-t{flex:1;min-width:0;text-wrap:pretty}
.verdict .vstat .num{color:var(--grow-700);font-weight:900}
.verdict .vmeta{font-size:10.5px;color:var(--muted);margin-top:10px;line-height:1.6}
.verdict .vcond{font-size:11px;line-height:1.6;color:var(--ink-soft);font-weight:750;margin-top:10px;padding-top:9px;border-top:1px dashed var(--line-strong)}
.verdict .vcond u{color:var(--grow-700);cursor:pointer;text-underline-offset:2px}
.estim-block{margin:10px 0;display:grid;gap:10px}
.estim-card{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--sh-sm);overflow:hidden}
.estim-head{display:flex;align-items:center;gap:10px;padding:12px 15px;font-size:12.5px;font-weight:800;color:var(--ink)}
.estim-sum{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.estim-sum-top{display:block;line-height:1.35}
.estim-head .en{font-family:var(--num);color:var(--grow-700);font-weight:900}
.estim-toggle{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border:1px solid var(--grow-tint-2);border-radius:999px;background:var(--grow-tint);color:var(--grow-700);font-size:11px;font-weight:900;line-height:1;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}
.estim-toggle:hover,.estim-toggle:focus-visible{background:#fff;border-color:var(--grow-300);box-shadow:0 2px 8px rgba(1,188,214,.12);outline:none}
.estim-toggle-icon{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-1px);transition:transform .2s ease}
.estim-head.is-open .estim-toggle-icon{transform:rotate(-135deg) translateY(1px)}
.estim-fields{margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.estim-fields>summary.estim-fields-summary{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.estim-fields[open] .ebody{border-top:1px dashed var(--line)}
.estim-fields .ebody{padding:6px 15px 14px}
.assume-edit-note{margin:4px 0 2px;padding:9px 11px;border-radius:var(--r-xs);background:var(--surface-sink);color:var(--ink-soft);font-size:11px;font-weight:800;line-height:1.5}
.assume{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px dashed var(--line)}
.assume:last-of-type{border-bottom:0}
.assume .ai{flex:1;min-width:0}
.assume .ai b{font-size:12.5px;display:block}
.assume .ai span{font-size:10.5px;color:var(--muted);display:block;margin-top:1px}
.assume .edit{flex:0 0 auto;font-size:11px;font-weight:900;color:var(--grow-700);background:var(--grow-tint);border:1px dashed var(--grow-300);border-radius:var(--pill);padding:5px 10px}
.assume .okk{flex:0 0 auto;font-size:11px;font-weight:900;color:var(--grow-700)}
.recalcbar{position:sticky;bottom:10px;z-index:8;display:none;margin:10px 0 0}
.recalcbar.show{display:block}
.s4-stale{opacity:.55;pointer-events:none}
.advisor{background:linear-gradient(160deg,var(--grow-tint),var(--surface) 74%);border:1px solid var(--grow-tint-2);border-radius:var(--r);box-shadow:var(--sh);padding:17px;margin:14px 0 4px}
.advisor .ah{font-size:15px;font-weight:900;letter-spacing:0;margin-bottom:3px;color:var(--ink)}
.advisor .aintro{font-size:12px;line-height:1.65;color:var(--ink-soft);font-weight:700;margin:0 0 10px}
.advisor .aintro b{color:var(--ink)}
.advisor-tool-list{display:grid;gap:8px;margin:2px 0 10px}
.advisor-tool-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 9px;align-items:start;padding:10px 11px;border-radius:var(--r-xs);background:rgba(255,255,255,.78);border:1px solid var(--grow-tint-2);box-shadow:var(--sh-xs)}
.advisor-tool-item span{grid-row:1 / span 2;width:max-content;max-width:82px;padding:3px 7px;border-radius:var(--pill);background:var(--grow-tint);color:var(--grow-700);font-size:10px;font-weight:900;line-height:1.25;text-align:center}
.advisor-tool-item b{min-width:0;color:var(--ink);font-size:12.5px;font-weight:900;line-height:1.35}
.advisor-tool-item em{min-width:0;color:var(--ink-soft);font-size:11px;font-style:normal;font-weight:760;line-height:1.45}
.adv-fine{font-size:10.5px;color:var(--muted);text-align:left;margin:0 0 4px;line-height:1.55}
.advisor-cta{width:100%;margin-top:9px}
.footer-quote{text-align:center;font-size:12px;color:var(--muted);font-weight:800;margin:18px 0 6px}
.led-nav{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.led-nav b{flex:1;text-align:center;font-size:14.5px}
.led-row{display:flex;align-items:center;gap:7px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:12px}
.led-row:last-of-type{border-bottom:0}
.led-row .ln{flex:1;min-width:0;font-weight:750;color:var(--ink-soft)}
.led-row .ent{flex:0 0 auto;font-size:9.5px;font-weight:900;color:var(--grow-700);background:var(--grow-tint);border:1px solid var(--grow-tint-2);border-radius:var(--pill);padding:2px 7px}
.led-row .lv{flex:0 0 auto;font-family:var(--num);font-weight:900;font-size:13px}
.led-row .cal{display:block;font-size:9.5px;color:var(--muted);font-weight:700;margin-top:1px}
.led-foot{margin-top:8px;padding:9px 11px;border-radius:var(--r-xs);background:var(--grow-tint);border:1px solid var(--grow-tint-2);font-size:12px;font-weight:800;color:var(--ink);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
@media (max-width: 380px) {
  .split-head{align-items:flex-start;flex-direction:column}
  .led-row{align-items:flex-start;flex-wrap:wrap}
  .led-row .lv{margin-left:auto}
}
@media (prefers-reduced-motion: reduce) {
  #famBody .screen.on,.sheet-card,.wave .w{animation:none}
  .db,.lens .seg button{transition:none}
}

/* ================= 渐进式提示 ================= */
.onboard-hint {
  position: absolute;
  background: var(--ink);
  color: white;
  padding: 8px 12px;
  border-radius: var(--r-xs);
  font-size: 12px;
  font-weight: 700;
  z-index: 10;
  white-space: nowrap;
  animation: slideDown .3s ease-out;
  pointer-events: none;
}

@keyframes slideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

.onboard-hint::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid var(--ink);
}

/* =========================================================
   手机 / 小程序 webview：全宽舒展 + 字号提升 + 配色提亮
   ========================================================= */
@media (max-width: 468px) {
  :root {
    --ink-soft: #334a54;
    --muted: #5f7179;
    --line: #d8e2e6;
    --line-strong: #c5d2d8;
    --grow-tint: #e8f7fa;
    --grow-tint-2: #cdeef3;
    --surface-soft: #ffffff;
    --surface-sink: #f2f6f7;
  }

  body {
    -webkit-font-smoothing: auto;
  }

  #screen { padding: 8px 10px calc(28px + env(safe-area-inset-bottom)); }
  .card {
    padding: 14px 12px;
    margin: 10px 0;
    border-radius: 18px;
    background: #ffffff;
    border-color: var(--line-strong);
    box-shadow: var(--sh-sm);
  }
  .appbar { padding: 12px 10px 10px; gap: 8px; }
  .head { flex-wrap: wrap; row-gap: 8px; }
  .head .pill { margin-left: 0; }

  .appbar .t1 { font-size: 18px; }
  .appbar .t2 { font-size: 12.5px; color: var(--ink-soft); }
  .journey {
    margin: 10px 10px 5px;
    padding: 4px;
  }
  .j-step {
    min-height: 32px;
    padding: 6px 6px;
  }
  .j-title { font-size: 12px; }

  .head h2 { font-size: 19px; color: var(--ink); }
  .head .pill { font-size: 12.5px; background: var(--grow-tint); color: var(--grow-700); }
  .pick-hero h1,
  .lede h1,
  .fam-hero h1,
  .compare-page-head h1 { font-size: 28px; }
  .pick-hero p,
  .fam-hero p,
  .lede p { font-size: 15px; color: var(--ink-soft); }
  .pick-hero .kick,
  .fam-hero .kick { font-size: 13px; }

  .form-step { font-size: 15px; }
  .sub-label { font-size: 13.5px; }
  .field span { font-size: 13.5px; }
  .setup-card .sc-title { font-size: 17px; }
  .setup-card .sc-sub { font-size: 13.5px; }
  .path-card h3 { font-size: 17px; }
  .path-card p { font-size: 14px; color: var(--ink-soft); }
  .summary-card .sm-name { font-size: 17px; }
  .note { font-size: 13px; }

  .employment-brief {
    background: #ffffff;
    border-color: var(--grow-tint-2);
    box-shadow: var(--sh-xs);
  }
  .employment-brief-text { color: var(--ink-soft); }
  .path-signal {
    background: #ffffff;
    border-color: var(--line-strong);
    box-shadow: var(--sh-xs);
  }
  .path-signal span { color: var(--ink-soft); }
  .path-signal.warn,
  .path-signal.risk {
    background: var(--coral-tint);
    border-color: var(--coral-tint-2);
  }
  .path-card .pc-facts,
  .path-card.active .pc-facts {
    margin-inline: 0;
    padding-top: 11px;
    background: transparent;
    border-color: rgba(10, 126, 143, 0.16);
    box-shadow: none;
  }
  .path-card-detail {
    background: #ffffff;
    border-color: var(--grow-300);
  }
  .career-ladder,
  .income-point-detail,
  .kpi {
    background: #ffffff;
    border-color: var(--line-strong);
  }
  .ipd-grid div {
    background: #ffffff;
    border-color: var(--line-strong);
  }
  .ipd-grid span { color: var(--ink-soft); }
  .education-cost-card,
  .degree-assumption {
    background: #ffffff;
    border-color: var(--grow-tint-2);
  }
  .cost-hero {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 12px;
    background: linear-gradient(135deg, #fff8e8 0%, #ffffff 52%, #eef9fb 100%);
    border-color: rgba(183, 121, 5, 0.28);
    box-shadow: var(--sh-xs);
  }
  .cost-hero-side {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .cost-hero-side div,
  .cost-segment,
  .cost-breakdown span {
    background: #ffffff;
    border-color: var(--line-strong);
  }

  .cost-hero-main b { font-size: 28px; }
  .cost-hero-main span,
  .cost-hero-side span { font-size: 12px; color: var(--ink-soft); }
  .cost-hero-side b { font-size: 13.5px; }
  .cost-seg-main b { font-size: 16px; }
  .cost-seg-main span { font-size: 13px; }
  .cost-breakdown small { font-size: 11.5px; color: var(--ink-soft); }
  .cost-breakdown b { font-size: 14px; }
  .choice-context-line { font-size: 13px; }
  .pc-support-total-row { gap: 8px; }
  .pc-support-total-note { display: none; }
  .pc-support-total-v { font-size: 18px; }
  .pc-support-total-v small { font-size: 11px; }
  .cost-total b { font-size: 26px; }

  .income-head h2 { font-size: 19px; }
  .income-head p { font-size: 12.5px; }
  .kpi .kpi-big { font-size: 22px; }
  .kpi .kpi-lbl { font-size: 12.5px; color: var(--ink-soft); }
}

html.wx-webview {
  --ink-soft: #2f4650;
  --muted: #56686f;
}

html.wx-webview #screen {
  padding-inline: 8px;
}

html.wx-webview .card {
  padding-inline: 11px;
}

html.wx-webview .head h2 {
  font-size: 20px;
}

html.wx-webview .pick-hero h1,
html.wx-webview .lede h1,
html.wx-webview .fam-hero h1 {
  font-size: 29px;
}

.onboard-hint.hidden { display: none; }

@media (max-width: 340px) {
  .major-grid { grid-template-columns: 1fr; }
  .kpi-row { grid-template-columns: 1fr; }
}
