:root {
  --ink:#20201d;
  --paper:#f8f5ee;
  --surface:#fffdf8;
  --muted:#6b6a64;
  --rule:#d7d0c2;
  --accent:#8e3d25;
  --focus:#155f87;
  --link:#71311f;
  --shadow:rgba(32,32,29,.08);
  --track:#e6e0d3;
  --notice-bg:#f5e8dd;
  --metric-bg:#f4efe5;
  --warning-border:#8f211f;
  --warning-ink:#701b1b;
  --warning-bg:#fff0ed;
  --family-track:#e9e2d5;
  --gate-pass-border:#2e6a4d;
  --gate-pass-bg:#e7f0e9;
  --matrix-header:#efe8da;
  --matrix-negative:#dbe8f2;
  --matrix-neutral:#f1e5b8;
  --matrix-positive:#dce9dc;
  --matrix-missing:#f0ece4;
}
* { box-sizing:border-box; }
html { background:var(--paper); color:var(--ink); font-family:Georgia, 'Times New Roman', serif; }
body { margin:0; min-width:320px; }
button, input, select { font:inherit; }
button { cursor:pointer; }
button:focus-visible, input:focus-visible + label, select:focus-visible, a:focus-visible, summary:focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.shell { width:min(900px, calc(100% - 32px)); margin-inline:auto; }
.analytics-page main.shell { width:min(1050px, calc(100% - 32px)); }
.site-header { padding:44px 0 34px; border-bottom:1px solid var(--ink); }
.eyebrow, .question-code { margin:0 0 9px; color:var(--accent); font:700 .78rem/1.3 system-ui, sans-serif; letter-spacing:.12em; text-transform:uppercase; }
h1,h2,h3,p { overflow-wrap:anywhere; }
h1 { max-width:760px; margin:0; font-size:clamp(2.2rem, 7vw, 4.8rem); line-height:.97; font-weight:500; }
.questionnaire-hero-title { max-width:none; font-size:clamp(1.45rem, 6.5vw, 3.2rem); white-space:nowrap; overflow-wrap:normal; }
h2 { margin:0; font-size:clamp(1.65rem, 4vw, 2.45rem); font-weight:500; }
h3 { margin:0; font-size:1.15rem; }
.lede { max-width:680px; margin:20px 0 0; color:var(--muted); font-size:1.06rem; line-height:1.55; }
main { padding:32px 0 56px; }
.panel { margin:0 0 24px; padding:clamp(20px, 5vw, 46px); border:1px solid var(--ink); background:var(--surface); box-shadow:5px 5px 0 var(--shadow); }
.questionnaire-panel { margin:0 0 24px; background:transparent; box-shadow:none; }
.questionnaire-progress .progress-track { margin:12px 0 28px; }
.questionnaire-card { padding:clamp(20px, 5vw, 46px); border:1px solid var(--ink); background:var(--surface); box-shadow:5px 5px 0 var(--shadow); }
.hidden { display:none !important; }
.section-heading { display:flex; gap:20px; align-items:start; justify-content:space-between; }
.progress-text { flex:none; margin:0; margin-inline-start:auto; font:700 .95rem system-ui,sans-serif; }
.progress-track { height:5px; margin:22px 0 34px; background:var(--track); }
.progress-track > div { width:100%; height:100%; background:var(--accent); transform:scaleX(var(--progress,0)); transform-origin:left center; transition:transform .18s ease-out; }
.notice { padding:12px; border-inline-start:4px solid var(--accent); background:var(--notice-bg); line-height:1.45; }
.wizard-question fieldset { min-width:0; margin:0; padding:0; border:0; }
.wizard-question legend { width:100%; padding:0; }
.question-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; }
.importance-toggle { flex:none; min-height:36px; padding:7px 10px; border:1px solid var(--ink); color:var(--ink); background:transparent; font:700 .78rem/1 system-ui,sans-serif; white-space:nowrap; }
.importance-toggle[aria-pressed="true"] { color:var(--surface); background:var(--ink); }
.question-title { display:block; margin-bottom:12px; color:var(--accent); font:700 .82rem system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.question-prompt { display:block; max-width:760px; font-size:clamp(1.35rem, 3vw, 2rem); line-height:1.18; }
.question-explanation { max-width:720px; margin:18px 0 0; color:var(--muted); line-height:1.55; }
.poles { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin:42px 0 20px; font:600 1rem/1.42 system-ui,sans-serif; }
.poles p { margin:0; }
.poles p:last-child { text-align:end; }
.scale { display:grid; grid-template-columns:repeat(5, 1fr); gap:10px; width:100%; }
.scale-choice, .unknown-radio { position:relative; min-height:52px; }
.scale-choice input, .unknown-radio input { position:absolute; opacity:0; inset:0; }
.scale-choice label { display:grid; place-items:center; width:100%; min-height:52px; border:1px solid var(--ink); background:var(--surface); }
.choice-key { font:700 1rem/1 system-ui,sans-serif; }
.scale-choice input:checked + label { color:var(--surface); background:var(--ink); }
.keyboard-hint { margin:10px 0 0; color:var(--muted); font:.78rem/1.45 system-ui,sans-serif; }
.unknown-choice { margin-top:20px; }
.unknown-radio { display:block; width:100%; min-height:52px; }
.unknown-label { display:flex; align-items:center; gap:12px; width:100%; min-height:52px; padding:10px 14px; border:1px solid var(--ink); font:600 .92rem/1.3 system-ui,sans-serif; }
.unknown-number { display:grid; flex:none; place-items:center; width:28px; height:28px; border:1px solid currentColor; font:700 .8rem/1 system-ui,sans-serif; }
.unknown-radio input:checked + label { color:var(--surface); background:var(--ink); }
.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; }
.wizard-actions { display:flex; justify-content:space-between; gap:12px; margin-top:42px; padding-top:20px; border-top:1px solid var(--rule); }
.primary,.secondary { min-height:46px; padding:10px 16px; border:1px solid var(--ink); font:700 .92rem system-ui,sans-serif; }
.primary { color:var(--surface); background:var(--ink); }
.secondary { color:var(--ink); background:transparent; }
button:disabled { cursor:not-allowed; opacity:.45; }
.data-not-ready-result h2 { margin-bottom:16px; }
.data-not-ready-result > p:not(.eyebrow) { max-width:650px; color:var(--muted); line-height:1.55; }
.completion-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:28px 0 0; }
.completion-metrics div { padding:14px; border-top:2px solid var(--accent); background:var(--metric-bg); }
.completion-metrics dt { color:var(--muted); font:.76rem system-ui,sans-serif; }
.completion-metrics dd { margin:7px 0 0; font:700 1rem/1.25 system-ui,sans-serif; }
.warning-panel { width:min(900px, calc(100% - 32px)); margin:0 auto 24px; padding:16px; border:2px solid var(--warning-border); color:var(--warning-ink); background:var(--warning-bg); font: .9rem/1.45 system-ui,sans-serif; }
.warning-panel ul { margin-bottom:0; }
#debug details { margin-top:12px; padding-top:12px; border-top:1px solid var(--rule); }
#debug table { width:100%; margin-top:12px; border-collapse:collapse; font: .86rem system-ui,sans-serif; }
#debug th,#debug td { padding:8px; border-bottom:1px solid var(--rule); text-align:start; }
#debug ul { max-height:250px; overflow:auto; font: .82rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace; }
.site-footer { padding:24px 0 42px; border-top:1px solid var(--ink); color:var(--muted); font:.85rem/1.5 system-ui,sans-serif; }
.header-link,.analytics-link { margin:22px 0 0; font:700 .88rem/1.35 system-ui,sans-serif; }
a { color:var(--link); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover { color:var(--ink); }
.live-result > h2 { max-width:720px; margin-top:8px; }
.result-score { margin:16px 0 0; color:var(--accent); font:500 clamp(3.2rem, 10vw, 6rem)/.85 Georgia,serif; }
.result-summary { max-width:700px; margin:18px 0 0; color:var(--muted); line-height:1.55; }
.near-ties { margin:30px 0; padding:16px 0; border-block:1px solid var(--rule); }
.near-ties p { margin:8px 0 0; font:600 1rem/1.5 system-ui,sans-serif; }
.result-ranking { margin-top:38px; }
.result-ranking h4 { margin:25px 0 0; color:var(--muted); font:700 .86rem/1.3 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.result-ranking ol { margin:12px 0 0; padding:0; list-style:none; }
.ranking-row { display:grid; grid-template-columns:32px minmax(110px,1fr) 65px 100px 55px; gap:10px; align-items:baseline; padding:10px 0; border-top:1px solid var(--rule); font:.88rem/1.35 system-ui,sans-serif; }
.ranking-row strong { font-size:.96rem; }
.ranking-row-ineligible { color:var(--muted); }
.ranking-place { color:var(--accent); font-weight:700; }
.result-highlights { display:grid; grid-template-columns:1fr 1fr; gap:30px; margin:42px 0; padding-block:20px; border-block:1px solid var(--ink); }
.result-highlights ul { margin:12px 0 0; padding:0; list-style:none; font:.9rem/1.45 system-ui,sans-serif; }
.result-highlights li { padding:7px 0; border-top:1px solid var(--rule); }
.family-profile { margin-top:40px; }
.family-result { padding:22px 0; border-top:1px solid var(--rule); }
.family-result-heading { display:flex; gap:16px; align-items:baseline; justify-content:space-between; }
.family-result-heading strong { color:var(--accent); font:700 1.15rem system-ui,sans-serif; }
.family-result > p { margin:8px 0 0; color:var(--muted); font:.84rem/1.4 system-ui,sans-serif; }
.family-bar { height:9px; margin-top:14px; background:var(--family-track); }
.family-bar span { display:block; width:100%; height:100%; background:var(--accent); transform:scaleX(var(--family-score,0)); transform-origin:left center; transition:transform .18s ease-out; }
.question-evidence { margin-top:12px; padding:12px 0 0; border-top:1px dotted var(--rule); }
.question-evidence summary { cursor:pointer; font:600 .86rem/1.4 system-ui,sans-serif; }
.question-evidence p { max-width:720px; margin:12px 0 0; color:var(--muted); line-height:1.5; }
.evidence-facts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin:14px 0 0; }
.evidence-facts div { padding:8px; background:var(--metric-bg); }
.evidence-facts dt { color:var(--muted); font:.7rem/1.3 system-ui,sans-serif; }
.evidence-facts dd { margin:4px 0 0; font:700 .82rem/1.3 system-ui,sans-serif; overflow-wrap:anywhere; }
.evidence-sources { font:.84rem/1.5 system-ui,sans-serif; }
.gate-pass,.gate-fail { padding:13px 16px; margin:22px 0; border-inline-start:4px solid; line-height:1.5; }
.gate-pass { border-color:var(--gate-pass-border); background:var(--gate-pass-bg); }
.gate-fail { border-color:var(--warning-border); background:var(--warning-bg); }
.analytics-filters { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:24px; }
.analytics-filters label { display:grid; gap:6px; color:var(--muted); font:700 .78rem/1.3 system-ui,sans-serif; letter-spacing:.04em; }
.analytics-filters select { min-height:42px; padding:8px; border:1px solid var(--ink); color:var(--ink); background:var(--surface); }
.table-scroll { overflow-x:auto; margin-top:24px; border:1px solid var(--rule); }
.analytics-matrix-desktop { display:block; }
.analytics-matrix-mobile { display:none; }
.analytics-matrix-table,.audit-table { width:max-content; min-width:100%; border-collapse:collapse; font:.78rem/1.3 system-ui,sans-serif; }
.analytics-matrix-table th,.analytics-matrix-table td { padding:0; border-bottom:1px solid var(--rule); text-align:start; vertical-align:middle; }
.audit-table th,.audit-table td { padding:8px; border-bottom:1px solid var(--rule); text-align:start; vertical-align:top; }
.analytics-matrix-table thead th { position:sticky; top:0; background:var(--matrix-header); }
.analytics-matrix-table tbody th { position:sticky; inset-inline-start:0; z-index:1; background:var(--surface); min-width:100px; padding:4px 6px; }
.analytics-matrix-desktop .analytics-matrix-table thead th { min-width:30px; padding:3px 0; text-align:center; }
.matrix-cell { display:block; width:30px; min-width:30px; height:30px; min-height:30px; padding:0; border:1px solid var(--ink); color:var(--ink); font-size:.68rem; font-weight:700; line-height:1; }
.analytics-matrix-mobile .analytics-matrix-table tbody th { min-width:150px; max-width:180px; }
.analytics-matrix-mobile .analytics-matrix-table thead th { min-width:44px; max-width:56px; padding:5px 2px; font-size:.68rem; line-height:1.1; writing-mode:vertical-rl; transform:rotate(180deg); }
.analytics-matrix-mobile .matrix-cell { width:30px; min-width:30px; height:30px; min-height:30px; font-size:.72rem; }
.matrix-value-negative { background:var(--matrix-negative); }
.matrix-value-neutral { background:var(--matrix-neutral); }
.matrix-value-positive { background:var(--matrix-positive); }
.matrix-value-missing { color:var(--muted); background:var(--matrix-missing); }
.provenance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:26px; }
.provenance-grid ul,.source-list { margin:12px 0 0; padding:0; list-style:none; font:.86rem/1.4 system-ui,sans-serif; }
.provenance-grid li { display:flex; justify-content:space-between; gap:16px; padding:7px 0; border-top:1px solid var(--rule); }
.source-list li { padding:8px 0; border-top:1px solid var(--rule); }
.source-list span { color:var(--muted); font-size:.8em; }
@media (max-width:620px) {
  .site-header { padding-top:30px; }
  .panel { padding:20px; }
  .questionnaire-card { padding:20px; }
  .section-heading { gap:12px; }
  .question-heading { gap:10px; }
  .importance-toggle { width:36px; min-height:36px; padding:0; font-size:0; }
  .importance-toggle::first-letter { font-size:1.1rem; }
  .poles { grid-template-columns:1fr; gap:10px; margin-top:30px; }
  .poles p:last-child { text-align:start; }
  .scale { gap:6px; }
  .scale-choice, .scale-choice label { min-height:48px; }
  .completion-metrics { grid-template-columns:1fr; }
  .ranking-row { grid-template-columns:28px minmax(0,1fr) 55px; }
  .ranking-row span:nth-last-child(-n+2) { grid-column:2 / -1; }
  .result-highlights,.provenance-grid { grid-template-columns:1fr; gap:22px; }
  .evidence-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-filters { grid-template-columns:1fr; }
  .analytics-matrix-desktop { display:none; }
  .analytics-matrix-mobile { display:block; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
