:root { color-scheme: light; --ink:#182b40; --muted:#4b5d6e; --paper:#f7f8fa; --line:#d8e0e7; --navy:#17365a; --accent:#dbeafa; --warm:#ffedba; font: 100%/1.6 system-ui,sans-serif; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; color:var(--ink); background:var(--paper); }
h1,h2,h3,p,ul,dl { margin:0; }
h1,h2,h3 { line-height:1.15; }
a { color:#1f4f7d; text-underline-offset:.19em; }
:focus-visible,.result:focus { outline:3px solid #266ca8; outline-offset:4px; }
.skip:not(:focus), .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip:focus { position:absolute; z-index:2; top:.7rem; left:.7rem; padding:.6rem; background:#fff; }
.wrap { width:min(69rem,calc(100% - 3rem)); margin-inline:auto; }
header,footer { border-block-end:1px solid var(--line); background:white; }
.bar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.35rem 1rem; min-height:4rem; padding-block:.4rem; }
.brand { color:var(--ink); font-weight:800; text-decoration:none; display:inline-flex; align-items:center; gap:.65rem; }
.brand img { width:2rem; height:2rem; }
.bar nav { display:flex; gap:1.1rem; }
.bar a { min-height:44px; display:inline-flex; align-items:center; }
.hero { padding:clamp(2rem,6vw,4.3rem) 0 1.55rem; }
.eyebrow { color:#315a80; text-transform:uppercase; font-size:.76rem; font-weight:800; letter-spacing:.11em; }
h1 { margin-top:.5rem; max-width:22ch; font-size:clamp(2.2rem,5.6vw,4.25rem); letter-spacing:-.054em; text-wrap:balance; }
.lede { margin-top:.8rem; max-width:64ch; color:var(--muted); font-size:1.09rem; }
.scope { padding:.9rem 1rem; border:1px solid var(--line); border-inline-start:4px solid #547fa7; background:#edf4fb; border-radius:.55rem; margin-bottom:1rem; font-size:.92rem; }
.scope strong { margin-inline-end:.3rem; }
.work { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:start; gap:1rem; }
.sheet,.result { border-radius:.95rem; padding:clamp(1rem,3vw,1.7rem); }
.sheet { background:#fff; border:1px solid var(--line); }
.sheet h2,.result h2 { font-size:1.27rem; }
#input-status,.hint { color:var(--muted); }
#input-status { margin-top:.45rem; font-size:.87rem; }
fieldset { margin:1rem 0 0; padding:0; border:0; min-width:0; }
.fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.9rem; }
.wide { grid-column:1/-1; }
label { display:block; font-size:.88rem; font-weight:740; line-height:1.4; margin-bottom:.3rem; }
.entry { display:flex; gap:.35rem; align-items:center; }
.entry span { font-weight:650; color:var(--muted); }
input,select,textarea,button { font:inherit; }
input,select,textarea { color:var(--ink); background:#f9fbfd; width:100%; min-width:0; border:1px solid #91a6b8; border-radius:.48rem; padding:.5rem .65rem; min-height:44px; }
textarea { resize:vertical; }
input[aria-invalid],select[aria-invalid],textarea[aria-invalid] { border-color:#942823; }
.hint { margin-top:.25rem; font-size:.78rem; line-height:1.45; }
.actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1.15rem; }
button { min-height:44px; border:1px solid #94a8ba; border-radius:.48rem; background:#fff; color:var(--ink); cursor:pointer; padding:.42rem .75rem; font-weight:720; font-size:.89rem; }
button:hover { background:#e8f1f9; }
button:disabled { opacity:.62; cursor:default; }
button.primary { background:var(--navy); color:white; border-color:var(--navy); }
button.primary:hover { background:#254c74; }
.error { margin-top:.75rem; padding:.65rem; background:#faeae7; color:#801e1e; border-radius:.45rem; }
.result { background:var(--navy); color:white; }
.result .eyebrow { color:var(--warm); margin-bottom:.5rem; }
.result .figure { color:var(--warm); font-size:clamp(1.65rem,4vw,2.85rem); font-weight:820; letter-spacing:-.036em; overflow-wrap:anywhere; line-height:1.1; margin-top:.45rem; }
.result p + p, .result h2 + p { margin-top:.55rem; }
.result-note,.privacy-note,#result-pending p:last-child { color:#e5edf7; font-size:.9rem; }
.result-reference a { color:#e5edf7; font-size:.9rem; }
.result-reference a:focus-visible { outline-color:var(--warm); }
.result dl { margin-top:.8rem; }
.result dl div { display:grid; grid-template-columns:1fr minmax(0,auto); gap:.6rem; border-top:1px solid #ffffff45; padding:.58rem 0; font-size:.89rem; }
.result dd { margin:0; font-weight:720; text-align:right; max-width:17ch; overflow-wrap:anywhere; }
.result button { color:white; background:transparent; margin-top:.85rem; }
.result button:hover { background:#ffffff20; }
.result button:focus-visible { outline-color:var(--warm); }
.privacy-note { margin-top:.9rem; }
.method,.related { margin-top:2rem; padding-top:1.3rem; border-top:1px solid var(--line); }
.method h2,.related h2 { margin-bottom:.55rem; font-size:1.65rem; }
.method p,.method ul { max-width:75ch; }
.method ul { padding-left:1.2rem; }
.method details { max-width:75ch; margin:.95rem 0; border:1px solid var(--line); border-radius:.55rem; padding:.6rem .8rem; background:white; }
.method summary { font-weight:740; cursor:pointer; }
.method details p { margin-top:.4rem; }
.sources { margin-top:.85rem; }
.sources h3 { margin-bottom:.4rem; }
.snapshot { margin-top:.5rem; color:var(--muted); font-size:.85rem; }
footer { margin-top:2.75rem; border-top:1px solid var(--line); border-bottom:0; }
footer p { font-size:.83rem; }
.cards { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; }
.card { display:block; height:100%; padding:1rem; border:1px solid var(--line); border-radius:.65rem; color:var(--ink); background:white; text-decoration:none; }
.card:hover { border-color:#315a80; background:#edf4fb; }
.card strong { display:block; margin:.3rem 0; line-height:1.25; }
.card span:last-child { color:var(--muted); font-size:.87rem; }
.print-only { display:none; }
@media(max-width:52rem) { .work { grid-template-columns:1fr; } .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:34rem) { .wrap { width:calc(100% - 2rem); } .fields,.cards { grid-template-columns:1fr; } .result dd { max-width:12ch; } }
@media print {
  body:has(#result-content:not([hidden])) :is(header,footer,.skip,.hero,.scope,.sheet,.method,.related,.privacy-note,.result-reference,#print) { display:none; }
  .work { display:block; }
  .result { background:white; color:black; padding:0; }
  .result :is(.eyebrow,.figure,.result-note) { color:black; }
  .result dl div { border-color:#aaa; break-inside:avoid; }
  .print-only { display:block; }
}
