/* Salovix v23: reserva tematizada, selectores fluidos y scroll interior fiable. */
:root {
  --salovix-dialog-bg: var(--mat-app-bg, #f8fafc);
  --salovix-dialog-surface: var(--mat-surface, #ffffff);
  --salovix-dialog-card: var(--mat-card, #ffffff);
  --salovix-dialog-map: var(--mat-map-bg, #f1f5f9);
  --salovix-dialog-text: var(--mat-readable-text, var(--mat-text, #1f2937));
  --salovix-dialog-muted: var(--mat-readable-muted, var(--mat-muted, #6b7280));
  --salovix-dialog-border: var(--mat-border, #e5e7eb);
  --salovix-dialog-accent: var(--mat-accent, #1ca9cf);
  --salovix-dialog-accent-hover: var(--mat-accent-hover, #1589aa);
  --salovix-dialog-accent-text: var(--mat-accent-text, #ffffff);
}
body.matilde-cover-dark-mode,
body.salovix-web-dark-mode {
  --salovix-dialog-bg: var(--mat-cover-bg, #202a31);
  --salovix-dialog-surface: var(--mat-cover-panel, #303b43);
  --salovix-dialog-card: var(--mat-cover-panel-2, #36434b);
  --salovix-dialog-map: var(--mat-cover-map, #263239);
  --salovix-dialog-text: var(--mat-cover-text, #f1f4f5);
  --salovix-dialog-muted: var(--mat-cover-muted, #aeb9c1);
  --salovix-dialog-border: var(--mat-cover-border, #4b5962);
  --salovix-dialog-accent: var(--mat-cover-yellow, #f5c842);
  --salovix-dialog-accent-hover: var(--mat-cover-yellow-hover, #e4b62f);
  --salovix-dialog-accent-text: #202a31;
}

#drawer-reserva-local.matilde-wizard-reserva,
.matilde-wizard-reserva :is(.wizard-head,.wizard-body,.wizard-footer,.wizard-suggestions) {
  background: var(--salovix-dialog-surface) !important;
  color: var(--salovix-dialog-text) !important;
  border-color: var(--salovix-dialog-border) !important;
}
.matilde-wizard-reserva .wizard-body { background: var(--salovix-dialog-bg) !important; }
.matilde-wizard-reserva :is(.wizard-help,.wizard-input,.wizard-select,.wizard-textarea,.wizard-number,.wizard-pill,.wizard-hour,.wizard-waiter,.wizard-close,.wizard-btn-cancel,.wizard-suggestion) {
  background: var(--salovix-dialog-card) !important;
  color: var(--salovix-dialog-text) !important;
  border-color: var(--salovix-dialog-border) !important;
}
.matilde-wizard-reserva :is(.wizard-title,.wizard-dot.is-active,.wizard-dot.is-done) { color: var(--salovix-dialog-accent) !important; }
.matilde-wizard-reserva :is(.wizard-dot.is-active,.wizard-dot.is-done,.wizard-number.is-active,.wizard-pill.is-active,.wizard-hour.is-active,.wizard-waiter.is-active,.wizard-btn-main),
#matilde-wizard-confirm-table {
  background: var(--salovix-dialog-accent) !important;
  border-color: var(--salovix-dialog-accent) !important;
  color: var(--salovix-dialog-accent-text) !important;
}
.matilde-wizard-reserva :is(.wizard-subtitle,.wizard-step-label,.wizard-help,.wizard-suggestion span) { color: var(--salovix-dialog-muted) !important; }
.matilde-wizard-reserva .wizard-hour.is-disabled { background: var(--salovix-dialog-bg) !important; color: var(--salovix-dialog-muted) !important; }
#matilde-wizard-table-bar {
  background: var(--salovix-dialog-surface) !important;
  color: var(--salovix-dialog-text) !important;
  border-color: var(--salovix-dialog-border) !important;
}
#matilde-wizard-table-bar span { color: var(--salovix-dialog-muted) !important; }
#matilde-wizard-table-selected {
  background: color-mix(in srgb, var(--salovix-dialog-accent) 14%, var(--salovix-dialog-card)) !important;
  border-color: color-mix(in srgb, var(--salovix-dialog-accent) 48%, var(--salovix-dialog-border)) !important;
  color: var(--salovix-dialog-text) !important;
}
#matilde-wizard-cancel-table { background: var(--salovix-dialog-card) !important; color: var(--salovix-dialog-text) !important; border-color: var(--salovix-dialog-border) !important; }
body.matilde-wizard-selecting-table :is(#sala-canvas-container,#tablet-map-viewport,#mobile-map-stage) {
  background: var(--salovix-dialog-map) !important;
  box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--salovix-dialog-accent) 48%, transparent) !important;
}
.matilde-wizard-table-ok { outline-color: color-mix(in srgb, var(--salovix-dialog-accent) 55%, transparent) !important; }

/* Scroll vertical desde cualquier punto interior de los menús y modales. */
:is(
  .salovix-web-sidebar-scroll,.salovix-web-crm-list,.salovix-web-crm-detail,.salovix-web-view-card-body,
  .wizard-body,.wizard-suggestions,.matilde-v63-appearance-card,.matilde-v63-appearance-grid,
  .matilde-v95-dark-card,.matilde-v95-dark-body,.tablet-extra-body,.tablet-extra-list,.tablet-extra-detail,
  .matilde-v38-filter-scroll,.matilde-v44-filter-scroll,#modal-config-matilde .space-y-3,
  [class~="overflow-y-auto"],[class~="overflow-y-scroll"]
) {
  touch-action: pan-y !important;
  overscroll-behavior-y: contain !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-gutter: stable;
}
:is(
  .salovix-web-sidebar-scroll,.salovix-web-crm-list,.salovix-web-crm-detail,.wizard-body,
  .matilde-v63-appearance-card,.matilde-v95-dark-card,.tablet-extra-body,.tablet-extra-list,.tablet-extra-detail,
  .matilde-v38-filter-scroll,.matilde-v44-filter-scroll,#modal-config-matilde .space-y-3
) > * { touch-action: pan-y !important; }

/* Evita repintados animados durante la vista previa cromática. */
body.salovix-colour-preview-active *,
body.salovix-colour-preview-active *::before,
body.salovix-colour-preview-active *::after { transition: none !important; animation-duration: 0s !important; }
