:root {
  --white:#fff; --off-white:#f5f9fd; --blue-tint:#e8f1f8;
  --blue-light:#c8ddf0; --blue-baby:#9ac4e0; --blue-mid:#6a9ec2;
  --blue-deep:#3a6f94; --blue-dark:#1e3a52;
  --ink:#1a2a3a; --ink-light:#4a6275; --ink-muted:#7a9aaf;
  --rule:#c4d8e8;
  --font-display:'Libre Baskerville',Georgia,serif;
  --font-body:'DM Sans',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:var(--off-white);color:var(--ink);font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased}
#root{max-width:880px;margin:0 auto;padding:3rem 1.5rem}
.loading{color:var(--ink-muted);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;text-align:center;padding:4rem 0}
h1,h2{font-family:var(--font-display);font-weight:400;color:var(--ink)}
h1{font-size:2.25rem;line-height:1.15;margin-bottom:.75rem}
h1 em{font-style:italic;color:var(--blue-deep)}
h2{font-size:1.4rem;margin-bottom:.5rem}
.eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--blue-deep);margin-bottom:.75rem}
.subtitle{color:var(--ink-light);font-size:.95rem;margin-bottom:2rem;max-width:620px}
.btn-primary{background:var(--blue-dark);color:var(--white);border:1px solid var(--blue-dark);padding:.85rem 1.6rem;font-family:var(--font-body);font-size:.85rem;letter-spacing:.08em;cursor:pointer;text-decoration:none;display:inline-block;font-weight:500}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}
.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--rule);padding:.85rem 1.6rem;font-family:var(--font-body);font-size:.85rem;cursor:pointer;text-decoration:none;display:inline-block}
input,select,textarea{width:100%;font-family:var(--font-body);font-size:.95rem;color:var(--ink);background:var(--white);border:1px solid var(--rule);padding:.75rem .85rem;border-radius:0}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue-deep)}
label{display:block;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-light);margin-bottom:.35rem;font-weight:500}
.field{margin-bottom:1.25rem}
.domains{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}
.domain-card{background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--blue-deep);padding:1.5rem 1.25rem;cursor:pointer;transition:transform .15s,border-color .15s}
.domain-card:hover{transform:translateY(-2px);border-top-color:var(--blue-dark)}
.domain-card h3{font-family:var(--font-display);font-size:1.1rem;margin-bottom:.35rem}
.domain-card p{font-size:.85rem;color:var(--ink-light)}
.data-form{background:var(--white);border:1px solid var(--rule);padding:1.75rem 1.5rem;margin-bottom:1.5rem}
.dossier{background:var(--white);border:1px solid var(--rule);border-top:3px solid var(--blue-deep);padding:2rem 1.75rem;margin-bottom:1.5rem}
.dossier .answer{background:var(--blue-dark);color:var(--white);padding:.9rem 1rem;font-family:var(--font-display);font-style:italic;margin-bottom:1.5rem}
.dossier .derivation dt{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-deep);padding-top:.4rem}
.dossier .derivation dd{padding:.35rem 0;border-bottom:1px dashed var(--rule);font-size:.85rem}
.dossier .inline-data{font-family:var(--font-mono);background:var(--blue-tint);color:var(--blue-dark);padding:.05rem .42rem;border-bottom:1.5px solid var(--blue-deep);font-size:.85em}
.codex-list{display:flex;flex-direction:column;gap:.75rem}
.codex-row{background:var(--white);border:1px solid var(--rule);padding:1rem 1.25rem;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;text-decoration:none;color:var(--ink)}
.codex-row .dom{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--blue-deep);min-width:90px}
.codex-row .q{font-family:var(--font-display);font-style:italic}
.codex-row .when{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-muted)}
.error{background:var(--blue-tint);border-left:2px solid var(--blue-deep);padding:.65rem .85rem;color:var(--ink);font-size:.88rem;margin-bottom:1rem}
.success{border-left:2px solid #2d7a5f;padding:.65rem .85rem;background:#e9f5ef;font-size:.88rem;margin-bottom:1rem}
.suggested-list{display:flex;flex-direction:column;gap:.6rem}
.suggested-card{padding:1rem 1.25rem;background:#fff;border:1px solid var(--rule);border-left:3px solid var(--blue-deep);border-top:3px solid var(--blue-deep)}
.suggested-card .sg-head{display:flex;align-items:baseline;gap:.85rem;flex-wrap:wrap;margin-bottom:.4rem}
.suggested-card .sg-key{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--ink)}
.suggested-card .sg-val{font-family:var(--font-display);font-style:italic;font-size:1.1rem;color:var(--ink)}
.suggested-card .sg-pct{font-family:var(--font-mono);font-size:.7rem;color:var(--blue-deep);background:var(--blue-tint);padding:.15rem .55rem;border-radius:99px;letter-spacing:.04em}
.suggested-card .sg-why{font-family:var(--font-body);font-size:.9rem;color:var(--ink);margin-bottom:.85rem;line-height:1.5}
.suggested-card .sg-btn{padding:.7rem 1.25rem;font-size:.78rem;letter-spacing:.08em}

.data-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}
.data-row{display:grid;grid-template-columns:1fr 1.2fr 90px;gap:1rem;align-items:center;padding:.7rem 1rem;background:var(--white);border:1px solid var(--rule);border-left:3px solid var(--blue-deep)}
.data-row.has-cohort,.data-row.has-series{grid-template-columns:1fr 1.2fr 90px;grid-template-rows:auto auto;row-gap:.5rem}
.data-row .d-spark{grid-column:1 / -1;padding:.4rem .25rem .15rem;background:var(--off-white);border-radius:2px}
.data-row .d-key{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--ink)}
.data-row .d-val{font-family:var(--font-display);font-style:italic;font-size:.95rem;color:var(--ink)}
.data-row .d-when{font-family:var(--font-mono);font-size:.65rem;color:var(--ink-muted);text-align:right}
.data-row .d-cohort{grid-column:1 / -1;padding:.5rem .65rem;background:var(--blue-tint);border-radius:2px;border-left:2px solid var(--blue-deep);font-size:.82rem;line-height:1.45}
.data-row .d-cohort-percentile{font-family:var(--font-display);font-style:italic;font-size:.95rem;color:var(--blue-deep);margin-right:.5rem}
.data-row .d-cohort-band{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-light);letter-spacing:.04em}
.data-row .d-cohort-interp{margin-top:.3rem;color:var(--ink);font-size:.85rem}
.data-row .d-cohort-source{margin-top:.3rem;font-family:var(--font-mono);font-size:.62rem;color:var(--ink-muted);letter-spacing:.04em}
.data-form .form-row{display:flex;gap:.75rem}
.data-form .form-row .field{margin-bottom:1rem}
@media (max-width:640px){.data-row{grid-template-columns:1fr;gap:.25rem}.data-form .form-row{flex-direction:column;gap:0}}
.intake-form{max-width:560px}
.intake-form textarea{font-family:var(--font-body);min-height:120px;resize:vertical;line-height:1.5}
.intake-form .form-error{display:none;margin-top:.85rem;color:#a44;font-size:.85rem}
.radio-row{display:flex;flex-wrap:wrap;gap:1rem;font-family:var(--font-body);font-size:.9rem;color:var(--ink);text-transform:none;letter-spacing:0}
.radio-row label{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-size:.9rem;color:var(--ink);text-transform:none;letter-spacing:0;font-weight:400;margin-bottom:0;cursor:pointer}
.radio-row input[type="radio"]{width:auto;margin:0}

/* ===== Dossier as printable artifact ===================================== */
.dossier-controls{display:flex;gap:.75rem;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap}
.dossier-print{
  background:var(--white);
  border:1px solid var(--rule);
  border-top:3px solid var(--blue-deep);
  padding:2.5rem 2.25rem 2rem;
  max-width:780px;
  margin:0 auto;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.d-print-header{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
  border-bottom:1px solid var(--rule);padding-bottom:1rem;margin-bottom:1.5rem;
}
.d-print-mark{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.4em;
  color:var(--blue-deep);font-weight:600;display:block;margin-bottom:.2rem;
}
.d-print-tagline{
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-light);
}
.d-print-meta{
  font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-light);text-align:right;line-height:1.6;
}
.d-print-question{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:1.55rem;line-height:1.3;margin:0 0 1.5rem;color:var(--ink);
}
.dossier-print .answer{
  background:var(--blue-dark);color:var(--white);
  padding:1rem 1.15rem;font-family:var(--font-display);font-style:italic;
  font-size:1.05rem;line-height:1.45;margin-bottom:1.5rem;
}
.d-print-body{font-size:.95rem;line-height:1.7;margin-bottom:1.75rem;color:var(--ink)}
.d-print-section{margin:1.75rem 0;padding-top:1.25rem;border-top:1px solid var(--rule)}
.d-print-section h3{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--blue-deep);margin:0 0 .75rem;font-weight:500;
}
.d-print-section ul{padding-left:1.2rem;margin:0}
.d-print-section li{margin-bottom:.4rem;font-size:.9rem;line-height:1.55;color:var(--ink)}
.d-print-cites{padding-left:1.2rem;margin:0;list-style:decimal}
.d-print-cites li{margin-bottom:.85rem;font-size:.88rem;line-height:1.55}
.d-cite-role{
  display:inline-block;font-family:var(--font-mono);font-size:.6rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--blue-deep);
  background:var(--blue-tint);padding:.1rem .4rem;border-radius:2px;margin-right:.5rem;
}
.d-cite-id{font-family:var(--font-mono);font-size:.78rem;color:var(--ink)}
.d-cite-howused{font-style:italic;color:var(--ink-light);margin-top:.25rem;font-size:.85rem}
.d-print-derivation{
  margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--rule);
  display:grid;grid-template-columns:max-content 1fr;column-gap:1.25rem;row-gap:.4rem;
}
.d-print-derivation dt{
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--blue-deep);padding-top:.15rem;
}
.d-print-derivation dd{margin:0;font-size:.85rem;color:var(--ink);line-height:1.55}
.d-print-footer{
  margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--rule);
  font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-muted);text-align:center;line-height:1.7;
}
.d-print-id{color:var(--ink-light)}
.d-print-promise{color:var(--blue-deep);font-weight:500;margin-top:.4rem}
.d-print-url{margin-top:.4rem;color:var(--ink-muted)}

@media print{
  body{background:#fff;color:#000;font-size:10.5pt;line-height:1.5}
  .no-print, header, footer, nav, .nav-toggle, .nav-links{display:none !important}
  .dossier-print{
    box-shadow:none;border:none;border-top:2pt solid #000;
    padding:.5cm;max-width:100%;margin:0;
  }
  .d-print-mark{color:#000}
  .d-print-question{color:#000;font-size:18pt}
  .dossier-print .answer{background:#000;color:#fff;padding:.4cm .5cm;font-size:11pt}
  .d-cite-role{background:#eee;color:#000}
  .d-print-section h3, .d-print-derivation dt, .d-print-mark{color:#000}
  .d-print-promise{color:#000}
  a[href]:after{content:""}
  .dossier-print, .d-print-section, .d-print-footer{page-break-inside:avoid}
  .d-print-cites li, .d-print-derivation{page-break-inside:auto}
  @page{margin:1.5cm}
}

@media (max-width:640px){.domains{grid-template-columns:1fr}}
