/* Mitigation Delivery Explorer — stylesheet */

:root{
  color-scheme: light;
  --surface:#fcfcfb; --surface-2:#f4f3f0; --card:#ffffff;
  --ink:#0b0b0b; --ink-2:#52514e; --ink-3:#8a887f; --grid:#e7e5e0; --line:#dcdad4;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a;
  --seq100:#cde2fb;--seq200:#9ec5f4;--seq300:#6da7ec;--seq400:#3987e5;--seq500:#256abf;--seq600:#184f95;--seq700:#0d366b;
  --hold:#c9c7c0; --nodata:#efeeea;
  --shadow:0 1px 2px rgba(20,20,15,.05),0 8px 28px -12px rgba(20,20,15,.14);
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --surface:#161615; --surface-2:#1e1e1c; --card:#232321;
  --ink:#ffffff; --ink-2:#c3c2b7; --ink-3:#8a887f; --grid:#33332f; --line:#3b3b36;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70;
  --seq100:#1c3350;--seq200:#1c4a80;--seq300:#1c5cab;--seq400:#2a78d6;--seq500:#5598e7;--seq600:#86b6ef;--seq700:#b7d3f6;
  --hold:#4a4a44; --nodata:#2b2b28;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px -12px rgba(0,0,0,.55);
}

*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--surface);color:var(--ink);font:15px/1.55 Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--s1);text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px}

/* ---------- nav ---------- */
nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--grid)}
nav .wrap{display:flex;align-items:center;gap:22px;height:56px}
.brand{font:600 15px Fraunces,serif;letter-spacing:.2px;display:flex;align-items:center;gap:9px}
.brand .dot{width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,var(--s1),var(--s2))}
nav .links{display:flex;gap:4px;margin-left:auto;font-size:13px;font-weight:500}
nav .links a{color:var(--ink-2);padding:7px 11px;border-radius:8px}
nav .links a:hover{background:var(--surface-2);color:var(--ink)}
#themeBtn{border:1px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:8px;padding:6px 10px;cursor:pointer;font:500 12px Inter}

/* ---------- hero ---------- */
header{padding:72px 0 30px}
.kicker{font:600 12px Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--s1)}
h1{font:600 46px/1.12 Fraunces,serif;letter-spacing:-.5px;margin:10px 0 14px;max-width:820px}
.lede{max-width:720px;color:var(--ink-2);font-size:16.5px}
.lede b{color:var(--ink);font-weight:600}

/* ---------- stat tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:34px 0 8px}
.tile{background:var(--card);border:1px solid var(--grid);border-radius:14px;padding:18px 18px 15px;box-shadow:var(--shadow)}
.tile .v{font:600 34px/1 Fraunces,serif;letter-spacing:-.5px}
.tile .v small{font-size:19px;color:var(--ink-2)}
.tile .l{font-size:12.5px;color:var(--ink-2);margin-top:7px}
.tile .bar{height:3px;border-radius:2px;margin-top:13px}

/* ---------- sections ---------- */
section{padding:54px 0 8px}
.sec-kicker{font:600 11.5px Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
h2{font:600 28px/1.2 Fraunces,serif;margin:8px 0 8px;letter-spacing:-.3px}
.sub{color:var(--ink-2);max-width:760px;margin-bottom:22px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.card{background:var(--card);border:1px solid var(--grid);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow)}
.card h3{font:600 15px Inter;margin-bottom:2px}
.card .note{font-size:12px;color:var(--ink-3);margin-top:10px}
.card .cap{font-size:12.5px;color:var(--ink-2);margin-bottom:12px}
svg{display:block;width:100%}
svg text{font-family:Inter,system-ui,sans-serif}
.axis{fill:var(--ink-3);font-size:10.5px}
.gline{stroke:var(--grid);stroke-width:1}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);margin-top:10px}
.legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* ---------- tooltip ---------- */
#tip{position:fixed;pointer-events:none;background:var(--ink);color:var(--surface);padding:8px 11px;border-radius:9px;font-size:12px;line-height:1.5;opacity:0;transition:opacity .12s;z-index:99;max-width:260px;box-shadow:0 6px 24px rgba(0,0,0,.25)}
:root[data-theme="dark"] #tip{background:#f4f3ee;color:#161615}
#tip b{font-weight:600}

/* ---------- geographic map ---------- */
.mapwrap{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}
#usmap path.state{stroke:var(--card);stroke-width:.8;cursor:pointer;transition:opacity .12s}
#usmap path.state:hover{opacity:.82}
#usmap path.state.sel{stroke:var(--ink);stroke-width:1.8}
#usmap path.nodata{fill:var(--nodata);cursor:default}
.terr-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.terr-chips button{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:99px;padding:4px 12px;cursor:pointer;font:600 11.5px Inter}
.terr-chips button:hover{border-color:var(--ink-3);color:var(--ink)}
.terr-chips button.sel{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.mapscale{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-2);margin-top:14px}
.mapscale .ramp{flex:0 0 150px;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--seq100),var(--seq400),var(--seq700))}
.stat-row{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--grid);font-size:13.5px}
.stat-row:last-child{border-bottom:0}
.stat-row .k{color:var(--ink-2)}
.stat-row .v{font-weight:600;font-variant-numeric:tabular-nums}
.stat-row .d{font-size:11.5px;color:var(--ink-3);margin-left:8px}

/* ---------- planner ---------- */
.planner{display:grid;grid-template-columns:340px 1fr;gap:18px}
.field{margin-bottom:16px}
.field label{display:block;font:600 12px Inter;color:var(--ink-2);margin-bottom:6px;letter-spacing:.02em}
select,input[type=number]{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:500 14px Inter}
input[type=range]{width:100%;accent-color:var(--s1)}
.mono{font-family:'JetBrains Mono',monospace}
.big-answer{font:600 40px/1 Fraunces,serif;letter-spacing:-.5px}
.big-answer small{font-size:18px;color:var(--ink-2);font-family:Inter}
.pill{display:inline-block;padding:3px 10px;border-radius:99px;font:600 11.5px Inter;letter-spacing:.02em}

/* ---------- footer / misc ---------- */
footer{margin-top:70px;border-top:1px solid var(--grid);padding:30px 0 44px;color:var(--ink-3);font-size:12.5px}
footer .wrap{display:grid;grid-template-columns:2fr 1fr;gap:30px}
#loadError{display:none;max-width:720px;margin:30px auto;padding:18px 22px;border:1px solid var(--s2);border-radius:12px;color:var(--ink-2);font-size:13.5px}

@media(max-width:900px){
  .tiles{grid-template-columns:1fr 1fr}
  .grid2,.mapwrap,.planner{grid-template-columns:1fr}
  h1{font-size:34px}
}
