@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@400;500;600;700;800&display=swap);:root{--brand:#e63946;--brand-dark:#c1121f;--brand-light:#fde8ea;--brand-muted:#e639461a;--ink:#0f172a;--ink-2:#334155;--ink-3:#64748b;--ink-4:#94a3b8;--surface:#fff;--surface-2:#f8fafc;--surface-3:#f1f5f9;--border:#e2e8f0;--border-2:#cbd5e1;--success:#16a34a;--success-bg:#f0fdf4;--success-border:#bbf7d0;--warning:#d97706;--warning-bg:#fffbeb;--warning-border:#fde68a;--error:#dc2626;--error-bg:#fef2f2;--error-border:#fecaca;--info:#2563eb;--info-bg:#eff6ff;--info-border:#bfdbfe;--purple:#7c3aed;--purple-bg:#f5f3ff;--yellow:#f59e0b;--red:#dc2626;--radius-xs:4px;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:22px;--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 1px 8px #0f172a14;--shadow:0 4px 20px #0f172a1a;--shadow-lg:0 12px 48px #0f172a29;--font-display:"Space Grotesk",sans-serif;--font-body:"Inter",sans-serif;--sidebar-w:252px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{-webkit-font-smoothing:antialiased;background:#f8fafc;background:var(--surface-2);color:#0f172a;color:var(--ink);font-family:Inter,sans-serif;font-family:var(--font-body);font-size:14px;line-height:1.6;min-height:100vh}h1,h2,h3,h4,h5{font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-weight:700;line-height:1.2}a{color:#e63946;color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button{font-family:Inter,sans-serif;font-family:var(--font-body)}.sidebar{background:#0f172a;background:var(--ink);display:flex;flex-direction:column;inset:0 auto 0 0;overflow-y:auto;pointer-events:auto;position:fixed;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;visibility:visible;width:252px;width:var(--sidebar-w);z-index:300}.sidebar-logo{align-items:center;border-bottom:1px solid #ffffff12;display:flex;flex-shrink:0;gap:10px;padding:18px 18px 14px}.sidebar-logo-mark{align-items:center;background:#e63946;background:var(--brand);border-radius:6px;border-radius:var(--radius-sm);display:flex;font-size:1rem;height:34px;justify-content:center;width:34px}.sidebar-logo-mark,.sidebar-logo-text{color:#fff;font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-weight:800}.sidebar-logo-text{font-size:1.15rem}.sidebar-logo-text span{color:#e63946;color:var(--brand)}.sidebar-section{padding:10px 9px 4px}.sidebar-label{color:#ffffff47;font-size:.67rem;font-weight:700;letter-spacing:.12em;margin-bottom:3px;padding:0 9px;text-transform:uppercase}.sidebar-item{align-items:center;background:none;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#ffffff94;cursor:pointer;display:flex;font-size:.84rem;font-weight:500;gap:9px;padding:8px 9px;text-align:left;transition:all .14s;width:100%}.sidebar-item:hover{background:#ffffff0f;color:#ffffffe0}.sidebar-item.active{background:#e63946;background:var(--brand);color:#fff}.sidebar-item .icon{flex-shrink:0;font-size:.9rem;text-align:center;width:17px}.sidebar-footer{border-top:1px solid #ffffff12;margin-top:auto;padding:10px 9px}.sidebar-support-link{align-items:center;border-radius:6px;border-radius:var(--radius-sm);color:#ffffff61;display:flex;font-size:.75rem;gap:8px;margin-bottom:4px;padding:8px 12px;text-decoration:none;transition:all .15s}.sidebar-support-link:hover{background:#ffffff0f;color:#ffffffb3}.sidebar-support-link .icon{flex-shrink:0;font-size:.85rem;text-align:center;width:17px}.sidebar-support-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-card{background:#ffffff0d;border-radius:6px;border-radius:var(--radius-sm);margin-bottom:7px;padding:9px 11px}.sidebar-user-email{color:#ffffff7a;font-size:.76rem}.sidebar-user-role{color:#e63946;color:var(--brand);font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.lang-toggle{display:flex;gap:4px;margin-bottom:7px}.lang-btn{background:none;border:1px solid #ffffff21;border-radius:4px;border-radius:var(--radius-xs);color:#ffffff73;cursor:pointer;flex:1 1;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:5px;text-transform:uppercase;transition:all .14s}.lang-btn.active{background:#ffffff24;border-color:#ffffff47;color:#fff}.mobile-menu-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:#0f172a;background:var(--ink);border:1px solid #ffffff2e;border-radius:6px;border-radius:var(--radius-sm);box-shadow:0 2px 8px #0006;color:#fff;cursor:pointer;display:none;font-size:1.25rem;height:44px;justify-content:center;left:12px;position:fixed;top:12px;touch-action:manipulation;transition:background .15s;-webkit-user-select:none;user-select:none;width:44px;z-index:500}.mobile-menu-btn:hover{background:#1e293b}.sidebar-overlay{-webkit-tap-highlight-color:transparent;background:#0000008c;cursor:pointer;display:none;inset:0;position:fixed;z-index:295}.main-content{margin-left:252px;margin-left:var(--sidebar-w)}.page-header{align-items:flex-start;background:#fff;background:var(--surface);border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:22px 28px 18px}.page-header-text h1{font-size:1.45rem;margin-bottom:2px}.page-header-text p{color:#64748b;color:var(--ink-3);font-size:.85rem}.page-body{padding:22px 28px}.plan-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.7rem;font-weight:700;gap:4px;letter-spacing:.06em;padding:3px 9px;text-transform:uppercase}.plan-trial{background:#fef3c7;color:#92400e}.plan-starter{background:#dbeafe;color:#1e40af}.plan-premium{background:#fde8ea;color:#9f1239}.plan-enterprise{background:#f5f3ff;color:#4c1d95}.plan-expired{background:#f1f5f9;background:var(--surface-3);color:#64748b;color:var(--ink-3)}.card{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 2px #0f172a0d;box-shadow:var(--shadow-xs)}.card-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:14px 18px}.card-title{font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-size:.93rem;font-weight:700}.card-body{padding:18px}.stats-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));margin-bottom:22px}.stat-card{background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:14px;border-radius:var(--radius-lg);overflow:hidden;padding:16px;position:relative}.stat-card:before{background:#e63946;background:var(--brand);border-radius:14px 14px 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.stat-card.green:before{background:#16a34a;background:var(--success)}.stat-card.blue:before{background:#2563eb;background:var(--info)}.stat-card.purple:before{background:#7c3aed;background:var(--purple)}.stat-icon{font-size:1.2rem;margin-bottom:8px}.stat-num{color:#0f172a;color:var(--ink);font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-size:1.75rem;font-weight:800;line-height:1;margin-bottom:2px}.stat-label{font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.stat-label,.stat-sub{color:#64748b;color:var(--ink-3)}.stat-sub{font-size:.76rem;margin-top:3px}.form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.form-group{margin-bottom:14px}.form-label{color:#64748b;color:var(--ink-3);display:block;font-size:.74rem;font-weight:600;letter-spacing:.07em;margin-bottom:5px;text-transform:uppercase}.form-input,.form-select,.form-textarea{-webkit-appearance:none;background:#fff;background:var(--surface);border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:6px;border-radius:var(--radius-sm);color:#0f172a;color:var(--ink);font-family:Inter,sans-serif;font-family:var(--font-body);font-size:.875rem;outline:none;padding:9px 12px;transition:border-color .14s,box-shadow .14s;width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#e63946;border-color:var(--brand);box-shadow:0 0 0 3px #e639461a;box-shadow:0 0 0 3px var(--brand-muted)}.form-input::placeholder{color:#94a3b8;color:var(--ink-4)}.form-textarea{min-height:72px;resize:vertical}.form-hint{color:#94a3b8;color:var(--ink-4);font-size:.73rem;margin-top:3px}.btn{align-items:center;border:none;border-radius:6px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:Inter,sans-serif;font-family:var(--font-body);font-size:.85rem;font-weight:600;gap:6px;justify-content:center;padding:9px 16px;text-decoration:none;transition:all .14s;white-space:nowrap}.btn-xs{font-size:.74rem;padding:4px 9px}.btn-sm{font-size:.8rem;padding:6px 13px}.btn-lg{font-size:.93rem;padding:12px 22px}.btn-full{width:100%}.btn-primary{background:#e63946;background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:#c1121f;background:var(--brand-dark);box-shadow:0 4px 12px #e6394659;transform:translateY(-1px)}.btn-secondary{background:#f1f5f9;background:var(--surface-3);border:1px solid #e2e8f0;border:1px solid var(--border);color:#334155;color:var(--ink-2)}.btn-secondary:hover:not(:disabled){background:#f8fafc;background:var(--surface-2)}.btn-ghost{background:#0000;border:1.5px solid #e2e8f0;border:1.5px solid var(--border);color:#64748b;color:var(--ink-3)}.btn-ghost:hover{background:#f1f5f9;background:var(--surface-3);color:#0f172a;color:var(--ink)}.btn-success{background:#f0fdf4;background:var(--success-bg);border:1px solid #bbf7d0;border:1px solid var(--success-border);color:#16a34a;color:var(--success)}.btn-danger{background:#fef2f2;background:var(--error-bg);border:1px solid #fecaca;border:1px solid var(--error-border);color:#dc2626;color:var(--error)}.btn-brand-outline{background:#0000;border:1.5px solid #e63946;border:1.5px solid var(--brand);color:#e63946;color:var(--brand)}.btn-brand-outline:hover{background:#fde8ea;background:var(--brand-light)}.btn:disabled{box-shadow:none!important;cursor:not-allowed;opacity:.5;transform:none!important}.alert{align-items:flex-start;border-radius:6px;border-radius:var(--radius-sm);display:flex;font-size:.84rem;gap:9px;line-height:1.5;margin-bottom:14px;padding:11px 13px}.alert-icon{flex-shrink:0;font-size:.95rem}.alert-success{background:#f0fdf4;background:var(--success-bg);border:1px solid #bbf7d0;border:1px solid var(--success-border);color:#166534}.alert-error{background:#fef2f2;background:var(--error-bg);border:1px solid #fecaca;border:1px solid var(--error-border);color:#dc2626;color:var(--error)}.alert-info{background:#eff6ff;background:var(--info-bg);border:1px solid #bfdbfe;border:1px solid var(--info-border);color:#2563eb;color:var(--info)}.alert-warning{background:#fffbeb;background:var(--warning-bg);border:1px solid #fde68a;border:1px solid var(--warning-border);color:#d97706;color:var(--warning)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}thead th{background:#f8fafc;background:var(--surface-2);border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border);color:#64748b;color:var(--ink-3);font-size:.71rem;font-weight:700;letter-spacing:.07em;padding:9px 13px;text-align:left;text-transform:uppercase;white-space:nowrap}tbody td{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);font-size:.85rem;padding:10px 13px;vertical-align:middle}tbody tr:hover{background:#f8fafc;background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}.badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.7rem;font-weight:700;gap:3px;letter-spacing:.05em;padding:3px 8px;text-transform:uppercase}.badge-green{background:#f0fdf4;background:var(--success-bg);color:#16a34a;color:var(--success)}.badge-red{background:#fef2f2;background:var(--error-bg);color:#dc2626;color:var(--error)}.badge-yellow{background:#fffbeb;background:var(--warning-bg);color:#d97706;color:var(--warning)}.badge-blue{background:#eff6ff;background:var(--info-bg);color:#2563eb;color:var(--info)}.badge-gray{background:#f1f5f9;background:var(--surface-3);color:#64748b;color:var(--ink-3)}.badge-purple{background:#f5f3ff;background:var(--purple-bg);color:#7c3aed;color:var(--purple)}.slots-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));margin-top:8px}.slot-btn{background:#fff;background:var(--surface);border:1.5px solid #e2e8f0;border:1.5px solid var(--border);border-radius:6px;border-radius:var(--radius-sm);color:#0f172a;color:var(--ink);cursor:pointer;font-family:Inter,sans-serif;font-family:var(--font-body);font-size:.8rem;font-weight:500;padding:9px 4px;text-align:center;transition:all .14s}.slot-btn:hover{background:#fde8ea;background:var(--brand-light);color:#e63946;color:var(--brand)}.slot-btn.selected,.slot-btn:hover{border-color:#e63946;border-color:var(--brand)}.slot-btn.selected{background:#e63946;background:var(--brand);color:#fff;font-weight:700}.slot-btn:disabled{background:#f8fafc;background:var(--surface-2);color:#cbd5e1;color:var(--border-2);cursor:not-allowed}.overlay{-webkit-overflow-scrolling:touch;align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a94;display:flex;inset:0;justify-content:center;overscroll-behavior:contain;padding:20px;position:fixed;z-index:999}.modal{border-radius:22px;border-radius:var(--radius-xl);box-shadow:0 12px 48px #0f172a29;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:90vh;max-height:90dvh;max-width:500px;min-height:0;overflow:hidden;width:100%}.modal,form.modal{background:#fff;background:var(--surface)}.modal>form{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:17px 20px}.modal-header h3{font-size:1rem}.modal-close{background:none;border:none;border-radius:4px;border-radius:var(--radius-xs);color:#64748b;color:var(--ink-3);cursor:pointer;font-size:1.05rem;line-height:1;padding:4px}.modal-close:hover{background:#f1f5f9;background:var(--surface-3)}.modal-body{-webkit-overflow-scrolling:touch;flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:20px;touch-action:pan-y}.modal-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;flex-shrink:0;gap:9px;justify-content:flex-end;padding:13px 20px}.public-layout{margin:0 auto;max-width:660px;padding:30px 18px 80px}.public-logo{color:#e63946;color:var(--brand);font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-size:1.5rem;font-weight:800;margin-bottom:4px}.public-logo span{color:#0f172a;color:var(--ink)}.step-bar{margin-bottom:24px}.step-bar,.step-item{align-items:center;display:flex}.step-item{color:#94a3b8;color:var(--ink-4);font-size:.76rem;font-weight:600;gap:5px}.step-num{align-items:center;background:#f1f5f9;background:var(--surface-3);border-radius:50%;color:#64748b;color:var(--ink-3);display:flex;flex-shrink:0;font-size:.7rem;font-weight:800;height:24px;justify-content:center;transition:all .2s;width:24px}.step-item.active .step-num{background:#e63946;background:var(--brand);color:#fff}.step-item.done .step-num{background:#16a34a;background:var(--success);color:#fff}.step-item.active{color:#334155;color:var(--ink-2)}.step-item.done{color:#16a34a;color:var(--success)}.step-line{background:#e2e8f0;background:var(--border);flex:1 1;height:2px;margin:0 5px}.step-line.done{background:#16a34a;background:var(--success)}.select-card{align-items:center;background:#fff;background:var(--surface);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:10px;border-radius:var(--radius);cursor:pointer;display:flex;justify-content:space-between;padding:13px 15px;text-align:left;transition:all .14s;width:100%}.select-card:hover{border-color:#fde8ea;border-color:var(--brand-light)}.select-card.active,.select-card:hover{background:#fde8ea;background:var(--brand-light)}.select-card.active{border-color:#e63946;border-color:var(--brand)}.select-card-name{font-size:.92rem;font-weight:700;margin-bottom:2px}.select-card-sub{color:#64748b;color:var(--ink-3);font-size:.8rem}.select-card-price{color:#e63946;color:var(--brand);flex-shrink:0;font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-size:1rem;font-weight:800}.barber-chip{align-items:center;background:#fff;background:var(--surface);border:2px solid #e2e8f0;border:2px solid var(--border);border-radius:20px;cursor:pointer;display:inline-flex;font-size:.81rem;font-weight:600;gap:7px;padding:7px 13px;transition:all .14s}.barber-chip.active{background:#fde8ea;background:var(--brand-light);border-color:#e63946;border-color:var(--brand);color:#e63946;color:var(--brand)}.barber-dot{border-radius:50%;flex-shrink:0;height:9px;width:9px}.success-screen{padding:28px 16px;text-align:center}.success-icon-wrap{align-items:center;background:#f0fdf4;background:var(--success-bg);border-radius:50%;display:flex;font-size:2rem;height:72px;justify-content:center;margin:0 auto 18px;width:72px}.summary-table{background:#f8fafc;background:var(--surface-2);border-radius:10px;border-radius:var(--radius);margin:18px 0;overflow:hidden}.summary-row{border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;gap:10px;padding:9px 14px}.summary-row:last-child{border-bottom:none}.summary-label{color:#64748b;color:var(--ink-3);flex-shrink:0;font-size:.8rem;min-width:85px}.summary-value{font-size:.84rem;font-weight:600}.register-layout{align-items:center;background:linear-gradient(135deg,#0f172a,#1e293b);display:flex;justify-content:center;min-height:100vh;padding:20px}.register-card{background:#fff;background:var(--surface);border-radius:22px;border-radius:var(--radius-xl);box-shadow:0 12px 48px #0f172a29;box-shadow:var(--shadow-lg);display:grid;grid-template-columns:1fr 1fr;max-width:860px;overflow:hidden;width:100%}.register-left{background:#e63946;background:var(--brand);display:flex;flex-direction:column;justify-content:center;padding:44px 36px}.register-left h2{color:#fff;font-size:1.8rem;margin-bottom:14px}.register-left p{color:#fffc;font-size:.9rem;line-height:1.7;margin-bottom:20px}.feature-list{list-style:none}.feature-list li{align-items:center;color:#ffffffe0;display:flex;font-size:.86rem;gap:9px;margin-bottom:9px}.feature-list li:before{align-items:center;background:#fff3;border-radius:50%;content:"✓";display:flex;flex-shrink:0;font-size:.7rem;font-weight:800;height:18px;justify-content:center;width:18px}.register-right{padding:44px 36px}.chart-bar-row{align-items:center;display:flex;gap:9px;margin-bottom:7px}.chart-bar-label{color:#64748b;color:var(--ink-3);font-size:.76rem;min-width:75px;text-align:right}.chart-bar-track{background:#f1f5f9;background:var(--surface-3);border-radius:20px;flex:1 1;height:9px;overflow:hidden}.chart-bar-fill{border-radius:20px;height:100%;transition:width .5s ease}.chart-bar-val{color:#334155;color:var(--ink-2);font-size:.76rem;font-weight:700;min-width:36px}.month-chart{align-items:flex-end;display:flex;gap:3px;height:90px;padding:6px 0}.month-bar-wrap{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:2px}.month-bar{background:#e63946;background:var(--brand);border-radius:3px 3px 0 0;min-height:2px;opacity:.85;transition:height .4s ease;width:100%}.month-bar-label{color:#64748b;color:var(--ink-3);font-size:.6rem}.hours-row{grid-gap:9px;align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:grid;gap:9px;grid-template-columns:88px 65px 1fr;padding:9px 0}.hours-row:last-child{border-bottom:none}.accent{color:#e63946;color:var(--brand)}.text-muted{color:#64748b;color:var(--ink-3)}.text-sm{font-size:.84rem}.text-xs{font-size:.74rem}.fw-700{font-weight:700}.flex{display:flex}.flex-between{gap:10px;justify-content:space-between}.flex-between,.flex-center{align-items:center;display:flex}.flex-center{justify-content:center}.flex-wrap{flex-wrap:wrap}.gap-2{gap:8px}.gap-3{gap:11px}.gap-4{gap:14px}.mb-0{margin-bottom:0!important}.mt-4{margin-top:14px}.divider{background:#e2e8f0;background:var(--border);height:1px;margin:16px 0}.empty-state{color:#64748b;color:var(--ink-3);padding:48px 20px;text-align:center}.empty-state .icon{font-size:2.6rem;margin-bottom:10px}.empty-state h3{color:#0f172a;color:var(--ink);font-size:1.02rem;margin-bottom:4px}.empty-state p{font-size:.84rem}.loading{padding:36px;text-align:center}.spinner{animation:spin .65s linear infinite;border:3px solid #e2e8f0;border-top-color:#e63946;border:3px solid var(--border);border-radius:50%;border-top-color:var(--brand);display:inline-block;height:28px;width:28px}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1024px){:root{--sidebar-w:220px}.page-body{padding:18px 20px}.page-header{padding:16px 20px}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:860px){.sidebar{box-shadow:none;pointer-events:none;transform:translateX(-100%);visibility:hidden}.sidebar.open{box-shadow:0 12px 48px #0f172a29;box-shadow:var(--shadow-lg);pointer-events:auto;transform:translateX(0);visibility:visible}.sidebar-overlay.open{display:block}.mobile-menu-btn{display:flex}.main-content{margin-left:0;padding-top:0}.page-header{align-items:flex-start;flex-direction:column;gap:10px;padding:58px 16px 14px}.page-body{padding:14px 16px}.form-row,.register-card{grid-template-columns:1fr}.register-left{display:none}.modal{margin:0 8px;max-width:100%}.table-wrap{-webkit-overflow-scrolling:touch}.stats-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.public-layout{padding:20px 14px 60px}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr 1fr}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.modal{max-height:95vh;max-height:95dvh}.step-bar{gap:2px}.page-header{padding:56px 12px 12px}.page-body{padding:10px 12px}.card-body{padding:14px}h1{font-size:1.2rem}}@media print{.btn,.mobile-menu-btn,.sidebar,.sidebar-overlay{display:none}.main-content{margin-left:0}}@media (max-width:768px){thead th{font-size:.66rem;padding:7px 9px}tbody td{padding:8px 9px}.btn,tbody td{font-size:.82rem}.btn{padding:8px 13px}.btn-xs{font-size:.72rem;padding:4px 7px}}.staff-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:9px;width:9px}:root{--tap-size:44px}html{-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-text-size-adjust:100%}body,html{overflow-x:hidden;width:100%}body{overscroll-behavior-y:none}canvas,img,svg,video{height:auto;max-width:100%}.alert,.card,.empty-state,.modal,.select-card,.stat-card{overflow-wrap:anywhere;word-break:normal}.btn,.form-input,.form-select,.form-textarea,button{min-height:44px;min-height:var(--tap-size)}.table-wrap{border-radius:10px;border-radius:var(--radius);max-width:100%}.table-wrap table{min-width:680px}@media (max-width:920px){.page-header{position:relative}.page-header .flex,.page-header .flex-between,.page-header [style*="display: flex"]{flex-wrap:wrap}.card-header{align-items:flex-start}.card-header .flex,.card-header .flex-between,.card-header [style*="display: flex"]{flex-wrap:wrap}.card-body .form-row[style],.form-row[style],.hours-row,.page-body [style*="grid-template-columns: 280px 1fr"],.page-body [style*="grid-template-columns: 360px 1fr"],.page-body [style*="grid-template-columns:280px 1fr"],.page-body [style*="grid-template-columns:360px 1fr"]{grid-template-columns:1fr!important}.hours-row{gap:6px}}@media (max-width:640px){:root{--radius-xl:18px;--radius-lg:14px}body,html{font-size:15px}.mobile-menu-btn{border-radius:14px;height:46px;left:10px;top:10px;width:46px}.sidebar{width:min(86vw,320px)}.sidebar-item{font-size:.9rem;min-height:42px}.sidebar-logo{padding:18px 16px}.main-content{max-width:100vw;width:100%}.page-header{gap:12px;padding:64px 14px 14px}.page-header-text h1{font-size:1.22rem;letter-spacing:-.02em;line-height:1.25}.page-header-text p{font-size:.84rem;line-height:1.45}.page-header .btn,.page-header a.btn{width:100%}.page-header>.flex,.page-header>.flex-between,.page-header>[style*="display: flex"]{display:grid!important;grid-template-columns:1fr!important;width:100%}.page-body{padding:12px 12px 88px}.card{border-radius:16px;box-shadow:0 1px 4px #0f172a0f}.card-header{padding:14px 14px 10px}.card-body{padding:14px}.card-title{font-size:1rem}.stats-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{border-radius:14px;padding:14px 12px}.stat-num{font-size:1.45rem}.stat-label{font-size:.66rem;line-height:1.2}.form-row{gap:10px;grid-template-columns:1fr!important}.form-group{margin-bottom:12px}.form-label{font-size:.72rem}.form-input,.form-select,.form-textarea{border-radius:12px;font-size:16px;padding:11px 12px}.btn{border-radius:12px;font-size:.88rem;min-height:44px;padding:10px 14px;width:auto}.btn-sm,.btn-xs{min-height:38px}.flex-between{align-items:stretch!important;flex-direction:column}.flex,.gap-2,.gap-3,.gap-4{flex-wrap:wrap}.modal{border-radius:18px 18px 0 0;margin:0;max-height:92vh;max-height:92dvh;max-height:calc(100dvh - 8px);width:100%}.overlay{align-items:flex-end;height:100vh;height:100dvh;padding:0}.modal-header{padding:15px 16px}.modal-body{padding:16px 16px calc(24px + env(safe-area-inset-bottom))}.modal-footer{display:grid;grid-template-columns:1fr;padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.modal-footer .btn{width:100%}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid #e2e8f0;border:1px solid var(--border);box-shadow:inset -18px 0 18px -20px #0f172a59;overflow-x:auto}thead th{font-size:.65rem;padding:8px 10px}tbody td{font-size:.82rem;padding:9px 10px}.badge{font-size:.66rem;padding:4px 8px}.summary-row{flex-direction:column;gap:3px}.summary-label{min-width:0}.select-card{align-items:flex-start;gap:10px}.select-card-price{align-self:flex-end}.step-bar{overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.step-bar::-webkit-scrollbar{display:none}.step-item{white-space:nowrap}.slots-grid{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.slot-btn{font-size:.86rem;min-height:42px}.public-layout{padding:18px 12px 80px}.register-layout{align-items:flex-start;padding:12px}.register-card{border-radius:18px}.register-right{padding:24px 18px}.chart-bar-row{align-items:flex-start}.chart-bar-label{font-size:.72rem;min-width:60px}}@media (max-width:380px){.stats-grid{grid-template-columns:1fr}.slots-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-body{padding-left:10px;padding-right:10px}.card-body{padding:12px}}.form-input[type=date],.form-input[type=datetime-local],.form-input[type=time]{line-height:1.3;min-height:44px;min-height:var(--tap-size)}.sidebar-accordion{padding:6px 9px 4px}.acc-group{margin-bottom:2px}.acc-header{-webkit-tap-highlight-color:transparent;align-items:center;background:none;border:none;border-radius:6px;border-radius:var(--radius-sm);color:#ffffff85;cursor:pointer;display:flex;font-size:.83rem;font-weight:600;gap:8px;min-height:36px;padding:7px 9px;text-align:left;transition:background .13s,color .13s;-webkit-user-select:none;user-select:none;width:100%}.acc-header:hover{background:#ffffff0d;color:#ffffffd1}.acc-header.has-active{color:#ffffffeb}.acc-header.open{color:#ffffffe6}.acc-header-icon{flex-shrink:0;font-size:.85rem;text-align:center;width:17px}.acc-header-label{flex:1 1;font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.acc-chevron{color:#ffffff47;display:inline-block;flex-shrink:0;font-size:1rem;line-height:1;transform:rotate(0deg);transition:transform .18s cubic-bezier(.4,0,.2,1)}.acc-chevron.open{transform:rotate(90deg)}.acc-body{padding-left:10px}.acc-body .sidebar-item{font-size:.83rem;padding:7px 9px}.acc-body .sidebar-item .icon{font-size:.82rem}.app-shell{display:flex;height:100vh;overflow:hidden}.main-content{flex:1 1;height:100vh;overflow-x:hidden;overflow-y:auto}.sidebar-overlay{pointer-events:none}.sidebar-overlay.open{display:block;pointer-events:auto}body.modal-open{overflow:hidden}body:has(.overlay),html:has(.overlay){overflow:hidden}@media (max-width:860px){.sidebar:not(.open){pointer-events:none;touch-action:none}.sidebar.open{pointer-events:auto;touch-action:auto}.main-content,.sidebar.open{-webkit-overflow-scrolling:touch;overflow-y:auto}.main-content{max-width:100vw;overscroll-behavior-y:contain;width:100%}}.bk-cal{--bk-cal-cell:44px;--bk-cal-gap:4px;--bk-cal-bar:var(--brand);--bk-cal-bar-mute:#e639464d;--bk-cal-sun:#dc2626;user-select:none;-webkit-user-select:none}.bk-cal-head{grid-gap:var(--bk-cal-gap);display:grid;gap:var(--bk-cal-gap);grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:6px}.bk-cal-head-cell{color:#64748b;color:var(--ink-3);font-size:.66rem;font-weight:700;letter-spacing:.06em;padding:4px 0;text-align:center;text-transform:uppercase}.bk-cal-head-cell.bk-sun{color:var(--bk-cal-sun)}.bk-cal-grid{grid-gap:var(--bk-cal-gap);display:grid;gap:var(--bk-cal-gap);grid-template-columns:repeat(7,minmax(0,1fr))}.bk-cal-cell{align-items:center;background:#0000;border-radius:8px;cursor:default;display:flex;flex-direction:column;justify-content:flex-start;min-height:var(--bk-cal-cell);outline:none;padding:5px 2px 6px;position:relative;transition:background .12s}.bk-cal-cell.has-date{cursor:pointer}.bk-cal-cell.has-date:hover{background:#f1f5f9;background:var(--surface-3)}.bk-cal-cell.has-date:focus-visible{box-shadow:0 0 0 2px #e63946;box-shadow:0 0 0 2px var(--brand)}.bk-cal-cell.other .bk-cal-num{color:#94a3b8;color:var(--ink-4);opacity:.5}.bk-cal-num{align-items:center;border-radius:999px;color:#0f172a;color:var(--ink);display:inline-flex;font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-size:.95rem;font-weight:600;justify-content:center;line-height:1;min-width:28px;padding:5px 7px;text-align:center;transition:background .1s}.bk-cal-cell.sun .bk-cal-num{color:var(--bk-cal-sun)}.bk-cal-cell.today .bk-cal-num{background:#e639461a;background:var(--brand-muted);color:#e63946;color:var(--brand);font-weight:800}.bk-cal-cell.selected .bk-cal-num{outline:2px solid #334155;outline:2px solid var(--ink-2);outline-offset:1px}.bk-cal-cell.selected.today .bk-cal-num{outline-color:#e63946;outline-color:var(--brand)}.bk-cal-bars{align-items:stretch;display:flex;flex-direction:column;gap:2px;margin-top:5px;max-width:30px;pointer-events:none;width:72%}.bk-cal-bar{background:var(--bk-cal-bar);border-radius:2px;height:3px}.bk-cal-bar.muted{background:var(--bk-cal-bar-mute)}.bk-cal-bar.pending{background:#d97706;background:var(--warning);opacity:.85}.bk-cal-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:0 0 12px}.bk-cal-month-label{color:#0f172a;color:var(--ink);font-family:Space Grotesk,sans-serif;font-family:var(--font-display);font-size:1.05rem;font-weight:700}.bk-cal-nav{align-items:center;display:flex;gap:4px}.bk-cal-nav-btn{align-items:center;background:#fff;background:var(--surface);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:6px;border-radius:var(--radius-sm);color:#334155;color:var(--ink-2);cursor:pointer;display:inline-flex;font-size:1rem;font-weight:600;height:32px;justify-content:center;transition:all .12s;width:32px}.bk-cal-nav-btn:hover{background:#f1f5f9;background:var(--surface-3)}.bk-cal-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--border);gap:10px;justify-content:space-between;margin-top:14px;padding-top:12px}.bk-cal-footer,.bk-cal-footer-info{align-items:center;display:flex;flex-wrap:wrap}.bk-cal-footer-info{color:#334155;color:var(--ink-2);font-size:.83rem;gap:14px}.bk-cal-footer-info b{color:#0f172a;color:var(--ink);font-weight:700}.bk-cal-dot{background:#e63946;background:var(--brand);border-radius:50%;display:inline-block;height:7px;margin-right:5px;vertical-align:middle;width:7px}.bk-cal-dot.cancelled{background:#dc2626;background:var(--error)}@media (max-width:640px){.bk-cal{--bk-cal-cell:40px;--bk-cal-gap:2px}.bk-cal-num{font-size:.86rem;min-width:24px;padding:4px 5px}.bk-cal-head-cell{font-size:.6rem}.bk-cal-bars{margin-top:4px}.bk-cal-bar{height:2.5px}.bk-cal-month-label{font-size:.95rem}.bk-cal-nav-btn{height:30px;width:30px}}@media (max-width:380px){.bk-cal{--bk-cal-cell:36px}.bk-cal-num{font-size:.78rem;min-width:22px;padding:3px 4px}}#root,body,html{min-height:100%;width:100%}body:not(.modal-open){overflow-y:auto}body:has(.app-shell){overflow:hidden}.app-shell{display:flex!important;height:100vh!important;min-height:100vh!important;overflow:hidden!important;width:100%!important}.main-content{-webkit-overflow-scrolling:touch;flex:1 1 auto!important;height:100vh!important;max-height:100vh!important;min-width:0!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:contain;pointer-events:auto!important;position:relative;scrollbar-gutter:stable}.page-body,.page-header{pointer-events:auto}.sidebar-overlay:not(.open){display:none!important;pointer-events:none!important;visibility:hidden!important}@media (min-width:861px){.mobile-menu-btn,.sidebar-overlay{display:none!important;pointer-events:none!important;visibility:hidden!important}}@media (max-width:860px){body:has(.app-shell){overflow:hidden}.main-content{-webkit-overflow-scrolling:touch;height:100vh!important;margin-left:0!important;max-height:100vh!important;max-width:100vw!important;overflow-x:hidden!important;overflow-y:auto!important;width:100%!important}}body,html{scroll-behavior:auto}body:not(.modal-open):not(:has(.app-shell)){height:auto!important;min-height:100vh!important;overflow-x:hidden!important;overflow-y:auto!important;touch-action:pan-y!important}body:not(.modal-open):not(:has(.app-shell)) #root{height:auto!important;min-height:100vh!important;overflow:visible!important}body:not(.modal-open) .register-layout,body:not(.modal-open) [class*=register],body:not(.modal-open) [data-page=register]{overflow:visible!important;touch-action:pan-y!important}body:not(.modal-open) .register-layout{align-items:flex-start!important;min-height:100vh!important}@media (max-width:860px){body:not(:has(.app-shell)),html:not(:has(.app-shell)){-webkit-overflow-scrolling:touch!important;height:auto!important;max-height:none!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto!important;position:static!important;touch-action:pan-y!important}body:not(.modal-open):not(:has(.app-shell)){-webkit-overflow-scrolling:touch!important;height:auto!important;max-height:none!important;min-height:100svh!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:auto!important;position:static!important;touch-action:pan-y!important}body:not(.modal-open):not(:has(.app-shell)) #root,body:not(.modal-open):not(:has(.app-shell)) #root>div,body:not(.modal-open):not(:has(.app-shell)) .register-layout,body:not(.modal-open):not(:has(.app-shell)) [data-page=register]{-webkit-overflow-scrolling:touch!important;height:auto!important;max-height:none!important;min-height:100svh!important;overflow-x:hidden!important;overflow-y:visible!important;overscroll-behavior-y:auto!important;position:relative!important;touch-action:pan-y!important}body:not(.modal-open):not(:has(.app-shell)) .register-card,body:not(.modal-open):not(:has(.app-shell)) [class*=register]{max-height:none!important;overflow-y:visible!important;touch-action:pan-y!important}}
/*# sourceMappingURL=main.2bda00ba.css.map*/
/* Bookniti v3.5.7 register route scroll hardening */


/* ──────────────────────────────────────────────────────────────
   Bookniti v3.5.7 — permanent /register mobile scroll fix
   Scope: only the public register route. This avoids breaking the
   tenant/admin app-shell layout while allowing Android Chrome/Samsung
   Browser and iOS Safari to use natural one-finger document scrolling.
   ────────────────────────────────────────────────────────────── */
html.bn-register-route,
body.bn-register-route {
  height: auto !important;
  min-height: 100% !important;
  max-height: none !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  position: static !important;
  touch-action: pan-y !important;
  overscroll-behavior-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

html.bn-register-route #root,
body.bn-register-route #root,
html.bn-register-route #root > div,
body.bn-register-route #root > div,
html.bn-register-route .register-page,
body.bn-register-route .register-page,
html.bn-register-route .register-layout,
body.bn-register-route .register-layout,
html.bn-register-route [data-page="register"],
body.bn-register-route [data-page="register"] {
  height: auto !important;
  min-height: 100dvh !important;
  max-height: none !important;
  overflow-y: visible !important;
  overflow-x: hidden !important;
  position: relative !important;
  touch-action: pan-y !important;
  overscroll-behavior-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

@media (max-width: 900px) {
  html.bn-register-route,
  body.bn-register-route {
    min-height: 100svh !important;
    overflow-y: auto !important;
  }

  body.bn-register-route #root,
  body.bn-register-route #root > div,
  body.bn-register-route .register-page,
  body.bn-register-route .register-layout,
  body.bn-register-route [data-page="register"] {
    min-height: 100svh !important;
    overflow-y: visible !important;
  }
}
