.booking-page{min-height:100dvh;background:linear-gradient(180deg,#f0faf7,#f8fafc 40%)}.booking-header{padding:1rem 0;border-bottom:1px solid #e2e8f0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:-webkit-sticky;position:sticky;top:0;z-index:40}.booking-header__inner{max-width:40rem;margin:0 auto;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.booking-header__back{font-size:.85rem;color:var(--color-primary-dark);text-decoration:none;font-weight:500}.booking-header__back:hover{text-decoration:underline}.booking-main{max-width:40rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.booking-title{margin:0 0 .25rem;font-size:1.65rem;font-weight:700;letter-spacing:-.02em}.booking-sub{margin:0 0 1.5rem;color:var(--color-muted);font-size:.92rem}.booking-steps{display:flex;gap:.35rem;margin-bottom:1.75rem}.booking-step{flex:1 1;height:4px;border-radius:999px;background:#e2e8f0;transition:background .25s}.booking-step--active{background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light))}.booking-step--done{background:var(--color-primary)}.booking-step-labels{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.25rem;gap:.25rem;margin-top:.45rem;margin-bottom:1.5rem}.booking-step-label{font-size:.68rem;text-align:center;color:var(--color-muted);font-weight:500}.booking-step-label--active{color:var(--color-primary-dark);font-weight:700}.booking-panel{padding:1.35rem;border-radius:1rem;background:white;border:1px solid var(--color-border);box-shadow:0 4px 24px rgba(15,23,42,.06)}.booking-panel__title{margin:0 0 .35rem;font-size:1.15rem;font-weight:700}.booking-panel__sub{margin:0 0 1.15rem;font-size:.88rem;color:var(--color-muted);line-height:1.5}.booking-panel__sub strong{color:var(--color-text);text-transform:capitalize}.booking-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.booking-cal__month{margin:0;font-size:1rem;font-weight:700;text-transform:capitalize}.booking-cal__nav{display:flex;gap:.35rem}.booking-cal__nav-btn{width:2rem;height:2rem;border:1px solid var(--color-border);border-radius:.5rem;background:white;font-size:1rem;cursor:pointer;color:var(--color-text)}.booking-cal__nav-btn:hover:not(:disabled){border-color:var(--color-primary);background:#f0fdfa}.booking-cal__nav-btn:disabled{opacity:.4;cursor:not-allowed}.booking-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:.3rem;gap:.3rem}.booking-cal__weekday{text-align:center;font-size:.68rem;font-weight:600;color:var(--color-muted);padding:.25rem 0}.booking-cal__day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;border:1.5px solid transparent;border-radius:.6rem;background:transparent;font:inherit;font-size:.85rem;cursor:default;transition:all .15s}.booking-cal__day--muted{opacity:.3;pointer-events:none}.booking-cal__day--past{opacity:.35;pointer-events:none}.booking-cal__day--available{cursor:pointer;background:linear-gradient(160deg,#ecfdf5,#d1fae5);border-color:#6ee7b7;color:#047857;font-weight:700}.booking-cal__day--available:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(16,185,129,.25)}.booking-cal__day--selected{background:linear-gradient(160deg,#059669,#047857)!important;border-color:#047857!important;color:white!important;box-shadow:0 4px 16px rgba(5,150,105,.4)}.booking-cal__day--unavailable{opacity:.45;pointer-events:none}.booking-cal__slots-hint{font-size:.55rem;font-weight:600;opacity:.85}.booking-cal__legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid #f1f5f9;font-size:.72rem;color:var(--color-muted)}.booking-cal__legend-item{display:flex;align-items:center;gap:.35rem}.booking-cal__swatch{width:.75rem;height:.75rem;border-radius:.2rem}.booking-cal__swatch--avail{background:linear-gradient(160deg,#ecfdf5,#6ee7b7);border:1px solid #34d399}.booking-cal__swatch--selected{background:#047857}.booking-pros{display:grid;grid-gap:.75rem;gap:.75rem}.booking-pro{display:flex;align-items:center;gap:.85rem;width:100%;padding:1rem;border:1.5px solid var(--color-border);border-radius:.85rem;background:white;text-align:left;font:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.booking-pro:hover{border-color:var(--color-primary);box-shadow:0 6px 20px rgba(13,148,136,.12);transform:translateY(-1px)}.booking-pro__avatar{width:2.75rem;height:2.75rem;border-radius:.7rem;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:white;display:grid;place-items:center;font-weight:700;flex-shrink:0}.booking-pro__name{margin:0 0 .15rem;font-size:.95rem;font-weight:700}.booking-pro__spec{margin:0;font-size:.82rem;color:var(--color-muted)}.booking-pro__badge{margin-left:auto;padding:.3rem .55rem;border-radius:999px;background:#ecfdf5;color:#047857;font-size:.72rem;font-weight:700;white-space:nowrap}.booking-slots{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.55rem;gap:.55rem}@media (min-width:480px){.booking-slots{grid-template-columns:repeat(4,1fr)}}.booking-slot{padding:.75rem .5rem;border:1.5px solid #99f6e4;border-radius:.65rem;background:linear-gradient(180deg,#f0fdfa,white);font:inherit;font-size:.88rem;font-weight:600;color:var(--color-primary-dark);cursor:pointer;transition:all .15s}.booking-slot:hover{background:var(--color-primary);border-color:var(--color-primary);color:white;transform:translateY(-2px);box-shadow:0 6px 16px rgba(13,148,136,.3)}.booking-slot--selected{background:var(--color-primary);border-color:var(--color-primary-dark);color:white}.booking-empty{padding:2rem 1rem;text-align:center;color:var(--color-muted);font-size:.9rem}.booking-form{display:grid;grid-gap:.75rem;gap:.75rem}.booking-input{width:100%;padding:.75rem .9rem;border:1px solid var(--color-border);border-radius:.65rem;font:inherit;font-size:.92rem}.booking-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(13,148,136,.15)}.booking-field--error .booking-input{border-color:#f87171;box-shadow:0 0 0 3px rgba(248,113,113,.15)}.booking-field__label{font-size:.84rem;font-weight:500;color:var(--color-text)}.booking-field__hint{margin:.25rem 0 0;font-size:.75rem;color:var(--color-muted)}.booking-field__error{margin:.25rem 0 0;font-size:.78rem;color:#dc2626;line-height:1.4}.booking-field{display:grid;grid-gap:.35rem;gap:.35rem}.booking-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.25rem}.booking-btn{padding:.75rem 1.15rem;border-radius:.65rem;font:inherit;font-size:.92rem;font-weight:600;cursor:pointer;border:none;transition:transform .15s,opacity .15s}.booking-btn--primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));color:white;box-shadow:0 6px 20px rgba(13,148,136,.35)}.booking-btn--primary:hover:not(:disabled){transform:translateY(-1px)}.booking-btn--primary:disabled{opacity:.55;cursor:not-allowed}.booking-btn--ghost{background:white;border:1px solid var(--color-border);color:var(--color-text)}.booking-error{margin:.75rem 0 0;padding:.65rem .85rem;border-radius:.55rem;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:.85rem}.booking-success{text-align:center;padding:2.5rem 1.5rem}.booking-success__icon{width:4rem;height:4rem;margin:0 auto 1rem;border-radius:50%;background:linear-gradient(135deg,#10b981,#059669);color:white;display:grid;place-items:center;font-size:1.75rem;font-weight:700;box-shadow:0 8px 24px rgba(16,185,129,.35)}.booking-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--color-muted);font-size:.9rem}.booking-spinner{width:1.1rem;height:1.1rem;border:2px solid #e2e8f0;border-top:2px solid var(--color-primary);border-radius:50%;animation:booking-spin .7s linear infinite}@keyframes booking-spin{to{transform:rotate(1turn)}}