/* Public calendar only: keep the shared website theme untouched. */
.faot-calendar .cal-wrap { min-width: 0; }
.faot-calendar .cal-grid,
.faot-calendar .week-grid { min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.faot-calendar .cal-grid table,
.faot-calendar .week-grid table { table-layout: fixed; width: 100%; }
.faot-calendar .cal-grid th,
.faot-calendar .week-grid th { width: calc(100% / 7); }
.faot-calendar .cal-grid td,
.faot-calendar .week-grid td { padding: 8px; }
.faot-calendar .cal-event { min-width: 0; padding: 9px; overflow-wrap: anywhere; }
.faot-calendar .cal-event .t { font-size: .9rem; line-height: 1.4; }
.faot-calendar .cal-event .m { font-size: .8rem; line-height: 1.5; }
.faot-calendar .availability { margin-top: 6px; font-size: .8rem; font-weight: 800; line-height: 1.4; }
.faot-calendar .cal-event.is-full .m { color: inherit; }
.faot-calendar .cal-event.is-full::after { content: none; }
.faot-calendar .cal-grid:focus-visible,
.faot-calendar .week-grid:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
@media (max-width: 420px) {
  /* Existing header actions need a second row on narrow phones. */
  body:has(.faot-calendar) .header .row { flex-wrap: wrap; }
  body:has(.faot-calendar) .header .actions { flex-wrap: wrap; }
}
@media (max-width: 800px) {
  /* Scroll the calendar, never the page; retain readable cards and day alignment. */
  .faot-calendar .cal-grid table,
  .faot-calendar .week-grid table { min-width: 1050px; }
  .faot-calendar .cal-grid::before,
  .faot-calendar .week-grid::before { content: 'Veeg opzij voor alle dagen →'; display: block; padding: 10px; font-size: .85rem; color: var(--muted); }
  .faot-calendar .cal-head { align-items: flex-start; }
  .faot-calendar .tabs,
  .faot-calendar .cal-nav { gap: 6px; }
}
