:root{color-scheme:dark;--bg:#0b0c0e;--panel:#16181c;--line:#303339;--text:#f5f5f6;--muted:#adb1b9;--orange:#f59e0b;--red:#ef4444;--blue:#3b82f6;font:600 14px/1.5 "Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid white;outline-offset:3px}a{color:inherit;text-decoration:none}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}h1,h2,h3,strong,b{font-weight:750}
.topbar{height:76px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 24px;gap:48px;background:#000}
.brand{display:flex;align-items:center;gap:12px;font:900 26px/1 Arial,sans-serif;letter-spacing:1.8px}
.brand-caption{display:block;font:700 10px/1.3 "Segoe UI",Arial,sans-serif;letter-spacing:1.4px;color:#a8adb4;margin-top:5px}
.brand-mark{width:43px;height:43px;display:block;overflow:hidden;position:relative;background:#000;flex-shrink:0}
.brand-mark img{position:absolute;width:88px;height:88px;max-width:none;left:-22px;top:-13px}
.topbar nav{align-self:stretch;display:flex;gap:26px}.nav-btn{position:relative;font-size:13px;color:var(--muted);padding:0}.nav-btn.current{color:#fff}.nav-btn.current:after{content:'';position:absolute;height:2px;background:#fff;bottom:0;left:0;right:0}.nav-btn span{margin-left:8px}
.top-status{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.status-dot{display:inline-block;flex-shrink:0;width:6px;height:6px;background:#d9dde3;border-radius:50%}
.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;padding:24px;max-width:1920px;margin:auto}
.sidebar{display:flex;flex-direction:column;min-width:0}.section-eyebrow{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.35px}
.city-picker{display:flex;align-items:center;text-align:left;padding:12px 0 18px;gap:12px;width:100%}.pin-icon{width:36px;height:40px;display:grid;place-items:center;font-size:29px;color:#fff}.city-picker small{display:block;color:var(--muted);font-size:12px;margin-bottom:2px}.city-picker strong{font-size:24px}.chevron{margin-left:auto;font-size:22px;color:var(--muted)}
.glass{background:var(--panel);border:1px solid var(--line)}
.forecast{border-radius:10px;padding:18px 18px 0;overflow:hidden}.card-heading{display:flex;align-items:center;gap:7px}.card-heading h2{margin:0;font-size:14px}.info-button{margin-left:auto;width:30px;height:30px;border:1px solid var(--line);color:var(--muted);border-radius:6px;font-size:14px}
.score-line{display:flex;align-items:center;gap:14px;margin:14px 0 18px}.score{font-size:54px;letter-spacing:-2px;font-weight:800;line-height:1}.percent{font-size:24px;color:var(--muted);font-weight:700;letter-spacing:0;margin-left:4px}.score-label{font-size:12px;line-height:1.4}.score-label small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.meter{height:6px;overflow:hidden;background:#35383e;border-radius:3px}.meter>span{display:block;height:100%;width:0;transition:width .3s ease;background:#fff}.forecast p{font-size:12px;line-height:1.65;color:var(--muted);margin:14px 0;min-height:60px}.forecast-foot{border-top:1px solid var(--line);padding:12px 0;color:var(--muted);font-size:11px}.forecast-foot>span:last-child{display:none}
.list-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px}.list-heading h2{font-size:14px;margin:0}.count{font-size:12px;color:var(--muted);padding:2px 7px;border:1px solid var(--line);border-radius:5px}.active-list{display:flex;flex-direction:column;max-height:360px;overflow:auto}
.region-row{display:flex;gap:10px;align-items:center;width:100%;padding:12px 4px;border-bottom:1px solid #25272c;text-align:left}.region-row:hover,.region-row.selected{background:#202328}.row-icon{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,var(--badge) 12%,transparent);color:var(--badge);border:1px solid color-mix(in srgb,var(--badge) 35%,transparent)}
.row-icon svg,.map-badge svg,.filter-chip svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}
.region-row strong{display:block;font-size:13px;line-height:1.4}.region-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.row-time{margin-left:auto;white-space:nowrap;font-size:10px;color:var(--muted)}
.sidebar-bottom{display:flex;align-items:center;border-top:1px solid var(--line);padding:18px 0 0;margin-top:auto;color:var(--muted)}.sidebar-bottom p{font-size:11px;line-height:1.7;margin:0}.sidebar-bottom button{margin-left:auto;min-width:32px;min-height:32px}
.map-area{min-width:0;display:flex;flex-direction:column}.map-title{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px;height:55px;gap:8px}.map-title h1{font-size:24px;margin:5px 0 0;display:flex;align-items:center;gap:12px;line-height:1.3}.live-label{font-size:10px;font-weight:700;border:1px solid #50545c;border-radius:4px;padding:3px 6px;color:#c9cdd4;letter-spacing:.4px}.clock{color:var(--muted);font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.map-frame{height:calc(100dvh - 220px);min-height:530px;position:relative;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#111316}
#map{height:100%;width:100%;background:#111316;z-index:1;overflow:hidden}
/* With noClip:true, allow off-viewport polygon paths to move into view during drag.
   The outer map still clips all content. No Leaflet private methods are patched. */
#map .leaflet-overlay-pane>svg{overflow:visible}
.filter-bar{position:absolute;left:14px;right:64px;top:14px;z-index:500;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px;max-width:100%}
.filter-chip{flex-shrink:0;white-space:nowrap;font-size:12px;padding:9px 11px;background:#17191d;border:1px solid #4a4e56;border-radius:6px;display:flex;align-items:center;gap:6px;color:#d8dbe0;min-height:38px}
.filter-chip.active{background:#f1f2f4;color:#111316;border-color:#f1f2f4}.filter-chip svg{width:15px;height:15px}.filter-chip b{font-size:11px;color:inherit}
.demo-note{position:absolute;left:14px;top:63px;right:70px;width:fit-content;z-index:500;font-size:11px;color:#c3c7ce;background:#16181cf2;border:1px solid #303339;padding:6px 9px;border-radius:5px;max-width:calc(100% - 84px)}
.map-tools{display:flex;flex-direction:column;position:absolute;right:14px;top:14px;z-index:500;background:#17191d;border:1px solid #4a4e56;border-radius:6px;overflow:hidden}.map-tools button{font-size:22px;width:36px;height:38px}.map-tools button:hover{background:#35383e}.map-tools span{height:1px;background:#4a4e56;margin:0 8px}
.map-legend{position:absolute;bottom:30px;left:14px;right:14px;width:fit-content;max-width:calc(100% - 28px);z-index:500;display:flex;gap:14px;flex-wrap:wrap;background:#16181cf5;border:1px solid #3e424a;padding:9px 11px;border-radius:6px;font-size:11px;color:#c9cdd4}
.map-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{width:6px;height:6px;display:inline-block;border-radius:50%}.orange{background:var(--orange)}.red{background:var(--red)}.blue{background:var(--blue)}.muted{background:#a9a699}
.map-caption{position:absolute;bottom:8px;left:15px;z-index:500;font-size:10px;color:#b0b5bd;pointer-events:none}
.map-footer{display:flex;justify-content:space-between;gap:14px;padding:12px 0 0;color:var(--muted);font-size:11px}.map-footer>span:first-child{display:flex;align-items:center;gap:6px}.map-footer button{font-size:11px;padding:0;text-decoration:underline;text-underline-offset:3px}
.leaflet-control-attribution{background:#111316e8!important;color:#acb1ba!important;font-size:9px!important}.leaflet-control-attribution a{color:#d1d6de!important}.leaflet-container{font:600 14px/1.5 "Segoe UI",Arial,sans-serif}
.region-label{color:#9a9fa8;font-size:10px;font-weight:700;white-space:nowrap;text-align:center;text-shadow:0 1px 3px #000,0 -1px 3px #000;pointer-events:none}
.map-badge{width:40px;height:40px;border-radius:50%;display:flex;justify-content:center;align-items:center;background:var(--badge);border:1px solid #ffffffa0;color:white;box-shadow:0 2px 8px #0007;position:relative;padding:0;transform:translate(-50%,-50%)}
.map-badge svg{width:22px;height:22px;stroke-width:2}.map-badge.combined{width:62px;border-radius:22px;gap:5px}.map-badge.combined svg+svg{border-left:1px solid #fff8;padding-left:5px;width:25px}
.map-badge.pulsing:before{content:'';position:absolute;inset:-5px;border:1px solid var(--badge);border-radius:inherit;animation:pulse-orange 3.2s ease-out infinite;pointer-events:none}.map-badge.missile:before{animation:pulse-red 1.6s ease-out infinite}
.map-badge.stale{background:#65645b;border-color:#c0bba5;color:#f2ead2;box-shadow:0 2px 8px #0007}
.badge-fire{position:absolute;right:-5px;top:-5px;font-size:12px;background:#272018;border-radius:50%;padding:2px;line-height:1}
.badge-caption{position:absolute;top:47px;left:50%;transform:translateX(-50%);width:max-content;max-width:205px;font-size:11px;line-height:1.35;color:#e7e9ed;background:#101114f5;border:1px solid #555a64;border-radius:5px;padding:5px 8px;box-shadow:0 2px 5px #0005;text-align:center;pointer-events:auto}
.badge-caption strong{display:block;color:#fff;font-size:12px;font-weight:750;white-space:normal}.badge-caption small{display:block;font-size:10px;color:#bfc4cc;margin-top:2px}.map-badge.stale .badge-caption small{color:#d6cba9}
.leaflet-tooltip{border:1px solid #5b606a;background:#191b20;color:#fff;box-shadow:0 3px 15px #0005;font-size:12px;font-weight:700}.leaflet-tooltip-top:before{border-top-color:#5b606a}
.region-sheet{position:absolute;right:14px;bottom:24px;z-index:600;width:min(380px,calc(100% - 28px));max-height:calc(100% - 28px);overflow:auto;border-radius:10px;padding:24px 20px 18px;box-shadow:0 12px 36px #0009;animation:sheet-in .2s ease}
.close-sheet{position:absolute;top:4px;right:6px;font-size:25px;color:var(--muted);width:34px;height:34px}.sheet-handle{display:none}.sheet-top{display:flex;gap:12px;align-items:center;padding-right:10px}.sheet-top h2{font-size:19px;line-height:1.35;margin:4px 0 0}.sheet-top .row-icon{width:42px;height:42px}
.sheet-statuses{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 12px;font-size:12px}.sheet-statuses span{padding:4px 7px;border:1px solid #50555e;border-radius:5px;background:#25282e}.region-sheet p{font-size:12px;color:#c3c7ce;line-height:1.7;margin:10px 0}.region-sheet .sheet-disclaimer{font-size:11px;color:#aeb3bb}
.primary{display:flex;justify-content:space-between;padding:12px 14px;border-radius:6px;color:#0b0c0e;background:#f0f1f3;width:100%;font-weight:750;font-size:13px;margin-top:16px}.primary:hover{background:#d8dce2}
.warning{border:1px solid #695b3e;background:#28241d;padding:10px;border-radius:6px;color:#e1cfaa!important}.empty{padding:20px 6px;color:var(--muted);font-size:12px;line-height:1.8}
dialog{border:1px solid #50555e;background:#16181c;color:var(--text);border-radius:12px;padding:24px;width:min(500px,calc(100vw - 24px));box-shadow:0 20px 80px #000a;max-height:85dvh}dialog::backdrop{background:#000b}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{font-size:24px;margin:6px 0 0}.dialog-close{font-size:26px;color:var(--muted);min-width:36px;min-height:36px}
.search-wrap{display:flex;gap:10px;background:#0b0c0e;border:1px solid #50555e;border-radius:6px;padding:10px 12px;align-items:center}.search-wrap span{font-size:25px}.search-wrap input{width:100%;background:none;border:0;color:white;font-size:14px;min-height:28px}.dialog-hint{font-size:12px;color:var(--muted);line-height:1.7}.city-results{max-height:44dvh;overflow:auto}.city-option{display:flex;justify-content:space-between;text-align:left;gap:14px;width:100%;border-bottom:1px solid var(--line);padding:12px 5px}.city-option:hover{background:#292c32}.city-option strong{font-size:14px}.city-option small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.city-option>span:last-child{color:var(--muted)}
.info-content{color:#c4c8cf;font-size:13px;line-height:1.8}.info-content h3{font-size:16px;color:#fff;margin:22px 0 8px}.info-content a{text-decoration:underline}.method-table{font-size:12px}.method-table>div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line)}.method-table b{color:#fff;white-space:nowrap}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#282b31;border:1px solid #656c77;z-index:1000;border-radius:8px;padding:12px 18px;max-width:90%;font-size:13px}.leaflet-interactive:focus{outline:2px solid white}.leaflet-div-icon{background:transparent;border:0}
@keyframes pulse-orange{0%{transform:scale(.85);opacity:.5}100%{transform:scale(1.6);opacity:0}}@keyframes pulse-red{0%,45%{transform:scale(.85);opacity:.6}40%,100%{transform:scale(1.55);opacity:0}}@keyframes sheet-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.workspace{grid-template-columns:270px minmax(0,1fr);gap:18px;padding:18px}.topbar{padding:0 18px;gap:30px}.top-status{font-size:11px}.map-title h1{font-size:21px}.map-footer>span:last-child{text-align:right}.map-frame{min-height:570px}}
@media(max-width:760px){
 .topbar{height:66px;padding:0 14px;gap:18px}.brand{font-size:23px;gap:9px}.brand-caption{font-size:9px}.topbar nav{margin-left:auto;gap:0}.nav-btn{font-size:12px}.nav-btn.current,.top-status{display:none}
 .workspace{display:flex;flex-direction:column;padding:14px 12px;gap:18px}.sidebar>.section-eyebrow{display:none}.city-picker{padding:0 0 12px}.city-picker strong{font-size:22px}.city-picker small{font-size:12px}.pin-icon{height:34px}
 .forecast{padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) 90px;column-gap:12px}.card-heading{grid-column:1}.card-heading h2{font-size:13px}.info-button{margin-left:3px;width:26px;height:26px}.score-line{grid-column:2;grid-row:1/4;margin:0;justify-content:flex-end}.score{font-size:43px}.percent{font-size:20px}.score-label{display:none}.forecast p{grid-row:2;grid-column:1;font-size:12px;margin:7px 0 10px;min-height:0;line-height:1.5}.meter{grid-row:3;grid-column:1}.forecast-foot,.list-heading,.active-list,.sidebar-bottom{display:none}
 .map-title{height:auto;margin:0 0 12px;align-items:end}.map-title .section-eyebrow{display:none}.map-title h1{font-size:19px;margin:0;gap:7px}.live-label{font-size:9px;padding:2px 4px}.clock{font-size:11px}.map-frame{height:calc(100dvh - 340px);min-height:470px;border-radius:8px}
 .filter-bar{left:9px;right:9px;top:9px}.filter-chip{font-size:12px;padding:8px 10px}.demo-note{left:9px;right:9px;top:58px;font-size:10px;max-width:calc(100% - 18px)}.map-tools{top:104px;right:9px}
 .map-legend{bottom:39px;left:9px;right:9px;font-size:10px;gap:6px 12px;padding:8px;max-width:calc(100% - 18px)}.map-caption{left:10px;bottom:20px;font-size:9px}.map-footer{font-size:10px;padding-top:10px;gap:10px}.map-footer button{font-size:10px}.map-footer>span:last-child{max-width:140px}.region-sheet{bottom:0;left:0;right:0;width:100%;padding:24px 16px 18px;border-radius:12px 12px 0 0;max-height:95%}.sheet-top h2{font-size:18px}
 .map-badge{width:36px;height:36px}.map-badge.combined{width:58px}.badge-caption{top:42px;max-width:175px}.badge-caption strong{font-size:11px}.region-label{font-size:10px}
 dialog{padding:18px}.dialog-head h2{font-size:22px}
}
@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

