/* Weather cards use existing light/dark design tokens and contain no location tracking. */
.weather-section{margin:2px 0 40px}.weather-section .section-heading{margin-bottom:8px}.weather-lead{font-size:12px;color:var(--muted);margin-bottom:19px}
.weather-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.weather-summary{display:block;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--paper);padding:16px;transition:border-color .15s}.weather-summary:hover{border-color:var(--green)}
.weather-summary-head{display:flex;flex-wrap:wrap;gap:6px 12px;justify-content:space-between;align-items:center}.weather-summary-head strong{color:var(--green);font-size:12px}.weather-summary-head span{font-size:11px;color:var(--muted)}
.weather-station{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:20px;min-width:0}.weather-station.compact{margin-top:10px;padding:12px;border-radius:6px;background:var(--bg)}.weather-station h3{font-size:15px;margin-bottom:7px}.weather-station.compact h3{font-size:13px}.weather-result{min-height:78px;font-size:12px;color:var(--muted);line-height:1.75}.weather-observed{display:flex;align-items:center;gap:13px;color:var(--text)}.weather-glyph{font-size:28px;line-height:1.2}.weather-observed strong{font-size:22px;line-height:1.4;font-variant-numeric:tabular-nums;font-weight:650}.weather-desc{font-size:11px;color:var(--muted)}.weather-extra{display:flex;gap:5px 13px;flex-wrap:wrap;margin:8px 0;color:var(--green);font-size:11px}.weather-result>small{font-size:10px;color:var(--muted)}.weather-normal{border-top:1px dashed var(--line);margin-top:12px;padding-top:10px;font-size:11px;color:var(--muted);line-height:1.65}.weather-normal span{display:block;font-weight:600;color:var(--green);margin-bottom:3px;font-size:10px}
.weather-status{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:16px 0 8px;color:var(--muted);font-size:11px}.weather-update-feedback{flex:1;min-width:175px}.weather-update-feedback[data-state="success"]{color:var(--green);font-weight:600}.weather-update-feedback[data-state="failure"],.weather-update-feedback[data-state="stale"]{color:var(--accent);font-weight:600}.weather-status .button{margin:0}.weather-credit{font-size:10px;line-height:1.9;color:var(--muted);margin:7px 0 22px}.weather-credit a{text-decoration:underline;text-underline-offset:3px;color:var(--green)}.weather-day-list{display:grid;gap:18px;margin-top:17px;margin-bottom:22px}.weather-day{border:1px solid var(--line);background:var(--paper);padding:24px;border-radius:10px}.weather-day h2{font-size:23px;margin-bottom:15px}.weather-station-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.weather-day .weather-station{background:var(--bg)}.weather-in-day{margin-top:25px}.weather-in-day h2{font-size:23px}.weather-in-day .weather-station.compact{background:var(--paper);margin-top:0}
@media(max-width:980px){.mobile-nav{grid-template-columns:repeat(7,minmax(0,1fr))}.mobile-nav a{font-size:9px;gap:3px}.mobile-nav .icon{width:20px;height:20px}}
@media(max-width:760px){.weather-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.weather-summary{padding:11px}.weather-summary-head strong{font-size:11px}.weather-summary-head span{font-size:10px}.weather-station.compact{padding:10px}.weather-station.compact h3{font-size:12px}.weather-observed{gap:7px}.weather-glyph{font-size:23px}.weather-observed strong{font-size:18px}.weather-result{min-height:64px}.weather-normal{font-size:10px}.weather-day{padding:16px}.weather-day h2{font-size:21px}.weather-station-grid{grid-template-columns:1fr;gap:11px}.weather-day .weather-station{padding:16px}.weather-section{margin-bottom:30px}.weather-status{align-items:flex-start}}
@media(max-width:359px){.weather-summary-grid{grid-template-columns:1fr}.weather-summary{padding:13px}.weather-station.compact{min-height:0}.weather-day{padding:13px}.mobile-nav{padding-left:3px;padding-right:3px}.mobile-nav a{font-size:9px}.mobile-nav .icon{width:18px;height:18px}}
@media print{.weather-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.weather-day{break-inside:avoid}.weather-status .button{display:none}}

/* Weather apparent temperature and locally timed forecast; light and dark themes. */
.weather-feels{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 9px;margin-top:6px;color:var(--text);font-size:11px}
.weather-feels span{color:var(--muted)}.weather-feels strong{font-size:17px;font-weight:650;color:var(--green);font-variant-numeric:tabular-nums}
.weather-feels-missing{font-size:10px;color:var(--muted)}
.weather-hour-sample{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:8px 10px;margin-top:9px;background:var(--sage);border:1px solid var(--line);border-radius:6px;font-size:11px;line-height:1.6}
.weather-hour-sample .weather-hour-label{flex-basis:100%;font-size:10px;font-weight:600;color:var(--green)}
.weather-hour-sample strong{font-size:15px;color:var(--text);font-weight:700;font-variant-numeric:tabular-nums}
.weather-hour-sample>span:not(.weather-hour-label){color:var(--muted)}
.weather-cold-note,.weather-visit-note,.weather-quick-tip{font-size:11px;line-height:1.8;margin-top:10px;color:var(--muted)}
.weather-cold-note{color:var(--accent);font-weight:600}
.weather-visit-note{border-left:3px solid var(--green);padding:7px 12px;margin-top:14px;background:var(--sage)}
.weather-quick-tip{margin-bottom:15px}
.weather-summary .weather-hour-sample{padding:7px 9px;gap:3px 7px}
.weather-summary .weather-hour-sample strong{font-size:13px}
@media(max-width:760px){.weather-feels strong{font-size:15px}.weather-hour-sample{padding:7px 8px}.weather-summary .weather-hour-sample{font-size:10px}}

/* Time-limited JMA cross-check 2026-11-04; not a replacement for live Open-Meteo values. */
.weather-reviewed-brief{margin:16px 0 23px;padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:10px}
.weather-reviewed-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px 14px;margin-bottom:12px}
.weather-reviewed-heading strong{font-size:14px;color:var(--text)}
.weather-reviewed-heading span{font-size:10px;color:var(--muted)}
.weather-reviewed-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.weather-reviewed-card{min-width:0;background:var(--sage);padding:12px;border-radius:8px;border:1px solid var(--line)}
.weather-reviewed-card[data-review-type="rain"]{border-left:3px solid var(--accent)}
.weather-reviewed-card h3{font-size:13px;line-height:1.5;font-weight:650;color:var(--text);margin:0 0 6px}
.weather-reviewed-card p{font-size:11px;line-height:1.85;color:var(--muted);margin:0 0 8px}
.weather-reviewed-card a{font-size:10px;line-height:1.65;text-decoration:underline;color:var(--green);text-underline-offset:3px}
.weather-reviewed-note{font-size:10px;color:var(--muted);line-height:1.8;margin:10px 0 0}
.weather-in-day .weather-reviewed-grid{grid-template-columns:1fr}
@media(max-width:850px){.weather-reviewed-grid{grid-template-columns:1fr}.weather-reviewed-brief{padding:13px}.weather-reviewed-card{padding:12px}}
@media print{.weather-reviewed-brief{break-inside:avoid}}
