/*
 * V4.3.1 scroll recovery
 * Keeps mouse-wheel and touch scrolling available while feature views are open.
 */
html,
body {
  min-height: 100%;
  overscroll-behavior-y: auto !important;
}

/* The modal layer itself is a valid vertical scroll surface. */
#featureModal.open,
#profileModal.open {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: auto !important;
  touch-action: pan-y;
  scrollbar-gutter: stable;
}

#featureModal.open > .modal-backdrop,
#profileModal.open > .modal-backdrop {
  position: fixed;
}

/* Ordinary feature dialogs scroll as a page instead of trapping the wheel. */
#featureModal.open > .modal-dialog:not(.dictionary-pro-dialog):not(.writing-studio-dialog):not(.writing-studio-fullscreen):not(.grammar-studio-dialog):not(.exercise-studio-dialog):not(.flashcard-studio-dialog) {
  max-height: none !important;
  overflow: visible !important;
}

#profileModal.open > .modal-dialog {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: auto !important;
}

/* Explicit scroll surfaces used by full-screen learning studios. */
.dictionary-pro-dialog .dict413-results,
.dictionary-pro-dialog .dict413-detail-pane,
.dictionary-pro-dialog .dict413-panel,
.writing-studio-dialog .modal-body,
.writing-studio-fullscreen .modal-body,
.grammar-studio-dialog .modal-body,
.exercise-studio-dialog .modal-body,
.flashcard-studio-dialog .modal-body {
  overscroll-behavior-y: auto !important;
  scrollbar-gutter: stable;
}

/* A stale mobile-menu class must never disable wheel scrolling on desktop. */
@media (min-width: 901px) {
  body.nav-open:not(.modal-open) {
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  body:not(.modal-open) {
    overflow-y: auto !important;
  }
}

@media (max-width: 900px) {
  #featureModal.open,
  #profileModal.open {
    -webkit-overflow-scrolling: touch;
  }

  #featureModal.open > .modal-dialog:not(.dictionary-pro-dialog):not(.writing-studio-dialog):not(.writing-studio-fullscreen):not(.grammar-studio-dialog):not(.exercise-studio-dialog):not(.flashcard-studio-dialog) {
    width: 100%;
    min-height: min-content;
    margin: 0;
    border-radius: 20px 20px 0 0;
  }
}
