.forecast-week{margin-top:18px;padding:22px 20px 18px}
.forecast-week-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:17px}
.forecast-week-head h3{font-size:24px;font-weight:500;letter-spacing:-.025em;margin:0 0 7px}
.forecast-week-head p,.forecast-trend-note,.forecast-long-source,.forecast-day-note{color:var(--muted);font-size:11px;line-height:1.65;margin:0}
.forecast-trend-toggle{border:1px solid var(--line);border-radius:999px;padding:10px 15px;background:var(--soft);color:var(--ink);font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}
.forecast-trend-toggle:disabled{opacity:.5;cursor:default}
.forecast-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.forecast-day{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:16px 13px 13px;border:1px solid var(--line);border-radius:15px;background:var(--soft);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}
.forecast-day:hover,.forecast-day.is-open{background:rgba(169,213,238,.11);border-color:var(--blue)}
.forecast-day-date{font-size:15px;font-weight:650;line-height:1.35;padding-right:9px}
.forecast-day-calendar{font-size:10px;color:var(--muted)}
.forecast-day-sky{display:flex;align-items:center;gap:8px;min-height:39px;margin:4px 0 2px;width:100%}
.forecast-day-sky>span{font-size:25px;line-height:1}.forecast-day-sky small{font-size:10px;line-height:1.4;color:var(--muted)}
.forecast-day-temperatures{display:flex;align-items:baseline;flex-wrap:wrap;gap:7px}.forecast-day-temperatures strong{font-size:24px;font-weight:500;color:#f1b777}.forecast-day-temperatures>span{font-size:17px;color:var(--blue)}
html[data-theme="light"] .forecast-day-temperatures strong{color:#a85c1b}
.forecast-day-rain{font-size:12px;margin-top:2px}.forecast-day-wind{font-size:10px;color:var(--muted)}
.forecast-day-source{font-size:9px;letter-spacing:.02em;color:var(--muted);margin-top:5px}.forecast-day-chevron{position:absolute;right:12px;top:13px;font-size:16px;color:var(--blue)}
.forecast-trend-days{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.forecast-trend-days[hidden],.forecast-day-detail[hidden],.forecast-trend-note[hidden],.forecast-long-source[hidden]{display:none}
.forecast-trend-note{margin-top:18px;max-width:780px}
.forecast-day-detail{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:16px;background:rgba(10,29,46,.22)}
html[data-theme="light"] .forecast-day-detail{background:rgba(255,255,255,.22)}
.forecast-day-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:15px}.forecast-day-detail-head h4{font-size:20px;font-weight:500;margin:0 0 6px}.forecast-day-detail-head p{font-size:10px;color:var(--muted);line-height:1.5;margin:0}
.forecast-day-close{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--ink);font-size:19px;cursor:pointer}
.forecast-detail-controls{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.forecast-hour-steps{display:flex;border:1px solid var(--line);padding:3px;border-radius:999px;background:var(--soft)}.forecast-hour-steps button{font:inherit;font-size:11px;color:var(--ink);background:transparent;border:0;border-radius:999px;padding:7px 13px;cursor:pointer}.forecast-hour-steps button[aria-pressed="true"]{background:rgba(160,214,246,.2)}.forecast-hour-steps button:disabled{opacity:.35;cursor:default}
.forecast-day-table-wrap{overflow:auto;scrollbar-width:thin;margin-top:16px}.forecast-day-table{width:100%;border-collapse:collapse;min-width:690px;text-align:left;font-size:12px}.forecast-day-table thead th{font-size:10px;font-weight:500;color:var(--muted);padding:0 13px 11px;border-bottom:1px solid var(--line)}.forecast-day-table th,.forecast-day-table td{padding:12px 13px;border-bottom:1px solid var(--line);line-height:1.5}.forecast-day-table tbody th{font-weight:500;white-space:nowrap}.forecast-day-table tbody th small{display:block;font-size:9px;text-transform:uppercase;color:var(--muted)}.forecast-day-table tbody tr:last-child>*{border-bottom:0}.forecast-hour-night{background:rgba(73,92,137,.15)}.forecast-day-table td:nth-child(2){min-width:170px}.forecast-day-table td:nth-child(2)>span{font-size:18px;margin-right:5px}
.forecast-long-source{margin-top:17px}.forecast-attribution{font-size:10px;color:var(--muted);margin:7px 0 0}.forecast-attribution a{color:inherit;text-underline-offset:3px}
.forecast-week .confidence{margin:17px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:10px}.forecast-week .confidence p{font-size:10px;line-height:1.65}
.chart-extra-toggle{display:block;width:fit-content;margin-top:8px;padding:0;border:0;background:transparent;color:var(--muted);font:inherit;font-size:10px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.chart-extras{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);overflow:auto;scrollbar-width:thin}.chart-extras[hidden]{display:none}.chart-extras svg{display:block;width:100%;height:auto;min-width:670px}.chart-wind{stroke:#a7daf3;stroke-width:2;fill:none}.chart-gust{stroke:#f0bf80;stroke-width:1.5;fill:none;stroke-dasharray:4 3}.chart-cloud{fill:#a9bbcf}
@media(max-width:1100px){.forecast-days{gap:6px}.forecast-day{padding:13px 9px}.forecast-day-date{font-size:14px}.forecast-day-temperatures strong{font-size:21px}.forecast-day-sky{gap:5px}.forecast-day-sky>span{font-size:22px}}
@media(max-width:900px){.forecast-days{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-trend-days{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-day{padding:15px}.forecast-day-date{font-size:15px}.forecast-week-head{align-items:center}.forecast-week-head h3{font-size:22px}}
@media(max-width:600px){.forecast-week{padding:18px 12px}.forecast-week-head{align-items:flex-start;flex-direction:column;gap:12px}.forecast-week-head h3{font-size:22px}.forecast-days,.forecast-trend-days{grid-template-columns:1fr;gap:7px}.forecast-day{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:4px 10px;padding:13px 15px}.forecast-day-date{grid-column:1;grid-row:1;padding:0}.forecast-day-calendar{grid-column:1;grid-row:2}.forecast-day-sky{grid-column:2;grid-row:1/span 2;flex-direction:column;align-items:flex-start;gap:5px;margin:0;min-height:0}.forecast-day-temperatures{grid-column:3;grid-row:1;gap:7px}.forecast-day-temperatures strong{font-size:23px}.forecast-day-temperatures>span{font-size:16px}.forecast-day-rain{grid-column:3;grid-row:2;margin:0;font-size:11px}.forecast-day-wind{grid-column:3;grid-row:3}.forecast-day-source{grid-column:1/span 2;grid-row:3;margin:3px 0 0}.forecast-day-chevron{right:6px;top:3px;font-size:13px}.forecast-day-detail{padding:16px 10px}.forecast-day-detail-head h4{font-size:18px}.forecast-day-table th,.forecast-day-table td{padding:10px}.chart-extras svg{width:670px}.chart-extra-toggle{font-size:10px}}
@media(prefers-reduced-motion:reduce){.forecast-day{transition:none}}

.forecast-day-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:0 0 10px}
.forecast-day-insights[hidden],.forecast-insights-note[hidden]{display:none}
.forecast-insight{padding:10px 0 10px 13px;border-left:2px solid var(--blue)}
.forecast-insight span,.forecast-insight strong{display:block;font-weight:400;line-height:1.6}
.forecast-insight span{font-size:10px;color:var(--muted)}.forecast-insight strong{font-size:13px;color:var(--ink);margin-top:3px}
.forecast-insights-note{font-size:10px;color:var(--muted);line-height:1.6;margin:0 0 16px;max-width:870px}
@media(max-width:600px){.forecast-day-insights{grid-template-columns:1fr 1fr;gap:8px}.forecast-insight{padding-left:9px}.forecast-insight strong{font-size:12px}}

.forecast-data-notes,.map-data-notes{font-size:11px;color:var(--muted);margin-top:14px}.forecast-data-notes>summary,.map-data-notes>summary{cursor:pointer;display:list-item;width:fit-content}.forecast-data-notes>p{font-size:10px;line-height:1.6}.forecast-data-notes .confidence{margin-top:12px}.map-data-notes{margin:12px 0 0}.map-data-notes .map-forecast-source{margin:8px 0 0}.map-forecast-warning{font-size:11px;color:var(--muted);margin:8px 0}.map-forecast-warning[hidden],#forecastStatus[hidden]{display:none}

/* The sky symbol leads each day; the short label supports it. */
.forecast-day-sky{flex-direction:column;align-items:flex-start;gap:2px;margin:0;min-height:84px}
.forecast-day-sky small{font-size:10px}
.forecast-day-rain{display:flex;align-items:center;gap:4px}
.forecast-day-rain::before{content:'💧';font-size:12px}
@media(max-width:600px){
 .forecast-day{grid-template-columns:minmax(0,1.15fr) minmax(70px,1fr) minmax(0,1fr);align-items:center}
 .forecast-day-sky{grid-row:1/span 3;align-items:center;min-height:0;text-align:center}
 .forecast-day-detail{grid-column:1/-1;margin:0 0 7px;border-color:var(--blue)}
}

/* Confine wide tables to their horizontal scroll area. */
.forecast-week,.forecast-days,.forecast-day-detail,.forecast-day-table-wrap{min-width:0;max-width:100%;box-sizing:border-box}
.forecast-day-detail{width:100%;overflow:hidden}
.forecast-day-table-wrap{width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.forecast-day-detail-head>div{min-width:0;overflow-wrap:anywhere}
