:root{color-scheme:dark;--bg:#101917;--panel:#18231f;--raised:#202e28;--line:#344039;--muted:#a0afa5;--text:#eef1e9;--mint:#b4e7c9;--amber:#edc27a;--red:#efa499;font-family:Inter,"Segoe UI",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--mint);outline-offset:4px}a{color:inherit;text-decoration:none}.masthead{height:94px;border-bottom:1px solid var(--line);padding:0 4%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;font-size:19px;letter-spacing:3px;font-weight:650}.brand svg{width:39px;stroke:var(--mint);fill:none;stroke-width:1.2}.brand svg .dot{fill:var(--mint)}.brand-sub{display:block;font-size:9px;letter-spacing:2.5px;color:var(--muted);margin-top:2px}.header-right{display:flex;align-items:center;gap:28px}.offline{font-size:10px;letter-spacing:1.4px;color:var(--mint);display:flex;gap:8px;align-items:center}.status-dot{width:6px;height:6px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 4px #b4e7c914}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 16px;border:1px solid transparent;border-radius:5px;font-size:12px;font-weight:650;transition:background .15s}.primary{background:var(--mint);color:#152b1f}.primary:hover{background:#d1f4de}.secondary{background:transparent;border-color:var(--line);color:var(--text)}.secondary:hover,.small-button:hover{background:var(--raised)}main{max-width:1480px;margin:auto;padding:34px 4% 20px}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-size:10px;font-weight:650;letter-spacing:1.65px;color:var(--muted);margin:0 0 10px}h1{font-size:clamp(25px,3vw,38px);line-height:1.2;letter-spacing:-1.3px;font-weight:500;margin:0}h2{font-size:19px;line-height:1.3;letter-spacing:-.4px;font-weight:550;margin:0}.clock{text-align:right;font-variant-numeric:tabular-nums;font-size:18px}.clock small{display:block;font-size:8px;letter-spacing:1.6px;color:var(--muted);margin-top:5px}.notice{border:1px solid #806c443d;background:#8c733d15;border-left:3px solid var(--amber);color:#e0cda8;padding:12px 16px;margin-bottom:20px;font-size:12px}.notice.fresh{color:var(--mint);border-left-color:var(--mint);background:#b4e7c909}.notice.error{color:var(--red);border-left-color:var(--red);background:#efa4990a}.workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(310px,1fr);gap:22px;align-items:start}.panel{border:1px solid var(--line);background:var(--panel);border-radius:7px;overflow:hidden}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.imagery .panel-heading{padding:22px 24px}.tag{border:1px solid #a0afa537;color:#bacaad;padding:5px 8px;font-size:9px;letter-spacing:1px;border-radius:3px;white-space:nowrap}.map-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px;gap:5px;color:var(--muted);font-variant-numeric:tabular-nums}.map-toolbar>div{display:flex;gap:7px}.small-button{padding:6px 9px;background:transparent;color:var(--text);border:1px solid var(--line);border-radius:4px;font-size:11px}.map-area{background:#0b1310;padding:12px;display:flex;justify-content:center;align-items:center;min-height:220px}.map-stack{position:relative;max-width:100%;width:600px;cursor:crosshair;line-height:0}.map-stack>img{width:100%;height:auto;display:block;border-radius:2px}.map-stack>img[hidden]{display:none}#overlay{position:absolute;inset:0;pointer-events:none}.projected #map{filter:grayscale(1) brightness(.45)}.marker{position:absolute;transform:translate(-50%,-50%);pointer-events:none;z-index:2;line-height:1.4}.marker>span{display:block;width:15px;height:15px;border-radius:50%;background:#13291f;border:3px solid #f8ffe9;box-shadow:0 0 0 5px #173c2566}.marker b{position:absolute;left:21px;top:-3px;padding:4px 7px;font-size:10px;color:#f6fff3;background:#17281fee;border-radius:3px;white-space:nowrap;font-weight:550}.map-caption{padding:10px 16px;display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#becbbd;border-bottom:1px solid var(--line)}.muted{color:var(--muted)}.small{font-size:11px;line-height:1.6}.playback{padding:16px 23px 12px}.playback label{font-size:11px;display:flex;justify-content:space-between;color:var(--muted)}.playback strong{font-weight:500;color:var(--mint)}input[type=range]{width:100%;margin:14px 0 5px;accent-color:var(--mint);cursor:pointer}.range-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.legend{display:flex;gap:6px;align-items:center;padding:0 23px 18px;font-size:9px;color:var(--muted);flex-wrap:wrap}.legend>span:first-child{margin-right:8px}.legend-note{margin-left:auto;opacity:.7}.swatch{width:7px;height:7px;border-radius:50%;display:inline-block;margin-left:7px}.light{background:#3bd593}.moderate{background:#facc4b}.strong{background:#f97d4f}.forecast-column{display:flex;flex-direction:column;gap:20px}.location-panel,.forecast-panel{padding:22px}.location-panel select{margin:0 0 15px;font-size:17px;background-color:#202e28;color:var(--text);border:1px solid #455446;padding:12px}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}label{display:block;color:var(--muted);font-size:11px}input:not([type=range]):not([type=file]):not([type=checkbox]):not([type=radio]),select,textarea{width:100%;margin-top:6px;background:#121d17;border:1px solid var(--line);color:var(--text);border-radius:4px;padding:10px 12px;outline-offset:2px}select{max-width:100%}.location-panel .primary{width:100%}.location-panel .small{margin-bottom:0}.summary{font-size:22px;line-height:1.45;font-weight:450;letter-spacing:-.4px;margin:22px 0 12px}.timeline{margin:20px 0 10px}.time-row{display:grid;grid-template-columns:51px 5px 1fr 42px;align-items:center;gap:12px;min-height:43px;border-top:1px solid #a0afa518;font-size:11px}.time-row .lead-time{color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}.time-row i{width:5px;height:18px;border-radius:2px;background:#617867}.time-row[data-level=echo] i{background:#3bd593}.time-row[data-level=moderate] i{background:#facc4b}.time-row[data-level=strong] i{background:#f97d4f}.time-row .dbz{font-size:9px;text-align:right;color:var(--muted)}.method-strip{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:9px;border-top:1px solid var(--line);padding-top:18px;margin-top:12px}.method-strip span{display:block;font-size:8px;letter-spacing:.8px;color:var(--muted)}.method-strip strong{display:block;font-size:13px;font-weight:450;color:var(--mint);margin-top:6px}.forecast-panel>.small:last-child{margin-bottom:0}.bulletin-panel{margin-top:24px;padding:25px}.bulletin-controls{display:flex;gap:24px;align-items:end;margin-top:17px}.bulletin-controls label{flex:1;max-width:650px}.bulletin-controls select{font-size:12px}.periods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:20px}.period-card{border-left:1px solid var(--line);padding:0 20px;margin-bottom:24px}.period-card:first-child,.period-card:nth-child(4n+1){padding-left:0;border-left:0}.period-card h3{font-size:14px;font-weight:550;margin:0 0 11px;color:var(--mint)}.period-card p{font-size:12px;color:#c5cfc5;margin:0;line-height:1.8}summary{cursor:pointer;font-size:11px;color:var(--muted)}pre{white-space:pre-wrap;font:12px/1.75 "Cascadia Code",Consolas,monospace;background:#121c16;border:1px solid var(--line);padding:20px;border-radius:4px;max-height:500px;overflow:auto}.notes{margin:25px 0 8px;border-top:1px solid var(--line);padding-top:17px;color:var(--muted);font-size:11px;line-height:1.8}.notes summary{color:#becdbf;font-weight:500}.notes li{padding:2px 0}.notes p{max-width:1050px}footer{display:flex;justify-content:space-between;padding:22px 4%;border-top:1px solid var(--line);font-size:9px;letter-spacing:1px;color:var(--muted)}dialog{width:min(650px,calc(100% - 25px));max-height:90vh;background:var(--panel);color:var(--text);border:1px solid #657363;border-radius:9px;padding:28px;box-shadow:0 15px 60px #0007}dialog::backdrop{background:#061009cc;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.preset-buttons{display:flex;gap:8px;margin:20px 0}#settings-form>label{margin:13px 0}.upload-row{display:flex;gap:15px;align-items:center;margin:20px 0}.upload-label{cursor:pointer;white-space:nowrap}.profile-details{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}textarea{font:11px/1.65 Consolas,monospace;resize:vertical}.dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}.error-text{color:var(--red);font-size:12px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(min-width:1450px){.workspace{grid-template-columns:minmax(0,1.5fr) minmax(360px,1fr)}.map-area{padding:20px}}@media(max-width:900px){.workspace{grid-template-columns:minmax(0,1.1fr) minmax(290px,1fr);gap:15px}.map-area{padding:4px}.imagery .panel-heading{padding:20px 15px}.location-panel,.forecast-panel{padding:18px}.map-caption{flex-direction:column;gap:2px}.legend-note{margin-left:0;width:100%}.header-right{gap:15px}.periods{grid-template-columns:repeat(2,minmax(0,1fr))}.period-card:nth-child(2n+1){padding-left:0;border-left:0}.summary{font-size:19px}}@media(max-width:680px){.masthead{height:78px;padding:0 5%}.brand{font-size:15px;gap:9px;letter-spacing:2px}.brand svg{width:31px}.brand-sub{font-size:7px}.offline{display:none}.header-right .button{font-size:10px;padding:9px 11px}main{padding:25px 5% 15px}.page-title{align-items:start}.clock{font-size:12px}.clock small{font-size:7px}.page-title .eyebrow{font-size:8px}h1{font-size:25px;max-width:230px}.workspace{grid-template-columns:1fr}.forecast-column{display:contents}.location-panel{grid-row:1}.forecast-panel{grid-row:3}.map-area{padding:6px}.map-caption{flex-direction:row;flex-wrap:wrap}.summary{font-size:23px}.legend-note{width:auto;margin-left:auto}.bulletin-panel{padding:20px}.bulletin-controls{display:block}.bulletin-controls>span{display:block;margin-top:12px}.period-card{padding:0 13px}.period-card p{font-size:11px}footer{flex-direction:column;gap:9px;padding:20px 5%;font-size:8px}dialog{padding:22px}.upload-row{flex-wrap:wrap;gap:7px}.dialog-actions>span{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* The national map is independent of the received image's footprint. */
.national-workspace{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:22px;align-items:start}
.national-panel .panel-heading{padding:22px 24px}
.region-controls{display:flex;flex-wrap:wrap;gap:6px;padding:0 20px 16px}
.region-controls [aria-pressed=true]{background:var(--mint);color:#152b1f;border-color:var(--mint)}
#national-map{height:430px;background:#101f1b;border-top:1px solid var(--line);font:inherit;z-index:0}
#national-map:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.map-loading{padding:25px;color:var(--muted);font-size:12px}
#national-map .leaflet-control-zoom a{background:#20362a;color:var(--text);border-color:var(--line)}
#national-map .leaflet-control-zoom a:hover{background:#45644e}
#national-map .leaflet-control-zoom a.leaflet-disabled{color:#748078}
#national-map .leaflet-control-zoom{border:1px solid #657c6b}
.state-label{font:10px/18px "Segoe UI",Arial,sans-serif;color:#d0dfc8;text-align:center;pointer-events:none;letter-spacing:.7px;text-shadow:0 1px 3px #142b1b}
.state-tooltip,#national-map .leaflet-tooltip{background:#17281f;color:var(--text);border:1px solid #728574;box-shadow:0 2px 10px #0004;font:11px/1.5 "Segoe UI",Arial,sans-serif}
.selected-area{border-top:1px solid var(--line);padding-top:20px;margin-top:22px}
.selected-area h3{font-size:21px;font-weight:500;color:var(--mint);line-height:1.35;margin:0 0 12px;letter-spacing:-.3px}
#selection-status{overflow-wrap:anywhere}
.bulletin-panel{margin-bottom:24px}
@media(max-width:1000px){.national-workspace{grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:15px}#national-map{height:390px}.national-panel .panel-heading{padding:20px 16px}.national-panel .tag{display:none}.region-controls{padding:0 16px 14px}}
@media(max-width:680px){.national-workspace{grid-template-columns:1fr}.national-workspace .location-panel{grid-row:auto}#national-map{height:340px}.national-panel .panel-heading{padding:20px}.selected-area{margin-top:16px;padding-top:16px}.region-controls{padding-left:20px}.state-label{font-size:9px}.national-panel .map-caption{font-size:9px}}

.map-layers{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:0 20px 10px;color:var(--muted);font-size:11px}
.map-layers label{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;cursor:pointer}
input[type=checkbox],input[type=radio]{width:18px;height:18px;flex:0 0 18px;padding:0;margin:0;accent-color:var(--mint);cursor:pointer}
.map-layers label:has(#show-city-borders){color:var(--amber)}
.map-layers .roads-toggle{color:#adb5bd}
.road-label{font:10px/18px "Segoe UI",Arial,sans-serif;color:#d6dde3;text-align:center;pointer-events:none;white-space:nowrap}
.road-label span{display:block;overflow:hidden;text-overflow:ellipsis;background:#16221ddd;border:1px solid #65727c;border-radius:3px;padding:0 4px}
#map-road-status{min-height:0;font-size:10px}
.map-detail-status{font-size:11px;color:var(--muted);padding:0 20px;margin:0 0 12px;min-height:32px}
.city-label{color:#fff4d9;font:11px/20px "Segoe UI",Arial,sans-serif;white-space:nowrap;cursor:pointer;text-shadow:0 1px 3px #000,1px 0 3px #000}
.city-label-text:before{content:'•';color:#f2c785;margin-right:4px}
.city-label:focus-visible{outline:2px solid var(--amber)}
.checkbox-label{display:flex;gap:10px;align-items:center;font-size:12px}
#radar-empty{padding:25px;text-align:center;line-height:1.7}

.boundary-key{font-size:10px;color:var(--muted);margin:0;padding:10px 18px;border-bottom:1px solid var(--line)}
.swatch.weak,.time-row[data-level=weak] i{background:#45aef2}
.daily-panel{padding:25px;margin-bottom:24px}.daily-controls{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin-top:18px}.daily-controls label:first-child{flex:1;min-width:200px;max-width:540px}.daily-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:20px 0}.daily-card{background:#121d17;border:1px solid var(--line);border-radius:5px;padding:16px}.daily-card h3{font-size:13px;color:var(--mint);margin:0 0 8px}.daily-weather{font-size:13px;min-height:40px;margin:0 0 14px}.daily-temperatures{display:grid;grid-template-columns:1fr 1fr;gap:12px}.daily-temperatures span,.daily-precip>span{display:block;font-size:10px;color:var(--muted)}.daily-temperatures strong{font-size:30px;font-weight:500;line-height:1.4}.daily-temperatures>div:last-child strong{color:#b5c8dd}.daily-precip{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.daily-precip p{font-size:11px;margin:4px 0}.daily-panel>details{margin-top:16px}@media(max-width:680px){.daily-panel{padding:20px}.daily-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-card{padding:12px}.daily-panel .panel-heading{flex-wrap:wrap}}
.motion-check-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:12px}.motion-check-table th,.motion-check-table td{text-align:left;padding:8px 0;border-bottom:1px solid var(--line)}.motion-check-table th:last-child,.motion-check-table td:last-child{text-align:right}
.discussion-panel{padding:25px;margin-top:24px}.discussion-panel .panel-heading{flex-wrap:wrap}.discussion-section{border-top:1px solid var(--line);padding:16px 0}.discussion-section>summary{color:var(--mint);font-size:13px;font-weight:550}.discussion-body{max-width:960px;font-size:14px;line-height:1.85}.discussion-body p{margin:14px 0}.discussion-panel>details:last-child{margin-top:16px}@media(max-width:680px){.discussion-panel{padding:20px}}

.rain-metrics{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.rain-label{display:block;color:var(--muted);font-size:12px}.rain-metrics strong{display:block;color:var(--mint);font-size:22px;font-weight:500;margin-top:8px}.rain-metrics p{margin:8px 0 0}.timeline-rate{display:block;color:var(--muted);font-size:10px;padding:3px 0 8px}.rain-metrics>div{min-width:0}

.radar-navigation{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line)}.radar-navigation>span:last-child{margin-left:auto;color:var(--muted);font-size:11px}#radar-zoom-level{font-size:12px;font-variant-numeric:tabular-nums;min-width:40px;text-align:center}.radar-viewport{position:relative;overflow:hidden;width:600px;max-width:100%;aspect-ratio:600/571;touch-action:none;user-select:none;flex-shrink:0}.radar-viewport:focus-visible{outline:2px solid var(--mint);outline-offset:3px}.radar-viewport .map-stack{position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;transform-origin:0 0}.radar-viewport.radar-zoomed .map-stack{cursor:grab}.radar-viewport.radar-dragging .map-stack{cursor:grabbing}.radar-viewport img{-webkit-user-drag:none}.map-area{flex-wrap:wrap}#radar-empty{flex-basis:100%;text-align:center}

.imagery .map-area{position:relative}#radar-empty{position:absolute;top:12px;left:12px;right:12px;z-index:3;margin:0;padding:10px;background:#101917ee;border-radius:4px;pointer-events:none}
.radar-status{display:flex;align-items:center;gap:9px;min-height:54px;padding:8px 16px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}
.radar-status::before{content:'';width:12px;height:12px;flex:0 0 12px;border:2px solid currentColor;border-radius:50%}
.radar-status.loading{color:var(--mint);background:#b4e7c909}
.radar-status.loading::before{border-right-color:transparent;animation:radar-status-spin 1s linear infinite}
.radar-status.failed{color:var(--amber);background:#8c733d15}
@keyframes radar-status-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.radar-status.loading::before{animation:none}}

.daily-chart{margin:22px 0 12px;padding:18px 18px 10px;border:1px solid var(--line);border-radius:5px;background:#121d17}.daily-chart figcaption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;font-weight:500}.temperature-legend{display:flex;gap:20px}.temperature-high{color:#f3b180;stroke:#f3b180;fill:#f3b180}.temperature-low{color:#92c3f1;stroke:#92c3f1;fill:#92c3f1}.daily-chart-scroll{overflow-x:auto;margin-top:8px}.daily-chart svg{display:block;width:100%;min-width:540px;max-height:320px}.temperature-grid{stroke:#34453a;stroke-width:1}.temperature-axis{fill:var(--muted);font-size:12px}.temperature-line{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.temperature-line.temperature-low{stroke-dasharray:6 5}.temperature-point{stroke:#121d17;stroke-width:2}.temperature-point:focus{outline:none;stroke:#fff;stroke-width:3}.temperature-value{stroke:none;font-size:13px;font-weight:500}.daily-chart>p{margin:8px 0 0}@media(max-width:680px){.daily-chart{padding:12px 8px}.daily-chart figcaption{padding:0 6px}}

.downlink-panel{padding:22px 25px;margin-bottom:24px}.downlink-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;margin:18px 0}.downlink-metrics>div{border-left:1px solid var(--line);padding-left:16px}.downlink-metrics>div:first-child{border:0;padding-left:0}.downlink-metrics span,.downlink-metrics small{display:block;color:var(--muted);font-size:10px;line-height:1.6}.downlink-metrics strong{display:block;font-size:27px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.7}.downlink-panel details{margin-top:12px}.downlink-panel details p{overflow-wrap:anywhere}#downlink-state[data-status="receiving"]{color:var(--mint)}#downlink-state[data-status="drops"],#downlink-state[data-status="partial"],#downlink-state[data-status="stale"]{color:#f3b180}@media(max-width:1000px){.downlink-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.downlink-metrics>div:nth-child(4){border:0;padding-left:0}}@media(max-width:680px){.downlink-panel{padding:20px}.downlink-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.downlink-metrics>div:nth-child(4){border-left:1px solid var(--line);padding-left:16px}.downlink-metrics>div:nth-child(odd){border:0;padding-left:0}.downlink-panel .panel-heading{flex-wrap:wrap;gap:10px}}

/* Packet paths are illustrative; only fresh publisher statistics activate them. */
.downlink-viz{margin:18px 0 22px;border:1px solid #3f594a;border-radius:6px;background:radial-gradient(ellipse at 50% 40%,#24453455,transparent 65%),radial-gradient(#73998025 .7px,transparent .7px),#101c17;background-size:auto,18px 18px,auto;padding:16px 20px 12px}
.downlink-viz figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:1.5px;color:var(--mint)}
.flow-caption{color:var(--muted);letter-spacing:.2px}.downlink-viz button{letter-spacing:0;white-space:nowrap}.downlink-viz button:disabled{cursor:default;opacity:.8}
.flow-scene{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:200px;margin-top:12px}
.flow-routes{position:absolute;inset:0;width:100%;height:200px;overflow:visible;fill:none;pointer-events:none}
.flow-track{stroke:#435c4c;stroke-width:1;vector-effect:non-scaling-stroke}
.flow-pulse{stroke-width:3;stroke-linecap:round;stroke-dasharray:2 34;opacity:0;animation:downlink-flow var(--flow-speed,2.8s) linear infinite;animation-play-state:paused}
.flow-demod-pulse{stroke:#91c8dd;animation-duration:2s}.flow-decoder-pulse{stroke:var(--mint);filter:drop-shadow(0 0 3px #b4e7c980)}.flow-drop-pulse{stroke:var(--amber);animation-duration:var(--drop-speed,3s)}
.downlink-viz[data-demod=true] .flow-demod-pulse,.downlink-viz[data-traffic=true] .flow-decoder-pulse,.downlink-viz[data-drops=true] .flow-drop-pulse{opacity:1}
.downlink-viz[data-motion=on][data-demod=true] .flow-demod-pulse,.downlink-viz[data-motion=on][data-traffic=true] .flow-decoder-pulse,.downlink-viz[data-motion=on][data-drops=true] .flow-drop-pulse{animation-play-state:running}
.flow-stage{position:relative;text-align:center;min-width:0;padding-top:8px;color:var(--muted)}
.flow-label{font-size:10px;letter-spacing:1.2px}.flow-node{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:12px auto 9px;border:1px solid #4b6153;border-radius:18px;background:#15231b;box-shadow:0 0 0 7px #14231b;color:#788f7e}
.flow-node svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
.flow-stage strong{display:block;font-size:15px;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.4}.flow-detail{display:block;font-size:10px;margin-top:3px}
.downlink-viz[data-demod=true] .flow-demod .flow-node{color:#a9d8e9;border-color:#729eaf;box-shadow:0 0 0 7px #14231b,0 0 28px #91c8dd16}
.downlink-viz[data-decoder=true] .flow-decoder .flow-node,.downlink-viz[data-traffic=true] .flow-output .flow-node{color:var(--mint);border-color:#86b79b;box-shadow:0 0 0 7px #14231b,0 0 28px #b4e7c920}
.downlink-viz[data-decoder=true] .flow-output strong{color:var(--mint)}
.flow-drop-value{position:absolute;top:158px;left:50%;transform:translateX(-50%);display:block;white-space:nowrap;font-size:10px;padding:4px 9px;border:1px solid var(--line);border-radius:4px;background:#142019}
.downlink-viz[data-drops=true] .flow-drop-value{color:var(--amber);border-color:#8e754c}
.downlink-viz>p{margin:0;border-top:1px solid #34403980;padding-top:10px;font-size:10px}.flow-key{display:inline-block;width:6px;height:6px;border-radius:50%;margin:0 5px 1px 8px}.flow-key:first-child{margin-left:0}.flow-key-blue{background:#91c8dd}.flow-key-mint{background:var(--mint)}.flow-key-amber{background:var(--amber)}
@keyframes downlink-flow{to{stroke-dashoffset:-36}}
@media(prefers-reduced-motion:reduce){.flow-pulse{animation:none!important}}
@media(max-width:680px){.downlink-viz{padding:12px 8px}.flow-caption{display:none}.downlink-viz figcaption{padding:0 4px;font-size:9px;letter-spacing:1px}.flow-label{font-size:8px;letter-spacing:.1px}.flow-node{width:52px;height:52px;margin-top:18px;margin-bottom:15px;border-radius:15px}.flow-node svg{width:32px;height:32px}.flow-stage strong{font-size:12px}.flow-detail,.flow-drop-value{font-size:9px}.flow-drop-value{padding:4px}.flow-scene{margin-top:8px}}

/* Let content shrink inside grids without clipping controls or long labels. */
.panel,.panel-heading>div,.coordinate-grid>label,.bulletin-controls>label,.daily-controls>label{min-width:0}
.coordinate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.panel-heading{flex-wrap:wrap}
.map-toolbar{flex-wrap:wrap;gap:10px}
.map-toolbar>div{flex-shrink:0}
.playback label{flex-wrap:wrap;gap:6px}
.selected-area h3,.notice,.method-strip strong{overflow-wrap:anywhere}

/* Stack the map and forecasts before tablet columns become cramped. */
@media(max-width:800px){
  .national-workspace,.workspace{grid-template-columns:minmax(0,1fr)}
  .forecast-column{display:flex}
  .forecast-panel{grid-row:auto}
}

@media(max-width:680px){
  .page-title{flex-wrap:wrap;gap:16px}
  .clock{margin-left:auto}
  .map-layers{gap:4px 16px}
  .map-layers label{font-size:12px}
  .map-layers #map-overview{flex-basis:100%}
  input[type=number],select,textarea,.bulletin-controls select{font-size:16px}
  .daily-controls label:first-child{min-width:0;flex-basis:100%}
  .bulletin-controls #follow-map{margin-top:12px}
  .map-toolbar>span{flex-basis:100%}
  .radar-navigation>span:last-child{flex-basis:100%;margin-left:0}
  .playback{padding:16px}
  .legend{padding:0 16px 18px}
  .legend-note{width:100%;margin-left:0}
  .downlink-viz figcaption{flex-wrap:wrap}
  .downlink-metrics strong{font-size:clamp(20px,6vw,27px);overflow-wrap:anywhere}
}

/* Use the whole label as the checkbox target; keep the native box compact. */
@media(max-width:680px),(pointer:coarse){
  .button,.small-button{min-height:44px;min-width:44px}
  #national-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
  summary{min-height:44px;padding-top:11px;padding-bottom:11px}
  input[type=range]{min-height:44px;margin:6px 0}
}

@media(max-width:380px){
  .daily-cards,.periods,.rain-metrics{grid-template-columns:minmax(0,1fr)}
  .period-card{border-left:0;padding:0}
}

/* Radar playback controls wrap alongside the observation timestamp. */
.map-toolbar>div{align-items:center;flex-wrap:wrap}
.radar-speed{display:flex;align-items:center;gap:7px}
.radar-speed select{width:auto;margin:0;min-height:36px;padding:6px 8px}
@media(max-width:680px),(pointer:coarse){.radar-speed select{min-height:44px}}
/* Preferred weather units, with a quieter equivalent alongside. */
.unit-preferences{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin:-8px 0 24px}
.unit-preferences label{font-size:12px;min-width:220px}.unit-preferences select{margin-top:6px}
.unit-preferences p{margin:0;max-width:520px}
.unit-secondary{font-size:.72em;font-weight:400;color:var(--muted);white-space:nowrap}
.daily-temperatures{grid-template-columns:1fr;gap:6px}
.daily-temperatures strong{font-size:25px}
.daily-temperatures .unit-secondary{font-size:.6em}
.timeline-rate .unit-secondary{font-size:.9em}
.temperature-value .unit-secondary,.temperature-axis .unit-secondary{font-size:.75em}
.daily-chart svg{min-width:760px}
@media(max-width:680px){.unit-preferences label{width:100%;min-width:0}}

.address-actions{display:flex;align-items:end;gap:12px;margin-top:12px}
.address-actions label{flex:1;min-width:0}
.address-actions button{min-height:44px;justify-content:center;white-space:nowrap}
.address-coverage{margin-top:12px}
.address-results{list-style:none;padding:0;margin:12px 0;max-height:260px;overflow:auto}
.address-result{display:block;width:100%;padding:12px;text-align:left;margin:6px 0;overflow-wrap:anywhere}
.address-result strong,.address-result span{display:block}
.address-result span{color:var(--muted);margin-top:5px;font-size:10px}
.location-alternatives{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.location-alternatives select{margin-top:6px}
#address-street,#address-zip{font-size:16px}
.satellite-panel{padding:24px;margin-top:24px}
.satellite-panel .panel-heading{flex-wrap:wrap}
.satellite-controls{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:16px}
.satellite-enhancement{grid-column:1/-1;display:flex;align-items:center;gap:9px}
.satellite-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.satellite-toolbar label{display:flex;align-items:center;gap:8px}
.satellite-toolbar select{width:auto;margin:0;min-height:36px}
.satellite-image-area{position:relative;background:#080c0a;display:flex;justify-content:center;border:1px solid var(--line)}
#satellite-status{min-height:1.6em}
.satellite-preload{margin:8px 0 16px}
.satellite-preload label{display:block;min-height:2.8em}
.satellite-preload progress{display:block;width:100%;height:8px;accent-color:var(--mint)}
.satellite-viewport{width:min(100%,850px);aspect-ratio:1}
#satellite-image{display:block;width:100%;height:auto;border-radius:2px}
#satellite-image-status{position:absolute;left:12px;right:12px;top:0;z-index:3;pointer-events:none;background:#101917e8;padding:8px}
#satellite-image-status:empty{display:none}
.satellite-timeline{margin-top:16px}
.satellite-timeline label{display:flex;justify-content:space-between;gap:12px}
@media(max-width:680px){.satellite-panel{padding:16px}.satellite-controls{grid-template-columns:1fr}.satellite-toolbar select{min-height:44px}}
