:root{
  --sans:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --head:'Source Serif 4',Georgia,serif;
  --head-ls:-.005em;
  --bg:#ffffff;
  --ink:#111a26;
  --ink-2:#415063;
  --muted:#6d7c90;
  --line:#e2e8f0;
  --line-2:#c3cfdd;
  --tint:#eef3fa;
  --card:#ffffff;
  --thead:#f4f7fc;
  --accent:#17457f;
  --accent-d:#0f3160;
  --hero-bg:#f6f9fd;
  --head-bg:#ffffff;
  --strip-bg:#132a4a;
  --strip-fg:#d5e1f1;
  --strip-line:#0d2039;
  --foot-bg:#132a4a;
  --foot-fg:#d0dcee;
  --foot-mut:#93a6c1;
  --foot-link:#ffffff;
  --foot-line:#28405f;
  --warn:#a35a08;
  --warn-bg:#fdf6ec;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);
  font:400 17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--head);line-height:1.2;margin:0;color:var(--ink);
  letter-spacing:var(--head-ls,-.01em);font-weight:var(--head-w,700)}
h1{font-size:clamp(2rem,1.3rem + 2.4vw,3rem)}
h2{font-size:clamp(1.4rem,1.1rem + 1.1vw,1.9rem);margin-top:2.6rem}
h3{font-size:1.12rem;margin-top:1.9rem}
p,ul,ol,dl,table,figure{margin:1rem 0}
a{color:var(--accent);text-underline-offset:2px}
a:hover{color:var(--accent-d)}
img,svg{max-width:100%}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
code{font:500 .88em/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;
  background:var(--tint);padding:.12em .38em;border-radius:4px}
.wrap{max-width:74rem;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
.prose{max-width:44rem}
.prose ul,.prose ol{padding-left:1.25rem}
.prose li{margin:.4rem 0}
.lede{font-size:1.14rem;color:var(--ink-2)}

/* ---------- disclaimer strip ---------- */
.strip{background:var(--strip-bg);color:var(--strip-fg);font-size:.83rem;
  line-height:1.5;padding:.6rem 0;border-bottom:1px solid var(--strip-line)}
.strip .wrap{display:flex;gap:.6rem;align-items:flex-start}
.strip b{font-weight:650}
.strip a{color:inherit}

/* ---------- header ---------- */
header.site{background:var(--head-bg);border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:40}
header.site .wrap{display:flex;align-items:center;gap:1.4rem;min-height:72px}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;flex:0 0 auto}
.brand svg{flex:0 0 auto}
.brand .bt{display:flex;flex-direction:column;line-height:1.05}
.brand .b1{font:600 .64rem/1.1 var(--sans);letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted)}
.brand .b2{font-family:var(--head);font-weight:700;font-size:1.06rem;color:var(--ink);
  letter-spacing:-.015em}
nav.main{margin-left:auto;display:flex;gap:.15rem;flex-wrap:wrap}
nav.main a{display:block;padding:.45rem .6rem;border-radius:6px;font-size:.905rem;
  color:var(--ink-2);text-decoration:none;font-weight:500}
nav.main a:hover{background:var(--tint);color:var(--ink)}
nav.main a[aria-current]{color:var(--accent);background:var(--tint)}
@media(max-width:900px){
  header.site .wrap{flex-wrap:wrap;padding-top:.7rem;padding-bottom:.7rem;min-height:0}
  nav.main{margin-left:0;width:100%;border-top:1px solid var(--line);padding-top:.5rem;
    overflow-x:auto;flex-wrap:nowrap}
  nav.main a{white-space:nowrap}
}

/* ---------- hero ---------- */
.hero{background:var(--hero-bg);border-bottom:1px solid var(--line);
  padding:clamp(2.4rem,6vw,4.2rem) 0}
.hero .eyebrow{font:600 .7rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin-bottom:.9rem}
.hero p.lede{max-width:42rem;margin-top:1rem}
.updated{font-size:.83rem;color:var(--muted);margin-top:1.4rem}
.updated b{font-weight:600;color:var(--ink-2)}

/* ---------- generic blocks ---------- */
main{padding:clamp(2rem,5vw,3.4rem) 0 1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:1.3rem 1.4rem}
.card h3{margin-top:0}
.grid{display:grid;gap:1rem;margin:1.4rem 0}
.g2{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.stat{border:1px solid var(--line);border-radius:10px;padding:1.05rem 1.1rem;
  background:var(--card)}
.stat .n{font-family:var(--head);font-weight:700;font-size:1.75rem;color:var(--accent);
  line-height:1.1;letter-spacing:-.02em}
.stat .l{font-size:.87rem;color:var(--ink-2);margin-top:.35rem}
.stat .s{font-size:.78rem;color:var(--muted);margin-top:.3rem}

.callout{border-left:3px solid var(--accent);background:var(--tint);
  padding:.95rem 1.15rem;border-radius:0 8px 8px 0;margin:1.5rem 0;font-size:.96rem}
.callout p:first-child{margin-top:0}
.callout p:last-child{margin-bottom:0}
.callout.warn{border-left-color:var(--warn);background:var(--warn-bg)}
.callout .t{font-weight:650;display:block;margin-bottom:.3rem}

dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:.5rem 1.4rem;
  font-size:.96rem;margin:1.2rem 0}
dl.kv dt{font-weight:600;color:var(--ink-2)}
dl.kv dd{margin:0}
@media(max-width:640px){dl.kv{grid-template-columns:1fr;gap:.15rem}
  dl.kv dd{margin-bottom:.7rem}}

/* ---------- tables ---------- */
.tw{overflow-x:auto;margin:1.4rem 0;border:1px solid var(--line);border-radius:10px;
  background:var(--card)}
table{border-collapse:collapse;width:100%;font-size:.92rem;margin:0}
th,td{text-align:left;padding:.62rem .85rem;border-bottom:1px solid var(--line);
  vertical-align:top}
thead th{background:var(--thead);font-weight:650;font-size:.79rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--ink-2);white-space:nowrap;position:sticky;top:0}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--tint)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tw table td:first-child{font-weight:550}

/* ---------- link lists ---------- */
.links{list-style:none;padding:0;margin:1.2rem 0;display:grid;gap:.55rem}
.links li{border:1px solid var(--line);border-radius:8px;padding:.75rem .95rem;
  background:var(--card)}
.links a.t{font-weight:600;text-decoration:none;display:block}
.links a.t:hover{text-decoration:underline}
.links .d{font-size:.87rem;color:var(--ink-2);margin-top:.2rem}
.tag{display:inline-block;font:600 .68rem/1 var(--sans);letter-spacing:.06em;
  text-transform:uppercase;padding:.28em .5em;border-radius:4px;background:var(--tint);
  color:var(--accent-d);vertical-align:1px}

/* ---------- tools ---------- */
.tool{border:1px solid var(--line);border-radius:12px;background:var(--card);
  padding:1.3rem 1.4rem;margin:1.6rem 0}
.tool h3{margin-top:0}
.fields{display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));
  margin:1rem 0}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-2);
  margin-bottom:.3rem}
.field input,.field select{width:100%;padding:.55rem .65rem;font:400 1rem var(--sans);
  border:1px solid var(--line-2);border-radius:7px;background:var(--bg);color:var(--ink)}
.field input:focus,.field select:focus{outline:2px solid var(--accent);outline-offset:1px;
  border-color:var(--accent)}
.out{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}
.out .row{display:flex;justify-content:space-between;gap:1rem;padding:.32rem 0;
  font-size:.95rem;border-bottom:1px dotted var(--line)}
.out .row:last-child{border-bottom:0}
.out .row.total{font-weight:700;font-size:1.06rem;border-top:2px solid var(--ink);
  margin-top:.4rem;padding-top:.6rem;border-bottom:0}
.out .row span:last-child{font-variant-numeric:tabular-nums}
.tool .note{font-size:.8rem;color:var(--muted);margin-top:.9rem;margin-bottom:0}

/* ---------- sources ---------- */
.sources{margin-top:3rem;border-top:1px solid var(--line);padding-top:1.3rem}
.sources h2{font-size:.8rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted);margin:0 0 .7rem;font-family:var(--sans);font-weight:650}
.sources ol{font-size:.86rem;color:var(--ink-2);padding-left:1.2rem;margin:0}
.sources li{margin:.35rem 0;word-break:break-word}

/* ---------- faq ---------- */
.faq{margin:1.5rem 0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:.9rem 0;font-weight:600;list-style:none;
  display:flex;gap:.7rem;align-items:flex-start}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"+";color:var(--accent);font-weight:700;flex:0 0 auto;
  width:1rem}
.faq details[open] summary::before{content:"\2212"}
.faq .a{padding:0 0 1rem 1.7rem;font-size:.96rem;color:var(--ink-2)}
.faq .a p:first-child{margin-top:0}

/* ---------- pager ---------- */
.pager{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  margin:3rem 0 0}
.pager a{border:1px solid var(--line);border-radius:9px;padding:.9rem 1rem;
  text-decoration:none;background:var(--card);display:block}
.pager a:hover{border-color:var(--accent)}
.pager .k{font:600 .68rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;
  color:var(--muted)}
.pager .v{font-weight:650;color:var(--ink);margin-top:.3rem;display:block}

/* ---------- footer ---------- */
footer.site{background:var(--foot-bg);color:var(--foot-fg);margin-top:4rem;
  padding:2.6rem 0 2rem;font-size:.9rem}
footer.site a{color:var(--foot-link);text-decoration:none}
footer.site a:hover{text-decoration:underline}
.fgrid{display:grid;gap:2rem;grid-template-columns:1.5fr 1fr 1fr}
@media(max-width:760px){.fgrid{grid-template-columns:1fr}}
footer.site h4{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--foot-mut);margin:0 0 .7rem;font-family:var(--sans);font-weight:650}
footer.site ul{list-style:none;padding:0;margin:0;display:grid;gap:.42rem}
.fdisc{border-top:1px solid var(--foot-line);margin-top:2.2rem;padding-top:1.3rem;
  font-size:.81rem;color:var(--foot-mut);line-height:1.6}
.fdisc p{margin:.5rem 0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:.5rem;top:.5rem;background:var(--bg);padding:.6rem 1rem;z-index:99;
  border-radius:6px;border:2px solid var(--accent)}
