:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy-950:#0b2036;--navy-900:#102c48;--teal-700:#08696f;--teal-600:#0b7c82;--aqua-100:#dff5f3;--amber-500:#f1a62b;--amber-100:#fff1cc;--blue-600:#1677c8;--green:#16794b;--green-100:#eaf8f0;--shelter-600:#0f766e;--shelter-700:#0b625c;--shelter-800:#084c45;--shelter-100:#dff6f2;--slate-900:#203447;--slate-700:#526577;--slate-500:#7c8b99;--slate-300:#c9d3dc;--slate-150:#e4eaef;--wash:#f4f7f8;--white:#fff;--shadow:0 12px 36px #0b20362b;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--focus:0 0 0 3px #1677c852;color:var(--slate-900);background:var(--wash);font-synthesis:none;font-family:Inter,Noto Sans JP,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{overflow:hidden}button,input,select{font:inherit}button,select,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{box-shadow:var(--focus);outline:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:1000;color:var(--navy-950);background:#fff;border-radius:8px;padding:12px 16px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:none}.app-shell{grid-template-rows:56px 1fr 30px;height:100dvh;display:grid;overflow:hidden}.app-header{z-index:50;color:#fff;background:var(--navy-950);justify-content:space-between;align-items:center;padding:0 24px;display:flex}.brand{color:#fff;letter-spacing:.03em;align-items:center;gap:10px;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.brand img{width:34px;height:34px}.header-actions{align-items:center;gap:8px;display:flex}.language-menu select{color:#fff;background:var(--navy-900);border:1px solid #ffffff5c;border-radius:8px;min-height:40px;padding:0 32px 0 12px}.menu-button{color:#fff;background:var(--navy-900);cursor:pointer;border:1px solid #ffffff5c;border-radius:8px;align-items:center;gap:7px;min-height:40px;padding:0 12px;font-size:.78rem;font-weight:750;display:inline-flex}.safety-reopen{z-index:70;position:fixed;top:112px;right:18px}.safety-reopen button{color:#5e481b;cursor:pointer;background:#fff1ccf7;border:1px solid #d7a54b;border-radius:999px;align-items:center;gap:6px;min-height:38px;padding:0 11px;font-size:.72rem;font-weight:800;display:inline-flex;box-shadow:0 4px 16px #0b203624}.safety-reopen button span{font-size:1rem}.safety-toast{z-index:240;color:#4b3918;width:min(460px,100% - 36px);box-shadow:var(--shadow);background:#fff1ccfa;border:1px solid #d7a54b;border-left:5px solid #c65d05;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;display:flex;position:fixed;top:66px;right:18px}.safety-toast-icon,.safety-dialog-icon{border:2px solid;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-weight:900;display:inline-grid}.safety-toast>div{flex:1;min-width:0}.safety-toast strong{font-size:.78rem;line-height:1.4;display:block}.safety-toast p{margin:3px 0 0;font-size:.7rem;line-height:1.5}.safety-toast .icon-button{width:34px;min-height:34px;color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:8px;flex:none;font-size:1.1rem}.offline-banner{z-index:100;color:#fff;background:var(--navy-950);box-shadow:var(--shadow);border-radius:0 0 10px 10px;padding:8px 14px;position:fixed;top:150px;left:50%;transform:translate(-50%)}.disaster-alert-center{z-index:60;border-bottom:1px solid var(--slate-300);background:#fff;min-height:42px;position:fixed;top:56px;left:0;right:0}.disaster-alert-banner,.disaster-alert-compact{align-items:center;gap:10px;min-height:42px;padding:5px 18px;display:flex}.disaster-alert-banner{color:#4b2130;background:#fff0ee;border-left:6px solid #b42318}.disaster-alert-banner.priority-warning,.disaster-alert-banner.priority-attention{color:#5e481b;background:var(--amber-100);border-left-color:#c65d05}.alert-symbol,.alert-dialog-symbol{border:2px solid;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-weight:900;display:inline-grid}.disaster-alert-banner p{flex:1;align-items:baseline;gap:10px;min-width:0;margin:0;display:flex}.disaster-alert-banner strong{font-size:.82rem}.alert-banner-summary{display:none}.disaster-alert-banner small{color:inherit;font-size:.68rem}.disaster-alert-banner button,.disaster-alert-compact button,.alert-item-actions button,.alert-dialog button{min-height:36px;color:inherit;cursor:pointer;background:#fff;border:1px solid;border-radius:8px;padding:0 11px;font-size:.72rem;font-weight:750}.disaster-alert-banner .icon-button{width:36px;padding:0;font-size:1.2rem}.disaster-alert-compact{color:var(--slate-700);justify-content:center;font-size:.72rem}.disaster-alert-compact button{color:var(--navy-900)}.disaster-alert-panel{z-index:160;border:1px solid var(--slate-300);width:min(420px,100% - 32px);max-height:calc(100dvh - 184px);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:14px;position:fixed;top:154px;right:16px;overflow:auto}.disaster-alert-panel header{justify-content:space-between;align-items:center;gap:12px;display:flex}.disaster-alert-panel h2{color:var(--navy-950);margin:0;font-size:1rem}.disaster-alert-panel header .icon-button{border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:8px;width:40px;min-height:40px;font-size:1.3rem}.alert-safety-boundary{color:#5e481b;background:var(--amber-100);border-radius:8px;padding:10px;font-size:.7rem;line-height:1.5}.disaster-alert-panel ul{gap:9px;margin:0;padding:0;list-style:none;display:grid}.disaster-alert-panel li{border:1px solid var(--slate-300);border-left:4px solid #c65d05;border-radius:9px;padding:11px}.disaster-alert-panel li.priority-danger,.disaster-alert-panel li.priority-critical{border-left-color:#b42318}.disaster-alert-panel li>div:first-child{flex-direction:column;gap:3px;display:flex}.disaster-alert-panel li>div:first-child span{color:var(--slate-700);font-size:.67rem}.disaster-alert-panel dl{margin:8px 0;font-size:.67rem}.disaster-alert-panel dl div{grid-template-columns:86px 1fr;gap:7px;padding:3px 0;display:grid}.disaster-alert-panel dt{color:var(--slate-700)}.disaster-alert-panel dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:650}.alert-location-note{margin-top:5px;font-weight:400;line-height:1.5;display:block}.alert-location-source{font-size:.65rem;font-weight:400}.alert-area-more summary{cursor:pointer;align-content:center;min-height:44px;display:list-item}.alert-area-more p{margin:4px 0}.alert-item-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.alert-item-actions a{color:var(--navy-900);font-size:.68rem;font-weight:750}.alert-source-note{color:var(--slate-700);font-size:.66rem;line-height:1.5}.alert-dialog-backdrop{z-index:220;background:#0b203694;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.alert-dialog{width:min(500px,100%);box-shadow:var(--shadow);background:#fff;border:3px solid #b42318;border-radius:16px;padding:24px}.alert-dialog-symbol{color:#b42318}.alert-dialog h2{color:#7a1d16;margin:10px 0;font-size:1.2rem}.alert-dialog p{line-height:1.55}.alert-dialog>div{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.map-layout{background:#dbe4e6;min-height:0;position:relative}.map-stage,.map-stage>.map-canvas{position:absolute;inset:0}.location-prompt{z-index:18;border:1px solid var(--slate-300);width:min(430px,100% - 36px);box-shadow:var(--shadow);background:#fffffff7;border-radius:14px;padding:16px 18px;position:absolute;top:132px;left:50%;transform:translate(-50%)}.location-prompt h2{color:var(--navy-950);margin:0;font-size:.95rem}.location-prompt p{color:var(--slate-700);margin:7px 0 12px;font-size:.74rem;line-height:1.5}.location-prompt-actions{flex-wrap:wrap;gap:8px;display:flex}.location-prompt-actions button{border:1px solid var(--teal-700);color:#fff;background:var(--teal-700);cursor:pointer;border-radius:9px;min-height:42px;padding:0 12px;font-size:.74rem;font-weight:750}.location-prompt-actions .location-prompt-secondary{color:var(--navy-900);background:#fff}.map-toolbar{z-index:20;width:calc(100% - 420px);position:absolute;top:58px;left:18px}.search-box{position:relative}.search-icon{z-index:2;color:var(--teal-700);font-size:1.25rem;position:absolute;top:12px;left:15px}.search-box input{border:1px solid var(--slate-300);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:0 48px;box-shadow:0 7px 24px #0b20362e}.search-box input::placeholder{color:var(--slate-700)}.search-results{z-index:2;border:1px solid var(--slate-300);width:100%;max-height:370px;box-shadow:var(--shadow);background:#fff;border-radius:12px;padding:6px;position:absolute;top:54px;overflow:auto}.search-results button{border:0;border-bottom:1px solid var(--slate-150);text-align:left;cursor:pointer;background:#fff;flex-direction:column;justify-content:center;align-items:start;gap:3px;width:100%;min-height:58px;padding:8px 12px;display:flex}.search-results button:hover{background:var(--aqua-100)}.search-results span{color:var(--slate-700);font-size:.75rem}.search-group-label{color:var(--slate-700);letter-spacing:.03em;margin:0;padding:8px 12px 5px;font-size:.68rem;font-weight:800}.search-empty{margin:0;padding:14px;font-size:.82rem}.filter-bar{scrollbar-width:thin;scrollbar-color:var(--slate-400) transparent;justify-content:flex-start;gap:8px;margin-top:10px;padding-bottom:4px;display:flex;overflow-x:auto}.layer-trigger{display:none}.filter-label,.filter-chip{border:1px solid var(--slate-300);white-space:nowrap;background:#fffffff5;border-radius:999px;align-items:center;gap:7px;min-height:38px;padding:0 12px;font-size:.75rem;display:flex;box-shadow:0 3px 12px #0b20361f}.filter-label{color:var(--slate-700);cursor:pointer}.filter-label:hover,.filter-chip.active{border-color:var(--teal-600);color:var(--teal-700)}.filter-chip.unavailable{opacity:.68}.legend-dot{background:var(--blue-600);width:12px;height:12px;box-shadow:0 0 0 1px var(--blue-600);border:2px solid #fff;border-radius:50%;flex:none;display:inline-block}.legend-dot.underpass{background:var(--amber-500);box-shadow:none;border-radius:2px;transform:rotate(45deg)}.legend-dot.historical{background:var(--slate-500);box-shadow:none}.camera-legend-icon{color:#fff;background:#6c3fc5;border:2px solid #fff;border-radius:5px;flex:none;place-items:center;width:20px;height:20px;font-size:.7rem;font-style:normal;display:inline-grid;box-shadow:0 0 0 1px #6c3fc5}.camera-legend-icon.reference{background:#0b7285;box-shadow:0 0 0 1px #0b7285}.shelter-legend-icon{color:#fff;background:var(--shelter-600);width:22px;height:22px;box-shadow:0 0 0 1px var(--shelter-600);border:2px solid #fff;border-radius:6px;flex:none;place-items:center;font-size:.85rem;font-style:normal;font-weight:900;display:inline-grid}.shelter-filter:not(.active) .shelter-legend-icon{color:var(--shelter-600);border-color:var(--shelter-600);background:#fff}.flood-risk-filter-icon{color:#7a2d00;background:#fff;border:2px dashed #d94801;border-radius:5px;flex:none;place-items:center;width:22px;height:22px;font-size:.68rem;font-weight:900;display:inline-grid}.flood-risk-filter.active .flood-risk-filter-icon{color:#fff;background:#7a2d00;border-style:solid}.layer-sheet-backdrop{z-index:120;background:#0b20367a;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.layer-sheet{width:min(560px,100%);max-height:min(88dvh,680px);padding:10px 18px max(18px, env(safe-area-inset-bottom));border:1px solid var(--slate-300);background:#fff;border-bottom:0;border-radius:20px 20px 0 0;overflow-y:auto;box-shadow:0 -8px 28px #0b203633}.layer-sheet-handle{background:var(--slate-300);border-radius:99px;width:48px;height:4px;margin:2px auto 12px}.layer-sheet-header{border-bottom:1px solid var(--slate-150);justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:12px;display:flex}.layer-sheet-header h2{color:var(--navy-950);margin:0;font-size:1.08rem}.layer-sheet-header p{color:var(--slate-700);margin:4px 0 0;font-size:.72rem;line-height:1.45}.layer-sheet-header .icon-button{border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:8px;flex:none;width:40px;min-height:40px;font-size:1.3rem}.layer-sheet-options{gap:8px;padding:14px 0 10px;display:grid}.layer-sheet-option{border:1px solid var(--slate-200);background:var(--wash);cursor:pointer;border-radius:12px;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:58px;padding:9px 10px;display:grid}.layer-sheet-option:focus-within{outline-offset:2px;outline:3px solid #0e749057}.layer-sheet-option.is-disabled{cursor:not-allowed;opacity:.66}.layer-sheet-option-icon{border:2px solid var(--teal-700);width:30px;height:30px;color:var(--teal-700);background:#fff;border-radius:8px;place-items:center;font-size:1.05rem;font-weight:850;line-height:1;display:inline-grid}.layer-icon-predicted{color:#1677c8;border-color:#1677c8;border-radius:50%}.layer-icon-underpass{color:#c65d05;border-color:#c65d05}.layer-icon-historical{color:var(--slate-700);border-color:var(--slate-700)}.layer-icon-cameras{color:#fff;background:#6c3fc5;border-color:#6c3fc5}.layer-icon-shelters{color:#fff;border-color:var(--shelter-600);background:var(--shelter-600)}.layer-icon-flood-risk{color:#7a2d00;border-style:dashed;border-color:#d94801}.layer-sheet-option-copy{gap:3px;min-width:0;display:grid}.layer-sheet-option-copy strong{color:var(--navy-950);font-size:.8rem}.layer-sheet-option-copy small{color:var(--slate-700);font-size:.68rem;line-height:1.4}.layer-sheet-option-count{color:var(--slate-700);white-space:nowrap;font-size:.68rem}.layer-sheet-option input{width:22px;height:22px;accent-color:var(--teal-600)}.layer-sheet-flood-risk-action{cursor:default;grid-template-columns:32px minmax(0,1fr)}.layer-sheet-action{border:1px solid var(--teal-700);color:#fff;background:var(--teal-700);cursor:pointer;border-radius:9px;grid-column:1/-1;min-height:44px;padding:8px 12px;font-weight:800}.layer-sheet-action:disabled{cursor:wait;opacity:.7}.layer-sheet-status{color:var(--teal-700);background:var(--aqua-100);border-radius:9px;margin:2px 0 0;padding:9px 10px;font-size:.7rem;line-height:1.45}.layer-trigger{border:1px solid var(--teal-600);min-height:44px;color:var(--teal-700);cursor:pointer;background:#fffffff7;border-radius:12px;align-items:center;gap:8px;padding:0 13px;font-size:.8rem;font-weight:800;box-shadow:0 4px 16px #0b203624}.layer-trigger>span:first-child{font-size:1.05rem}.layer-trigger-badge{color:#fff;background:var(--teal-700);border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 5px;font-size:.7rem;display:inline-grid}@media (width>=821px){.location-button{z-index:21}.point-panel.camera-panel{top:58px}}.maplibregl-ctrl-top-left{top:58px;left:18px}.maplibregl-ctrl-group{border:1px solid var(--slate-300);overflow:hidden;border-radius:10px!important;box-shadow:0 4px 16px #0b203624!important}.maplibregl-ctrl-group button{width:44px;height:44px}.location-button{z-index:10;border:1px solid var(--slate-300);cursor:pointer;white-space:nowrap;background:#fff;border-radius:10px;align-items:center;gap:8px;min-height:44px;padding:0 12px;display:flex;position:absolute;top:164px;left:18px;box-shadow:0 4px 16px #0b203624}.location-button svg{fill:none;width:20px;height:20px;stroke:var(--blue-600);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:none}.search-target-note{z-index:11;border:1px solid var(--navy-900);max-width:min(480px,100% - 36px);box-shadow:var(--shadow);text-align:center;background:#fffffff7;border-radius:10px;flex-direction:column;gap:2px;padding:9px 14px;font-size:.76rem;font-weight:750;display:flex;position:absolute;bottom:58px;left:50%;transform:translate(-50%)}.search-target-note small{color:var(--slate-700);font-size:.66rem;font-weight:500}.shelter-layer-message{z-index:12;border:1px solid var(--slate-300);max-width:min(520px,100% - 36px);color:var(--slate-700);text-align:center;background:#fffffff7;border-radius:9px;padding:9px 13px;font-size:.72rem;line-height:1.45;position:absolute;top:126px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0b20361f}.shelter-layer-message.error,.shelter-layer-message.partial{color:#5e481b;background:var(--amber-100);border-color:#d7a54b}.flood-risk-layer-message{z-index:12;color:#5e481b;text-align:center;background:#fff1ccf7;border:1px solid #d7a54b;border-radius:9px;max-width:min(560px,100% - 36px);padding:9px 13px;font-size:.72rem;line-height:1.45;position:absolute;top:170px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0b20361f}.map-legend{z-index:10;border:1px solid var(--slate-300);background:#fffffff5;border-radius:12px;flex-direction:column;gap:8px;min-width:190px;padding:12px 14px;font-size:.72rem;display:flex;position:absolute;bottom:54px;left:18px;box-shadow:0 5px 20px #0b203624}.map-legend span{align-items:center;gap:9px;display:flex}.cluster-sample{background:var(--teal-600);color:#fff;width:24px;height:24px;box-shadow:0 0 0 1px var(--teal-600);border:2px solid #fff;border-radius:50%;place-items:center;font-size:.6rem;font-style:normal;display:inline-grid}.flood-risk-line-sample{border-top:4px dashed #526577;flex:none;width:30px;height:0;display:inline-block}.flood-risk-line-sample.level-0{border-top-style:dashed;border-top-color:#526577}.flood-risk-line-sample.level-1{border-top-style:dotted;border-top-color:#9b7800}.flood-risk-line-sample.level-2{border-top-style:dashed;border-top-color:#d94801}.flood-risk-line-sample.level-3{border-top:5px dotted #8b2fa8}.flood-risk-line-sample.level-4{border-top:6px double #24102f}.flood-risk-line-sample.unknown{opacity:.72;border-top:3px dotted #526577}.point-panel{z-index:60;border:1px solid var(--slate-300);width:368px;box-shadow:var(--shadow);background:#fff;border-radius:18px;position:absolute;top:16px;bottom:16px;right:16px;overflow:hidden}.panel-actions{border-bottom:1px solid var(--slate-150);align-items:center;gap:8px;min-height:58px;padding:8px 12px;display:flex}.panel-actions button{border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:8px;min-height:40px;padding:0 10px;font-size:.76rem}.panel-actions .icon-button{width:40px;margin-left:auto;padding:0;font-size:1.5rem}.status-pill{max-width:154px;color:var(--teal-700);background:var(--aqua-100);border-radius:999px;padding:6px 9px;font-size:.67rem;font-weight:700}.panel-scroll{height:calc(100% - 58px);padding:22px 22px 32px;overflow-y:auto}.panel-loading{padding:24px}.category-label{color:var(--blue-600);align-items:center;gap:8px;margin:0 0 10px;font-size:.72rem;font-weight:800;display:flex}.point-panel h1{letter-spacing:.01em;color:var(--navy-950);margin:0;font-size:1.35rem;line-height:1.45}.translation-state,.municipality{color:var(--slate-700);margin:6px 0 0;font-size:.76rem}.point-facts{border-top:1px solid var(--slate-150);margin:20px 0}.point-facts>div{border-bottom:1px solid var(--slate-150);grid-template-columns:92px 1fr;gap:10px;padding:10px 0;font-size:.78rem;display:grid}.point-facts dt{color:var(--slate-700)}.point-facts dd{margin:0;font-weight:650}.source-card{background:var(--wash);border-radius:12px;padding:14px;font-size:.73rem}.source-card>span{color:var(--slate-700);margin-bottom:5px;display:block}.source-card strong{display:block}.source-card p{color:var(--slate-700);line-height:1.55}.source-card a{color:var(--navy-900);font-weight:700}.source-card a+a{margin-top:8px;display:block}.official-materials-card{border:1px solid var(--slate-300);background:#e9f7fb;border-radius:12px;margin:0 0 14px;padding:14px;font-size:.73rem}.official-materials-card h2{color:var(--navy-950);margin:0 0 10px;font-size:.88rem}.official-materials-facts{margin:0 0 12px}.official-materials-facts>div{border-bottom:1px solid #c9d3dcb8;grid-template-columns:minmax(82px,30%) minmax(0,1fr);gap:10px;padding:7px 0;display:grid}.official-materials-facts>div:last-child{border-bottom:0}.official-materials-facts dt{color:var(--slate-700)}.official-materials-facts dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:650}.official-materials-card a{color:var(--navy-900);overflow-wrap:anywhere;font-weight:750}.panel-safety{color:#5e481b;background:var(--amber-100);border-radius:10px;padding:12px;font-size:.7rem;line-height:1.55}.camera-panel .category-label{color:#5930a9}.camera-status{color:#4d258e;background:#eee6ff}.shelter-panel .category-label{color:var(--shelter-700)}.shelter-status{color:var(--shelter-700);background:var(--shelter-100)}.shelter-hazard-heading{color:var(--navy-950);margin:20px 0 0;font-size:.86rem;line-height:1.45}.shelter-facts>div{grid-template-columns:minmax(92px,40%) minmax(0,1fr)}.shelter-facts dt,.shelter-facts dd{overflow-wrap:anywhere}.shelter-facts dd{font-weight:750}.shelter-remarks{border:1px solid var(--slate-150);background:var(--wash);border-radius:10px;margin:0 0 14px;padding:12px 14px}.shelter-remarks h2{color:var(--slate-700);margin:0 0 5px;font-size:.72rem}.shelter-remarks p{margin:0;font-size:.76rem;line-height:1.55}.shelter-safety,.camera-safety{margin-bottom:14px}.camera-launch-group{gap:8px;margin-bottom:14px;display:grid}.camera-launch{color:#fff;cursor:pointer;background:#5930a9;border:0;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:48px;margin-bottom:0;padding:12px 10px;font-weight:800;text-decoration:none;display:flex}.camera-launch-secondary{color:#5930a9;background:#fff;border:1px solid #5930a9}.camera-player{border:1px solid var(--slate-300);background:var(--navy-950);border-radius:10px;margin-bottom:14px;overflow:hidden}.camera-player-actions{color:#fff;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:6px 8px 6px 12px;font-size:.68rem;display:flex}.camera-player-actions button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff80;border-radius:7px;min-height:34px}.camera-player iframe{aspect-ratio:16/9;background:#000;border:0;width:100%;min-height:200px;display:block}.camera-player-fallback{background:#fff;padding:12px}.camera-player-fallback p{color:var(--slate-900);margin:0 0 10px;font-size:.72rem;line-height:1.55}.provider-note{color:var(--slate-700);margin:12px 0 0;font-size:.68rem;line-height:1.55}.map-meta{z-index:15;gap:8px;width:368px;display:grid;position:absolute;bottom:16px;right:16px}.point-panel~.map-meta{display:none}.coverage-card,.flood-risk-card,.alert-focus-card,.weather-detail-card,.sponsor-slot{border:1px solid var(--slate-300);background:#fffffff7;border-radius:12px;box-shadow:0 4px 16px #0b20361f}.weather-detail-card{border-left:5px solid var(--teal-700);max-height:min(480px,58dvh);padding:12px 14px;font-size:.74rem;line-height:1.5;overflow-y:auto}.weather-detail-card.status-partial,.weather-detail-card.status-stale,.weather-detail-card.status-empty,.weather-detail-card.status-unavailable{border-left-color:var(--amber-500)}.weather-detail-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.weather-detail-card-header h2{color:var(--navy-950);margin:2px 0 0;font-size:.92rem}.weather-detail-card-kicker{color:var(--slate-700);font-size:.66rem;font-weight:750;display:block}.weather-detail-card .icon-button{border:1px solid var(--slate-300);width:44px;min-height:44px;color:var(--navy-900);cursor:pointer;background:#fff;border-radius:8px;flex:none;font-size:1.2rem}.weather-alert-summary{border-bottom:1px solid var(--slate-150);padding-bottom:10px}.weather-detail-risk{color:var(--navy-950);margin:10px 0 7px;font-size:.88rem}.weather-alert-summary dl,.weather-detail-times{margin:0 0 9px}.weather-alert-summary dl div,.weather-detail-times div{border-top:1px solid var(--slate-150);grid-template-columns:104px minmax(0,1fr);gap:8px;padding:5px 0;display:grid}.weather-alert-summary dt,.weather-detail-times dt{color:var(--slate-700)}.weather-alert-summary dd,.weather-detail-times dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:700}.weather-detail-card a{color:var(--navy-900);font-weight:750}.weather-detail-action{border:1px solid var(--teal-700);color:#fff;background:var(--teal-700);cursor:pointer;border-radius:9px;width:100%;min-height:44px;margin-top:10px;padding:8px 12px;font-weight:800}.weather-detail-action:disabled{cursor:wait;opacity:.7}.weather-area-detail{padding-top:10px}.weather-detail-status{color:var(--navy-950);background:var(--aqua-100);border-radius:8px;margin:0;padding:9px 10px;font-weight:750}.status-partial .weather-detail-status,.status-stale .weather-detail-status,.status-empty .weather-detail-status,.status-unavailable .weather-detail-status{color:#5e481b;background:var(--amber-100)}.weather-detail-safety,.weather-detail-refresh{color:#5e481b;background:var(--amber-100);border-radius:8px;margin:9px 0;padding:9px 10px}.weather-detail-refresh p{margin:0}.weather-detail-legend h3,.weather-river-list h3,.weather-selected-river h3{color:var(--navy-950);margin:12px 0 7px;font-size:.76rem}.weather-detail-legend ul,.weather-river-list ul{gap:7px;margin:0 0 12px;padding:0;list-style:none;display:grid}.weather-detail-legend li{grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;display:grid}.weather-river-list button{border:1px solid var(--slate-300);width:100%;min-height:44px;color:var(--navy-900);cursor:pointer;text-align:left;background:#fff;border-radius:8px;padding:7px 9px}.weather-river-list button[aria-pressed=true]{border-color:var(--teal-700);box-shadow:inset 4px 0 0 var(--teal-700)}.weather-selected-river{border:1px solid var(--teal-600);background:var(--aqua-100);border-radius:8px;margin:10px 0;padding:9px 10px}.weather-selected-river p{margin:4px 0}.alert-focus-card{border-left:5px solid #b42318;max-height:min(260px,38dvh);padding:12px 14px;overflow:auto}.alert-focus-card.priority-information{border-left-color:#526577}.alert-focus-card.priority-attention,.alert-focus-card.priority-warning{border-left-color:#c65d05}.alert-focus-card.priority-danger,.alert-focus-card.priority-critical{border-left-color:#b42318}.alert-focus-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.alert-focus-card-kicker{color:var(--slate-700);font-size:.64rem;font-weight:750;display:block}.alert-focus-card h2{color:var(--navy-950);margin:2px 0 0;font-size:.9rem}.alert-focus-card .icon-button{border:1px solid var(--slate-300);width:36px;min-height:36px;color:var(--navy-900);cursor:pointer;background:#fff;border-radius:8px;flex:none;font-size:1.15rem}.alert-focus-card-risk{color:var(--navy-950);margin:10px 0 7px;font-size:.86rem}.alert-focus-card dl{margin:0 0 9px;font-size:.68rem}.alert-focus-card dl div{border-top:1px solid var(--slate-150);grid-template-columns:76px 1fr;gap:8px;padding:4px 0;display:grid}.alert-focus-card dt{color:var(--slate-700)}.alert-focus-card dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:700}.alert-focus-card>a{color:var(--navy-900);font-size:.68rem;font-weight:750}.coverage-card summary{cursor:pointer;justify-content:space-between;align-items:center;min-height:56px;padding:10px 14px;list-style:none;display:flex}.coverage-card summary::-webkit-details-marker{display:none}.flood-risk-card summary::-webkit-details-marker{display:none}.coverage-card summary span:first-child{flex-direction:column;gap:3px;display:flex}.coverage-card summary small{color:var(--slate-700)}.coverage-body{border-top:1px solid var(--slate-150);padding:0 14px 14px;font-size:.73rem;line-height:1.5}.coverage-body dl{margin:0}.coverage-body dl div{justify-content:space-between;display:flex}.coverage-body dd{margin:0;font-weight:700}.flood-risk-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:10px 14px;list-style:none;display:flex}.flood-risk-card summary>span:first-child{flex-direction:column;gap:3px;min-width:0;display:flex}.flood-risk-card summary small{color:var(--slate-700);font-size:.68rem;line-height:1.35}.flood-risk-card.status-stale,.flood-risk-card.status-provider-error,.flood-risk-card.status-no-data,.flood-risk-card.status-partial{border-color:#d7a54b}.flood-risk-summary-mark{color:#7a2d00;border:2px dashed #d94801;border-radius:6px;flex:none;padding:5px 7px;font-size:.64rem;font-weight:900}.flood-risk-body{border-top:1px solid var(--slate-150);max-height:min(440px,55dvh);padding:0 14px 14px;font-size:.72rem;line-height:1.5;overflow-y:auto}.flood-risk-safety{color:#5e481b;background:var(--amber-100);border-radius:8px;padding:10px}.flood-risk-body h2{margin:12px 0 8px;font-size:.76rem}.flood-risk-levels{gap:7px;margin:0;padding:0;list-style:none;display:grid}.flood-risk-levels li{grid-template-columns:30px 24px 1fr;align-items:center;gap:7px;display:grid}.flood-risk-times{border-top:1px solid var(--slate-150);margin:14px 0}.flood-risk-times div{border-bottom:1px solid var(--slate-150);grid-template-columns:94px 1fr;gap:8px;padding:7px 0;display:grid}.flood-risk-times dt{color:var(--slate-700)}.flood-risk-times dd{margin:0;font-weight:700}.flood-risk-body a{color:var(--navy-900);font-weight:700}.sponsor-slot{min-height:45px;color:var(--slate-700);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.sponsor-slot small{text-transform:uppercase;letter-spacing:.08em;font-size:.6rem}.sponsor-slot span{font-size:.7rem}.alternative-list{z-index:12;max-width:300px;font-size:.7rem;position:absolute;bottom:12px;left:18px}.alternative-list summary{cursor:pointer;background:#fffffff5;border-radius:7px;padding:6px 10px}.alternative-list[open]{max-height:50vh;box-shadow:var(--shadow);background:#fff;border-radius:10px;padding:10px;overflow:auto}.alternative-list ul{margin:6px 0 10px;padding-left:16px}.alternative-list h2{color:var(--navy-950);margin:0;font-size:.72rem}.alternative-list section+section{border-top:1px solid var(--slate-150);margin-top:10px;padding-top:8px}.alternative-empty{margin:8px 0 2px;line-height:1.5}.alternative-list button{text-align:left;cursor:pointer;background:0 0;border:0;min-height:36px;text-decoration:underline}.state-card,.not-published{z-index:40;max-width:540px;box-shadow:var(--shadow);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:22px 26px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.state-card.error,.not-published{border-left:5px solid var(--amber-500)}.spinner{border:3px solid var(--slate-300);border-top-color:var(--teal-600);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:200;background:var(--navy-950);color:#fff;box-shadow:var(--shadow);border-radius:999px;padding:10px 16px;font-size:.8rem;position:fixed;bottom:46px;left:50%;transform:translate(-50%)}.share-fallback{z-index:210;border:1px solid var(--slate-300);max-width:680px;box-shadow:var(--shadow);background:#fff;border-radius:12px;gap:6px;margin:auto;padding:12px;display:grid;position:fixed;bottom:42px;left:12px;right:12px}.share-fallback p{margin:0;font-size:.76rem;font-weight:700}.share-fallback input{border:1px solid var(--slate-300);width:100%;min-height:40px;color:var(--slate-700);border-radius:8px;padding:7px 9px;font-size:.7rem}.safety-dialog-backdrop{z-index:300;background:#0b203694;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.safety-dialog{width:min(520px,100%);box-shadow:var(--shadow);background:#fff;border:2px solid #c65d05;border-radius:16px;padding:20px}.safety-dialog header{align-items:center;gap:10px;display:flex}.safety-dialog h2{color:var(--navy-950);flex:1;margin:0;font-size:1.05rem}.safety-dialog header .icon-button{border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:8px;width:40px;min-height:40px;font-size:1.3rem}.safety-dialog>p{color:var(--slate-900);margin:16px 0 0;font-size:.82rem;line-height:1.65}.info-menu-backdrop{z-index:300;background:#0b20367a;justify-content:flex-end;padding:12px;display:flex;position:fixed;inset:0}.info-menu{border:1px solid var(--slate-300);width:min(520px,100%);max-height:calc(100dvh - 24px);box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:20px;overflow-y:auto}.info-menu-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.info-menu-header h2{color:var(--navy-950);margin:0;font-size:1.1rem}.info-menu-header .icon-button{border:1px solid var(--slate-300);cursor:pointer;background:#fff;border-radius:8px;width:40px;min-height:40px;font-size:1.3rem}.info-menu-section{border-top:1px solid var(--slate-150);padding:14px 0}.info-menu-section h3{color:var(--navy-950);margin:0 0 7px;font-size:.86rem}.info-menu-section p{margin:0 0 8px;font-size:.75rem;line-height:1.55}.info-menu-caution{color:#5e481b;background:var(--amber-100);border-radius:8px;padding:10px}.info-menu-links{gap:6px;margin:0;padding-left:18px;font-size:.75rem;display:grid}.info-menu-links a{color:var(--navy-900);font-weight:700}.info-menu .coverage-card,.info-menu .sponsor-slot{box-shadow:none}footer{z-index:40;color:#fff;background:var(--navy-950);white-space:nowrap;justify-content:flex-end;align-items:center;gap:7px;padding:0 18px;font-size:.62rem;display:flex;overflow:hidden}footer span{flex:none}footer a{color:#fff}@media (width<=820px){.app-shell{grid-template-rows:50px 1fr 25px}.app-header{padding:0 12px}.brand{font-size:.9rem}.brand img{width:31px;height:31px}.language-menu select,.menu-button{min-height:38px;font-size:.75rem}.menu-button{padding:0 9px}.safety-reopen{top:154px;right:9px}.safety-reopen button{min-height:36px;padding:0 9px;font-size:.67rem}.safety-toast{width:calc(100% - 18px);top:58px;right:9px}.safety-toast p{font-size:.68rem}.disaster-alert-center{top:50px}.disaster-alert-banner,.disaster-alert-compact{min-height:40px;padding:4px 9px}.disaster-alert-banner p{flex-direction:column;align-items:start;gap:1px}.disaster-alert-banner .alert-banner-detail{display:none}.disaster-alert-banner .alert-banner-summary{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.7rem;display:block;overflow:hidden}.disaster-alert-banner small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.6rem;display:block;overflow:hidden}.disaster-alert-banner>button:not(.icon-button){min-height:34px;padding:0 7px;font-size:.65rem}.disaster-alert-banner .icon-button{display:none}.disaster-alert-compact{justify-content:space-between}.disaster-alert-panel{width:calc(100% - 18px);max-height:calc(100dvh - 24px);top:12px;right:9px}.alert-dialog{padding:18px}.map-toolbar{width:calc(100% - 20px);top:50px;left:10px;transform:none}.search-box input{min-height:46px;padding-left:44px;font-size:16px}.filter-bar{justify-content:start;padding:0 1px 4px;display:none;overflow-x:auto}.layer-trigger{margin-top:8px;display:inline-flex}.filter-label{display:none}.filter-chip{min-height:36px;padding:0 10px}.location-prompt{width:min(430px,100% - 18px);padding:14px;top:214px}.maplibregl-ctrl-top-left{top:156px;left:9px}.maplibregl-ctrl-group button{width:42px;height:42px}.location-button{justify-content:flex-start;width:auto;min-width:44px;max-width:calc(100% - 18px);min-height:44px;padding:0 12px;font-size:.75rem;top:156px;left:9px}.location-button svg{width:22px;height:22px}.search-target-note{bottom:102px}.shelter-layer-message{top:auto;bottom:102px}.flood-risk-layer-message{top:auto;bottom:146px}.map-legend{display:none}.point-panel{border-bottom:0;border-radius:20px 20px 0 0;width:auto;max-height:calc(100% - 86px);transition:height .2s;position:absolute;inset:auto 0 0}.point-panel.sheet-full{height:calc(100% - 10px)}.panel-actions{min-height:50px;padding-top:2px}.status-pill{max-width:50%}.panel-scroll{height:calc(100% - 50px);padding:10px 18px max(28px, env(safe-area-inset-bottom));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.point-panel h1{font-size:1.15rem}.map-meta{width:min(330px,100% - 18px);bottom:9px;right:9px}.weather-detail-card{max-height:min(360px,45dvh);padding:10px 11px}.weather-detail-card-header h2{font-size:.84rem}.coverage-card summary,.flood-risk-card summary{min-height:50px}.alert-focus-card{max-height:min(230px,34dvh);padding:10px 11px}.alert-focus-card h2{font-size:.82rem}.flood-risk-body{max-height:42dvh}.sponsor-slot{min-height:40px}.alternative-list{max-width:min(300px,100% - 18px);left:9px;right:9px}footer{padding:0 8px}}@media (width<=350px){.brand{gap:6px;font-size:.82rem}.brand span{max-width:120px;line-height:1.15}.language-menu select{width:76px;padding-left:6px;padding-right:20px}.header-actions{gap:4px}.menu-button{justify-content:center;width:40px;padding:0;font-size:0}.menu-button span{font-size:1rem}.filter-chip{font-size:.67rem}.layer-trigger{justify-content:center;width:100%}.panel-actions{gap:4px;padding-left:8px;padding-right:8px}.panel-actions button{padding:0 7px}.status-pill{font-size:.58rem}.location-prompt-actions{flex-direction:column}.location-prompt-actions button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (forced-colors:active){.legend-dot,.cluster-sample,.camera-legend-icon,.shelter-legend-icon,.flood-risk-filter-icon,.flood-risk-line-sample{border-color:canvastext}}
