/* Capa transversal de compatibilidad móvil. No redefine la identidad visual. */
html {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 100svh;
  overscroll-behavior-x: none;
  touch-action: pan-y;
}

html {
  touch-action: pan-y;
  overscroll-behavior-x: none;
}

img,
picture,
video,
canvas,
svg {
  max-width: 100%;
}

img,
video {
  height: auto;
}

button,
input,
select,
textarea {
  max-width: 100%;
  font-family: inherit;
}

button,
a,
input,
select,
textarea {
  touch-action: manipulation;
}

.modal,
.modal-overlay,
.dashboard-modal,
.user-modal,
.tienda-modal,
.liq-modal,
.tamaku-legal-modal,
.repeat-booking-modal {
  padding-top: max(10px, env(safe-area-inset-top));
  padding-right: max(10px, env(safe-area-inset-right));
  padding-bottom: max(10px, env(safe-area-inset-bottom));
  padding-left: max(10px, env(safe-area-inset-left));
}

.modal-content,
.modal-card,
.dashboard-modal-card,
.user-dialog,
.tienda-modal-card,
.liq-modal form,
.tamaku-legal-card,
.repeat-booking-dialog {
  max-width: calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right));
  max-height: calc(100dvh - 20px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

@supports not (overflow: clip) {
  html { overflow-x: hidden; }
}

@media (max-width: 900px) {
  body {
    display: block !important;
    min-height: 100dvh;
  }

  body > .sidebar,
  .sidebar {
    display: none !important;
  }

  body > .main-content,
  body > main,
  .main-content,
  main {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    padding-left: clamp(12px, 3vw, 18px) !important;
    padding-right: clamp(12px, 3vw, 18px) !important;
  }

  body > .main-content > *,
  .main-content > *,
  main > * {
    max-width: 100% !important;
    min-width: 0 !important;
  }

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size: max(16px, 1em);
  }

  .main-content,
  main,
  section,
  article,
  form,
  fieldset,
  .modal-content,
  .dashboard-modal-card,
  .user-dialog,
  .tienda-modal-card,
  .repeat-booking-dialog {
    min-width: 0;
  }

  .mobile-tab-bar {
    padding-bottom: max(8px, env(safe-area-inset-bottom));
  }
}

@media (max-height: 520px) and (orientation: landscape) {
  .modal,
  .modal-overlay,
  .dashboard-modal,
  .user-modal,
  .tienda-modal,
  .liq-modal,
  .tamaku-legal-modal,
  .repeat-booking-modal {
    align-items: flex-start;
    overflow-y: auto;
  }
}

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