.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px;overflow-y:auto}.modal-container{background:white;border-radius:24px;width:100%;max-width:500px;max-height:600px;overflow-y:auto;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal{z-index:9999!important}.modal-content{padding:24px}.modal-header{text-align:center;padding-bottom:16px;border-bottom:1px solid #e5e7eb;margin-bottom:20px;position:relative}.modal-title{font-size:1.5rem;font-weight:700;color:#0e8b7e;margin:0 0 8px}.modal-subtitle{font-size:.75rem;color:rgba(0,0,0,.6);margin:0}.modal-close-btn{position:absolute;top:-8px;right:-8px;background:transparent;border:none;font-size:32px;line-height:1;cursor:pointer;color:rgba(0,0,0,.5);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.modal-close-btn:hover{background:rgba(0,0,0,.05);color:rgba(0,0,0,.8)}.alert{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:12px;font-size:.875rem;font-weight:500;margin-bottom:16px}.alert-error{background:rgba(220,53,69,.1);color:#dc3545;border:1px solid rgba(220,53,69,.3)}.alert-success{background:rgba(14,139,126,.1);color:#0e8b7e;border:1px solid rgba(14,139,126,.3)}.form-section{margin-bottom:20px}.form-label{display:block;font-size:.9rem;font-weight:600;color:rgba(0,0,0,.87);margin-bottom:8px}.form-label .icon{margin-right:4px}.section-subtitle{font-size:.75rem;color:rgba(0,0,0,.6);margin-bottom:12px}.select-wrapper{position:relative;display:flex;align-items:center}.select-icon{left:14px;color:#0e8b7e;z-index:1}.select-chevron,.select-icon{position:absolute;pointer-events:none}.select-chevron{right:14px;color:rgba(0,0,0,.4);transition:transform .2s ease}.form-select{width:100%;padding:12px 44px;font-size:.9rem;font-weight:500;border:2px solid #e5e7eb;border-radius:12px;background:white;color:rgba(0,0,0,.87);cursor:pointer;transition:all .3s ease;appearance:none;-webkit-appearance:none;-moz-appearance:none}.form-select.enhanced{background:linear-gradient(180deg,#ffffff 0,#f9fafb);box-shadow:0 1px 3px rgba(0,0,0,.1)}.form-select:hover{border-color:#0e8b7e;box-shadow:0 2px 8px rgba(14,139,126,.15)}.form-select:focus{outline:none;border-color:#0e8b7e;box-shadow:0 0 0 4px rgba(14,139,126,.1),0 2px 8px rgba(14,139,126,.2)}.form-select:focus+.select-chevron{transform:rotate(180deg);color:#0e8b7e}.select-wrapper:hover .select-chevron{color:#0e8b7e}.form-select option{padding:12px;background:white;color:rgba(0,0,0,.87)}.form-select option:checked,.form-select option:hover{background:rgba(14,139,126,.1);color:#0e8b7e}.date-chips{display:flex;flex-wrap:wrap;gap:8px}.selected-category-display,.selected-date-display{padding:12px 16px;background:rgba(14,139,126,.08);border:1.5px solid rgba(14,139,126,.3);border-radius:12px;font-size:.95rem;font-weight:600;color:#0a6b61;text-align:center}.chip{padding:8px 16px;font-size:.875rem;font-weight:600;border:1.5px solid #e5e7eb;border-radius:20px;background:white;color:rgba(0,0,0,.87);cursor:pointer;transition:all .2s}.chip-selected,.chip:hover{background:#0e8b7e;border-color:#0e8b7e;color:white}.time-section{padding:16px;background:rgba(0,0,0,.02);border-radius:16px;border:1px solid #e5e7eb}.time-slots-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.time-slot-chip{padding:12px;font-size:.8rem;font-weight:500;border:1.5px solid #e5e7eb;border-radius:12px;background:white;color:rgba(0,0,0,.87);cursor:pointer;transition:all .2s;position:relative;display:flex;align-items:center;justify-content:center;gap:4px}.time-slot-chip:hover:not(:disabled){background:#0e8b7e;border-color:#0e8b7e;color:white;font-weight:600;box-shadow:0 2px 8px rgba(14,139,126,.3)}.time-slot-chip:disabled{opacity:.5;cursor:not-allowed}.time-slot-selected{background:#0e8b7e;border-color:#0e8b7e;color:white;font-weight:600;box-shadow:0 2px 8px rgba(14,139,126,.3)}.check-icon{font-size:.9rem}.booking-info-section{padding:16px;background:white;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.1)}.selected-time-display{padding:16px;background:rgba(14,139,126,.08);border-radius:12px;border:1.5px solid #0e8b7e;margin-bottom:16px}.selected-time-label{font-size:.7rem;color:rgba(0,0,0,.6);font-weight:500;margin:0 0 4px}.selected-time-date{font-size:.85rem;font-weight:600;color:#0a6b61;margin:0 0 4px}.selected-time-time{font-size:.95rem;color:#0e8b7e;font-weight:700;margin:0;display:flex;align-items:center;gap:4px}.form-field{margin-bottom:16px}.form-field label{display:block;font-size:.875rem;font-weight:600;color:rgba(0,0,0,.87);margin-bottom:6px}.form-input,.form-textarea{width:100%;padding:10px 14px;font-size:.875rem;border:1.5px solid #e5e7eb;border-radius:12px;background:white;color:rgba(0,0,0,.87);transition:all .2s;font-family:inherit}.form-input:focus,.form-textarea:focus{outline:none;border-color:#0e8b7e;box-shadow:0 0 0 3px rgba(14,139,126,.1)}.form-input.error,.form-textarea.error{border-color:#dc3545}.form-textarea{resize:vertical;min-height:60px}.error-text{display:block;font-size:.75rem;color:#dc3545;margin-top:4px}.no-data-text{font-size:.875rem;color:rgba(0,0,0,.6);text-align:center;margin:0}.no-data-box{text-align:center;padding:24px;background:white;border-radius:12px}.modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:16px 24px;border-top:1px solid #e5e7eb}.btn{padding:10px 20px;font-size:.875rem;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .2s;min-width:120px}.btn-secondary{background:white;color:rgba(0,0,0,.87);border:1.5px solid #e5e7eb}.btn-secondary:hover{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.2)}.btn-primary{background:#0e8b7e;color:white;box-shadow:0 2px 8px rgba(14,139,126,.3)}.btn-primary:hover:not(:disabled){background:#0a6b61;box-shadow:0 4px 12px rgba(14,139,126,.4);transform:translateY(-2px)}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}@media (max-width:576px){.modal-container{max-width:100%;max-height:70vh;border-radius:20px}.modal-content{padding:20px 16px}.modal-title{font-size:1.25rem}.modal-footer{flex-direction:column-reverse;gap:8px;padding:16px}.btn{width:100%}.time-slots-grid{grid-template-columns:1fr}}.booking-calendar-card{padding:24px;width:100%;max-width:520px;background-color:#ffffff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);border-radius:16px;border:1px solid #e5e7eb}.calendar-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin-bottom:24px}.calendar-title{font-weight:700;font-size:1.25rem;line-height:1.75rem;margin:0;background:linear-gradient(135deg,#0e8b7e,#ffbc48);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.calendar-nav-buttons{display:flex;flex-direction:row;gap:8px}.nav-button{padding:8px;border:none;border-radius:8px;cursor:pointer;background-color:rgba(0,0,0,.04);transition:all .2s;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px}.nav-button.today-button,.nav-button:hover{background-color:rgba(14,139,126,.08)}.nav-button.today-button{color:#0e8b7e}.nav-button.prev-button:hover{transform:translateX(-2px)}.nav-button.next-button:hover{transform:translateX(2px)}.nav-button svg{display:block;fill:currentColor}.weekdays-header{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.weekday-cell{text-align:center;padding:8px 0;font-weight:700;color:rgba(0,0,0,.6);font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day-cell{min-height:70px;padding:4px;border:2px solid #e5e7eb;border-radius:12px;cursor:default;background-color:#ffffff;transition:all .2s ease-in-out;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.calendar-day-cell.other-month{background-color:rgba(0,0,0,.04);opacity:.4}.calendar-day-cell.available{background-color:rgba(14,139,126,.08);cursor:pointer}.calendar-day-cell.available:hover{background-color:rgba(14,139,126,.2);transform:scale(1.08);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);z-index:1}.calendar-day-cell.today{border-color:#0e8b7e;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.calendar-day-cell.today.available{background-color:rgba(14,139,126,.08)}.calendar-day-cell.today:not(.available){background-color:rgba(14,139,126,.05)}.day-number{font-weight:600;color:rgba(0,0,0,.87);font-size:.85rem;margin-bottom:2px}.day-number.today-number{font-weight:800;color:#0e8b7e}.slots-chip{display:inline-flex;align-items:center;justify-content:center;height:18px;font-size:.65rem;font-weight:700;min-width:50px;padding:0 8px;border-radius:9px;background-color:#4caf50;color:#ffffff;white-space:nowrap}.loading-section{text-align:center;padding:16px 0;margin-top:16px}.loading-text{font-size:.875rem;color:rgba(0,0,0,.6);margin:0}.no-slots-message{text-align:center;padding:16px;margin-top:16px;background-color:rgba(255,188,72,.1);border-radius:8px;border:1px solid rgba(255,188,72,.3)}.info-text{font-size:.875rem;color:rgba(0,0,0,.7);margin:0;font-weight:500}@media (max-width:768px){.booking-calendar-card{padding:24px;max-width:100%}.calendar-header{margin-bottom:16px}.calendar-title{font-size:1.15rem}.calendar-nav-buttons{gap:4px}.nav-button{min-width:32px;height:32px;padding:6px}.weekdays-header{gap:4px;margin-bottom:4px}.weekday-cell{font-size:.75rem;padding:8px 0}.calendar-grid{gap:4px}.calendar-day-cell{min-height:60px}.day-number{font-size:.75rem}.slots-chip{height:16px;font-size:.6rem;min-width:45px;padding:0 6px}}@media (max-width:480px){.booking-calendar-card{padding:16px}.calendar-title{font-size:1rem}.weekday-cell{font-size:.65rem;padding:4px 0}.calendar-day-cell{min-height:50px;padding:2px}.day-number{font-size:.7rem}.slots-chip{height:16px;font-size:.6rem;min-width:45px;padding:0 6px}}