.booking-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;overscroll-behavior:contain;background:#00000073;justify-content:center;align-items:flex-start;padding:20px;animation:.25s ease-out fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.booking-modal-card{border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);text-align:center;background:#fff;margin:auto;padding:32px 28px;position:relative}@media (max-width:560px){.booking-modal-overlay{padding:12px;padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom))}.booking-modal-card{padding:20px 16px 22px}.booking-modal-logo{height:44px;margin-bottom:6px}.booking-modal-title{font-size:1.3rem}.booking-modal-desc,.booking-step-indicator{margin-bottom:12px}.booking-modal-close{top:10px;right:12px}}.booking-modal-close{color:#999;cursor:pointer;background:0 0;border:none;padding:4px;font-size:1.2rem;position:absolute;top:16px;right:20px}.booking-modal-close:hover{color:var(--foreground)}.booking-modal-icon{margin-bottom:8px;font-size:2.2rem}.booking-modal-title{color:var(--color-blue-gray);margin-bottom:6px;font-size:1.6rem}.booking-modal-desc{color:var(--foreground);opacity:.8;margin-bottom:20px;font-size:.92rem;line-height:1.5}.booking-modal-form{text-align:left;flex-direction:column;gap:12px;display:flex}.booking-modal-input{border-radius:var(--radius-sm);border:1px solid #00000026;outline:none;width:100%;padding:12px 16px;font-size:.95rem;transition:border-color .2s}.booking-modal-input:focus{border-color:var(--color-turquoise)}.booking-modal-btn-primary{border-radius:var(--radius-full);background:var(--color-coral);color:#fff;cursor:pointer;border:none;width:100%;margin-top:4px;padding:12px 20px;font-size:.95rem;font-weight:500;transition:background-color .2s}.booking-modal-btn-primary:hover{background:#ba736f}.booking-modal-btn-primary:disabled{opacity:.7;cursor:not-allowed}.booking-modal-error{color:var(--color-terracotta);margin:-4px 0 0;font-size:.85rem}.booking-modal-success-icon{margin-bottom:12px;font-size:3rem}.booking-slot-picker{text-align:left;margin-bottom:8px}.booking-slot-loading,.booking-slot-error{color:var(--foreground);opacity:.7;text-align:center;padding:12px 0;font-size:.88rem}.booking-modal-logo{border-radius:var(--radius-sm);background:#fff;width:auto;height:64px;margin:0 auto 10px;padding:4px 10px;display:block}.booking-slot-label{letter-spacing:.03em;text-transform:uppercase;color:var(--color-blue-gray);opacity:.75;margin:0 0 8px;font-size:.78rem;font-weight:700}.booking-slot-hint{color:var(--foreground);opacity:.55;text-align:center;padding:14px 10px 18px;font-size:.85rem}.booking-calendar{margin-bottom:14px}.booking-calendar-nav{justify-content:center;align-items:center;gap:14px;margin-bottom:10px;display:flex}.booking-calendar-arrow{width:28px;height:28px;color:var(--color-blue-gray);cursor:pointer;background:#fff;border:1.5px solid #0000001a;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:border-color .15s,transform .15s;display:flex}.booking-calendar-arrow:hover:not(:disabled){border-color:var(--color-turquoise);transform:scale(1.08)}.booking-calendar-arrow:disabled{opacity:.3;cursor:default}.booking-calendar-month{color:var(--color-blue-gray);text-transform:capitalize;text-align:center;min-width:140px;margin:0;font-size:.85rem;font-weight:600}.booking-calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.booking-calendar-weekday{text-align:center;color:var(--color-blue-gray);opacity:.55;padding-bottom:4px;font-size:.7rem;font-weight:700}.booking-calendar-weekday.is-weekend{color:var(--color-terracotta);opacity:.8}.booking-calendar-day{aspect-ratio:1;color:var(--color-blue-gray);cursor:pointer;background:#fff;border:1.5px solid #00000014;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:500;transition:transform .18s cubic-bezier(.34,1.56,.64,1),border-color .18s,background .18s,color .18s,box-shadow .18s;display:flex}.booking-calendar-day:hover:not(:disabled){border-color:var(--color-turquoise);transform:scale(1.1)}.booking-calendar-day.active{background:var(--color-turquoise);border-color:var(--color-turquoise);color:#fff;transform:scale(1.12);box-shadow:0 6px 14px #71b0b473}.booking-calendar-day.is-weekend{background:var(--color-terracotta);border-color:var(--color-terracotta);color:#fff}.booking-calendar-day.is-weekend.is-disabled{color:#fff;opacity:.6;background:#bf604b4d;border-color:#0000}.booking-calendar-day.is-holiday{background:var(--color-mustard);border-color:var(--color-mustard);color:#fff}.booking-calendar-day.is-holiday.is-disabled{color:#fff;opacity:.6;background:#c8890e59;border-color:#0000}.booking-calendar-day.is-holiday.active,.booking-calendar-day.is-weekend.active{background:var(--color-turquoise);border-color:var(--color-turquoise);color:#fff}.booking-calendar-day.is-today{box-shadow:0 0 0 2px var(--color-coral);font-weight:700}.booking-calendar-day.is-today.is-disabled{color:var(--color-coral);opacity:.7}.booking-calendar-day.is-today.active{box-shadow:0 0 0 2px var(--color-coral), 0 6px 14px #71b0b473}.booking-calendar-legend .dot.is-today{border:2px solid var(--color-coral);background:0 0}.booking-calendar-day.is-disabled{color:var(--foreground);opacity:.28;cursor:default;background:0 0;border-color:#0000}.booking-calendar-day.is-empty{cursor:default;background:0 0;border:none}.booking-calendar-legend{color:var(--foreground);opacity:.65;justify-content:center;gap:16px;margin-top:10px;font-size:.72rem;display:flex}.booking-calendar-legend span{align-items:center;gap:5px;display:inline-flex}.booking-calendar-legend .dot{border-radius:50%;width:9px;height:9px;display:inline-block}.booking-calendar-legend .dot.is-weekend{background:var(--color-terracotta)}.booking-calendar-legend .dot.is-holiday{background:var(--color-mustard)}.booking-step-indicator{justify-content:center;align-items:center;gap:8px;margin-bottom:16px;display:flex}.booking-step-dot{color:var(--color-blue-gray);opacity:.4;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.booking-step-dot.active{opacity:1}.booking-step-dot .num{background:#4c577c26;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.68rem;display:flex}.booking-step-dot.active .num{background:var(--color-coral);color:#fff}.booking-step-line{background:#4c577c33;width:20px;height:1.5px}.booking-modal-btn-secondary{border-radius:var(--radius-full);width:100%;color:var(--color-blue-gray);cursor:pointer;background:0 0;border:none;padding:10px 20px;font-size:.85rem;text-decoration:underline}.booking-time-grid{grid-template-columns:repeat(3,1fr);gap:8px;max-height:190px;padding:2px;animation:.25s ease-out booking-grid-in;display:grid;overflow-y:auto}.booking-time-btn{border-radius:var(--radius-sm);color:var(--foreground);cursor:pointer;opacity:0;background:#fff;border:1px solid #0000001f;padding:10px 6px;font-size:.82rem;transition:border-color .15s,background .15s,color .15s,transform .15s;animation:.38s cubic-bezier(.2,.9,.3,1.3) forwards booking-time-pop;transform:translateY(10px)scale(.9)}.booking-time-btn:hover{border-color:var(--color-turquoise);transform:translateY(-1px)}.booking-time-btn.active{background:var(--color-coral);border-color:var(--color-coral);color:#fff;transform:scale(1.04);box-shadow:0 6px 14px #cd807b66}@keyframes booking-time-pop{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes booking-grid-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.booking-time-btn{opacity:1;animation:none;transform:none}.booking-day-tab{transition:none}}
