:root{--color-primary:#1c1c1c;--color-primary-dark:#1d4ed8;--color-primary-light:#3b82f6;--color-success:#10b981;--color-success-light:#d1fae5;--color-error:#ef4444;--color-error-light:#fee2e2;--color-warning:#f59e0b;--color-warning-light:#fef3c7;--color-text:#1f2937;--color-text-light:#6b7280;--color-text-muted:#9ca3af;--color-border:#e5e7eb;--color-background:#fff;--color-background-alt:#f9fafb;--color-background-hover:#f3f4f6;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:0.25rem;--radius-md:0.5rem;--radius-lg:0.75rem;--transition-fast:150ms ease-in-out;--transition-base:200ms ease-in-out}*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;min-height:100vh;background-color:#1a1a1a}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:transparent;line-height:1.6}body,h1,h2,h3,h4,h5,h6{color:var(--color-text)}h1,h2,h3,h4,h5,h6{font-weight:600}div,label,p,span{color:var(--color-text)}.main-content-wrapper{background-color:hsla(0,0%,100%,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-lg);margin:var(--spacing-lg) auto;max-width:100%}.container{max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}@media (max-width:768px){.container{padding:var(--spacing-md)}}input[type=date],input[type=email],input[type=password],input[type=tel],input[type=text],select,textarea{width:100%;padding:.75rem;font-size:1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:hsla(0,0%,100%,.98);color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{outline:none;border-color:#c9a24d;box-shadow:0 0 0 3px rgba(201,162,77,.2)}input:disabled,select:disabled{background-color:var(--color-background-alt);color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#262626;color:#ededed;border:none}.btn-primary:hover:not(:disabled){background-color:#333;color:#ededed;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:focus{outline:2px solid #c9a24d;outline-offset:2px;color:#ededed}.btn-primary-highlight{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none;background-color:#262626;color:#c9a24d}.btn-primary-highlight:hover:not(:disabled){background-color:#333;color:#c9a24d;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary-highlight:focus{outline:2px solid #c9a24d;outline-offset:2px;color:#c9a24d}.btn-primary-highlight:disabled{opacity:.6;cursor:not-allowed}.btn-success{background-color:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background-color:#059669;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-danger{background-color:var(--color-error);color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:hsla(0,0%,100%,.95);color:var(--color-text);border:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-secondary:hover:not(:disabled){background-color:var(--color-background-hover)}.card{background-color:#e6e2da;border:1px solid rgba(229,231,235,.6);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.card-header{padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.alert,.card-header{margin-bottom:var(--spacing-md)}.alert{padding:var(--spacing-md);border-radius:var(--radius-md)}.alert-success{background-color:var(--color-success-light);color:#065f46;border:1px solid var(--color-success)}.alert-error{background-color:var(--color-error-light);color:#991b1b;border:1px solid var(--color-error)}.alert-warning{background-color:var(--color-warning-light);color:#92400e;border:1px solid var(--color-warning)}.label{display:block;margin-bottom:var(--spacing-sm);font-weight:500;color:var(--color-text)}.label-optional{font-weight:400}.help-text,.label-optional{color:var(--color-text-light)}.help-text{margin-top:var(--spacing-sm);font-size:.875rem}.badge{display:inline-block;padding:.25rem .5rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase}.badge-success{background-color:rgba(16,185,129,.2);color:#10b981;border:1px solid #10b981}.badge-error{background-color:rgba(239,68,68,.2);color:#ef4444;border:1px solid #ef4444}.badge-warning{background-color:rgba(245,158,11,.2);color:#f59e0b;border:1px solid #f59e0b}.reservas-viewport{min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:.5rem .75rem .75rem;position:relative;z-index:1}.reservas-page-shell,.reservas-viewport{display:flex;flex-direction:column;box-sizing:border-box}.reservas-page-shell{width:100%;max-width:560px;align-items:stretch;gap:.35rem;flex:0 1 auto}.reservas-form-card{padding:var(--spacing-md)!important}.reservas-form-card h1{font-size:1.5rem!important}@media (max-width:768px){.reservas-form-card{padding:var(--spacing-sm)!important}.reservas-form-card h1{font-size:1.35rem!important}.card,.container{padding:var(--spacing-md)}h1{font-size:1.75rem!important}h2{font-size:1.25rem!important}.btn{padding:.625rem 1.25rem;font-size:.9375rem}}@media (max-width:480px){.container{padding:var(--spacing-sm)}input,select,textarea{font-size:16px}}.rbc-calendar{background-color:var(--color-background);color:var(--color-text)}.rbc-header{background-color:var(--color-background-alt);border-bottom:1px solid var(--color-border);padding:.75rem;font-weight:600;color:var(--color-text)}.rbc-day-bg{border:1px solid var(--color-border)}.rbc-off-range-bg{background-color:var(--color-background-alt)}.rbc-today{background-color:rgba(37,99,235,.1)}.rbc-event{border-radius:4px;padding:2px 4px;font-size:.875rem}.rbc-event-content{font-weight:500}.rbc-toolbar{margin-bottom:1rem}.container.admin-analiticas-root,.container.admin-dashboard-root,.container.admin-historial-root{max-width:none;width:100%;margin:0;padding-top:0;padding-bottom:.5rem;box-sizing:border-box}.container.admin-personalizacion-root,.container.admin-profesionales-root,.container.admin-servicios-root{max-width:1000px;width:100%;margin:0 auto;padding:0 0 .5rem;box-sizing:border-box}.container.admin-calendario-root{display:flex;flex-direction:column;gap:.75rem;min-height:0;max-width:none;width:100%;margin:0;padding-top:0;padding-bottom:.5rem;box-sizing:border-box}@media (min-width:769px){.container.admin-calendario-root{height:calc(100vh - 4rem)}}@media (max-width:768px){.container.admin-calendario-root{height:calc(100dvh - 5.25rem)}}.admin-calendario-root .admin-calendario-header-card{flex-shrink:0}.admin-calendario-root .admin-calendario-body{flex:1 1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.admin-calendario-root .admin-calendario-body-inner{flex:1 1 auto;min-height:0;height:100%;display:flex;flex-direction:column}.admin-calendario-root .admin-calendario-body-inner .rbc-calendar{flex:1 1 auto;min-height:0;height:100%!important}.admin-calendario-root .rbc-toolbar{margin-bottom:.35rem;flex-wrap:wrap;gap:.35rem}.admin-calendario-root .rbc-day-slot .rbc-event,.admin-calendario-root .rbc-month-view .rbc-row-content .rbc-event{z-index:2}.rbc-toolbar button{background-color:var(--color-background);border:1px solid var(--color-border);color:var(--color-text);padding:.5rem 1rem;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.rbc-toolbar button:hover{background-color:var(--color-background-hover)}.rbc-toolbar button.rbc-active{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.rbc-toolbar-label{font-weight:600;font-size:1.125rem;color:var(--color-text)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.admin-sidebar nav a.admin-sidebar-link{color:#ededed!important}.admin-sidebar nav a.admin-sidebar-active{color:#262626!important;background-color:#c9a24d!important}.admin-sidebar nav a.admin-sidebar-link:hover{color:#c9a24d!important}.admin-sidebar div a[href="/registro"]{color:#ededed!important}.admin-sidebar div a[href="/registro"]:hover{color:#c9a24d!important}.admin-sidebar button{color:#ededed!important}.admin-sidebar button:hover{color:#ef4444!important}.admin-sidebar-mobile-trigger--hidden{visibility:hidden;pointer-events:none;opacity:0}.admin-sidebar-mobile-trigger{display:none;align-items:center;gap:.5rem;position:fixed;top:max(.75rem,env(safe-area-inset-top));left:max(.75rem,env(safe-area-inset-left));z-index:998;padding:.55rem .9rem;border-radius:10px;border:2px solid #c9a24d;background:#262626;color:#ededed;font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.45);font-family:inherit;-webkit-tap-highlight-color:transparent}.admin-sidebar-mobile-trigger span{color:#f3f3f3}.admin-sidebar-mobile-trigger__icon{font-size:1.25rem;line-height:1;color:#f3f3f3}.admin-sidebar-mobile-trigger__label{color:#f3f3f3;font-weight:600}.admin-sidebar-backdrop{display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .25s ease}.admin-sidebar-backdrop--visible{display:block;opacity:1;pointer-events:auto}.admin-sidebar-close-mobile{display:none;flex-shrink:0;width:2.25rem;height:2.25rem;align-items:center;justify-content:center;border-radius:8px;border:2px solid rgba(201,162,77,.45);background:#1a1a1a;color:#ededed;font-size:1rem;line-height:1;cursor:pointer;font-family:inherit}@media (max-width:768px){.admin-content{margin-left:0!important;width:100%!important;padding:4.25rem 1rem 1rem!important}.admin-sidebar-close-mobile,.admin-sidebar-mobile-trigger{display:inline-flex}.admin-sidebar{transform:translateX(calc(-100% - 2rem));transition:transform .3s ease;max-height:calc(100vh - 2rem);z-index:1002}.admin-sidebar.admin-sidebar--open{transform:translateX(0)}}@media (min-width:769px){.admin-sidebar-backdrop--visible{display:none!important}.admin-sidebar{transform:none!important}}.pwa-install-banner{position:fixed;bottom:0;left:0;right:0;z-index:10050;padding:var(--spacing-md);padding-bottom:max(var(--spacing-md),env(safe-area-inset-bottom));background:linear-gradient(0deg,rgba(26,26,26,.98),rgba(26,26,26,.95));border-top:1px solid rgba(212,175,55,.35);box-shadow:0 -4px 24px rgba(0,0,0,.35)}.pwa-install-banner__inner{max-width:42rem;margin:0 auto}.pwa-install-banner__text{color:#f3f4f6;font-size:.9rem;line-height:1.5;margin-bottom:var(--spacing-sm)}.pwa-install-banner__text strong{color:#fde68a}.pwa-install-banner__actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.pwa-install-banner__btn{flex:1 1 auto;min-width:10rem}.pwa-install-banner__btn-dismiss{flex:0 0 auto}.pwa-install-banner__hint-ios{flex:1 1 100%;font-size:.85rem;color:var(--color-text-muted)}