.booking{background:var(--color-bg-primary);position:relative;overflow:hidden;min-height:100vh;display:flex;align-items:center}.booking:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:100%;height:100%;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(99,102,241,.15) 0%,transparent 50%),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(139,92,246,.1) 0%,transparent 50%);pointer-events:none}.booking-header{text-align:center;margin-bottom:var(--space-2xl);position:relative}.booking-badge{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-md);background:#6366f11a;border:1px solid rgba(99,102,241,.3);border-radius:var(--radius-full);font-size:.875rem;font-weight:500;color:var(--color-accent-primary);margin-bottom:var(--space-lg)}.booking-title{font-size:clamp(2rem,5vw,3rem);font-weight:700;background:linear-gradient(135deg,#fff,#a0a0b0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-md)}.booking-subtitle{font-size:1.125rem;color:var(--color-text-secondary);max-width:500px;margin:0 auto}.booking-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-xl);max-width:950px;margin:0 auto;box-shadow:0 0 0 1px #ffffff0d,0 20px 50px -20px #00000080}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl)}.calendar-section{display:flex;flex-direction:column;gap:var(--space-lg)}.calendar-wrapper{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-lg)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.calendar-month{font-size:1.125rem;font-weight:600;color:var(--color-text-primary);text-transform:capitalize}.calendar-nav{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.calendar-nav:hover{background:var(--color-accent-primary);border-color:var(--color-accent-primary);color:#fff;transform:scale(1.05)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:var(--space-sm)}.calendar-weekdays span{text-align:center;font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;padding:var(--space-sm) 0;letter-spacing:.05em}.calendar-weekdays .weekend{color:var(--color-text-muted);opacity:.4}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;background:transparent;border:2px solid transparent;border-radius:var(--radius-lg);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);position:relative}.calendar-day:hover:not(.disabled):not(.selected){background:var(--color-bg-tertiary);border-color:var(--color-border-hover);transform:scale(1.1)}.calendar-day.other-month{color:var(--color-text-muted);opacity:.2}.calendar-day.disabled{color:var(--color-text-muted);opacity:.25;cursor:not-allowed}.calendar-day.weekend{color:var(--color-text-muted);opacity:.35}.calendar-day.today{background:#6366f11a;border-color:var(--color-accent-primary);color:var(--color-accent-primary);font-weight:600}.calendar-day.selected{background:var(--color-accent-gradient);border-color:transparent;color:#fff;font-weight:600;transform:scale(1.1);box-shadow:0 4px 15px #6366f166}.calendar-info{display:flex;justify-content:center;gap:var(--space-xl);padding:var(--space-md);background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.info-item{display:flex;align-items:center;gap:var(--space-sm);font-size:.8rem;color:var(--color-text-muted)}.info-dot{width:10px;height:10px;border-radius:50%}.info-dot.available{background:var(--color-accent-primary)}.info-dot.today{background:transparent;border:2px solid var(--color-accent-primary)}.info-dot.unavailable{background:var(--color-text-muted);opacity:.3}.slots-section{display:flex;flex-direction:column;gap:var(--space-md)}.selected-date-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.date-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:var(--color-accent-gradient);border-radius:var(--radius-lg);color:#fff;flex-shrink:0}.date-text{flex:1}.date-label{color:var(--color-text-muted);font-size:.875rem}.date-value{display:block;font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-top:2px;text-transform:capitalize}.slots-container{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-lg);min-height:200px;flex:1}.slots-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:180px;color:var(--color-text-muted);text-align:center;gap:var(--space-md)}.placeholder-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--color-bg-tertiary);border-radius:var(--radius-xl);color:var(--color-text-muted)}.slots-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);color:var(--color-text-secondary);min-height:180px}.slots-loading .spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm)}.slot-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-md);background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.slot-btn:hover:not(.unavailable):not(.selected){background:var(--color-bg-secondary);border-color:var(--color-accent-primary);transform:translateY(-2px)}.slot-btn.unavailable{opacity:.25;cursor:not-allowed;text-decoration:line-through}.slot-btn.selected{background:var(--color-accent-gradient);border-color:transparent;color:#fff;transform:translateY(-2px);box-shadow:0 4px 15px #6366f14d}.no-slots{text-align:center;color:var(--color-text-muted);padding:var(--space-xl)}.booking-form-wrapper{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-lg);animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.selected-slot{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-lg);margin-bottom:var(--space-lg);font-weight:600;color:var(--color-accent-primary)}.booking-form{display:flex;flex-direction:column;gap:var(--space-md)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-label{display:flex;align-items:center;gap:var(--space-sm);font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.form-label svg{color:var(--color-accent-primary)}.form-label .optional{font-weight:400;color:var(--color-text-muted);font-size:.8rem}.form-input,.form-textarea{padding:var(--space-md);background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:1rem;font-family:inherit;transition:all var(--transition-fast)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-muted)}.form-input:focus,.form-textarea:focus{outline:none;border-color:var(--color-accent-primary);box-shadow:0 0 0 4px #6366f11a}.form-textarea{resize:vertical;min-height:80px}.btn-submit{width:100%;margin-top:var(--space-sm);position:relative;padding:var(--space-md) var(--space-xl)}.btn-submit .btn-text{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.btn-submit .btn-loading{display:none}.btn-submit.loading .btn-text{opacity:0}.btn-submit.loading .btn-loading{display:block;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.booking-success{background:var(--color-bg-card);border:1px solid rgba(34,197,94,.3);border-radius:var(--radius-xl);padding:var(--space-2xl);text-align:center;animation:slideUp .3s ease-out}.success-icon{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;background:#22c55e1a;border-radius:var(--radius-full);color:var(--color-success);margin-bottom:var(--space-lg)}.booking-success h3{font-size:1.5rem;color:var(--color-success);margin-bottom:var(--space-sm)}.booking-success p{color:var(--color-text-secondary);margin-bottom:var(--space-xl)}.booking-error{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);color:var(--color-error);animation:shake .3s ease-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.error-icon{flex-shrink:0}@media(max-width:968px){.booking{padding:var(--space-xl) 0}.booking-grid{grid-template-columns:1fr;gap:var(--space-lg)}.calendar-section{order:1}.slots-section{order:2}.slots-grid{grid-template-columns:repeat(4,1fr)}.form-row{grid-template-columns:1fr 1fr}.booking-card{margin:0 var(--space-md)}}@media(max-width:640px){.booking{padding:var(--space-lg) 0;min-height:auto}.booking-header{margin-bottom:var(--space-xl)}.booking-title{font-size:1.75rem}.booking-subtitle{font-size:1rem}.booking-card{padding:var(--space-md);margin:0 var(--space-sm);border-radius:var(--radius-xl)}.calendar-wrapper{padding:var(--space-md)}.calendar-header{margin-bottom:var(--space-md);padding-bottom:var(--space-sm)}.calendar-month{font-size:1rem}.calendar-nav{width:36px;height:36px}.calendar-weekdays span{font-size:.65rem;padding:var(--space-xs) 0}.calendar-day{font-size:.8rem;border-radius:var(--radius-md)}.calendar-day:hover:not(.disabled):not(.selected){transform:none}.calendar-day.selected{transform:none}.calendar-info{flex-wrap:wrap;justify-content:center;gap:var(--space-sm) var(--space-md);padding:var(--space-sm)}.info-item{font-size:.7rem}.selected-date-card{padding:var(--space-sm) var(--space-md)}.date-icon{width:40px;height:40px}.date-icon svg{width:20px;height:20px}.date-label{font-size:.75rem}.date-value{font-size:.9rem}.slots-container{padding:var(--space-md);min-height:150px}.slots-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-xs)}.slot-btn{padding:var(--space-sm);font-size:.8rem;border-radius:var(--radius-md)}.slot-btn:hover:not(.unavailable):not(.selected){transform:none}.slot-btn.selected{transform:none}.placeholder-icon{width:48px;height:48px}.placeholder-icon svg{width:24px;height:24px}.slots-placeholder p{font-size:.875rem}.booking-form-wrapper{padding:var(--space-md)}.form-row{grid-template-columns:1fr;gap:var(--space-sm)}.form-group{gap:4px}.form-label{font-size:.8rem}.form-label svg{width:14px;height:14px}.form-input,.form-textarea{padding:var(--space-sm) var(--space-md);font-size:.9rem;border-radius:var(--radius-md)}.selected-slot{padding:var(--space-sm) var(--space-md);font-size:.85rem;margin-bottom:var(--space-md)}.btn-submit{padding:var(--space-sm) var(--space-md);font-size:.9rem}.booking-success{padding:var(--space-xl)}.success-icon{width:60px;height:60px}.success-icon svg{width:32px;height:32px}.booking-success h3{font-size:1.25rem}.booking-success p{font-size:.9rem}}@media(max-width:380px){.booking-badge{font-size:.75rem;padding:4px var(--space-sm)}.booking-title{font-size:1.5rem}.slots-grid{grid-template-columns:repeat(2,1fr)}.calendar-info{flex-direction:column;align-items:center}}
