/* Layout: an aid worksheet. A narrow question column beside a wide ledger of results; one column on phones. */
:root {
  --paper: #f3f5f2;
  --sheet: #ffffff;
  --ink: #172126;
  --ink-2: #4b5961;
  --ink-3: #6f7c83;
  --rule: #d5dbd6;
  --rule-2: #e7ebe7;
  --accent: #1d5d77;
  --accent-ink: #ffffff;
  --accent-wash: #e3eef2;
  --ok: #22693c;
  --ok-wash: #e2f0e6;
  --info: #2c5a9f;
  --info-wash: #e5ecf8;
  --hyp: #56626a;
  --hyp-wash: #eceff0;
  --warn: #85560a;
  --warn-wash: #fbefd4;
  --crit: #a3302b;
  --crit-wash: #f8e2df;
  --s1: #2a78d6;
  --s2: #eb6834;
  --s3: #1baf7a;
  --s4: #eda100;
  --grid: #e3e7e3;
  --font-display: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-data: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --radius: 6px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #0f1416; --sheet: #1a2023; --ink: #e3e8ea; --ink-2: #a5b1b7; --ink-3: #86939a; --rule: #2e383d; --rule-2: #232b2f;
    --accent: #80bad2; --accent-ink: #0d1a1f; --accent-wash: #1c3340;
    --ok: #62c483; --ok-wash: #153022; --info: #8aabe8; --info-wash: #1a2640; --hyp: #a5b1b7; --hyp-wash: #252d31;
    --warn: #e8b24e; --warn-wash: #372a10; --crit: #ef8d85; --crit-wash: #3b1c1a;
    --s1: #3987e5; --s2: #d95926; --s3: #199e70; --s4: #c98500; --grid: #283034;
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --paper: #0f1416; --sheet: #1a2023; --ink: #e3e8ea; --ink-2: #a5b1b7; --ink-3: #86939a; --rule: #2e383d; --rule-2: #232b2f;
  --accent: #80bad2; --accent-ink: #0d1a1f; --accent-wash: #1c3340;
  --ok: #62c483; --ok-wash: #153022; --info: #8aabe8; --info-wash: #1a2640; --hyp: #a5b1b7; --hyp-wash: #252d31;
  --warn: #e8b24e; --warn-wash: #372a10; --crit: #ef8d85; --crit-wash: #3b1c1a;
  --s1: #3987e5; --s2: #d95926; --s3: #199e70; --s4: #c98500; --grid: #283034;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 15px/1.55 var(--font-body);
  padding-inline: 16px;
  padding-block: 0;
}
.wrap { max-width: 1240px; margin-inline: auto; }
a { color: var(--accent); text-underline-offset: 2px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 3px; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; line-height: 1.2; text-wrap: balance; margin: 0; }
h1 { font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.35rem); letter-spacing: -0.01em; }
h2 { font-size: 1.45rem; }
h3 { font-size: 1.1rem; }
p { margin: 0; max-width: 68ch; }
.num, .money { font-variant-numeric: tabular-nums; }
.data { font-family: var(--font-data); font-size: 0.86em; }
.muted { color: var(--ink-2); }
.small { font-size: 0.86rem; }
.eyebrow { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Header */
.masthead { padding-block: 28px 18px; display: grid; gap: 10px; border-bottom: 1px solid var(--rule); }
.masthead .lede { color: var(--ink-2); font-size: 1.02rem; }
.nav { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 0.92rem; padding-top: 4px; }
.nav a { color: var(--ink-2); text-decoration: none; border-bottom: 1px solid transparent; }
.nav a:hover { color: var(--ink); border-bottom-color: var(--ink-3); }
.nav .sep { color: var(--rule); }

section.block { padding-block: 28px; border-bottom: 1px solid var(--rule); display: grid; gap: 16px; }
section.block > *, .results > *, .calc > * { min-width: 0; }
.scroll-x { max-width: 100%; }
.section-head { display: grid; gap: 6px; }

/* Status vocabulary: shape + word, never color alone */
.pill { display: inline-flex; align-items: center; gap: 5px; font-size: 0.74rem; font-weight: 600; letter-spacing: 0.02em; padding: 1px 8px 1px 6px; border-radius: 999px; white-space: nowrap; border: 1px solid transparent; line-height: 1.6; }
.pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.pill.needs { color: var(--warn); background: var(--warn-wash); }
.pill.needs::before { border-radius: 1px; transform: rotate(45deg); }
.pill.unknown { color: var(--ink-2); background: var(--hyp-wash); }
.pill.unknown::before { background: transparent; border: 1.5px solid currentColor; width: 6px; height: 6px; }
.pill.ok { color: var(--ok); background: var(--ok-wash); }
.pill.info { color: var(--info); background: var(--info-wash); }
.pill.hyp { color: var(--hyp); background: var(--hyp-wash); border: 1px dashed var(--ink-3); }
.pill.crit { color: var(--crit); background: var(--crit-wash); }
.pill.plain { color: var(--ink-2); background: transparent; border-color: var(--rule); }
.pill.plain::before { display: none; }

.tag { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.03em; padding: 0 6px; border-radius: 3px; white-space: nowrap; }
.tag.newfed { color: var(--info); background: var(--info-wash); }
.tag.oldfed { color: var(--ink-2); background: var(--hyp-wash); }
.tag.usc { color: var(--ok); background: var(--ok-wash); }
.tag.ask { color: var(--warn); background: var(--warn-wash); }
.chip { font-family: var(--font-data); font-size: 0.7rem; color: var(--ink-2); text-decoration: none; border: 1px solid var(--rule); border-radius: 3px; padding: 0 4px; white-space: nowrap; }
.chip:hover { border-color: var(--accent); color: var(--accent); }

/* Explainer */
.changes { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); padding: 0; margin: 0; list-style: none; }
.changes li { background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); padding: 12px 14px; display: grid; gap: 6px; min-width: 0; }
.changes li strong { font-weight: 600; }
.scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table.matrix { border-collapse: collapse; width: 100%; min-width: 860px; background: var(--sheet); font-size: 0.88rem; }
table.matrix th, table.matrix td { border: 1px solid var(--rule-2); padding: 8px 10px; vertical-align: top; text-align: left; }
table.matrix thead th { font-family: var(--font-display); font-size: 1rem; background: var(--paper); }
table.matrix tbody th { width: 128px; font-weight: 600; background: var(--paper); font-size: 0.84rem; }
table.matrix td .meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 5px; }
.callout { background: var(--accent-wash); border-radius: var(--radius); padding: 12px 14px; max-width: 80ch; }

/* Calculator layout */
.calc { display: grid; gap: 24px; align-items: start; }
@media (min-width: 1020px) { .calc { grid-template-columns: minmax(300px, 370px) minmax(0, 1fr); } }
.questions { display: grid; gap: 10px; min-width: 0; }
.results { display: grid; gap: 22px; min-width: 0; }
.qbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.example-note { font-size: 0.86rem; color: var(--warn); background: var(--warn-wash); border-radius: var(--radius); padding: 8px 12px; }

details.step { background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); }
details.step > summary { cursor: pointer; list-style: none; padding: 11px 14px; display: flex; justify-content: space-between; gap: 10px; align-items: baseline; font-weight: 600; }
details.step > summary::-webkit-details-marker { display: none; }
details.step > summary .n { font-family: var(--font-data); font-size: 0.78rem; color: var(--ink-3); margin-right: 8px; }
details.step > summary .hint { font-weight: 400; font-size: 0.8rem; color: var(--ink-3); }
details.step[open] > summary { border-bottom: 1px solid var(--rule-2); }
.fields { padding: 12px 14px 14px; display: grid; gap: 12px; }
.field { display: grid; gap: 4px; min-width: 0; align-content: start; }
.field > label, .field > .label { font-size: 0.84rem; font-weight: 600; color: var(--ink); }
.field .help { font-size: 0.78rem; color: var(--ink-3); }
.row2 { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
.row3 { display: grid; gap: 8px; grid-template-columns: 1fr 1fr 1fr; }
input[type="number"], input[type="text"], select {
  font: inherit; font-size: 0.92rem; color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule); border-radius: 4px; padding: 6px 8px; width: 100%; min-width: 0;
}
input[type="number"] { font-variant-numeric: tabular-nums; }
input::placeholder { color: var(--ink-3); }
select { appearance: auto; }
.check { display: flex; gap: 8px; align-items: flex-start; font-size: 0.88rem; }
.check input { margin-top: 3px; }
.aidline { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 0.9fr); gap: 6px; align-items: center; }
.aidline .name { font-size: 0.86rem; }
button, .btn {
  font: inherit; font-size: 0.86rem; font-weight: 600; cursor: pointer;
  border: 1px solid var(--rule); background: var(--sheet); color: var(--ink);
  border-radius: 4px; padding: 6px 11px; text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
button:hover, .btn:hover { border-color: var(--ink-3); }
button.primary { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
button.link { border: none; background: none; color: var(--accent); padding: 2px 4px; font-weight: 500; }

/* Result cards */
.cards { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.card { background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); padding: 14px 16px; display: grid; gap: 10px; align-content: start; min-width: 0; }
.card .head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.card .big { font-family: var(--font-display); font-size: 1.9rem; line-height: 1.1; font-weight: 600; }
.card .big.money { font-family: var(--font-body); font-weight: 700; letter-spacing: -0.01em; }
.card dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 12px; margin: 0; font-size: 0.88rem; }
.card dt { color: var(--ink-2); }
.card dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.aidrows { display: grid; gap: 8px; }
.aidrow { display: grid; gap: 3px; padding-bottom: 8px; border-bottom: 1px solid var(--rule-2); }
.aidrow:last-child { border-bottom: none; padding-bottom: 0; }
.aidrow .top { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; }
.aidrow .top strong { font-weight: 600; font-size: 0.92rem; }
.aidrow .desc { font-size: 0.84rem; color: var(--ink-2); }
.pills { display: flex; flex-wrap: wrap; gap: 4px; }

/* Timeline */
.timeline-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: baseline; }
.timeline { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; }
.term { flex: 0 0 204px; background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); padding: 10px 12px; display: grid; gap: 8px; align-content: start; scroll-snap-align: start; }
.term.summer { background: var(--paper); border-style: dashed; }
.term.grad { border-top: 3px solid var(--accent); }
.term .t-head { display: flex; justify-content: space-between; align-items: baseline; gap: 6px; }
.term .t-name { font-weight: 700; font-size: 0.95rem; }
.term .t-level { font-size: 0.7rem; color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.06em; }
.term .t-row { display: flex; justify-content: space-between; gap: 8px; font-size: 0.82rem; }
.term .t-row span:first-child { color: var(--ink-2); }
.term .t-row span:last-child { font-variant-numeric: tabular-nums; text-align: right; }
.term .t-edit { display: grid; grid-template-columns: 1fr 1.4fr; gap: 6px; }
.term .t-edit input, .term .t-edit select { font-size: 0.82rem; padding: 4px 6px; }
.term .t-flags { font-size: 0.76rem; color: var(--ink-2); display: grid; gap: 3px; }
.addsummer { flex: 0 0 auto; align-self: center; writing-mode: vertical-rl; transform: rotate(180deg); font-size: 0.76rem; padding: 10px 4px; border-style: dashed; color: var(--ink-2); }

/* Chart */
.chart-wrap { background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); padding: 12px 14px; display: grid; gap: 10px; position: relative; }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 0.8rem; color: var(--ink-2); }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.legend i.dash { width: 18px; height: 0; border-top: 2px dashed var(--ink); border-radius: 0; }
.legend i.cap { width: 18px; height: 0; border-top: 2px solid var(--ink); border-radius: 0; }
svg.funding { max-width: none; height: auto; display: block; }
#chart { overflow-x: auto; }
svg.funding text { fill: var(--ink-2); font-family: var(--font-body); font-size: 11px; }
svg.funding .axis { stroke: var(--rule); }
svg.funding .gridline { stroke: var(--grid); }
.tooltip { position: absolute; pointer-events: none; background: var(--ink); color: var(--paper); font-size: 0.78rem; padding: 7px 9px; border-radius: 4px; max-width: 260px; line-height: 1.45; z-index: 5; }

/* Checklist */
ol.checklist { margin: 0; padding-left: 1.3em; display: grid; gap: 8px; }
ol.checklist li { padding-left: 4px; max-width: 80ch; }
ol.checklist .meta { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 3px; }

/* Compare */
table.compare, table.ledger { border-collapse: collapse; width: 100%; background: var(--sheet); font-size: 0.86rem; }
table.compare th, table.compare td, table.ledger th, table.ledger td { border-bottom: 1px solid var(--rule-2); padding: 6px 10px; text-align: right; font-variant-numeric: tabular-nums; }
table.compare th:first-child, table.compare td:first-child, table.ledger th:first-child, table.ledger td:first-child { text-align: left; }
table.compare thead th, table.ledger thead th { font-size: 0.78rem; color: var(--ink-2); font-weight: 600; background: var(--paper); position: sticky; top: 0; }
table.ledger { min-width: 720px; }
table.ledger td.cell-needs { color: var(--warn); }
table.ledger tr.group td { background: var(--paper); font-weight: 600; text-align: left; }

details.more { background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); }
details.more > summary { cursor: pointer; padding: 10px 14px; font-weight: 600; }
details.more > .inner { padding: 4px 14px 14px; display: grid; gap: 10px; }
.kv { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 14px; font-size: 0.88rem; }
.kv > :nth-child(even) { text-align: right; font-variant-numeric: tabular-nums; }
dl.glossary { display: grid; gap: 8px; margin: 0; }
dl.glossary dt { font-weight: 600; }
dl.glossary dd { margin: 0 0 4px; color: var(--ink-2); max-width: 75ch; }

footer.foot { padding-block: 22px 36px; font-size: 0.84rem; color: var(--ink-2); }

/* Audit and tests pages */
.filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rulecard { background: var(--sheet); border: 1px solid var(--rule-2); border-radius: var(--radius); padding: 14px 16px; display: grid; gap: 8px; min-width: 0; }
.rulecard:target { outline: 2px solid var(--accent); }
.rulecard .rid { font-family: var(--font-data); font-size: 0.84rem; color: var(--ink-2); }
.rulecard .src { font-size: 0.84rem; border-left: 3px solid var(--rule); padding-left: 10px; display: grid; gap: 2px; }
.rulecard .src q { color: var(--ink); font-style: italic; }
.rulecard pre { background: var(--paper); border-radius: 4px; padding: 8px 10px; overflow-x: auto; font-family: var(--font-data); font-size: 0.76rem; margin: 0; }
.rulecard .tests { font-size: 0.84rem; display: grid; gap: 2px; }
.pass { color: var(--ok); }
.fail { color: var(--crit); }
.stats { display: flex; flex-wrap: wrap; gap: 8px; }
.testlist { display: grid; gap: 2px; font-size: 0.84rem; }
.testlist div { display: grid; grid-template-columns: 62px minmax(0, 1fr); gap: 8px; padding: 3px 0; border-bottom: 1px solid var(--rule-2); }

@media (max-width: 560px) {
  .row2, .row3 { grid-template-columns: 1fr; }
  .aidline { grid-template-columns: 1fr 1fr; }
  .aidline .name { grid-column: 1 / -1; }
  .card .big { font-size: 1.6rem; }
}
.rulecard .kv { grid-template-columns: max-content minmax(0, 1fr); }
.rulecard .kv > :nth-child(even) { text-align: left; overflow-wrap: anywhere; }
.rulecard .kv > :nth-child(odd) { color: var(--ink-2); }
details.more > .inner > *, .chart-wrap > *, .card > * { min-width: 0; }
#list > *, .rulecard > *, .testlist > * { min-width: 0; }
.chip { display: inline-block; margin-block: 1px; }

/* Guided calculator: one decision group at a time. */
.guide-page {
  --paper:#f8f7fb; --sheet:#fff; --ink:#29253c; --ink-2:#655e76; --ink-3:#70687e;
  --rule:#ded9e8; --rule-2:#ece8f2; --accent:#6550ad; --accent-ink:#fff; --accent-wash:#efebfa;
  --font-display:"Public Sans",system-ui,sans-serif; --radius:22px;
  background:var(--paper);
  font-size:15px; min-height:100vh;
}
.guide-page .wrap { max-width:1080px; }
.skip-link { position:fixed; top:-80px; left:16px; z-index:20; padding:12px; background:var(--sheet); }
.skip-link:focus { top:8px; }
.app-header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:28px 0; }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font-weight:700; font-size:17px; white-space:nowrap; }
.brand-mark { width:37px; height:37px; background:var(--accent-wash); color:var(--ink); border-radius:10px; display:grid; place-items:center; font-size:12px; letter-spacing:.04em; }
.year-tag { padding:4px 8px; background:var(--sheet); border:1px solid var(--rule); border-radius:8px; font-size:11px; color:var(--ink-2); font-weight:500; }
.header-actions { display:flex; align-items:center; gap:10px; }
.header-actions [aria-current="page"] { color:var(--ink); font-weight:700; background:var(--accent-wash); }
.guide-page button,.guide-page .btn { min-height:44px; border-radius:13px; padding:10px 16px; transition:background .15s,transform .15s; }
.guide-page button:hover { background:var(--accent-wash); border-color:var(--accent); }
.guide-page button.primary:hover { background:#51408e; color:#fff; }
.guide-page button:disabled { opacity:.45; cursor:not-allowed; }
.guide-page button.quiet { background:transparent; border-color:transparent; color:var(--ink-2); }
.hero { padding:26px 0 42px; }
.hero .eyebrow { color:var(--accent); margin-bottom:13px; letter-spacing:.1em; }
.hero h1 { font-size:clamp(36px,5vw,56px); font-weight:700; letter-spacing:-.055em; line-height:1.08; }
.hero h1 span { color:var(--accent); }
.hero > p:last-child { margin-top:18px; color:var(--ink-2); font-size:16px; }
.guide-page section.block { padding:0; border:0; gap:20px; }
.workspace-head { display:flex; gap:12px; align-items:center; justify-content:space-between; }
.workspace-head h1 { font-size:clamp(25px,3.5vw,34px); letter-spacing:-.035em; font-weight:600; line-height:1.2; }
.save-status { color:var(--ink-2); font-size:12px; }
.wizard-nav { display:flex; padding:6px; border:1px solid var(--rule); background:#eeebf4; border-radius:18px; gap:5px; }
.wizard-nav button { flex:1; justify-content:center; border:0; background:transparent; font-size:13px; gap:8px; color:var(--ink-2); padding:9px 10px; }
.wizard-nav button span { display:grid; place-items:center; background:var(--sheet); color:var(--ink-2); border-radius:50%; width:23px; height:23px; font-size:11px; }
.wizard-nav button[aria-current="step"] { background:var(--sheet); box-shadow:0 2px 6px #29253c0a; color:var(--accent); }
.wizard-nav button[aria-current="step"] span { background:var(--accent); color:var(--accent-ink); }
.guide-page .calc { grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr); gap:24px; }
.guide-page .questions { padding:26px 30px 22px; background:var(--sheet); border:1px solid var(--rule); border-radius:20px; gap:18px; }
.form-note { font-size:12px; color:var(--ink-2); }
.guide-page section.step { display:grid; gap:18px; }
.guide-page .step h3 { font-size:23px; font-weight:700; letter-spacing:-.035em; }
.guide-page .fields { padding:0; gap:18px; }
.guide-page .row2,.guide-page .row3 { gap:15px; }
.guide-page .field { gap:7px; }
.guide-page .field > label { font-size:12px; font-weight:600; }
.guide-page .field .help { color:var(--ink-2); font-size:11px; }
.guide-page input[type="number"],.guide-page input[type="text"],.guide-page select { border-radius:11px; min-height:44px; background:var(--paper); padding:10px 11px; font-size:13px; }
.guide-page input[type="checkbox"] { width:17px; height:17px; accent-color:var(--accent); flex:none; }
.guide-page .check { font-size:12px; align-items:center; }
.guide-page .check input { margin-top:0; }
.topics { display:grid; gap:10px; }
.guide-page .check.topic { font-size:14px; font-weight:500; gap:12px; padding:14px 16px; border:1px solid var(--rule); border-radius:12px; background:var(--paper); cursor:pointer; }
.guide-page .check.topic:has(input:checked) { border-color:var(--accent); background:var(--accent-wash); }
.wizard-controls { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--rule-2); padding-top:20px; margin-top:4px; }
.plan-preview { position:sticky; top:24px; background:var(--accent-wash); border:0; border-radius:14px; padding:24px; display:grid; gap:17px; overflow:hidden; }
.preview-art { position:relative; height:134px; display:grid; place-items:center; }
.preview-flower { font-size:128px; color:#ac96db; line-height:1; transform:rotate(9deg); z-index:1; }
.orbit { position:absolute; border-radius:50%; }
.orbit.one { width:92px; height:92px; background:#d4e6c8; left:9%; top:24px; }
.orbit.two { width:52px; height:52px; background:#f6d8af; right:12%; top:70px; }
.plan-preview .eyebrow { color:#6a5e7f; font-size:10px; }
.plan-preview h3 { font-size:27px; font-weight:600; letter-spacing:-.045em; line-height:1.15; }
.plan-preview dl { display:grid; gap:5px; margin:6px 0; font-size:12px; }
.plan-preview dt { color:var(--ink-2); }
.plan-preview dd { margin:0 0 9px; font-weight:600; }
.plan-preview button { justify-content:center; }
.guide-page .results { gap:20px; padding:10px 0 0; }
.guide-page .cards { grid-template-columns:1fr; border-block:1px solid var(--rule); }
.guide-page .card { padding:22px 4px; gap:12px; border:0; border-bottom:1px solid var(--rule-2); border-radius:0; background:transparent; grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr); }
.guide-page .card:last-child { border-bottom:0; }
.guide-page .card .head { align-content:start; align-items:start; justify-content:start; flex-direction:column; }
.card-body { display:grid; gap:10px; min-width:0; align-content:start; }
.guide-page .card .head h3 { font-size:14px; color:var(--ink-2); }
.guide-page .card .head { flex-wrap:wrap; }
.guide-page .card .big { font-size:27px; letter-spacing:-.04em; }
.guide-page .more { margin-bottom:9px; border-color:var(--rule); border-radius:16px; }
.guide-page .more > summary { padding:17px 20px; font-size:14px; }
.guide-page .more > .inner { padding:0 20px 20px; }
.count-badge { font-size:11px; color:var(--accent); background:var(--accent-wash); padding:3px 7px; border-radius:8px; margin-left:7px; }
.input-error { padding:12px; background:var(--crit-wash); color:var(--crit); border-radius:10px; font-size:13px; }
.guide-page .foot { display:flex; justify-content:space-between; gap:16px; padding:30px 0; font-size:11px; }
.guide-page .foot a { color:var(--ink-2); text-decoration:none; }
dialog { color:var(--ink); background:var(--paper); border:1px solid var(--rule); border-radius:24px; width:min(1050px,calc(100vw - 32px)); max-height:85vh; padding:28px; }
dialog::backdrop { background:#24202899; }
.dialog-head { display:flex; justify-content:space-between; gap:20px; align-items:center; margin-bottom:24px; }
#guidePending { display:grid; gap:20px; justify-items:start; padding:20px 0; }
#verifiedGuide { display:grid; gap:24px; }
@media (max-width:760px) {
  .guide-page .calc { grid-template-columns:minmax(0,1fr); }
  .plan-preview { position:static; padding:20px; grid-template-columns:1fr auto; }
  .preview-art,.plan-preview h3 { display:none; }
  .plan-preview .eyebrow { grid-column:1/-1; }
  .plan-preview dl { margin:0; }
  .plan-preview button { align-self:center; }
  .guide-page .cards { grid-template-columns:1fr; }
  .guide-page .card { grid-template-columns:1fr; }
  .guide-page .card .head { flex-direction:row; }
  .wizard-nav { gap:2px; }
  .wizard-nav button { flex-direction:column; font-size:11px; padding:8px 2px; gap:5px; }
  .guide-page .questions { padding:22px; }
  .brand { font-size:14px; gap:7px; white-space:normal; }
  .year-tag { display:none; }
  .header-actions { gap:3px; }
  .guide-page button.quiet { font-size:11px; padding:6px; }
  .hero { padding:20px 0 32px; }
  .app-header { padding:20px 0; }
  .workspace-head { align-items:baseline; }
  .save-status { font-size:10px; }
  .guide-page .row2,.guide-page .row3 { grid-template-columns:1fr; }
  .wizard-controls { gap:6px; }
  .guide-page .foot { flex-wrap:wrap; }
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) .guide-page { --paper:#19191b;--sheet:#232326;--ink:#f1eff4;--ink-2:#c2bec8;--ink-3:#aca7b2;--rule:#46424b;--rule-2:#363339;--accent:#c0add5;--accent-ink:#241b2b;--accent-wash:#312c38;background:var(--paper); }
  .guide-page .wizard-nav { background:#211b2b; }
  .guide-page .plan-preview { background:#30253e; border-color:#49395a; }
  .plan-preview .eyebrow { color:#c4b9cf; }
  .orbit.one { background:#405439; }.orbit.two { background:#795e45; }
  .brand-mark { background:#46325f; color:#d3b6fa; }
}
@media (prefers-reduced-motion:reduce) { .guide-page button,.guide-page .btn { transition:none; } }

.guide-page { --paper:#f8f7f4; --sheet:#fffefa; --ink:#303039; --ink-2:#62616b; --ink-3:#706e77; --rule:#dddad5; --rule-2:#e9e6e1; --accent:#655274; --accent-wash:#efebf1; }
.award-controls { display:flex; gap:12px; align-items:end; }
.award-controls .field { flex:1; }
.award > summary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; }
.award > summary span { font-weight:400; color:var(--ink-2); font-size:12px; }
.guide-page .questions details.more > summary { padding:14px 16px; font-size:13px; }
.guide-page .questions details.more > .inner { padding:2px 16px 16px; }
.timeline-note { min-width:180px; max-width:220px; padding-right:12px; }
.guide-page :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.guide-page [aria-invalid="true"] { border-color:var(--crit); }
@media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) .guide-page { --paper:#19191b;--sheet:#232326;--ink:#f1eff4;--ink-2:#c2bec8;--ink-3:#aca7b2;--rule:#46424b;--rule-2:#363339;--accent:#c0add5;--accent-ink:#241b2b;--accent-wash:#312c38; } }
:root[data-theme="dark"] .guide-page { --paper:#19191b;--sheet:#232326;--ink:#f1eff4;--ink-2:#c2bec8;--ink-3:#aca7b2;--rule:#46424b;--rule-2:#363339;--accent:#c0add5;--accent-ink:#241b2b;--accent-wash:#312c38; color-scheme:dark; }
@media (max-width:420px) { .guide-page .wrap { padding-inline:16px; } .guide-page .questions { padding:20px 16px; } .workspace-head { flex-wrap:wrap; } .award-controls { align-items:stretch; flex-direction:column; } .plan-preview { grid-template-columns:1fr; } }

/* The active section carries the accent; the navigation stays quiet. */
.guide-page .wizard-nav { background:transparent; border:0; border-bottom:1px solid var(--rule); border-radius:0; padding:0 0 10px; }
.guide-page .plan-preview { background:var(--sheet); border-color:var(--rule); }
.brand-mark { background:var(--accent-wash); color:var(--accent); border-radius:8px; }

.guide-page .timeline { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); overflow-x:visible; scroll-snap-type:none; }
.guide-page .timeline-note { grid-column:1/-1; max-width:none; margin:0 0 8px; }
.guide-page .timeline .term { min-width:0; }

/* "?" toggles: short explanations stay hidden until asked for. */
.label-row { display:flex; align-items:center; gap:6px; min-width:0; }
.label-row > label, .label-row > .label { font-size:12px; font-weight:600; }
.guide-page .qhelp { position:relative; flex:none; min-height:0; width:20px; height:20px; padding:0; justify-content:center; border-radius:50%; font-size:11px; font-weight:700; line-height:1; color:var(--ink-2); background:var(--paper); border:1px solid var(--rule); }
.guide-page .qhelp::after { content:""; position:absolute; inset:-10px; }
.guide-page .qhelp[aria-expanded="true"] { color:var(--accent-ink); background:var(--accent); border-color:var(--accent); }
.guide-page p.help, .guide-page .field .help { font-size:12px; color:var(--ink-2); background:var(--accent-wash); border-radius:10px; padding:8px 10px; max-width:60ch; }
.step > .label-row h3 { flex:0 1 auto; }
.award-add { display:flex; flex-wrap:wrap; gap:8px; }
.guide-page .award-add button { min-height:36px; padding:6px 12px; font-size:12px; border-style:dashed; color:var(--ink-2); }
.guide-page .award .inner button.link { justify-self:start; min-height:0; padding:4px 0; font-size:12px; color:var(--ink-2); }
.guide-page .card .head .label-row h3 { margin:0; }
.plain-list { margin:6px 0 0; padding-left:1.1em; display:grid; gap:3px; }
table.compare tr.strong td { font-weight:700; }
.foot-links { display:flex; gap:16px; }
.app-header { flex-wrap:wrap; }
.card-body > button { justify-self:start; }

/* Home widgets: Quick Check on the left, Explore and STARS beside it, the full comparison below. */
.home-grid { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr); grid-template-rows:auto 1fr; gap:24px; align-items:start; }
.home-grid .quick-panel { grid-row:span 2; }
.home-grid .home-programs { grid-column:1/-1; margin:0; }
.explore-panel, .stars-panel { display:grid; gap:17px; }
.program-topics { display:grid; gap:8px; }
.program-topics:empty { display:none; }
.widget-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.programs-body { display:grid; gap:17px; }
.programs-body[hidden] { display:none; }
.stars-drop { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:18px; border:1.5px dashed var(--rule); border-radius:14px; background:var(--paper); }
.stars-drop[hidden] { display:none; }
.stars-drop.dragging { border-color:var(--accent); background:var(--accent-wash); }
.stars-drop:focus-within label { outline:2px solid var(--accent); outline-offset:2px; }
.stars-drop label { cursor:pointer; }
.stars-drop-hint { color:var(--ink-2); font-size:13px; }
.stars-file { display:grid; justify-items:start; gap:9px; padding:16px 18px; border-radius:14px; background:var(--accent-wash); }
.stars-file[hidden] { display:none; }
.stars-file-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.stars-file-row strong { font-size:13px; overflow-wrap:anywhere; }
.stars-file p { color:var(--ink-2); font-size:12px; }
.stars-error { color:var(--crit); font-size:12px; }
.home-page .wrap { max-width:1180px; }
.guide-page .btn.quiet { background:transparent; border-color:transparent; color:var(--ink-2); }
.guide-page .btn.quiet:hover { background:var(--accent-wash); border-color:var(--accent); }
.guide-page .header-actions [aria-current="page"] { background:var(--accent-wash); color:var(--ink); font-weight:700; }
.home-panel { min-width:0; padding:25px; background:var(--sheet); border:1px solid var(--rule); border-radius:20px; }
.home-panel h2 { font-size:22px; line-height:1.2; letter-spacing:-.03em; }
.home-panel .section-head > p { font-size:13px; color:var(--ink-2); }
.quick-panel { position:static; }
.quick-panel form { display:grid; gap:17px; margin:23px 0; }
.quick-panel .field { gap:8px; }
.quick-result { padding:18px; background:var(--accent-wash); border-radius:14px; display:grid; justify-items:start; gap:9px; }
.quick-result .result-title { font-weight:700; font-size:13px; }
.quick-result #quickExplanation { color:var(--ink-2); font-size:13px; line-height:1.5; }
.quick-rules { display:grid; gap:9px; margin:16px 0 18px; color:var(--ink-2); }
.quick-rules:empty { display:none; }
.quick-rules h3 { color:var(--ink); font-size:14px; margin:0 0 2px; }
.quick-policy { border:1px solid var(--rule); border-left:3px solid var(--accent); border-radius:11px; padding:11px 13px; background:var(--paper); }
.quick-policy strong { display:block; color:var(--ink); font-size:12px; margin-bottom:5px; }
.quick-policy p { font-size:12px; line-height:1.45; }
.quick-policy-sources { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.guide-page .btn.primary { background:var(--accent); border-color:var(--accent); color:var(--accent-ink); }
.guide-page .btn.primary:hover { background:#51408e; color:#fff; }
.open-calculator { justify-content:center; width:100%; }
.quick-note { color:var(--ink-2); font-size:11px; line-height:1.5; margin-top:12px; }
.scope-note { padding:14px 16px; border-radius:12px; background:var(--accent-wash); color:var(--ink-2); font-size:13px; }
.scope-note button { margin:8px 0 0; }
.home-programs { display:grid; gap:17px; }
.home-programs .matrix { width:100%; }
.calculator-title { display:flex; align-items:center; gap:12px; }
.guide-page .example-help { width:27px; height:27px; font-size:13px; }
.example-popover { width:min(390px,100%); padding:15px 17px; background:var(--sheet); border:1px solid var(--rule); border-radius:14px; box-shadow:0 8px 24px #29253c12; }
.example-popover[hidden] { display:none; }
.example-popover p { color:var(--ink-2); font-size:12px; line-height:1.45; margin-bottom:10px; }
.example-popover button { font-size:12px; }
.calculator-actions { display:flex; justify-content:flex-end; padding:12px 0 4px; border-top:1px solid var(--rule); }
.calculator-actions button { font-size:12px; }
@media (max-width:760px) {
  .quick-panel { position:static; }
  .home-panel { padding:20px; }
  .home-grid { grid-template-columns:1fr; grid-template-rows:none; gap:17px; }
  .home-grid .quick-panel { grid-row:auto; }
  .header-actions { flex-wrap:wrap; }
  .header-actions .btn { min-height:36px; padding:7px 10px; font-size:12px; }
}
