.weather-notice { border: 1px solid #d7e3dc; background: #edf4ef; padding: 18px 22px; border-radius: 14px; margin-bottom: 24px; }
.weather-notice p { margin: 6px 0 0; }
.weather-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 24px; align-items: start; }
.weather-grid > *, .weather-card, .weather-row > * { min-width: 0; }
.weather-rules { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 24px; }
.weather-rule { border: 1px solid var(--line,#e0e5df); padding: 18px; border-radius: 14px; background: white; }
.weather-rule strong { display: block; font-family: var(--font-heading); font-size: 1.3rem; line-height: 1.5; color: #24483f; }
.weather-rule span { font-size: .85rem; line-height: 1.6; }
.weather-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; justify-content: space-between; border-top: 1px solid #e0e5df; padding: 20px 24px; }
.weather-row p { margin: 4px 0; }
.weather-status { display: inline-block; border-radius: 8px; background: #f9edd2; color: #704c12; font-size: .8rem; padding: 6px 10px; line-height: 1.6; }
.weather-status.blocked { background: #f9e8e5; color: #8b2c23; }
.weather-status.suitable, .weather-status.not_applicable { background: #edf4ef; color: #24483f; }
.weather-live { margin-top: 18px; }
.weather-live h3 { margin-top: 20px; }
.weather-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.weather-metric { padding: 14px; background: #f5f7f2; border-radius: 10px; }
.weather-metric strong { display: block; font-family: var(--font-heading); font-size: 1.55rem; color: #24483f; }
.weather-metric span { font-size: .8rem; }
.weather-checks { list-style: none; padding: 0; margin: 14px 0; }
.weather-checks li { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 5px 15px; padding: 12px 0; border-bottom: 1px solid #e0e5df; line-height: 1.7; }
.weather-checks small { color: #647168; }
.weather-mail { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; padding: 18px; border: 1px solid #e0e5df; border-radius: 12px; background: #fff; }
.weather-card .panel-body > p:first-child { margin-top: 0; }
.weather-card a:not(.btn) { text-decoration: underline; text-underline-offset: 3px; }
.weather-card .field-row { align-items: end; }
.weather-card .note { font-size: .8rem; }
.weather-card .form-actions { flex-wrap: wrap; }
.weather-summary { margin-bottom: 24px; }
@media (max-width: 1100px) { .weather-grid { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 560px) {
  .weather-rules { gap: 8px; }
  .weather-rule { padding: 12px 10px; }
  .weather-rule strong { font-size: 1rem; }
  .weather-rule span { font-size: .75rem; }
  .weather-row { padding: 18px; }
  .weather-notice { padding: 16px; }
  .weather-card .field-row { grid-template-columns: minmax(0,1fr); }
}
