:root{color-scheme:light;font-family:Instrument Sans,system-ui,sans-serif;line-height:1.5;font-weight:400;background:linear-gradient(90deg,rgba(15,15,15,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(15,15,15,.08) 1px,transparent 1px),linear-gradient(135deg,#f8f5df,#f2f7ff 52%,#fff0da);background-size:28px 28px,28px 28px,auto;color:#0c0c0c;--paper: #fff8dc;--paper-cool: #e7f6ff;--paper-hot: #ffef6e;--panel: #fffdf2;--panel-strong: #f7fbff;--ink-900: #0c0c0c;--ink-700: #333333;--line: #0c0c0c;--blue-500: #006fee;--blue-700: #0049a8;--sand-500: #ff6b00;--green: #00a86b;--red: #e6352b;--shadow: 8px 8px 0 #0c0c0c;--shadow-small: 5px 5px 0 #0c0c0c;--radius-xl: 0;--radius-lg: 0;--radius-md: 0}*{box-sizing:border-box}body{margin:0;min-width:320px;background:transparent}button,input{font:inherit}button{cursor:pointer}#root{min-height:100vh}.app-shell{position:relative;overflow:hidden;padding:28px 24px 56px;max-width:1440px;margin:0 auto}.boosh-active .hero,.boosh-active .summary-strip,.boosh-active .toolbar,.boosh-active .dashboard-grid,.boosh-active .footer-note{animation:pageRattle .62s cubic-bezier(.22,1,.36,1)}.boosh-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;pointer-events:none;overflow:hidden}.tear{position:absolute;top:0;bottom:0;width:56vw;background:linear-gradient(90deg,#ffef6ef2,#dff2ffdb),repeating-linear-gradient(135deg,rgba(12,12,12,.16) 0 4px,transparent 4px 18px);border:4px solid var(--line);opacity:0}.tear-left{left:-8vw;clip-path:polygon(0 0,88% 0,100% 8%,84% 18%,100% 30%,86% 44%,100% 57%,84% 71%,100% 86%,88% 100%,0 100%);animation:tearLeft 1.2s cubic-bezier(.22,1,.36,1) forwards}.tear-right{right:-8vw;clip-path:polygon(12% 0,100% 0,100% 100%,12% 100%,0 88%,16% 74%,0 58%,14% 43%,0 28%,16% 14%);animation:tearRight 1.2s cubic-bezier(.22,1,.36,1) forwards}.boosh-text{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-4deg);padding:10px 18px;background:var(--paper-hot);border:4px solid var(--line);box-shadow:var(--shadow);color:var(--ink-900);font-size:clamp(3rem,11vw,10rem);font-weight:900;line-height:.85;letter-spacing:0;animation:booshText 1.2s cubic-bezier(.16,1,.3,1) forwards}.boosh-shard{position:absolute;left:50%;top:50%;width:22px;height:72px;background:var(--blue-500);border:3px solid var(--line);opacity:0}.shard-1{--tx: -48vw;--ty: -36vh;--rot: -42deg;background:var(--blue-500)}.shard-2{--tx: -34vw;--ty: 28vh;--rot: 31deg;background:var(--paper-hot)}.shard-3{--tx: -8vw;--ty: -42vh;--rot: 75deg;background:#e8ffe9}.shard-4{--tx: 24vw;--ty: -34vh;--rot: -64deg;background:#ffe1ca}.shard-5{--tx: 42vw;--ty: 24vh;--rot: 42deg;background:var(--sand-500)}.shard-6{--tx: 8vw;--ty: 38vh;--rot: -28deg;background:#dff2ff}.boosh-shard{animation:shardFly .9s cubic-bezier(.2,.9,.2,1) forwards}.background-orbit{display:none}.hero,.summary-strip,.toolbar,.dashboard-grid,.footer-note{position:relative;z-index:1}.hero{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:14px;padding-bottom:14px;border-bottom:3px solid var(--line)}.eyebrow,.toolbar-label{margin:0 0 8px;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:900;color:var(--ink-900)}.hero h1{margin:0;font-family:Instrument Sans,system-ui,sans-serif;font-size:clamp(1.9rem,3vw,3.25rem);font-weight:900;line-height:.95;max-width:none;text-transform:uppercase}.panel{background:var(--panel);border:3px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius-xl);padding:20px}.hero-aside{min-width:220px;text-align:right}.hero-aside span,.summary-card span,.forecast-card span,.chart-highlight span,.ramp-card small,.alert-header span{color:var(--ink-700)}.hero-aside strong{display:block;margin:4px 0 0;font-size:1rem;font-weight:900;color:var(--ink-900)}.hero-aside p,.panel-subtitle,.ramp-card p{margin:0;color:var(--ink-700)}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.summary-card{background:var(--panel-strong);min-height:138px}.summary-card:nth-child(1){background:#dff2ff}.summary-card:nth-child(2){background:#fff06a}.summary-card:nth-child(3){background:#ffe1ca}.summary-card:nth-child(4){background:#e8ffe9}.summary-card strong{display:block;margin:12px 0 8px;font-size:2rem;font-weight:900;line-height:.98}.summary-card em{color:var(--ink-700);font-style:normal;font-weight:700}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:18px 22px}.toolbar-group{display:flex;align-items:center;gap:14px}.toolbar-group p{margin:0;color:var(--ink-700);font-weight:800}.toolbar-status{margin:0;padding:10px 14px;background:var(--paper-hot);border:3px solid var(--line);box-shadow:4px 4px 0 var(--line);color:var(--ink-900);font-weight:900;text-transform:uppercase;transition:box-shadow .12s ease,transform .12s ease}.toolbar-status:hover,.toolbar-status:focus-visible{transform:translate(-2px,-2px) rotate(-1deg);box-shadow:6px 6px 0 var(--line)}.toolbar-status:active{transform:translate(2px,2px) rotate(1deg) scale(.98);box-shadow:1px 1px 0 var(--line)}.segmented-control{display:flex;flex-wrap:wrap;gap:0;border:3px solid var(--line);background:var(--line)}.segmented-control button,.ramp-footer button{border:0;border-radius:0;transition:box-shadow .12s ease,transform .12s ease,color .18s ease}.segmented-control button{background:var(--panel);color:var(--ink-900);padding:10px 14px;font-weight:900;border-right:3px solid var(--line)}.segmented-control button:last-child{border-right:0}.segmented-control button.active{background:var(--blue-500);color:#fff;transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--line)}.dashboard-grid{display:block}.main-column{display:grid;gap:18px}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:18px}.panel-header h2{margin:0;font-family:Instrument Sans,system-ui,sans-serif;font-size:1.85rem;font-weight:900;line-height:.95;text-transform:uppercase}.chart-legend,.hazard-row,.status-row,.chart-highlights,.ramp-footer{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.legend-swatch{display:inline-block;width:22px;height:10px;border:2px solid var(--line);border-radius:0;margin-right:8px}.legend-swatch.elevation{background:var(--blue-500)}.legend-swatch.storage{background:var(--sand-500)}.chart{width:100%;height:auto;display:block}.chart-grid{stroke:#0c0c0c29;stroke-width:2}.chart-line{fill:none;stroke-width:5;stroke-linejoin:miter;stroke-linecap:square}.chart-line.elevation{stroke:var(--blue-500)}.chart-line.storage{stroke:var(--sand-500);stroke-dasharray:8 8}.chart-point{stroke:var(--line);stroke-width:2}.chart-point.elevation{fill:var(--blue-500)}.chart-point.storage{fill:var(--sand-500)}.chart-label{fill:var(--ink-900);font-size:12px;font-weight:900;text-anchor:middle}.chart-axis-label{fill:var(--ink-700);font-size:10px;font-weight:900}.chart-axis-left{text-anchor:end}.chart-axis-right{text-anchor:start}.today-snapshot{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(0,1.4fr);gap:14px}.today-gauge,.today-details article{border:3px solid var(--line);box-shadow:var(--shadow-small)}.today-gauge{display:grid;align-content:center;min-height:240px;padding:24px;background:#dff2ff}.today-gauge span,.today-details span{color:var(--ink-700);font-weight:900;letter-spacing:.04em;text-transform:uppercase}.today-gauge strong{display:block;margin:14px 0 8px;font-size:clamp(3rem,7vw,6.5rem);font-weight:900;line-height:.85}.today-gauge em,.today-details em{color:var(--ink-700);font-style:normal;font-weight:800}.today-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.today-details article{display:grid;align-content:center;min-height:160px;padding:18px;background:#ffffff9e}.today-details article:nth-child(1){background:var(--paper-hot)}.today-details article:nth-child(2){background:#e8ffe9}.today-details article:nth-child(3){background:#ffe1ca}.today-details strong{display:block;margin:10px 0 6px;font-size:clamp(1.7rem,3vw,2.6rem);font-weight:900;line-height:.95}.chart-highlight,.forecast-card,.ramp-card,.hydro-card,.weather-lead-card,.weather-stats article{background:#ffffff9e;border:3px solid var(--line);border-radius:0;box-shadow:var(--shadow-small);padding:16px}.chart-highlights{margin-top:16px}.chart-highlight{min-width:140px;flex:1 1 0;background:#f4f4f4}.chart-highlight:nth-child(2){background:var(--paper-hot)}.chart-highlight:nth-child(3){background:#dff2ff}.chart-highlight strong,.forecast-card strong,.ramp-card strong,.hydro-card strong,.weather-lead-card strong,.weather-stats strong{display:block;margin:6px 0;font-weight:900;color:var(--ink-900)}.forecast-list,.ramp-list,.hydro-grid{display:grid;gap:12px}.hydro-grid{grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr)}.hydro-card span,.weather-lead-card span,.weather-stats span{color:var(--ink-700);font-weight:900;text-transform:uppercase;letter-spacing:.04em}.hydro-card p,.weather-lead-card p{margin:8px 0 0;color:var(--ink-700)}.storage-bars,.flow-card,.flow-metrics{display:grid;gap:10px}.hydro-flow-card{align-content:start}.hydro-flow-card>strong{font-size:1.65rem;line-height:1;margin:0 0 4px}.flow-metrics{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}.flow-metrics div{background:#ffffff7a;border:2px solid var(--line);padding:12px}.flow-metrics strong{font-size:1.2rem}.flow-metrics p{margin:6px 0 0;color:var(--ink-700);font-size:.92rem}.storage-bar-row,.flow-row{display:grid;grid-template-columns:54px minmax(80px,1fr) 58px;gap:10px;align-items:center}.storage-bar-row small,.storage-bar-row em,.flow-row em{color:var(--ink-700);font-style:normal;font-weight:800}.flow-row strong{font-size:.95rem}.storage-bar-track,.flow-track{overflow:hidden;height:14px;background:var(--panel);border:2px solid var(--line);border-radius:0}.storage-bar-track i,.flow-track i{display:block;height:100%;border-radius:0}.storage-bar-track i{background:var(--sand-500)}.flow-in{background:var(--green)}.flow-out{background:var(--blue-500)}.ramp-card.preferred{border-color:#1d628f47;box-shadow:inset 0 0 0 1px #1d628f14}.ramp-header{display:flex;gap:14px;justify-content:space-between;align-items:start}.ramp-footer{justify-content:space-between;margin-top:12px;color:var(--ink-700)}.ramp-footer button{padding:10px 14px;background:var(--paper-hot);color:var(--ink-900);border:2px solid var(--line);font-weight:900}.ramp-footer button:hover,.segmented-control button:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--line)}.forecast-list{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-overview{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.8fr);gap:12px;margin-bottom:12px}.weather-lead-card{background:#dff2ff}.weather-lead-card strong{font-size:2.15rem;line-height:1}.weather-lead-card em,.forecast-card em{display:block;color:var(--ink-900);font-weight:800;font-style:normal}.weather-stats{display:grid;gap:12px}.weather-stats article:nth-child(1){background:var(--paper-hot)}.weather-stats article:nth-child(2){background:#ffe1ca}.weather-stats article:nth-child(3){background:#e8ffe9}.forecast-list-expanded{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:12px}.forecast-card small{display:block;margin-top:8px;color:var(--ink-700);font-size:.88rem;font-weight:800;line-height:1.25}.status-pill{display:inline-flex;align-items:center;border:2px solid var(--line);border-radius:0;padding:6px 10px;font-size:.78rem;font-weight:900;text-transform:uppercase}.status-pill.available,.status-pill.info{background:#baffc2;color:var(--ink-900)}.status-pill.caution,.status-pill.watch,.status-pill.limited{background:var(--paper-hot);color:var(--ink-900)}.status-pill.closed,.status-pill.warning{background:#ff9b91;color:var(--ink-900)}.empty-state,.error-banner{min-height:120px;display:grid;place-items:center;text-align:center}.footer-note{margin-top:18px;padding:10px 0 0;background:transparent;border:3px solid var(--line);border-width:3px 0 0;box-shadow:none}.footer-label{display:block;color:var(--ink-900);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.status-row{margin-top:6px;color:var(--ink-700);font-size:.92rem;font-weight:800}@media(max-width:1100px){.dashboard-grid{grid-template-columns:1fr}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.hydro-grid,.flow-metrics,.today-snapshot,.weather-overview,.forecast-list-expanded{grid-template-columns:1fr}.today-details{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.app-shell{padding:16px 12px 34px}.summary-strip,.forecast-list{grid-template-columns:1fr}.toolbar,.panel-header,.toolbar-group{flex-direction:column;align-items:stretch}.hero h1{max-width:none}.hero{align-items:start;flex-direction:column}.hero-aside{min-width:0;text-align:left}.panel{padding:16px;box-shadow:5px 5px 0 var(--line)}.summary-card strong{font-size:1.65rem}.today-details{grid-template-columns:1fr}}@keyframes pageRattle{0%,to{transform:translate(0) rotate(0)}12%{transform:translate(-8px,4px) rotate(-.6deg)}24%{transform:translate(9px,-5px) rotate(.8deg)}38%{transform:translate(-5px,-7px) rotate(.4deg)}52%{transform:translate(6px,4px) rotate(-.5deg)}70%{transform:translate(-3px,2px) rotate(.25deg)}}@keyframes tearLeft{0%{opacity:0;transform:translate(0) skew(0)}8%{opacity:1}42%{opacity:1;transform:translate(-8vw) skew(-4deg)}to{opacity:0;transform:translate(-70vw) skew(-10deg)}}@keyframes tearRight{0%{opacity:0;transform:translate(0) skew(0)}8%{opacity:1}42%{opacity:1;transform:translate(8vw) skew(4deg)}to{opacity:0;transform:translate(70vw) skew(10deg)}}@keyframes booshText{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-14deg)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(-4deg)}54%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(3deg)}to{opacity:0;transform:translate(-50%,-50%) scale(1.7) rotate(10deg)}}@keyframes shardFly{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(1.2) rotate(var(--rot))}}@media(prefers-reduced-motion:reduce){.boosh-active .hero,.boosh-active .summary-strip,.boosh-active .toolbar,.boosh-active .dashboard-grid,.boosh-active .footer-note,.tear,.boosh-text,.boosh-shard{animation-duration:1ms}}
