/* SOCIOS PRO v1.9.2 | corrections verified against original CSS and React source.
   Loaded last so older overrides cannot cover placeholders, labels or navigation. */
html.ec-admin-active body .containerSection,
html.ec-admin-active body .containerSection *{box-sizing:border-box;}
/* Reserva filters: SVG is positioned; reserve actual space for label/placeholder. */
html.ec-admin-active body .containerReservas .filtrosReservas{
 width:100%!important;min-width:0!important;display:grid!important;
 grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
 gap:12px!important;padding:clamp(12px,2vw,22px)!important;
}
html.ec-admin-active body .containerReservas .filtroItem{
 display:flex!important;position:relative!important;align-items:center!important;
 min-width:0!important;width:100%!important;max-width:100%!important;
}
html.ec-admin-active body .containerReservas .filtroItem .iconoFiltro{
 position:absolute!important;left:15px!important;right:auto!important;top:50%!important;
 transform:translateY(-50%)!important;width:18px!important;height:18px!important;
 min-width:18px!important;max-width:18px!important;flex:none!important;
 margin:0!important;padding:0!important;z-index:2!important;pointer-events:none!important;
 color:var(--sp-muted,#617381)!important;
}
html.ec-admin-active body .containerReservas .filtroItem input.inputFiltro,
html.ec-admin-active body .containerReservas .filtroItem input.inputFiltroFecha{
 display:block!important;position:relative!important;width:100%!important;min-width:0!important;
 padding:12px 14px 12px 48px!important;font-size:15px!important;line-height:1.5!important;
 height:auto!important;min-height:50px!important;text-overflow:clip!important;
 white-space:nowrap!important;border-radius:11px!important;
}
html.ec-admin-active body .containerReservas .filtroItem input::placeholder{
 text-overflow:clip!important;overflow:visible!important;opacity:1!important;
}
/* Patient search: legacy 140px button-like field clipped "Buscar paciente". */
html.ec-admin-active body .pacientes-container .pacientes-header,
html.ec-admin-active body .pacientes-container .pacientes-search{
 width:100%!important;max-width:100%!important;min-width:0!important;
 display:flex!important;flex-wrap:wrap!important;align-items:center!important;
 justify-content:flex-start!important;gap:10px!important;
}
html.ec-admin-active body .pacientes-container .pacientes-search input{
 flex:1 1 240px!important;width:clamp(235px,28vw,380px)!important;
 min-width:min(100%,235px)!important;max-width:100%!important;
 height:auto!important;min-height:46px!important;
 padding:10px 15px!important;text-overflow:clip!important;
 font-size:15px!important;line-height:1.5!important;
}
html.ec-admin-active body .pacientes-container .pacientes-search .btn-add{
 width:auto!important;min-width:105px!important;max-width:100%!important;
 padding:10px 18px!important;line-height:1.5!important;
}
/* All manual reservation modal inputs stay visible and accessible. */
html.ec-admin-active body .containerReservas .modalOverlay{
 position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
 display:flex!important;align-items:center!important;justify-content:center!important;
 padding:clamp(8px,2.5vw,24px)!important;
 overflow-x:hidden!important;overflow-y:auto!important;
 z-index:2147483400!important;
}
html.ec-admin-active body .containerReservas .modalOverlay .modalContent{
 position:relative!important;inset:auto!important;transform:none!important;
 width:min(860px,100%)!important;max-width:100%!important;
 max-height:calc(100dvh - 24px)!important;min-width:0!important;
 margin:auto!important;overflow-x:hidden!important;overflow-y:auto!important;
 padding:clamp(14px,2.5vw,24px)!important;
}
html.ec-admin-active body .containerReservas .modalForm select,
html.ec-admin-active body .containerReservas .modalForm input{
 display:block!important;max-width:100%!important;width:100%!important;min-width:0!important;
 padding:12px 14px!important;min-height:46px!important;height:auto!important;
 line-height:1.5!important;font-size:15px!important;
}
html.ec-admin-active body .containerReservas .modalForm label{
 display:block!important;max-width:100%!important;white-space:normal!important;
 font-size:clamp(14px,1.1vw,16px)!important;line-height:1.5!important;
 margin:10px 0 5px!important;
}
html.ec-admin-active body .containerReservas :is(.modalHeader,.modalContent) :is(h2,h3,p){overflow-wrap:break-word!important;white-space:normal!important;}
html.ec-admin-active body .containerReservas .admin-dias-scroll{max-width:100%!important;overflow-x:auto!important;}
/* Legacy edit modals: do not hide behind a fixed sidebar or clip to sidebar width. */
html.ec-admin-active body .containerSection .modal:not(.modal-cart){
 position:fixed!important;inset:0!important;left:0!important;right:0!important;
 width:100vw!important;max-width:100vw!important;height:100dvh!important;
 display:flex!important;justify-content:center!important;align-items:center!important;
 padding:clamp(10px,3vw,28px)!important;
 overflow-x:hidden!important;overflow-y:auto!important;z-index:2147483300!important;
}
html.ec-admin-active body .containerSection .modal:not(.modal-cart)>.modal-content{
 position:relative!important;inset:auto!important;left:auto!important;right:auto!important;
 transform:none!important;flex:none!important;
 width:min(780px,100%)!important;max-width:100%!important;
 max-height:calc(100dvh - 28px)!important;margin:auto!important;
 padding:clamp(16px,2.5vw,30px)!important;
 overflow-x:auto!important;overflow-y:auto!important;
}
html.ec-admin-active body .modal :is(.form-paciente,.modalForm){max-width:100%!important;min-width:0!important;}
html.ec-admin-active body .modal :is(input:not([type=checkbox]):not([type=radio]),select,textarea){min-width:0!important;max-width:100%!important;}
html.ec-admin-active body .modal .form-paciente :is(label,span,p){overflow-wrap:break-word!important;white-space:normal!important;}
/* Tables: no labels chopped; scroll inside table instead of making whole web too wide. */
html.ec-admin-active body .containerSection :is(.table-container,.tablaReservasContainer,.table-containerUsuarios,.table-containerProductos,.paymentMethodsTableContainer){
 overflow-x:auto!important;max-width:100%!important;min-width:0!important;
}
html.ec-admin-active body .containerSection :is(th,td){
 overflow-wrap:break-word!important;word-break:normal!important;white-space:normal!important;
 line-height:1.45!important;
}
/* Active badge is dark readable even on a light colored status pill. */
html[data-theme="dark"].ec-admin-active body .containerSection .estado-badge.estado-activo,
html[data-theme="dark"].ec-admin-active body .containerSection .estado-badge.estado-activo *{
 color:#d8ffec!important;
}
html[data-theme="dark"].ec-admin-active body .containerSection .estado-badge.estado-activo{
 background:#15533b!important;border:1px solid #3ba77b!important;
}
html[data-theme="light"].ec-admin-active body .containerSection .estado-badge.estado-activo{
 color:#14532d!important;background:#dcfce7!important;
}
html[data-theme="dark"].ec-admin-active body .containerSection .estado-badge.estado-inactivo{
 color:#ffe2e2!important;background:#71303b!important;
}
/* Desktop: sidebar is 86px when closed, expands on deliberate click OR pointer hover. */
@media(min-width:1025px), (min-width:900px) and (max-width:1024px) and (orientation:landscape){
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover,
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open{
  width:276px!important;min-width:276px!important;max-width:276px!important;
  z-index:2147482800!important;box-shadow:5px 0 20px #0003!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover .links a,
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover a[data-ec-appearance],
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover>div:last-child a,
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open .links a,
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open>div:last-child a{
  font-size:15px!important;gap:14px!important;justify-content:flex-start!important;
  padding:10px 14px!important;white-space:normal!important;overflow-wrap:break-word!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover .ec-nav-label{
  display:inline!important;font-size:15px!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open) > div:last-child a{
  display:flex!important;align-items:center!important;justify-content:center!important;
  font-size:0!important;gap:0!important;overflow:hidden!important;white-space:nowrap!important;
  min-height:46px!important;padding:10px!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open) > div:last-child a svg{
  flex:0 0 21px!important;min-width:21px!important;max-width:21px!important;
  width:21px!important;height:21px!important;margin:0!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover>div:last-child a{
  font-size:15px!important;gap:14px!important;justify-content:flex-start!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover a[data-ec-appearance] span{
  font-size:15px!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open) a[data-ec-appearance] span:not(:first-child){
  display:none!important;
 }
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):hover a[data-ec-appearance] span:not(:first-child){
  display:inline!important;
 }
 /* No stray Exit text outside the closed bar. */
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open):not(:hover)>div:last-child a{
  text-indent:0!important;letter-spacing:0!important;
 }
}
/* Mobile/tablet vertical: show whole selected module without introducing another sidebar. */
@media(max-width:899px), (min-width:900px) and (max-width:1024px) and (orientation:portrait){
 html.ec-admin-active body .containerGrid>.containerSection{width:100%!important;min-width:0!important;max-width:100%!important;}
 html.ec-admin-active body .containerReservas{padding:clamp(10px,2vw,18px)!important;}
 html.ec-admin-active body .containerReservas .filtrosReservas{grid-template-columns:minmax(0,1fr)!important;}
 html.ec-admin-active body .containerReservas .modalForm>div[style*="grid"]{
  grid-template-columns:minmax(0,1fr)!important;gap:10px!important;
 }
 html.ec-admin-active body .pacientes-container{padding:12px!important;}
 html.ec-admin-active body .pacientes-container .pacientes-search{align-items:stretch!important;}
 html.ec-admin-active body .pacientes-container .pacientes-search input{flex:1 1 100%!important;width:100%!important;}
}
@media(max-width:420px){
 html.ec-admin-active body .containerReservas .modalOverlay .modalContent{max-height:calc(100dvh - 16px)!important;}
}
/* Actual status classnames verified against the compiled React components. */
html.ec-admin-active[data-theme="dark"] body .paymentMethodsTable .badge-activo,
html.ec-admin-active[data-theme="dark"] body .paymentMethodsContainer .badge-activo{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  background:#15583c!important;color:#e7fff3!important;border:1px solid #5aba8d!important;
  opacity:1!important;font-weight:700!important;text-shadow:none!important;
}
html.ec-admin-active[data-theme="light"] body .paymentMethodsTable .badge-activo,
html.ec-admin-active[data-theme="light"] body .paymentMethodsContainer .badge-activo{
  display:inline-flex!important;align-items:center!important;background:#dcfce7!important;
  color:#14532d!important;border:1px solid #84c9a0!important;font-weight:700!important;
}
html.ec-admin-active[data-theme="dark"] body .paymentMethodsTable .badge-inactivo{
  color:#ffe9e9!important;background:#6b2732!important;border:1px solid #b76a78!important;
}
@media(hover:hover) and (pointer:fine) and (min-width:1025px){
 html.ec-admin-active body .navbarDashboard:hover .ec-nav-label{
   display:inline!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
 }
}
@media(min-width:1025px), (min-width:900px) and (max-width:1024px) and (orientation:landscape){
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open .ec-nav-label{
   display:inline!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
 }
}
