html{height:100%;background:var(--app-bg);--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #0001ac);--mat-sys-on-tertiary-container: light-dark(#0000ef, #e0e0ff);--mat-sys-on-tertiary-fixed: light-dark(#00006e, #00006e);--mat-sys-on-tertiary-fixed-variant: light-dark(#0000ef, #0000ef);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#343dff, #bec2ff);--mat-sys-tertiary-container: light-dark(#e0e0ff, #0000ef);--mat-sys-tertiary-fixed: light-dark(#e0e0ff, #e0e0ff);--mat-sys-tertiary-fixed-dim: light-dark(#bec2ff, #bec2ff);--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}body{color-scheme:light;background-color:var(--app-bg);color:var(--app-text);font:var(--mat-sys-body-medium);margin:0;min-height:100%;height:100%}body.theme-dark{color-scheme:dark}:root{--app-bg: #f5f7fb;--app-surface: #ffffff;--app-surface-strong: #f1f5f9;--app-surface-soft: #f8fafc;--app-text: #0f172a;--app-text-muted: #64748b;--app-border: #dbe3ee;--app-border-strong: #cbd5e1;--app-primary: #0ea5e9;--app-primary-contrast: #ffffff;--app-secondary: #0f172a;--app-secondary-contrast: #ffffff;--app-shadow: 0 10px 24px rgb(15 23 42 / 12%);--app-elevation: 0 18px 36px rgb(15 23 42 / 14%);--app-hover-surface: color-mix(in srgb, var(--app-primary) 9%, var(--app-surface));--app-active-surface: color-mix(in srgb, var(--app-primary) 16%, var(--app-surface));--app-input-bg: #ffffff;--app-input-text: #0f172a;--app-input-placeholder: #94a3b8;--app-input-focus-ring: color-mix(in srgb, var(--app-primary) 18%, transparent);--app-table-header-bg: #f8fafc;--app-table-row-hover: #eef6ff;--app-table-row-border: #e2e8f0}html.theme-dark,body.theme-dark{--app-bg: #0b1120;--app-surface: #111827;--app-surface-strong: #1f2937;--app-surface-soft: #0f172a;--app-text: #e5e7eb;--app-text-muted: #94a3b8;--app-border: #243244;--app-border-strong: #334155;--app-primary: #38bdf8;--app-primary-contrast: #082f49;--app-secondary: #e2e8f0;--app-secondary-contrast: #0f172a;--app-shadow: 0 14px 30px rgb(2 6 23 / 36%);--app-elevation: 0 24px 48px rgb(2 6 23 / 42%);--app-hover-surface: color-mix(in srgb, var(--app-primary) 13%, var(--app-surface));--app-active-surface: color-mix(in srgb, var(--app-primary) 22%, var(--app-surface));--app-input-bg: #0f172a;--app-input-text: #e5e7eb;--app-input-placeholder: #64748b;--app-input-focus-ring: color-mix(in srgb, var(--app-primary) 24%, transparent);--app-table-header-bg: #0f172a;--app-table-row-hover: color-mix(in srgb, var(--app-primary) 8%, var(--app-surface));--app-table-row-border: #243244}:root{--tenant-surface-primary: #0ea5e9;--tenant-surface-secondary: #0f172a;--tenant-primary: #0ea5e9;--tenant-secondary: #0f172a;--tenant-accent: #14b8a6;--tenant-action-primary-bg: #0ea5e9;--tenant-action-primary-text: #ffffff;--tenant-action-secondary-bg: #ffffff;--tenant-action-secondary-text: #334155;--tenant-primary-soft: rgb(14 165 233 / 14%);--tenant-secondary-soft: rgb(15 23 42 / 20%);--tenant-accent-soft: rgb(20 184 166 / 17%);--tenant-bg-image: none}body.cliente-theme-shell{background-image:linear-gradient(145deg,color-mix(in srgb,var(--tenant-surface-secondary) 24%,transparent),color-mix(in srgb,var(--tenant-surface-primary) 20%,transparent),color-mix(in srgb,var(--tenant-accent) 14%,transparent)),var(--tenant-bg-image);background-size:cover;background-position:center;background-attachment:fixed;background-repeat:no-repeat;background-blend-mode:multiply,normal;transition:background-image .26s ease}body.cliente-theme-shell.cliente-theme-with-image{background-image:var(--tenant-bg-image);background-blend-mode:normal}.mat-mdc-snack-bar-container.app-snackbar-success .mdc-snackbar__surface{background:#166534;color:#f0fdf4}.mat-mdc-snack-bar-container.app-snackbar-error .mdc-snackbar__surface{background:#991b1b;color:#fef2f2}.mat-mdc-snack-bar-container.app-snackbar-info .mdc-snackbar__surface{background:#1e3a8a;color:#eff6ff}.mat-mdc-snack-bar-container.app-snackbar-warning .mdc-snackbar__surface{background:#854d0e;color:#fffbeb}@keyframes ui-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}:where(.auth-card,.hero-copy,.hero-stats,.turnos-card,.turno-form-card,.cliente-card,.servicio-form-card,.sede-form-card,.empleado-form-card,.agenda-card,.empleados-card,.servicios-card,.sedes-card,.disponibilidad-card,.tenant-card,.error-banner){animation:ui-fade-up .32s ease-out both}:where(.stats .stat-card,.action-grid .action-card,.lista .item,.servicios .servicio,.horarios .dia-card,.track .card,.table-wrap tbody tr){opacity:0;animation:ui-fade-up .36s ease-out both}:where(.stats .stat-card,.action-grid .action-card,.lista .item,.servicios .servicio,.horarios .dia-card,.track .card,.table-wrap tbody tr):nth-child(1){animation-delay:40ms}:where(.stats .stat-card,.action-grid .action-card,.lista .item,.servicios .servicio,.horarios .dia-card,.track .card,.table-wrap tbody tr):nth-child(2){animation-delay:80ms}:where(.stats .stat-card,.action-grid .action-card,.lista .item,.servicios .servicio,.horarios .dia-card,.track .card,.table-wrap tbody tr):nth-child(3){animation-delay:.12s}:where(.stats .stat-card,.action-grid .action-card,.lista .item,.servicios .servicio,.horarios .dia-card,.track .card,.table-wrap tbody tr):nth-child(4){animation-delay:.16s}:where(.stats .stat-card,.action-grid .action-card,.lista .item,.servicios .servicio,.horarios .dia-card,.track .card,.table-wrap tbody tr):nth-child(5){animation-delay:.2s}.table-wrap thead{animation:ui-fade-in .26s ease-out both}:where(input,select,textarea){color:var(--app-input-text);background:var(--app-input-bg);border:1px solid var(--app-border-strong);border-radius:10px;font:inherit;transition:border-color .12s ease,box-shadow .12s ease,background .12s ease}:where(input,select,textarea)::placeholder{color:var(--app-input-placeholder)}:where(input,select,textarea):focus{outline:none;border-color:var(--app-primary);box-shadow:0 0 0 3px var(--app-input-focus-ring)}:where(input,select,textarea):disabled{background:var(--app-surface-strong);color:var(--app-text-muted);cursor:not-allowed}.table-wrap{border:1px solid var(--app-border);border-radius:14px;overflow:hidden;background:var(--app-surface);box-shadow:var(--app-shadow)}.table-wrap table{width:100%;border-collapse:collapse;min-width:640px;color:var(--app-text)}.table-wrap th,.table-wrap td{padding:12px 10px;border-bottom:1px solid var(--app-table-row-border);text-align:left}.table-wrap th{background:var(--app-table-header-bg);color:var(--app-text-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.02em}.table-wrap tbody tr:hover{background:var(--app-table-row-hover)}.admin-summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.admin-summary-card{border:1px solid var(--app-border);border-radius:14px;padding:12px 14px;background:linear-gradient(180deg,var(--app-surface-strong) 0%,var(--app-surface) 100%);display:grid;gap:3px}.admin-summary-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted);font-weight:700}.admin-summary-card strong{color:var(--app-text);font-size:1rem}.admin-summary-card small{color:var(--app-text-muted);font-size:.78rem}.admin-filters{display:grid;grid-template-columns:minmax(0,1fr) 200px auto;gap:8px;margin-bottom:12px}.admin-filters input,.admin-filters select{border:1px solid var(--app-border);border-radius:10px;padding:10px 12px;font-size:.9rem;background:var(--app-surface-strong);color:var(--app-text)}.admin-filters input:focus,.admin-filters select:focus{outline:none;border-color:var(--app-primary);box-shadow:0 0 0 3px var(--app-input-focus-ring)}.admin-btn-search{border:1px solid var(--app-border);background:var(--app-surface-strong);color:var(--app-text);border-radius:10px;padding:8px 12px;cursor:pointer;font:inherit;font-weight:600;min-height:42px}.admin-btn-search:disabled{opacity:.5;cursor:not-allowed}.admin-btn-search:hover:not(:disabled){background:var(--app-surface)}.admin-pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.admin-size-control,.admin-page-control{display:inline-flex;align-items:center;gap:8px}.admin-size-control label{color:var(--app-text-muted);font-size:.86rem}.admin-size-control select{border:1px solid var(--app-border);border-radius:10px;padding:8px 10px;font-size:.86rem;background:var(--app-surface-strong);color:var(--app-text)}.admin-page-control span{color:var(--app-text);font-size:.88rem;font-weight:600}.admin-page-control button{border:1px solid var(--app-border);background:var(--app-surface-strong);color:var(--app-text);border-radius:10px;padding:8px 10px;cursor:pointer;font:inherit;font-weight:600}.admin-page-control button:disabled{opacity:.5;cursor:not-allowed}.admin-feedback{margin:0 0 10px;color:var(--app-text-muted);font-size:.88rem}.admin-feedback.warning{color:color-mix(in srgb,#f59e0b 72%,var(--app-text))}.admin-empty-state{background:var(--app-surface);border:1px dashed var(--app-border-strong);border-radius:10px;margin:12px 0 0;padding:16px;color:var(--app-text-muted);text-align:center}.admin-table-skeleton{background:linear-gradient(180deg,var(--app-surface-strong) 0%,var(--app-surface) 100%);border:1px solid var(--app-border);border-radius:14px;padding:16px;margin-bottom:12px}.admin-loading-banner{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:14px;border-radius:999px;background:color-mix(in srgb,var(--app-primary) 10%,var(--app-surface));color:var(--app-text);font-weight:700;box-shadow:0 2px 12px color-mix(in srgb,var(--app-primary) 10%,transparent)}.admin-loading-dot{width:10px;height:10px;border-radius:50%;background:var(--app-primary);animation:admin-pulse-dot 1.2s infinite ease-in-out}.admin-skeleton-row{background:transparent}.admin-skeleton-cell,.admin-skeleton-line{display:block;background:linear-gradient(90deg,var(--app-border) 25%,var(--app-surface) 50%,var(--app-border) 75%);background-size:200% 100%;animation:admin-skeleton-shimmer 1.2s ease-in-out infinite}.admin-skeleton-cell{width:100%;height:28px;border-radius:10px}.admin-skeleton-line{border-radius:999px}@keyframes admin-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes admin-pulse-dot{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}@media(max-width:900px){.admin-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-summary-strip:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}.admin-filters{grid-template-columns:1fr}.admin-pagination{flex-direction:row;align-items:center;flex-wrap:wrap}.admin-page-control{margin-left:auto}}@media(max-width:640px){.admin-summary-strip{gap:6px}.admin-summary-card{padding:10px 12px;border-radius:10px}.admin-pagination{gap:8px;font-size:.84rem}.admin-size-control,.admin-page-control{min-width:0}.admin-page-control{gap:6px}.admin-page-control span{font-size:.84rem;white-space:nowrap}}body.theme-dark .table-wrap tbody tr:hover{background:color-mix(in srgb,var(--app-primary) 8%,var(--app-surface))}body.theme-dark .table-wrap{box-shadow:var(--app-elevation)}body.theme-dark :where(input,select,textarea){background:var(--app-input-bg);color:var(--app-input-text);border-color:var(--app-border-strong)}body.theme-dark :where(input,select,textarea)::placeholder{color:var(--app-input-placeholder)}body.theme-dark :where(.loading-skeleton,.reprogramar-modal){border-color:var(--app-border);box-shadow:var(--app-elevation)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.btn-retry{width:auto!important;min-width:140px;display:inline-flex;justify-content:center;align-items:center;align-self:center}
