:root{
  --paper:#f5f6f8;
  --paper2:#ffffff;
  --ink:#161c26;
  --ink-soft:#4d5666;
  --line:#dde1e8;
  --line-strong:#c2c9d6;
  --brand:#b8791f;
  --brand-dark:#8f5d16;
  --brand-tint:#faf0e0;
  --slate:#2e3a4f;
  --slate-tint:#e8ebf0;
  --danger:#b23a34;
  --danger-tint:#fbe9e7;
  --warn:#a6720a;
  --warn-tint:#fbf0dd;
  --ok:#2f7d4f;
  --ok-tint:#e6f4ea;
  --mono:'IBM Plex Mono', monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;overflow-x:hidden;width:100%;}
body{ background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,-apple-system,sans-serif; -webkit-font-smoothing:antialiased; min-height:100vh; }
::selection{background:var(--brand); color:#fff;}

header.hero{ background:linear-gradient(160deg,#161c26,#212a3a 60%,#161c26); color:#e8eaf0; padding:30px 24px 26px; border-bottom:4px solid var(--brand); }
.hero-inner{ max-width:1280px; margin:0 auto; }
.eyebrow{ font-family:var(--mono); letter-spacing:.11em; text-transform:uppercase; font-size:11.5px; color:#e0b070; }
h1{ font-family:'Source Serif 4', serif; font-weight:600; font-size:clamp(20px,3.2vw,29px); margin:8px 0 8px; color:#fff; }
.hero p{ max-width:800px; color:#c2c9d6; font-size:13px; line-height:1.6; margin:0; }
.disclaimer{ max-width:1280px; margin:14px auto 0; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:10px; padding:11px 15px; font-size:12px; color:#d3d8e2; line-height:1.55; }
.disclaimer b{ color:#fff; }

main{ max-width:1280px; margin:0 auto; padding:20px 24px 80px; display:grid; grid-template-columns: 280px 1fr; gap:22px; align-items:start; }
@media (max-width:860px){ main{ grid-template-columns:1fr; } }

.sidebar{ display:flex; flex-direction:column; gap:6px; position:sticky; top:16px; }
.side-btn{ text-align:left; background:var(--paper2); border:1px solid var(--line); border-radius:10px; padding:13px 14px; cursor:pointer; font-size:13.5px; color:var(--ink-soft); font-weight:600; }
.side-btn .sub{ display:block; font-family:var(--mono); font-size:10px; color:var(--ink-soft); margin-top:3px; font-weight:400; text-transform:uppercase; letter-spacing:.04em; }
.side-btn.active{ border-color:var(--brand); background:var(--brand-tint); color:var(--brand-dark); }
.side-btn:hover{ border-color:var(--brand); }

.content{ min-width:0; }
.card{ background:var(--paper2); border:1px solid var(--line-strong); border-radius:12px; padding:20px 22px; margin-bottom:16px; }
.card h2{ font-family:'Source Serif 4',serif; font-size:18px; margin:0 0 4px; display:flex; align-items:center; gap:8px; }
.card h2 .num{ font-family:var(--mono); font-size:11.5px; color:#fff; background:var(--slate); border-radius:6px; padding:2px 8px; }
.card .hint{ font-size:12.5px; color:var(--ink-soft); margin:0 0 14px; line-height:1.5; }

.def-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.def-list li{ font-size:13.5px; line-height:1.55; display:flex; gap:8px; }
.def-list li::before{ content:"—"; color:var(--brand); flex:0 0 auto; }
.src-tag{ font-family:var(--mono); font-size:10px; color:var(--ink-soft); background:var(--slate-tint); padding:1px 6px; border-radius:4px; white-space:nowrap; margin-left:4px; }

.stage-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:4px; }
.stage-box{ background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
.stage-box .s-title{ font-weight:700; font-size:12.5px; margin-bottom:4px; }
.stage-box .s-desc{ font-size:12px; color:var(--ink-soft); line-height:1.45; }
@media (max-width:640px){ .stage-grid{ grid-template-columns:1fr; } }

.check-row{ display:flex; align-items:flex-start; gap:10px; padding:8px 0; border-bottom:1px solid var(--line); }
.check-row:last-child{ border-bottom:none; }
.check-row input[type=checkbox]{ width:17px; height:17px; margin-top:2px; accent-color:var(--brand); flex:0 0 auto; }
.check-row label{ font-size:13.3px; line-height:1.5; }

.pseudo-summary{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:11px 13px; border-radius:8px; background:var(--paper); border:1px solid var(--line); }
.pseudo-summary .qcount{ font-family:'Source Serif 4',serif; font-size:20px; font-weight:600; }
.pseudo-summary.ready{ background:var(--ok-tint); border-color:rgba(47,125,79,0.3); }
.pseudo-summary.ready .qcount{ color:var(--ok); }
.pseudo-summary.notready .qcount{ color:var(--warn); }

.algo-steps{ display:flex; flex-direction:column; gap:0; }
.algo-step{ display:flex; gap:14px; padding:14px 0; border-bottom:1px dashed var(--line-strong); position:relative; }
.algo-step:last-child{ border-bottom:none; }
.algo-step .step-num{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:var(--slate); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--mono); font-size:13px; font-weight:600; }
.algo-step .step-body{ flex:1; min-width:0; }
.algo-step .step-title{ font-weight:700; font-size:14px; margin-bottom:4px; }
.algo-step .step-desc{ font-size:13px; color:var(--ink-soft); line-height:1.55; }
.algo-step.branch{ margin-left:20px; border-left:2px solid var(--brand-tint); padding-left:16px; }

.pill-row{ display:flex; flex-wrap:wrap; gap:7px; margin-top:6px; }
.pill-row span{ font-size:11.5px; background:var(--slate-tint); border:1px solid var(--line); border-radius:6px; padding:3px 9px; color:var(--ink-soft); }

.aug-box{ background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:11px 14px; margin-bottom:8px; }
.aug-box .a-title{ font-weight:700; font-size:13px; margin-bottom:3px; }
.aug-box .a-desc{ font-size:12.5px; color:var(--ink-soft); line-height:1.5; }

.source-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:5px; }
.source-list li{ font-size:11.8px; color:var(--ink-soft); line-height:1.5; padding-left:14px; position:relative; }
.source-list li::before{ content:"·"; position:absolute; left:0; color:var(--brand); font-weight:700; }

footer{ text-align:center; padding:26px; color:var(--ink-soft); font-size:11px; }

/* ---------- WIZARD ---------- */
.maintabs{ display:flex; gap:8px; margin-bottom:16px; }
.maintab-btn{ font-family:'Inter',sans-serif; font-weight:600; font-size:13.5px; cursor:pointer; background:var(--paper2); border:1px solid var(--line-strong); border-radius:10px 10px 0 0; padding:11px 18px; color:var(--ink-soft); border-bottom:none; position:relative; top:1px; }
.maintab-btn.active{ background:var(--paper); border-color:var(--brand); color:var(--brand-dark); box-shadow:0 -2px 0 var(--brand) inset; }

.wizard-progress{ display:flex; gap:6px; margin-bottom:16px; }
.wizard-progress .dot{ flex:1; height:5px; border-radius:3px; background:var(--line-strong); }
.wizard-progress .dot.done{ background:var(--brand); }

.q-text{ font-family:'Source Serif 4',serif; font-size:17px; line-height:1.4; margin:0 0 6px; }
.q-hint{ font-size:12.5px; color:var(--ink-soft); margin:0 0 16px; line-height:1.5; }
.q-options{ display:flex; flex-direction:column; gap:10px; }
.q-opt{ text-align:left; background:var(--paper); border:1px solid var(--line-strong); border-radius:10px; padding:13px 16px; cursor:pointer; font-size:14px; color:var(--ink); }
.q-opt:hover{ border-color:var(--brand); background:var(--brand-tint); }
.q-opt .opt-sub{ display:block; font-size:12px; color:var(--ink-soft); margin-top:3px; font-weight:400; }

.warn-node{ background:var(--warn-tint); border:1px solid rgba(166,114,10,0.3); color:var(--warn); border-radius:10px; padding:13px 16px; font-size:13px; line-height:1.55; margin-bottom:14px; }

.result-badge{ display:inline-block; font-family:'Source Serif 4',serif; font-size:19px; font-weight:600; background:var(--slate); color:#fff; padding:8px 16px; border-radius:8px; margin-bottom:10px; }
.result-icd{ font-family:var(--mono); font-size:11.5px; color:var(--ink-soft); margin-bottom:14px; }

.wizard-actions{ display:flex; gap:10px; margin-top:16px; }
.btn{ font-family:'Inter',sans-serif; font-weight:600; font-size:13.5px; cursor:pointer; border-radius:8px; padding:10px 18px; border:1px solid var(--line-strong); background:var(--paper2); color:var(--ink); }
.btn:hover{ border-color:var(--brand); }
.btn.primary{ background:var(--brand); border-color:var(--brand); color:#fff; }

/* ---------- COMPARISON TABLE ---------- */
.table-wrap{ overflow-x:auto; border:1px solid var(--line-strong); border-radius:10px; }
table.compare{ width:100%; border-collapse:collapse; font-size:12.8px; min-width:760px; }
table.compare th{ text-align:left; font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); background:var(--slate-tint); padding:10px 12px; border-bottom:1px solid var(--line-strong); white-space:nowrap; }
table.compare td{ padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.5; }
table.compare td.dim{ font-weight:700; color:var(--ink); white-space:nowrap; background:var(--paper); }
table.compare tbody tr:hover{ background:var(--brand-tint); }

/* ---------- MULTI-SELECT DOMAINS & FINAL FORMULATION ---------- */
.domain-chips{ display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.domain-chip{ background:var(--paper); border:1px solid var(--line-strong); border-radius:10px; padding:12px 15px; cursor:pointer; flex:1; min-width:200px; }
.domain-chip:hover{ border-color:var(--brand); }
.domain-chip.on{ background:var(--brand-tint); border-color:var(--brand); }
.domain-chip .d-title{ font-weight:700; font-size:13.5px; margin-bottom:3px; }
.domain-chip .d-desc{ font-size:12px; color:var(--ink-soft); line-height:1.45; }

.formulation-box{ background:var(--slate); color:#fff; border-radius:10px; padding:16px 18px; margin:14px 0; font-family:'Source Serif 4',serif; font-size:16px; line-height:1.5; }

.bp-count{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:11px 13px; border-radius:8px; background:var(--paper); border:1px solid var(--line); }
.bp-count .qcount{ font-family:'Source Serif 4',serif; font-size:20px; font-weight:600; }
.bp-count.applies{ background:var(--ok-tint); border-color:rgba(47,125,79,0.3); }
.bp-count.applies .qcount{ color:var(--ok); }
