/* DMX_MODAL_SCROLLBAR_FIX_V52S1
   Corrige scrollbars horizontales/verticales internos accidentales
   en modales tipo acceso, bloqueo, upgrade, paywall y planes.
*/

html,
body {
  overflow-x: hidden !important;
}

/* Wrappers/cards de modales y variantes comunes */
:where(
  [role="dialog"],
  [aria-modal="true"],
  dialog,
  [class*="modal" i],
  [id*="modal" i],
  [class*="paywall" i],
  [class*="gate" i],
  [class*="upgrade" i],
  [class*="locked" i],
  [class*="feature-lock" i],
  [class*="plan-lock" i],
  [class*="access-lock" i]
) {
  box-sizing: border-box !important;
  max-width: calc(100vw - 28px) !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

:where(
  [role="dialog"],
  [aria-modal="true"],
  dialog,
  [class*="modal" i],
  [id*="modal" i],
  [class*="paywall" i],
  [class*="gate" i],
  [class*="upgrade" i],
  [class*="locked" i],
  [class*="feature-lock" i],
  [class*="plan-lock" i],
  [class*="access-lock" i]
)::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

/* Evita que botones, textos o filas fuercen ancho extra dentro del modal */
:where(
  [role="dialog"],
  [aria-modal="true"],
  dialog,
  [class*="modal" i],
  [id*="modal" i],
  [class*="paywall" i],
  [class*="gate" i],
  [class*="upgrade" i],
  [class*="locked" i],
  [class*="feature-lock" i],
  [class*="plan-lock" i],
  [class*="access-lock" i]
) *,
:where(
  [role="dialog"],
  [aria-modal="true"],
  dialog,
  [class*="modal" i],
  [id*="modal" i],
  [class*="paywall" i],
  [class*="gate" i],
  [class*="upgrade" i],
  [class*="locked" i],
  [class*="feature-lock" i],
  [class*="plan-lock" i],
  [class*="access-lock" i]
)::before,
:where(
  [role="dialog"],
  [aria-modal="true"],
  dialog,
  [class*="modal" i],
  [id*="modal" i],
  [class*="paywall" i],
  [class*="gate" i],
  [class*="upgrade" i],
  [class*="locked" i],
  [class*="feature-lock" i],
  [class*="plan-lock" i],
  [class*="access-lock" i]
)::after {
  box-sizing: border-box !important;
}

/* Desktop: estos modales visualmente no deben mostrar barras internas */
@media (min-width: 769px) {
  :where(
    [role="dialog"],
    [aria-modal="true"],
    dialog,
    [class*="modal" i],
    [id*="modal" i],
    [class*="paywall" i],
    [class*="gate" i],
    [class*="upgrade" i],
    [class*="locked" i],
    [class*="feature-lock" i],
    [class*="plan-lock" i],
    [class*="access-lock" i]
  ) {
    overflow-y: visible !important;
  }
}

/* Móvil: permite desplazamiento si realmente no cabe, pero sin barra horizontal */
@media (max-width: 768px) {
  :where(
    [role="dialog"],
    [aria-modal="true"],
    dialog,
    [class*="modal" i],
    [id*="modal" i],
    [class*="paywall" i],
    [class*="gate" i],
    [class*="upgrade" i],
    [class*="locked" i],
    [class*="feature-lock" i],
    [class*="plan-lock" i],
    [class*="access-lock" i]
  ) {
    max-width: calc(100vw - 18px) !important;
    max-height: calc(100dvh - 22px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}
