:root{--vfr:#28a745;--mvfr:#0080f0;--ifr:#dc3545;--lifr:#9722ce;--bg:#0b1220;--surface:#0f172a;--card:#0b1220;--text:#e5e7eb;--muted:#94a3b8;--accent:#38bdf8;--border:#1f2937}
*{box-sizing:border-box}html,body{height:100%;margin:0;background:#0a0f1a;color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}
#app{height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#0b1220;border-bottom:1px solid var(--border)}
.topbar input[type=search]{flex:1;min-width:220px;padding:8px 10px;border:1px solid var(--border);background:#0b1220;color:var(--text);border-radius:8px}
.mapwrap{position:relative;flex:1}#map{height:100%}.zoom-indicator{position:absolute;bottom:10px;right:10px;background:#0b1220;border:1px solid var(--border);padding:6px 8px;border-radius:8px;font-size:12px;color:var(--muted)}
.leaflet-container{background:#0a0f1a}.mm-marker{display:flex;align-items:center;justify-content:center;width:40px;height:28px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.35);border:1px solid rgba(0,0,0,.35);font-weight:700;font-size:12px}
.mm-vfr{background:linear-gradient(180deg, rgba(40,167,69,.9), rgba(40,167,69,.8))}.mm-mvfr{background:linear-gradient(180deg, rgba(0,128,240,.9), rgba(0,128,240,.8))}.mm-ifr{background:linear-gradient(180deg, rgba(220,53,69,.9), rgba(220,53,69,.8))}.mm-lifr{background:linear-gradient(180deg, rgba(151,34,206,.9), rgba(151,34,206,.8))}
.modal{position:fixed;inset:0;display:none;background:rgba(0,0,0,.5);align-items:center;justify-content:center;padding:24px}.modal.open{display:flex}
.modal .panel{width:min(980px,92vw);max-height:90vh;overflow:auto;background:#0b1220;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.5)}
.panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}
.badge{padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;color:#fff}.badge.vfr{background:var(--vfr)}.badge.mvfr{background:var(--mvfr)}.badge.ifr{background:var(--ifr)}.badge.lifr{background:var(--lifr)}
.panel .body{padding:16px;display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.card{background:#0a0f1a;border:1px solid var(--border);border-radius:12px;padding:12px;min-height:84px}
.card h4{margin:0 0 8px 0;font-size:13px;color:var(--muted)}.card .value{font-size:18px;font-weight:700}.card.col-2{grid-column:span 2}.card.col-3{grid-column:span 3}.card.col-6{grid-column:span 6}
@media (max-width:1100px){.panel .body{grid-template-columns:repeat(3,1fr)}}@media (max-width:800px){.panel .body{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.panel .body{grid-template-columns:repeat(1,1fr)}}
.close-btn{background:#111827;border:1px solid var(--border);color:#e5e7eb;padding:6px 10px;border-radius:8px;cursor:pointer}.raw-chip{background:#111827;border:1px solid var(--border);padding:4px 8px;border-radius:8px;font-size:12px;color:#93c5fd}
/* ensure modal is above Leaflet panes */
.modal{ z-index: 10000 !important; }
