/* Salovix DEV ESTABLE — estilos consolidados v42 */
/* Salovix v41.4 — correcciones de regresión de interacción */

/* El asa de redimensionado debe ser inequívocamente interactiva. */
body.salovix-v414-table-editing[data-salovix-v414-tool="redimensionar"] #sala-canvas-container .cursor-se-resize,
body.salovix-v414-table-editing[data-salovix-v414-tool="redimensionar"] #tablet-map-base .tablet-resize-handle,
body.salovix-v414-table-editing[data-salovix-v414-tool="redimensionar"] #mobile-map-base .mobile-resize-handle {
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  pointer-events:auto !important;
  touch-action:none !important;
  z-index:1005 !important;
  cursor:nwse-resize !important;
}
body.salovix-v414-table-editing[data-salovix-v414-tool="redimensionar"] :is(#sala-canvas-container [data-mesa-id],#tablet-map-base .tablet-table,#mobile-map-base .mobile-table) {
  touch-action:none !important;
}
.salovix-v414-table-resizing { transition:none !important; animation:none !important; will-change:width,height !important; z-index:1004 !important; }

/* Tablet: durante Modificar mesas, las herramientas pasan a un rail lateral
   en vez de saltar debajo del calendario cuando el ancho es limitado. */
body.tablet-admin-active.salovix-v414-table-editing #section-tablet .tablet-control-tools {
  position:fixed !important;
  left:max(12px,env(safe-area-inset-left)) !important;
  top:198px !important;
  z-index:1600 !important;
  width:50px !important;
  max-width:50px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:7px !important;
  padding:7px 5px !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:18px !important;
  background:rgba(15,23,42,.92) !important;
  box-shadow:0 16px 45px rgba(0,0,0,.34) !important;
  backdrop-filter:blur(14px) !important;
  overflow:visible !important;
}
body.tablet-admin-active.salovix-v414-table-editing #section-tablet .tablet-control-tools > .tablet-icon-btn {
  flex:0 0 40px !important;
  width:40px !important;
  min-width:40px !important;
  height:40px !important;
  margin:0 !important;
}
body.tablet-admin-active.salovix-v414-table-editing #section-tablet .tablet-map-panel {
  position:relative !important;
}

/* No dejes que los media queries antiguos manden las herramientas a otra fila
   mientras estamos editando. */
@media (max-width:1180px) {
  body.tablet-admin-active.salovix-v414-table-editing #section-tablet .tablet-control-tools {
    grid-column:auto !important;
    justify-content:flex-start !important;
  }
}

/* Selección de mesa más visible en nueva reserva / asignación / reubicación. */
body.matilde-wizard-selecting-table :is(#sala-canvas-container .matilde-wizard-table-ok,#tablet-map-base .matilde-wizard-table-ok,#mobile-map-base .matilde-wizard-table-ok) {
  outline:4px solid var(--mat-accent,#1CA9CF) !important;
  outline-offset:3px !important;
}
#selection-banner-mesa:not(.hidden),#tablet-assignment-banner:not(.hidden) {
  position:relative;
  z-index:1200;
}

/* Capa de selección exclusiva de Nueva reserva en /web. Se coloca fuera del\n   canvas para que los listeners históricos del plano no puedan interceptarla. */
#salovix-web-reservation-table-hit-layer {
  position:fixed;
  z-index:20015;
  pointer-events:none;
  overflow:visible;
}
#salovix-web-reservation-table-hit-layer .salovix-web-reservation-table-hit {
  position:absolute;
  display:block;
  margin:0;
  padding:0;
  border:2px solid transparent;
  border-radius:14px;
  background:rgba(28,169,207,.001);
  pointer-events:auto;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
#salovix-web-reservation-table-hit-layer .salovix-web-reservation-table-hit:hover,
#salovix-web-reservation-table-hit-layer .salovix-web-reservation-table-hit:focus-visible {
  border-color:color-mix(in srgb,var(--mat-accent,#1CA9CF) 72%,#fff);
  background:color-mix(in srgb,var(--mat-accent,#1CA9CF) 9%,transparent);
  outline:none;
}
#salovix-web-reservation-table-hit-layer .salovix-web-reservation-table-hit.is-selected {
  border-color:var(--mat-accent,#1CA9CF);
  background:color-mix(in srgb,var(--mat-accent,#1CA9CF) 14%,transparent);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--mat-accent,#1CA9CF) 18%,transparent);
}

/* ========================================================================== 
   PULIDO UI ESTABLE — cancelación explícita + finalizar edición Tablet
   ========================================================================== */
.salovix-cancel-reservation-btn {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  min-width:auto !important;
  width:auto !important;
  height:28px !important;
  padding:0 9px !important;
  border:1px solid rgba(220,38,38,.22) !important;
  border-radius:9px !important;
  background:rgba(254,226,226,.72) !important;
  color:#b91c1c !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}
.salovix-cancel-reservation-btn:hover,
.salovix-cancel-reservation-btn:focus-visible {
  background:#fee2e2 !important;
  border-color:rgba(220,38,38,.42) !important;
  outline:none !important;
}
.salovix-cancel-reservation-btn i { font-size:9px !important; }

.salovix-cancel-confirm-overlay[hidden] { display:none !important; }
.salovix-cancel-confirm-overlay {
  position:fixed;
  inset:0;
  z-index:30050;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(5px);
}
.salovix-cancel-confirm-card {
  width:min(390px,calc(100vw - 32px));
  border:1px solid rgba(148,163,184,.28);
  border-radius:20px;
  background:#fff;
  padding:22px;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  text-align:center;
  color:#1f2937;
}
.salovix-cancel-confirm-icon {
  width:48px;
  height:48px;
  margin:0 auto 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fee2e2;
  color:#dc2626;
  font-size:20px;
}
.salovix-cancel-confirm-card h3 { margin:0 0 7px; font-size:18px; font-weight:900; }
.salovix-cancel-confirm-card p { margin:0; color:#64748b; font-size:13px; line-height:1.45; }
.salovix-cancel-confirm-summary {
  margin-top:12px;
  padding:10px 12px;
  border-radius:11px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  color:#334155;
  font-size:11px;
  font-weight:800;
}
.salovix-cancel-confirm-actions { display:flex; gap:9px; margin-top:17px; }
.salovix-cancel-confirm-actions button {
  flex:1;
  min-height:40px;
  border-radius:11px;
  padding:0 12px;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.salovix-cancel-confirm-back { border:1px solid #e2e8f0; background:#f8fafc; color:#334155; }
.salovix-cancel-confirm-yes { border:1px solid #dc2626; background:#dc2626; color:#fff; }
.salovix-cancel-confirm-yes:hover { background:#b91c1c; }

/* Tablet: el antiguo botón "Terminar" pasa a ser un sexto icono del rail. */
#section-tablet .tablet-control-tools > #matilde-v37-exit-edit-tablet.salovix-tablet-finish-edit {
  flex:0 0 40px !important;
  width:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 !important;
  margin:0 !important;
  border-radius:12px !important;
  border:1px solid rgba(22,163,74,.42) !important;
  background:#16a34a !important;
  color:#fff !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  font-size:16px !important;
  line-height:1 !important;
  box-shadow:none !important;
  overflow:hidden !important;
}
#section-tablet .tablet-control-tools > #matilde-v37-exit-edit-tablet.salovix-tablet-finish-edit:hover,
#section-tablet .tablet-control-tools > #matilde-v37-exit-edit-tablet.salovix-tablet-finish-edit:focus-visible {
  background:#15803d !important;
  outline:2px solid rgba(34,197,94,.28) !important;
  outline-offset:2px !important;
}
#section-tablet .tablet-control-tools > #matilde-v37-exit-edit-tablet.salovix-tablet-finish-edit i {
  margin:0 !important;
  font-size:16px !important;
  pointer-events:none !important;
}


/* ========================================================================== 
   PULIDO UI ESTABLE — Ajustes arriba + reservas con fondo completo
   ========================================================================== */

/* Ajustes deja de formar parte del rail de edición y vive con las acciones
   superiores (Reserva, Clientes, Avisos, Actualizar, etc.). */
#section-tablet .tablet-actions > .salovix-tablet-settings-top {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  width:auto !important;
  min-width:max-content !important;
  height:auto !important;
  padding:9px 13px !important;
  margin:0 !important;
  border-radius:12px !important;
  white-space:nowrap !important;
}
#section-tablet .tablet-actions > .salovix-tablet-settings-top i { pointer-events:none !important; }

/* El botón Ajustes no hereda el texto blanco de .tablet-btn-muted en modo claro. */
body:not(.matilde-cover-dark-mode) #section-tablet .tablet-actions > .salovix-tablet-settings-top {
  background:#ffffff !important;
  border:1px solid #cbd5e1 !important;
  color:#0f172a !important;
  -webkit-text-fill-color:#0f172a !important;
  box-shadow:none !important;
}
body:not(.matilde-cover-dark-mode) #section-tablet .tablet-actions > .salovix-tablet-settings-top :is(i,span) {
  color:#0f172a !important;
  -webkit-text-fill-color:#0f172a !important;
}
body.matilde-cover-dark-mode #section-tablet .tablet-actions > .salovix-tablet-settings-top {
  background:var(--mat-cover-panel-2,#303B43) !important;
  border:1px solid var(--mat-cover-border,#4B5962) !important;
  color:var(--mat-cover-text,#F1F4F5) !important;
  -webkit-text-fill-color:var(--mat-cover-text,#F1F4F5) !important;
}
body.matilde-cover-dark-mode #section-tablet .tablet-actions > .salovix-tablet-settings-top :is(i,span) {
  color:var(--mat-cover-text,#F1F4F5) !important;
  -webkit-text-fill-color:var(--mat-cover-text,#F1F4F5) !important;
}

/* La tarjeta completa representa el estado; se elimina la antigua franja
   lateral de 7/8 px para que el color no parezca solo un indicador lateral. */
:is(#section-tablet .tablet-res-card,#section-mobile .mobile-res-item,#listado-reservas-container [data-reserva-card="true"]) {
  border-left-width:1px !important;
  border-left-style:solid !important;
  opacity:1 !important;
}
body:not(.matilde-cover-dark-mode) :is(#section-tablet .tablet-res-card.is-pending,#section-mobile .mobile-res-item.is-pending,#listado-reservas-container [data-reserva-card="true"].is-pending) {
  background:var(--mat-pending,#FEF3C7) !important;
  border-color:color-mix(in srgb,var(--mat-pending,#FEF3C7) 74%,#64748b) !important;
  color:var(--mat-pending-text,#1f2937) !important;
}
body:not(.matilde-cover-dark-mode) :is(#section-tablet .tablet-res-card.is-reserved,#section-mobile .mobile-res-item.is-reserved,#listado-reservas-container [data-reserva-card="true"].is-reserved) {
  background:var(--mat-reserved,#DCFCE7) !important;
  border-color:color-mix(in srgb,var(--mat-reserved,#DCFCE7) 74%,#64748b) !important;
  color:var(--mat-reserved-text,#1f2937) !important;
}
body:not(.matilde-cover-dark-mode) :is(#section-tablet .tablet-res-card.is-seated,#section-mobile .mobile-res-item.is-seated,#listado-reservas-container [data-reserva-card="true"].is-seated) {
  background:var(--mat-seated,#DBEAFE) !important;
  border-color:color-mix(in srgb,var(--mat-seated,#DBEAFE) 74%,#64748b) !important;
  color:var(--mat-seated-text,#1f2937) !important;
}
body:not(.matilde-cover-dark-mode) :is(#section-tablet .tablet-res-card.is-completed,#section-mobile .mobile-res-item.is-completed,#listado-reservas-container [data-reserva-card="true"].is-completed) {
  background:var(--mat-completed,#E5E7EB) !important;
  border-color:color-mix(in srgb,var(--mat-completed,#E5E7EB) 74%,#64748b) !important;
  color:var(--mat-completed-text,#1f2937) !important;
}
body:not(.matilde-cover-dark-mode) :is(#section-tablet .tablet-res-card.is-cancelled,#section-mobile .mobile-res-item.is-cancelled,#listado-reservas-container [data-reserva-card="true"].is-cancelled) {
  background:var(--mat-cancelled,#FEE2E2) !important;
  border-color:color-mix(in srgb,var(--mat-cancelled,#FEE2E2) 74%,#ef4444) !important;
  color:var(--mat-cancelled-text,#1f2937) !important;
  opacity:1 !important;
}

/* En modo oscuro se respeta igualmente el color de estado configurado, en
   lugar de volver todas las reservas a una tarjeta gris con franja lateral. */
body.matilde-cover-dark-mode :is(#section-tablet.covermanager-dark-mode .tablet-res-card.is-pending,#section-mobile.covermanager-dark-mode .mobile-res-item.is-pending,#listado-reservas-container [data-reserva-card="true"].is-pending) {
  background:var(--mat-cover-pending,var(--mat-pending,#F5C842)) !important;
  border-color:var(--mat-cover-pending,var(--mat-pending,#F5C842)) !important;
}
body.matilde-cover-dark-mode :is(#section-tablet.covermanager-dark-mode .tablet-res-card.is-reserved,#section-mobile.covermanager-dark-mode .mobile-res-item.is-reserved,#listado-reservas-container [data-reserva-card="true"].is-reserved) {
  background:var(--mat-cover-lime,var(--mat-reserved,#9ACA4F)) !important;
  border-color:var(--mat-cover-lime,var(--mat-reserved,#9ACA4F)) !important;
}
body.matilde-cover-dark-mode :is(#section-tablet.covermanager-dark-mode .tablet-res-card.is-seated,#section-mobile.covermanager-dark-mode .mobile-res-item.is-seated,#listado-reservas-container [data-reserva-card="true"].is-seated) {
  background:var(--mat-cover-pink,var(--mat-seated,#E65397)) !important;
  border-color:var(--mat-cover-pink,var(--mat-seated,#E65397)) !important;
}
body.matilde-cover-dark-mode :is(#section-tablet.covermanager-dark-mode .tablet-res-card.is-completed,#section-mobile.covermanager-dark-mode .mobile-res-item.is-completed,#listado-reservas-container [data-reserva-card="true"].is-completed) {
  background:var(--mat-cover-blue,var(--mat-completed,#69BDE7)) !important;
  border-color:var(--mat-cover-blue,var(--mat-completed,#69BDE7)) !important;
}
body.matilde-cover-dark-mode :is(#section-tablet.covermanager-dark-mode .tablet-res-card.is-cancelled,#section-mobile.covermanager-dark-mode .mobile-res-item.is-cancelled,#listado-reservas-container [data-reserva-card="true"].is-cancelled) {
  background:var(--mat-cover-danger,var(--mat-cancelled,#EF6464)) !important;
  border-color:var(--mat-cover-danger,var(--mat-cancelled,#EF6464)) !important;
  opacity:1 !important;
}
body.matilde-cover-dark-mode :is(#section-tablet .tablet-res-card,#section-mobile .mobile-res-item,#listado-reservas-container [data-reserva-card="true"]) :is(.tablet-res-time,.mobile-res-time) {
  background:rgba(0,0,0,.16) !important;
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
}

/* ========================================================================== 
   ACCIÓN SENTAR — AZUL CONSISTENTE EN WEB / TABLET / MÓVIL
   ========================================================================== */
button[onclick*="sentarCliente("] {
  background:#2563eb !important;
  border-color:#1d4ed8 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:none !important;
}
button[onclick*="sentarCliente("]:hover,
button[onclick*="sentarCliente("]:focus-visible {
  background:#1d4ed8 !important;
  border-color:#1e40af !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
button[onclick*="sentarCliente("] :is(i,span) {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}


/* SALOVIX_TABLET_TOPBAR_HITAREA_R1 */
/*
  Los botones superiores Tablet son la única superficie táctil.
  Sus iconos/spans no interceptan el toque, evitando zonas muertas dentro
  de Reserva, Clientes, Avisos, Actualizar y Ajustes.
*/
#section-tablet .tablet-actions > button {
  position: relative !important;
  z-index: 1 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: transparent !important;
}
#section-tablet .tablet-actions > button > * {
  pointer-events: none !important;
}
