.booking-wizard{position:fixed;inset:0;z-index:1200;display:block}.booking-wizard[hidden]{display:none!important}.booking-wizard.is-open{display:block}.booking-wizard:not(.is-open):not(.is-closing) .wizard-backdrop,.booking-wizard:not(.is-open):not(.is-closing) .wizard-panel{opacity:0}.wizard-backdrop{position:absolute;inset:0;background:#0f172a9e;opacity:0;transition:opacity .18s ease}.wizard-panel{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:min(720px,100%);max-height:94vh;background:#fff;border-radius:20px 20px 0 0;display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translate(-50%) translateY(20px);transition:opacity .2s ease,transform .22s ease;will-change:transform,opacity}.booking-wizard.is-open .wizard-backdrop{opacity:1}.booking-wizard.is-open .wizard-panel{opacity:1;transform:translate(-50%) translateY(0)}.booking-wizard.is-closing .wizard-backdrop{opacity:0}.booking-wizard.is-closing .wizard-panel{opacity:0;transform:translate(-50%) translateY(18px)}.wizard-header,.wizard-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e2e8f0}.wizard-footer{border-bottom:0;border-top:1px solid #e2e8f0}.wizard-back,.wizard-close{border:0;background:transparent;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.wizard-back:focus-visible,.wizard-close:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--store-primary, #10b981) 22%,white);border-radius:999px}.wizard-body{padding:12px 14px;flex:1 1 auto;min-height:0;overflow:auto}.wizard-step{display:none}.wizard-step.active{display:block}.wizard-step.active.step-animate{animation:wizard-step-enter .18s ease}@keyframes wizard-step-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.wizard-backdrop,.wizard-panel,.wizard-step.active.step-animate{transition:none;animation:none}}.wizard-progress{padding:10px 16px;border-bottom:1px solid #e2e8f0}.progress-track{height:4px;background:#e2e8f0;border-radius:999px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--store-primary, #10b981),color-mix(in srgb,var(--store-primary, #10b981) 68%,white));border-radius:999px;transition:width .22s ease}.progress-steps{margin-top:8px;display:flex;justify-content:space-between}.progress-steps .step{width:26px;height:26px;border-radius:50%;background:#f1f5f9;color:#64748b;font-size:var(--fs-xs);font-weight:700;display:inline-flex;align-items:center;justify-content:center;transition:transform .18s ease,background-color .18s ease,color .18s ease,box-shadow .18s ease}.progress-steps .step.active{background:var(--store-primary, #10b981);color:#fff;transform:scale(1.06);box-shadow:0 6px 12px color-mix(in srgb,var(--store-primary, #10b981) 18%,transparent)}.services-list,.staff-grid,.time-slots,.date-scroll{display:grid;gap:8px}.service-category-heading{padding:4px 0 2px}.service-category-heading:not(:first-child){margin-top:8px;border-top:1px solid #e2e8f0;padding-top:12px}.service-category-title{margin:0;font-size:1rem;font-weight:700;color:var(--store-primary, #10b981);letter-spacing:-.01em}.service-subcategory-heading{padding:4px 0 2px 10px;border-left:3px solid color-mix(in srgb,var(--store-primary, #10b981) 35%,transparent)}.service-subcategory-title{margin:0;font-size:.85rem;font-weight:600;color:#475569}.service-item,.staff-item,.time-slot,.date-pill{padding:9px 10px;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .18s ease}.service-item.selected,.staff-item.selected,.time-slot.selected,.date-pill.selected{border-color:var(--store-primary, #10b981);background:color-mix(in srgb,var(--store-primary, #10b981) 8%,white);box-shadow:0 8px 16px color-mix(in srgb,var(--store-primary, #10b981) 12%,transparent)}.service-item:active,.staff-item:active,.time-slot:active,.date-pill:active{transform:scale(.985)}.service-item{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:9px}.service-check input{width:18px;height:18px}.service-img,.service-img-placeholder{width:42px;height:42px;border-radius:10px;object-fit:cover;background:#f1f5f9;display:inline-flex;align-items:center;justify-content:center}.service-header{display:flex;align-items:center;gap:8px}.service-name{font-weight:700;cursor:pointer}.service-info-btn{border:0;background:transparent;cursor:pointer;color:#64748b}.service-info-btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--store-primary, #10b981) 16%,white);border-radius:999px}.service-description{margin-top:6px;font-size:var(--type-badge-size);color:#475569}.service-description[hidden]{display:none!important}.staff-grid{grid-template-columns:repeat(auto-fit,minmax(122px,1fr))}.staff-item{text-align:center}.staff-avatar,.staff-avatar-placeholder{width:48px;height:48px;border-radius:50%;margin:0 auto 8px;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;background:#e2e8f0;font-weight:700}.date-scroll{grid-template-columns:repeat(auto-fit,minmax(94px,1fr))}.section-label{font-weight:700;margin-bottom:8px}.time-slots{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))}.selected-info{font-size:var(--type-body-sm-size);color:#334155}.time-slot,.date-pill{justify-content:center;text-align:center}@media(max-width:640px){.service-item{grid-template-columns:auto 1fr;gap:10px}.service-check{grid-row:span 2;align-self:center}.service-header{flex-wrap:wrap;gap:6px}.staff-grid,.date-scroll,.time-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}.booking-client-form{display:grid;gap:10px}.booking-form-group{margin-bottom:10px}.booking-form-group:last-child{margin-bottom:0}.booking-form-label{display:block;margin-bottom:var(--field-label-gap, 6px);font-size:var(--type-label-size, .875rem);font-weight:var(--type-label-weight, 600);line-height:1.35;color:var(--field-label-color, #0f172a)}.booking-form-input,.booking-form-textarea{--booking-control-border-color: var(--field-border-color, #cbd5e1);--booking-control-border-color-focus: var(--field-border-color-focus, #0496a5);--booking-control-bg: var(--field-bg, #ffffff);--booking-control-text: var(--field-text-color, #0f172a);width:100%;border:1px solid var(--booking-control-border-color);border-radius:var(--field-radius, 12px);background:var(--booking-control-bg);color:var(--booking-control-text);box-shadow:var(--field-shadow, 0 2px 4px rgba(15, 23, 42, .02));padding:var(--field-padding-block, 10px) var(--field-padding-inline, 10px);transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.booking-form-input{min-height:var(--field-min-height, 44px)}.booking-form-textarea{min-height:var(--field-textarea-min-height, 112px);resize:vertical}.booking-form-input:focus,.booking-form-input:focus-visible,.booking-form-textarea:focus,.booking-form-textarea:focus-visible{outline:none;border-color:var(--booking-control-border-color-focus);box-shadow:var(--field-shadow-focus, 0 0 0 4px rgba(4, 150, 165, .1), 0 4px 12px rgba(15, 23, 42, .05))}.booking-form-input.error,.booking-form-textarea.error{border-color:var(--field-error-color, #dc2626);box-shadow:0 0 0 3px #dc26261f}.booking-form-error{margin:var(--field-hint-gap, 6px) 0 0;color:var(--field-error-color, #dc2626);font-size:var(--type-badge-size);font-weight:var(--field-error-weight, 500);line-height:1.35}.booking-summary-card{margin-bottom:12px;padding:11px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.booking-summary-title{font-size:.9375rem;font-weight:700;color:var(--text-main)}.booking-summary-inline{margin:0 0 8px;color:var(--text-main);line-height:1.4;display:flex;align-items:baseline;gap:8px;flex-wrap:nowrap}.booking-summary-title{flex:0 0 auto}.booking-summary-value{color:#334155;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking-summary-line{margin:0 0 4px;color:#334155}.booking-summary-line--total{margin-bottom:0}@media(max-width:640px){.booking-client-form{gap:8px}.booking-form-group{margin-bottom:8px}.booking-form-textarea{min-height:96px}}.success-screen{text-align:center;padding:16px 10px 10px}.success-icon{width:54px;height:54px;border-radius:50%;background:linear-gradient(180deg,#dcfce7,#bbf7d0);color:#16a34a;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 22px #22c55e24}.empty-message,.loading-message{color:#64748b;font-size:var(--type-body-sm-size);text-align:center;padding:14px 12px;border:1px dashed rgba(148,163,184,.24);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc)}.success-title{margin:0;font-size:1.125rem;font-weight:800;color:#0f172a}.success-message{margin:8px 0 0;font-size:var(--type-body-sm-size);line-height:1.45;color:#475569}.redirect-counter{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;margin-top:14px;padding:0 12px;border-radius:999px;background:#f8fafc;color:#334155;font-weight:700}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.3;animation:booking-success-dots 1.2s infinite ease-in-out}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes booking-success-dots{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.wizard-btn-next{border:0;border-radius:10px;min-height:44px;padding:10px 16px;background:linear-gradient(135deg,var(--store-primary, #10b981) 0%,color-mix(in srgb,var(--store-primary, #10b981) 78%,black) 100%);color:#fff;font-weight:700;cursor:pointer}.wizard-btn-next:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.7);box-shadow:none}.wizard-btn-next:not(:disabled):active{transform:scale(.985)}@media(max-width:640px){.wizard-panel{width:100%;max-height:calc(100dvh - 10px);height:auto;border-radius:18px 18px 0 0}.wizard-header,.wizard-progress,.wizard-body,.wizard-footer{padding-left:14px;padding-right:14px}.wizard-header{padding-top:10px}.wizard-footer{gap:8px;flex-wrap:wrap;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.wizard-footer>*{width:100%}.wizard-btn-next,.wizard-footer .btn,.wizard-footer button,.wizard-footer a{width:100%;justify-content:center}.progress-steps{gap:6px}.progress-steps .step{width:24px;height:24px}}
