:root{color:#233c35;font-synthesis:none;background:#edf0e9;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}*{box-sizing:border-box}.focus-indicator{pointer-events:none;filter:drop-shadow(0 3px 5px #6c461d55);width:38px;height:50px}.focus-indicator svg{display:block}.fire-effect{pointer-events:none;filter:drop-shadow(0 0 10px #ff6b2866);width:110px;height:140px;position:relative}.fire-effect i{display:block;position:absolute}.fire-flame{transform-origin:50% 100%;background:linear-gradient(#f54316 10%,#ff9f20 55%,#fff1a0);border-radius:70% 30% 65% 35%;width:46px;height:72px;animation:.65s ease-in-out infinite alternate fire-flicker;bottom:4px}.flame-main{height:98px;left:31px}.flame-left{animation-delay:-.35s;left:11px;transform:rotate(-15deg)}.flame-right{height:63px;animation-delay:-.15s;left:54px}.fire-core{background:#fff3a0;border-radius:70% 30% 60% 40%;width:40px;height:43px;animation:.5s ease-in-out infinite alternate fire-flicker;bottom:0;left:35px}.fire-smoke{filter:blur(6px);opacity:0;background:#535354;border-radius:50%;width:45px;height:48px;animation:2.7s ease-out infinite fire-smoke;bottom:48px;left:30px}.smoke-two{animation-delay:-.9s;left:16px}.smoke-three{animation-delay:-1.8s;left:46px}.fire-spark{background:#ffdc6f;border-radius:50%;width:5px;height:5px;animation:1.1s linear infinite fire-smoke;bottom:45px;left:50px}.evacuation-arrow{pointer-events:none;filter:drop-shadow(0 1px 3px #3337);width:28px;height:24px}.evacuation-arrow svg{transform-origin:50%;display:block}.evacuation-origin{pointer-events:none;filter:drop-shadow(0 2px 3px #19373577);width:24px;height:24px}.evacuation-origin svg{fill:#268ac5;display:block}.evacuation-origin[data-status=unreachable] svg{fill:#e89532}@keyframes fire-flicker{0%{transform:scale(.88,.82)rotate(-8deg)}to{transform:scale(1.06,1.04)rotate(6deg)}}@keyframes fire-smoke{0%{opacity:0;transform:translate(0)scale(.5)}20%{opacity:.55}to{opacity:0;transform:translate(15px,-110px)scale(1.8)}}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,label{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #55a697}.header{background:#fbfcf8;border-bottom:1px solid #dbe2d8;align-items:center;gap:14px;height:86px;padding:0 32px;display:flex}.brand-icon{color:#f3f1df;background:#163f38;border-radius:12px 12px 3px;place-items:center;width:42px;height:42px;font-family:serif;font-size:24px;display:grid}h1{letter-spacing:.06em;margin:0;font-size:17px;font-weight:650}h1 span{color:#6b7b72;border-left:1px solid #ccd6ce;margin-left:14px;padding-left:14px;font-size:14px;font-weight:400}.brand p{color:#77857a;letter-spacing:.15em;margin:7px 0 0;font-size:11px}.header-tag{letter-spacing:.13em;color:#708276;border:1px solid #dce3d7;border-radius:5px;margin-left:auto;padding:8px 11px;font-size:11px}main{height:calc(100dvh - 86px);min-height:430px;position:relative}#map{background:#e8ede4;position:absolute;inset:0}.panel{background:#fbfcf8f7;border:1px solid #e3e8dc;border-radius:14px;width:296px;max-height:calc(100% - 90px);padding:25px;position:absolute;top:24px;left:24px;overflow-y:auto;box-shadow:0 9px 35px #233c3514}.panel-heading{justify-content:space-between;align-items:center;display:flex}.eyebrow{letter-spacing:.13em;color:#83917e;font-size:9px;font-weight:650}.dot{background:#55856c;border-radius:50%;width:6px;height:6px}h2{letter-spacing:-.04em;margin:17px 0 9px;font-size:23px;font-weight:600}.address{color:#768176;margin:0 0 22px;font-size:11px}fieldset{border:0;min-width:0;margin:0;padding:0}fieldset:disabled{opacity:.5}.control-title{color:#66786b;margin:0 0 10px;font-size:11px}.segmented{background:#edf1e7;border:1px solid #e1e7db;border-radius:8px;padding:4px;display:flex}.segmented label{text-align:center;flex:1;position:relative}.segmented input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.segmented span{color:#7b8878;border-radius:5px;padding:10px 3px;font-size:12px;display:block}.segmented input:checked+span{color:#224c3d;background:#fff;font-weight:600;box-shadow:0 1px 5px #233c3510}.segmented input:focus-visible+span{outline:2px solid #55a697}.building-control{justify-content:space-between;align-items:center;margin:22px 0;display:flex}.building-control strong{font-size:13px;font-weight:550;display:block}.building-control small{color:#879180;margin-top:5px;font-size:10px;display:block}.building-control input{appearance:none;cursor:pointer;background:#c5cec1;border-radius:20px;width:35px;height:21px;margin:0;transition:background .15s;position:relative}.building-control input:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0002}.building-control input:checked{background:#315f4b}.building-control input:checked:after{transform:translate(14px)}.reset{color:#426047;background:#f8faf4;border:1px solid #d6dfce;border-radius:7px;width:100%;padding:10px;font-size:12px}.reset:hover{background:#edf2e7}.reset span{vertical-align:-1px;margin-right:5px;font-size:17px}.view-stats{border-top:1px solid #e4e9de;border-bottom:1px solid #e4e9de;margin-top:22px;padding:16px 0;display:flex}.view-stats div{flex-direction:column;flex:1;gap:8px;display:flex}.view-stats span{color:#879180;font-size:10px}.view-stats output{font-variant-numeric:tabular-nums;font-size:16px}.source{gap:8px;margin-top:18px;display:grid}.source span{color:#879180;font-size:10px}.source code{color:#5a6f5c;font-size:11px}.source a{color:#547451;text-underline-offset:3px;width:fit-content;font-size:10px}.data-note{color:#8b9585;margin:18px 0 0;font-size:10px;line-height:1.8}.map-state{color:#627561;background:#fbfcf8f5;border:1px solid #e1e6db;border-radius:7px;align-items:center;gap:8px;max-width:min(490px,100% - 390px);padding:10px 13px;font-size:11px;line-height:1.6;display:flex;position:absolute;top:24px;left:50%;transform:translate(-30%);box-shadow:0 3px 14px #233c3509}.status-dot{background:#a5b094;border-radius:50%;flex-shrink:0;width:6px;height:6px}[data-state=ready] .status-dot{background:#5c9069}[data-state=error],[data-state=warning]{color:#99572b}[data-state=error] .status-dot,[data-state=warning] .status-dot{background:#bb7a45}#retry{color:inherit;text-underline-offset:3px;background:0 0;border:0;flex-shrink:0;font-size:11px;text-decoration:underline}.gesture-help{color:#6a7b63;white-space:nowrap;pointer-events:none;background:#fbfcf8ee;border:1px solid #e2e8db;border-radius:7px;padding:10px 17px;font-size:10px;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.gesture-help span{color:#bac4af;padding:0 8px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.camera-settings,.safe-settings,.fire-settings{border-top:1px solid #e0e7dd;margin-top:18px;padding-top:14px}.camera-settings summary,.safe-settings summary,.fire-settings summary{cursor:pointer;color:#315f4b;margin-bottom:14px;font-size:13px}.fire-settings label{color:#547451;justify-content:space-between;gap:8px;margin:12px 0 7px;font-size:11px;display:flex}.fire-settings select{color:#233c35;width:100%;font:inherit;background:#fff;border:1px solid #ccd8c6;border-radius:5px;padding:8px;font-size:12px}.fire-settings input[type=range]{accent-color:#d97435;width:100%}.fire-settings .reset{margin-top:8px}.fire-settings .data-note{display:block}.fire-settings .route-reference{justify-content:flex-start;align-items:center}.route-result{color:#167bb6;margin-top:12px;font-size:12px;line-height:1.7;display:block}.evacuation-origins{max-height:150px;margin:10px 0;padding:0;list-style:none;overflow-y:auto}.evacuation-origins li{background:#edf3e9;border-left:3px solid #2d87a2;margin:4px 0;padding:6px 8px;font-size:11px;line-height:1.6}.evacuation-origins li[data-status=unreachable]{background:#faf0e7;border-color:#c66b38}.safe-settings .data-note{margin:10px 0;display:block}.safe-settings .reset{margin-top:8px}.safe-actions{grid-template-columns:1fr 1fr;gap:0 8px;display:grid}button:disabled{opacity:.45;cursor:default}#safe-list{margin:10px 0 0;padding:0;list-style:none}#safe-list li{background:#eaf5e9;border-left:4px solid #40b96d;justify-content:space-between;align-items:center;margin-top:6px;padding:7px 8px;font-size:12px;display:flex}#safe-list button{color:#627561;background:0 0;border:0;font-size:11px}#safe-list li[data-unavailable=true]{background:#eeeae4;border-color:#b36a47}.camera-settings label{color:#547451;justify-content:space-between;margin:12px 0 7px;font-size:11px;display:flex}.camera-settings select{color:#233c35;background:#fff;border:1px solid #ccd8c6;border-radius:5px;width:100%;padding:8px}.camera-settings input[type=range]{accent-color:#315f4b;cursor:pointer;width:100%}.camera-settings .reset{margin-top:8px}.camera-center{color:#66786b;font-variant-numeric:tabular-nums;font-size:10px;display:block}@media (width<=900px){.map-state{max-width:none;left:340px;right:90px;transform:none}}@media (width<=600px){.header{gap:10px;height:70px;padding:0 16px}h1{font-size:14px}h1 span{margin-left:9px;padding-left:9px;font-size:12px}.header-tag{display:none}main{height:calc(100dvh - 70px);min-height:540px}.panel{width:240px;padding:16px;top:12px;left:12px}h2{margin-top:12px;font-size:20px}.address{margin-bottom:16px}.building-control{margin:16px 0}.source,.data-note{display:none}.view-stats{border-bottom:0;margin-top:16px;padding:12px 0 0}.map-state{font-size:10px;inset:auto 70px 90px 12px}.gesture-help{padding:8px;font-size:9px;bottom:44px}.gesture-help span{padding:0 3px}}.road-settings{border-top:1px solid #e0e7dd;margin-top:18px;padding-top:14px}.road-settings summary{cursor:pointer;color:#315f4b;margin-bottom:14px;font-size:13px}.road-settings .reset{margin-top:8px}.road-settings button[aria-pressed=true]{background:#dcebdd;border-color:#78a985;font-weight:600}.road-settings .route-reference{color:#547451;align-items:center;gap:8px;margin:10px 0;font-size:11px;display:flex}.footprint-settings{border:1px solid #e1e7db;border-radius:7px;margin-top:12px;padding:10px}.footprint-settings select{color:#233c35;background:#fff;border:1px solid #ccd8c6;border-radius:5px;width:100%;padding:8px}.backup-settings{border-top:1px solid #e0e7dd;margin-top:18px;padding-top:14px}.backup-settings summary{cursor:pointer;color:#315f4b;font-size:13px}.backup-settings .reset{margin-top:8px}.backup-import{text-align:center;cursor:pointer;display:block;position:relative}.backup-import input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.building-detail{--detail-bg:#0f1117;--detail-card:#1a2029;--detail-text:#f1f5f9;--detail-muted:#94a3b8;--detail-accent:#22d3ee;z-index:30;box-sizing:border-box;background:var(--detail-bg);width:372px;max-width:calc(100% - 440px);color:var(--detail-text);opacity:0;visibility:hidden;scrollbar-color:#43515e transparent;scrollbar-width:thin;border:1px solid #34404d;border-radius:14px;padding:24px 20px 20px;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;top:24px;bottom:30px;right:86px;overflow:auto;transform:translate(16px);box-shadow:0 20px 50px #070d19a8}.building-detail.is-open{opacity:1;visibility:visible;transform:translate(0)}.detail-close{color:#cbd5e1;background:#1a2029;border:1px solid #34424e;border-radius:8px;width:30px;height:30px;font-size:22px;line-height:24px;position:absolute;top:15px;right:16px}.detail-close:hover{color:#fff;background:#293542}.detail-topline{color:#6f879a;letter-spacing:.13em;align-items:center;gap:9px;margin-bottom:16px;font-size:9px;font-weight:700;display:flex}.detail-demo{color:#9dd8dc;letter-spacing:.02em;border:1px solid #44606d;border-radius:4px;padding:4px 7px;font-size:10px}.detail-title-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.detail-kicker{color:#22d3ee;margin:0 0 8px;font-size:11px}.detail-kicker span{color:#778b9b;font-size:10px}.building-detail h2{color:var(--detail-text);letter-spacing:0;margin:0;font-size:22px;line-height:1.25}.detail-short{color:#8698a9;margin:6px 0 0;font-size:11px}.detail-status{white-space:nowrap;color:#bac9d6;background:#283541;border-radius:5px;align-items:center;gap:6px;padding:5px 8px;font-size:10px;display:flex}.detail-status i{background:#94a3b8;border-radius:50%;width:6px;height:6px}.detail-status[data-status=normal]{color:#6ee7a0;background:#153028}.detail-status[data-status=normal] i{background:#22c55e}.detail-status[data-status=busy]{color:#fbbf24;background:#392b16}.detail-status[data-status=busy] i{background:#f59e0b}.detail-status[data-status=abnormal]{color:#fca5a5;background:#3b2024}.detail-status[data-status=abnormal] i{background:#ef4444}.detail-status[data-status=maintenance]{color:#bac9d6;background:#283541}.detail-status[data-status=maintenance] i{background:#94a3b8}.detail-alert{color:#fecaca;background:#321c23;border:1px solid #7a3138;border-radius:8px;gap:5px;margin-top:16px;padding:10px 12px;font-size:11px;display:grid}.detail-alert span{color:#d5a9ab;font-size:10px}.detail-section{border-top:1px solid #29333f;margin-top:16px;padding-top:16px}.detail-section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:11px;display:flex}.detail-section h3{color:#dbe7f1;margin:0;font-size:12px;font-weight:650}.detail-section-head>span{letter-spacing:.07em;color:#637588;font-size:9px}.detail-description{color:#9baec0;margin:0 0 10px;font-size:11px;line-height:1.7}.detail-rows{gap:8px;display:grid}.detail-row{justify-content:space-between;gap:18px;font-size:11px;line-height:1.5;display:flex}.detail-row span{color:#8a9bad;flex-shrink:0}.detail-row strong{color:#d0dce8;text-align:right;overflow-wrap:anywhere;font-weight:500}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.detail-metric{background:var(--detail-card);border:1px solid #2a3743;border-radius:8px;padding:11px 12px}.detail-metric span{color:#98a9b9;font-size:10px;display:block}.detail-metric strong{letter-spacing:.01em;color:#eaf8fc;margin-top:8px;font-size:19px;font-weight:650;display:block}.detail-bar+.detail-bar{margin-top:12px}.detail-bar>div:first-child{color:#a7b6c5;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.detail-bar strong{color:#22d3ee;font-size:12px}.detail-track{background:#273340;border-radius:10px;height:6px;overflow:hidden}.detail-track i{width:var(--progress);border-radius:inherit;transform-origin:0;background:#22d3ee;height:100%;animation:.4s ease-out detail-progress;display:block}.detail-bar[data-tone=busy] .detail-track i{background:#f59e0b}.detail-bar[data-tone=busy] strong{color:#fbbf24}.detail-bar[data-tone=high] .detail-track i{background:#ef4444}.detail-bar[data-tone=high] strong{color:#fca5a5}.detail-empty{color:#8295a8;margin:0;font-size:11px}.detail-footer{color:#71869a;border-top:1px solid #29333f;gap:6px;margin-top:19px;padding-top:13px;font-size:10px;line-height:1.5;display:grid}@keyframes detail-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.building-detail{transition:none}.detail-track i{animation:none}}@media (width<=900px){.building-detail{width:310px;max-width:calc(100% - 390px);padding:20px 16px;right:76px}}@media (width<=600px){.building-detail{width:min(360px,100% - 24px);max-width:none;max-height:48%;top:auto;bottom:88px;right:12px}}.panel[hidden]{display:none}.quick-panel{z-index:12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-width:thin;scrollbar-color:#c7d4c9 transparent;background:#fbfdfbf2;border:1px solid #dce7df;border-radius:16px;width:276px;max-height:calc(100% - 72px);padding:20px;position:absolute;top:24px;left:24px;overflow:auto;box-shadow:0 14px 40px #173c3026}.quick-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.quick-eyebrow{color:#799588;letter-spacing:.16em;font-size:9px;font-weight:700}.quick-heading h2{letter-spacing:.02em;color:#183d33;margin:6px 0 0;font-size:21px}.quick-icon{color:#3d745f;background:#fff;border:1px solid #dae6dd;border-radius:10px;width:32px;height:32px;font-size:21px;line-height:1}.quick-icon:hover{background:#edf7ef}.quick-section{margin-top:20px}.quick-label{color:#526d60;margin:0 0 9px;font-size:11px;font-weight:650;display:block}.view-pill{background:#eaf1e9;border:1px solid #dce9df;border-radius:999px;grid-template-columns:1fr 1fr;padding:3px;display:grid;position:relative}.view-pill-indicator{background:#fff;border-radius:999px;width:calc(50% - 3px);transition:transform .22s;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 2px 8px #1e4a3020}#quick-controls[data-basemap=satellite] .view-pill-indicator{transform:translate(100%)}.view-pill label{text-align:center;z-index:1;position:relative}.view-pill input{opacity:0;cursor:pointer;position:absolute;inset:0}.view-pill label span{color:#718679;padding:9px 4px;font-size:12px;display:block}.view-pill input:checked+span{color:#225f47;font-weight:700}.view-pill input:focus-visible+span{outline-offset:-2px;border-radius:999px;outline:2px solid #55a697}.quick-checks{color:#496357;gap:18px;margin-top:14px;font-size:11px;display:flex}.quick-checks label{white-space:nowrap;align-items:center;gap:6px;display:flex}.quick-checks input{accent-color:#287f5a;width:15px;height:15px;margin:0}.quick-panel select{box-sizing:border-box;color:#2d4d3c;background:#fff;border:1px solid #dbe6dc;border-radius:9px;width:100%;height:37px;padding:0 10px;font-size:12px;display:block}.quick-fire{background:#f5faf5;border:1px solid #dce8df;border-radius:12px;margin-top:20px;overflow:hidden}.quick-fire summary{cursor:pointer;color:#315a45;align-items:center;gap:10px;padding:12px;font-size:12px;font-weight:700;list-style:none;display:flex}.quick-fire summary::-webkit-details-marker{display:none}.fire-summary-icon{color:#d67b34;background:#fff1e5;border-radius:9px;place-items:center;width:29px;height:29px;font-size:17px;display:grid}.quick-fire summary small{color:#899d8e;margin-top:3px;font-size:10px;font-weight:400;display:block}.summary-chevron{color:#8ba395;margin-left:auto;font-size:18px;transition:transform .2s}.quick-fire[open] .summary-chevron{transform:rotate(180deg)}.quick-fire-body{padding:0 12px 13px}.quick-fire-body .quick-label{margin:11px 0 7px}.quick-fire-body select{height:34px}.quick-range-heading{justify-content:space-between;align-items:baseline;display:flex}.quick-range-heading output{color:#bc7637;font-size:11px;font-weight:650}.quick-fire-body input[type=range]{accent-color:#dc8b43;width:100%;margin:2px 0}.quick-actions{grid-template-columns:1fr 64px;gap:8px;margin-top:14px;display:grid}.quick-actions button{border-radius:8px;height:36px;font-size:12px;font-weight:650}.quick-primary{color:#fff;background:#327a59;border:1px solid #327a59}.quick-primary:hover{background:#286448}.quick-secondary{color:#567362;background:#fff;border:1px solid #d6e3d7}.quick-fire-status{color:#617b6b;margin:10px 0 0;font-size:10px;line-height:1.55}.quick-legend{color:#819288;align-items:center;gap:5px;margin:9px 0 0;font-size:10px;display:flex}.quick-legend span{border-radius:50%;width:7px;height:7px;margin-left:5px}.quick-legend span:first-child{margin-left:0}.legend-blue{background:#167bb6}.legend-yellow{background:#dba91a}.legend-red{background:#e34b3d}.quick-note{color:#9aaba0;margin:8px 0 0;font-size:10px}@media (width<=600px){.quick-panel{width:230px;max-height:calc(100% - 110px);padding:15px;top:12px;left:12px}.quick-heading h2{font-size:18px}.quick-section,.quick-fire{margin-top:15px}.map-state{left:12px;right:70px}}@media (prefers-reduced-motion:reduce){.view-pill-indicator,.summary-chevron{transition:none}}.demo-card{background:#f7faf7;border:1px solid #dce8df;border-radius:12px;margin-top:16px;padding:13px 12px}.demo-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.demo-heading h3{color:#315a45;margin:4px 0 0;font-size:12px}.demo-count{color:#628475;font-variant-numeric:tabular-nums;font-size:11px}.demo-progress{background:#dfeae0;border-radius:99px;height:5px;margin-top:12px;overflow:hidden}.demo-progress span{border-radius:inherit;background:#3a9268;width:0;height:100%;transition:width .25s;display:block}.demo-status{color:#536f5e;min-height:16px;margin:9px 0;font-size:11px;line-height:1.5}.demo-actions{grid-template-columns:1fr 1fr 47px;gap:6px;display:grid}.demo-actions button{color:#527361;background:#fff;border:1px solid #d2e1d4;border-radius:8px;padding:8px 3px;font-size:11px;font-weight:650}.demo-actions button:first-child{color:#fff;background:#327a59;border-color:#327a59}.demo-actions button:hover:not(:disabled){filter:brightness(.95)}.demo-note{color:#95a99b;margin:8px 0 0;font-size:10px}@media (prefers-reduced-motion:reduce){.demo-progress span{transition:none}}
