/* AgendaNiva 31-10-2026: ajustes exclusivos de la reserva pública.
   No modifica JavaScript, Supabase ni la lógica de pagos. */
body.niva-reservas .fondo-modal-servicios .modal-servicios,
body.niva-reservas .fondo-modal-servicios .modal-servicios * { box-sizing: border-box; }
body.niva-reservas #modalProfesionales .modal-servicios { width: min(740px, calc(100vw - 32px)) !important; }
body.niva-reservas #listaProfesionalesModal { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 12px; min-width: 0; width: 100%; padding: 12px 16px 20px; overflow-x: hidden !important; overflow-y: auto; }
body.niva-reservas #listaProfesionalesModal .profesional-modal-card { width: 100%; min-width: 0; min-height: 90px; flex: initial !important; padding: 14px 18px; }
body.niva-reservas #modalConfirmacion .modal-servicios { width: min(800px, calc(100vw - 32px)) !important; max-width: 800px !important; }
body.niva-reservas #modalConfirmacion .contenido-confirmacion-modal { display: block; width: 100%; min-width: 0; padding: 16px 22px 24px; overflow-x: hidden; }
body.niva-reservas #modalConfirmacion .contenido-confirmacion-modal > * { max-width: 100%; min-width: 0; }
body.niva-reservas #modalConfirmacion .contenido-confirmacion-modal :is(input,textarea,select,button) { max-width: 100%; }
body.niva-reservas #modalConfirmacion .contenido-confirmacion-modal :is(p,span,strong,a) { overflow-wrap: anywhere; }
body.niva-reservas #modalConfirmacion .resumen-paso-cuatro { grid-template-columns: repeat(2,minmax(0,1fr)); }
@media (max-width: 800px) {
  body.niva-reservas .fondo-modal-servicios { align-items: flex-start !important; padding: max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom)) !important; overflow-y: auto !important; overflow-x: hidden !important; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; }
  body.niva-reservas .fondo-modal-servicios .modal-servicios { display: flex !important; flex-direction: column !important; width: 100% !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important; overflow-x: hidden !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; overscroll-behavior-y: contain; touch-action: pan-y; }
  body.niva-reservas .fondo-modal-servicios .modal-servicios-header { position: relative !important; flex-shrink: 0; }
  body.niva-reservas #modalProfesionales #listaProfesionalesModal,
  body.niva-reservas #modalFechaHora .contenido-fecha-hora-modal,
  body.niva-reservas #modalConfirmacion .contenido-confirmacion-modal { flex: 0 0 auto !important; max-height: none !important; overflow-y: visible !important; overflow-x: hidden !important; touch-action: pan-y; }
  body.niva-reservas #modalConfirmacion .resumen-paso-cuatro { grid-template-columns: minmax(0,1fr); }
  body.niva-reservas #modalConfirmacion .contenido-confirmacion-modal { padding: 12px 14px 30px; }
  body.niva-reservas #modalProfesionales .modal-servicios { width: 100% !important; }
  body.niva-reservas #listaProfesionalesModal { padding: 10px 12px 20px; }
  body.niva-reservas #listaProfesionalesModal .profesional-modal-card { min-height: 78px; }
}
