: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}
