:root{--im-bg:#071827;--im-panel:#0d2234;--im-panel-2:#112a3e;--im-line:rgba(255,255,255,.12);--im-text:#f5f9fc;--im-muted:#a9bdcd;--im-blue:#3ca7ff;--im-red:#e85959;--im-amber:#f3aa3c;--im-green:#52bd80;--im-violet:#9d7be8}
*{box-sizing:border-box}.incident-map-body{margin:0;background:var(--im-bg);color:var(--im-text);overflow:hidden}.incident-map-header{height:68px;padding:0 max(14px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:16px;background:#081b2b;border-bottom:1px solid var(--im-line);position:relative;z-index:1100}.incident-map-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;min-width:0}.incident-map-brand img{width:42px;height:42px;border-radius:11px;box-shadow:0 5px 15px rgba(0,0,0,.32)}.incident-map-brand span{display:grid;line-height:1.05}.incident-map-brand strong{font-size:18px;letter-spacing:-.02em}.incident-map-brand small{font-size:11px;color:#9fc4df;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-top:4px}.incident-map-header-actions{display:flex;align-items:center;gap:7px}.incident-map-header-actions a,.incident-map-header-actions button{border:1px solid var(--im-line);background:#102a3e;color:#eaf5fc;border-radius:999px;padding:8px 11px;text-decoration:none;font:800 12px/1 system-ui,-apple-system,Segoe UI,sans-serif;cursor:pointer}.incident-map-header-actions a:hover,.incident-map-header-actions button:hover{background:#173a54}.incident-map-app{height:calc(100dvh - 68px);position:relative}.incident-map-controls{position:absolute;z-index:900;top:14px;left:14px;right:14px;display:grid;gap:8px;pointer-events:none}.incident-map-controls>*{pointer-events:auto}.incident-map-search{width:min(520px,100%);display:flex;background:rgba(8,27,43,.96);border:1px solid var(--im-line);border-radius:16px;padding:6px;box-shadow:0 12px 32px rgba(0,0,0,.3);backdrop-filter:blur(12px)}.incident-map-search input{min-width:0;flex:1;border:0;background:transparent;color:#fff;padding:10px 11px;font:750 14px system-ui}.incident-map-search input::placeholder{color:#8da5b7}.incident-map-search input:focus{outline:0}.incident-map-search button{border:0;border-radius:11px;background:#1674bc;color:#fff;padding:0 14px;font-weight:900;cursor:pointer}.incident-map-window-tabs,.incident-map-category-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;width:max-content;max-width:100%;padding-bottom:2px}.incident-map-window-tabs::-webkit-scrollbar,.incident-map-category-tabs::-webkit-scrollbar{display:none}.incident-map-window-tabs button,.incident-map-category-tabs button{flex:none;border:1px solid rgba(255,255,255,.14);background:rgba(8,27,43,.94);color:#b9ccda;border-radius:999px;padding:8px 11px;font:850 12px/1 system-ui;cursor:pointer;box-shadow:0 5px 16px rgba(0,0,0,.18);backdrop-filter:blur(10px)}.incident-map-window-tabs button.active,.incident-map-category-tabs button.active{background:#f4f8fb;color:#0b2940;border-color:#fff}.incident-map-stage,.incident-map-canvas{height:100%;width:100%}.incident-map-canvas{background:#0b1b28}.incident-map-canvas .leaflet-control-zoom{margin-top:150px;border:0;box-shadow:0 8px 20px rgba(0,0,0,.3)}.incident-map-canvas .leaflet-control-zoom a{background:#0f2a3f;color:#eaf5fc;border-color:var(--im-line)}.incident-map-canvas .leaflet-control-attribution{background:rgba(6,20,31,.78);color:#9bb1c1}.incident-map-canvas .leaflet-control-attribution a{color:#c8e8ff}.incident-map-status-card{position:absolute;z-index:850;right:14px;top:14px;max-width:290px;border:1px solid var(--im-line);background:rgba(8,27,43,.94);color:#bcd0de;border-radius:13px;padding:10px 12px;font:800 12px/1.35 system-ui;box-shadow:0 8px 24px rgba(0,0,0,.25);backdrop-filter:blur(10px)}.incident-map-fit,.incident-map-list-toggle{position:absolute;z-index:850;right:14px;border:1px solid var(--im-line);background:rgba(8,27,43,.95);color:#fff;border-radius:999px;padding:9px 12px;font:850 12px/1 system-ui;cursor:pointer;box-shadow:0 7px 20px rgba(0,0,0,.25)}.incident-map-fit{top:70px}.incident-map-list-toggle{top:112px}.incident-map-sheet{position:absolute;z-index:920;left:14px;bottom:14px;width:min(430px,calc(100% - 28px));height:min(58vh,620px);display:flex;flex-direction:column;background:rgba(8,27,43,.96);border:1px solid var(--im-line);border-radius:22px;box-shadow:0 24px 60px rgba(0,0,0,.45);overflow:hidden;backdrop-filter:blur(16px);transition:transform .25s ease,opacity .2s ease}.incident-map-sheet:not(.open){transform:translateY(calc(100% - 58px))}.incident-map-sheet-handle{height:24px;border:0;background:transparent;display:grid;place-items:center;cursor:pointer}.incident-map-sheet-handle span{width:44px;height:4px;border-radius:99px;background:#69869b}.incident-map-sheet-head{padding:2px 16px 10px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.incident-map-sheet-head p{margin:0 0 3px;color:#8db4ce;font:900 11px/1 system-ui;text-transform:uppercase;letter-spacing:.08em}.incident-map-sheet-head h1{margin:0;font:900 23px/1.1 system-ui;letter-spacing:-.025em}.incident-map-count{min-width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#14364f;color:#fff;font:950 20px/1 system-ui}.incident-map-summary{display:flex;gap:7px;padding:0 16px 11px;overflow-x:auto;scrollbar-width:none}.incident-map-summary::-webkit-scrollbar{display:none}.incident-map-summary span{flex:none;border:1px solid var(--im-line);border-radius:999px;padding:6px 9px;color:#b7cbd9;font:800 11px/1 system-ui}.incident-map-selected{margin:0 12px 8px;padding:13px;border-radius:16px;background:#123149;border:1px solid rgba(93,183,246,.35)}.incident-map-list{overflow:auto;padding:0 10px 14px}.incident-map-card{width:100%;display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.09);background:transparent;color:#fff;padding:13px 7px;cursor:pointer}.incident-map-card:hover,.incident-map-card.active{background:rgba(255,255,255,.05);border-radius:13px}.incident-map-card-marker{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font:950 11px/1 system-ui;border:3px solid rgba(255,255,255,.85);box-shadow:0 5px 14px rgba(0,0,0,.28)}.incident-map-card-marker.fire_ems{background:var(--im-red)}.incident-map-card-marker.traffic_crashes{background:var(--im-amber);color:#2b1a00}.incident-map-card-marker.police_activity{background:var(--im-blue)}.incident-map-card-marker.public_safety{background:var(--im-violet)}.incident-map-card-copy{min-width:0}.incident-map-card-copy strong{display:block;color:#f7fbfe;font:900 14px/1.25 system-ui;margin-bottom:4px}.incident-map-card-copy span{display:block;color:#9fb5c5;font:750 12px/1.35 system-ui}.incident-map-card-copy em{display:inline-flex;margin-top:6px;border-radius:999px;background:rgba(255,255,255,.08);color:#c7d7e2;padding:4px 7px;font:800 10px/1 system-ui;font-style:normal}.incident-map-detail h2{font:900 17px/1.25 system-ui;margin:0 0 6px}.incident-map-detail p{margin:3px 0;color:#b8cbd8;font:750 12px/1.4 system-ui}.incident-map-detail-badges{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.incident-map-detail-badges span{border-radius:999px;padding:5px 8px;background:rgba(255,255,255,.08);font:800 10px/1 system-ui}.incident-map-detail-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.incident-map-detail-actions a{border-radius:10px;padding:8px 10px;text-decoration:none;background:#eaf6ff;color:#0a3e64;font:900 11px/1 system-ui}.incident-map-detail-actions a.secondary{background:#1d4662;color:#fff}.incident-map-disclaimer{padding:10px 16px 14px;margin:0;color:#819bad;font:700 10.5px/1.35 system-ui;border-top:1px solid rgba(255,255,255,.08)}.incident-map-empty{padding:18px;color:#a9bdcd;text-align:center;font-weight:800}.incident-pin{width:40px!important;height:40px!important;border-radius:50% 50% 50% 12px;transform:rotate(-45deg);border:3px solid rgba(255,255,255,.92);box-shadow:0 7px 18px rgba(0,0,0,.42);display:grid!important;place-items:center!important}.incident-pin span{transform:rotate(45deg);font:950 10px/1 system-ui;color:#fff}.incident-pin.fire_ems{background:var(--im-red)}.incident-pin.traffic_crashes{background:var(--im-amber)}.incident-pin.traffic_crashes span{color:#2b1a00}.incident-pin.police_activity{background:var(--im-blue)}.incident-pin.public_safety{background:var(--im-violet)}.incident-pin.approximate:after{content:"";position:absolute;width:48px;height:48px;border:2px dashed rgba(255,255,255,.7);border-radius:50%;transform:rotate(45deg);animation:incident-pulse 2.4s ease-in-out infinite}@keyframes incident-pulse{0%,100%{opacity:.35;transform:rotate(45deg) scale(.86)}50%{opacity:.8;transform:rotate(45deg) scale(1.08)}}.incident-cluster{background:rgba(8,27,43,.78);border-radius:50%;box-shadow:0 8px 20px rgba(0,0,0,.38)}.incident-cluster div{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#ecf6fc;color:#0a2d45;border:4px solid #1c6b9f;font:950 14px/1 system-ui}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:900px){.incident-map-controls{left:460px}.incident-map-search{width:450px}.incident-map-sheet{top:14px;bottom:14px;height:auto}.incident-map-sheet:not(.open){transform:translateX(calc(-100% - 20px));opacity:0}.incident-map-sheet-handle{display:none}.incident-map-canvas .leaflet-control-zoom{margin-top:154px}}
@media(max-width:720px){.incident-map-header{height:60px}.incident-map-brand img{width:36px;height:36px}.incident-map-brand strong{font-size:16px}.incident-map-header-actions a:nth-of-type(1){display:none}.incident-map-header-actions a,.incident-map-header-actions button{padding:8px 9px;font-size:11px}.incident-map-app{height:calc(100dvh - 60px)}.incident-map-controls{top:8px;left:8px;right:8px}.incident-map-search{border-radius:14px}.incident-map-window-tabs button,.incident-map-category-tabs button{padding:7px 9px;font-size:11px}.incident-map-status-card{display:none}.incident-map-fit{top:132px;right:8px}.incident-map-list-toggle{top:174px;right:8px}.incident-map-sheet{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;height:min(56vh,520px);border-radius:20px}.incident-map-sheet:not(.open){transform:translateY(calc(100% - 54px))}.incident-map-sheet-head h1{font-size:20px}.incident-map-canvas .leaflet-control-zoom{margin-top:132px;margin-left:8px}}

/* v208: lighter map, movable close control, and desktop zoom placement */
.incident-map-canvas{background:#657681}
.incident-map-canvas .leaflet-tile-pane{filter:brightness(.82) saturate(.68) contrast(.92)}
.incident-map-selected{position:relative;padding-right:48px}
.incident-map-detail-close{position:absolute;top:9px;right:9px;width:32px;height:32px;border:1px solid rgba(255,255,255,.18);border-radius:50%;display:grid;place-items:center;background:rgba(4,18,29,.62);color:#fff;font:800 22px/1 system-ui;cursor:pointer;transition:background .16s ease,transform .16s ease}
.incident-map-detail-close:hover,.incident-map-detail-close:focus-visible{background:#1b4b6c;transform:scale(1.04);outline:2px solid rgba(122,203,255,.72);outline-offset:2px}
@media(min-width:900px){.incident-map-canvas .leaflet-bottom.leaflet-right .leaflet-control-zoom{margin-top:0;margin-right:16px;margin-bottom:34px}}

.incident-map-sheet.no-transition{transition:none!important}

/* v213: mobile incident sheet can be dragged down to reveal the map and pulled back up. */
@media(max-width:720px){
  .incident-map-sheet{
    --incident-sheet-peek:58px;
    will-change:transform;
  }
  .incident-map-sheet:not(.open){
    transform:translateY(calc(100% - var(--incident-sheet-peek)));
  }
  .incident-map-sheet.dragging{
    transition:none!important;
    transform:translateY(var(--incident-sheet-drag-y,0px))!important;
    user-select:none;
  }
  .incident-map-sheet-handle{
    height:34px;
    min-height:34px;
    flex:0 0 34px;
    touch-action:none;
    cursor:grab;
    position:relative;
  }
  .incident-map-sheet-handle:active{cursor:grabbing}
  .incident-map-sheet-handle span{
    width:58px;
    height:5px;
    background:#8ba5b7;
    box-shadow:0 1px 0 rgba(255,255,255,.18);
  }
  .incident-map-sheet.dragging .incident-map-sheet-handle span{background:#d4e5ef}
  .incident-map-list{
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
}


/* v215 Lucide-style incident marker icons */
.incident-pin span{width:22px;height:22px;display:grid;place-items:center;transform:rotate(45deg);color:#fff}
.incident-pin .incident-lucide-icon{width:20px;height:20px;display:block;overflow:visible}
.incident-pin.traffic_crashes span{color:#2b1a00}
.incident-map-card-marker{font-size:0}
.incident-map-card-marker .incident-lucide-icon{width:20px;height:20px;display:block}
.incident-map-card-marker.traffic_crashes{color:#2b1a00}

/* v288: optional, lightweight live-aircraft layer. */
.incident-map-flight-panel{position:absolute;z-index:900;right:14px;top:154px;width:238px;border:1px solid var(--im-line);border-radius:16px;background:rgba(8,27,43,.96);box-shadow:0 9px 26px rgba(0,0,0,.3);overflow:hidden;backdrop-filter:blur(12px)}
.incident-map-flight-toggle{width:100%;min-height:54px;display:grid;grid-template-columns:32px minmax(0,1fr) 34px;align-items:center;gap:9px;border:0;background:transparent;color:#fff;padding:9px 11px;text-align:left;cursor:pointer}
.incident-map-flight-toggle:hover,.incident-map-flight-toggle:focus-visible{background:rgba(255,255,255,.06);outline:none}
.incident-map-flight-toggle-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#153a55;color:#8fd3ff}
.incident-map-flight-toggle-icon svg{width:19px;height:19px}
.incident-map-flight-toggle>span:nth-child(2){display:grid;gap:3px;min-width:0}
.incident-map-flight-toggle strong{font:900 13px/1 system-ui}
.incident-map-flight-toggle small{color:#9fb8c9;font:800 10px/1 system-ui}
.incident-map-flight-switch{width:32px;height:18px;border-radius:99px;background:#365064;position:relative;transition:background .18s ease}
.incident-map-flight-switch:after{content:"";position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:#dbe8f0;box-shadow:0 1px 4px rgba(0,0,0,.4);transition:transform .18s ease}
.incident-map-flight-panel.enabled .incident-map-flight-toggle-icon{background:#126aa7;color:#fff}
.incident-map-flight-panel.enabled .incident-map-flight-switch{background:#2e9a64}
.incident-map-flight-panel.enabled .incident-map-flight-switch:after{transform:translateX(14px);background:#fff}
.incident-map-flight-body{display:none;padding:0 10px 10px;border-top:1px solid rgba(255,255,255,.08)}
.incident-map-flight-panel.enabled .incident-map-flight-body{display:block}
.incident-map-flight-modes{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding-top:9px}
.incident-map-flight-modes button{border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#102b40;color:#a9bdcd;padding:7px 5px;font:850 10px/1 system-ui;cursor:pointer}
.incident-map-flight-modes button.active{background:#eaf6ff;color:#0b3552;border-color:#fff}
.incident-map-flight-body p{margin:8px 1px 6px;color:#b8cbd8;font:750 10.5px/1.35 system-ui}
.incident-map-flight-body p[data-kind="loading"]{color:#8fd3ff}
.incident-map-flight-body p[data-kind="stale"]{color:#f3c46f}
.incident-map-flight-body p[data-kind="error"]{color:#ffb1b1}
.incident-map-flight-fit{width:100%;margin:0 0 7px;border:1px solid rgba(143,211,255,.28);border-radius:9px;background:#123954;color:#ccecff;padding:7px;font:850 10px/1 system-ui;cursor:pointer}
.incident-map-flight-fit:hover,.incident-map-flight-fit:focus-visible{background:#185075;outline:2px solid rgba(143,211,255,.42);outline-offset:1px}
.incident-map-flight-body>small{display:block;color:#7f9aad;font:700 9px/1.35 system-ui}
.incident-map-flight-body a{color:#a8dfff}

.flight-marker-wrap{background:transparent!important;border:0!important}
.flight-marker{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#1779b7;border:2px solid rgba(255,255,255,.94);box-shadow:0 5px 14px rgba(0,0,0,.38);transform:rotate(var(--flight-heading,0deg));transition:transform .4s linear,background .18s ease}
.flight-marker svg{width:21px;height:21px;display:block}
.flight-marker.military{background:#b66a12;color:#fff3d0;border-color:#fff1c7;box-shadow:0 0 0 3px rgba(243,170,60,.25),0 6px 16px rgba(0,0,0,.4)}
.incident-map-canvas .leaflet-tooltip{background:#0b2538;color:#fff;border:1px solid rgba(255,255,255,.18);box-shadow:0 5px 16px rgba(0,0,0,.32);font:850 11px/1.2 system-ui}
.incident-map-canvas .leaflet-tooltip-top:before{border-top-color:#0b2538}
.flight-map-popup .leaflet-popup-content-wrapper,.flight-map-popup .leaflet-popup-tip{background:#0b2538;color:#f5f9fc}
.flight-map-popup .leaflet-popup-content-wrapper{border:1px solid rgba(255,255,255,.14);border-radius:17px;box-shadow:0 14px 40px rgba(0,0,0,.48)}
.flight-map-popup .leaflet-popup-content{margin:13px 14px;width:auto!important;font-family:system-ui,-apple-system,Segoe UI,sans-serif}
.flight-map-popup .leaflet-popup-close-button{color:#d8e7f0!important;font-size:22px!important;top:5px!important;right:5px!important}
.flight-popup-title{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;padding-right:14px}
.flight-popup-title>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:#164a69;color:#8fd3ff}
.flight-popup-title svg{width:20px;height:20px}
.flight-popup-title h2{margin:0;color:#fff;font:950 17px/1.05 system-ui;letter-spacing:.02em}
.flight-popup-title p{margin:3px 0 0;color:#9eb6c7;font:800 10px/1 system-ui}
.flight-popup-title>strong{border-radius:999px;background:#9d5b12;color:#fff2cf;padding:5px 7px;font:900 9px/1 system-ui;text-transform:uppercase;letter-spacing:.04em}
.flight-popup-company{margin:10px 0 8px;color:#dcedf8;font:900 12px/1.3 system-ui}
.flight-popup dl{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:8px 0 10px}
.flight-popup dl div{min-width:0;padding:7px;border-radius:9px;background:rgba(255,255,255,.055)}
.flight-popup dt{color:#7fa2ba;font:850 8px/1 system-ui;text-transform:uppercase;letter-spacing:.05em}
.flight-popup dd{margin:4px 0 0;color:#f4f9fc;font:850 10.5px/1.25 system-ui;overflow-wrap:anywhere}
.flight-popup-route{padding:9px;border-radius:10px;background:#102f47;border:1px solid rgba(255,255,255,.1)}
.flight-popup-route.found{border-color:rgba(82,189,128,.38)}
.flight-popup-route>span{color:#8fb0c6;font:850 8px/1 system-ui;text-transform:uppercase;letter-spacing:.06em}
.flight-popup-route p{margin:5px 0 0;color:#fff;font:850 11px/1.35 system-ui}
.flight-popup-route small{display:block;margin-top:5px;color:#8fa9ba;font:700 8.5px/1.35 system-ui}
.flight-popup-source{margin:8px 0 0;color:#7692a6;font:700 8.5px/1.3 system-ui}
.flight-popup-source a{color:#9ed8ff}

@media(max-width:720px){
  .incident-map-flight-panel{z-index:940;right:8px;top:216px;width:min(224px,calc(100% - 16px));border-radius:14px}
  .incident-map-flight-toggle{min-height:48px;grid-template-columns:28px minmax(0,1fr) 32px;padding:7px 9px}
  .incident-map-flight-toggle-icon{width:27px;height:27px;border-radius:9px}
  .incident-map-flight-toggle-icon svg{width:17px;height:17px}
  .incident-map-flight-toggle strong{font-size:12px}
  .flight-popup dl{gap:5px}
}
@media(prefers-reduced-motion:reduce){.flight-marker,.incident-map-flight-switch,.incident-map-flight-switch:after{transition:none}}
