/* SOCIOS PRO — V1.8.1: mobile first navigation, fixes for all admin modules.
   This is the final CSS layer and supersedes conflicting legacy media queries. */
html,body,#root{min-width:0;max-width:100%;}
html.ec-admin-active,html.ec-admin-active body,html.ec-admin-active #root{width:100%;max-width:100%;overflow-x:clip!important;}
html.ec-admin-active *{box-sizing:border-box;}
/* Always preserve route content and keep the original database-backed React components. */
html.ec-admin-active body .containerGrid{max-width:100%!important;min-width:0!important;}
html.ec-admin-active body .containerSection{min-width:0!important;max-width:100%!important;flex:1 1 auto!important;overflow-x:clip!important;}
html.ec-admin-active body .containerSection .containerMain{width:100%!important;max-width:100%!important;min-width:0!important;}
/* Menu button remains attached to the visible viewport when scrolling. */
#ec-sidebar-toggle{appearance:none;position:fixed!important;top:calc(12px + env(safe-area-inset-top,0px))!important;left:12px!important;right:auto!important;z-index:2147483000!important;display:none;align-items:center;justify-content:center;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;border:0!important;border-radius:12px!important;padding:9px!important;background:#075e58!important;color:#fff!important;line-height:1!important;cursor:pointer;box-shadow:0 4px 15px #0004!important;touch-action:manipulation;}
#ec-sidebar-toggle svg{display:block;pointer-events:none;width:22px;height:22px;}
#ec-sidebar-toggle:focus-visible{outline:3px solid #ffc15b!important;outline-offset:2px;}
#ec-sidebar-scrim{display:none!important;}
html.ec-admin-active #ec-sidebar-toggle{display:flex!important;}
/* Link active state visible in both themes, including default user-defined colors. */
html.ec-admin-active body .navbarDashboard :is(.activeLink,a.active,a[aria-current="page"]){background:#e6f4f2!important;color:#12403c!important;}
html.ec-admin-active body .navbarDashboard :is(.activeLink,a.active,a[aria-current="page"]) :is(svg,i,span){color:inherit!important;}
html[data-theme="dark"].ec-admin-active body .navbarDashboard :is(.activeLink,a.active,a[aria-current="page"]){background:#304b52!important;color:#fff!important;}
html.ec-admin-active body :is(.containerMain,.deFLexMain,.CardsCantidad,.container,.content_tables,.reportsContainer,.configuracion-container-custom){min-width:0!important;max-width:100%!important;}
/* Do not let a single unwrapped field force the entire page wider. */
html.ec-admin-active body .containerSection :is(input,textarea,select,button){max-width:100%;}
html.ec-admin-active body .containerSection :is(h1,h2,h3,h4,p,label){overflow-wrap:break-word;}
html.ec-admin-active body .containerSection :is(.table-container,.table-containerProductos,.table-containerUsuarios,.tablaReservasContainer,.content_tables,.table-responsive){max-width:100%!important;min-width:0!important;overflow-x:auto!important;overscroll-behavior-x:contain;}
html.ec-admin-active body .containerSection :is(.table-containerProductos,.table-containerUsuarios){max-height:min(480px,65dvh)!important;overflow:auto!important;}
html.ec-admin-active body .containerSection :is(.table-containerProductos,.table-containerUsuarios) table{min-width:720px!important;width:max-content!important;table-layout:auto!important;}
html.ec-admin-active body .containerSection :is(.table-containerProductos,.table-containerUsuarios) :is(td,th){min-width:100px!important;max-width:230px!important;word-break:normal!important;overflow-wrap:break-word!important;white-space:normal!important;}
html.ec-admin-active body .containerSection :is(.table-containerProductos,.table-containerUsuarios) th{position:sticky;top:0;z-index:1;}
/* Responsive controls in admin modules: lower the oversized type without altering business UI. */
html.ec-admin-active body .containerSection :is(h1){font-size:clamp(20px,2vw,28px)!important;line-height:1.25!important;}
html.ec-admin-active body .containerSection :is(h2){font-size:clamp(18px,1.7vw,24px)!important;line-height:1.3!important;}
html.ec-admin-active body .containerSection :is(h3){font-size:clamp(16px,1.4vw,20px)!important;line-height:1.35!important;}
@media (max-width:899px), (min-width:900px) and (max-width:1024px) and (orientation:portrait){
 html.ec-admin-active body .containerGrid{display:flex!important;flex-direction:column!important;gap:0!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;}
 /* React's Header component wraps the actual navbar in an extra DIV.
    Without resetting this wrapper it occupies the page even if the navbar is fixed. */
 html.ec-admin-active body .containerGrid>div:has(>.navbarDashboard){position:static!important;display:block!important;flex:0 0 0px!important;width:0!important;min-width:0!important;max-width:0!important;height:0!important;min-height:0!important;max-height:0!important;padding:0!important;margin:0!important;overflow:visible!important;}
 html.ec-admin-active body .containerGrid>.containerSection{display:block!important;flex:1 1 auto!important;position:relative!important;align-self:stretch!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:100dvh!important;height:auto!important;margin:0!important;padding:72px clamp(10px,3vw,22px) 24px!important;overflow-x:clip!important;overflow-y:visible!important;box-sizing:border-box!important;}
 html.ec-admin-active body .containerGrid>.containerSection>.HeaderDashContain{min-width:0!important;max-width:100%!important;width:100%!important;flex-wrap:wrap!important;gap:8px!important;padding-left:54px!important;}
 html.ec-admin-active body .containerGrid>.containerSection .container{margin:0!important;padding:clamp(10px,3vw,18px)!important;min-height:0!important;height:auto!important;max-width:100%!important;}
 /* Full viewport mobile menu without a white strip at the right. Hidden by default. */
 html.ec-admin-active body .navbarDashboard,
 html.ec-admin-active body .navbarDashboard:hover{
  position:fixed!important;inset:0 auto 0 0!important;top:0!important;right:0!important;bottom:0!important;left:0!important;
  margin:0!important;padding:calc(66px + env(safe-area-inset-top,0px)) 12px calc(18px + env(safe-area-inset-bottom,0px))!important;
  display:flex!important;flex-direction:column!important;
  width:100vw!important;min-width:100vw!important;max-width:100vw!important;
  height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;
  transform:translate3d(-102%,0,0)!important;visibility:hidden!important;pointer-events:none!important;
  transition:transform .22s ease,visibility .22s ease!important;z-index:2147482900!important;
 }
 html.ec-admin-nav-open.ec-admin-active body .navbarDashboard,
 html.ec-admin-nav-open.ec-admin-active body .navbarDashboard:hover{
  transform:translate3d(0,0,0)!important;visibility:visible!important;pointer-events:auto!important;
 }
 html.ec-admin-active #ec-sidebar-toggle{top:calc(12px + env(safe-area-inset-top,0px))!important;left:12px!important;display:flex!important;}
 html.ec-admin-nav-open.ec-admin-active #ec-sidebar-toggle{left:auto!important;right:12px!important;background:#183b39!important;}
 html.ec-admin-active body .navbarDashboard>.logo{display:block!important;align-self:flex-start!important;max-width:66px!important;}
 html.ec-admin-active body .navbarDashboard>.logo img{width:48px!important;height:48px!important;object-fit:contain!important;margin:0!important;}
 html.ec-admin-active body .navbarDashboard .links{display:flex!important;flex-direction:column!important;flex:0 0 auto!important;width:100%!important;max-width:100%!important;min-width:0!important;gap:4px!important;margin-top:8px!important;}
 html.ec-admin-active body .navbarDashboard .links a,
 html.ec-admin-active body .navbarDashboard [data-ec-appearance]{display:flex!important;align-items:center!important;gap:14px!important;width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;padding:10px 14px!important;min-height:48px!important;border-radius:12px!important;line-height:1.3!important;white-space:normal!important;overflow-wrap:normal!important;font-size:clamp(15px,3.6vw,17px)!important;}
 html.ec-admin-active body .navbarDashboard .links a :is(svg,i){width:20px!important;height:20px!important;flex:0 0 20px!important;font-size:19px!important;}
 html.ec-admin-active body .navbarDashboard :is(a,button):focus-visible{outline:2px solid #ffc15b!important;outline-offset:2px!important;}
 /* Avoid horizontal overflow from old dashboard grid + tall expanded tables. */
 html.ec-admin-active body .containerSection .deFLexMain{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:14px!important;min-width:0!important;max-width:100%!important;}
 html.ec-admin-active body .containerSection .deFLexMain>*{width:100%!important;min-width:0!important;max-width:100%!important;}
 html.ec-admin-active body .containerSection .CardsCantidad{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
 html.ec-admin-active body .containerSection .CardsCantidad .cardCantidad{width:100%!important;max-width:100%!important;min-width:0!important;min-height:72px!important;padding:10px!important;}
 html.ec-admin-active body .containerSection .CardsCantidad .cardCantidad>.icons{width:32px!important;height:32px!important;min-width:32px!important;max-width:32px!important;flex:0 0 32px!important;padding:7px!important;}
 html.ec-admin-active body .containerSection .CardsCantidad .cardCantidad>.icons :is(svg,i){width:17px!important;height:17px!important;}
 html.ec-admin-active body .containerSection .CardsCantidad .cardCantidad :is(h2,h3){font-size:13px!important;line-height:1.32!important;word-break:normal!important;overflow-wrap:normal!important;}
}
@media(max-width:560px){
 html.ec-admin-active body .containerGrid>.containerSection{padding:65px 10px 22px!important;}
 html.ec-admin-active body .containerSection .CardsCantidad{grid-template-columns:1fr!important;}
 html.ec-admin-active body .containerSection .CardsCantidad .cardCantidad{min-height:58px!important;}
 html.ec-admin-active body .containerSection :is(.HeaderDashContain,.deFlexHeader){gap:6px!important;min-width:0!important;}
 html.ec-admin-active body .containerSection :is(button,input,textarea,select){font-size:14px!important;}
 html.ec-admin-active body .containerSection .deFLexMain :is(.table-containerUsuarios,.table-containerProductos){max-height:400px!important;}
}
@media(prefers-reduced-motion:reduce){html.ec-admin-active body .navbarDashboard{transition:none!important;}}

/* V1.8.1 — laptop/desktop & horizontal tablets show icons only by default.
   A deliberate press on the toggle expands the full menu; hover alone does not. */
@media (min-width:1025px), (min-width:900px) and (max-width:1024px) and (orientation:landscape){
 html.ec-admin-active body .containerGrid{display:flex!important;flex-direction:row!important;align-items:stretch!important;gap:0!important;width:100%!important;max-width:100%!important;min-height:100dvh!important;margin:0!important;padding:0!important;}
 html.ec-admin-active body .containerGrid>div:has(>.navbarDashboard){position:relative!important;flex:0 0 72px!important;width:72px!important;min-width:72px!important;max-width:72px!important;min-height:100dvh!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important;}
 html.ec-admin-active body .containerGrid>.containerSection{flex:1 1 0!important;align-self:stretch!important;position:relative!important;min-width:0!important;max-width:calc(100% - 72px)!important;width:calc(100% - 72px)!important;min-height:100dvh!important;height:auto!important;margin:0!important;overflow-x:clip!important;overflow-y:visible!important;}
 html.ec-admin-active body .navbarDashboard,
 html.ec-admin-active body .navbarDashboard:hover{
  position:fixed!important;left:0!important;top:0!important;bottom:0!important;right:auto!important;
  width:72px!important;min-width:72px!important;max-width:72px!important;
  height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;
  margin:0!important;padding:64px 6px 12px!important;display:flex!important;flex-direction:column!important;
  overflow-x:hidden!important;overflow-y:auto!important;z-index:2147482800!important;
  transform:none!important;visibility:visible!important;pointer-events:auto!important;
  transition:width .2s ease!important;
 }
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open,
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open:hover{
  width:276px!important;min-width:276px!important;max-width:276px!important;
  box-shadow:5px 0 22px #0003!important;
 }
 html.ec-admin-active body .navbarDashboard .links{width:100%!important;max-width:100%!important;min-width:0!important;flex:1 0 auto!important;overflow:visible!important;}
 html.ec-admin-active body .navbarDashboard .links a,
 html.ec-admin-active body .navbarDashboard a[data-ec-appearance]{
  display:flex!important;align-items:center!important;justify-content:flex-start!important;flex-wrap:nowrap!important;
  width:100%!important;max-width:100%!important;min-width:0!important;
  height:auto!important;min-height:46px!important;gap:14px!important;padding:11px 15px!important;
  border-radius:10px!important;overflow:hidden!important;white-space:nowrap!important;
 }
 html.ec-admin-active body .navbarDashboard a :is(svg,i){flex:0 0 20px!important;width:20px!important;height:20px!important;min-width:20px!important;max-width:20px!important;max-height:20px!important;font-size:19px!important;}
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open) .links a,
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open) a[data-ec-appearance]{font-size:0!important;gap:0!important;}
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open) .ec-nav-label{display:none!important;}
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open .ec-nav-label{display:inline!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:15px!important;line-height:1.25!important;}
 html.ec-admin-active body .navbarDashboard.ec-sidebar-open .links a{font-size:15px!important;gap:14px!important;}
 html.ec-admin-active body .navbarDashboard:not(.ec-sidebar-open)>.logo{max-width:56px!important;overflow:hidden!important;}
 html.ec-admin-active #ec-sidebar-toggle{display:flex!important;left:13px!important;right:auto!important;top:12px!important;width:44px!important;height:44px!important;}
 html.ec-admin-active body .navbarDashboard :is(a,button):focus-visible{outline:2px solid #ffc15b!important;outline-offset:-2px!important;}
}

/* V1.8.2 — El logotipo del sitio, integrado en la cabecera, es el UNICO boton para abrir el menu en movil.
   Se retira por completo el boton flotante con X, y no se agrega ninguna barra adicional. */
#ec-mobile-brand-toggle{display:none!important;}
@media (max-width:899px), (min-width:900px) and (max-width:1024px) and (orientation:portrait){
 html.ec-admin-active body #ec-sidebar-toggle,
 html.ec-admin-nav-open.ec-admin-active body #ec-sidebar-toggle{display:none!important;visibility:hidden!important;pointer-events:none!important;}
 html.ec-admin-active body .containerGrid>.containerSection{padding:10px clamp(9px,2.8vw,16px) 24px!important;}
 html.ec-admin-active body .containerGrid>.containerSection>.HeaderDashContain,
 html.ec-admin-active body .containerSection .HeaderDashContain{
  position:relative!important;display:grid!important;
  grid-template-columns:48px minmax(0,1fr)!important;grid-template-rows:auto auto!important;
  align-items:center!important;justify-content:stretch!important;
  gap:10px!important;width:100%!important;min-width:0!important;max-width:100%!important;
  margin:0!important;padding:10px!important;border-radius:14px!important;
 }
 html.ec-admin-active #ec-mobile-brand-toggle{
  appearance:none!important;display:flex!important;align-items:center!important;justify-content:center!important;
  grid-column:1!important;grid-row:1!important;position:relative!important;inset:auto!important;
  box-sizing:border-box!important;flex:0 0 48px!important;width:48px!important;height:48px!important;
  max-width:48px!important;min-width:48px!important;max-height:48px!important;min-height:48px!important;
  border-radius:50%!important;border:1px solid #bed4d1!important;background:#fff!important;
  padding:3px!important;margin:0!important;box-shadow:0 2px 7px #0001!important;
  cursor:pointer!important;touch-action:manipulation!important;overflow:hidden!important;z-index:2!important;
 }
 html.ec-admin-active #ec-mobile-brand-toggle[hidden]{display:none!important;}
 html.ec-admin-active #ec-mobile-brand-toggle img{display:block!important;width:40px!important;height:40px!important;min-width:40px!important;max-width:40px!important;max-height:40px!important;object-fit:contain!important;border-radius:50%!important;}
 html.ec-admin-active #ec-mobile-brand-toggle:focus-visible{outline:3px solid #ffb24b!important;outline-offset:2px!important;}
 html.ec-admin-active body .HeaderDashContain > :nth-child(2):not(.deFlexHeader){
  grid-column:2!important;grid-row:1!important;min-width:0!important;max-width:100%!important;
  width:100%!important;margin:0!important;box-sizing:border-box!important;
 }
 html.ec-admin-active body .HeaderDashContain > .deFlexHeader{
  grid-column:1 / -1!important;grid-row:2!important;width:100%!important;min-width:0!important;
  max-width:100%!important;margin:0!important;padding:4px 0!important;
  display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;
  justify-content:space-around!important;gap:8px!important;
 }
 html.ec-admin-active body .HeaderDashContain :is(.search,.search input){min-width:0!important;max-width:100%!important;}
 html.ec-admin-active body .HeaderDashContain .search{width:100%!important;}
 html.ec-admin-active body .HeaderDashContain .deFlexHeader :is(a,button){min-width:0!important;max-width:100%!important;}
 html.ec-admin-active body .navbarDashboard>.logo{
  position:relative!important;align-self:flex-start!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 auto!important;width:54px!important;height:54px!important;max-width:54px!important;
  margin:0 0 12px 8px!important;padding:0!important;border-radius:50%!important;
  background:#fff!important;cursor:pointer!important;
 }
 html.ec-admin-active body .navbarDashboard>.logo img{
  display:block!important;width:46px!important;height:46px!important;min-width:46px!important;
  max-width:46px!important;max-height:46px!important;margin:0!important;object-fit:contain!important;
 }
 html.ec-admin-active body .navbarDashboard .links a{font-size:clamp(15px,3.8vw,18px)!important;}
}
