/* HV500 · Navegación de escritorio coherente y modal de reservación accesible.
   Este archivo se carga después de los estilos heredados y no altera precios,
   disponibilidad, autorizaciones ni las llamadas de Supabase. */

/* La reserva es modal: nunca puede quedar por debajo del dock de Mi Huella.
   :target actúa aun si el código heredado ha retirado las clases del body. */
body.member-session-active #booking-popup.css-popup:target,
#booking-popup.css-popup:target{
  z-index:12060!important;
  isolation:isolate!important;
}

/* Protección sin depender de eventos ni de flags que algunas funciones de
   transferencia eliminan mientras #booking-popup sigue en el URL. */
body:has(#booking-popup:target:not(.hv-booking-parked-v187):not(.hv-booking-suspended-v179)) .member-bottom-nav,
body:has(.css-popup:target:not(.hv-booking-parked-v187):not(.hv-booking-suspended-v179)) .member-bottom-nav,
body.hv500-booking-is-open .member-bottom-nav{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Composición central y acotada como en la referencia: el scroll pertenece
   al contenido; las acciones nunca bajan detrás de la navegación global. */
#booking-popup:target .css-popup-panel.hv-booking-panel-v1025673{
  box-sizing:border-box!important;
  width:min(860px, calc(100% - 16px))!important;
  max-width:860px!important;
  height:min(740px, calc(100dvh - 24px))!important;
  max-height:calc(100dvh - 24px)!important;
  min-height:0!important;
  margin:auto!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  padding:clamp(12px,2.2vw,24px)!important;
}
#booking-popup:target #advanced-booking-form.hv-booking-shell-v1025673:not([hidden]){
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
}
#booking-popup:target .hv-booking-scroll-v1025673{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain!important;
}
#booking-popup:target .hv-booking-action-dock-v1025673{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:2!important;
  margin-top:6px!important;
  padding:10px 0 2px!important;
  background:#fff!important;
}
#booking-popup:target .hv-booking-action-dock-v1025673 .booking-next,
#booking-popup:target .hv-booking-action-dock-v1025673 #booking-submit-button{
  pointer-events:auto!important;
  visibility:visible!important;
}
@media(max-height:540px){
  #booking-popup:target .css-popup-panel.hv-booking-panel-v1025673{
    padding:10px 14px!important;
    height:calc(100dvh - 12px)!important;
    max-height:calc(100dvh - 12px)!important;
  }
  #booking-popup:target .hv-booking-action-dock-v1025673{
    padding-top:6px!important;
    margin-top:3px!important;
  }
}

/* Un equipo con ratón/trackpad utiliza el dock lateral aunque Windows,
   el zoom o el tamaño de la ventana lo sitúen debajo de los 901px CSS.
   Solo se reserva la variante inferior para interfaces realmente estrechas
   y táctiles. */
@media (any-pointer:fine) and (min-width:650px){
  body.member-session-active .member-bottom-nav.member-bottom-nav-scrollable,
  body.member-session-active .member-bottom-nav.hv-member-dock-portal-v102421,
  body.member-session-active .member-bottom-nav.hv-member-dock-vertical-v10256106{
    box-sizing:border-box!important;
    position:fixed!important;
    left:clamp(8px,1.5vw,22px)!important;
    right:auto!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
    max-height:calc(100dvh - 16px)!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-flow:row!important;
    gap:5px!important;
    margin:0!important;
    padding:8px 6px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scroll-behavior:auto!important;
    border-radius:24px!important;
    scrollbar-width:none!important;
  }
  body.member-session-active .member-bottom-nav.member-bottom-nav-scrollable::-webkit-scrollbar,
  body.member-session-active .member-bottom-nav.hv-member-dock-portal-v102421::-webkit-scrollbar,
  body.member-session-active .member-bottom-nav.hv-member-dock-vertical-v10256106::-webkit-scrollbar{display:none!important;}
  body.member-session-active .member-bottom-nav.member-bottom-nav-scrollable button,
  body.member-session-active .member-bottom-nav.hv-member-dock-portal-v102421 button,
  body.member-session-active .member-bottom-nav.hv-member-dock-vertical-v10256106 button{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    place-items:center!important;
    align-content:center!important;
    flex:none!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:clamp(38px,calc((100dvh - 105px)/8),64px)!important;
    padding:5px 3px!important;
    gap:2px!important;
  }
  body.member-session-active .member-bottom-nav.member-bottom-nav-scrollable button small,
  body.member-session-active .member-bottom-nav.hv-member-dock-portal-v102421 button small,
  body.member-session-active .member-bottom-nav.hv-member-dock-vertical-v10256106 button small{
    white-space:normal!important;
    text-align:center!important;
    font-size:.66rem!important;
    line-height:1.1!important;
  }
}

/* Margen de seguridad: evita que las tarjetas de cuenta queden tras el rail
   a zoom alto. No afecta al modal, anclado directamente al viewport. */
@media (any-pointer:fine) and (min-width:650px) and (max-width:1100px){
  body.member-session-active #club>.container{
    box-sizing:border-box!important;
    padding-left:clamp(0px,calc(1110px - 100vw),135px)!important;
  }
}

/* El móvil conserva su barra inferior habitual. También allí queda
   totalmente oculta durante la reservación. */
@media(max-width:649px){
  #booking-popup:target .css-popup-panel.hv-booking-panel-v1025673{
    width:calc(100% - 4px)!important;
    border-radius:20px!important;
    padding:12px!important;
  }
  #booking-popup:target .hv-booking-action-dock-v1025673 .dialog-actions{
    flex-wrap:wrap!important;
  }
}
