:root{--bg:#08101c;--panel:#111a2a;--card:#152138;--line:rgba(255,255,255,.12);--text:#f5f7fb;--muted:#8995aa;--accent:#7c5cff}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}
button,input{font:inherit}button{color:inherit;border:0;cursor:pointer}
#app{height:100%;position:relative;background:#08101c}
.top{position:absolute;z-index:1000;top:0;left:0;right:0;height:74px;background:linear-gradient(180deg,rgba(6,12,24,.96),rgba(6,12,24,.55),transparent);display:flex;align-items:center;justify-content:space-between;padding:0 18px}
.brand{display:flex;gap:10px;align-items:center}.brand-mark{color:#8b61ff;font-size:24px}.brand b{font-family:"Space Grotesk";font-size:19px}.brand small{display:block;color:#92a0b7;font-size:10px;margin-top:2px}
.top-actions{display:flex;gap:9px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:rgba(18,29,48,.85);font-size:22px}

.on-day span{display:block;font-size:11px;letter-spacing:.25em;color:#a1b4d2}.on-day strong{display:block;font-size:20px;margin-top:5px;color:#d5b8ff}.on-day input{background:transparent;color:white;border:0;font-weight:600}
#map{position:absolute;inset:0;z-index:1}.leaflet-control-zoom,.leaflet-control-attribution{filter:invert(1) hue-rotate(180deg) saturate(.3);opacity:.7}
.plane-marker{width:22px;height:22px;display:grid;place-items:center;color:#ffe14a;text-shadow:0 0 8px rgba(255,225,74,.8);font-size:19px;transform:rotate(var(--rot,0deg))}
.map-overlay{position:absolute;z-index:900;top:164px;left:18px;display:flex;gap:8px}.stat{padding:9px 11px;background:rgba(15,24,40,.88);border:1px solid var(--line);min-width:86px}.stat small{display:block;color:#94a3ba;font-size:8px;letter-spacing:.16em}.stat strong{display:block;font-size:16px;margin-top:3px}
.glass{background:rgba(15,24,40,.95);border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.search-panel{position:absolute;z-index:1100;top:72px;left:18px;right:18px;display:flex;padding:9px}.search-panel input{flex:1;border:0;background:transparent;color:white;padding:10px;outline:none}.search-panel button{background:transparent;font-size:25px;color:#8e9ab1}
.hidden{display:none!important}
.bottom-sheet{position:absolute;z-index:950;left:0;right:0;bottom:0;max-height:51%;background:rgba(10,17,29,.97);border-top:1px solid rgba(255,255,255,.08);border-radius:26px 26px 0 0;padding:11px 18px 28px;overflow:auto;box-shadow:0 -15px 60px rgba(0,0,0,.35)}
.sheet-handle{width:38px;height:4px;background:#44516a;border-radius:99px;margin:0 auto 14px}.sheet-head{display:flex;justify-content:space-between;align-items:flex-end;gap:10px}.eyebrow{font-size:9px;letter-spacing:.28em;color:#7786a1}.sheet-head h1{font-family:"Space Grotesk";font-size:26px;margin:7px 0 0}
.pill,.chip{border:1px solid var(--line);background:#141f32;padding:9px 13px;border-radius:999px;font-size:12px}.chip.active{background:#6f54df;border-color:#8c77ff}.quick-row{display:flex;gap:8px;overflow:auto;margin:14px 0 4px}.filters{padding:14px;background:#0f1829;border:1px solid var(--line);margin:10px 0;border-radius:16px}.filter-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px}.filters label{font-size:10px;color:#8996ac}.filters input{width:100%;margin-top:6px;padding:10px;background:#0b1220;border:1px solid var(--line);color:#fff;border-radius:11px}
.primary{background:#f4f5f8;color:#101521;padding:11px 14px;font-weight:700;border-radius:12px}.wide{width:100%}
.loading-card{padding:20px 0;color:#8390a7}.event-card{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.07);display:grid;grid-template-columns:80px 1fr auto;gap:10px;align-items:center}.event-date{font-size:11px;color:#8c99ae}.event-card h3{font-size:14px;margin:0 0 4px}.event-card p{font-size:11px;color:#8996ab;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fatal{font-size:12px;text-align:right;color:#ffb2b2}.mini{font-size:10px;color:#718099;margin-top:3px}.empty{padding:30px 0;color:#8290a9}
.detail{position:absolute;z-index:1400;right:18px;top:92px;bottom:18px;width:min(480px,calc(100% - 36px));background:rgba(11,18,30,.98);border:1px solid var(--line);border-radius:22px;padding:22px;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.detail-close{position:absolute;top:12px;right:12px;width:36px;height:36px;background:#182337;border-radius:50%;font-size:23px}.detail h2{font-family:"Space Grotesk";margin:36px 0 4px;font-size:28px}.detail .sub{color:#9aa7bb;font-size:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.detail-cell{padding:12px;background:#121e32;border:1px solid var(--line);border-radius:13px}.detail-cell small{display:block;color:#71819a;font-size:9px}.detail-cell b{display:block;margin-top:4px;font-size:12px}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:#0c1422}.source-link{display:inline-block;margin-top:12px;color:#bdaeff;text-decoration:none}
.side-panel{position:absolute;z-index:1500;top:0;right:0;width:300px;bottom:0;background:#0d1626;border-left:1px solid var(--line);padding:20px;box-shadow:-20px 0 60px rgba(0,0,0,.35)}.panel-title{display:flex;justify-content:space-between;font-family:"Space Grotesk";margin-bottom:20px}.menu-item{display:block;width:100%;text-align:left;background:#142238;border:1px solid var(--line);padding:14px;border-radius:13px;margin-bottom:10px}
.modal{position:fixed;z-index:2000;inset:0;background:rgba(0,0,0,.65);display:grid;place-items:center;padding:20px}.modal-card{position:relative;width:min(560px,100%);background:#0e1726;border:1px solid var(--line);border-radius:22px;padding:25px}.modal-card h2{font-family:"Space Grotesk";margin:8px 0 20px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-grid div{padding:14px;background:#142238;border:1px solid var(--line);border-radius:13px}.stats-grid small{color:#7b8aa3}.stats-grid strong{display:block;font-size:22px;margin-top:5px}
.source-note{position:absolute;z-index:900;left:14px;bottom:calc(51% + 6px);font-size:9px;color:#74829a;background:rgba(8,16,28,.72);padding:6px 8px;max-width:70%}
@media(max-width:700px){.bottom-sheet{max-height:58%}.source-note{bottom:58%}.event-card{grid-template-columns:68px 1fr auto}.detail{top:85px}}
