.filter-toggle { display: none; }

@media (max-width: 700px) {
  header { min-height: 56px; padding: .6rem .9rem; align-items: flex-start; }
  .brand { font-size: 1rem; padding-top: .12rem; }
  nav { gap: .7rem; font-size: .86rem; flex-wrap: wrap; justify-content: flex-end; }
  main { margin: 1.1rem auto; padding: 0 .75rem; }
  h1 { font-size: 1.6rem; }
  .intro { font-size: .94rem; }
  .counters { display: flex; overflow-x: auto; gap: .45rem; margin: .75rem 0; padding-bottom: .15rem; }
  .counter { flex: 0 0 auto; min-width: 112px; padding: .45rem .6rem; }
  .counter strong { font-size: 1.2rem; }
  .filter-toggle { display: block; width: 100%; min-height: 40px; margin: .35rem 0 .1rem; background: #eef4fb; color: #124982; }
  .filter-bar { display: grid; grid-template-columns: 1fr; align-items: center; }
  .filter-bar[hidden] { display: none !important; }
  .filter-bar label { margin-top: .35rem; }
  .filter-bar select, .filter-bar button { width: 100%; min-height: 42px; }
  .filter-bar span { margin: .25rem 0; }
  .legend { line-height: 1.65; margin-bottom: -.6rem; }
  .schedule { max-height: calc(100dvh - 315px); }
  .schedule tr[hidden] { display: none !important; }
  .schedule tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: .85rem; }
  .schedule td { width: auto; }
  .schedule td:nth-child(1), .schedule td:nth-child(2), .schedule td:nth-child(8), .schedule td:nth-child(9) { grid-column: 1 / -1; }
}
