.booking-overlay{z-index:9999;-webkit-backdrop-filter:blur(8px);overscroll-behavior:contain;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}.booking-modal{background:var(--color-bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-xl);flex-shrink:0;width:100%;max-width:520px;max-height:none;margin:auto;box-shadow:0 24px 80px #00000080}.booking-modal__header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:24px 28px 16px;display:flex}.booking-modal__header-left{flex-direction:column;gap:8px;display:flex}.booking-modal__badge{letter-spacing:.5px;text-transform:uppercase;color:var(--accent-green);border-radius:var(--radius-full);background:#3ddc841a;align-items:center;gap:6px;width:fit-content;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.booking-modal__title{font-family:var(--font-georgian);color:var(--text-primary);font-size:20px;font-weight:800}.booking-modal__close{color:var(--text-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:8px}.booking-modal__close:hover{color:var(--text-primary);background:var(--color-surface-hover)}.booking-progress{align-items:center;gap:0;padding:16px 28px;display:flex;position:relative}.booking-progress__step{z-index:1;flex:1;align-items:center;display:flex}.booking-progress__dot{background:var(--color-bg-card);border:2px solid var(--border-default);width:28px;height:28px;color:var(--text-tertiary);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;transition:all .3s;display:flex}.booking-progress__step.active .booking-progress__dot{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.booking-progress__step.current .booking-progress__dot{box-shadow:0 0 0 4px #4c8df633}.booking-progress__line{background:var(--border-default);height:2px;position:absolute;top:50%;left:42px;right:42px;transform:translateY(-50%)}.booking-progress__line:after{content:"";height:100%;width:var(--progress);background:var(--accent-blue);border-radius:2px;transition:width .4s;position:absolute;top:0;left:0}.booking-modal__content{padding:20px 28px 28px}.booking-step{min-height:280px}.booking-cal__nav{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.booking-cal__month{font-family:var(--font-georgian);color:var(--text-primary);font-size:16px;font-weight:700}.booking-cal__nav-btn{color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:6px}.booking-cal__nav-btn:hover{color:var(--text-primary);background:var(--color-surface-hover)}.booking-cal__weekdays{grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px;display:grid}.booking-cal__weekdays span{text-align:center;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:6px 0;font-size:11px;font-weight:600}.booking-cal__days{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.booking-cal__day{aspect-ratio:1;border-radius:var(--radius-sm);transition:all var(--transition-fast);color:var(--text-primary);justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.booking-cal__day--empty{pointer-events:none}.booking-cal__day--disabled{color:var(--text-muted);pointer-events:none}.booking-cal__day--available{cursor:pointer;background:var(--color-surface)}.booking-cal__day--available:hover{color:var(--accent-blue);background:#4c8df626;transform:scale(1.1)}.booking-cal__day--today{border:2px solid var(--accent-blue)}.booking-cal__day--selected{background:var(--accent-blue)!important;color:#fff!important}.booking-cal__legend{color:var(--text-tertiary);gap:20px;margin-top:16px;font-size:11px;display:flex}.booking-cal__legend span{align-items:center;gap:6px;display:flex}.booking-cal__legend-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.booking-cal__legend-dot--available{background:var(--color-surface);border:1px solid var(--border-default)}.booking-cal__legend-dot--today{border:2px solid var(--accent-blue);background:0 0}.booking-time__selected-date{font-family:var(--font-georgian);color:var(--accent-blue);border-radius:var(--radius-md);background:#4c8df614;align-items:center;gap:8px;margin-bottom:20px;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.booking-time__grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px;display:grid}.booking-time__slot{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--color-surface);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);flex-direction:column;align-items:center;gap:4px;padding:14px 8px;font-size:15px;font-weight:600;display:flex}.booking-time__slot:hover{border-color:var(--accent-blue);background:#4c8df614;transform:translateY(-2px)}.booking-time__slot--selected{border-color:var(--accent-blue);background:var(--accent-blue);color:#fff}.booking-time__duration{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}.booking-time__slot--selected .booking-time__duration{color:#ffffffb3}.booking-form__summary{gap:16px;margin-bottom:20px;display:flex}.booking-form__summary-item{color:var(--accent-blue);border-radius:var(--radius-full);background:#4c8df614;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.booking-form{flex-direction:column;gap:14px;display:flex}.booking-form__field label{font-family:var(--font-georgian);color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:6px;font-size:12px;font-weight:600;display:flex}.booking-form__field input,.booking-form__field textarea{width:100%;font-family:var(--font-primary);color:var(--text-primary);background:var(--input-bg);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast);outline:none;padding:12px 14px;font-size:14px}.booking-form__field input:focus,.booking-form__field textarea:focus{border-color:var(--accent-blue);background:var(--input-focus-bg);box-shadow:0 0 0 3px #4c8df61f}.booking-form__field textarea{resize:none}.booking-form__actions{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.booking-back-btn{font-family:var(--font-georgian);color:var(--text-secondary);border-radius:var(--radius-full);border:1px solid var(--border-default);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:600;display:inline-flex}.booking-back-btn:hover{color:var(--text-primary);border-color:var(--border-hover);background:var(--color-surface)}.booking-submit-btn{font-family:var(--font-georgian);color:#fff;background:var(--accent-blue);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:700;display:inline-flex}.booking-submit-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #4c8df64d}.booking-submit-btn:disabled{opacity:.6;pointer-events:none}.booking-success{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:20px 0;display:flex}.booking-success__icon{color:var(--accent-green)}.booking-success__msg{font-family:var(--font-georgian);color:var(--text-primary);max-width:320px;font-size:15px;font-weight:600}.booking-success__details{color:var(--text-secondary);background:var(--color-surface);border-radius:var(--radius-md);flex-direction:column;gap:8px;width:100%;padding:16px 24px;font-size:13px;display:flex}.booking-success__details div{align-items:center;gap:8px;display:flex}.booking-calendar-btn{font-family:var(--font-georgian);color:#fff;background:var(--accent-blue);border-radius:var(--radius-full);transition:all var(--transition-fast);align-items:center;gap:8px;padding:12px 24px;font-size:14px;font-weight:700;display:inline-flex}.booking-calendar-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #4c8df64d}.booking-close-btn{font-family:var(--font-georgian);color:var(--text-tertiary);cursor:pointer;transition:color var(--transition-fast);padding:8px 16px;font-size:13px;font-weight:600}.booking-close-btn:hover{color:var(--text-primary)}@media (width<=600px){.booking-modal{border-radius:var(--radius-lg);max-height:95vh}.booking-modal__header,.booking-modal__content{padding-left:20px;padding-right:20px}.booking-progress{padding:12px 20px}.booking-time__grid{grid-template-columns:repeat(2,1fr)}.booking-form__summary{flex-direction:column;gap:8px}.booking-form__actions{flex-direction:column;gap:12px}.booking-submit-btn,.booking-back-btn{justify-content:center;width:100%}}
