.booking-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.booking-modal{background:var(--background);width:100%;max-width:760px;height:100%;max-height:max-content;padding:var(--gap-md);will-change:transform;flex-direction:column;justify-content:space-between;transition:all .3s cubic-bezier(.215,.61,.355,1);display:flex;position:relative}.booking-close{top:var(--gap-sm);right:var(--gap-sm);color:var(--foreground-200);cursor:pointer;width:var(--gap-md);height:var(--gap-md);background-color:#0000;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.booking-close:hover{color:var(--foreground);transform-origin:50%;transform:scale(1.5)}.booking-steps{margin-bottom:var(--gap-md);justify-content:center;align-items:center;display:flex}.step{align-items:center;gap:var(--gap-xs);flex-direction:column;display:flex}.step-number{width:var(--gap-md);height:var(--gap-md);border:2px solid var(--background);color:var(--background-200);border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.step.active .step-number{border-color:var(--foreground);background:var(--foreground);color:var(--background)}.step-label{color:var(--background-200);text-transform:uppercase}.step.active .step-label{color:var(--foreground)}.step-line{width:var(--gap-md);background:var(--background);height:2px;margin:0 var(--gap-xs) var(--gap-sm)}.booking-step-content{flex-flow:column wrap;display:flex}.booking-step-content h3{margin-bottom:var(--gap-sm);width:100%}.form-group{gap:var(--gap-xs);width:100%;margin-bottom:var(--gap-sm);flex-direction:column;display:flex}.form-group.align_end{flex-direction:row;justify-content:flex-end;align-items:flex-end}.form-group.align_mid{flex-direction:row;justify-content:center;align-items:center}.form-group input,.form-group select,.form-group textarea{padding:var(--gap-xs);border:1px solid var(--background-200);transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border:1px solid var(--background-200);outline:none}.form-row{gap:var(--gap-sm);width:100%;margin-bottom:var(--gap-sm);flex-direction:row;display:flex}.booking-actions{justify-content:flex-end;gap:var(--gap-xs);margin-top:var(--gap-md);display:flex}.booking-btn{padding:var(--gap-xs) var(--gap-md);cursor:pointer;border:none;border-radius:6px;transition:all .3s}.booking-btn.primary{background:var(--foreground);color:var(--background)}.booking-btn.primary:hover{background:var(--foreground-200)}.booking-btn.primary:disabled{opacity:.6;cursor:not-allowed}.booking-btn.secondary{border:1px solid var(--background);color:var(--background-200);background:0 0}.booking-btn.secondary:hover{background:var(--background)}.booking-error{padding:var(--gap-xs);background:var(--background);color:#b45309;margin-bottom:var(--gap-sm);border:1px solid #fde68a;border-radius:6px}.confirm-details{gap:var(--gap-xs);flex-direction:column;display:flex}.confirm-row{padding-bottom:var(--gap-xs);border-bottom:1px solid var(--background);justify-content:space-between;display:flex}.confirm-row span:first-child{color:var(--background-200)}.booking-success{text-align:center;padding:var(--gap-md) 0}.success-icon{width:var(--gap-lg);height:var(--gap-lg);background:var(--foreground);color:var(--background);margin:0 auto var(--gap-md);border-radius:50%;justify-content:center;align-items:center;display:flex}.booking-success h2{margin-bottom:var(--gap-xs)}.booking-success p{color:var(--background-200);margin-bottom:var(--gap-xs)}.success-details{margin-bottom:var(--gap-md)}.date-picker-wrapper{padding:var(--gap-xs);border:1px solid var(--background-200);align-items:center;height:100%;display:flex;position:relative}.date-display{text-align:left;cursor:pointer;background:var(--background);border:none;justify-content:space-between;align-items:center;width:100%;display:flex}.custom-calendar{z-index:100;background:var(--background);border:1px solid var(--background);padding:var(--gap-sm);width:var(--gap-xxl);margin-top:var(--gap-xs);border-radius:8px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000001a}.calendar-header{margin-bottom:var(--gap-xs);justify-content:space-between;align-items:center;display:flex}.calendar-nav{cursor:pointer;padding:0 var(--gap-xs);color:var(--foreground-200);background:0 0;border:none}.calendar-nav:hover{color:var(--foreground)}.calendar-weekdays{text-align:center;margin-bottom:var(--gap-xs);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{color:var(--background-200);padding:.25rem 0}.calendar-weekday.weekend-label{color:var(--background)}.calendar-days{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{aspect-ratio:1;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex}.calendar-day.empty{cursor:auto}.calendar-day:not(.disabled):not(.weekend):hover{background:var(--background-200)}.calendar-day.selected{background:var(--foreground);color:var(--background)}.calendar-day.weekend{color:var(--background-200);cursor:auto}.calendar-day.weekend:hover{cursor:auto}.calendar-day.disabled:not(.weekend){color:var(--background);cursor:not-allowed}@media (max-width:768px){.booking-modal{border-radius:0;width:80%;padding:1.5rem}.form-row{flex-direction:column}.custom-calendar{width:150%;left:0;right:0}}
