/* ============================================================
   试管婴儿费用与成功率测算器 · 独立视觉体系（.ivf- 前缀）
   配色：暖白底 + 玫红 / 紫罗兰双主色，数字统一等宽字体
   深色模式：跟随 html[data-theme="dark"]，由全站主题脚本切换
   ============================================================ */

.ivf-page{
  --ivf-bg:#fbf6f9;
  --ivf-card:#ffffff;
  --ivf-soft:#f7eff4;
  --ivf-ink:#241a2c;
  --ivf-muted:#6d6178;
  --ivf-line:#eddfe8;
  --ivf-accent:#b02a68;
  --ivf-accent-2:#7c3aed;
  --ivf-ok:#0f766e;
  --ivf-warn:#b45309;
  --ivf-shadow:0 18px 44px rgba(86,27,62,.09);
  --ivf-c1:#c084fc; --ivf-c2:#f472b6; --ivf-c3:#fb923c; --ivf-c4:#38bdf8; --ivf-c5:#34d399;
  background:
    radial-gradient(760px 340px at 10% -10%, rgba(176,42,104,.10), transparent 62%),
    radial-gradient(640px 320px at 94% 0%, rgba(124,58,237,.09), transparent 60%),
    var(--ivf-bg);
  color:var(--ivf-ink);
  padding:24px 0 64px;
  font-size:15px;
  line-height:1.72;
}
:root[data-theme="dark"] .ivf-page{
  --ivf-bg:#120d18;
  --ivf-card:#1b1423;
  --ivf-soft:#251a30;
  --ivf-ink:#f4ecf7;
  --ivf-muted:#a495b2;
  --ivf-line:#34253f;
  --ivf-accent:#f472b6;
  --ivf-accent-2:#a78bfa;
  --ivf-ok:#5eead4;
  --ivf-warn:#fbbf24;
  --ivf-shadow:0 18px 44px rgba(0,0,0,.5);
  background:
    radial-gradient(760px 340px at 10% -10%, rgba(244,114,182,.13), transparent 62%),
    radial-gradient(640px 320px at 94% 0%, rgba(167,139,250,.11), transparent 60%),
    var(--ivf-bg);
}

.ivf-shell{max-width:1120px;margin:0 auto;padding:0 16px}

/* ---------- 面包屑 ---------- */
.ivf-crumb{font-size:13px;color:var(--ivf-muted);margin-bottom:14px}
.ivf-crumb a{color:var(--ivf-muted);text-decoration:none}
.ivf-crumb a:hover{color:var(--ivf-accent)}
.ivf-crumb span{color:var(--ivf-ink)}

/* ---------- 首屏 Hero ---------- */
.ivf-hero{
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;
  padding:20px 22px;margin-bottom:18px;border-radius:22px;
  background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.72));
  border:1px solid var(--ivf-line);box-shadow:var(--ivf-shadow);
}
:root[data-theme="dark"] .ivf-hero{
  background:linear-gradient(135deg, rgba(36,26,46,.96), rgba(27,20,35,.82));
}
.ivf-eyebrow{
  display:inline-flex;align-items:center;gap:6px;
  font-size:11.5px;font-weight:800;letter-spacing:2.4px;text-transform:uppercase;
  color:var(--ivf-accent);margin-bottom:8px;
}
.ivf-eyebrow::before{content:"";width:20px;height:2px;border-radius:2px;background:var(--ivf-accent)}
.ivf-hero h1{
  font-size:30px;line-height:1.28;font-weight:800;letter-spacing:-.4px;
  margin:0 0 8px;color:var(--ivf-ink);
}
.ivf-hero p{margin:0;color:var(--ivf-muted);font-size:15px;line-height:1.8;max-width:680px}
.ivf-hero p b{color:var(--ivf-ink);font-weight:700}
.ivf-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(84px,1fr));gap:8px}
.ivf-hero-stats div{
  background:var(--ivf-soft);border:1px solid var(--ivf-line);border-radius:14px;
  padding:10px 12px;text-align:center;
}
.ivf-hero-stats b{display:block;font-size:15px;color:var(--ivf-accent);letter-spacing:.2px}
.ivf-hero-stats span{display:block;font-size:11.5px;color:var(--ivf-muted);margin-top:2px}

/* ---------- 双栏 ---------- */
.ivf-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:18px;align-items:start}
.ivf-col-result{position:sticky;top:16px}
@media(max-width:900px){
  .ivf-grid{grid-template-columns:1fr}
  .ivf-col-result{position:static}
  .ivf-hero{grid-template-columns:1fr}
}

/* ---------- 卡片 ---------- */
.ivf-card{
  background:var(--ivf-card);border:1px solid var(--ivf-line);border-radius:18px;
  padding:18px 18px 16px;box-shadow:var(--ivf-shadow);
}
.ivf-card + .ivf-card{margin-top:16px}
.ivf-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.ivf-card-head h2{
  font-size:13px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--ivf-muted);margin:0;
}
.ivf-link{
  border:0;background:transparent;color:var(--ivf-accent);font-size:13px;font-weight:700;
  cursor:pointer;padding:4px 2px;text-decoration:underline;text-underline-offset:3px;
}
.ivf-badge{
  font-size:11.5px;font-weight:700;color:var(--ivf-accent);
  background:color-mix(in srgb, var(--ivf-accent) 10%, transparent);
  border:1px solid color-mix(in srgb, var(--ivf-accent) 26%, transparent);
  padding:3px 9px;border-radius:999px;white-space:nowrap;
}

/* ---------- 表单步骤 ---------- */
.ivf-step{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:12px 0;border-top:1px dashed var(--ivf-line)}
.ivf-step:first-of-type{border-top:0;padding-top:2px}
.ivf-step-no{
  width:26px;height:26px;border-radius:9px;display:grid;place-items:center;
  font-size:11.5px;font-weight:800;font-family:ui-monospace,Consolas,monospace;
  color:var(--ivf-accent);
  background:color-mix(in srgb, var(--ivf-accent) 11%, transparent);
  border:1px solid color-mix(in srgb, var(--ivf-accent) 22%, transparent);
}
.ivf-step-body{min-width:0}
.ivf-label{display:block;font-size:13.5px;font-weight:700;color:var(--ivf-ink);margin-bottom:6px}
.ivf-step small{display:block;font-size:12px;color:var(--ivf-muted);line-height:1.6;margin-top:6px}

.ivf-input,.ivf-select{
  width:100%;box-sizing:border-box;padding:10px 12px;border-radius:11px;
  border:1px solid var(--ivf-line);background:var(--ivf-soft);color:var(--ivf-ink);
  font-size:14.5px;font-family:inherit;line-height:1.4;
}
.ivf-select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ivf-muted) 50%),linear-gradient(135deg,var(--ivf-muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 13px) calc(50% - 2px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px;
}
.ivf-input:focus,.ivf-select:focus{
  outline:2px solid color-mix(in srgb, var(--ivf-accent) 45%, transparent);
  outline-offset:1px;
}

/* ---------- 分段按钮 ---------- */
.ivf-seg{display:flex;gap:7px;flex-wrap:wrap}
.ivf-seg button{
  border:1px solid var(--ivf-line);background:var(--ivf-soft);color:var(--ivf-muted);
  font-size:13px;font-weight:700;padding:8px 14px;border-radius:10px;cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.ivf-seg button:hover{border-color:color-mix(in srgb, var(--ivf-accent) 45%, var(--ivf-line))}
.ivf-seg button[aria-pressed="true"]{
  background:linear-gradient(135deg,var(--ivf-accent),var(--ivf-accent-2));
  border-color:transparent;color:#fff;
  box-shadow:0 6px 16px color-mix(in srgb, var(--ivf-accent) 32%, transparent);
}

.ivf-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:520px){.ivf-two{grid-template-columns:1fr}}

.ivf-error{min-height:18px;font-size:12.5px;color:#dc2626;margin-top:10px;line-height:1.6}
.ivf-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.ivf-btn{
  border:0;border-radius:12px;padding:12px 20px;font-size:14.5px;font-weight:800;
  cursor:pointer;background:linear-gradient(135deg,var(--ivf-accent),var(--ivf-accent-2));
  color:#fff;box-shadow:0 8px 20px color-mix(in srgb, var(--ivf-accent) 28%, transparent);
}
.ivf-btn.ghost{
  background:transparent;color:var(--ivf-accent);border:1.5px solid var(--ivf-accent);
  box-shadow:none;
}
.ivf-btn:active{transform:translateY(1px)}
.ivf-btn:disabled{opacity:.55;cursor:not-allowed}

/* ---------- 结果区 ---------- */
.ivf-total{padding:4px 0 12px;border-bottom:1px dashed var(--ivf-line)}
.ivf-total-label{display:block;font-size:12.5px;color:var(--ivf-muted);letter-spacing:.3px}
.ivf-total strong{
  display:block;font-family:ui-monospace,Consolas,monospace;
  font-size:32px;line-height:1.3;letter-spacing:-1px;color:var(--ivf-accent);
  margin:2px 0 2px;
}
.ivf-total-range{font-size:12.5px;color:var(--ivf-muted)}

/* 费用结构条 */
.ivf-bar{
  display:flex;height:12px;border-radius:8px;overflow:hidden;margin-top:16px;
  background:var(--ivf-soft);border:1px solid var(--ivf-line);
}
.ivf-bar span{display:block;height:100%;transition:width .4s ease}
.ivf-bar span:nth-child(1){background:var(--ivf-c1)}
.ivf-bar span:nth-child(2){background:var(--ivf-c2)}
.ivf-bar span:nth-child(3){background:var(--ivf-c3)}
.ivf-bar span:nth-child(4){background:var(--ivf-c4)}
.ivf-bar span:nth-child(5){background:var(--ivf-c5)}
.ivf-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:11.5px;color:var(--ivf-muted)}
.ivf-legend i{
  display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:5px;vertical-align:1px;
}
.ivf-legend i.c1{background:var(--ivf-c1)}
.ivf-legend i.c2{background:var(--ivf-c2)}
.ivf-legend i.c3{background:var(--ivf-c3)}
.ivf-legend i.c4{background:var(--ivf-c4)}
.ivf-legend i.c5{background:var(--ivf-c5)}
.ivf-legend b{color:var(--ivf-ink);font-family:ui-monospace,Consolas,monospace;font-weight:700}

/* KPI 四宫格 */
.ivf-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.ivf-kpis div{background:var(--ivf-soft);border-radius:12px;padding:9px 11px;border:1px solid var(--ivf-line)}
.ivf-kpis span{display:block;font-size:11.5px;color:var(--ivf-muted);margin-bottom:3px}
.ivf-kpis b{font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:700;color:var(--ivf-ink);letter-spacing:-.2px}
.ivf-kpis b.ok{color:var(--ivf-ok)}

/* 明细表 */
.ivf-table-wrap{overflow-x:auto;margin-top:14px}
.ivf-table{width:100%;border-collapse:collapse;font-size:12.8px;min-width:360px}
.ivf-table th,.ivf-table td{padding:7px 8px;border-bottom:1px solid var(--ivf-line);text-align:left;vertical-align:top}
.ivf-table th{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--ivf-muted);font-weight:700}
.ivf-table td.num{font-family:ui-monospace,Consolas,monospace;text-align:right;white-space:nowrap}
.ivf-table td.item{font-weight:700;color:var(--ivf-ink)}
.ivf-table td .sub{display:block;font-weight:400;font-size:11.5px;color:var(--ivf-muted);line-height:1.5}
.ivf-table tr.total td{border-top:2px solid var(--ivf-line);border-bottom:0;font-weight:800;color:var(--ivf-accent)}
.ivf-table tr.hl td{background:color-mix(in srgb, var(--ivf-accent) 6%, transparent)}

/* 累计推演 */
.ivf-cum{margin-top:16px}
.ivf-cum h3{font-size:12.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--ivf-muted);margin:0 0 8px}
.ivf-note{font-size:12px;color:var(--ivf-muted);line-height:1.7;margin:8px 0 0}

/* 结论提示 */
.ivf-tip{
  margin-top:16px;padding:12px 14px;border-radius:13px;font-size:13px;line-height:1.78;
  background:color-mix(in srgb, var(--ivf-accent) 7%, transparent);
  border:1px dashed color-mix(in srgb, var(--ivf-accent) 32%, transparent);
  color:var(--ivf-ink);
}
.ivf-tip b{color:var(--ivf-accent)}

/* AI */
.ivf-ai{margin-top:14px;padding:13px 14px;border-radius:13px;background:var(--ivf-soft);border:1px solid var(--ivf-line)}
.ivf-ai p{margin:0 0 9px;font-size:12px;color:var(--ivf-muted);line-height:1.65}
.ivf-ai-btn{
  border:0;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:800;cursor:pointer;
  color:#fff;background:linear-gradient(135deg,var(--ivf-accent),var(--ivf-accent-2));
}
.ivf-ai-status{font-size:12.5px;color:var(--ivf-muted);margin-top:9px;white-space:pre-wrap;line-height:1.8}
.ivf-ai-status.err{color:#dc2626}

/* 对比表 */
.ivf-compare{margin-top:18px}
.ivf-compare h2{font-size:16px;font-weight:800;margin:0 0 4px}
.ivf-compare > p.lead{font-size:13px;color:var(--ivf-muted);margin:0 0 4px;line-height:1.7}

/* FAQ */
.ivf-faq{margin-top:18px}
.ivf-faq h2{font-size:18px;font-weight:800;margin:0 0 12px}
.ivf-faq details{
  border:1px solid var(--ivf-line);border-radius:13px;padding:12px 15px;
  margin-bottom:9px;background:var(--ivf-card);
}
.ivf-faq summary{font-size:14px;font-weight:800;cursor:pointer;color:var(--ivf-ink);line-height:1.6}
.ivf-faq details p{margin:9px 0 0;font-size:13.5px;line-height:1.85;color:var(--ivf-muted)}
.ivf-faq details p b{color:var(--ivf-ink)}

/* 免责声明 */
.ivf-disclaimer{
  margin-top:16px;padding:12px 15px;border-radius:13px;
  background:var(--ivf-soft);border:1px solid var(--ivf-line);
  font-size:12px;line-height:1.8;color:var(--ivf-muted);
}
.ivf-disclaimer b{color:var(--ivf-ink)}

/* 打印 */
@media print{
  .ivf-page{background:#fff;padding:0;color:#000}
  .ivf-crumb,.ivf-actions,.ivf-ai,.ivf-faq,.ivf-compare,.ivf-hero-stats,.ivf-link,.ivf-disclaimer,.ivf-seg{display:none!important}
  .ivf-hero{border:0;box-shadow:none;padding:0 0 10px;background:#fff}
  .ivf-card{box-shadow:none;border-color:#ccc;break-inside:avoid}
  .ivf-col-result{position:static}
}
