
:root{
  --bg:#071019;--panel:rgba(9,18,27,.82);--panel-strong:rgba(8,16,24,.94);
  --line:rgba(161,204,231,.14);--text:#edf7ff;--muted:#8298a8;
  --cyan:#66d6ff;--red:#ff5e57;--orange:#ff9b43;--yellow:#ffd160;--blue:#5fa8ff;
  --green:#59d69a;--shadow:0 22px 70px rgba(0,0,0,.38)
}
*{box-sizing:border-box}
html,body,#app,.stage{height:100%;margin:0}
body{overflow:hidden;background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}
button{font:inherit;color:inherit}
#map{position:absolute;inset:0;background:#08111a}
.map-vignette{pointer-events:none;position:absolute;inset:0;background:
 radial-gradient(circle at 50% 46%,transparent 38%,rgba(1,7,12,.18) 72%,rgba(1,7,12,.55) 100%),
 linear-gradient(180deg,rgba(2,7,11,.4),transparent 15%,transparent 78%,rgba(2,7,11,.48))}
.glass{backdrop-filter:blur(18px) saturate(120%);-webkit-backdrop-filter:blur(18px) saturate(120%);
 background:linear-gradient(180deg,rgba(12,24,34,.88),rgba(7,15,23,.78));border:1px solid var(--line);box-shadow:var(--shadow)}
.topbar{position:absolute;z-index:20;left:18px;right:18px;top:16px;height:72px;border-radius:14px;display:flex;align-items:center;padding:0 18px}
.brand{display:flex;align-items:center;gap:12px;min-width:290px}.brand-mark{width:44px;height:44px;border-radius:10px;
display:block;object-fit:cover;background:#071019 url('../img/112-udkald-logo.png') center/cover no-repeat;box-shadow:0 0 26px rgba(255,76,75,.18);color:transparent;font-size:0;text-indent:-9999px;overflow:hidden}
.brand-title{margin:0;font-size:16px;line-height:1.05;font-weight:800;letter-spacing:.9px}.brand-sub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin-top:2px}
.top-stats{display:flex;gap:8px;align-items:center;margin-left:auto}.live-pill,.stat{height:42px;border:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.16);border-radius:10px;padding:0 12px;display:flex;align-items:center;gap:8px}
.live-pill{font-size:12px;font-weight:800;color:#8cf0b9;letter-spacing:1px}.pulse-dot{width:8px;height:8px;border-radius:50%;background:#54e693;box-shadow:0 0 0 0 rgba(84,230,147,.55);animation:pulse 2s infinite}
.stat{flex-direction:column;justify-content:center;align-items:flex-start;gap:0;min-width:80px}.stat span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.9px}.stat strong{font-size:13px;margin-top:2px}
.top-actions{display:flex;gap:8px;margin-left:12px}.icon-btn,.tiny-btn{border:1px solid rgba(255,255,255,.11);background:rgba(0,0,0,.18);border-radius:9px;cursor:pointer}.icon-btn{width:42px;height:42px;font-size:12px;font-weight:800}.icon-btn.active{border-color:rgba(102,214,255,.38);color:var(--cyan);background:rgba(38,134,176,.13)}
.left-panel,.right-panel{position:absolute;z-index:15;top:104px;bottom:64px;width:252px;border-radius:14px;padding:16px;overflow:hidden}
.left-panel{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#243746 transparent;overscroll-behavior:contain}
.left-panel::-webkit-scrollbar{width:4px}.left-panel::-webkit-scrollbar-track{background:transparent}.left-panel::-webkit-scrollbar-thumb{background:#243746;border-radius:999px}
.left-panel{left:18px}.right-panel{right:18px;width:315px;padding:0;display:flex;flex-direction:column}
.section-label{font-size:9px;font-weight:800;letter-spacing:1.6px;color:#6e879a;margin-bottom:8px}
.left-panel section+section{margin-top:20px;padding-top:17px;border-top:1px solid rgba(255,255,255,.065)}
.nav-item{width:100%;border:0;background:transparent;display:grid;grid-template-columns:24px 1fr auto;align-items:center;text-align:left;padding:8px 8px;border-radius:9px;color:#bcd0df;cursor:pointer;font-size:12px}
.nav-item:hover,.nav-item.active{background:rgba(102,214,255,.08);color:#fff}.nav-item b{font-size:10px;color:#698498;background:rgba(255,255,255,.055);padding:3px 7px;border-radius:12px}
.nav-item i{font-style:normal;color:#6e879a;font-size:17px}.nav-dot{width:7px;height:7px;border-radius:50%;margin-left:4px;box-shadow:0 0 10px currentColor}.nav-dot.fire{background:var(--orange);color:var(--orange)}.nav-dot.police{background:var(--blue);color:var(--blue)}.nav-dot.traffic{background:var(--yellow);color:var(--yellow)}.nav-dot.air{background:var(--cyan);color:var(--cyan)}
.situation-line{display:flex;justify-content:space-between;font-size:10px;color:#95aabc;padding:6px 3px}.situation-line strong{color:#dcecf7}.situation-line .warn{color:var(--yellow)}
.feed-head{padding:16px 16px 10px;display:flex;justify-content:space-between;align-items:flex-start}.feed-head h2,.layer-title-row h2{font-size:16px;margin:0}.tiny-btn{width:30px;height:30px;color:#7790a4}
.feed-tabs{display:flex;padding:0 12px 10px;gap:4px;border-bottom:1px solid rgba(255,255,255,.07)}.feed-tab{border:0;border-radius:6px;background:transparent;color:#7f95a6;font-size:10px;padding:6px 9px;cursor:pointer}.feed-tab.active{color:#dff5ff;background:rgba(102,214,255,.09)}
.feed{overflow:auto;padding:8px}.feed::-webkit-scrollbar{width:4px}.feed::-webkit-scrollbar-thumb{background:#243746;border-radius:4px}
.event-card{position:relative;border:1px solid rgba(255,255,255,.065);background:rgba(0,0,0,.14);padding:11px 11px 10px 13px;border-radius:10px;margin-bottom:7px;cursor:pointer;transition:.18s}
.event-card:hover{transform:translateX(-2px);border-color:rgba(102,214,255,.18);background:rgba(17,34,46,.72)}
.event-card:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--event,#70879a)}
.event-top{display:flex;justify-content:space-between;align-items:center}.event-kind{font-size:9px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--event,#9fb4c4)}.event-time{font-size:9px;color:#657c8d}.event-title{font-size:12px;font-weight:750;margin-top:5px}.event-loc{font-size:10px;color:#8098aa;margin-top:3px}.event-context{display:flex;gap:7px;margin-top:8px;color:#7992a4;font-size:9px}.event-context span{padding:3px 5px;border-radius:5px;background:rgba(255,255,255,.035)}
.bottom-status{position:absolute;z-index:16;left:288px;right:351px;bottom:16px;height:36px;border-radius:10px;display:flex;align-items:center;padding:0 12px;gap:15px}
.source{font-size:9px;color:#7890a1;letter-spacing:.7px;display:flex;align-items:center;gap:5px}.source span{width:6px;height:6px;border-radius:50%}.source.ok span{background:var(--green);box-shadow:0 0 8px rgba(89,214,154,.45)}.source.stale span{background:var(--yellow)}.refresh{margin-left:auto;font-size:9px;color:#688193}.refresh b{color:#c3d8e6;margin-left:5px}
.detail-panel,.layer-panel,.mobile-sheet{position:absolute;z-index:30;transition:.28s cubic-bezier(.2,.8,.2,1)}
.detail-panel{top:104px;right:18px;bottom:64px;width:390px;border-radius:14px;padding:18px;transform:translateX(calc(100% + 40px));overflow:auto}
.detail-panel.open{transform:translateX(0)}.close-panel{border:0;background:rgba(255,255,255,.06);width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:18px;float:right;color:#8da4b5}
.detail-kicker{font-size:9px;letter-spacing:1.5px;color:var(--orange);font-weight:900}.detail-title{font-size:23px;line-height:1.1;margin:8px 36px 6px 0}.detail-meta{font-size:11px;color:#7790a2}.detail-block{margin-top:18px;padding-top:15px;border-top:1px solid rgba(255,255,255,.07)}
.detail-block h3{font-size:9px;color:#6e879a;letter-spacing:1.4px;margin:0 0 10px}.detail-row{display:flex;justify-content:space-between;padding:5px 0;font-size:11px}.detail-row span{color:#849bab}.detail-note{font-size:9px;line-height:1.5;color:#657e91;margin-top:10px}.risk-box{border:1px solid rgba(255,177,74,.18);background:rgba(255,142,53,.07);border-radius:10px;padding:12px}.risk-head{display:flex;justify-content:space-between;font-size:11px}.risk-head b{color:var(--yellow)}.risk-meter{height:4px;background:rgba(255,255,255,.07);border-radius:4px;margin-top:10px;overflow:hidden}.risk-meter i{display:block;height:100%;width:68%;background:linear-gradient(90deg,#6ed9a5,#f4c85f,#ff8558)}
.layer-panel{left:282px;top:104px;width:290px;max-height:calc(100% - 168px);border-radius:14px;padding:16px;transform:translateX(-20px);opacity:0;pointer-events:none}
.layer-panel.open{transform:none;opacity:1;pointer-events:auto}.panel-grabber{display:none}.layer-title-row{display:flex;justify-content:space-between}.layer-group{margin-top:14px}.layer-toggle{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:8px;cursor:pointer}.layer-toggle:hover{background:rgba(255,255,255,.035)}.switch{width:31px;height:17px;border-radius:11px;background:#253745;position:relative;flex:none}.switch:after{content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:#8ba1b0;top:2px;left:2px;transition:.18s}.layer-toggle.on .switch{background:rgba(53,151,192,.5)}.layer-toggle.on .switch:after{left:16px;background:#9ce9ff}.layer-name{font-size:11px}.layer-desc{font-size:9px;color:#688194;margin-top:2px}
.mobile-dock,.mobile-sheet{display:none}
.maplibregl-ctrl-bottom-right{bottom:56px!important;right:350px!important}.maplibregl-ctrl-attrib{background:rgba(4,10,15,.65)!important;color:#607787!important}.maplibregl-ctrl-attrib a{color:#718a9e!important}
.maplibregl-popup-content{background:#0c1720!important;color:#e9f7ff!important;border:1px solid rgba(255,255,255,.1);border-radius:8px!important;box-shadow:var(--shadow)!important;padding:9px 11px!important}.maplibregl-popup-tip{border-top-color:#0c1720!important}.maplibregl-popup-close-button{color:#fff}
.marker{display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 5px 12px rgba(0,0,0,.45));cursor:pointer;transition:transform .15s}.marker:hover{transform:scale(1.12)}.incident-marker{width:34px;height:34px;border:1px solid rgba(255,255,255,.25);border-radius:50%;font-size:17px;background:rgba(11,22,30,.92);box-shadow:0 0 0 5px rgba(255,122,67,.08)}.heli-marker{width:32px;height:32px;font-size:19px;background:rgba(14,39,52,.92);border:1px solid rgba(101,221,255,.4);border-radius:9px;box-shadow:0 0 20px rgba(79,205,255,.18)}
.lightning-marker{font-size:16px;text-shadow:0 0 10px #d5f1ff}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(84,230,147,0)}100%{box-shadow:0 0 0 0 rgba(84,230,147,0)}}
@media(max-width:1050px){.left-panel{width:220px}.right-panel{width:280px}.bottom-status{left:256px;right:316px}.top-stats .stat:nth-of-type(2){display:none}.maplibregl-ctrl-bottom-right{right:315px!important}}
@media(max-width:780px){
 body{overflow:hidden}.topbar{left:8px;right:8px;top:8px;height:58px;border-radius:12px;padding:0 10px}.brand{min-width:0}.brand-mark{width:36px;height:36px}.brand-title{font-size:13px}.brand-sub{display:none}.top-stats .stat{display:none}.live-pill{height:34px;padding:0 9px}.top-actions{margin-left:6px}.icon-btn{width:34px;height:34px}
 .desktop-panel,.bottom-status{display:none}.mobile-dock{display:flex;position:absolute;z-index:20;left:8px;right:8px;bottom:8px;height:58px;border-radius:13px;align-items:center;padding:5px}
 .dock-btn{flex:1;height:46px;border:0;background:transparent;color:#7890a2;display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;font-size:15px}.dock-btn span{font-size:9px}.dock-btn.active{color:#dff8ff;background:rgba(102,214,255,.08);border-radius:9px}
 .detail-panel{top:auto;left:8px;right:8px;bottom:74px;width:auto;max-height:72vh;border-radius:16px;transform:translateY(calc(100% + 100px))}.detail-panel.open{transform:none}
 .layer-panel{left:8px;right:8px;top:auto;bottom:74px;width:auto;max-height:72vh;border-radius:16px;transform:translateY(calc(100% + 100px));opacity:1}.layer-panel.open{transform:none}.panel-grabber{display:block;width:42px;height:4px;border-radius:4px;background:#405364;margin:0 auto 12px}
 .mobile-sheet{display:block;left:8px;right:8px;bottom:74px;height:55vh;border-radius:16px;padding:10px;transform:translateY(calc(100% + 100px))}.mobile-sheet.open{transform:none}.sheet-title{display:flex;justify-content:space-between;align-items:center;padding:0 5px 8px}.mobile-sheet .feed{height:calc(100% - 42px)}
 .maplibregl-ctrl-bottom-right{right:8px!important;bottom:75px!important}.maplibregl-ctrl-attrib{font-size:8px!important}
}

/* v254 clearer incident detail hierarchy */
.incident-message{display:grid;gap:10px}
.incident-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:2px}
.incident-context-item{min-width:0;padding:9px 10px;border:1px solid rgba(255,255,255,.075);border-radius:9px;background:rgba(255,255,255,.025)}
.incident-context-item span,.incident-dispatch-card span{display:block;margin-bottom:4px;color:#718b9e;font-size:8px;font-weight:850;letter-spacing:1.05px;text-transform:uppercase}
.incident-context-item b{display:flex;align-items:flex-start;gap:5px;color:#e4f1f8;font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.incident-context-item b i{font-style:normal;font-size:10px}
.incident-info-block{min-width:0}
.incident-info-label{margin-bottom:6px;color:#7892a5;font-size:8px;font-weight:900;letter-spacing:1.15px;text-transform:uppercase}
.incident-info-value{overflow-wrap:anywhere}
.incident-primary-block{padding:12px 13px;border:1px solid rgba(102,214,255,.17);border-left:3px solid var(--cyan);border-radius:10px;background:linear-gradient(135deg,rgba(48,139,177,.13),rgba(255,255,255,.025))}
.incident-primary-block .incident-info-label{color:#80cde9}
.incident-primary-block .incident-info-value{color:#f3fbff;font-size:15px;font-weight:850;line-height:1.28}
.incident-dispatch-block{padding:11px 0 2px;border-top:1px solid rgba(255,255,255,.06)}
.incident-dispatch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.incident-dispatch-card{min-width:0;padding:10px;border:1px solid rgba(255,255,255,.075);border-radius:9px;background:rgba(0,0,0,.13)}
.incident-dispatch-card b{display:block;color:#e5f2f9;font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.incident-dispatch-card small{display:block;margin-top:7px;padding-top:7px;border-top:1px solid rgba(255,255,255,.06);color:#8fa7b7;font-size:9px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}
.incident-explanation-block{padding:11px 12px;border-radius:9px;background:rgba(255,177,74,.055)}
.incident-explanation-block .incident-info-label{color:#d9a75f}
.incident-explanation-block .incident-info-value{color:#c8d7e0;font-size:10px;line-height:1.55}
.incident-basis-block{padding-top:10px;border-top:1px solid rgba(255,255,255,.055)}
.incident-basis-block .incident-info-value{color:#6f899b;font-size:9px;line-height:1.55}
@media(max-width:420px){
 .incident-context-grid,.incident-dispatch-grid{grid-template-columns:1fr}
}

/* v259: reserve a real footer lane and keep the age legend clear of panels */
body.home.odin112-next-body{--cc-footer-height:34px}
body.home.odin112-next-body>.cc-app{bottom:var(--cc-footer-height)!important;height:auto!important}
body.home.odin112-next-body>.o112-sitefoot{
  position:fixed!important;z-index:25!important;left:0!important;right:0!important;bottom:0!important;
  width:100%!important;height:var(--cc-footer-height)!important;min-height:var(--cc-footer-height)!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  margin:0!important;padding:4px 14px!important;overflow:hidden!important;
  background:#071019!important;border-top:1px solid rgba(161,204,231,.12)!important;
  color:#708797!important;font-size:9px!important;line-height:1.35!important;text-align:center!important
}
.cc-age-legend{left:288px!important;bottom:62px!important}
@media(max-width:1050px) and (min-width:781px){
 body.home.odin112-next-body{--cc-footer-height:46px}
 .cc-age-legend{left:256px!important;bottom:62px!important}
}
@media(max-width:780px){
 body.home.odin112-next-body{--cc-footer-height:50px}
 body.home.odin112-next-body>.o112-sitefoot{padding:4px 9px!important;font-size:8px!important;line-height:1.25!important}
 .cc-age-legend{left:8px!important;bottom:74px!important}
}


/* Production additions only; original prototype rules above are unchanged. */
a.brand{color:inherit;text-decoration:none}.cc-app{position:fixed;inset:0}.stage{position:relative;overflow:hidden}.feed{overflow-x:hidden!important}.event-card{min-width:0;max-width:100%;overflow:hidden}.event-title,.event-loc,.event-context,.event-context span{min-width:0;max-width:100%;overflow-wrap:anywhere}.event-context{flex-wrap:wrap}
.cc-menu-panel{position:absolute;z-index:35;right:18px;top:96px;width:250px;border-radius:14px;padding:16px;transform:translateY(-10px);opacity:0;pointer-events:none;transition:.22s}.cc-menu-panel.open{transform:none;opacity:1;pointer-events:auto}.cc-menu-panel .o112-app-sections{display:grid;gap:4px}.cc-menu-panel .o112-app-sections a{color:#bcd0df;text-decoration:none;padding:8px;border-radius:8px;font-size:11px}.cc-menu-panel .o112-app-sections a:hover,.cc-menu-panel .o112-app-sections a.is-active{background:rgba(102,214,255,.08);color:#fff}.cc-area-label{margin-top:16px}.cc-select select{width:100%;background:#0a1720;color:#d9eaf4;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px}
.marker-icon-inner{display:grid;place-items:center;width:100%;height:100%;transform-origin:center}.event-card.is-selected{border-color:rgba(102,214,255,.35);background:rgba(17,34,46,.82)}.event-source{font-size:8px;letter-spacing:.8px;text-transform:uppercase}.event-description{font-size:9px;color:#718a9a;margin-top:6px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.layer-badge{margin-left:auto;font-size:8px;color:#78dbae;border:1px solid rgba(89,214,154,.2);padding:2px 5px;border-radius:5px}.layer-toggle{min-width:0}.layer-toggle>div{min-width:0;flex:1}.layer-desc{overflow-wrap:anywhere}.maplibregl-marker{z-index:2}.cc-air-icon img{width:24px;height:24px;display:block}.cc-police-marker,.cc-vd-marker,.cc-brigade-marker{width:32px;height:32px;border-radius:50%;background:rgba(11,22,30,.94);border:1px solid rgba(255,255,255,.24);display:grid;place-items:center;font-size:15px;box-shadow:0 0 0 5px rgba(95,168,255,.07)}.cc-vd-marker{border-color:rgba(255,209,96,.5)}.cc-brigade-marker{border-color:rgba(255,155,67,.45)}
.cc-weather-marker{min-width:34px;height:24px;border-radius:12px;padding:0 6px;background:rgba(9,22,31,.94);border:1px solid rgba(103,211,255,.42);display:grid;place-items:center;font-size:8px;font-weight:800;color:#dff7ff}.cc-lightning{font-size:17px;text-shadow:0 0 12px #d5f1ff}.detail-link{color:#72d8ff;text-decoration:none}.detail-text{font-size:11px;line-height:1.55;color:#b4c8d5}.detail-extra{padding:8px;border-radius:8px;background:rgba(255,255,255,.03);font-size:10px;margin-top:6px}.detail-warning{font-size:9px;color:#f2c97b;line-height:1.5}.detail-loading{font-size:10px;color:#7c96a8}.cc-air-list{display:grid;gap:8px;margin-top:12px}.cc-air-row{padding:10px;border-radius:9px;background:rgba(255,255,255,.03);font-size:10px}.cc-air-row b{display:block;font-size:11px}.cc-air-row span{color:#8197a7}.cc-failed{color:#ff8780!important}
@media(max-width:780px){.cc-menu-panel{left:8px;right:8px;top:72px;width:auto}.right-panel{display:none!important}.mobile-sheet.open{z-index:32}.detail-panel.open{z-index:34}.layer-panel.open{z-index:33}}

/* v184 fixes */
.feed,.right-panel,.event-card,.event-title,.event-loc,.event-description,.event-context{min-width:0!important;max-width:100%!important}
.feed{overflow-x:hidden!important}
.event-card{overflow:hidden!important}
.event-title,.event-loc,.event-description{overflow-wrap:anywhere!important;word-break:break-word!important;white-space:normal!important}
.event-context{display:flex!important;flex-wrap:wrap!important;overflow:hidden!important}
.layer-toggle.is-loading{opacity:.58;pointer-events:none}
.layer-toggle.is-loading .switch:after{animation:ccLayerPulse .65s ease-in-out infinite alternate}
@keyframes ccLayerPulse{from{opacity:.35}to{opacity:1}}
.cc-weather-marker{min-width:34px!important;padding:0 6px!important;white-space:nowrap!important;font-variant-numeric:tabular-nums}

/* v186 center-page router */
.cc-pages-nav .nav-item>span:first-child{font-size:13px;display:grid;place-items:center}
.cc-center-view{position:absolute;z-index:14;left:282px;right:345px;top:104px;bottom:64px;border-radius:14px;overflow:hidden;background:#071019;border:1px solid rgba(161,204,231,.14);box-shadow:0 22px 70px rgba(0,0,0,.38);opacity:0;pointer-events:none;transform:scale(.992);transition:.2s ease}
.cc-center-view.open{opacity:1;pointer-events:auto;transform:none}
.cc-center-head{position:absolute;z-index:3;left:0;right:0;top:0;height:64px;border:0!important;border-bottom:1px solid rgba(161,204,231,.10)!important;border-radius:0!important;display:flex;align-items:center;justify-content:space-between;padding:0 14px;box-shadow:none!important}
.cc-center-head h2{margin:0;font-size:16px}.cc-center-head .section-label{margin-bottom:3px}
.cc-center-view iframe{position:absolute;inset:64px 0 0;width:100%;height:calc(100% - 64px);border:0;background:#071019;color-scheme:dark}
.cc-center-loading{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;color:#8298a8}
body.cc-page-open #map,body.cc-page-open .map-vignette{visibility:hidden}
body.cc-page-open .maplibregl-control-container{display:none}
@media(max-width:1050px){.cc-center-view{left:250px;right:310px}}
@media(max-width:780px){.cc-center-view{z-index:29;left:8px;right:8px;top:74px;bottom:74px;border-radius:14px}.cc-center-head{height:54px}.cc-center-view iframe{inset:54px 0 0;height:calc(100% - 54px)}}

/* v187 notification settings */
.cc-notification-view{position:absolute;z-index:14;left:282px;right:351px;top:104px;bottom:64px;display:flex;flex-direction:column;transform:translateY(16px);opacity:0;pointer-events:none;transition:.25s ease}
.cc-notification-view.open{transform:none;opacity:1;pointer-events:auto}
.cc-notification-content{flex:1;overflow:auto;padding:14px;background:rgba(5,13,20,.93);border:1px solid rgba(161,204,231,.10);border-top:0;border-radius:0 0 14px 14px}
.cc-settings-card{display:flex;gap:13px;align-items:center;padding:15px;margin-bottom:10px;border-radius:12px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025)}
.cc-settings-card.cc-settings-stack{display:block}
.cc-settings-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:rgba(102,214,255,.08);font-size:21px;flex:none}
.cc-settings-copy{flex:1}.cc-settings-copy h3{margin:0 0 4px;font-size:14px}.cc-settings-copy p,.cc-settings-help{margin:0;color:#7890a3;font-size:10px;line-height:1.5}
.cc-settings-status{font-size:10px;font-weight:800;color:#8ce4b3;padding:5px 8px;border-radius:7px;background:rgba(89,214,154,.07)}

/* v268: særskilt ODIN-visning for ét eller flere beredskaber */
.cc-brigade-view{z-index:29;background:#071018;overflow:hidden}
.cc-brigade-layout{position:absolute;inset:76px 16px 16px;display:grid;grid-template-columns:280px minmax(0,1fr);gap:14px;overflow:hidden}
.cc-brigade-picker{padding:16px;border-radius:14px;display:flex;flex-direction:column;min-height:0}
.cc-brigade-search{width:100%;margin:10px 0;padding:10px 11px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:#0b1822;color:#eaf7ff}
.cc-brigade-picker .cc-brigade-list{flex:1;overflow:auto;min-height:120px;margin:8px 0 12px;padding-right:4px}
.cc-brigade-main,.cc-brigade-picker .cc-brigade-list{scrollbar-width:thin;scrollbar-color:#243746 transparent}
.cc-brigade-main::-webkit-scrollbar,.cc-brigade-picker .cc-brigade-list::-webkit-scrollbar{width:4px;height:4px}
.cc-brigade-main::-webkit-scrollbar-track,.cc-brigade-picker .cc-brigade-list::-webkit-scrollbar-track{background:transparent}
.cc-brigade-main::-webkit-scrollbar-thumb,.cc-brigade-picker .cc-brigade-list::-webkit-scrollbar-thumb{background:#243746;border-radius:4px}
.cc-brigade-picker .cc-primary-btn{width:100%;justify-content:center}
.cc-brigade-main{min-width:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);grid-template-areas:"summary summary" "events stats";gap:12px;align-content:start;padding-right:3px}
.cc-brigade-summary{grid-area:summary;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cc-brigade-summary>div{padding:12px 14px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(11,25,35,.92);display:flex;flex-direction:column;gap:5px}
.cc-brigade-summary span{color:#8da5b5;font-size:9px;text-transform:uppercase;letter-spacing:.7px}.cc-brigade-summary b{font-size:15px;color:#effaff}
.cc-brigade-stats{grid-area:stats;padding:15px;border-radius:14px}.cc-brigade-stats section+section{border-top:1px solid rgba(255,255,255,.08);margin-top:17px;padding-top:13px}
.cc-brigade-stats h3{font-size:12px;margin:0 0 11px}.cc-brigade-stats p{color:#849baa;font-size:11px}
.cc-brigade-bar{display:grid;grid-template-columns:minmax(90px,1fr) minmax(70px,1fr) 24px;gap:8px;align-items:center;margin:8px 0;font-size:9px}.cc-brigade-bar>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-brigade-bar i{height:5px;background:rgba(255,255,255,.07);border-radius:9px;overflow:hidden}.cc-brigade-bar i b{display:block;height:100%;background:#55ccee;border-radius:9px}.cc-brigade-bar strong{text-align:right}
.cc-brigade-events{grid-area:events;padding:15px;border-radius:14px}.cc-brigade-event{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.07)}.cc-brigade-event:last-child{border-bottom:0}.cc-brigade-event>span{color:#5fd6f5;font-weight:800}.cc-brigade-event b,.cc-brigade-event small{display:block}.cc-brigade-event b{font-size:11px}.cc-brigade-event small,.cc-brigade-event time{font-size:9px;color:#859dac;margin-top:3px}.cc-brigade-event time{white-space:nowrap}
.cc-brigade-feed-card{margin-top:8px}.cc-brigade-feed-card .event-description{-webkit-line-clamp:3}
.cc-brigade-view>[data-brigade-loading]{z-index:4}
@media(max-width:900px){.cc-brigade-layout{inset:70px 8px 8px;display:block;overflow:auto}.cc-brigade-picker{max-height:390px;margin-bottom:10px}.cc-brigade-main{display:block}.cc-brigade-summary{grid-template-columns:1fr 1fr}.cc-brigade-stats,.cc-brigade-events{margin-bottom:10px}}

/* v269: intentionally last and specific, so browser/theme defaults cannot win. */
#ccBrigadeView,#ccBrigadeView *{scrollbar-width:thin!important;scrollbar-color:#243746 transparent!important}
#ccBrigadeView::-webkit-scrollbar,#ccBrigadeView *::-webkit-scrollbar{width:4px!important;height:4px!important}
#ccBrigadeView::-webkit-scrollbar-track,#ccBrigadeView *::-webkit-scrollbar-track{background:transparent!important}
#ccBrigadeView::-webkit-scrollbar-thumb,#ccBrigadeView *::-webkit-scrollbar-thumb{background:#243746!important;border:0!important;border-radius:999px!important}
.cc-radio{display:flex;align-items:flex-start;gap:10px;padding:10px 8px;border-radius:9px;cursor:pointer}
.cc-radio:hover{background:rgba(255,255,255,.03)}.cc-radio input{margin-top:3px;accent-color:#66d6ff}.cc-radio span{display:block}.cc-radio b{display:block;font-size:11px;color:#e3f1f9}.cc-radio small{display:block;margin-top:2px;font-size:9px;color:#72899b}
.cc-settings-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:10px}.cc-settings-row span{color:#8198a8}.cc-settings-row b{color:#dcebf5;text-align:right}
.cc-settings-help{margin-top:10px}
.cc-settings-actions{display:flex;gap:8px;margin-top:14px}.cc-primary-btn,.cc-secondary-btn{border-radius:9px;padding:10px 13px;font-size:10px;font-weight:800;cursor:pointer}
.cc-primary-btn{border:1px solid rgba(102,214,255,.28);background:rgba(53,151,192,.16);color:#dff7ff}.cc-secondary-btn{border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.035);color:#bcd0dc}
.cc-settings-message{min-height:28px;margin-top:9px;font-size:10px;color:#8fa8b8;line-height:1.4}
@media(max-width:780px){
 .cc-notification-view{left:8px;right:8px;top:74px;bottom:74px}
 .cc-settings-actions{flex-direction:column}
}

/* v188 complete mobile navigation */
@media(max-width:780px){
  .mobile-dock{display:flex!important;gap:2px!important}
  .mobile-dock .dock-btn{flex:1!important}
  .cc-menu-panel{
    display:flex!important;position:absolute!important;z-index:1350!important;left:8px!important;right:8px!important;bottom:74px!important;top:auto!important;
    width:auto!important;max-height:76vh!important;flex-direction:column!important;border-radius:16px!important;
    transform:translateY(calc(100% + 110px))!important;transition:.28s cubic-bezier(.2,.8,.2,1)!important;
    opacity:1!important;pointer-events:auto!important;overflow:hidden!important
  }
  .cc-menu-panel.open{transform:none!important}
  .cc-mobile-menu-head{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 8px 10px;border-bottom:1px solid rgba(255,255,255,.07)}
  .cc-mobile-menu-head h2{margin:0;font-size:16px}
  .cc-mobile-menu-scroll{overflow-y:auto;overflow-x:hidden;padding:8px 2px 14px}
  .cc-mobile-menu-scroll section+section{margin-top:13px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}
  .cc-mobile-menu-item{width:100%;display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;border:0;background:transparent;color:#c7d9e4;text-align:left;padding:10px 8px;border-radius:9px}
  .cc-mobile-menu-item:active{background:rgba(102,214,255,.08)}
  .cc-mobile-menu-item span{font-size:15px}.cc-mobile-menu-item b{font-size:11px}.cc-mobile-menu-item em{font-style:normal;color:#6f8799;font-size:17px}
  .cc-mobile-now>div:not(.section-label){display:flex;justify-content:space-between;gap:12px;padding:7px 5px;font-size:10px;color:#91a8b8}
  .cc-mobile-now strong{color:#dcecf6}
  .cc-menu-panel .cc-select select{width:100%!important}
}

/* v189 iOS/Safari notification scroll hotfix */
@media(max-width:780px){
  .cc-notification-view{
    top:74px!important;
    bottom:74px!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    overscroll-behavior:contain!important;
  }

  .cc-notification-view .cc-center-head{
    flex:0 0 auto!important;
    position:relative!important;
    z-index:2!important;
  }

  .cc-notification-content{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;
  }

  .cc-settings-card,
  .cc-settings-actions,
  .cc-settings-message{
    flex-shrink:0!important;
  }

  /* Safari occasionally traps touch-scroll when a transformed ancestor is active. */
  .cc-notification-view.open{
    transform:none!important;
    will-change:auto!important;
  }
}

/* v190 iOS PWA scroll-root fix */
@media(max-width:780px){
  html.cc-notifications-open,
  body.cc-notifications-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
    height:100%!important;
    touch-action:none!important;
  }

  .cc-notification-view{
    position:fixed!important;
    z-index:1600!important;
    left:8px!important;
    right:8px!important;
    top:calc(8px + env(safe-area-inset-top))!important;
    bottom:calc(74px + env(safe-area-inset-bottom))!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    transform:none!important;
    border-radius:16px!important;
    pointer-events:none!important;
  }

  .cc-notification-view.open{
    pointer-events:auto!important;
  }

  .cc-notification-view .cc-center-head{
    flex:0 0 auto!important;
    position:relative!important;
    z-index:3!important;
    min-height:58px!important;
  }

  .cc-notification-scrollroot{
    position:relative!important;
    flex:1 1 auto!important;
    min-height:0!important;
    height:0!important;
    overflow-y:scroll!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    pointer-events:auto!important;
    scrollbar-width:thin;
  }

  .cc-notification-content{
    display:block!important;
    min-height:max-content!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:14px 14px calc(32px + env(safe-area-inset-bottom))!important;
  }

  .cc-notification-scrollroot *{
    touch-action:auto;
  }

  .cc-notification-scrollroot input,
  .cc-notification-scrollroot button,
  .cc-notification-scrollroot label{
    touch-action:manipulation;
  }
}

/* v191 iOS interaction hotfix: keep scrolling, restore taps/clicks */
@media(max-width:780px){
  html.cc-notifications-open,
  body.cc-notifications-open{
    overflow:hidden!important;
    overscroll-behavior:none!important;
    height:100%!important;
    touch-action:auto!important;
  }

  .cc-notification-view,
  .cc-notification-view.open{
    pointer-events:auto!important;
  }

  .cc-notification-scrollroot{
    touch-action:pan-y!important;
    pointer-events:auto!important;
  }

  .cc-notification-scrollroot *{
    pointer-events:auto!important;
  }

  .cc-notification-scrollroot button,
  .cc-notification-scrollroot a,
  .cc-notification-scrollroot input,
  .cc-notification-scrollroot label,
  .cc-notification-scrollroot select,
  .cc-notification-scrollroot textarea{
    touch-action:manipulation!important;
    -webkit-user-select:auto!important;
    user-select:auto!important;
  }

  .cc-notification-scrollroot label,
  .cc-notification-scrollroot button{
    cursor:pointer!important;
  }
}

/* v192 universal mobile scroll reset */
@media(max-width:780px){
  html.cc-notifications-open,
  body.cc-notifications-open{
    overflow:auto!important;
    height:auto!important;
    touch-action:auto!important;
    overscroll-behavior:auto!important;
  }

  .cc-notification-view{
    position:absolute!important;
    z-index:1600!important;
    left:8px!important;
    right:8px!important;
    top:74px!important;
    bottom:74px!important;
    width:auto!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border-radius:16px!important;
    transform:translateY(calc(100% + 110px))!important;
    transition:.28s cubic-bezier(.2,.8,.2,1)!important;
    pointer-events:none!important;
  }

  .cc-notification-view.open{
    transform:none!important;
    pointer-events:auto!important;
  }

  .cc-notification-view .cc-center-head{
    flex:0 0 auto!important;
  }

  .cc-notification-scrollroot{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
    pointer-events:auto!important;
  }

  .cc-notification-content{
    display:block!important;
    height:auto!important;
    min-height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding:14px 14px calc(28px + env(safe-area-inset-bottom))!important;
  }

  .cc-notification-scrollroot *,
  .cc-notification-scrollroot button,
  .cc-notification-scrollroot a,
  .cc-notification-scrollroot input,
  .cc-notification-scrollroot label,
  .cc-notification-scrollroot select,
  .cc-notification-scrollroot textarea{
    pointer-events:auto!important;
    touch-action:auto!important;
  }
}

/* v193 smooth helicopter movement + recent flight trail */
.cc-air-icon .cc-aircraft-icon{
  transform:rotate(var(--cc-air-heading,0deg));
  transform-origin:50% 50%;
  will-change:transform;
}

/* v195 aircraft marker ownership:
   Never set transform on the OUTER MapLibre marker. MapLibre itself uses
   transform for screen positioning. Only .cc-aircraft-icon is rotated. */
.cc-air-icon .cc-aircraft-icon{
  transform-origin:50% 50%!important;
  will-change:transform;
}
.cc-air-icon img{
  display:block;
  pointer-events:none;
  user-select:none;
  -webkit-user-drag:none;
}

/* v195: MapLibre owns outer marker positioning */
.cc-air-icon{
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
}
.cc-air-icon .cc-aircraft-icon{
  display:block!important;
  transform-origin:50% 50%!important;
  will-change:transform;
}

/* v196 layer information UI */
.cc-layer-info{
  margin-left:auto!important;
  width:25px!important;height:25px!important;min-width:25px!important;
  border:1px solid rgba(121,213,255,.18)!important;
  border-radius:50%!important;
  background:rgba(102,214,255,.06)!important;
  color:#9bdff8!important;
  display:grid!important;place-items:center!important;
  font-size:12px!important;font-weight:800!important;
  padding:0!important;cursor:pointer!important
}
.cc-layer-info:hover{background:rgba(102,214,255,.13)!important;color:#dff7ff!important}
.cc-layer-info-panel{
  position:absolute;z-index:1450;left:50%;top:50%;width:min(430px,calc(100% - 32px));
  max-height:min(70vh,560px);overflow:auto;border-radius:14px;padding:17px;
  transform:translate(-50%,-46%);opacity:0;pointer-events:none;transition:.22s ease
}
.cc-layer-info-panel.open{transform:translate(-50%,-50%);opacity:1;pointer-events:auto}
.cc-layer-info-panel h2{margin:2px 38px 12px 0;font-size:17px}
.cc-layer-info-body{font-size:11px;line-height:1.6;color:#a9bdca}
.cc-layer-info-body p{margin:0 0 10px}.cc-layer-info-body b{color:#e8f5fc}
@media(max-width:780px){
 .cc-layer-info-panel{position:fixed;left:8px;right:8px;top:auto;bottom:74px;width:auto;max-height:65vh;transform:translateY(calc(100% + 100px));border-radius:16px}
 .cc-layer-info-panel.open{transform:none}
}

/* v197 actual visible layer menu */
.layer-toggle{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto auto!important;align-items:center!important}
.layer-copy{min-width:0!important}
.cc-layer-info{width:24px!important;height:24px!important;min-width:24px!important;border:1px solid rgba(121,213,255,.22)!important;border-radius:50%!important;background:rgba(102,214,255,.07)!important;color:#9bdff8!important;display:grid!important;place-items:center!important;padding:0!important;font-size:12px!important;cursor:pointer!important}

/* v201 structured incident message */
.incident-message{display:flex!important;flex-direction:column!important;gap:0!important}
.incident-info-block{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.065)}
.incident-info-block:first-child{padding-top:2px}
.incident-info-block:last-child{border-bottom:0;padding-bottom:2px}
.incident-info-label{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#6f899a;margin-bottom:4px}
.incident-info-value{font-size:11px;line-height:1.55;color:#d3e1e9;white-space:normal;overflow-wrap:anywhere}
.incident-unit-explanation-block .incident-info-value{white-space:pre-line!important}
.cc-incident-cluster{width:40px;height:40px;padding:0;border-radius:50%;border:2px solid rgba(255,255,255,.7);background:linear-gradient(145deg,#ff8749,#b92f35);color:#fff;box-shadow:0 0 0 7px rgba(255,122,67,.13),0 8px 22px rgba(0,0,0,.48);font-size:13px;font-weight:900;cursor:pointer}
.cc-incident-cluster span{display:grid;place-items:center;width:100%;height:100%}
.cc-incident-cluster-list{display:grid;gap:7px}
.cc-incident-cluster-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:2px 8px;width:100%;padding:10px;text-align:left;border:1px solid rgba(255,255,255,.07);border-radius:9px;background:rgba(255,255,255,.025);color:#dcebf4;cursor:pointer}
.cc-incident-cluster-row:hover{border-color:rgba(102,214,255,.26);background:rgba(102,214,255,.06)}
.cc-incident-cluster-row span{grid-row:1/3;color:#7f98a9;font-size:10px;font-weight:800}
.cc-incident-cluster-row b{min-width:0;overflow-wrap:anywhere;font-size:11px}
.cc-incident-cluster-row small{color:#738b9d;font-size:9px}
.incident-station-block .incident-info-value{font-weight:700;color:#e8f5fb}

/* v202 on-demand weather layers */
.layer-toggle[data-layer="radar"] .layer-name:before{content:"🌧 ";font-size:12px}

/* v205 VD text cleanup */
.event-card .event-description{margin-top:5px;line-height:1.45}
.event-card .event-loc{line-height:1.4}

/* v206 incident detail parser cleanup */
.incident-info-value{white-space:normal!important}
.incident-info-value:first-letter{margin-left:0!important}

/* v208 incident taxonomy */
.marker .marker-icon-inner{
  min-width:32px;
  height:32px;
  padding:0 5px;
  display:grid;
  place-items:center;
  white-space:nowrap;
  font-size:15px;
}
.cc-marker-badge{
  position:absolute;
  right:-5px;
  top:-6px;
  min-width:16px;
  height:16px;
  padding:0 2px;
  border-radius:9px;
  display:grid;
  place-items:center;
  font-size:9px;
  background:#0a1720;
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 3px 10px rgba(0,0,0,.35);
}

/* v211 notification brigade filter */
.cc-brigade-actions{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 8px}
.cc-mini-btn{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.045);color:inherit;border-radius:8px;padding:7px 10px;font:inherit;cursor:pointer}
.cc-brigade-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:260px;overflow:auto;overscroll-behavior:contain;padding:2px 4px 2px 0;-webkit-overflow-scrolling:touch}
.cc-check{display:flex;align-items:flex-start;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.025);cursor:pointer}
.cc-check input{margin-top:2px;flex:0 0 auto}
.cc-check span{font-size:12px;line-height:1.3}
@media(max-width:700px){.cc-brigade-list{grid-template-columns:1fr;max-height:300px}}

/* v215 — age-aware ODIN/112 map */
.incident-marker.cc-event-age-live,
.cc-brigade-marker.cc-event-age-live{opacity:1;filter:none}
.incident-marker.cc-event-age-recent,
.cc-brigade-marker.cc-event-age-recent{opacity:.82;filter:saturate(.88)}
.incident-marker.cc-event-age-aged,
.cc-brigade-marker.cc-event-age-aged{opacity:.58;filter:saturate(.62)}
.incident-marker.cc-event-age-old,
.cc-brigade-marker.cc-event-age-old{opacity:.34;filter:grayscale(.72) saturate(.35)}
.incident-marker.cc-event-new .marker-icon-inner,
.cc-brigade-marker.cc-event-new .marker-icon-inner{animation:ccNewIncidentPulse 2.2s ease-out infinite}
@keyframes ccNewIncidentPulse{
  0%,65%,100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
  78%{box-shadow:0 0 0 7px rgba(255,255,255,.10)}
}
.cc-age-legend{
  position:absolute;left:12px;bottom:34px;z-index:8;
  padding:9px 11px;border-radius:10px;font-size:10px;line-height:1.65;
  pointer-events:none;backdrop-filter:blur(12px);
}
.cc-age-legend-title{font-size:9px;font-weight:800;letter-spacing:.12em;opacity:.7;margin-bottom:2px}
.cc-age-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;border:1px solid currentColor;vertical-align:0}
.cc-age-dot-live{opacity:1;background:currentColor}
.cc-age-dot-recent{opacity:.65;background:currentColor}
.cc-age-dot-old{opacity:.28;background:currentColor}
.cc-detail-age{display:inline-flex;margin-top:7px;padding:4px 7px;border:1px solid rgba(255,255,255,.10);border-radius:6px;font-size:10px;font-weight:700;letter-spacing:.04em}
.cc-detail-age-live{opacity:1}
.cc-detail-age-recent{opacity:.82}
.cc-detail-age-aged{opacity:.68}
.cc-detail-age-old{opacity:.55}
@media(max-width:700px){
  .cc-age-legend{left:8px;bottom:28px;padding:7px 9px;font-size:9px}
}

/* v216 VD active/ended status */
.cc-vd-status{
  display:inline-flex;align-items:center;gap:6px;margin-top:7px;
  padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;
  letter-spacing:.05em;text-transform:uppercase;border:1px solid rgba(255,255,255,.10)
}
.cc-vd-status span{width:7px;height:7px;border-radius:50%;display:block}
.cc-vd-status.is-active{color:#b9f6cb;background:rgba(65,190,105,.10);border-color:rgba(65,190,105,.22)}
.cc-vd-status.is-active span{background:#54d878;box-shadow:0 0 8px rgba(84,216,120,.55)}
.cc-vd-status.is-ended{color:#a6b3bc;background:rgba(140,150,160,.08);border-color:rgba(140,150,160,.16)}
.cc-vd-status.is-ended span{background:#7f8b94}
.cc-vd-feed-status.is-active{color:#7fe69a}
.cc-vd-feed-status.is-ended{color:#7f8b94}

/* v217 VD timing */
.cc-vd-ended-time{
  margin-top:5px;
  font-size:10px;
  color:#8f9ca5;
}

/* v218 station + brigade detail */
.incident-station-block .incident-info-value{
  display:flex;
  align-items:center;
  gap:6px;
}
.incident-station-pin{
  display:inline-flex;
  width:14px;
  justify-content:center;
  flex:0 0 14px;
  font-size:12px;
  line-height:1;
}
.incident-brigade-block .incident-info-value{
  font-weight:700;
  color:#d9eaf4;
}

/* v228 — readable map brightness modes.
   Only the MapLibre canvas is filtered; markers, labels rendered outside the
   canvas, controls and Command Center UI retain their normal contrast. */
#map .maplibregl-canvas{
  transition:filter .22s ease;
}
body.cc-map-tone-dark #map .maplibregl-canvas{
  /* The original dark basemap was too dark on many displays. */
  filter:brightness(1.18) contrast(.94) saturate(.94);
}
body.cc-map-tone-light #map .maplibregl-canvas{
  filter:brightness(1.52) contrast(.88) saturate(.82);
}
body.cc-map-tone-dark .map-vignette{
  opacity:.82;
  transition:opacity .22s ease;
}
body.cc-map-tone-light .map-vignette{
  opacity:.34;
  transition:opacity .22s ease;
}
.cc-map-tone-btn{min-width:62px}
.cc-map-tone-btn span{white-space:nowrap}
@media(max-width:760px){
  .cc-map-tone-btn{min-width:48px;padding-left:8px;padding-right:8px}
  .cc-map-tone-btn span{font-size:9px}
}

/* v278 — persistent brigade/station filter for the normal map and feed */
.cc-call-filter-trigger{position:absolute;z-index:18;top:112px;left:288px;min-height:38px;max-width:260px;padding:8px 11px;border-radius:10px;display:flex;align-items:center;gap:8px;color:#e8f6fd;cursor:pointer}
.cc-call-filter-trigger b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-call-filter-trigger i{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#56c9ed;color:#061018;font-size:9px;font-style:normal;font-weight:900}
.cc-call-filter-panel{position:absolute;z-index:30;top:158px;left:288px;width:min(390px,calc(100vw - 680px));max-height:calc(100vh - 230px);padding:14px;border-radius:14px;overflow:auto;overscroll-behavior:contain;transform:translateY(-8px);opacity:0;pointer-events:none;transition:.18s ease;scrollbar-width:thin;scrollbar-color:#315063 transparent}
.cc-call-filter-panel.open{transform:none;opacity:1;pointer-events:auto}
.cc-call-filter-panel::-webkit-scrollbar,.cc-call-filter-list::-webkit-scrollbar{width:5px}.cc-call-filter-panel::-webkit-scrollbar-thumb,.cc-call-filter-list::-webkit-scrollbar-thumb{background:#315063;border-radius:999px}
.cc-call-filter-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.cc-call-filter-head h2{margin:3px 0 0;font-size:17px}.cc-call-filter-help{margin:9px 0 12px;color:#91a8b5;font-size:10px;line-height:1.45}
.cc-call-filter-block{padding:11px;border:1px solid rgba(255,255,255,.075);border-radius:10px;background:rgba(5,16,24,.58)}.cc-call-filter-block+.cc-call-filter-block{margin-top:9px}
.cc-call-filter-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.cc-call-filter-label b{font-size:11px}.cc-call-filter-label span{font-size:9px;color:#70d6f4;font-weight:800}
.cc-call-filter-search{width:100%;height:36px;padding:8px 10px;border:1px solid #294656;border-radius:8px;background:#0b1b25;color:#edf8fd;font:inherit;font-size:10px;outline:none}.cc-call-filter-search:focus{border-color:#57c8eb;box-shadow:0 0 0 2px rgba(87,200,235,.10)}
.cc-call-filter-actions{display:flex;gap:6px;margin:7px 0}.cc-call-filter-actions button,.cc-call-filter-foot button{padding:6px 8px;border:1px solid #294656;border-radius:7px;background:#102632;color:#b9d1dd;font-size:9px;font-weight:800;cursor:pointer}
.cc-call-filter-list{max-height:155px;overflow:auto;display:grid;gap:2px;scrollbar-width:thin;scrollbar-color:#315063 transparent}.cc-call-filter-list label{display:flex;align-items:center;gap:8px;padding:6px 7px;border-radius:7px;color:#c7dae4;font-size:10px;cursor:pointer}.cc-call-filter-list label:hover{background:rgba(98,204,238,.07)}.cc-call-filter-list label:has(input:checked){background:rgba(78,197,233,.12);color:#e9f9ff}.cc-call-filter-list input{accent-color:#56c9ed}.cc-call-filter-list p{margin:7px;color:#8298a4;font-size:9px}
.cc-call-filter-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}.cc-call-filter-foot strong{font-size:9px;color:#91e1b8;text-align:right}
@media(max-width:1050px){.cc-call-filter-trigger,.cc-call-filter-panel{left:256px}.cc-call-filter-panel{width:min(370px,calc(100vw - 570px))}}
@media(max-width:780px){.cc-call-filter-trigger{top:74px;left:8px;right:auto;max-width:calc(100vw - 76px)}.cc-call-filter-panel{position:fixed;top:116px;left:8px;right:8px;bottom:74px;width:auto;max-height:none}.cc-call-filter-list{max-height:130px}.cc-call-filter-head h2{font-size:15px}}

/* v279 — chronological POLITI UPDATE incident threads */
.cc-police-timeline{margin-top:12px;border:1px solid rgba(95,168,255,.18);border-radius:10px;background:rgba(43,91,137,.07);overflow:hidden}
.cc-police-timeline summary{padding:10px 11px;cursor:pointer;color:#dcefff;font-size:10px;font-weight:850;list-style:none}.cc-police-timeline summary::-webkit-details-marker{display:none}.cc-police-timeline summary span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;border-radius:999px;background:rgba(95,168,255,.18);color:#9fd0ff;font-size:9px}
.cc-police-timeline>div{padding:0 10px 10px}.cc-police-timeline-row{position:relative;margin-left:7px;padding:9px 8px 9px 16px;border-left:2px solid rgba(95,168,255,.28)}.cc-police-timeline-row:before{content:'';position:absolute;left:-5px;top:13px;width:8px;height:8px;border-radius:50%;background:#5fa8ff}.cc-police-timeline-row.is-ended:before{background:#80909b}
.cc-police-timeline-row>div{display:flex;justify-content:space-between;gap:10px}.cc-police-timeline-row b{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#a9d4fa}.cc-police-timeline-row time{font-size:9px;color:#8299a7}.cc-police-timeline-row p{margin:5px 0 0;color:#d6e4eb;font-size:10px;line-height:1.48}.cc-police-timeline-row a{display:inline-block;margin-top:5px;color:#83c8fb;font-size:9px;text-decoration:none}

/* v281 — explicit initial/reload and background-refresh states */
.cc-loading-screen[hidden],.cc-refresh-state[hidden]{display:none!important}
.cc-loading-screen{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 35%,#123349 0,#081720 38%,#050c12 100%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease}
.cc-loading-screen.is-active{opacity:1;visibility:visible;pointer-events:all}.cc-loading-card{width:min(330px,calc(100vw - 38px));padding:27px 25px 24px;border:1px solid rgba(126,198,232,.17);border-radius:18px;background:rgba(6,17,25,.88);box-shadow:0 24px 80px rgba(0,0,0,.48);text-align:center;backdrop-filter:blur(16px)}
.cc-loading-card img{display:block;width:78px;height:78px;margin:0 auto 14px;border-radius:14px;object-fit:cover;box-shadow:0 9px 25px rgba(0,0,0,.35)}.cc-loading-card strong{display:block;margin-top:11px;color:#f0f9fd;font-size:16px;letter-spacing:.015em}.cc-loading-card p{margin:7px auto 0;max-width:275px;color:#8fa9b7;font-size:10px;line-height:1.5}
.cc-loading-spinner{height:18px;display:flex;align-items:center;justify-content:center;gap:6px}.cc-loading-spinner span{width:6px;height:6px;border-radius:50%;background:#63d2f2;animation:ccLoadingPulse 1.05s infinite ease-in-out}.cc-loading-spinner span:nth-child(2){animation-delay:.14s}.cc-loading-spinner span:nth-child(3){animation-delay:.28s}
.cc-loading-progress{height:3px;margin-top:18px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden}.cc-loading-progress i{display:block;width:45%;height:100%;border-radius:inherit;background:linear-gradient(90deg,transparent,#58cbed,#83e0f8,transparent);animation:ccLoadingBar 1.4s infinite ease-in-out}
.cc-loading-screen.is-error .cc-loading-spinner span{background:#ef776f;animation:none}.cc-loading-screen.is-error .cc-loading-progress i{width:100%;background:#ef776f;animation:none}
@keyframes ccLoadingPulse{0%,70%,100%{transform:translateY(0);opacity:.35}35%{transform:translateY(-5px);opacity:1}}@keyframes ccLoadingBar{0%{transform:translateX(-120%)}100%{transform:translateX(340%)}}
.cc-refresh-state{position:fixed;z-index:120;top:82px;right:18px;display:flex;align-items:center;gap:8px;min-height:34px;max-width:min(330px,calc(100vw - 30px));padding:7px 11px;border:1px solid rgba(115,190,226,.18);border-radius:9px;background:rgba(7,19,28,.93);box-shadow:0 8px 28px rgba(0,0,0,.28);color:#cde2ec;backdrop-filter:blur(10px)}.cc-refresh-state span{width:9px;height:9px;border:2px solid rgba(99,210,242,.25);border-top-color:#63d2f2;border-radius:50%;animation:ccRefreshSpin .8s linear infinite}.cc-refresh-state b{font-size:9px;letter-spacing:.02em}.cc-refresh-state.is-success{border-color:rgba(80,214,147,.25);color:#a8ebc9}.cc-refresh-state.is-success span{border:0;background:#50d693;animation:none}.cc-refresh-state.is-warning{border-color:rgba(236,185,82,.25);color:#e8cd91}.cc-refresh-state.is-warning span{border:0;background:#e7b851;animation:none}.cc-refresh-state.is-error{border-color:rgba(239,105,97,.27);color:#f1aaa5}.cc-refresh-state.is-error span{border:0;background:#ef6961;animation:none}@keyframes ccRefreshSpin{to{transform:rotate(360deg)}}
@media(max-width:780px){.cc-loading-card{padding:23px 20px}.cc-loading-card img{width:68px;height:68px}.cc-refresh-state{top:68px;right:8px;left:8px;justify-content:center;margin:auto}}
@media(prefers-reduced-motion:reduce){.cc-loading-spinner span,.cc-loading-progress i,.cc-refresh-state span{animation-duration:2.5s}}


/* v290: diskret Discord-invitation uden at dække kort eller hændelsesfeed */
.cc-discord-section{margin-top:12px!important;padding-top:12px!important}
.cc-discord-card{
  display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:center;
  padding:10px;border:1px solid rgba(142,161,255,.18);border-radius:11px;
  background:linear-gradient(135deg,rgba(88,101,242,.13),rgba(102,214,255,.045));
  color:#e9f3ff;text-decoration:none;transition:.18s ease
}
.cc-discord-card:hover{border-color:rgba(142,161,255,.38);background:linear-gradient(135deg,rgba(88,101,242,.2),rgba(102,214,255,.07));transform:translateY(-1px)}
.cc-discord-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(88,101,242,.16);font-size:15px}
.cc-discord-copy{min-width:0;display:block}.cc-discord-copy strong{display:block;font-size:10px;line-height:1.35}.cc-discord-copy small{display:block;margin-top:3px;color:#8098aa;font-size:8px;line-height:1.35}
.cc-discord-arrow{color:#8498c7;font-size:18px;line-height:1}
.dock-btn-link{text-decoration:none;cursor:pointer}
.cc-discord-dock{color:#9ca8ff}
.cc-mobile-discord-section{display:none}
@media(max-width:780px){
 .cc-mobile-discord-section{display:block}
 .cc-discord-card--mobile{padding:11px 9px}
 .cc-discord-card--mobile .cc-discord-copy strong{font-size:11px}
 .cc-discord-card--mobile .cc-discord-copy small{font-size:9px}
 .cc-discord-dock{color:#9ca8ff}
}


/* v298 — resilient server-rendered/search fallback */
#map.cc-map-unavailable:after{
  content:"Kortvisningen kunne ikke indlæses. Seneste hændelser kan stadig læses i feedet.";
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:min(430px,calc(100% - 42px));padding:14px 16px;border:1px solid rgba(161,204,231,.18);
  border-radius:12px;background:rgba(7,16,25,.88);color:#a9bfcd;text-align:center;font-size:11px;line-height:1.5;
}
.cc-server-feed-empty{padding:14px;color:#8298a8;font-size:11px;line-height:1.5}

/* v300: server-rendered brigade links keep the feed's native appearance. */
.cc-server-brigade-link{color:inherit;text-decoration:none}
.cc-server-brigade-link:hover{text-decoration:underline}


/* v303 — notification settings get one explicit scroll owner.
   This restores desktop/mobile scrolling and a visible thin scrollbar. */
#ccNotificationView .cc-notification-scrollroot{
  position:absolute;
  left:0;
  right:0;
  top:64px;
  bottom:0;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  scrollbar-gutter:stable;
  scrollbar-width:thin;
  scrollbar-color:#243746 transparent;
}
#ccNotificationView .cc-notification-scrollroot::-webkit-scrollbar{width:7px;height:7px}
#ccNotificationView .cc-notification-scrollroot::-webkit-scrollbar-track{background:transparent}
#ccNotificationView .cc-notification-scrollroot::-webkit-scrollbar-thumb{background:#243746;border-radius:999px}
#ccNotificationView .cc-notification-content{
  min-height:max-content;
  overflow:visible;
}
@media(max-width:780px){
  #ccNotificationView .cc-notification-scrollroot{
    top:auto;
    bottom:auto;
  }
}


/* v305 — the separate push plugin remains the real VAPID subscription engine.
 * Keep its legacy controls in the DOM for JS integration, but never show them
 * alongside the Command Center notification settings UI. */
body.o112-command-center .o112-push-btn,
body.o112-command-center .o112-push-settings-btn{
  display:none !important;
}
\n/* v314 manual incident rich content */
.cc-manual-rich-content{line-height:1.6;overflow-wrap:anywhere}
.cc-manual-rich-content p:first-child{margin-top:0}.cc-manual-rich-content p:last-child{margin-bottom:0}
.cc-manual-rich-content img{max-width:100%;height:auto;border-radius:10px}
.cc-manual-rich-content iframe{display:block;width:100%;max-width:100%;min-height:320px;border:1px solid rgba(130,160,180,.25);border-radius:10px;background:#0a1117;margin:12px 0}
.incident-context-wide{grid-column:1/-1}
@media(max-width:720px){.cc-manual-rich-content iframe{min-height:240px}}
