.loading-weather { margin-bottom: 16px; padding: 14px 0 10px; background: #fff; border-top: 3px solid #0e806b; border-bottom: 1px solid #d1dcea; color: #182e43; }
.weather-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 16px 12px; }
.weather-heading h2 { margin: 0 0 4px; font-size: 19px; line-height: 1.35; }
.weather-heading p { margin: 0; color: #53657a; font-size: 13px; }
.weather-update { display: flex; align-items: center; gap: 10px; color: #53657a; font-size: 12px; }
.weather-refresh { width: 34px; height: 34px; padding: 0; flex-shrink: 0; font-size: 23px; line-height: 1; }
.weather-refresh:disabled { opacity: .5; cursor: wait; }
.weather-days { display: grid; grid-template-columns: repeat(var(--weather-columns, 7), minmax(0, 1fr)); border-top: 1px solid #e0e7ed; }
.weather-week + .weather-week { border-top: 1px solid #d1dcea; }
.weather-week-heading { display: flex; align-items: baseline; gap: 12px; padding: 8px 16px; background: #f7f9fb; font-size: 12px; color: #53657a; }
.weather-week-heading strong { color: #253f52; font-size: 13px; }
.weather-day { min-width: 0; min-height: 118px; padding: 12px 16px; display: flex; flex-direction: column; gap: 6px; border-right: 1px solid #e0e7ed; }
.weather-day:last-child { border-right: 0; }
.weather-today { background: #eef8f5; }
.weather-date { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; font-size: 13px; }
.weather-date span { color: #53657a; font-size: 12px; }
.weather-description { font-size: 17px; line-height: 1.35; overflow-wrap: anywhere; }
.weather-temperature { font-size: 15px; font-variant-numeric: tabular-nums; }
.weather-notice { font-size: 12px; color: #53657a; overflow-wrap: anywhere; }
.weather-wet { background: #fff0f0; color: #b42318; box-shadow: inset 0 3px #d92d20; }
.weather-wet .weather-notice, .weather-wet .weather-date span { color: #a6241c; }
.weather-wet .weather-notice { font-weight: 700; }
.weather-status { margin: 0 16px 12px; padding: 9px 12px; background: #fff7dd; color: #795209; font-size: 13px; }
.weather-stale { border-top-color: #b88211; }
.weather-footnote { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 20px; padding: 10px 16px 0; font-size: 11px; color: #66788b; line-height: 1.6; }
.weather-footnote a { color: #53657a; text-underline-offset: 2px; }
@media (max-width: 1050px) { .weather-day { padding: 12px 9px; } .weather-description { font-size: 16px; } }
@media (max-width: 700px) {
  .weather-heading { align-items: flex-start; padding: 0 12px 12px; }
  .weather-heading h2 { font-size: 18px; }
  .weather-update { max-width: 145px; font-size: 11px; gap: 5px; }
  .weather-days { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .weather-day { min-height: 124px; padding: 12px; border-bottom: 1px solid #e0e7ed; }
  .weather-today { grid-column: 1 / -1; min-height: 118px; }
  .weather-footnote { padding: 10px 12px 0; }
  .weather-week-heading { padding-left: 12px; padding-right: 12px; }
}
