@media (max-width: 1023px) {
  .today-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
  .week-grid  { grid-template-columns: 1fr; }
}

@media (max-width: 639px) {
  .app-header { padding: var(--space-3) var(--space-4); flex-wrap: wrap; }
  .app-main { padding: var(--space-3); }
  .brand-name { font-size: var(--type-title-md); }
  .today-grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--space-2); }
  .today-card { padding: var(--space-2) var(--space-3); }
  .today-town { font-size: var(--type-body-md); }
  .today-temp, .today-icon { font-size: 24px; }
  .week-days { gap: 0; }
  .day-name { font-size: 10px; }
  .day-icon { font-size: 18px; }
  .day-hi, .day-lo { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
