:root{--bg:#0b0f17;--card:#121826;--line:#1f2937;--txt:#e5e7eb;--mut:#94a3b8;--acc:#e31937;--acc2:#22c55e}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--txt);font:16px/1.55 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
a{color:#7dd3fc}main{max-width:1100px;margin:0 auto;padding:0 16px 40px}
.nav{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(11,15,23,.92);backdrop-filter:blur(8px);z-index:1000}
.brand{display:flex;gap:8px;align-items:center;font-weight:800;color:var(--txt);text-decoration:none;font-size:1.1rem}
.nav nav{display:flex;gap:14px;align-items:center}.nav nav a{color:var(--mut);text-decoration:none;font-size:.95rem}
@media(max-width:560px){.nav nav a:not(.btn){display:none}}
.btn{background:var(--acc);color:#fff!important;border:0;border-radius:10px;padding:12px 18px;font-weight:700;cursor:pointer;text-decoration:none;font-size:1rem}.btn.sm{padding:7px 12px;font-size:.85rem}
.hero{text-align:center;padding:36px 0 12px}.hero.left{text-align:left}
h1{font-size:clamp(2rem,6vw,3.4rem);line-height:1.08;margin:.2em 0;letter-spacing:-.02em}.accent{color:var(--acc)}
h2{font-size:1.2rem;margin:0 0 12px}.lede{font-size:1.15rem;color:#cbd5e1;max-width:720px;margin:8px auto}.hero.left .lede{margin-left:0}
.small{font-size:.85rem}.muted{color:var(--mut)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:16px 0}
.scoreboard{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center}
.stat b{display:block;font-size:clamp(1.3rem,5vw,2.4rem);font-variant-numeric:tabular-nums}.stat span{color:var(--mut);font-size:.8rem}
.mapcard{padding:0;overflow:hidden}#leaflet{height:min(62vh,520px);background:#0f1522}
.legend{display:flex;flex-wrap:wrap;gap:12px;padding:12px 16px;font-size:.85rem}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:middle}
.pill{display:inline-block;border:1px solid var(--c);color:var(--c);border-radius:99px;padding:3px 12px;font-weight:700;font-size:.85rem}
.citylist{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.citylist a{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;color:var(--txt);text-decoration:none}
.citylist a:hover{border-color:#334155}
.grid2{display:grid;gap:16px}@media(min-width:820px){.grid2{grid-template-columns:1fr 1fr}.grid2>.card{margin:0}}
.chartbox{position:relative;height:260px}
.signup{display:grid;gap:8px}@media(min-width:640px){.signup{grid-template-columns:2fr 1.3fr auto}.signup .msg{grid-column:1/-1}}
input{background:#0b0f17;border:1px solid #334155;color:var(--txt);border-radius:10px;padding:12px;font-size:1rem}
.newsletter{border-color:#7f1d1d;background:linear-gradient(135deg,#1a1020,#121826)}
.sponsor{border-style:dashed;text-align:center}.sponsor h3{margin:4px 0}
.timeline{list-style:none;padding:0;margin:0;border-left:2px solid #334155}.timeline li{padding:0 0 12px 14px;position:relative}
.timeline li:before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--acc)}
.timeline time{display:block;color:var(--mut);font-size:.85rem}
.sources{padding-left:18px}.sources li{margin:4px 0;word-break:break-all}
.placeholder{border:2px dashed #f59e0b;color:#f59e0b;border-radius:12px;padding:60px 16px;text-align:center;font-weight:700}
.note{border-color:#a855f7}.disclaimer{border-color:#e31937}
.foot{border-top:1px solid var(--line);padding:24px 16px;text-align:center;color:var(--mut);font-size:.85rem}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#121826;color:var(--txt)}.leaflet-popup-content a{color:#7dd3fc}
.leaflet-container{font:inherit}
