/* LAY-04: 44x44 CSS-px minimum touch targets (WCAG 2.5.5 / Apple HIG) on touch screens.
   Scoped to (pointer: coarse) so dense desktop admin tables are unchanged.
   Selectors use an `html` prefix to out-rank page-level inline styles linked before them. */
@media (pointer: coarse), (max-width: 820px) {
  html .btn, html .btn-sm, html .btn-outline, html .btn-xs,
  html .rsvp-pill, html .wa-btn,
  html button.tab, html .tab-btn, html .pill-btn, html .chip-btn,
  html .mobile-menu-btn, html .nav-dropdown-toggle, html .dropdown-toggle,
  html .lyb-navctl-btn,
  html table .btn, html table button, html table a.btn, html table .link-btn {
    min-height: 44px; min-width: 44px; box-sizing: border-box;
  }
  html .btn-sm, html table .btn-sm { padding-top: 0.6rem; padding-bottom: 0.6rem; }
  html .rsvp-pill, html .ev-r .rsvp-pill { padding: 0.55rem 0.9rem; font-size: 0.8rem; }
  html .mobile-menu-btn { padding: 0.75rem; }
  /* Spacing so adjacent targets don't touch */
  html table td .btn + .btn, html table td button + button, html table td .btn + button { margin-left: 0.4rem; }
  html .rsvp-pills { gap: 0.4rem; }
  /* Text inputs/selects used as controls inside tables */
  html table select, html table input[type=checkbox], html table input[type=radio] { min-height: 24px; }
  html table select { min-height: 44px; }
  /* Form fields stay 16px to prevent iOS zoom */
  html input:not([type=checkbox]):not([type=radio]), html select, html textarea { font-size: max(16px, 1rem); }
}
@media (prefers-reduced-motion: reduce) {
  html *, html *::before, html *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
