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