.forecast-shell{padding:clamp(3.5rem,6vw,6rem) 0 clamp(5rem,8vw,8rem)}
.forecast-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.55fr);gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:3rem}
.forecast-intro h1{margin:.5rem 0 1rem;font-size:clamp(3.4rem,7vw,7rem);line-height:.96;letter-spacing:-.055em}.forecast-intro .lede{max-width:750px}.forecast-intro-note{border-left:2px solid var(--blue);padding-left:1rem;color:var(--copy)}
.lab-surface{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(13,27,40,.94),rgba(7,15,23,.9));padding:clamp(1.2rem,3vw,2.3rem)}
.lab-controls{display:grid;grid-template-columns:1.15fr 1fr 1fr 1.2fr;gap:1rem;align-items:end;padding-bottom:1.4rem;border-bottom:1px solid var(--line-soft)}
.control-group label,.control-label{display:block;margin:0 0 .45rem;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.lab-select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;background:#091722;color:var(--ivory);font:inherit;padding:.65rem .75rem}.lab-select:focus,.lab-range:focus{outline:2px solid var(--blue);outline-offset:2px}
.view-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:999px;padding:3px}.view-switch button{min-height:38px;border:0;border-radius:999px;background:transparent;color:var(--copy);font:inherit;font-size:.78rem;font-weight:800}.view-switch button[aria-pressed="true"]{background:var(--ivory);color:#071019}.lab-range{width:100%;accent-color:var(--blue)}.range-value{display:flex;justify-content:space-between;gap:.6rem;color:var(--copy);font-size:.78rem}.range-value strong{color:var(--ivory)}
.forecast-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1.35rem 0}.forecast-metric{border-top:1px solid rgba(26,169,239,.42);padding:.8rem 0}.forecast-metric span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.11em}.forecast-metric strong{display:block;margin:.3rem 0 .15rem;font-size:clamp(1.35rem,2.2vw,2rem);color:var(--ivory)}.forecast-metric small{color:var(--muted);font-size:.74rem}
.forecast-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr);gap:1rem;align-items:start}.chart-panel,.method-panel{min-width:0;border:1px solid var(--line-soft);border-radius:18px;background:rgba(3,13,21,.38);padding:1rem}.chart-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:.7rem}.chart-heading h2,.method-panel h2{margin:.15rem 0 0;font-size:clamp(1.25rem,2vw,1.7rem);letter-spacing:-.025em}.chart-heading p{margin:.2rem 0 0;color:var(--muted);font-size:.75rem;text-align:right}
.forecast-chart{width:100%;min-height:360px}.forecast-chart svg{display:block;width:100%;height:auto}.forecast-chart .grid{stroke:rgba(129,166,189,.16);stroke-width:1}.forecast-chart .axis-label{fill:#8ca0ad;font-size:11px}.forecast-chart .actual{fill:none;stroke:#f3efe6;stroke-width:2.5}.forecast-chart .holdout{fill:none;stroke:#9dd6bc;stroke-width:2.5}.forecast-chart .prediction{fill:none;stroke:var(--blue);stroke-width:3}.forecast-chart .interval{fill:rgba(26,169,239,.1)}.forecast-chart .cutoff{stroke:rgba(243,239,230,.38);stroke-width:1;stroke-dasharray:5 5}.forecast-chart .point{fill:var(--blue)}
.chart-legend{display:flex;gap:1rem;flex-wrap:wrap;color:var(--copy);font-size:.75rem;margin-top:.4rem}.chart-legend span{display:flex;align-items:center;gap:.4rem}.chart-legend i{display:block;width:24px;border-top:2px solid var(--ivory)}.chart-legend .forecast i{border-color:var(--blue);border-width:3px}.chart-legend .holdout i{border-color:#9dd6bc}
.model-table{width:100%;border-collapse:collapse;margin:.8rem 0 1rem;font-size:.78rem}.model-table th,.model-table td{padding:.7rem .35rem;border-bottom:1px solid var(--line-soft);text-align:right}.model-table th:first-child,.model-table td:first-child{text-align:left}.model-table th{color:var(--muted);font-size:.65rem;text-transform:uppercase;letter-spacing:.09em}.model-table tr.selected td{color:#8bd5fa}.model-table tr.best td:first-child::after{content:" · bedst";color:#9dd6bc;font-size:.68rem}.method-note{margin:0;color:var(--copy);font-size:.86rem;line-height:1.6}.method-warning{margin:1rem 0 0;padding-left:.8rem;border-left:2px solid #dfb36c;color:var(--copy);font-size:.8rem;line-height:1.55}
.season-panel{margin-top:1rem;border-top:1px solid var(--line-soft);padding-top:1rem}.season-panel h3{font-size:.9rem;margin:0 0 .7rem}.season-bars{height:110px;display:grid;grid-template-columns:repeat(12,1fr);gap:4px;align-items:end}.season-bar{position:relative;min-height:2px;background:rgba(26,169,239,.72);border-radius:3px 3px 0 0}.season-bar span{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);color:var(--muted);font-size:.58rem}.season-caption{margin:1.8rem 0 0;color:var(--muted);font-size:.72rem}
.evidence-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.evidence-item{padding:1rem;border-top:1px solid var(--line)}.evidence-item strong{display:block;color:var(--ivory);font-size:1.15rem}.evidence-item span{color:var(--muted);font-size:.75rem}.lab-disclosure{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}.lab-disclosure h2{font-size:clamp(1.6rem,2.6vw,2.5rem);margin:.3rem 0 .8rem}.lab-disclosure p,.lab-disclosure li{color:var(--copy)}.lab-disclosure ul{padding-left:1.1rem}.lab-disclosure a{color:var(--ivory);text-decoration-color:var(--blue);text-underline-offset:4px}
.lab-loading{min-height:400px;display:grid;place-items:center;color:var(--muted)}.lab-error{padding:1rem;border-left:2px solid #df8f7c;color:#f1b9aa;background:rgba(223,143,124,.07)}
@media(max-width:1050px){.forecast-intro,.forecast-grid{grid-template-columns:1fr}.lab-controls{grid-template-columns:1fr 1fr}.method-panel{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.method-panel>h2{grid-column:1/-1}.season-panel{margin:0;padding:0 0 0 1rem;border-top:0;border-left:1px solid var(--line-soft)}}
@media(max-width:680px){.forecast-intro{align-items:start}.lab-controls,.forecast-metrics,.evidence-grid,.lab-disclosure,.method-panel{grid-template-columns:1fr}.forecast-grid{gap:.75rem}.forecast-metric{padding:.65rem 0}.chart-panel,.method-panel{padding:.8rem}.chart-heading{display:block}.chart-heading p{text-align:left}.forecast-chart{min-height:270px}.method-panel>h2{grid-column:auto}.season-panel{margin-top:1rem;padding:1rem 0 0;border-left:0;border-top:1px solid var(--line-soft)}}
