.weather-monitoring { max-width: 100%; }
.weather-monitoring h1 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
.weather-monitoring h2 { font-size: 1.3rem; }
.weather-monitoring h3 { font-size: 1.05rem; }
.weather-monitoring p, .weather-monitoring dd, .weather-monitoring code { overflow-wrap: anywhere; }
.weather-panel { border: 1px solid var(--admin-border); padding: 1.1rem; margin-block: 1.2rem; border-radius: .25rem; min-width: 0; }
.weather-panel-heading { display: flex; justify-content: space-between; align-items: baseline; gap: .8rem; flex-wrap: wrap; }
.weather-panel-heading h2 { margin: 0; }
.weather-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem 1.4rem; margin-block: 1.2rem; }
.weather-facts > div { min-width: 0; }
.weather-facts dt { font-size: .8rem; font-weight: 600; color: #50555a; }
.weather-facts dd { margin: .3rem 0 0; }
.weather-monitoring small { display: block; color: #50555a; margin-top: .25rem; }
.weather-note { color: #50555a; font-size: .9rem; }
.weather-notice { padding: .8rem; background: #eef5ff; border-left: 3px solid var(--admin-accent); }
.weather-state { display: inline-block; padding: .2rem .5rem; font-size: .85rem; border-radius: .2rem; background: #e9ecef; color: #333a40; }
.weather-state--good { background: #e0eee7; color: #1e523a; }
.weather-state--caution { background: #fff0cb; color: #654700; }
.weather-error { color: #94252b; }
.weather-snow-total { font-size: 1.45rem; font-weight: 600; }
.weather-table-scroll { max-width: 100%; overflow-x: auto; margin-block: .8rem; }
.weather-table { min-width: 36rem; font-size: .9rem; }
.weather-table th, .weather-table td { padding: .65rem; vertical-align: top; }
.weather-table caption { caption-side: bottom; color: #50555a; }
.weather-section-links, .weather-controls { display: flex; gap: .65rem 1rem; flex-wrap: wrap; margin-block: 1rem; }
.weather-section-links a, .weather-controls .btn { min-height: 44px; display: inline-flex; align-items: center; }
.weather-controls form { margin: 0; }
.weather-alert { border-top: 1px solid var(--admin-border); padding-top: 1rem; margin-top: 1rem; }
.weather-diagnostics { border-top: 1px solid var(--admin-border); margin-top: 1rem; padding-top: .75rem; }
.weather-diagnostics summary { cursor: pointer; min-height: 44px; padding-block: .4rem; }
.weather-diagnostics pre { max-width: 100%; max-height: 28rem; overflow: auto; background: #f4f6f8; padding: .75rem; margin-block: .75rem; font-size: .8rem; }
@media (max-width: 700px) {
  .weather-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
  .weather-panel { padding: .85rem; }
}
@media (max-width: 440px) {
  .weather-facts { grid-template-columns: minmax(0, 1fr); }
  .weather-controls, .weather-controls form, .weather-controls .btn { width: 100%; }
}
