:root{--paper:#eef1f4;--card:#fff;--ink:#18212b;--muted:#5a6773;--rule:#d3dae1;--accent:#c2410c;--field:#f7f9fb;--warn:#fff4e5;--warnInk:#7a3e00;
--display:"Barlow Condensed","Arial Narrow",sans-serif;--body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,Consolas,monospace}
@media (prefers-color-scheme:dark){:root{--paper:#11161c;--card:#1a2129;--ink:#e6ebf0;--muted:#97a3ae;--rule:#2c3640;--accent:#f97316;--field:#141a20;--warn:#2a2016;--warnInk:#f5c48a;color-scheme:dark}}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--body)}
a{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding:0 16px 40px}
header.top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding:16px 0 10px;border-bottom:3px solid var(--ink)}
.brand{font:700 15px var(--mono);letter-spacing:.04em;color:var(--accent);text-decoration:none}
h1{font:700 clamp(28px,6vw,42px)/1.05 var(--display);margin:6px 0 0;text-wrap:balance}
.fresh{font:12px var(--mono);color:var(--muted)}
.crumbs{font-size:13px;color:var(--muted);margin-top:8px}
.crumbs a{color:var(--muted)}
.lede{margin:12px 0 0;max-width:75ch}
.lag{margin-top:12px;background:var(--warn);color:var(--warnInk);border-radius:6px;padding:10px 12px;font-size:14px}
.bar{position:sticky;top:0;z-index:500;background:var(--paper);padding:12px 0;display:grid;gap:10px;border-bottom:1px solid var(--rule)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tabs{display:inline-flex;border:1.5px solid var(--ink);border-radius:6px;overflow:hidden}
.tabs button{font:600 14px var(--body);padding:8px 14px;border:0;background:transparent;color:var(--ink);cursor:pointer}
.tabs button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
input[type=search],input[type=email],input[type=text]{font:15px var(--body);padding:9px 12px;border:1.5px solid var(--rule);border-radius:6px;background:var(--field);color:var(--ink);flex:1 1 220px;min-width:0}
input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:500 13px var(--body);padding:5px 10px;border-radius:999px;border:1.5px solid var(--rule);background:var(--card);color:var(--ink);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.chip i{width:9px;height:9px;border-radius:50%}
.chip[aria-pressed="false"]{opacity:.45}
.grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media (max-width:820px){.grid{grid-template-columns:minmax(0,1fr)}}
.panel{background:var(--card);border:1px solid var(--rule);border-radius:8px;padding:14px;min-width:0;margin-top:16px}
.grid .panel{margin-top:0}
.panel h2{font:600 20px var(--display);letter-spacing:.02em;text-transform:uppercase;margin:0 0 8px}
#map{height:min(70vh,560px);border-radius:6px}
.hint{font-size:12px;color:var(--muted);margin-top:6px}
.big{font:700 44px/1 var(--display);font-variant-numeric:tabular-nums}
.sub{color:var(--muted);font-size:13px}
.tally{display:grid;gap:7px;margin-top:12px}
.t{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;font-size:13px}
.t b{font:500 13px var(--mono)}
.track{grid-column:1/-1;height:6px;background:var(--field);border-radius:3px;overflow:hidden}
.fill{height:100%}
table{width:100%;border-collapse:collapse;font-size:13px}
.tablewrap{overflow-x:auto}
th{text-align:left;font:600 11px var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1.5px solid var(--ink);white-space:nowrap}
td{padding:8px;border-bottom:1px solid var(--rule);vertical-align:top}
tr.click{cursor:pointer}
tr.click:hover td{background:var(--field)}
.num td:not(:first-child),.num th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.mono{font:12px var(--mono);white-space:nowrap}
.tag{display:inline-block;font:600 11px var(--body);letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:4px;color:#fff;white-space:nowrap}
.btn{font:600 14px var(--body);padding:8px 14px;border-radius:6px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;display:inline-block}
.btn.solid{background:var(--ink);color:var(--paper)}
.status{padding:12px 0;color:var(--muted)}
.note{font-size:13px;color:var(--muted);max-width:80ch}
.note b{color:var(--ink)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:10px 0}
.tile{border:1px solid var(--rule);border-radius:6px;padding:10px 12px;background:var(--field)}
.tile b{display:block;font:700 30px/1 var(--display);font-variant-numeric:tabular-nums}
.tile span{font-size:12px;color:var(--muted)}
.links{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:14px}
.alert form{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.alert .msg{font-size:13px;margin-top:6px}
footer.foot{margin-top:28px;padding-top:12px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted)}
footer.foot nav{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:8px}
footer.foot nav a{color:var(--muted)}
.leaflet-popup-content{font:13px/1.4 var(--body)}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin-top:6px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
body.embed .wrap{padding:0}
body.embed #map{height:100vh;border-radius:0}
.credit{position:absolute;z-index:1000;left:8px;bottom:8px;background:var(--card);color:var(--ink);font:600 12px var(--body);padding:4px 8px;border-radius:4px;text-decoration:none;box-shadow:0 1px 3px rgba(0,0,0,.3)}
