/* Legible, equal-height event panels. Preserve the existing maps and palette. */
.station-label{font-size:18px}
.rain-map-wrap{isolation:isolate}.rain-tooltip{z-index:5}
.app-shell{height:100dvh;min-height:0;padding:12px;gap:14px;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);align-items:stretch;max-width:none}
.animation-column{display:grid;grid-template-rows:48px minmax(0,1fr) auto;min-height:0;width:100%;max-width:none;justify-self:stretch;background:#071323;border:1px solid var(--border);border-radius:16px;overflow:hidden}
.storm-selector{margin:0;gap:5px;border-bottom:1px solid var(--border)}.storm-button{min-height:0;border-radius:8px 8px 0 0;font-size:15px;border-top:0;letter-spacing:.015em}
.viewer{height:100%;width:100%;max-height:none;aspect-ratio:auto;border:0;border-radius:0;display:grid;place-items:center;background:#020b18}
.scene{position:relative;flex:none;overflow:hidden}#frame-image{object-fit:fill}.map-reference{width:128px;left:12px;bottom:12px}.north-arrow{height:46px;width:30px}
.playback-panel{border:0;border-top:1px solid var(--border);padding:14px;border-radius:0;background:none}.controls{grid-template-columns:140px 110px minmax(40px,1fr) 155px;gap:8px}.control{font-size:14px;height:44px}.speed-control{font-size:13px;height:44px}.speed-control select{font-size:15px}
.date-time{font-size:23px}.date-time small{font-size:14px;margin-top:2px}.mode-badge{font-size:14px}#storm-intensity{font-size:23px;margin:9px 0}.track-legend{font-size:14px;gap:6px 14px}.track-legend i{width:9px;height:9px}.capture-details{font-size:14px;margin-top:10px}
.information-column{height:100%;min-height:0;border-radius:16px;padding:16px;gap:12px;display:grid;grid-template-rows:minmax(0,1fr) auto auto}
.rain-panel{min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;align-content:start}.rain-heading h1{margin:0;font-size:28px}.map-tools{display:flex;gap:6px}.map-tools button{background:#142a42;color:#eaf3ff;border:1px solid #526a84;border-radius:6px;width:34px;height:34px;font-size:22px;padding:0}.map-tools button:hover{background:#294865}
.rain-period{margin:6px 0 2px;font-size:14px;line-height:1.4}.rain-map-wrap{height:auto;min-height:0;max-height:none;overflow:hidden;margin:6px 0 0}#rain-map{width:100%;height:100%;max-height:none;overflow:hidden;touch-action:none;cursor:grab}#rain-map:active{cursor:grabbing}
#rain-legend{height:67px;width:100%;max-height:none;overflow:visible}.rain-context{display:grid;gap:5px;margin-top:4px}.rain-source,.rain-caveat,.station-status{font-size:14px;line-height:1.4;margin:0;text-align:left;color:#c4d2e3}.rain-caveat{color:#e1eaf5}.station-key{display:flex;flex-wrap:wrap;gap:4px 17px;font-size:14px;line-height:1.4;margin:0;color:#f5f7fa}.partial-key{color:#ffdc94}.missing-key{color:#d6dbe2}.station-status{color:#adbed4}.rain-review{color:#ffdc94;font-size:14px;line-height:1.4;margin:0}.rain-review button{border:0;background:none;color:inherit;text-decoration:underline;text-underline-offset:3px;padding:0;font:inherit}
.station-symbol{fill:#061729;stroke:#fff;stroke-width:1.5}.gauge-point.partial .station-symbol{stroke:#ffd27c;fill:#13243c}.gauge-point.missing .station-symbol{stroke:#bbc6d6;fill:#293747}.station-label{fill:white;stroke:#061527;stroke-width:3;paint-order:stroke fill;font-weight:750;pointer-events:none}.gauge-point.partial .station-label{fill:#ffdf9e}.gauge-point.missing .station-label{fill:#d1d7df}.station-line{stroke-width:.9;stroke:#e9f1fc;stroke-dasharray:none;opacity:.7}.station-hit{fill:transparent;cursor:pointer}.gauge-point:focus{outline:none}.gauge-point:focus .station-symbol,.gauge-point:hover .station-symbol{stroke:#fff;stroke-width:3}
.municipality-name{stroke-width:2;stroke-opacity:.9}.rain-tooltip{pointer-events:none;width:max-content;max-width:min(355px,calc(100% - 12px));font-size:15px;line-height:1.45;padding:12px 14px;box-shadow:0 4px 24px #0008}.rain-tooltip.locked{pointer-events:auto}.rain-tooltip strong{font-size:17px;margin-bottom:4px}.rain-tooltip a{display:block;margin-top:7px}.rain-tooltip button{float:right;border:0;background:none;color:white;font-size:20px;padding:0 0 4px 12px}.rain-tooltip small{display:block;color:#c5d1df;font-size:14px;margin-top:4px}
.storm-summary{padding:14px 12px;margin:0}.storm-metrics{grid-template-columns:1fr 1fr 1fr 1.18fr;gap:0}.storm-metrics>div{padding:0 12px;border-left:1px solid #3a5067}.storm-metrics>div:first-child{border:0;padding-left:0}.storm-metrics>div:last-child{padding-right:0}.storm-metrics dd{font-size:30px;line-height:1.2;white-space:nowrap}.storm-metrics dt{font-size:14px;line-height:1.3;min-height:0;margin:0 0 6px}.metric-unit{font-size:.6em;font-weight:550;color:#d5e4f3}#position-info{font-size:20px;white-space:normal;padding:0;line-height:1.4}.coordinate-line{display:block}
.panel-notes{display:grid;grid-template-columns:1.15fr 1fr 1.05fr;gap:8px;border-top:0;padding-top:10px}.note-open{width:100%;background:#0c1e33;color:#d6e5f6;border:1px solid #354b64;border-radius:7px;text-align:left;padding:10px 12px;font-size:14px;line-height:1.4;display:flex;justify-content:space-between;align-items:center;gap:8px}.note-open span{color:#a7c5eb;flex:none}.note-open:hover{color:white;background:#18344f}
#notes-dialog{width:min(920px,calc(100vw - 48px));max-height:calc(100dvh - 48px);margin:auto;border:1px solid #5b789a;border-radius:14px;padding:26px;background:#0a1b30;color:#eaf0f8;box-shadow:0 15px 70px #0009;overflow:auto}#notes-dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}#notes-dialog header{display:flex;justify-content:space-between;gap:20px;align-items:center}#notes-dialog h2{margin:0;font-size:25px}#notes-dialog h3{font-size:21px;margin:18px 0 5px}#notes-dialog p{font-size:17px;line-height:1.65;margin:14px 0}#notes-dialog header button{background:none;border:0;color:white;font-size:25px}#notes-dialog footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #36516f;padding-top:15px;margin-top:20px}#notes-dialog footer button{background:#193551;color:#eaf3ff;border:1px solid #476589;padding:9px 15px;border-radius:7px;font-size:15px}#notes-dialog button:disabled{opacity:.35;cursor:default}#notes-page{font-size:14px;color:#c5d4e6}
@media(min-width:1551px){.rain-period,.rain-source,.rain-caveat,.station-status,.station-key,.rain-review,.note-open,.storm-metrics dt{font-size:16px}.track-legend,.capture-details,.date-time small{font-size:15px}.rain-context{gap:5px}.note-open{padding:10px 12px}.storm-metrics dt{margin-bottom:7px}}
@media(min-width:1000px) and (max-width:1550px){.station-label{font-size:18px}#rain-legend text{font-size:19px}.rain-north text{font-size:34px}}
@media(min-width:1000px) and (max-width:1550px){.app-shell{padding:9px;gap:10px}.information-column{padding:12px;gap:10px}.controls{grid-template-columns:130px 100px 1fr;gap:7px}.speed-control{grid-column:3}.scrubber-wrap{grid-column:1/-1;grid-row:2;margin-top:3px}.date-time{font-size:20px}.storm-button{font-size:14px}.track-legend{font-size:13px;gap:5px 11px}.storm-metrics dd{font-size:26px}.storm-metrics>div{padding:0 8px}.storm-metrics dt{font-size:14px;min-height:36px}#position-info{font-size:17px}.panel-notes{gap:6px}.note-open{font-size:14px;padding:8px}.rain-heading h1{font-size:25px}}
@media(min-width:1000px) and (max-height:800px){.information-column{gap:8px;padding:12px}.playback-panel{padding:12px}.timeline-meta{margin-top:8px}#storm-intensity{margin:6px 0;font-size:21px}.capture-details{margin-top:7px}.rain-map-wrap{margin-top:0}.rain-period{margin-top:4px}.rain-context{gap:3px}.storm-summary{padding:11px 10px}.panel-notes{padding-top:8px}.note-open{padding:8px}.rain-heading h1{font-size:25px}}
@media(max-width:999px){.app-shell{height:auto;min-height:100dvh;grid-template-columns:1fr;max-width:950px;gap:12px}.animation-column{grid-template-rows:48px auto auto}.viewer{height:auto;aspect-ratio:8/5}.information-column{height:auto;min-height:0}.rain-map-wrap{height:auto;aspect-ratio:1000/340;min-height:235px}.rain-panel{grid-template-rows:auto auto auto auto auto}.storm-metrics dd{font-size:27px}.rain-heading h1{font-size:25px}}
@media(max-width:620px){.app-shell{padding:7px}.controls{grid-template-columns:1fr 1fr 1fr}.scrubber-wrap{grid-row:2;grid-column:1/-1}.control,.speed-control{font-size:13px}.storm-button{font-size:12px;padding:4px}.information-column{padding:12px}.storm-metrics{grid-template-columns:1fr 1fr;gap:12px}.storm-metrics>div{padding:0;border:0}.storm-metrics dt{min-height:0}.panel-notes{grid-template-columns:1fr}.rain-heading h1{font-size:24px}.rain-map-wrap{min-height:210px}.station-key{column-gap:10px}.rain-period,.rain-source,.rain-caveat,.station-status,.station-key{font-size:13px}.date-time{font-size:19px}.track-legend{font-size:13px}#notes-dialog{padding:18px;width:calc(100vw - 20px)}#notes-dialog p{font-size:16px}#notes-dialog h2{font-size:22px}}
.station-line-halo{fill:none;stroke:#061527;stroke-width:4;stroke-linecap:round;pointer-events:none}.station-line{fill:none;stroke:#fff;stroke-width:1.7;stroke-dasharray:none;stroke-linecap:round;opacity:1;pointer-events:none}
.rain-period span{display:block}.rain-context{padding-top:2px}
.rain-panel{grid-template-rows:auto auto minmax(0,1fr) auto}
.rain-cartography{min-height:0;display:flex;flex-direction:column;justify-content:center}
.rain-map-wrap{flex:0 1 auto;aspect-ratio:1000/300;min-height:0;height:auto;margin:0}
#rain-legend{flex:0 0 67px}
.storm-metrics{grid-template-columns:1fr 1fr 1fr 1.7fr}
.storm-metrics dd,#position-info{font-size:clamp(18px,1.65vw,30px);line-height:1.2;white-space:nowrap}
#position-info .coordinate-line{display:inline}
#storm-intensity{display:flex;align-items:center;gap:8px}
#storm-intensity::before{content:"";display:block;width:9px;height:9px;flex:0 0 9px;margin:0;border-radius:50%;background:currentColor}
@media(max-width:999px){.rain-cartography{height:auto}.rain-panel{grid-template-rows:auto auto auto auto}.rain-map-wrap{height:auto;min-height:0}.storm-metrics{grid-template-columns:1fr 1fr}.storm-metrics dd,#position-info{font-size:clamp(19px,3.7vw,30px)}}
/* Secondary interface text only. Preserve municipal labels and map geometry. */
.rain-period,.station-status,.date-time small,.capture-details,.storm-metrics dt,.note-open{color:#dce7f3}
.rain-period,.station-status,.date-time small,.capture-details{font-size:15px}
.speed-control{font-size:14px;font-weight:650;color:#fff}
.speed-control span,.speed-control select{font:inherit;color:inherit}
@media(min-width:1551px){.rain-period,.station-status{font-size:17px}.date-time small,.capture-details{font-size:16px}}
