:root{--navy:#102a38;--navy-deep:#0d2430;--text:#18303e;--muted:#798995;--faint:#97a5ad;--line:#e5ebee;--panel:#fff;--bg:#f3f6f7;--teal:#21ae9c;--teal-dark:#148877;--blue:#4c8ec2;--orange:#e8a84d;--radius:16px;--shadow:0 2px 16px rgba(22,51,63,.025)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,a{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.icon{height:19px;width:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-sprites{position:absolute;width:0;height:0;overflow:hidden}.app-shell{display:flex;min-height:100vh}.sidebar{width:246px;flex-shrink:0;background:var(--navy-deep);color:#d2e0e5;min-height:100vh;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:30px 17px 22px;z-index:1001}.brand{display:flex;align-items:center;gap:12px;padding:2px 11px 37px;color:white}.brand-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(140deg,#41c6ad,#159eae);box-shadow:0 8px 18px rgba(4,156,151,.2)}.brand-mark .icon{height:24px;width:24px;stroke-width:2}.brand strong{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:.7px;font-size:17px;line-height:1.2;display:block}.brand-accent{color:#38c9b1;padding:0 2px}.brand small{display:block;font-size:9px;letter-spacing:3px;font-weight:700;color:#91b5be;margin-top:3px}.nav-eyebrow{font-size:10px;letter-spacing:2px;color:#6e91a1;font-weight:700;padding:0 17px 13px}.side-nav{display:grid;gap:5px}.nav-link{display:flex;align-items:center;gap:13px;padding:13px 15px;border-radius:9px;color:#a8bdc5;font-weight:600;font-size:13px;transition:background .2s,color .2s}.nav-link:hover{background:#173744;color:white}.nav-link.active{background:#214453;color:#fff;box-shadow:inset 3px 0 #33c7ae}.nav-link.active .icon{color:#55dbc5}.nav-link .icon{height:17px;width:17px}.nav-count{margin-left:auto;font-size:10px;background:#24414c;color:#b7d1d9;border-radius:5px;min-width:23px;padding:2px 5px;text-align:center}.sidebar-bottom{margin-top:auto}.network-panel{background:#163543;border:1px solid #294955;padding:18px 15px;border-radius:13px;margin:20px 2px 24px}.network-heading{display:flex;align-items:center;gap:8px;color:#8db9c3;font-size:10px;letter-spacing:1.4px;font-weight:800}.pulse-dot{width:7px;height:7px;border-radius:50%;background:#43d3b5;box-shadow:0 0 0 4px rgba(67,211,181,.12)}.network-panel strong{display:block;font-size:15px;margin-top:14px;color:#fff}.network-panel p{font-size:10px;line-height:1.6;color:#8ca9b6;margin:5px 0 0}.sidebar-credit{color:#688998;font-size:10px;line-height:1.9;letter-spacing:.4px;padding:0 12px}.content-shell{flex:1;min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid #e8edef;display:flex;align-items:center;justify-content:space-between;padding:0 39px}.top-left,.top-actions{display:flex;align-items:center;gap:13px}.top-left{color:#91a0a8;font-size:12px}.top-left strong{color:#293e4b;font-weight:700}.tiny-chevron{height:12px;width:12px;stroke:#a6b4bb}.date-label{color:#6f8490;font-size:12px}.vertical-rule{width:1px;height:24px;background:#e4ecef;margin:0 9px}.top-user{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#27675e;background:#e0f4ef;font-size:12px;font-weight:800}.mobile-menu{display:none}.main-content{max-width:1740px;margin:0 auto;padding:37px 40px 22px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:27px}.eyebrow,.section-kicker{font-size:10px;letter-spacing:1.9px;font-weight:800;color:#8297a1}.eyebrow{display:flex;align-items:center;gap:9px;color:#318d85;margin-bottom:13px}.eyebrow-line{width:19px;height:2px;background:#24b59e}h1,h2,p{margin-top:0}h1,h2{font-family:Manrope,sans-serif}h1{font-size:clamp(27px,3vw,36px);line-height:1.23;letter-spacing:-1.5px;font-weight:800;margin-bottom:9px}h1 em{color:#31a994;font-style:normal}.page-heading p{color:#788d98;font-size:13px;margin:0}.page-tools{display:flex;align-items:center;gap:9px;margin-bottom:3px}.mode-switch{display:flex;border:1px solid #dce5e8;border-radius:8px;background:#fff;padding:4px;white-space:nowrap}.mode{padding:9px 13px;border:0;border-radius:5px;background:transparent;color:#7b8e98;font-weight:700;font-size:11px}.mode.active{background:#e5f6f2;color:#0f8273}.action-button{background:#173e4b;border:1px solid #173e4b;color:white;padding:11px 14px;border-radius:8px;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;box-shadow:0 4px 9px rgba(16,53,67,.07)}.action-button .icon{width:15px;height:15px}.action-button:hover{background:#24586a}.action-button:disabled{opacity:.5;cursor:wait}.status-strip{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#eaf2f3;border:1px solid #dfebed;color:#667f88;padding:10px 16px;border-radius:8px;font-size:11px;margin-bottom:17px}.status-strip>div{display:flex;align-items:center;gap:8px}.status-strip strong{color:#3d6970;font-weight:700}.status-dot{width:7px;height:7px;display:inline-block;background:#e6a75a;border-radius:50%;box-shadow:0 0 0 3px rgba(230,167,90,.12)}.status-dot.ok{background:#28b49e;box-shadow:0 0 0 3px rgba(40,180,158,.12)}.status-dot.error{background:#df8661}.strip-separator{color:#a8bdc5}.strip-right{color:#809aa3}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:19px}.metric-card,.panel{background:var(--panel);border:1px solid #e6ecef;border-radius:var(--radius);box-shadow:var(--shadow)}.metric-card{min-height:156px;padding:20px 21px 16px}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.metric-top>span:first-child{color:#8b9da6;font-size:10px;letter-spacing:1.2px;font-weight:800}.metric-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:11px}.metric-icon .icon{height:18px;width:18px}.metric-icon.blue{background:#eaf3f9;color:#408bbb}.metric-icon.mint{background:#e6f7f2;color:#22a78e}.metric-icon.amber{background:#fff4e5;color:#df9b40}.metric-icon.slate{background:#eaf0f2;color:#52788a}.metric-value{display:flex;align-items:baseline;gap:9px;margin:12px 0 9px}.metric-value strong{font-family:Manrope,sans-serif;font-size:31px;line-height:1.1;letter-spacing:-1.3px;font-weight:800;font-variant-numeric:tabular-nums}.metric-value span{font-size:11px;color:#8799a2}.metric-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#91a0a8;font-size:10px}.metric-tag{white-space:nowrap;background:#f1f6f6;border-radius:5px;color:#678892;padding:5px 7px;font-weight:700;font-size:9px}.workspace-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr);gap:18px;margin-bottom:19px;scroll-margin-top:12px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 23px 20px}.section-kicker{font-size:9px;letter-spacing:1.65px;margin-bottom:6px}.panel h2,.source-title h2{font-size:17px;letter-spacing:-.55px;font-weight:800;margin:0;line-height:1.25}.map-heading-tools{display:flex;align-items:center;gap:18px}.map-legend{color:#8a9ca5;font-size:10px;display:flex;align-items:center;gap:7px}.map-legend i,.legend-swatch{width:8px;height:8px;border-radius:50%;background:#2cbbac}.subtle-button{background:transparent;border:0;color:#2e9c91;font-size:11px;font-weight:800;padding:7px 0}.subtle-button:hover{text-decoration:underline}.map-wrap{height:360px;margin:0 16px;position:relative;border-radius:11px;overflow:hidden;background:#e8f0ed}.map-wrap:before{content:'';position:absolute;inset:0;background:linear-gradient(155deg,#e5eee9,#d5e4e2);pointer-events:none}.map-wrap #map{height:100%;z-index:1}.map-fallback{display:grid;place-content:center;height:100%;text-align:center;color:#7d989c;font-size:12px;line-height:1.8}.map-overlay{position:absolute;left:16px;top:15px;z-index:500;box-shadow:0 2px 15px #1c4d4d1c;background:#fff;color:#667e87;display:flex;align-items:center;gap:8px;border:1px solid #e4eeec;border-radius:6px;padding:9px 12px;letter-spacing:1.1px;font-size:9px;font-weight:800;pointer-events:none}.layer-dot{height:6px;width:6px;background:#2abb9f;border-radius:50%}.map-overlay-rule{height:11px;width:1px;background:#d9e4e6}.station-tabs{display:flex;gap:7px;padding:15px 17px 17px;flex-wrap:wrap}.station-chip{display:flex;align-items:center;gap:7px;border-radius:8px;border:1px solid #e2ebed;color:#657e89;background:#fff;padding:8px 10px;font-size:10px;font-weight:700}.station-chip:hover,.station-chip.selected{background:#e6f7f2;border-color:#b7e9dd;color:#178c79}.station-dot{width:7px;height:7px;border-radius:50%;display:block}.station-dot.tide{background:#3d9aca}.station-dot.river{background:#3cbca2}.right-stack{display:flex;flex-direction:column;gap:17px;min-width:0}.station-detail{padding-bottom:14px}.panel-heading.compact{padding:21px 22px 8px}.source-pill{background:#e9f3fa;color:#4382a7;padding:6px 8px;border-radius:5px;font-size:10px;font-weight:800}.station-type{color:#91a0a8;padding:0 22px 17px;font-size:11px}.reading-box{margin:0 21px 15px;padding:15px 17px 13px;border-radius:10px;background:#f4f8f8;border:1px solid #e7eeef}.reading-label{font-size:10px;letter-spacing:.3px;color:#8ca0aa;font-weight:700}.reading-big{display:flex;align-items:baseline;gap:9px;margin:4px 0}.reading-big strong{font:800 32px Manrope,sans-serif;letter-spacing:-1px}.reading-big span{font-size:11px;color:#8097a2}.reading-box p{font-size:10px;line-height:1.5;color:#8297a0;margin:3px 0 0}.station-meta{display:flex;justify-content:space-between;align-items:center;margin:0 22px;padding:8px 0;border-bottom:1px solid #f0f3f4;font-size:10px}.station-meta span{color:#8b9ca5}.station-meta strong{color:#5a707a;font-weight:800}.source-link{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#169a87;font-size:11px;font-weight:800;margin:14px 22px 0}.source-link:hover{text-decoration:underline}.source-link .icon{width:14px;height:14px}.brief-panel{border-radius:var(--radius);background:linear-gradient(128deg,#143d49 0%,#102f3c 90%);color:white;position:relative;overflow:hidden;padding:19px 22px 16px;min-height:201px;box-shadow:0 6px 15px #143c4810}.brief-panel:after{content:'';width:250px;height:250px;border:1px solid #5cc3b228;border-radius:50%;position:absolute;right:-135px;top:-120px;box-shadow:0 0 0 28px #39b5a607,0 0 0 56px #39b5a607;pointer-events:none}.brief-header{display:flex;align-items:center;gap:11px;position:relative;z-index:1}.brief-symbol{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#1e6d68;color:#7af0cf}.brief-symbol .icon{width:16px;height:16px}.section-kicker.light{color:#79b9bb}.brief-header h2{font-size:15px;color:#fff}.brief-beta{margin-left:auto;color:#75d8bd;background:#20534f;border-radius:5px;padding:5px 7px;font-size:8px;letter-spacing:1px;font-weight:800}.brief-panel>p{font-size:12px;line-height:1.75;color:#c2d9de;margin:13px 0 9px;position:relative;z-index:1;min-height:52px}.brief-actions{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.brief-actions button{color:#7ae1cb;background:transparent;border:0;font-weight:800;font-size:10px;padding:6px 0}.brief-actions button span{margin-left:5px}.brief-actions button:hover{color:white}.brief-actions .icon{width:15px;height:15px}.brief-footnote{font-size:9px;color:#739ba5;line-height:1.4;border-top:1px solid #2d5962;margin-top:10px;padding-top:9px}.bottom-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,1fr);gap:18px;margin-bottom:35px;scroll-margin-top:16px}.heading-suffix{font-family:'DM Sans',sans-serif;color:#a7b4bb;font-size:11px;font-weight:600;letter-spacing:0}.period-group{background:#f3f6f7;padding:3px;border-radius:7px;display:flex}.period{background:transparent;border:0;color:#8b9aa2;padding:8px 11px;border-radius:5px;font-size:10px;font-weight:800}.period.active{background:white;color:#178e80;box-shadow:0 1px 5px #183e4c12}.chart-stat{display:flex;justify-content:space-between;align-items:center;padding:0 22px;margin:0 0 5px;color:#8a9ea7;font-size:10px}.small-data-badge{font-size:9px;color:#75919c;background:#f1f6f6;padding:5px 7px;border-radius:4px}.chart-area{margin:0 12px;position:relative;height:247px}.chart-area svg{width:100%;height:100%;overflow:visible;touch-action:pan-y}.chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9baab2;font-size:12px;text-align:center;pointer-events:none}.chart-tooltip{position:absolute;background:#173d49;border-radius:7px;color:#fff;line-height:1.6;font-size:10px;padding:8px 10px;box-shadow:0 4px 15px #0b2b3e30;pointer-events:none;z-index:2;transform:translate(-50%,-115%);white-space:nowrap}.hidden{display:none!important}.chart-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #edf2f3;margin:0 22px;padding:15px 0 17px;color:#8296a0;font-size:10px}.chart-foot>span:first-child{display:flex;align-items:center;gap:7px}.legend-swatch{background:#22b5a5}.muted{color:#abb9be}.alerts-panel{display:flex;flex-direction:column;scroll-margin-top:12px}.alert-status{font-size:9px;font-weight:800;color:#82959d;background:#f1f5f6;border-radius:5px;padding:6px 8px;white-space:nowrap}.alert-status.clear{background:#e4f7f0;color:#15947e}.alert-status.warning{background:#fff0dc;color:#c6802d}.forecast-summary{background:#f4f8f8;border-radius:9px;margin:0 20px;padding:15px;display:flex;align-items:flex-start;gap:13px}.forecast-icon{width:39px;height:39px;background:#e3f0f4;color:#468eab;border-radius:10px;display:grid;place-items:center;flex-shrink:0}.forecast-icon .icon{width:22px;height:22px}.forecast-overline{display:block;color:#91a2ac;font-size:9px;font-weight:800;letter-spacing:1.1px;margin-bottom:5px}.forecast-summary strong{display:block;font-size:13px;font-weight:800;color:#314d59}.forecast-summary p{margin:5px 0 0;font-size:11px;color:#869ba4;line-height:1.5}.alerts-list{padding:14px 20px 0;flex:1}.no-alerts{border:1px dashed #dae5e8;border-radius:8px;padding:14px;color:#8097a0;font-size:11px;line-height:1.5}.alert-item{display:flex;gap:10px;padding:12px;border:1px solid #f1dfca;border-radius:8px;margin-bottom:8px;background:#fffbf5}.alert-item .icon{color:#d49a42;width:17px;height:17px}.alert-item strong{font-size:11px;color:#795a30}.alert-item p{font-size:10px;color:#9b8367;margin:4px 0 0;line-height:1.5}.alerts-panel>.source-link{margin-top:auto;margin-bottom:19px}.source-section{scroll-margin-top:25px}.source-title{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}.source-title h2{font-size:19px}.source-title p{font-size:11px;color:#899ca5;margin:0}.source-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.source-card{border:1px solid #e6ecef;background:white;display:flex;gap:12px;align-items:center;padding:17px;border-radius:11px;min-width:0}.source-card:hover{border-color:#b8dedb;box-shadow:0 4px 16px #1d5c5910}.agency-icon{width:34px;height:34px;flex-shrink:0;display:grid;place-items:center;border-radius:8px;font-family:Manrope;font-size:15px;font-weight:800}.agency-icon.noaa{background:#ddecf6;color:#3689b8}.agency-icon.usgs{background:#e6f1e1;color:#6c995e}.agency-icon.nws{background:#f9ebd9;color:#ca923f}.source-card>div{min-width:0;flex:1}.source-card strong{color:#47616c;font-size:11px;letter-spacing:.2px}.source-card p{color:#92a1aa;font-size:10px;margin:4px 0 6px;line-height:1.5}.source-card>.icon{height:14px;width:14px;color:#a9b9be;align-self:flex-start}.source-state{font-size:9px;color:#8fa3aa;font-weight:800}.source-state.online{color:#1da990}.source-state.offline{color:#c98b5d}.site-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #e0e8eb;margin-top:29px;padding-top:17px;color:#9aabb2;font-size:10px;line-height:1.6}.leaflet-container{background:#dfebe8;font:inherit}.leaflet-control-attribution{font-size:9px!important}.leaflet-control-zoom{border:0!important;box-shadow:0 3px 12px #2b526324!important}.leaflet-control-zoom a{color:#366b74!important}.custom-marker{background:transparent;border:none}.marker-pulse{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;border:6px solid rgba(45,161,195,.17);background:#fff;box-shadow:0 2px 7px #254d5b40}.marker-core{width:13px;height:13px;display:block;background:#3e91bd;border:2px solid white;border-radius:50%;box-shadow:0 1px 4px #0004}.marker-pulse.river{border-color:#2ab49e33}.marker-pulse.river .marker-core{background:#1baa92}.marker-pulse.selected{width:35px;height:35px;border-width:7px;box-shadow:0 0 0 5px #2dcab41d,0 2px 12px #1c666b66}.marker-pulse.selected .marker-core{width:16px;height:16px}.leaflet-popup-content-wrapper{border-radius:10px!important;box-shadow:0 5px 20px #23485425!important}.leaflet-popup-content{font-size:11px!important;line-height:1.6!important}.map-popup-title{font-weight:800;font-size:12px}.map-popup-meta{color:#829aa3}.icon-button{border:none;background:none;color:#416b77}
@media(max-width:1400px){.sidebar{width:225px}.main-content{padding:32px 26px 20px}.topbar{padding:0 25px}.metric-card{padding:17px 16px}.metric-top>span:first-child{font-size:9px}.metric-value strong{font-size:27px}.metric-bottom{flex-wrap:wrap}.map-wrap{height:470px}.workspace-grid{grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr)}.bottom-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr)}}
@media(max-width:1120px){.sidebar{width:205px;padding-left:11px;padding-right:11px}.brand{padding-left:8px}.main-content{padding:28px 22px}.metric-grid{grid-template-columns:repeat(2,1fr)}.workspace-grid,.bottom-grid{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:1fr 1fr}.map-wrap{height:350px}.source-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.source-card{padding:12px;gap:8px}.source-card p{font-size:9px}}
@media(max-width:750px){.sidebar{position:fixed;transform:translateX(-100%);transition:transform .2s ease;width:248px;box-shadow:0 0 25px #122d381f}.sidebar.open{transform:translateX(0)}.mobile-menu{display:block;font-size:19px;padding:7px 8px}.topbar{height:60px;padding:0 14px}.top-left{gap:7px}.top-actions .date-label{display:none}.vertical-rule{display:none}.main-content{padding:25px 14px}.page-heading{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:19px}.page-tools{width:100%;justify-content:space-between}.status-strip{align-items:flex-start}.status-strip>div{flex-wrap:wrap}.strip-right{display:none}.metric-grid{gap:10px;margin-bottom:12px}.metric-card{padding:14px;min-height:133px;border-radius:12px}.metric-top>span:first-child{font-size:8px;letter-spacing:.6px}.metric-icon{width:28px;height:28px;border-radius:8px}.metric-icon .icon{height:15px;width:15px}.metric-value{gap:4px;flex-direction:column;margin:8px 0 7px}.metric-value strong{font-size:26px}.metric-value span{font-size:9px}.metric-bottom{font-size:9px}.metric-tag{font-size:8px}.panel-heading{padding:19px 15px 15px;align-items:flex-start}.panel h2{font-size:15px}.map-heading-tools{flex-direction:column;align-items:flex-end;gap:3px}.map-legend{font-size:9px}.map-wrap{height:340px;margin:0 10px}.station-tabs{padding:12px 10px}.right-stack{display:flex;gap:12px}.workspace-grid,.bottom-grid{gap:12px;margin-bottom:12px}.source-section{margin-top:27px}.source-title{flex-direction:column;align-items:flex-start;gap:8px}.source-grid{grid-template-columns:1fr}.source-card{padding:15px}.source-card p{font-size:10px}.site-footer{flex-direction:column;gap:4px}.heading-suffix{display:block;margin-top:4px}.chart-foot{flex-direction:column;align-items:flex-start}.chart-area{height:225px}.period{padding:8px}.forecast-summary{margin:0 12px}.alerts-list{padding:12px}.alerts-panel>.source-link{margin:12px 15px 18px}.brief-panel{min-height:0}h1{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Napa OneRain public gauge panels */
.onerain-section{margin:31px 0 35px;scroll-margin-top:24px}.onerain-intro{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:15px}.onerain-intro h2{font-size:21px;letter-spacing:-.6px;margin:7px 0}.onerain-intro p{font-size:12px;color:var(--muted);margin:0;line-height:1.7}.onerain-status{flex-shrink:0;font-size:10px;font-weight:800;background:#e7f1f3;color:#547b86;padding:9px 12px;border-radius:30px}.onerain-status.online{background:#e2f6ee;color:#14866d}.onerain-status.offline{background:#fff0e9;color:#a35840}.onerain-caution{display:flex;align-items:flex-start;gap:10px;background:#fff8ea;border:1px solid #efdfb9;color:#806944;border-radius:11px;padding:13px 16px;font-size:11px;line-height:1.65;margin-bottom:17px}.onerain-caution .icon{width:17px;height:17px;flex-shrink:0;margin-top:1px}.onerain-grid{display:grid;grid-template-columns:minmax(0,1.17fr) minmax(0,1fr);gap:18px;align-items:start}.rain-right-stack{display:grid;gap:18px}.rain-panel,.rain-detail,.level-panel{min-width:0}.rain-count{font-size:10px;color:#7c939d;font-weight:700;white-space:nowrap}.rain-controls{margin:0 22px 17px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rain-controls label{font-weight:700;color:#6d858f;font-size:10px}.rain-controls select{border:1px solid #d7e3e7;background:#f8fbfb;border-radius:7px;padding:8px 11px;font:700 11px 'DM Sans',sans-serif;color:#264753;min-width:115px}.rain-controls span{font-size:10px;color:#92a2a9;margin-left:auto}.rain-bar-list{padding:0 22px 7px;display:grid;gap:5px}.rain-row{width:100%;border:1px solid transparent;background:transparent;padding:10px 11px;border-radius:9px;display:block;text-align:left;color:#395260}.rain-row:hover{background:#f4f9f8}.rain-row.selected{background:#eaf7f3;border-color:#b7e2d7}.rain-row-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;font-weight:700}.rain-row-top strong{font-family:Manrope,sans-serif;font-size:12px;color:#174d51;white-space:nowrap}.rain-row.warn .rain-row-top strong{color:#a7774f}.rain-track{background:#e9eff0;height:6px;margin-top:9px;border-radius:6px;overflow:hidden}.rain-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#70cfc2,#169b92);min-width:0}.rain-row.warn .rain-fill{background:#c1a981}.rain-row-meta{font-size:9px;color:#a2aeb4;margin-top:5px}.rain-more{display:block;margin:9px auto 20px;background:#f2f7f7;border:1px solid #dfebeb;border-radius:7px;padding:9px 16px;font-size:11px;font-weight:700;color:#2a827b}.rain-more:hover{background:#e2f5f1}.rain-more:disabled{opacity:.45;cursor:default}.rain-empty{font-size:12px;color:#879da5;line-height:1.6;padding:12px 0}.rain-detail .panel-heading,.level-panel .panel-heading{padding-bottom:12px}.rain-feature{margin:0 21px;background:linear-gradient(135deg,#eff9f6,#eef7fa);border:1px solid #e0efeb;border-radius:12px;padding:17px 19px}.rain-feature>span{font-size:10px;font-weight:700;color:#6c8c91}.rain-feature>div{display:flex;align-items:baseline;gap:9px;margin-top:8px}.rain-feature strong{font:800 32px Manrope,sans-serif;color:#176a67;letter-spacing:-1px}.rain-feature div span{font-size:11px;color:#7c949e}.rain-mini-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:15px 21px}.rain-mini-stats div{border-right:1px solid #e8edee;display:grid;gap:7px}.rain-mini-stats div:last-child{border:0}.rain-mini-stats span{font-size:10px;color:#8ca0a8}.rain-mini-stats strong{font:800 17px Manrope,sans-serif;color:#2e5962}.rain-quality{font-size:10px;color:#8d8c76;margin:0 21px 12px}.rain-detail .source-link{margin:0 21px 20px}.level-list{padding:0 21px 10px;display:grid;gap:0}.level-item{padding:10px 0;border-bottom:1px solid #edf1f2;display:flex;align-items:center;justify-content:space-between;gap:14px}.level-item:last-child{border:0}.level-item a{font-size:11px;font-weight:700;color:#2d5962;line-height:1.4}.level-item a:hover{text-decoration:underline}.level-item small{display:block;font-size:9px;color:#94a4ac;margin-top:4px}.level-item .level-value{font-size:13px;font-weight:800;color:#397a81;white-space:nowrap}.level-item .level-value.warn{color:#b28651}.level-panel>.source-link{margin:0 21px 20px}.onerain-footnote{font-size:10px;color:#97a8b0;margin-top:12px;line-height:1.5}.agency-icon.onerain{background:#e1f6f0;color:#188a74}.map-heading-tools{flex-wrap:wrap}.subtle-button[aria-pressed=true]{background:#d8f3e9!important;color:#137d6d!important;border-color:#99d6c5!important}.rain-map-label{font-size:10px;font-weight:700}.leaflet-popup-content .rain-popup-title{font-weight:800;color:#1a424d;margin-bottom:5px}.leaflet-popup-content .rain-popup-body{font-size:12px;color:#6d8790}.leaflet-popup-content .rain-popup-action{border:0;background:transparent;color:#168575;padding:8px 0 0;font-size:11px;font-weight:800;cursor:pointer}
@media(max-width:1140px){.onerain-grid{grid-template-columns:1fr 1fr;gap:12px}.onerain-section{margin-top:24px}.rain-controls{margin:0 15px 12px}.rain-bar-list{padding:0 13px 7px}.rain-detail .panel-heading,.level-panel .panel-heading{padding:18px 15px 13px}.rain-feature{margin:0 14px}.rain-mini-stats{padding:15px 14px}.level-list{padding:0 14px 10px}.rain-detail .source-link,.level-panel>.source-link{margin-left:14px}}
@media(max-width:840px){.onerain-grid{grid-template-columns:1fr}.onerain-intro{align-items:flex-start}.onerain-intro h2{font-size:19px}.rain-right-stack{grid-template-columns:1fr 1fr;gap:12px}.rain-mini-stats{gap:4px}.rain-mini-stats strong{font-size:14px}.rain-controls span{width:100%;margin-left:0}}
@media(max-width:570px){.onerain-intro{flex-direction:column;gap:10px}.onerain-status{align-self:flex-start}.rain-right-stack{grid-template-columns:1fr}.rain-controls{gap:7px}.rain-controls span{width:auto;min-width:100%;font-size:9px}.onerain-caution{padding:11px;font-size:10px}.rain-row{padding:10px 8px}.map-heading-tools .subtle-button{font-size:9px;padding:6px}.map-legend{display:none}}

/* Tides: selectable Napa/Brazos 30-day detail and overview brush */
.tide-panel-heading{gap:12px;flex-wrap:wrap}.tide-panel-heading .period-group{margin-left:auto}.tide-station-switch{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin:0 22px 15px}.tide-station-button{display:inline-flex;align-items:center;gap:7px;background:#f7fafb;border:1px solid #e0e8eb;border-radius:8px;color:#647f8c;padding:10px 12px;font-size:11px;font-weight:800;transition:background .15s,border-color .15s}.tide-station-button:hover{background:#eff8f6}.tide-station-button.active{background:#e3f5ef;color:#137d70;border-color:#a5dbc9}.tide-station-button small{font-size:9px;color:#91a8ae;font-weight:700}.tide-station-button.active small{color:#6caa9d}.tide-station-dot{width:7px;height:7px;border-radius:50%;background:#a1bbc2}.tide-station-button.active .tide-station-dot{background:#26b8a4;box-shadow:0 0 0 3px #a5e6d7}.tide-panel .chart-stat{margin-bottom:7px;gap:10px}.tide-overview{margin:7px 22px 0;padding:16px 0 5px;border-top:1px solid #e7eff0}.tide-overview-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.tide-overview-head strong{display:block;font-family:Manrope,sans-serif;font-size:12px;color:#2b525e}.tide-overview-head p{font-size:10px;color:#8b9fa7;margin:5px 0 0}.tide-overview-head .subtle-button{white-space:nowrap}.tide-overview-plot{height:116px;position:relative;margin:11px 0 2px;background:linear-gradient(#fbfdfd,#f7fbfb);border-radius:6px;overflow:hidden}.tide-overview-plot svg{width:100%;height:100%;display:block}.overview-hit{cursor:crosshair;touch-action:none}.overview-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#a0afb6;font-size:11px;background:#f8fbfb}.overview-empty.hidden{display:none}.tide-selection-caption{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:9px;color:#859aa3;line-height:1.4}.tide-selection-caption span:first-child,.tide-selection-caption span:last-child{max-width:36%}.tide-selection-caption span:nth-child(2){font-weight:800;color:#239b8d;text-align:center;letter-spacing:.5px}.tide-events{padding:15px 22px 10px;margin-top:10px;border-top:1px solid #eaf0f1}.tide-events-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}.tide-events-title strong{font-size:11px;font-weight:800;color:#385b67}.tide-events-title strong span{color:#94a8b0;font-weight:700}.tide-events-title a{font-size:10px;color:#198d80;font-weight:800;white-space:nowrap}.tide-events-title a:hover{text-decoration:underline}.tide-events-list{display:grid;max-height:282px;overflow-y:auto;scrollbar-color:#ccdddf transparent}.tide-event-row{display:grid;grid-template-columns:minmax(0,1fr) 55px 78px;align-items:center;gap:8px;border-bottom:1px solid #edf2f3;padding:10px 2px;color:#56717d;font-size:11px}.tide-event-row:last-child{border-bottom:0}.tide-event-row time{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tide-event-row strong{font-family:Manrope,sans-serif;text-align:right;color:#2c5b69;font-size:12px;white-space:nowrap}.tide-event-type{border-radius:5px;text-align:center;font-size:9px;letter-spacing:.7px;font-weight:800;padding:5px 3px}.tide-event-type.high{background:#e3f5ef;color:#168b7e}.tide-event-type.low{background:#e8f0f8;color:#527fa3}.tide-events-empty{font-size:11px;color:#9aabb3;line-height:1.6;padding:13px 0}.tide-events-more{border:0;background:#edf7f5;color:#208c7e;font-size:10px;font-weight:800;border-radius:6px;margin-top:11px;padding:9px 12px}.tide-events-more:hover{background:#dff4ee}.tide-events-more[hidden]{display:none!important}.tide-panel .chart-foot{margin-top:8px}
@media(max-width:1140px){.tide-panel-heading{padding:20px 16px 14px}.tide-station-switch{margin:0 15px 14px}.tide-overview{margin:7px 15px 0}.tide-events{padding:15px 15px 10px}}
@media(max-width:570px){.tide-panel-heading .period-group{margin-left:0}.tide-station-button{padding:8px 9px;font-size:10px}.tide-station-button small{display:none}.tide-overview-head{align-items:flex-start}.tide-overview-head p{max-width:210px}.tide-overview-head .subtle-button{font-size:9px;padding:7px}.tide-selection-caption{font-size:8px}.tide-selection-caption span:first-child,.tide-selection-caption span:last-child{max-width:33%}.tide-event-row{grid-template-columns:minmax(0,1fr) 46px 65px;gap:5px;font-size:10px}.tide-event-row strong{font-size:11px}}
.tide-events-hint{font-size:9px;color:#96a8ae;margin:0 0 5px}.tide-event-row{width:100%;background:transparent;border:0;border-bottom:1px solid #edf2f3;text-align:left;cursor:pointer;font-family:'DM Sans',sans-serif}.tide-event-row:hover,.tide-event-row:focus-visible{background:#f2faf7;outline:0;border-radius:5px}

/* Port Chicago: a separate observed-versus-predicted station comparison. */
.pc-panel{margin:26px 0;scroll-margin-top:24px;overflow:hidden}.pc-panel .panel-heading{flex-wrap:wrap;gap:12px}.pc-intro{margin:0 24px 20px;color:#637e8a;font-size:13px;line-height:1.6}.pc-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));margin:0 24px;border:1px solid #dfe9ed;border-radius:12px;overflow:hidden;background:#f9fcfc}.pc-metrics>div{padding:19px 15px;border-right:1px solid #dfe9ed}.pc-metrics>div:last-child{border:0}.pc-metrics span{display:block;font-size:11px;color:#567582;line-height:1.5;min-height:33px}.pc-metrics strong{display:block;font-family:Manrope,sans-serif;font-size:30px;color:#203f4b;letter-spacing:-1px;margin:4px 0 6px}.pc-metrics small{display:block;font-size:10px;color:#6a858f;line-height:1.5}.pc-metrics .pc-highlight{background:#e9f7f2}.pc-highlight strong{color:#137c70}.pc-freshness{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:14px 24px;color:#67828d;font-size:11px;line-height:1.6}.pc-message{margin:8px 24px 18px;padding:12px 14px;background:#fff7e9;border:1px solid #eedcb7;border-radius:8px;color:#865e28;font-size:12px;line-height:1.6}.pc-message[hidden],.pc-chart-empty[hidden]{display:none}.pc-stale{background:#fff2df!important;color:#98682c!important}.pc-chart-toolbar{margin:20px 24px 8px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.pc-legend{display:flex;gap:16px;font-size:11px;color:#587683;flex-wrap:wrap}.pc-legend span{display:flex;gap:6px;align-items:center}.pc-legend i{display:inline-block;width:18px;border-top:3px solid #119e90}.pc-legend .pc-predicted-key{border-color:#6b84c8;border-top-style:dashed}.pc-legend .pc-residual-key{border-color:#bd6b25}.pc-chart-controls{display:flex;align-items:center;gap:9px;font-size:11px;color:#67828d}.pc-chart-controls select{border:1px solid #dce7eb;background:white;color:#365c6b;border-radius:6px;padding:8px;font:inherit}.pc-period{border:0;background:transparent;color:#81969e;padding:7px 10px;border-radius:5px;font-size:10px;font-weight:800}.pc-period.active{background:white;color:#168a7c;box-shadow:0 1px 4px #16394416}.pc-chart-wrap{position:relative;height:300px;margin:0 16px}.pc-chart-wrap svg{width:100%;height:100%;display:block}.pc-chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:25px;color:#839aa3;background:#fbfdfd;font-size:13px}.pc-readout{margin:0 24px;padding:12px 14px;background:#eff7f8;border-radius:7px;font-size:12px;color:#365d6a;line-height:1.7;min-height:45px;font-variant-numeric:tabular-nums}.pc-range-controls{display:flex;align-items:center;gap:24px;padding:18px 24px 12px}.pc-range-controls label{flex:1;min-width:0;font-size:10px;color:#65818d}.pc-range-controls input{display:block;width:100%;margin-top:9px;accent-color:#149b8a}.pc-inspect{display:flex;align-items:center;gap:16px;padding:0 24px 18px;font-size:11px;color:#65818d}.pc-inspect input{flex:1;min-width:0;accent-color:#149b8a}.pc-details{border-top:1px solid #e6eef0;padding:15px 24px 20px;font-size:11px;color:#718a94;line-height:1.75}.pc-details p{margin:0 0 8px}.pc-source-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:13px}.pc-source-links a{color:#168b7c;font-weight:700}.pc-panel button:focus-visible,.pc-panel input:focus-visible,.pc-panel select:focus-visible{outline:2px solid #138e81;outline-offset:3px}.pc-panel button:disabled{opacity:.5;cursor:default}
@media(max-width:1100px){.pc-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.pc-metrics>div{border-bottom:1px solid #dfe9ed}.pc-metrics>div:nth-child(3){border-right:0}.pc-metrics>div:nth-child(4){border-bottom:0}.pc-metrics strong{font-size:27px}.pc-metrics span{min-height:0}}
@media(max-width:570px){.pc-panel .panel-heading{padding:20px 16px 12px}.pc-panel h2{font-size:19px}.pc-intro{margin:0 16px 16px;font-size:12px}.pc-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 16px}.pc-metrics>div{padding:14px 12px}.pc-metrics>div:nth-child(3){border-right:1px solid #dfe9ed}.pc-metrics>div:nth-child(even){border-right:0}.pc-metrics>div:nth-child(4){border-bottom:1px solid #dfe9ed}.pc-metrics>div:last-child{grid-column:1/-1}.pc-metrics strong{font-size:26px}.pc-freshness{margin:12px 16px;align-items:flex-start}.pc-chart-toolbar{margin:18px 16px 8px}.pc-chart-wrap{height:250px;margin:0 5px}.pc-readout{margin:0 16px;font-size:11px}.pc-range-controls{padding:16px;gap:14px;flex-wrap:wrap}.pc-range-controls label{min-width:35%}.pc-range-controls button{width:100%}.pc-inspect{padding:0 16px 16px}.pc-details{padding:15px 16px}.pc-message{margin:8px 16px;font-size:11px}}
/* NWS 24-hour gridded quantitative precipitation forecast */
.qpf-section{margin:30px 0 28px;scroll-margin-top:24px}.qpf-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.qpf-heading h2{font-size:21px;letter-spacing:-.6px;margin:7px 0}.qpf-heading p{font-size:12px;line-height:1.65;color:var(--muted);margin:0}.qpf-status{border-radius:30px;background:#e7f1f3;color:#527c86;padding:9px 12px;font-size:10px;font-weight:800;white-space:nowrap}.qpf-status.online{background:#e2f6ee;color:#118672}.qpf-status.partial,.qpf-status.sample{background:#fff4dc;color:#95703a}.qpf-status.offline{background:#ffe9e3;color:#a45c46}.qpf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.qpf-location{background:#fff;border:1px solid #dfe9eb;border-radius:13px;padding:22px 25px;box-shadow:0 4px 17px #2d586509}.qpf-location-top{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.qpf-location-kicker{font-size:9px;font-weight:800;letter-spacing:1px;color:#8aa2a8}.qpf-location h3{font-family:Manrope,sans-serif;font-size:17px;letter-spacing:-.3px;color:#214855;margin:5px 0}.qpf-location-coords{font-size:10px;color:#9aadb3}.qpf-nws-pill{font-size:9px;font-weight:800;background:#e5f3f0;color:#318b81;border-radius:6px;padding:6px 8px;white-space:nowrap}.qpf-amount{display:flex;align-items:baseline;gap:11px;margin:23px 0 13px}.qpf-amount strong{font:800 39px Manrope,sans-serif;letter-spacing:-1.5px;color:#185f68}.qpf-amount>span{font-size:12px;font-weight:700;color:#859da6}.qpf-bar-track{height:10px;border-radius:8px;background:#edf3f4;overflow:hidden}.qpf-bar{height:100%;border-radius:8px;min-width:0;transition:width .4s ease}.qpf-bar-napa{background:linear-gradient(90deg,#7acbc7,#1b9a9b)}.qpf-bar-veeder{background:linear-gradient(90deg,#87b9d8,#3b85b2)}.qpf-location-note{font-size:10px;color:#879ca6;margin:12px 0 15px}.qpf-link{font-size:11px;color:#168779;font-weight:800}.qpf-link:hover{text-decoration:underline}.qpf-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f0f8f6;border:1px solid #d7ebe5;border-radius:11px;padding:15px 19px;margin-top:14px}.qpf-comparison{display:grid;gap:5px}.qpf-comparison-label{font-size:9px;letter-spacing:1px;color:#6b9a94;font-weight:800}.qpf-comparison strong{font-size:13px;color:#245b62}.qpf-freshness{display:grid;gap:4px;text-align:right;font-size:10px;color:#769198}.qpf-disclaimer{color:#8a9ca3;font-size:10px;line-height:1.65;margin:13px 2px 0}.qpf-disclaimer a{color:#208f82;text-decoration:underline}
@media(max-width:1000px){.qpf-grid{gap:12px}.qpf-location{padding:18px}.qpf-amount strong{font-size:33px}}
@media(max-width:650px){.qpf-heading{align-items:flex-start;flex-direction:column;gap:10px}.qpf-heading h2{font-size:19px}.qpf-grid{grid-template-columns:1fr}.qpf-amount{margin-top:14px}.qpf-footer{flex-direction:column;align-items:flex-start}.qpf-freshness{text-align:left}.qpf-location{padding:18px}}
