.forecast-section{--accent: var(--local-accent);--cyan: #7fd9d4;--muted: var(--local-ink-muted);border:1px solid var(--local-border);border-radius:var(--radius-panel);background:var(--local-surface);overflow:hidden}.forecast-section .section-header{display:grid;grid-template-columns:1fr auto;gap:.6rem 1rem;align-items:end;padding:1rem;background:color-mix(in srgb,var(--ui-section-forecast) 10%,var(--local-surface));border-bottom:1px solid var(--local-border)}.forecast-section .run-note{margin:0;color:var(--muted);font-size:.75rem}.forecast-section .section-header h2{margin:0;color:var(--local-ink);font-size:1rem;font-weight:720;line-height:1.35}.forecast-section .section-title-row{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:.25rem .8rem}.forecast-section .forecast-map-link{display:inline-flex;min-height:44px;align-items:center;color:var(--local-link);font-size:.75rem;font-weight:700;text-decoration:none}.forecast-section .forecast-map-link:hover{text-decoration:underline}.forecast-section .forecast-map-link:focus-visible{border-radius:4px;outline:2px solid var(--local-focus);outline-offset:2px}.forecast-section .run-note{grid-column:1/-1}.forecast-section .range-control{display:flex;padding:3px;border:1px solid var(--local-control-border);border-radius:6px;background:var(--local-control-surface)}.forecast-section .range-control button{min-width:44px;min-height:44px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-weight:700}.forecast-section .range-control button.active{background:var(--ui-control-active);color:var(--ui-control-active-ink)}.forecast-section .range-control button:focus-visible{outline:2px solid var(--local-focus);outline-offset:1px}.forecast-section .instrument-shell{display:grid;grid-template-columns:minmax(0,1fr) 294px}.forecast-section .instrument-main{min-width:0;display:grid;align-content:start;grid-template-columns:88px minmax(0,1fr);position:relative}.forecast-section .row-labels{grid-row:1;position:relative;height:590px;border-right:1px solid var(--local-border-strong);background:var(--local-plot-surface)}.forecast-section .row-labels>span{position:absolute;inset-inline:0;display:flex;align-items:flex-start;padding:.55rem;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.08em}.forecast-section .row-labels small{position:absolute;right:.5rem;color:var(--muted);font-size:.75rem}.forecast-section .cloud-high{top:105px}.forecast-section .cloud-mid{top:138px}.forecast-section .cloud-low{top:171px}.forecast-section .cloud-total{top:138px}.forecast-section .plot-viewport{grid-column:2;min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-color:var(--local-border) transparent}.forecast-section .plot-width{position:relative;min-width:100%;height:590px}.forecast-section .plot-width>svg{display:block;width:100%;height:590px;touch-action:pan-x;cursor:crosshair;background:linear-gradient(180deg,rgba(255,255,255,.012),transparent)}.forecast-section .state-icon-layer{position:absolute;inset:4px 0 auto;height:30px;pointer-events:none}.forecast-section .state-icon-layer span{position:absolute;width:26px;height:26px;transform:translate(3px)}.forecast-section .state-icon-layer svg{width:26px;height:26px}.forecast-section .row-rule{stroke:var(--local-border);stroke-width:1}.forecast-section .day-line{stroke:color-mix(in srgb,var(--local-border) 65%,transparent);stroke-dasharray:2 5}.forecast-section .state-segment line{stroke:var(--accent);stroke-width:2}.forecast-section .state-segment text,.forecast-section .axis-label,.forecast-section .scale-label{fill:var(--muted);font-size:.75rem}.forecast-section .scale-label{font-size:.75rem}.forecast-section .probability-line,.forecast-section .wind-line,.forecast-section .temperature-line,.forecast-section .feels-line,.forecast-section .wetbulb-line,.forecast-section .dew-line,.forecast-section .radar-line,.forecast-section .nowcast-line{fill:none;vector-effect:non-scaling-stroke}.forecast-section .probability-line{stroke:#b49cff;stroke-width:1.5}.forecast-section .thunder-bar{fill:color-mix(in srgb,var(--ui-weather-thunder) 24%,transparent)}.forecast-section .thunder-bar.possible{fill:color-mix(in srgb,var(--ui-weather-thunder) 72%,transparent)}.forecast-section .thunder-bar.selected{stroke:var(--ui-weather-thunder);stroke-width:2;vector-effect:non-scaling-stroke}.forecast-section .thunder-selection-label{fill:var(--ui-weather-thunder);font-size:var(--font-data-label-size);font-weight:700;paint-order:stroke;stroke:var(--local-plot-surface);stroke-width:3px;stroke-linejoin:round}.forecast-section .cloud-cell{fill:#b8c4ce;opacity:.78}.forecast-section .cloud-baseline{stroke:var(--local-border-strong);stroke-width:1;opacity:.7;vector-effect:non-scaling-stroke}.forecast-section .cloud-total-cell{fill:url(#total-cloud-hatch);opacity:1}.forecast-section .cloud-total-base{fill:#9baab7;opacity:.55}.forecast-section .cloud-total-hatch{fill:none;stroke:#d5dde3;stroke-width:1}.forecast-section .cloud-source-seam{stroke:var(--local-ink-muted);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.forecast-section .cloud-source-label{fill:var(--muted);font-size:.75rem}.forecast-section .wind-line{stroke:var(--cyan);stroke-width:2}.forecast-section .gust-stem{stroke:color-mix(in srgb,var(--cyan) 60%,transparent);stroke-width:1}.forecast-section .wind-vane{stroke:#c7f3ef;stroke-width:1.4}.forecast-section .rain-bar{stroke:#5ba9ef;fill:#5ba9ef}.forecast-section .rain-bar.overflow{stroke:#fff}.forecast-section .radar-line{stroke:#38c98d;stroke-width:2.2}.forecast-section .nowcast-line{stroke:#38c98d;stroke-width:1.8;stroke-dasharray:5 4}.forecast-section .temperature-line{stroke:#ffb36b;stroke-width:2.4}.forecast-section .feels-line{stroke:#ffcf9f;stroke-width:1.2;opacity:.75}.forecast-section .wetbulb-line{stroke:#72d4dd;stroke-width:1.4;stroke-dasharray:7 3 1 3}.forecast-section .dew-line{stroke:#8fa6ff;stroke-width:1.4;stroke-dasharray:2 4}.forecast-section .zero-line{stroke:#8eb4d5;stroke-dasharray:3 4;opacity:.6}.forecast-section .surface-interval{fill:#8fa6ff;opacity:.34}.forecast-section .probe{stroke:#fff;stroke-width:1.5;filter:drop-shadow(0 0 3px #000)}.forecast-section .interval-selection{fill:var(--accent);opacity:.08;stroke:var(--accent);stroke-dasharray:3 2}.forecast-section .axis-label{font-variant-numeric:tabular-nums}.forecast-section .inspector{padding:1rem;border-left:1px solid var(--local-border-strong);background:var(--local-surface-strong)}.forecast-section .state-readout{display:flex;align-items:center;gap:.65rem;margin:.9rem 0 1rem}.forecast-section .state-readout svg{width:38px;height:38px}.forecast-section .state-readout strong{font-size:1.05rem}.forecast-section .inspector section{padding:.8rem 0;border-top:1px solid var(--local-border)}.forecast-section .inspector h3{margin:0 0 .55rem;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.forecast-section .inspector dl{display:grid;gap:.35rem;margin:0}.forecast-section .inspector dl div{display:flex;justify-content:space-between;gap:1rem}.forecast-section .inspector dt{color:var(--muted)}.forecast-section .inspector dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.forecast-section .inspector p,.forecast-section .inspector footer{color:var(--muted);font-size:.82rem;line-height:1.45}.forecast-section .inspector a{color:var(--accent);font-weight:700;text-decoration:none}.forecast-section .inspector footer{padding-top:.7rem;border-top:1px solid var(--local-border)}.forecast-section .step-controls{grid-column:1/-1;display:flex;justify-content:space-between;gap:.5rem;padding:.6rem;border-top:1px solid var(--local-border)}.forecast-section .step-controls button,.forecast-section th button{min-height:44px;padding:0 .6rem;border:1px solid var(--local-control-border);border-radius:6px;background:transparent;color:var(--local-ink);font-size:.875rem}.forecast-section th button[aria-pressed=true]{background:var(--ui-control-active);color:var(--ui-control-active-ink)}.forecast-section button:focus-visible,.forecast-section summary:focus-visible,.forecast-section input:focus-visible{outline:2px solid var(--local-focus);outline-offset:2px}.forecast-section .selected-summary{min-height:44px;cursor:pointer;color:var(--local-ink)}.forecast-section .selected-summary span,.forecast-section .selected-summary strong{display:block}.forecast-section .selected-summary span{color:var(--muted);font-size:.875rem}.forecast-section .selected-summary strong{font-size:1rem;font-variant-numeric:tabular-nums}.forecast-section .advanced-curves{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:.875rem}.forecast-section .advanced-curves input{width:1rem;height:1rem}.forecast-section .legend{display:flex;flex-wrap:wrap;gap:.55rem 1rem;padding:.7rem 1rem;border-top:1px solid var(--local-border);color:var(--muted);font-size:.75rem}.forecast-section .legend span:before{content:"";display:inline-block;width:18px;margin-right:.35rem;border-top:2px solid;vertical-align:middle}.forecast-section .legend .air:before{border-color:#ffb36b}.forecast-section .legend .feels:before{border-color:#ffcf9f}.forecast-section .legend .wet:before{border-color:#72d4dd;border-style:dashed}.forecast-section .legend .dew:before{border-color:#8fa6ff;border-style:dotted}.forecast-section .legend .radar:before,.forecast-section .legend .nowcast:before{border-color:#38c98d}.forecast-section .legend .nowcast:before{border-style:dashed}.forecast-section .accessible-table{border-top:1px solid var(--local-border);padding:.75rem 1rem}.forecast-section .accessible-table summary{display:flex;min-height:44px;align-items:center;cursor:pointer;color:var(--accent);font-weight:700}.forecast-section .table-scroll{overflow:auto;margin-top:.7rem}.forecast-section table{width:100%;border-collapse:collapse;font-size:.8rem}.forecast-section th,.forecast-section td{padding:.45rem;text-align:left;border-bottom:1px solid var(--local-border);white-space:nowrap}.forecast-section .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media (max-width: 999px){.forecast-section .instrument-shell{grid-template-columns:1fr}.forecast-section .inspector{border-left:0;border-top:1px solid var(--local-border)}}.forecast-section .selected-summary .selected-thunder{color:var(--ui-weather-thunder);font-size:var(--font-caption-size);font-weight:700}@media (max-width: 620px){.forecast-section .section-header{grid-template-columns:1fr}.forecast-section .range-control{justify-self:start}.forecast-section .run-note{grid-column:1}.forecast-section .row-labels>span{padding-inline:.35rem}.forecast-section .legend{gap:.45rem .7rem}}@media (prefers-reduced-motion: reduce){.forecast-section *{scroll-behavior:auto!important}}
