/* Mobile interaction stability: keep vertical scrolling firm and suppress double-tap zoom on controls. */
html,
body {
  overscroll-behavior: none;
  -webkit-text-size-adjust: 100%;
}

button,
a,
input,
select,
textarea,
summary,
[role="button"],
[data-action],
[data-view],
[data-job] {
  touch-action: manipulation;
}

@media (max-width: 720px) {
  .content,
  .detail-scroll,
  .modal,
  .schedule-list,
  .sidebar.sidebar-open nav {
    touch-action: pan-y;
    overscroll-behavior: contain;
  }

  .content,
  .calendar-content,
  .detail-panel,
  .modal-layer {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .calendar-content,
  .detail-panel,
  .modal,
  .sidebar {
    scroll-snap-type: none !important;
  }

  .btn:active,
  .nav-item:active,
  .job-card:active,
  [data-job]:active {
    transform: none !important;
  }
}

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