.booking-calendar{background-color:var(--bg-medium);border:1px solid var(--border-default);border-radius:var(--radius-2xl);padding:var(--space-4);box-shadow:0 4px 12px var(--shadow-dark);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.booking-calendar .cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.booking-calendar .cal-month-label{font-size:.9375rem;font-weight:600;color:var(--text-heading);text-transform:capitalize;letter-spacing:-.01em}.booking-calendar .cal-nav-btn{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background-color:var(--bg-light);border:1px solid var(--border-default);color:var(--text-subtle);cursor:pointer;transition:all .15s ease}.booking-calendar .cal-nav-btn:hover:not(:disabled){background-color:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-medium)}.booking-calendar .cal-nav-btn:disabled{opacity:.3;cursor:not-allowed}.booking-calendar .cal-nav-icon{width:14px;height:14px}.booking-calendar .cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:var(--space-2)}.booking-calendar .cal-weekday{text-align:center;font-size:.6875rem;font-weight:600;color:var(--text-icon);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-1) 0}.booking-calendar .cal-loading{min-height:200px;display:flex;align-items:center;justify-content:center}.booking-calendar .cal-spinner{width:24px;height:24px;border:2px solid var(--border-default);border-top-color:var(--color-primary);border-radius:50%;animation:cal-spin .7s linear infinite}@keyframes cal-spin{to{transform:rotate(1turn)}}.booking-calendar .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-0_5)}.booking-calendar .cal-cell--empty{pointer-events:none}.booking-calendar .cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-0_5);border-radius:var(--radius-lg);background:transparent;border:1px solid transparent;cursor:default;transition:all .15s ease;font-family:var(--font-sans);padding:0}.booking-calendar .cal-cell--available{cursor:pointer}.booking-calendar .cal-cell--available:hover:not(:disabled){background-color:var(--bg-elevated);border-color:var(--border-medium)}.booking-calendar .cal-cell--today .cal-day-num{color:var(--color-primary-light);font-weight:700}.booking-calendar .cal-cell--today{border-color:var(--color-primary-border)}.booking-calendar .cal-cell--selected{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));border-color:transparent!important;box-shadow:0 2px 10px var(--color-primary-glow)}.booking-calendar .cal-cell--selected .cal-day-num{color:#fff!important;font-weight:700}.booking-calendar .cal-cell--past .cal-day-num,.booking-calendar .cal-cell:disabled .cal-day-num{color:var(--text-placeholder)}.booking-calendar .cal-cell--past,.booking-calendar .cal-cell:disabled{cursor:not-allowed}.booking-calendar .cal-cell--full .cal-day-num{color:var(--text-muted)}.booking-calendar .cal-day-num{font-size:.8125rem;font-weight:500;color:var(--text-body);line-height:1}.booking-calendar .cal-dot{width:4px;height:4px;border-radius:50%;flex-shrink:0}.booking-calendar .cal-dot--available{background-color:var(--color-success)}.booking-calendar .cal-dot--full{background-color:var(--text-placeholder)}.booking-calendar .cal-legend{display:flex;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.booking-calendar .cal-legend-item{display:inline-flex;align-items:center;gap:var(--space-1);font-size:.6875rem;color:var(--text-dim)}.slot-queue-badge{display:inline-flex;align-items:center;gap:var(--space-0_5);padding:var(--space-0_5) var(--space-1_5);border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;font-family:var(--font-mono);line-height:1.4;background-color:#ff950026;color:#fa3;border:1px solid rgba(255,149,0,.25);white-space:nowrap}.badge-icon{width:11px;height:11px;flex-shrink:0}.queue-info-block{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background-color:#ff950014;border:1px solid rgba(255,149,0,.2);margin-top:var(--space-4)}.queue-info-icon-wrap{width:32px;height:32px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background-color:#ff950026;flex-shrink:0}.queue-info-icon{width:16px;height:16px;color:#fa3}.queue-info-body{display:flex;flex-direction:column;gap:var(--space-0_5)}.queue-position-label{font-size:.875rem;font-weight:600;color:#ffb54d;line-height:1.3}.queue-note{font-size:.75rem;color:var(--text-secondary);line-height:1.4}.slot-picker{background-color:var(--bg-medium);border:1px solid var(--border-default);border-radius:var(--radius-2xl);padding:var(--space-4);box-shadow:0 4px 12px var(--shadow-dark);display:flex;flex-direction:column;min-height:280px}.slot-picker .slot-picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);flex-shrink:0}.slot-picker .slot-picker-title{font-size:.9375rem;font-weight:600;color:var(--text-heading);letter-spacing:-.01em}.slot-picker .slot-count{font-size:.6875rem;font-weight:700;color:var(--color-success-text);font-family:var(--font-mono);background-color:var(--color-success-bg);border:1px solid var(--color-success-border);padding:var(--space-0_5) var(--space-2);border-radius:var(--radius-md)}.slot-picker .slot-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-8) var(--space-4);gap:var(--space-2)}.slot-picker .slot-empty-icon-wrap{width:48px;height:48px;border-radius:var(--radius-xl);background-color:var(--color-primary-bg);border:1px solid var(--color-primary-focus-ring);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.slot-picker .slot-empty-icon{width:24px;height:24px;color:var(--color-primary-light)}.slot-picker .slot-empty-title{font-size:.9375rem;font-weight:600;color:var(--text-muted)}.slot-picker .slot-empty-text{font-size:.8125rem;color:var(--text-dim);line-height:1.5}.slot-picker .slot-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3)}.slot-picker .slot-spinner{width:22px;height:22px;border:2px solid var(--border-default);border-top-color:var(--color-primary);border-radius:50%;animation:spin-slot .7s linear infinite}@keyframes spin-slot{to{transform:rotate(1turn)}}.slot-picker .slot-loading-text{font-size:.8125rem;color:var(--text-subtle)}.slot-picker .slot-list{display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto;max-height:360px;padding-right:var(--space-0_5)}.slot-picker .slot-list::-webkit-scrollbar{width:4px}.slot-picker .slot-list::-webkit-scrollbar-track{background:transparent}.slot-picker .slot-list::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:var(--radius-sm)}.slot-picker .slot-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background-color:var(--bg-elevated);border:1px solid var(--border-default);font-family:var(--font-sans);cursor:pointer;transition:all .15s ease;min-height:44px;box-shadow:0 2px 8px var(--shadow-dark)}.slot-picker .slot-item:hover:not(:disabled):not(.slot-item--selected){border-color:var(--color-primary-border);background-color:var(--bg-light)}.slot-picker .slot-item--selected{background:linear-gradient(135deg,var(--color-primary-dark),var(--color-primary));border-color:transparent;box-shadow:0 2px 12px var(--color-primary-glow),}.slot-picker .slot-item--unavailable,.slot-picker .slot-item:disabled{opacity:.38;cursor:not-allowed;text-decoration:line-through;box-shadow:none}.slot-picker .slot-item-left{display:flex;align-items:center;gap:var(--space-2)}.slot-picker .slot-time-icon{width:16px;height:16px;color:var(--text-icon);flex-shrink:0;transition:color .15s ease}.slot-picker .slot-item--selected .slot-time-icon{color:#ffffffb3}.slot-picker .slot-time{font-size:.9375rem;font-weight:600;font-family:var(--font-mono);color:var(--text-heading);letter-spacing:.02em;transition:color .15s ease}.slot-picker .slot-item--selected .slot-time{color:#fff}.slot-picker .slot-check-icon{width:18px;height:18px;color:#ffffffd9;flex-shrink:0}
