.calendar-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:hidden}.calendar-card .calendar-header{background-color:#f4e5dd;border-bottom:1px solid #dee2e6;padding:1rem 1.5rem}.calendar-card .calendar-header h5{color:#333;font-weight:600}.calendar-card .calendar-body{min-height:auto;padding:.5rem;position:relative}.loading-overlay{align-items:center;background:hsla(0,0%,100%,.9);bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.loading-overlay.d-none{display:none!important}.loading-overlay .spinner-border{height:3rem;width:3rem}.loading-overlay p{font-size:.9rem;margin:0}.error-display{padding:2rem;text-align:center}.error-display .alert{display:inline-block;text-align:left}#publicCalendar{--fc-border-color:#e0e0e0;--fc-today-bg-color:#fff3cd}#publicCalendar .fc .fc-toolbar{gap:.5rem;margin-bottom:.5rem}#publicCalendar .fc .fc-toolbar .fc-toolbar-title{color:#333;font-size:.95rem;font-weight:600}#publicCalendar .fc .fc-toolbar .fc-button{background-color:#f4e5dd;border-color:#d6b8a8;color:#333;font-size:.7rem;font-weight:500;padding:.2rem .4rem;text-transform:capitalize;transition:all .2s ease}#publicCalendar .fc .fc-toolbar .fc-button:hover{background-color:#e8d5c8;border-color:#c5a595;color:#000}#publicCalendar .fc .fc-toolbar .fc-button.fc-button-active,#publicCalendar .fc .fc-toolbar .fc-button:active{background-color:#d6b8a8;border-color:#b89585;color:#000}#publicCalendar .fc .fc-toolbar .fc-button:focus{box-shadow:0 0 0 .2rem hsla(21,51%,91%,.5)}#publicCalendar .fc .fc-daygrid-day{cursor:pointer;transition:background-color .2s ease}#publicCalendar .fc .fc-daygrid-day .fc-daygrid-day-number{font-size:.7rem;font-weight:500;line-height:1;padding:2px 4px!important}#publicCalendar .fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number{font-weight:700}#publicCalendar .fc .fc-daygrid-day.fc-day-disabled{cursor:default!important;opacity:.6}#publicCalendar .fc .fc-daygrid-day-events{margin-bottom:.5em!important;min-height:1em!important}#publicCalendar .fc .fc-scrollgrid,#publicCalendar .fc td,#publicCalendar .fc th{border-color:#dee2e6}.slots-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:hidden;top:1rem}.slots-card .slots-header{align-items:center;background-color:#f4e5dd;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:1rem 1.5rem}.slots-card .slots-header h5{color:#333;font-weight:600;margin:0}.slots-card .slots-header .btn-link{padding:0;text-decoration:none}.slots-card .slots-header .btn-link:hover{text-decoration:underline}.slots-card .slots-body{min-height:300px;padding:1.5rem}.slots-grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}@media(min-width:576px){.slots-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:992px){.slots-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1200px){.slots-grid{grid-template-columns:repeat(3,1fr)}}.slot-btn{background-color:#fff;border:2px solid #c5a595;border-radius:6px;color:#c5a595;cursor:pointer;font-size:.9rem;font-weight:600;padding:.75rem .5rem;text-align:center;transition:all .2s ease}.slot-btn:hover{background-color:hsla(21,51%,91%,.5);box-shadow:0 4px 6px rgba(0,0,0,.1);transform:translateY(-2px)}.slot-btn:active{transform:translateY(0)}.slot-btn.selected{background-color:#a88575;border-color:#a88575;color:#fff}.slot-btn.selected:hover{background-color:#906b5a;border-color:#906b5a}.slot-btn:focus{box-shadow:0 0 0 .2rem hsla(21,36%,75%,.35);outline:none}.slot-btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.empty-state i,.no-slots-state i{color:#6c757d;opacity:.5}.empty-state p,.no-slots-state p{color:#6c757d;font-size:1rem;margin:0}.legend-card{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:1rem}.legend-card .legend-title{color:#333;font-size:.9rem;font-weight:600;margin-bottom:.75rem}.legend-card .legend-items{display:flex;flex-direction:column;gap:.5rem}.legend-card .legend-item{align-items:center;color:#495057;display:flex;font-size:.85rem;gap:.5rem}.legend-card .legend-color{border-radius:3px;flex-shrink:0;height:16px;width:16px}.legend-card .legend-color.legend-color-available{background-color:#28a745}.legend-card .legend-color.legend-color-unavailable{background-color:#dc3545}.legend-card .legend-color.legend-color-selected{background-color:#a88575}.info-panel .alert{background-color:#f4e5dd;border:1px solid #d6b8a8;border-left:4px solid #c5a595;border-radius:8px;color:#333;margin-bottom:0;padding:.75rem 1rem}.info-panel .alert .fas{color:#c5a595}@media(max-width:991.98px){.slots-card{position:static}#publicCalendar .fc .fc-toolbar{flex-direction:column;gap:.5rem}#publicCalendar .fc .fc-toolbar .fc-toolbar-title{font-size:1rem}#publicCalendar .fc .fc-toolbar .fc-toolbar-chunk{display:flex;justify-content:center}}@media(max-width:767.98px){.calendar-card .calendar-header{padding:.5rem .75rem}.calendar-card .calendar-header h5{font-size:.9rem}.calendar-card .calendar-body{padding:.5rem}.slots-card .slots-header{padding:.5rem .75rem}.slots-card .slots-header h5{font-size:.9rem}.slots-card .slots-body{padding:.75rem}#publicCalendar .fc .fc-toolbar .fc-toolbar-title{font-size:.85rem}#publicCalendar .fc .fc-toolbar .fc-button{font-size:.65rem;padding:.2rem .4rem}#publicCalendar .fc .fc-scrollgrid-sync-table tbody tr{height:24px!important}#publicCalendar .fc .fc-col-header-cell{font-size:.55rem;padding:.1rem!important}#publicCalendar .fc .fc-daygrid-day-number{font-size:.6rem;padding:1px 3px!important}.slots-grid{gap:.5rem;grid-template-columns:repeat(2,1fr)}.slot-btn{font-size:.8rem;padding:.5rem .3rem}.legend-card{padding:.5rem}.legend-card .legend-title{font-size:.8rem}.legend-card .legend-item{font-size:.75rem}}.alert.alert-danger{background-color:#f8d7da;border-left:5px solid #dc3545;font-size:1.1rem}.alert.alert-danger .fa-exclamation-triangle{color:#dc3545}.alert.alert-success{background-color:#d1e7dd;border-left:5px solid #198754;font-size:1.1rem}.alert.alert-success .fa-check-circle{color:#198754}.alert.sticky-alert{position:sticky;top:70px;z-index:1030}.alert.fade.show{animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.booking-form-section .booking-form-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:hidden}.booking-form-section .booking-form-card .booking-form-header{align-items:center;background-color:#f4e5dd;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:1rem 1.5rem}.booking-form-section .booking-form-card .booking-form-header h5{color:#333;font-weight:600;margin:0}.booking-form-section .booking-form-card .booking-form-header .btn-close{opacity:.6}.booking-form-section .booking-form-card .booking-form-header .btn-close:hover{opacity:1}.booking-form-section .booking-form-card .booking-form-body{padding:1.5rem}.booking-form-section .booking-form-card .selected-slot-info{background-color:hsla(21,51%,91%,.5);border-left:4px solid #c5a595;border-radius:6px;color:#333;font-size:.95rem;font-weight:500;padding:.75rem 1rem}.booking-form-section .booking-form-card .form-label{color:#495057;font-size:.9rem;font-weight:600;margin-bottom:.4rem}.booking-form-section .booking-form-card .form-control{border:1px solid #ced4da;border-radius:6px;font-size:.95rem;transition:all .2s ease}.booking-form-section .booking-form-card .form-control:focus{border-color:#c5a595;box-shadow:0 0 0 .2rem hsla(20,29%,68%,.25)}.booking-form-section .booking-form-card textarea.form-control{min-height:80px;resize:vertical}.booking-form-section .booking-form-card .btn-primary{border-radius:6px;padding:.75rem 1.5rem;transition:all .2s ease}.booking-form-section .booking-form-card .btn-primary:active{transform:translateY(0)}.booking-form-section .booking-form-card .btn-primary:disabled{cursor:not-allowed;opacity:.65}.verification-section .verification-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);overflow:hidden}.verification-section .verification-card .verification-header{background-color:#f4e5dd;border-bottom:1px solid #dee2e6;padding:1rem 1.5rem}.verification-section .verification-card .verification-header h5{color:#333;font-weight:600;margin:0}.verification-section .verification-card .verification-body{padding:1.5rem;text-align:center}.verification-section .verification-card .verification-instructions{color:#6c757d;font-size:.95rem;line-height:1.5;margin-bottom:1rem}.verification-section .verification-card .timer-display{align-items:center;color:#a88575;display:flex;font-size:1.75rem;font-weight:700;gap:.5rem;justify-content:center}.verification-section .verification-card .timer-display.expiring{animation:pulse 1s infinite;color:#dc3545}.verification-section .verification-card .timer-display i{font-size:1.5rem}.code-inputs-grid{display:grid;gap:.5rem;grid-template-columns:repeat(6,1fr);justify-items:center;margin:0 auto;max-width:420px}.code-inputs-grid .code-input{background-color:#fff;border:2px solid #ced4da;border-radius:8px;font-family:Courier New,monospace;font-size:1.75rem;font-weight:700;height:70px;max-width:60px;text-align:center;transition:all .2s ease;width:100%}.code-inputs-grid .code-input:focus{border-color:#c5a595;box-shadow:0 0 0 .2rem hsla(20,29%,68%,.25);outline:none;transform:scale(1.05)}.code-inputs-grid .code-input.filled{background-color:#f4e5dd;border-color:#a88575;color:#a88575}.code-inputs-grid .code-input.error{animation:shake .3s;background-color:#f8d7da;border-color:#dc3545}.code-inputs-grid .code-input:disabled{background-color:#e9ecef;cursor:not-allowed;opacity:.7}.code-inputs-grid .code-input::-webkit-inner-spin-button,.code-inputs-grid .code-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.code-inputs-grid .code-input[type=number]{-moz-appearance:textfield}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.98)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}50%{transform:translateX(8px)}75%{transform:translateX(-4px)}}.booking-form-section .btn-primary,.verification-section .btn-primary{border-radius:6px;padding:.75rem 1.5rem;transition:all .2s ease}.booking-form-section .btn-primary:active,.verification-section .btn-primary:active{transform:translateY(0)}.booking-form-section .btn-primary:disabled,.verification-section .btn-primary:disabled{cursor:not-allowed;opacity:.65}.booking-form-section .btn-link,.verification-section .btn-link{color:#a88575;font-weight:500;text-decoration:none}.booking-form-section .btn-link:hover,.verification-section .btn-link:hover{color:#805f51;text-decoration:underline}.booking-form-section .btn-link:disabled,.verification-section .btn-link:disabled{cursor:not-allowed;opacity:.5}.booking-form-section .btn-outline-secondary,.verification-section .btn-outline-secondary{border-color:#6c757d;color:#6c757d}.booking-form-section .btn-outline-secondary:hover,.verification-section .btn-outline-secondary:hover{background-color:#6c757d;border-color:#6c757d;color:#fff}@media(max-width:576px){.booking-form-section .booking-form-card .booking-form-header{padding:.75rem 1rem}.booking-form-section .booking-form-card .booking-form-header h5{font-size:.95rem}.booking-form-section .booking-form-card .booking-form-body{padding:1rem}.booking-form-section .booking-form-card .selected-slot-info{font-size:.85rem;padding:.6rem .8rem}.verification-section .verification-card .verification-header{padding:.75rem 1rem}.verification-section .verification-card .verification-header h5{font-size:.95rem}.verification-section .verification-card .verification-body{padding:1rem}.verification-section .verification-card .timer-display{font-size:1.5rem}.verification-section .verification-card .timer-display i{font-size:1.25rem}.code-inputs-grid{gap:.3rem;max-width:100%}.code-inputs-grid .code-input{font-size:1.4rem;height:55px;max-width:45px}.btn-outline-secondary,.btn-primary{font-size:.9rem;padding:.65rem 1.25rem}}@media(max-width:375px){.code-inputs-grid{gap:.25rem}.code-inputs-grid .code-input{font-size:1.25rem;height:50px;max-width:40px}}@media print{.booking-form-section,.calendar-header,.fc-toolbar,.info-panel,.legend-card,.slots-card,.verification-section{display:none}.calendar-card{border:none;box-shadow:none}}