/* DMX_WHEEL_TOUCH_SCROLL_ROOT_V62AD
   Fix final PC + móvil para /niveles/ y /nivel/*/etapas/.
   Causa confirmada por probe: wheel/touch cae sobre tarjetas/CTAs con transform transition,
   animación dmxLevelFadeUp y will-change transform/filter; en esos puntos el scroll queda en 0.
   Sin JS. Sin preventDefault. Sin tocar index.php principal.
*/

/* Base para PC + móvil */
html,
body{
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior-x:none !important;
  overscroll-behavior-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
}

body .dmxApp.dmxMap,
body .dmxApp .dmxPath,
body .dmxApp .dmxStagePickerGrid{
  overflow-x:visible !important;
  overflow-y:visible !important;
  overscroll-behavior:auto !important;
  overscroll-behavior-y:auto !important;
}

body .dmxApp .dmxPath > article.dmxMission,
body .dmxApp .dmxPath > article.dmxMission.open,
body .dmxApp .dmxPath > article.dmxMission.started,
body .dmxApp .dmxPath > article.dmxMission.done,
body .dmxApp .dmxPath > article.dmxMission.locked,
body .dmxApp .dmxPath > article.dmxMission.dmxDiplomaMission,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard.open,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard.started,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard.done,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard.locked{
  overscroll-behavior:auto !important;
  overscroll-behavior-y:auto !important;
  animation:none !important;
  will-change:auto !important;
  transform:none !important;
  translate:none !important;
  transition:filter .12s ease, box-shadow .12s ease, background-color .12s ease, color .12s ease, border-color .12s ease !important;
}

body .dmxApp .dmxPath > article.dmxMission form,
body .dmxApp .dmxPath > article.dmxMission a,
body .dmxApp .dmxPath > article.dmxMission button,
body .dmxApp .dmxPath > article.dmxMission .dmxBtn,
body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard form,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxLockedBtn,
body .dmxApp [data-dmx-plan-gate-open],
body .dmxApp [data-analysis-lock],
body .dmxApp [data-dmx-diploma-open]{
  overscroll-behavior:auto !important;
  overscroll-behavior-y:auto !important;
  animation:none !important;
  will-change:auto !important;
  transform:none !important;
  translate:none !important;
  transition:filter .12s ease, box-shadow .12s ease, background-color .12s ease, color .12s ease, border-color .12s ease !important;
  -webkit-user-drag:none !important;
  user-drag:none !important;
  -webkit-touch-callout:none !important;
}

body .dmxApp .dmxPath > article.dmxMission:hover,
body .dmxApp .dmxPath > article.dmxMission:active,
body .dmxApp .dmxPath > article.dmxMission form:hover,
body .dmxApp .dmxPath > article.dmxMission form:active,
body .dmxApp .dmxPath > article.dmxMission a:hover,
body .dmxApp .dmxPath > article.dmxMission a:active,
body .dmxApp .dmxPath > article.dmxMission button:hover,
body .dmxApp .dmxPath > article.dmxMission button:active,
body .dmxApp .dmxPath > article.dmxMission .dmxBtn:hover,
body .dmxApp .dmxPath > article.dmxMission .dmxBtn:active,
body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn:hover,
body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn:active,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard:hover,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard:active,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard form:hover,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard form:active,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a:hover,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a:active,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button:hover,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button:active,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn:hover,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn:active,
body .dmxApp [data-dmx-plan-gate-open]:hover,
body .dmxApp [data-dmx-plan-gate-open]:active,
body .dmxApp [data-analysis-lock]:hover,
body .dmxApp [data-analysis-lock]:active,
body .dmxApp [data-dmx-diploma-open]:hover,
body .dmxApp [data-dmx-diploma-open]:active{
  animation:none !important;
  will-change:auto !important;
  transform:none !important;
  translate:none !important;
}

/* PC: mouse wheel / trackpad sobre CTAs y tarjetas */
@media (hover:hover) and (pointer:fine){
  body .dmxApp .dmxPath > article.dmxMission,
  body .dmxApp .dmxPath > article.dmxMission *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard *{
    -webkit-user-drag:none !important;
    user-drag:none !important;
  }

  body .dmxApp .dmxPath > article.dmxMission form *,
  body .dmxApp .dmxPath > article.dmxMission a *,
  body .dmxApp .dmxPath > article.dmxMission button *,
  body .dmxApp .dmxPath > article.dmxMission .dmxBtn *,
  body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard form *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxLockedBtn *{
    -webkit-user-drag:none !important;
    user-drag:none !important;
  }
}

/* Móvil/tablet: pan vertical nativo */
@media (max-width:900px), (hover:none), (pointer:coarse){
  html,
  body,
  body .dmxApp.dmxMap,
  body .dmxApp .dmxPath,
  body .dmxApp .dmxStagePickerGrid,
  body .dmxApp .dmxPath > article.dmxMission,
  body .dmxApp .dmxPath > article.dmxMission *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard *{
    touch-action:pan-y !important;
    -webkit-user-select:none !important;
    user-select:none !important;
    -webkit-user-drag:none !important;
    user-drag:none !important;
    -webkit-touch-callout:none !important;
  }

  body .dmxApp .dmxPath > article.dmxMission form *,
  body .dmxApp .dmxPath > article.dmxMission a *,
  body .dmxApp .dmxPath > article.dmxMission button *,
  body .dmxApp .dmxPath > article.dmxMission .dmxBtn *,
  body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard form *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn *,
  body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxLockedBtn *{
  }
}

body .dmxApp input,
body .dmxApp textarea,
body .dmxApp select,
body .dmxApp label{
  pointer-events:auto !important;
  -webkit-user-select:text !important;
  user-select:text !important;
  touch-action:manipulation !important;
}
/* DMX_WHEEL_TOUCH_SCROLL_ROOT_V62AD_END */

/* DMX_CLICK_RESTORE_AFTER_V62AD_V62AE
   V62AD bloqueó clicks por selectores tipo form * que alcanzan al propio button/a.
   Restauramos pointer-events en elementos accionables reales y dejamos pointer-events:none solo en hijos visuales.
*/
body .dmxApp .dmxPath > article.dmxMission form,
body .dmxApp .dmxPath > article.dmxMission a,
body .dmxApp .dmxPath > article.dmxMission button,
body .dmxApp .dmxPath > article.dmxMission .dmxBtn,
body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard form,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxLockedBtn,
body .dmxApp [data-dmx-plan-gate-open],
body .dmxApp [data-analysis-lock],
body .dmxApp [data-dmx-diploma-open]{
  pointer-events:auto !important;
  cursor:pointer;
}

body .dmxApp .dmxPath > article.dmxMission a > *,
body .dmxApp .dmxPath > article.dmxMission button > *,
body .dmxApp .dmxPath > article.dmxMission .dmxBtn > *,
body .dmxApp .dmxPath > article.dmxMission .dmxLockedBtn > *,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard a > *,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard button > *,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxBtn > *,
body .dmxApp .dmxStagePickerGrid > article.dmxStagePickCard .dmxLockedBtn > *,
body .dmxApp [data-dmx-plan-gate-open] > *,
body .dmxApp [data-analysis-lock] > *,
body .dmxApp [data-dmx-diploma-open] > *{
  pointer-events:none !important;
}
/* DMX_CLICK_RESTORE_AFTER_V62AD_V62AE_END */
