/* Avelune v0.20.12 — mobile popup viewport containment.
   Presentation-only. Keeps overlays inside the usable viewport and vertical-only.
   No DOM re-parenting, no Home/Trip layout changes. */
@keyframes aveluneContainedDialogIn{
  from{opacity:.65}
  to{opacity:1}
}

@media (max-width:760px){
  html,body{
    max-inline-size:100%;
    overflow-x:hidden!important;
    overscroll-behavior-x:none;
  }

  dialog[open],
  [role="dialog"]:not([hidden]){
    box-sizing:border-box!important;
    max-inline-size:calc(100dvw - max(10px,env(safe-area-inset-left)) - max(10px,env(safe-area-inset-right)))!important;
    max-block-size:calc(100dvh - max(10px,env(safe-area-inset-top)) - max(10px,env(safe-area-inset-bottom)))!important;
    margin-inline:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-x:none!important;
    touch-action:pan-y pinch-zoom;
  }

  /* The Trip Menu is a native dialog with a fixed desktop width. Keep its
     border box inside the visual viewport after the canonical dialog inset
     rules are applied. */
  dialog.sideMenu[open]{
    inline-size:min(430px,calc(100dvw - max(10px,env(safe-area-inset-left)) - max(10px,env(safe-area-inset-right))))!important;
    max-inline-size:min(430px,calc(100dvw - max(10px,env(safe-area-inset-left)) - max(10px,env(safe-area-inset-right))))!important;
    inset-inline:0!important;
    margin-inline:auto!important;
    padding:0!important;
    animation:aveluneContainedDialogIn .18s ease-out!important;
  }

  dialog.sideMenu[open] > .sheet{
    inline-size:100%!important;
    max-inline-size:100%!important;
  }

  dialog[open] > :first-child,
  [role="dialog"]:not([hidden]) > :first-child{
    box-sizing:border-box!important;
    inline-size:auto!important;
    max-inline-size:100%!important;
    min-inline-size:0!important;
    max-block-size:calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior-y:contain!important;
    overscroll-behavior-x:none!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y pinch-zoom;
  }

  /* Prevent wide flex/grid/form descendants from forcing the popup beyond the viewport. */
  dialog[open] > :first-child > *,
  [role="dialog"]:not([hidden]) > :first-child > *{
    min-inline-size:0!important;
    max-inline-size:100%!important;
    box-sizing:border-box!important;
  }

  dialog[open] :where(input,select,textarea,fieldset,form,img,video,canvas),
  [role="dialog"]:not([hidden]) :where(input,select,textarea,fieldset,form,img,video,canvas){
    min-inline-size:0!important;
    max-inline-size:100%!important;
    box-sizing:border-box!important;
  }

  /* Explicit horizontal surfaces remain self-contained rather than moving the popup itself. */
  dialog[open] :where(.tablePanel,.avCarouselTrack,.avenueAiRecommendations),
  [role="dialog"]:not([hidden]) :where(.tablePanel,.avCarouselTrack,.avenueAiRecommendations){
    max-inline-size:100%!important;
    overscroll-behavior-inline:contain!important;
  }
}
