body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.appointment-form-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.appointment-form-container{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:800px;overflow-y:auto;position:relative;width:100%}.appointment-form-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0;color:#fff;padding:25px 30px;position:relative}.appointment-form-header h2{font-size:28px;font-weight:600;margin:0 0 20px}.step-indicator{gap:15px;margin-bottom:10px}.step,.step-indicator{align-items:center;display:flex}.step{background:#ffffff4d;border-radius:50%;color:#fff;font-weight:600;height:40px;justify-content:center;transition:all .3s ease;width:40px}.step.active{background:#ffffffe6;color:#667eea;transform:scale(1.1)}.step.completed{background:#4caf50;color:#fff}.step-line{background:#ffffff4d;border-radius:1px;flex:1 1;height:2px}.close-btn{font-size:24px;height:35px;padding:5px;position:absolute;right:20px;top:15px;transition:all .3s ease;width:35px}.close-btn:hover{background:#fff3}.appointment-form{padding:30px}.form-step{min-height:400px}.form-step h3{color:#333;font-size:24px;font-weight:600;margin-bottom:25px}.patient-type-selector{background:#f8f9fa;border-radius:8px;display:flex;gap:20px;margin-bottom:25px;padding:20px}.patient-type-selector label{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-weight:500;gap:10px;justify-content:center;padding:15px 20px;transition:all .3s ease}.patient-type-selector label:hover{border-color:#667eea}.patient-type-selector input[type=radio]:checked+span{color:#667eea}.patient-type-selector input[type=radio]{accent-color:#667eea}.form-group{margin-bottom:20px}.form-row{grid-gap:20px;gap:20px}.form-group label{color:#555;font-size:14px;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;padding:12px 15px;transition:all .3s ease}.form-group input.error,.form-group select.error{border-color:#f44336}.error-text{color:#f44336;display:block;font-size:12px;margin-top:5px}.selected-patient-info{background:#f0f7ff;border:1px solid #667eea;border-radius:8px;margin-top:20px;padding:20px}.patient-card{background:#fff;border-left:4px solid #667eea;border-radius:8px;padding:15px}.patient-details strong{color:#333;font-size:16px}.patient-details p{color:#666;margin:5px 0}.time-slots-section{margin-top:20px}.time-slots-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));margin-top:10px;max-height:300px;overflow-y:auto}.time-slot{background:#fff;border:2px solid #e1e5e9;border-radius:8px;cursor:pointer;flex-direction:column;font-size:14px;justify-content:center;min-height:70px;padding:10px;position:relative;transition:all .2s ease}.time-slot:hover:not(:disabled){border-color:#0056b3;box-shadow:0 2px 8px #0056b333;transform:translateY(-1px)}.time-slot.selected{background:#e3f2fd;border-color:#007bff!important;color:#0056b3;font-weight:600}.time-slot.booked{background:#ffebee;border-color:#dc3545;color:#721c24;cursor:not-allowed}.time-slot.booked:hover{box-shadow:none;transform:none}.time-slot:disabled{cursor:not-allowed;opacity:.6}.slot-time{font-weight:600;margin-bottom:2px}.slot-duration{color:#666;font-size:11px;margin-bottom:2px}.slot-patient{background:#dc35451a;border-radius:3px;color:#721c24;font-size:10px;margin-top:4px;overflow:hidden;padding:2px 4px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.slot-legend{background:#f8f9fa;border-radius:6px;display:flex;flex-wrap:wrap;gap:15px;margin-top:15px;padding:10px}.legend-item{font-size:12px;gap:6px}.legend-color{border:2px solid;border-radius:3px;height:16px;width:16px}.legend-color.available{background:#fff;border-color:#e1e5e9}.legend-color.booked{background:#ffebee;border-color:#dc3545}.legend-color.selected{background:#e3f2fd;border-color:#007bff}.no-slots-message{background:#fff3cd;border:1px solid #ffeaa7;margin-top:15px;padding:20px}.no-slots-message p{color:#856404;margin:0}.service-selection{margin-bottom:25px}.service-cards{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:15px}.service-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;overflow:hidden;padding:20px;position:relative;transition:all .3s ease}.service-card:before{background:linear-gradient(90deg,#667eea,#764ba2);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.service-card:hover{border-color:#667eea;box-shadow:0 5px 15px #667eea33}.service-card.selected:before,.service-card:hover:before{transform:scaleX(1)}.service-card.selected{background:#f0f7ff;border-color:#667eea}.service-info h4{color:#333;font-size:16px;margin:0 0 8px}.service-info p{color:#666;font-size:14px;margin:0 0 12px}.service-price{color:#667eea;font-size:20px;font-weight:700}.appointment-summary{background:#f8f9fa;border-radius:12px;margin-top:20px;padding:25px}.summary-section{border-bottom:1px solid #e0e0e0;margin-bottom:20px;padding-bottom:20px}.summary-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.summary-section h4{color:#667eea;font-size:16px;font-weight:600;margin:0 0 15px}.summary-section p{color:#555;line-height:1.5;margin:8px 0}.summary-section strong{color:#333;font-weight:600}.form-actions{align-items:center;border-top:1px solid #e0e0e0;flex-wrap:wrap;gap:15px;justify-content:space-between;margin-top:40px;padding-top:25px}.error-message{background:#ffebee;border:1px solid #f44336;margin-bottom:15px;padding:12px 15px;width:100%}.error-message .error-text{color:#f44336;font-size:14px;font-weight:500;margin:0}.btn-cancel,.btn-primary,.btn-secondary,.btn-submit{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;min-width:100px;padding:12px 25px;transition:all .3s ease}.btn-primary{background:#667eea}.btn-primary:hover{background:#5a67d8;box-shadow:0 5px 15px #667eea66}.btn-secondary{background:#6c757d}.btn-secondary:hover{background:#5a6268}.btn-submit{background:linear-gradient(135deg,#4caf50,#45a049)}.btn-submit:hover{box-shadow:0 5px 15px #4caf5066;transform:translateY(-1px)}.btn-cancel{background:#0000;border:2px solid #6c757d;color:#6c757d}.btn-cancel:hover{background:#6c757d;color:#fff}.btn-cancel:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-submit:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}@media (max-width:768px){.appointment-form-overlay{padding:10px}.appointment-form-container{max-height:95vh}.appointment-form-header{padding:20px}.appointment-form-header h2{font-size:24px}.appointment-form{padding:20px}.form-row{gap:15px;grid-template-columns:1fr}.patient-type-selector{flex-direction:column;gap:10px}.service-cards{grid-template-columns:1fr}.time-slots-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.form-actions{flex-direction:column;gap:10px}.form-actions button{width:100%}.step-indicator{gap:10px}.step{font-size:14px;height:35px;width:35px}}.form-loading{position:relative}.form-loading:after{align-items:center;background:#fffc;bottom:0;content:"";display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.form-step{animation:slideInUp .4s ease-out}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible,.service-card:focus-visible,.time-slot:focus-visible{outline:2px solid #667eea;outline-offset:2px}.calendar-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;overflow:hidden;width:100%}.calendar-controls{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-wrap:wrap;justify-content:space-between;padding:1.5rem 2rem}.calendar-controls,.calendar-navigation{align-items:center;display:flex;gap:1rem}.nav-btn{align-items:center;background:#fff3;border:1px solid #ffffff4d;display:flex;font-size:1.2rem;height:40px;justify-content:center;min-width:40px;padding:.5rem 1rem;transition:all .3s ease}.nav-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.current-period h2{font-size:1.5rem;font-weight:600;margin:0;min-width:200px;text-align:center}.today-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.today-btn:hover{background:#ffffff4d}.calendar-view-controls{display:flex;gap:1rem}.view-mode-buttons{background:#ffffff1a;border-radius:6px;display:flex;overflow:hidden}.view-mode-btn{background:#0000;border:none;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.view-mode-btn:hover{background:#ffffff1a}.view-mode-btn.active{background:#fff3;font-weight:600}.calendar-filters{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:1.5rem;padding:1.5rem 2rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{color:#495057;font-size:.85rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.date-picker,.filter-select{background:#fff;border:1px solid #ced4da;border-radius:4px;font-size:.9rem;min-width:120px;padding:.5rem}.date-picker:focus,.filter-select:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea33;outline:none}.calendar-content{padding:2rem}.calendar-grid.month-view{width:100%}.calendar-header-row{grid-gap:1px;display:grid;gap:1px;grid-template-columns:repeat(7,1fr);margin-bottom:1px}.calendar-header-cell{background:#667eea;color:#fff;font-size:.9rem;font-weight:600;letter-spacing:.5px;padding:1rem;text-align:center;text-transform:uppercase}.calendar-body{grid-gap:1px;background:#e9ecef;display:grid;gap:1px;grid-template-columns:repeat(7,1fr)}.calendar-day{background:#fff;border:2px solid #0000;cursor:pointer;display:flex;flex-direction:column;min-height:120px;padding:.5rem;transition:all .3s ease}.calendar-day:hover{background:#f8f9fa;border-color:#667eea}.calendar-day.other-month{background:#f8f9fa;color:#adb5bd}.calendar-day.today{background:#e3f2fd;border-color:#2196f3}.calendar-day.selected{background:#e8f5e8;border-color:#4caf50}.day-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.day-number{font-size:1.1rem;font-weight:600}.appointment-count{background:#667eea;border-radius:10px;color:#fff;font-size:.7rem;min-width:18px;padding:.2rem .4rem;text-align:center}.day-appointments{display:flex;flex:1 1;flex-direction:column;gap:.2rem}.calendar-appointment{align-items:center;border-radius:3px;color:#fff;cursor:pointer;display:flex;font-size:.7rem;justify-content:space-between;padding:.2rem .4rem;transition:opacity .3s ease}.calendar-appointment:hover{opacity:.8}.appointment-patient{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.more-appointments{background:#f8f9fa;border-radius:3px;color:#6c757d;font-size:.7rem;margin-top:.2rem;padding:.2rem;text-align:center}.calendar-grid.week-view{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(7,1fr)}.week-day{background:#fff;border:1px solid #e9ecef;border-radius:8px;display:flex;flex-direction:column;min-height:400px}.week-day.today{background:#e3f2fd;border-color:#2196f3}.week-day-header{background:#667eea;border-radius:8px 8px 0 0;color:#fff;padding:1rem;text-align:center}.day-name{display:block;font-weight:600;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.day-number{display:block;font-size:1.5rem;font-weight:700}.week-day-appointments{display:flex;flex:1 1;flex-direction:column;gap:.5rem;overflow-y:auto;padding:1rem}.week-appointment{background:#fff;border:1px solid #e9ecef;border-left-width:4px;border-radius:6px;cursor:pointer;padding:.75rem;transition:all .3s ease}.week-appointment:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.week-appointment .appointment-time{color:#667eea;font-weight:600;margin-bottom:.5rem}.patient-name{color:#2c3e50}.doctor-name,.service-type{color:#6c757d;font-size:.85rem}.appointment-status{border-radius:12px;font-size:.75rem;font-weight:600;margin-top:.5rem;padding:.25rem .5rem;text-align:center;text-transform:uppercase}.status-confirmed{background:#d4edda;color:#155724}.status-completed{background:#cce5ff;color:#004085}.status-in-progress{background:#d1ecf1;color:#0c5460}.no-appointments{color:#6c757d;font-style:italic;padding:2rem;text-align:center}.calendar-grid.day-view{background:#fff;border-radius:8px}.day-view-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:8px 8px 0 0;display:flex;justify-content:space-between;padding:1.5rem}.day-view-header h3{color:#2c3e50;font-size:1.5rem;margin:0}.day-appointments-count{background:#667eea;border-radius:20px;color:#fff;font-weight:600;padding:.5rem 1rem}.day-appointments-list{display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.no-appointments-day{color:#6c757d;padding:4rem 2rem;text-align:center}.no-appointments-day p{font-size:1.1rem;margin:0}.day-appointment-card{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:12px;cursor:pointer;display:flex;gap:1.5rem;padding:1.5rem;transition:all .3s ease}.day-appointment-card:hover{border-color:#667eea;box-shadow:0 4px 20px #0000001a;transform:translateY(-2px)}.appointment-time-slot{align-items:center;background:#667eea;border-radius:8px;color:#fff;display:flex;flex-direction:column;min-width:100px;padding:1rem}.appointment-time-slot .time{font-size:1.2rem;font-weight:600;margin-bottom:.25rem}.appointment-time-slot .duration{font-size:.8rem;opacity:.9}.appointment-info{display:flex;flex:1 1;flex-direction:column;gap:.5rem}.patient-info h4{color:#2c3e50;font-size:1.1rem;margin:0 0 .25rem}.patient-info p{color:#6c757d;font-size:.9rem;margin:0}.appointment-details{flex-wrap:wrap;gap:1rem}.appointment-details .doctor,.appointment-details .service{color:#495057;font-size:.9rem}.tag{border-radius:12px;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.tag-pre-book{background:#e1f5fe;color:#01579b}.tag-walk-in{background:#fff3e0;color:#e65100}.appointment-status-section{align-items:center;display:flex;flex-direction:column;gap:.5rem;min-width:80px}.status-badge{padding:.5rem 1rem}.appointment-amount{color:#28a745;font-size:1.1rem;font-weight:600}.calendar-legend{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;padding:1rem 2rem}.legend-item{align-items:center;color:#495057;display:flex;font-size:.85rem;gap:.5rem}.legend-color{border-radius:2px;height:12px;width:12px}.error-message{border-bottom:1px solid #f5c6cb}.close-error{align-items:center;display:flex;font-size:1.2rem;justify-content:center}.loading-calendar{padding:4rem 2rem;text-align:center}.loading-spinner{font-size:1.1rem}@media (max-width:1024px){.calendar-filters{gap:1rem}.filter-group{min-width:140px}.day-appointment-card{flex-direction:column;text-align:center}.appointment-info{align-items:center}}@media (max-width:768px){.calendar-controls{flex-direction:column;gap:1rem;padding:1rem}.calendar-navigation{flex-wrap:wrap;justify-content:center}.current-period h2{font-size:1.2rem;min-width:auto}.calendar-filters{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.filter-group{align-items:center;flex-direction:row;justify-content:space-between}.date-picker,.filter-select{min-width:150px}.calendar-content{padding:1rem}.calendar-day{min-height:80px;padding:.25rem}.calendar-grid.week-view{gap:.5rem;grid-template-columns:1fr}.week-day{min-height:200px}.calendar-legend,.day-appointment-card{gap:1rem;padding:1rem}}@media (max-width:480px){.calendar-header-cell{font-size:.8rem;padding:.5rem .25rem}.calendar-day{font-size:.8rem;min-height:60px}.day-number{font-size:1rem}.appointment-count,.calendar-appointment{font-size:.6rem;padding:.1rem .3rem}}.appointments-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.appointments-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:2rem}.appointments-header h2{color:#2c3e50;flex:1 1;font-size:1.8rem;font-weight:600;margin:0}.appointments-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.add-appointment-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background .3s ease}.add-appointment-btn:hover{background:#5a6fd8}.appointments-stats{grid-gap:1.5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:2rem}.appointments-table{overflow-x:auto;position:relative}.appointments-table table{border-collapse:collapse;min-width:1200px;width:100%}.appointments-table td,.appointments-table th{border-bottom:1px solid #e9ecef;padding:1rem;text-align:left}.appointments-table th{background:#f8f9fa;color:#495057;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.appointments-table td{vertical-align:top}.patient-info strong{color:#2c3e50;display:block;font-weight:600;margin-bottom:.25rem}.patient-info small{color:#6c757d;font-size:.85rem}.datetime-info strong{color:#2c3e50;display:block;font-weight:600;margin-bottom:.25rem}.datetime-info small{color:#6c757d;font-size:.85rem}.service-badge{background:#e7f3ff;border-radius:15px;color:#0366d6;display:block;font-size:.8rem;font-weight:500;letter-spacing:.5px;margin-bottom:.25rem;padding:.25rem .75rem;text-align:center;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.service-badge+small{color:#6c757d;font-size:.75rem}.status-badge{display:inline-block;margin-bottom:.25rem;min-width:80px;text-align:center}.sync-status{color:#6c757d;display:block;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.sync-status.synced{color:#28a745}.sync-status.failed{color:#dc3545}.sync-status.pending{color:#ffc107}.token-number{color:#6c757d;display:block;font-size:.75rem;margin-top:.25rem}.payment-info strong{color:#2c3e50;display:block;font-weight:600;margin-bottom:.25rem}.payment-status{border-radius:10px;font-size:.75rem;font-weight:500;letter-spacing:.5px;padding:.2rem .5rem;text-transform:uppercase}.payment-status.paid{background:#d4edda;color:#155724}.payment-status.pending{background:#fff3cd;color:#856404}.payment-status.refunded{background:#f8d7da;color:#721c24}.payment-status.failed{background:#f5c6cb;color:#721c24}.microsoft-id{background:#f8f9fa;border-radius:4px;color:#6c757d;font-family:monospace;font-size:.75rem;padding:.25rem .5rem}.btn-confirm{background:#28a745;color:#fff}.btn-confirm:hover:not(:disabled){background:#218838}.btn-complete{background:#007bff;color:#fff}.btn-complete:hover:not(:disabled){background:#0056b3}.btn-cancel{background:#fd7e14}.btn-cancel:hover:not(:disabled){background:#e8650e}.appointment-modal{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{box-shadow:0 20px 40px #0000001a;max-height:80vh;max-width:700px}.modal-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:1.5rem 2rem}.modal-header h3{color:#2c3e50;font-weight:600}.close-btn{color:#6c757d;height:30px;width:30px}.close-btn:hover{background:#e9ecef;color:#495057}.modal-body{padding:2rem}.detail-section{margin-bottom:2rem}.detail-section h4{border-bottom:2px solid #e9ecef;color:#667eea;font-size:1.1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.5rem}.detail-section p{line-height:1.5;margin:.5rem 0}.detail-section strong{color:#495057;font-weight:600}.appointment-tag-badge{border-radius:15px;display:inline-block;font-size:.8rem;font-weight:500;min-width:90px;padding:.25rem .75rem;text-align:center}.appointment-tag-badge.pre-book{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.appointment-tag-badge.walk-in{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.appointment-tag-inline{border-radius:10px;font-size:.85rem;font-weight:500;margin-left:.5rem;padding:.2rem .5rem}.appointment-tag-inline.pre-book{background:#d4edda;color:#155724}.appointment-tag-inline.walk-in{background:#fff3cd;color:#856404}.view-mode-toggle{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;overflow:hidden}.view-toggle-btn{align-items:center;background:#0000;border:none;color:#495057;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.6rem 1rem;transition:all .3s ease}.view-toggle-btn:hover{background:#667eea1a;color:#667eea}.view-toggle-btn.active{background:#667eea;box-shadow:0 2px 4px #667eea4d;color:#fff}.view-toggle-btn:first-child{border-right:1px solid #e9ecef}.view-toggle-btn.active:first-child{border-right-color:#667eea}@media (max-width:768px){.appointments-controls,.appointments-header{align-items:stretch;flex-direction:column}.appointments-controls{gap:.5rem}.appointments-controls>*{width:100%}.search-input{min-width:150px}.appointments-stats{grid-template-columns:repeat(2,1fr)}.action-buttons{flex-direction:column;gap:.25rem}.modal-content{margin:1rem;max-height:90vh;width:calc(100% - 2rem)}.modal-body,.modal-header{padding:1rem}.appointments-table table{min-width:800px}.view-mode-toggle{order:-1;width:100%}.view-toggle-btn{flex:1 1;justify-content:center;padding:.8rem 1rem}}.user-form-overlay{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;overflow-y:auto;padding:1rem;position:fixed;top:0;width:100%;z-index:1000}.user-form-container{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;margin:auto;max-height:90vh;max-width:800px;overflow-y:auto;width:100%}.user-form-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:1.5rem 2rem}.user-form-header h2{color:#2c3e50;font-size:1.5rem;font-weight:600;margin:0}.user-form-header .close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:30px;justify-content:center;transition:all .2s ease;width:30px}.user-form-header .close-btn:hover:not(:disabled){background:#e9ecef;color:#495057}.user-form-header .close-btn:disabled{cursor:not-allowed;opacity:.6}.user-form{padding:2rem}.form-section{border-bottom:1px solid #f0f0f0;margin-bottom:2rem;padding-bottom:1.5rem}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.form-section h3{border-bottom:2px solid #e9ecef;color:#667eea;font-size:1.2rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.5rem}.form-row{grid-gap:1rem;gap:1rem}.form-group,.form-row{margin-bottom:1rem}.form-group label{font-size:.9rem}.form-group input,.form-group select{background:#fff;border:1px solid #ddd;border-radius:6px;font-size:.9rem;padding:.75rem;transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus,.form-group select:focus{box-shadow:0 0 0 2px #667eea1a}.form-group input.error,.form-group select.error{border-color:#dc3545;box-shadow:0 0 0 2px #dc35451a}.form-group input:disabled,.form-group select:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.6}.error-text{color:#dc3545;font-size:.8rem;font-weight:500;margin-top:.25rem}.form-actions{border-top:1px solid #e9ecef;display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem}.btn-cancel{background:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background .3s ease}.btn-cancel:hover:not(:disabled){background:#5a6268}.btn-submit{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;min-width:120px;padding:.75rem 1.5rem;transition:background .3s ease}.btn-submit:hover:not(:disabled){background:#218838}.btn-cancel:disabled,.btn-submit:disabled{cursor:not-allowed;opacity:.6}.emergency-contact-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.emergency-contact-header h3{flex:1 1;margin:0}.emergency-contact-header .checkbox-group{flex-shrink:0;margin:0}.ms-booking-status{border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:1rem 0;overflow:hidden}.ms-booking-status.success{background-color:#ecfdf5;border:2px solid #10b981}.ms-booking-status.error{background-color:#fef2f2;border:2px solid #ef4444}.ms-booking-header{align-items:center;border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:1rem}.ms-booking-status.success .ms-booking-header{background-color:#d1fae5}.ms-booking-status.error .ms-booking-header{background-color:#fee2e2}.ms-booking-header h4{align-items:center;display:flex;font-size:1rem;font-weight:600;gap:.5rem;margin:0}.ms-booking-status.success .ms-booking-header h4{color:#065f46}.ms-booking-status.error .ms-booking-header h4{color:#991b1b}.close-details,.status-icon{font-size:1.2rem}.close-details{align-items:center;background:none;border:none;border-radius:4px;cursor:pointer;display:flex;height:24px;justify-content:center;padding:.25rem;width:24px}.ms-booking-status.success .close-details{color:#065f46}.ms-booking-status.error .close-details{color:#991b1b}.close-details:hover{background-color:#0000001a}.ms-booking-content{padding:1rem}.ms-booking-content p{font-size:.9rem;line-height:1.4;margin:.5rem 0}.ms-booking-content p:first-child{margin-top:0}.ms-booking-content p:last-child{margin-bottom:0}.success-message p{color:#065f46}.error-message p{color:#991b1b}.ms-booking-content strong{font-weight:600}.ms-booking-status{animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.debug-console{background:#1a1a1a;border:2px solid #333;border-radius:8px 0 0 0;bottom:0;box-shadow:0 -4px 20px #0000004d;color:#0f0;font-family:Courier New,monospace;font-size:.8rem;max-height:300px;overflow:hidden;position:fixed;right:0;width:400px;z-index:10000}.debug-header{align-items:center;background:#333;border-bottom:1px solid #555;color:#fff;display:flex;justify-content:space-between;padding:.5rem}.debug-header h4{font-size:.9rem;font-weight:600;margin:0}.debug-toggle{background:none;border:none;color:#fff;cursor:pointer;font-size:1rem;padding:.25rem}.debug-content{background:#1a1a1a;max-height:240px;overflow-y:auto;padding:.5rem}.debug-log{border-radius:3px;margin:.25rem 0;padding:.25rem;white-space:pre-wrap;word-break:break-word}.debug-log.info{background:#00ff000d;color:#0f0}.debug-log.error{background:#ff44440d;border-left:3px solid #f44;color:#f44;padding-left:.5rem}.debug-log.warning{background:#ffaa000d;border-left:3px solid #fa0;color:#fa0;padding-left:.5rem}.debug-log.success{background:#44ff440d;border-left:3px solid #4f4;color:#4f4;padding-left:.5rem}.debug-timestamp{color:#888;font-size:.75rem}@media (max-width:768px){.user-form-overlay{padding:.5rem}.user-form-container{border-radius:8px;margin:0;max-width:100%}.user-form-header{border-radius:8px 8px 0 0;padding:1rem}.user-form-header h2{font-size:1.3rem}.user-form{padding:1rem}.form-row{gap:0;grid-template-columns:1fr}.form-section h3{font-size:1.1rem}.form-actions{flex-direction:column-reverse}.btn-cancel,.btn-submit{justify-content:center;width:100%}.debug-console{left:0;right:0;width:100%}.ms-booking-status{margin:.5rem}.ms-booking-content,.ms-booking-header{padding:.75rem}.ms-booking-content p{font-size:.85rem}}@media (max-width:480px){.user-form,.user-form-header{padding:.75rem}.form-group input,.form-group select{padding:.6rem}}.availability-overlay{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.availability-container{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:1000px;overflow-y:auto;width:90%}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.availability-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:2px solid #f0f0f0;border-radius:12px 12px 0 0;color:#fff;display:flex;justify-content:space-between;padding:2rem}.availability-header h2{font-size:1.5rem;font-weight:600;margin:0}.close-btn{background:#fff3;transition:background-color .3s}.close-btn:hover{background:#ffffff4d}.doctor-selection{padding:2rem}.doctor-selection label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.doctor-selection select{background:#fff;border:2px solid #ddd;border-radius:8px;font-size:1rem;padding:.75rem;transition:border-color .3s;width:100%}.doctor-selection select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.loading{color:#666;font-style:italic;padding:2rem;text-align:center}.availability-tabs{background:#fafafa;border-bottom:2px solid #f0f0f0;display:flex}.tab-btn{background:none;border:none;color:#666;cursor:pointer;flex:1 1;font-weight:500;padding:1rem 1.5rem;position:relative;transition:all .3s}.tab-btn:hover{background:#667eea1a;color:#667eea}.tab-btn.active{color:#667eea;font-weight:600}.tab-btn.active:after{background:#667eea;bottom:0;content:"";height:3px;left:0;position:absolute;right:0}.availability-content{max-height:60vh;overflow-y:auto;padding:2rem}.schedule-tab h3{color:#333;font-size:1.3rem;margin-bottom:1.5rem}.day-schedule{border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;overflow:hidden}.day-header{background:#f8f9fa;border-bottom:1px solid #e0e0e0;padding:1rem}.day-label{align-items:center;color:#333;cursor:pointer;display:flex;font-weight:600;gap:.5rem}.day-label input[type=checkbox]{accent-color:#667eea;height:18px;width:18px}.time-slots{padding:1rem}.time-slot{align-items:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;display:flex;gap:1rem;margin-bottom:.75rem;padding:.75rem}.time-slot input[type=time]{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.5rem}.time-slot span{color:#666;font-weight:500}.remove-slot-btn{background:#ff4757;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:background-color .3s}.remove-slot-btn:hover{background:#ff3742}.add-slot-btn{background:#2ed573;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .3s}.add-slot-btn:hover{background:#26d365}.duration-tab h3,.duration-tab h4{color:#333;margin-bottom:1rem}.duration-settings{display:flex;flex-direction:column;gap:1.5rem}.form-group{gap:.5rem}.form-group input[type=number],.form-group input[type=text]{border:2px solid #ddd;border-radius:6px;font-size:1rem;padding:.75rem;transition:border-color .3s}.duration-option{align-items:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:flex;gap:1rem;margin-bottom:.75rem;padding:1rem}.duration-option input[type=text]{flex:2 1}.duration-option input[type=number]{width:80px}.duration-option span{color:#666;font-size:.9rem}.duration-option label{align-items:center;display:flex;font-size:.9rem;gap:.5rem}.remove-option-btn{background:#ff4757;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:background-color .3s}.remove-option-btn:hover{background:#ff3742}.add-option-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .3s}.add-option-btn:hover{background:#5a6fd8}.custom-duration-range{grid-gap:1rem;background:#f0f4ff;border:1px solid #d4e4ff;border-radius:8px;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem;padding:1rem}.breaks-tab h3{color:#333;margin-bottom:1.5rem}.break-time{align-items:center;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;display:flex;gap:1rem;margin-bottom:1rem;padding:1rem}.break-time input[type=text],.break-time input[type=time],.break-time select{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.5rem}.break-time select{min-width:120px}.break-time input[type=text]{flex:1 1}.break-time span{color:#666;font-weight:500}.break-time label{align-items:center;display:flex;font-size:.9rem;gap:.5rem;white-space:nowrap}.remove-break-btn{background:#ff4757;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:background-color .3s}.remove-break-btn:hover{background:#ff3742}.add-break-btn{background:#ffa502;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background-color .3s}.add-break-btn:hover{background:#ff9500}.availability-actions{background:#fafafa;border-radius:0 0 12px 12px;border-top:2px solid #f0f0f0;display:flex;gap:1rem;justify-content:flex-end;padding:2rem}.cancel-btn,.save-btn{border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:1rem 2rem;transition:background-color .3s}.dynamic-slot-configuration{background:#fafafa;border:1px solid #e0e0e0;border-radius:8px;margin-top:1rem;overflow:hidden}.slot-config-header{background:#f5f5f5;border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:1rem}.expand-btn,.slot-config-header{align-items:center;cursor:pointer;display:flex}.expand-btn{background:none;border:none;color:#667eea;font-size:.9rem;font-weight:600;gap:.5rem;transition:color .3s}.expand-btn:hover{color:#5a6fd8}.expand-btn.expanded{color:#4c63d2}.slot-summary{align-items:center;gap:1rem}.avg-duration,.total-slots{background:#fff;border:1px solid #ddd;border-radius:12px;color:#666;font-size:.85rem;padding:.25rem .5rem}.slot-config-content{background:#fff;border-top:1px solid #e0e0e0;padding:1.5rem}.config-info{background:#e3f2fd;border:1px solid #bbdefb;border-radius:6px;margin-bottom:1.5rem;padding:1rem}.config-info p{color:#1976d2;font-size:.9rem;margin:0 0 1rem}.reset-btn{background:#ff9800;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:background-color .3s}.reset-btn:hover{background:#f57c00}.half-hourly-periods{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.period-config{grid-gap:1rem;align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:grid;gap:1rem;grid-template-columns:1fr 1fr 1fr;padding:1rem;transition:all .3s}.period-config.customized{background:#fff3e0;border-color:#ffb74d;box-shadow:0 2px 4px #ffb74d1a}.period-time{display:flex;flex-direction:column;gap:.25rem}.period-time strong{color:#333;font-size:.9rem}.custom-badge{background:#ff9800;border-radius:10px;font-size:.7rem;font-weight:500;letter-spacing:.5px;padding:.15rem .4rem}.slot-controls{display:flex;flex-direction:column;gap:.5rem}.slot-controls label{color:#666;font-size:.85rem;font-weight:500}.slot-input-group{gap:.25rem}.slot-btn,.slot-input-group{align-items:center;display:flex}.slot-btn{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-weight:700;height:30px;justify-content:center;transition:all .2s;width:30px}.slot-btn:hover:not(:disabled){background:#f0f0f0;border-color:#ccc}.slot-btn:disabled{cursor:not-allowed;opacity:.5}.slot-btn.decrease{color:#f44336}.slot-btn.increase{color:#4caf50}.slot-count-input{border:1px solid #ddd;border-radius:4px;font-weight:700;padding:.4rem;text-align:center;width:50px}.slot-info{display:flex;flex-direction:column;font-size:.85rem;gap:.25rem}.slot-duration{color:#4caf50;font-weight:600}.slot-times{color:#666;font-size:.8rem}.no-slots-warning{background:#ffebee;border-radius:4px;color:#c62828;font-size:.85rem;grid-column:1/-1;margin-top:.5rem;padding:.75rem;text-align:center}.config-summary{border-top:1px solid #e0e0e0;margin-top:1.5rem;padding-top:1.5rem}.summary-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1.5rem}.stat{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;flex-direction:column;gap:.25rem;padding:.75rem;text-align:center}.stat label{color:#666;font-size:.8rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.stat span{color:#333;font-size:1.1rem;font-weight:700}.example-schedule{background:#f0f4ff;border:1px solid #d4e4ff;border-radius:6px;padding:1rem}.example-schedule h5{color:#1976d2;font-size:.9rem;margin:0 0 .75rem}.schedule-preview{display:flex;flex-direction:column;gap:.5rem}.preview-period{color:#333;font-size:.85rem}.preview-period strong{color:#1976d2}.preview-more{color:#666;font-size:.8rem;font-style:italic;margin-top:.5rem;text-align:center}.time-slot-container{background:#fefefe;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;padding:1rem}@media (max-width:768px){.period-config{gap:.75rem;grid-template-columns:1fr;text-align:center}.slot-input-group{justify-content:center}.summary-stats{grid-template-columns:repeat(2,1fr)}.slot-summary{align-items:flex-end;flex-direction:column;gap:.5rem}}@media (max-width:480px){.slot-config-header{align-items:stretch;flex-direction:column;gap:.75rem}.expand-btn,.slot-summary{justify-content:center}.slot-summary{align-items:center}.config-summary{padding-top:1rem}.summary-stats{grid-template-columns:1fr}}@media (max-width:768px){.availability-container{max-height:95vh;width:95%}.availability-header{padding:1.5rem}.availability-header h2{font-size:1.2rem}.availability-tabs{flex-direction:column}.tab-btn{padding:.75rem 1rem}.availability-content{padding:1.5rem}.time-slot{flex-wrap:wrap;gap:.5rem}.duration-option{flex-wrap:wrap;gap:.75rem}.duration-option input[type=text]{flex:1 1;min-width:150px}.break-time{flex-wrap:wrap;gap:.75rem}.custom-duration-range{grid-template-columns:1fr}.availability-actions{flex-direction:column;gap:.75rem}.cancel-btn,.save-btn{width:100%}}@media (max-width:480px){.availability-container{border-radius:8px;height:98vh;width:98%}.availability-header{border-radius:8px 8px 0 0;padding:1rem}.availability-header h2{font-size:1.1rem}.close-btn{font-size:1.3rem;height:35px;width:35px}.availability-content{max-height:calc(98vh - 200px);padding:1rem}.break-time,.duration-option,.time-slot{align-items:stretch;flex-direction:column}.time-slot span{margin:.25rem 0;text-align:center}}.slot-management{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;margin:0 auto;max-width:1400px;padding:2rem}.slot-management-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.slot-management-header h2{color:#2c3e50;font-size:2rem;font-weight:700;margin:0}.close-btn{background:#e74c3c;font-size:1.5rem;transition:background .3s ease}.close-btn:hover{background:#c0392b}.slot-management-controls{grid-gap:2rem;background:#f8f9fa;border-radius:8px;display:grid;gap:2rem;grid-template-columns:1fr 2fr;margin-bottom:2rem;padding:1.5rem}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{color:#495057;font-weight:600}.control-group input,.control-group select{border:2px solid #e9ecef;border-radius:6px;font-size:1rem;padding:.75rem;transition:border-color .3s ease}.control-group input:focus,.control-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.date-navigation{align-items:center;display:flex;gap:.5rem}.nav-btn{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1rem;transition:background .3s ease}.nav-btn:hover:not(:disabled){background:#5a67d8}.nav-btn:disabled{background:#cbd5e0;cursor:not-allowed}.date-navigation input[type=date]{flex:1 1;margin:0 .5rem}.date-display{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;margin-bottom:2rem;padding:1.5rem;text-align:center}.date-display h3{font-size:1.8rem;font-weight:600;margin:0 0 1rem}.slot-summary{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.summary-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;font-weight:600;padding:.5rem 1rem}.summary-item.available{border:2px solid #2ecc7180}.summary-item.reserved{border:2px solid #e74c3c80}.summary-item.total{border:2px solid #ffffff80}.loading-container{align-items:center;color:#6c757d;display:flex;flex-direction:column;justify-content:center;padding:4rem}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin-bottom:1rem;width:40px}.no-availability,.no-slots{color:#6c757d;padding:4rem;text-align:center}.no-availability h3,.no-slots h3{color:#495057;margin:0 0 1rem}.time-ranges{display:flex;flex-direction:column;gap:2rem}.time-range{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;padding:1.5rem;transition:border-color .3s ease}.time-range:hover{border-color:#667eea}.time-range-header{border-bottom:1px solid #dee2e6;color:#495057;font-size:1.4rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:.5rem}.half-hour-period{margin-bottom:2rem}.half-hour-period:last-child{margin-bottom:0}.period-header{color:#6c757d;font-size:1.1rem;font-weight:600;justify-content:space-between;margin:0 0 1rem}.period-header,.period-info{align-items:center;display:flex}.period-info{color:#868e96;font-size:.9rem;gap:.5rem}.custom-badge{background:#e74c3c;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.2rem .5rem;text-transform:uppercase}.slots-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-top:1rem}.no-slots-message{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#adb5bd;font-style:italic;grid-column:1/-1;padding:2rem;text-align:center}.slot-button{align-items:center;background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;gap:.3rem;min-height:100px;overflow:hidden;padding:1rem;position:relative;transition:all .3s ease}.slot-button:hover:not(:disabled){box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.slot-button:disabled{cursor:not-allowed;opacity:.7}.slot-time{color:#495057;font-size:1rem;font-weight:700}.slot-duration{color:#6c757d;font-size:.8rem}.slot-status{background:#ffffffe6;border-radius:4px;font-size:.7rem;font-weight:600;padding:.2rem .4rem;text-transform:uppercase}.slot-updating{animation:pulse 1s infinite;color:#667eea;font-size:1.5rem;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.slot-available{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-color:#28a745}.slot-available:hover{background:linear-gradient(135deg,#c3e6cb,#b6dfbb);border-color:#20c997}.slot-blocked{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border-color:#dc3545;color:#721c24}.slot-blocked:hover{border-color:#c82333}.slot-reserved{background:linear-gradient(135deg,#e2d9f3,#d9c7e7);border-color:#6f42c1;color:#3d1a5f}.slot-reserved:hover{border-color:#5a2d91}.slot-maintenance{background:linear-gradient(135deg,#ffeaa7,#fdcb6e);border-color:#fd7e14;color:#8b4513}.slot-maintenance:hover{border-color:#e55a00}.slot-emergency{background:linear-gradient(135deg,#ff7675,#fd79a8);border-color:#e74c3c;color:#fff}.slot-emergency:hover{border-color:#c0392b}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h3{color:#495057;font-size:1.5rem;margin:0}.modal-body{padding:1.5rem}.slot-details{background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.slot-details h4,.slot-details h5{color:#495057;margin:0 0 .5rem}.slot-details p{color:#6c757d;margin:.3rem 0}.current-reservation{border-top:1px solid #dee2e6;margin-top:1rem;padding-top:1rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#495057;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:2px solid #e9ecef;border-radius:6px;box-sizing:border-box;font-size:1rem;padding:.75rem;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group small{color:#6c757d;display:block;font-size:.875rem;margin-top:.3rem}.radio-group{display:flex;flex-wrap:wrap;gap:1rem}.radio-group label{align-items:center;cursor:pointer;display:flex;font-weight:400;gap:.5rem;margin-bottom:0}.radio-group input[type=radio]{margin:0;width:auto}.modal-actions{border-top:1px solid #dee2e6;display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1rem}.cancel-btn,.save-btn{border:none;border-radius:6px;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.cancel-btn{background:#6c757d;color:#fff}.cancel-btn:hover:not(:disabled){background:#5a6268}.save-btn{background:#28a745;color:#fff}.save-btn:hover:not(:disabled){background:#218838}.cancel-btn:disabled,.save-btn:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.slot-management{padding:1rem}.slot-management-controls{gap:1rem;grid-template-columns:1fr}.date-navigation{flex-direction:column;gap:.5rem}.nav-btn{width:100%}.slot-summary{gap:1rem}.slots-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.slot-button{min-height:80px;padding:.75rem}.period-header{align-items:flex-start;flex-direction:column;gap:.5rem}.modal-content{margin:1rem;width:95%}.modal-body{padding:1rem}.modal-actions,.radio-group{flex-direction:column;gap:.5rem}.cancel-btn,.save-btn{width:100%}}@media (max-width:480px){.slot-management-header h2{font-size:1.5rem}.date-display h3{font-size:1.4rem}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.slot-button{min-height:70px;padding:.5rem}.slot-time{font-size:.9rem}.slot-duration{font-size:.75rem}}.timeline{margin:0 auto;max-width:1400px;padding:1rem}.timeline-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:between;margin-bottom:2rem;padding-bottom:1rem}.timeline-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#2c3e50;font-size:2rem;font-weight:700;margin:0}.timeline-subtitle{color:#6c757d;font-size:1.1rem;font-weight:400;margin-top:.5rem}.timeline-controls{grid-gap:2rem;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;box-shadow:0 4px 6px #00000012;display:grid;gap:2rem;grid-template-columns:1fr 2fr;margin-bottom:2rem;padding:1.5rem}.timeline-control-group{display:flex;flex-direction:column;gap:.5rem}.timeline-control-group label{color:#495057;font-size:.95rem;font-weight:600}.timeline-control-group input,.timeline-control-group select{background:#fff;border:2px solid #dee2e6;border-radius:8px;font-size:1rem;padding:.8rem;transition:all .3s ease}.timeline-control-group input:focus,.timeline-control-group select:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea26;outline:none;transform:translateY(-1px)}.timeline-date-navigation{align-items:center;display:flex;gap:.5rem}.timeline-nav-btn{align-items:center;background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.3rem;padding:.8rem 1.2rem;transition:all .3s ease}.timeline-nav-btn:hover:not(:disabled){background:#5a67d8;box-shadow:0 6px 12px #667eea4d;transform:translateY(-2px)}.timeline-nav-btn:disabled{background:#cbd5e0;box-shadow:none;cursor:not-allowed;transform:none}.timeline-date-navigation input[type=date]{flex:1 1;font-weight:500;margin:0 .5rem}.timeline-date-display{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 8px 25px #667eea4d;color:#fff;margin-bottom:2rem;overflow:hidden;padding:2rem;position:relative;text-align:center}.timeline-date-display:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='100' height='100' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='25' cy='25' r='1' fill='%23fff' opacity='.1'/%3E%3Ccircle cx='75' cy='75' r='1' fill='%23fff' opacity='.1'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E");bottom:0;content:"";left:0;opacity:.1;position:absolute;right:0;top:0}.timeline-date-display h3{font-size:2.2rem;font-weight:700;margin:0 0 1rem;position:relative;text-shadow:0 2px 4px #0003;z-index:1}.timeline-summary{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;position:relative;z-index:1}.timeline-summary-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:2px solid #fff3;border-radius:25px;font-size:1rem;font-weight:600;padding:.8rem 1.5rem;transition:all .3s ease}.timeline-summary-item:hover{background:#ffffff40;border-color:#fff6;transform:translateY(-2px)}.timeline-summary-item.available{border-color:#2ecc7199}.timeline-summary-item.booked{border-color:#3498db99}.timeline-summary-item.reserved{border-color:#e74c3c99}.timeline-loading-container{align-items:center;color:#6c757d;display:flex;flex-direction:column;justify-content:center;padding:4rem}.timeline-loading-spinner{animation:timelineSpinner 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:50px;margin-bottom:1.5rem;width:50px}@keyframes timelineSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.timeline-slots-container{display:flex;flex-direction:column;gap:2.5rem}.timeline-time-period{background:#fafbfc;border:1px solid #e9ecef;border-radius:16px;overflow:hidden;padding:2rem;position:relative;transition:all .3s ease}.timeline-time-period:hover{border-color:#667eea;box-shadow:0 8px 25px #667eea1a}.timeline-period-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.timeline-period-title{color:#2c3e50;font-size:1.5rem;font-weight:700;margin:0}.timeline-period-info{align-items:center;color:#6c757d;display:flex;font-size:.95rem;font-weight:500;gap:1rem}.timeline-period-badge{background:#e3f2fd;border-radius:12px;color:#1976d2;font-size:.8rem;font-weight:600;letter-spacing:.5px;padding:.3rem .8rem;text-transform:uppercase}.timeline-slots-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:1rem}.timeline-slot-card{background:#fff;border:2px solid #e9ecef;border-radius:16px;box-shadow:0 2px 8px #0000000f;cursor:pointer;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.timeline-slot-card:before{background:#e9ecef;content:"";height:100%;left:0;position:absolute;top:0;transition:all .3s ease;width:4px}.timeline-slot-card:hover{border-color:#667eea;box-shadow:0 12px 30px #00000026;transform:translateY(-4px)}.timeline-slot-card:hover:before{background:#667eea;width:6px}.timeline-slot-card.available{background:linear-gradient(135deg,#fff,#f8fff9);border-color:#28a745}.timeline-slot-card.available:before{background:#28a745}.timeline-slot-card.available:hover{border-color:#20c997;box-shadow:0 12px 30px #28a74533}.timeline-slot-card.booked{background:linear-gradient(135deg,#fff,#f0f8ff);border-color:#06c;box-shadow:0 8px 25px #0066cc26;overflow:hidden;position:relative}.timeline-slot-card.booked:before{background:linear-gradient(135deg,#06c,#004da7);width:5px}.timeline-slot-card.booked:hover{border-color:#004da7;box-shadow:0 15px 35px #0066cc40;transform:translateY(-6px)}.timeline-slot-card.booked:after{background:linear-gradient(90deg,#0000,#0066cc0d);content:"";height:100%;pointer-events:none;position:absolute;right:0;top:0;width:60px}.timeline-slot-card.booked .timeline-slot-header{margin-bottom:1.5rem;position:relative;z-index:2}.timeline-slot-card.booked .timeline-slot-time-main{color:#06c;font-size:1.5rem;font-weight:800;text-shadow:0 1px 2px #0066cc1a}.timeline-slot-card.booked .timeline-slot-duration{color:#004da7;font-size:.9rem;font-weight:600}.timeline-slot-card.booked .timeline-slot-status-badge.booked{background:linear-gradient(135deg,#06c,#004da7);border-radius:20px;box-shadow:0 4px 12px #0066cc4d;color:#fff;font-weight:700;letter-spacing:1px;overflow:hidden;padding:.4rem 1rem;position:relative;text-transform:uppercase}.timeline-slot-card.booked .timeline-slot-status-badge.booked:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.timeline-slot-card.booked:hover .timeline-slot-status-badge.booked:before{left:100%}.timeline-slot-card.booked .timeline-appointment-token{align-items:center;background:linear-gradient(135deg,#06c,#004da7);border-radius:12px;box-shadow:0 6px 15px #06c3;color:#fff;display:inline-flex;font-size:1rem;font-weight:700;gap:.5rem;margin-bottom:1rem;overflow:hidden;padding:.6rem 1.2rem;position:relative}.timeline-slot-card.booked .timeline-appointment-token:before{content:"🎫";font-size:1.1rem}.timeline-slot-card.booked .timeline-appointment-token:after{animation:tokenShimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff1a);content:"";height:100%;position:absolute;right:-20px;top:0;transform:skewX(-15deg);width:20px}@keyframes tokenShimmer{0%{transform:translateX(-100px) skewX(-15deg)}50%{transform:translateX(0) skewX(-15deg)}to{transform:translateX(100px) skewX(-15deg)}}.timeline-slot-card.booked .timeline-patient-info{background:linear-gradient(135deg,#f8fbff,#e6f3ff);border:2px solid #0066cc1a;border-radius:16px;box-shadow:inset 0 1px 3px #0066cc1a;margin-bottom:1.5rem;overflow:hidden;padding:1.5rem;position:relative}.timeline-slot-card.booked .timeline-patient-info:before{background:linear-gradient(90deg,#06c,#004da7);content:"";height:3px;left:0;position:absolute;right:0;top:0}.timeline-slot-card.booked .timeline-patient-name{align-items:center;color:#003d82;display:flex;font-size:1.3rem;font-weight:700;gap:.8rem;justify-content:center;margin:0 0 1rem;position:relative}.timeline-slot-card.booked .timeline-patient-name:before{align-items:center;background:linear-gradient(135deg,#06c,#004da7);border-radius:50%;display:flex;filter:grayscale(1) brightness(0) invert(1);flex-shrink:0;font-size:1.4rem;height:2.5rem;justify-content:center;padding:.4rem;width:2.5rem}.timeline-slot-card.booked .timeline-patient-details{display:flex;flex-direction:column;gap:.8rem}.timeline-slot-card.booked .timeline-patient-detail{align-items:center;border-bottom:1px solid #0066cc1a;display:flex;font-size:.95rem;gap:.8rem;padding:.6rem 0;transition:all .3s ease}.timeline-slot-card.booked .timeline-patient-detail:hover{background:#0066cc0d;border-radius:8px;padding-left:.5rem;padding-right:.5rem}.timeline-slot-card.booked .timeline-patient-detail:last-child{border-bottom:none}.timeline-slot-card.booked .detail-icon{align-items:center;background:linear-gradient(135deg,#06c,#004da7);border-radius:50%;color:#fff;display:flex;filter:grayscale(1) brightness(0) invert(1);flex-shrink:0;font-size:1.2rem;height:28px;justify-content:center;text-align:center;width:28px}.timeline-slot-card.booked .detail-label{color:#003d82;flex-shrink:0;font-size:.9rem;font-weight:700;min-width:70px}.timeline-slot-card.booked .detail-value{color:#004da7;flex-grow:1;font-weight:600;word-break:break-word}.timeline-slot-card.booked .status-value{border-radius:15px;box-shadow:0 2px 6px #0000001a;font-size:.85rem;font-weight:700;letter-spacing:.5px;padding:.3rem .8rem;text-transform:uppercase}.timeline-slot-card.booked .status-scheduled{background:linear-gradient(135deg,#ffa726,#ff9800);color:#fff}.timeline-slot-card.booked .status-confirmed{background:linear-gradient(135deg,#06c,#004da7);color:#fff}.timeline-slot-card.booked .status-completed{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff}.timeline-slot-card.booked .status-in-progress{animation:statusPulse 2s infinite;background:linear-gradient(135deg,#2196f3,#1976d2);color:#fff}@keyframes statusPulse{0%,to{box-shadow:0 2px 6px #2196f34d}50%{box-shadow:0 4px 12px #2196f380}}.timeline-slot-card.booked .payment-value{align-items:center;border-radius:12px;display:inline-flex;font-size:.85rem;font-weight:700;gap:.3rem;padding:.3rem .8rem}.timeline-slot-card.booked .payment-paid{background:linear-gradient(135deg,#4caf50,#388e3c);color:#fff}.timeline-slot-card.booked .payment-pending{animation:paymentBlink 1.5s infinite;background:linear-gradient(135deg,#ffa726,#ff9800);color:#fff}@keyframes paymentBlink{0%,to{opacity:1}50%{opacity:.7}}.timeline-slot-card.booked .payment-failed{background:linear-gradient(135deg,#f44336,#d32f2f);color:#fff}.timeline-slot-card.booked .timeline-slot-actions{border-top:2px solid #0066cc1a;margin-top:1.5rem;padding-top:1rem}.timeline-slot-card.booked .timeline-action-buttons{display:flex;gap:.8rem;justify-content:center}.timeline-slot-card.booked .timeline-action-btn{border-radius:12px;box-shadow:0 4px 12px #00000026;font-size:1.1rem;height:42px;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:42px}.timeline-slot-card.booked .timeline-action-btn:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s ease;width:0}.timeline-slot-card.booked .timeline-action-btn:hover:before{height:100%;width:100%}.timeline-slot-card.booked .timeline-action-btn:hover{box-shadow:0 8px 20px #00000040;transform:translateY(-3px) scale(1.05)}.timeline-slot-card.booked .timeline-action-btn:active{transform:translateY(-1px) scale(1.02)}.timeline-slot-card.booked .timeline-action-btn:disabled{box-shadow:0 2px 6px #0000001a!important;cursor:not-allowed;opacity:.6;transform:none!important}.timeline-slot-card.booked .timeline-action-btn:disabled:after{animation:buttonSpinner 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:currentcolor;content:"";height:20px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:20px}@keyframes buttonSpinner{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.timeline-slot-card.booked .timeline-action-btn[title]:hover:after{animation:tooltipFadeIn .3s ease;background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:8px;bottom:130%;box-shadow:0 6px 15px #0000004d;color:#fff;content:attr(title);font-size:.8rem;font-weight:600;left:50%;padding:.6rem 1rem;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1000}.timeline-slot-card.booked .timeline-action-btn[title]:hover:before{border-left:6px solid #0000;border-right:6px solid #0000;border-top:6px solid #2c3e50;bottom:125%;content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:1000}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.timeline-slot-card.booked{animation:bookedSlotEntrance .6s ease-out}@keyframes bookedSlotEntrance{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.timeline-slot-card.booked .timeline-patient-name{flex-direction:column;font-size:1.1rem;gap:.5rem;text-align:center}.timeline-slot-card.booked .timeline-patient-name:before{align-self:center}.timeline-slot-card.booked .timeline-action-buttons{flex-wrap:wrap;gap:.6rem;justify-content:center}.timeline-slot-card.booked .timeline-action-btn{font-size:1rem;height:38px;width:38px}}@media (max-width:480px){.timeline-slot-card.booked .timeline-patient-info{padding:1rem}.timeline-slot-card.booked .timeline-patient-details{gap:.6rem}.timeline-slot-card.booked .timeline-patient-detail{align-items:flex-start;flex-direction:column;gap:.4rem;padding:.5rem 0}.timeline-slot-card.booked .detail-label{font-size:.8rem;min-width:auto}.timeline-slot-card.booked .detail-value{font-size:.9rem}}.timeline-slot-card.reserved{background:linear-gradient(135deg,#fff,#f8f6ff);border-color:#b02323}.timeline-slot-card.reserved:before{background:#b02323}.timeline-slot-card.reserved:hover{border-color:#5a2d91;box-shadow:0 12px 30px #6f42c133}.timeline-slot-card.past{background:#f8f9fa;border-color:#dee2e6;cursor:not-allowed;opacity:.6}.timeline-slot-card.past:hover{box-shadow:0 2px 8px #0000000f;transform:none}.timeline-slot-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.timeline-slot-time{display:flex;flex-direction:column;gap:.2rem}.timeline-slot-time-main{color:#2c3e50;font-size:1.4rem;font-weight:700;line-height:1.2}.timeline-slot-duration{color:#6c757d;font-size:.85rem;font-weight:500}.timeline-slot-status-badge{border-radius:12px;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.3rem .8rem;text-transform:uppercase}.timeline-slot-status-badge.available{background:#d4edda;color:#155724}.timeline-slot-status-badge.booked{background:#cce5ff;color:#004085}.timeline-slot-status-badge.reserved{background:#de3015;color:#3d1a5f}.timeline-slot-status-badge.past{background:#f8f9fa;color:#6c757d}.timeline-slot-content{margin-bottom:1rem}.timeline-patient-info{background:#667eea;border-radius:12px;margin-bottom:1rem;padding:1rem}.timeline-patient-name{color:#fbfbfc;font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.timeline-patient-details{display:flex;flex-direction:column;gap:.5rem}.timeline-patient-detail{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;font-size:.9rem;gap:.5rem;padding:.3rem 0}.timeline-patient-detail:last-child{border-bottom:none}.detail-icon{flex-shrink:0;font-size:1rem;text-align:center;width:20px}.detail-label{color:#fff;flex-shrink:0;font-weight:600;min-width:60px}.detail-value{color:#fff;flex-grow:1;font-weight:500;word-break:break-word}.status-value{border-radius:12px;font-size:.8rem;font-weight:600;padding:.2rem .5rem;text-transform:capitalize}.status-scheduled{background:#fff3cd;color:#856404}.status-confirmed{background:#d1ecf1;color:#0c5460}.status-completed{background:#d4edda;color:#155724}.status-in-progress{background:#cce5ff;color:#004085}.status-cancelled{background:#f8d7da;color:#721c24}.payment-value{border-radius:8px;font-size:.8rem;font-weight:600;padding:.2rem .5rem}.payment-paid{background:#d4edda;color:#155724}.payment-pending{background:#fff3cd;color:#856404}.payment-failed{background:#f8d7da;color:#721c24}.payment-refunded{background:#e2e3e5;color:#495057}.timeline-appointment-token{background:#667eea;border-radius:8px;color:#fff;display:inline-block;font-size:.9rem;font-weight:600;margin-bottom:.5rem;padding:.4rem .8rem}.timeline-reservation-info{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;margin-bottom:1rem;padding:.8rem}.timeline-reservation-reason{color:#856404;font-size:.9rem;font-weight:500;margin:0}.timeline-empty-slot{color:#adb5bd;font-style:italic;padding:1rem;text-align:center}.timeline-slot-actions{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-top:auto}.timeline-action-buttons{display:flex;gap:.5rem}.timeline-action-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;overflow:hidden;position:relative;transition:all .3s ease;width:36px}.timeline-action-btn:hover{box-shadow:0 6px 12px #00000026;transform:translateY(-2px)}.timeline-action-btn:active{transform:translateY(0)}.timeline-action-btn.confirm{background:#28a745;color:#fff}.timeline-action-btn.confirm:hover{background:#218838;box-shadow:0 6px 12px #28a7454d}.timeline-action-btn.complete{background:#17a2b8;color:#fff}.timeline-action-btn.complete:hover{background:#138496;box-shadow:0 6px 12px #17a2b84d}.timeline-action-btn.cancel{background:#dc3545;color:#fff}.timeline-action-btn.cancel:hover{background:#c82333;box-shadow:0 6px 12px #dc35454d}.timeline-action-btn.view{background:#6c757d;color:#fff}.timeline-action-btn.view:hover{background:#5a6268;box-shadow:0 6px 12px #6c757d4d}.timeline-action-btn.book{background:#667eea;color:#fff}.timeline-action-btn.book:hover{background:#5a67d8;box-shadow:0 6px 12px #667eea4d}.timeline-action-btn.book-now{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 4px 12px #667eea4d;color:#fff;font-size:.9rem;font-weight:600;height:38px;letter-spacing:.5px;min-width:80px;overflow:hidden;padding:.5rem 1rem;position:relative;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1);width:auto}.timeline-action-btn.book-now:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.timeline-action-btn.book-now:hover{background:linear-gradient(135deg,#5a67d8,#6a4c93);box-shadow:0 8px 20px #667eea66;transform:translateY(-3px)}.timeline-action-btn.book-now:hover:before{left:100%}.timeline-action-btn.book-now:active{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.timeline-action-btn.reserve{background:linear-gradient(135deg,#6f42c1,#5a2d91);color:#fff}.timeline-action-btn.reserve:hover{background:linear-gradient(135deg,#5a2d91,#4a235e);box-shadow:0 6px 12px #6f42c14d}.timeline-action-btn.unreserve{background:linear-gradient(135deg,#fd7e14,#e55a00);color:#fff}.timeline-action-btn.unreserve:hover{background:linear-gradient(135deg,#e55a00,#d04200);box-shadow:0 6px 12px #fd7e144d}.timeline-action-btn.reserve,.timeline-action-btn.unreserve{overflow:hidden;position:relative}.timeline-action-btn.reserve:before,.timeline-action-btn.unreserve:before{background:#ffffff4d;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:all .3s ease;width:0}.timeline-action-btn.reserve:hover:before,.timeline-action-btn.unreserve:hover:before{height:100%;width:100%}.timeline-action-btn.reserve:disabled,.timeline-action-btn.unreserve:disabled{box-shadow:0 2px 6px #0000001a!important;cursor:not-allowed;opacity:.6;transform:none!important}.timeline-action-btn.reserve[title]:hover:after,.timeline-action-btn.unreserve[title]:hover:after{animation:tooltipFadeIn .3s ease;background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:8px;box-shadow:0 6px 15px #0000004d;color:#fff;font-size:.8rem;font-weight:600;padding:.6rem 1rem;white-space:nowrap;z-index:1000}@media (max-width:768px){.timeline-action-btn.reserve,.timeline-action-btn.unreserve{font-size:1rem;height:38px;width:38px}}@media (max-width:480px){.timeline-action-btn.reserve,.timeline-action-btn.unreserve{font-size:.9rem;height:36px;width:36px}}.timeline-action-btn[title]:hover:after{background:#2c3e50;border-radius:6px;bottom:100%;color:#fff;content:attr(title);font-size:.8rem;left:50%;margin-bottom:5px;padding:.5rem .8rem;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:1000}.timeline-no-slots{background:#f8f9fa;border:2px dashed #dee2e6;border-radius:12px;color:#6c757d;padding:4rem;text-align:center}.timeline-no-slots h3{color:#495057;font-size:1.5rem;margin:0 0 1rem}.timeline-no-slots p{font-size:1.1rem;margin:0}@media (max-width:768px){.timeline{padding:.5rem}.timeline-controls{gap:1rem;grid-template-columns:1fr;padding:1rem}.timeline-date-navigation{flex-direction:column;gap:.5rem}.timeline-nav-btn{justify-content:center;width:100%}.timeline-summary{flex-direction:column;gap:1rem}.timeline-summary-item{text-align:center}.timeline-slots-grid{gap:1rem;grid-template-columns:1fr}.timeline-time-period{padding:1rem}.timeline-period-header{align-items:flex-start;flex-direction:column;gap:1rem}.timeline-slot-card{padding:1rem}.timeline-slot-header{align-items:flex-start;flex-direction:column;gap:.5rem}.timeline-action-buttons{flex-wrap:wrap;justify-content:center}}@media (max-width:480px){.timeline-header h2{font-size:1.5rem}.timeline-date-display h3{font-size:1.8rem}.timeline-date-display{padding:1.5rem}.timeline-period-title,.timeline-slot-time-main{font-size:1.2rem}.timeline-patient-name{font-size:1rem}}.current-queue-section{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem;overflow:hidden}.current-queue-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e9ecef;color:#fff;display:flex;justify-content:space-between;padding:1.5rem 2rem 1rem}.current-queue-header h3{align-items:center;display:flex;font-size:1.4rem;font-weight:600;gap:.5rem;margin:0}.queue-stats{display:flex;gap:2rem}.queue-stat{display:flex;flex-direction:column;gap:.25rem;text-align:center}.stat-value{color:#fff;font-size:1.8rem;font-weight:700}.stat-label{color:#ffffffe6;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.current-queue-content{padding:2rem}.current-queue-cards-row{display:flex;gap:1.5rem;min-height:200px}.current-appointment-card{background:linear-gradient(135deg,#cdcdcd,#cdcdcd);border-radius:12px;box-shadow:15 4px 12px #667eea4d;color:#000;display:flex;flex-basis:calc(33.333% - 1rem);flex-direction:column;flex-grow:0;flex-shrink:0;justify-content:space-between;overflow:hidden;padding:1.5rem;position:relative}.current-appointment-card:before{background-size:20px 20px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.appointment-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.appointment-status.running{align-items:center;background:#fff3;border-radius:20px;display:flex;font-size:.8rem;font-weight:600;gap:.5rem;letter-spacing:.5px;padding:.5rem 1rem;text-transform:uppercase}.status-indicator{animation:pulse 2s infinite;background:#4ade80}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.appointment-time{font-size:1rem;font-weight:600;opacity:.9}.appointment-content{align-items:center;display:flex;flex:1 1;flex-direction:column;text-align:center}.token-display{margin:1rem 0}.token-number{background:#fff3;border:2px solid #ffffff4d;border-radius:12px;display:inline-block;font-size:2.5rem;font-weight:700;padding:1rem 1.5rem}.patient-details{margin-top:1rem}.patient-name{font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.appointment-meta{display:flex;justify-content:center}.appointment-status-badge{background:#fff3;border-radius:15px;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:.3rem .8rem;text-transform:uppercase}.appointment-actions{display:flex;gap:.5rem;margin-top:1rem}.action-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;flex:1 1;font-size:.8rem;font-weight:600;padding:.7rem;transition:all .3s ease}.action-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.complete-btn{background:#4caf50e6;border-color:#4caf50b3}.complete-btn:hover{background:#4caf50}.view-btn{background:#2196f3e6;border-color:#2196f3b3}.view-btn:hover{background:#2196f3}.no-current-appointment{align-items:center;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:12px;display:flex;flex-basis:calc(33.333% - 1rem);flex-grow:0;flex-shrink:0;justify-content:center;padding:2rem}.empty-state{color:#6c757d;text-align:center}.empty-icon{font-size:2.5rem;margin-bottom:1rem}.empty-state h4{color:#495057;font-size:1.1rem;margin:0 0 .5rem}.empty-state p{font-size:.9rem;margin:0;opacity:.8}.next-appointments-container{background:#f8f9fa;border-radius:12px;display:flex;flex-direction:column;padding:1.5rem}.next-appointments-header{border-bottom:2px solid #e9ecef;margin-bottom:1rem;padding-bottom:.5rem}.next-appointments-title{align-items:center;color:#495057;display:flex;font-size:1.2rem;font-weight:600;gap:.5rem;margin:0}.next-appointments-list{display:flex;flex:1 1;flex-direction:column;gap:.75rem}.next-appointment-card{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;gap:1rem;padding:1rem;transition:all .3s ease}.next-appointment-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea26;transform:translateY(-1px)}.next-appointment-header{min-width:60px;text-align:center}.next-appointment-header,.queue-position{align-items:center;display:flex;flex-direction:column}.queue-position{margin-bottom:.5rem}.position-number{align-items:center;background:#667eea1a;border-radius:50%;color:#667eea;display:flex;font-size:1.5rem;font-weight:700;height:30px;justify-content:center;width:30px}.position-label{color:#6c757d;font-size:.7rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.estimated-time{align-items:center;display:flex;flex-direction:column}.wait-time{color:#28a745;font-size:.8rem;font-weight:600}.time-label{color:#6c757d;font-size:.6rem;letter-spacing:.5px;text-transform:uppercase}.next-appointment-content{align-items:center;display:flex;flex:1 1;gap:1rem}.appointment-token{background:#667eea1a;border-radius:6px;color:#667eea;font-size:1.1rem;font-weight:700;min-width:60px;padding:.5rem 1rem;text-align:center}.appointment-details{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.appointment-details .patient-name{color:#212529;font-size:1rem;font-weight:600;margin:0}.appointment-details .appointment-time{color:#6c757d;font-size:.85rem;font-weight:500}.appointment-status{align-items:center;display:flex}.status-badge{color:#fff;font-size:.7rem;padding:.3rem .8rem}.next-appointment-actions{display:flex;gap:.5rem}.mini-action-btn{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#495057;cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;transition:all .3s ease;width:32px}.mini-action-btn:hover{box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.mini-action-btn.confirm-btn{background:#28a745;border-color:#28a745;color:#fff}.mini-action-btn.confirm-btn:hover{background:#218838}.no-next-appointments{flex:1 1;padding:2rem}.auto-refresh-indicator,.no-next-appointments{align-items:center;display:flex;justify-content:center}.auto-refresh-indicator{background:#667eea1a;border-radius:8px;color:#495057;font-size:.8rem;gap:.5rem;margin-top:1.5rem;padding:.75rem}.refresh-icon{animation:spin 2s linear infinite}@media (max-width:1200px){.current-queue-cards-row{flex-direction:column;gap:1rem}.current-appointment-card,.next-appointments-container,.no-current-appointment{flex:1 1}.next-appointment-card{gap:.75rem;padding:.75rem}.position-number{font-size:1.2rem;height:25px;width:25px}}@media (max-width:768px){.current-queue-content{padding:1rem}.current-queue-header{flex-direction:column;gap:1rem;padding:1rem;text-align:center}.queue-stats{gap:1rem}.next-appointment-card{text-align:center}.next-appointment-card,.next-appointment-content{flex-direction:column;gap:.5rem}}.booking-popup-overlay,.confirmation-popup-overlay,.popup-overlay,.view-appointment-popup-overlay{align-items:center!important;animation:popupOverlayFadeIn .3s ease!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;background:#0009!important;bottom:0!important;display:flex!important;justify-content:center!important;left:0!important;padding:1rem!important;position:fixed!important;right:0!important;top:0!important;z-index:10000!important}@keyframes popupOverlayFadeIn{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0}to{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1}}.booking-popup-container,.confirmation-popup-container,.popup-container,.view-appointment-popup-container{animation:popupSlideIn .4s cubic-bezier(.34,1.56,.64,1)!important;background:#fff!important;border:1px solid #fff3!important;border-radius:20px!important;box-shadow:0 25px 50px #00000040!important;max-height:90vh!important;max-width:90vw!important;overflow:auto!important;position:relative!important;z-index:10001!important}@keyframes popupSlideIn{0%{opacity:0;transform:translateY(30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.booking-popup-container,.confirmation-popup-container,.popup-container,.view-appointment-popup-container{max-height:95vh!important;overflow-x:hidden!important;overflow-y:auto!important}.booking-popup-form,.view-appointment-content{max-height:none!important;overflow:visible!important}}@media (max-width:480px){.booking-popup-container,.confirmation-popup-container,.popup-container,.view-appointment-popup-container{margin:1vh auto!important;max-height:98vh!important}}.confirmation-popup-container{background:linear-gradient(135deg,#fff,#f8fafb)!important;max-width:450px!important;text-align:center!important;width:100%!important}.confirmation-popup-header{background:linear-gradient(135deg,#667eea,#764ba2)!important;border-radius:20px 20px 0 0!important;color:#fff!important;padding:2rem 2rem 1rem!important;position:relative!important}.confirmation-popup-header:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='20' height='20' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='10' cy='10' r='1' fill='%23fff' opacity='.1'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E")!important;bottom:0!important;content:""!important;left:0!important;opacity:.3!important;position:absolute!important;right:0!important;top:0!important}.confirmation-icon{align-items:center!important;animation:iconPulse 2s infinite!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;background:#fff3!important;border:3px solid #ffffff4d!important;border-radius:50%!important;box-shadow:0 8px 25px #00000026!important;display:flex!important;font-size:2.5rem!important;height:80px!important;justify-content:center!important;margin:0 auto 1rem!important;position:relative!important;width:80px!important;z-index:2!important}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.confirmation-popup-header h3{color:#fff!important;font-size:1.8rem!important;font-weight:700!important;margin:0!important;position:relative!important;text-shadow:0 2px 4px #0003!important;z-index:2!important}.confirmation-popup-content{padding:2rem!important}.appointment-summary{background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;border-left:4px solid #667eea!important;border-radius:12px!important;box-shadow:inset 0 1px 3px #0000001a!important;margin-bottom:1.5rem!important;padding:1.5rem!important}.appointment-time{margin-bottom:1rem!important;text-align:center!important}.appointment-time strong{color:#2c3e50!important;display:block!important;font-size:1.5rem!important;font-weight:700!important;margin-bottom:.5rem!important}.appointment-token{background:#667eea!important;border-radius:12px!important;color:#fff!important;font-size:.8rem!important;font-weight:600!important;letter-spacing:.5px!important;padding:.3rem .8rem!important;text-transform:uppercase!important}.appointment-patient{border-top:1px solid #dee2e6!important;padding-top:1rem!important;text-align:center!important}.patient-name{font-size:1.2rem!important;font-weight:700!important;margin-bottom:.5rem!important}.patient-contact{color:#6c757d!important;font-size:.95rem!important;font-weight:500!important}.confirmation-message{text-align:center!important}.main-message{color:#495057!important;font-size:1.1rem!important;font-weight:600!important;line-height:1.6!important;margin-bottom:.5rem!important}.sub-message{color:#6c757d!important;font-size:.95rem!important;font-weight:400!important;line-height:1.5!important;margin:0!important}.confirmation-popup-actions{display:flex!important;gap:1rem!important;justify-content:center!important;margin-top:2rem!important}.btn-cancel-action,.btn-cancel-confirm,.btn-complete,.btn-confirm{align-items:center!important;border:none!important;border-radius:12px!important;box-shadow:0 4px 12px #00000026!important;cursor:pointer!important;display:flex!important;font-size:1rem!important;font-weight:600!important;gap:.5rem!important;justify-content:center!important;letter-spacing:.5px!important;min-width:120px!important;overflow:hidden!important;padding:1rem 2rem!important;position:relative!important;text-transform:uppercase!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.btn-cancel-action{background:linear-gradient(135deg,#6c757d,#495057)!important;color:#fff!important}.btn-confirm{background:linear-gradient(135deg,#28a745,#20c997)!important;color:#fff!important}.btn-complete{background:linear-gradient(135deg,#17a2b8,#20c997)!important;color:#fff!important}.btn-cancel-confirm{background:linear-gradient(135deg,#dc3545,#e74c3c)!important;color:#fff!important}.btn-cancel-action:hover,.btn-cancel-confirm:hover,.btn-complete:hover,.btn-confirm:hover{box-shadow:0 8px 20px #00000040!important;transform:translateY(-2px)!important}.btn-cancel-action:disabled,.btn-cancel-confirm:disabled,.btn-complete:disabled,.btn-confirm:disabled{box-shadow:0 2px 6px #0000001a!important;cursor:not-allowed!important;opacity:.6!important;transform:none!important}.loading-spinner{animation:spin 1s linear infinite!important;border:2px solid #0000!important;border-radius:50%!important;border-top-color:currentcolor!important;height:16px!important;margin-right:.5rem!important;width:16px!important}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.view-appointment-popup-container{background:linear-gradient(135deg,#fff,#f8fafb)!important;display:flex!important;flex-direction:column!important;max-height:90vh!important;max-width:800px!important;overflow:auto!important;width:100%!important}.view-appointment-header{align-items:flex-start!important;background:linear-gradient(135deg,#2c3e50,#34495e)!important;color:#fff!important;display:flex!important;justify-content:space-between!important;overflow:hidden!important;padding:2rem!important;position:relative!important}.view-appointment-header:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='28' height='49' patternUnits='userSpaceOnUse' patternTransform='scale(.3)'%3E%3Cpath d='m13.99 0 6.93 12.01-6.93 12.01L0 12.01 13.99 0z' fill='%23fff' opacity='.05'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E")!important;bottom:0!important;content:""!important;left:0!important;position:absolute!important;right:0!important;top:0!important}.header-content{position:relative!important;z-index:2!important}.header-content h3{align-items:center!important;display:flex!important;font-size:2rem!important;font-weight:700!important;gap:.8rem!important;margin:0 0 .5rem!important;text-shadow:0 2px 4px #0003!important}.header-content h3:before{-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;background:#ffffff26!important;border:2px solid #fff3!important;border-radius:50%!important;content:"📅"!important;font-size:2.2rem!important;padding:.5rem!important}.appointment-status-badge{border:2px solid #fff3!important;border-radius:20px!important;font-size:.9rem!important;font-weight:600!important;padding:.5rem 1rem!important;text-transform:capitalize!important}.appointment-status-badge,.close-btn{-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;background:#ffffff26!important;color:#fff!important}.close-btn{align-items:center!important;border:2px solid #fff3!important;border-radius:50%!important;cursor:pointer!important;display:flex!important;font-size:1.5rem!important;height:45px!important;justify-content:center!important;position:relative!important;transition:all .3s ease!important;width:45px!important;z-index:2!important}.close-btn:hover{background:#ffffff40!important;border-color:#fff6!important;transform:rotate(90deg) scale(1.1)!important}.view-appointment-content{flex:1 1!important;overflow-y:auto!important;padding:2rem!important}.detail-section{background:#fff!important;border:1px solid #e9ecef!important;border-radius:16px!important;box-shadow:0 4px 12px #0000000d!important;margin-bottom:2.5rem!important;overflow:hidden!important;padding:2rem!important;position:relative!important;transition:all .3s ease!important}.detail-section:before{background:linear-gradient(135deg,#667eea,#764ba2)!important;content:""!important;height:100%!important;left:0!important;position:absolute!important;top:0!important;transition:width .3s ease!important;width:4px!important}.detail-section:hover{border-color:#667eea!important;box-shadow:0 8px 25px #667eea1a!important;transform:translateY(-2px)!important}.section-title{border-bottom:2px solid #f8f9fa!important;color:#2c3e50!important;font-size:1.4rem!important;font-weight:700!important;margin:0 0 1.5rem!important;padding-bottom:1rem!important}.detail-grid{grid-gap:1.5rem!important;display:grid!important;gap:1.5rem!important;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))!important}.detail-item{background:linear-gradient(135deg,#f8f9fa,#fff)!important;border:1px solid #e9ecef!important;border-radius:12px!important;display:flex!important;flex-direction:column!important;gap:.5rem!important;padding:1rem!important;transition:all .3s ease!important}.detail-item:hover{border-color:#667eea!important;box-shadow:0 4px 12px #667eea1a!important;transform:translateY(-1px)!important}.detail-label{color:#495057!important;font-size:.9rem!important;font-weight:700!important;letter-spacing:.5px!important;text-transform:uppercase!important}.detail-value{color:#2c3e50!important;font-size:1.1rem!important;font-weight:600!important;line-height:1.4!important}.payment-status.paid{color:#28a745!important;font-weight:700!important}.payment-status.pending{color:#ffa726!important;font-weight:700!important}.payment-status.failed{color:#dc3545!important;font-weight:700!important}.notes-content{background:linear-gradient(135deg,#fff9c4,#fff8e1)!important;border:2px solid #ffd54f!important;border-radius:16px!important;overflow:hidden!important;padding:1.5rem!important;position:relative!important}.note-item{margin-bottom:1rem!important}.note-item:last-child{margin-bottom:0!important}.note-label{color:#f57f17!important;display:block!important;font-weight:700!important;margin-bottom:.5rem!important}.note-text{color:#bf8f00!important;line-height:1.6!important;margin:0!important}.view-appointment-footer{background:#f8f9fa!important;border-top:1px solid #e9ecef!important;display:flex!important;justify-content:center!important;padding:1.5rem 2rem!important}.btn-close-details{background:linear-gradient(135deg,#6c757d,#495057)!important;border:none!important;border-radius:12px!important;color:#fff!important;cursor:pointer!important;font-size:1rem!important;font-weight:600!important;letter-spacing:.5px!important;padding:1rem 2rem!important;text-transform:uppercase!important;transition:all .3s ease!important}.btn-close-details:hover{box-shadow:0 6px 15px #6c757d4d!important;transform:translateY(-2px)!important}.booking-popup-container{background:linear-gradient(135deg,#fff,#f8fafb)!important;display:flex!important;flex-direction:column!important;max-height:90vh!important;max-width:700px!important;overflow:auto!important;width:100%!important}.booking-popup-header{align-items:flex-start!important;background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;display:flex!important;justify-content:space-between!important;overflow:hidden!important;padding:2rem!important;position:relative!important}.booking-popup-header:before{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3Cpattern id='a' width='20' height='20' patternUnits='userSpaceOnUse'%3E%3Ccircle cx='10' cy='10' r='2' fill='%23fff' opacity='.1'/%3E%3C/pattern%3E%3C/defs%3E%3Cpath fill='url(%23a)' d='M0 0h100v100H0z'/%3E%3C/svg%3E")!important;bottom:0!important;content:""!important;left:0!important;position:absolute!important;right:0!important;top:0!important}.booking-popup-header h3{font-size:2rem!important;font-weight:700!important;margin:0 0 .5rem!important;text-shadow:0 2px 4px #0003!important}.booking-popup-header h3,.slot-info{position:relative!important;z-index:2!important}.slot-info{align-items:center!important;display:flex!important;gap:1rem!important;margin-top:.5rem!important}.slot-time{background:#fff3!important;border:2px solid #fff3!important;border-radius:20px!important;padding:.5rem 1rem!important}.slot-time,.slot-token{-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important;font-weight:600!important}.slot-token{background:#ffffff26!important;border:1px solid #fff3!important;border-radius:15px!important;font-size:.9rem!important;padding:.4rem .8rem!important}.booking-popup-form{flex:1 1!important;overflow-y:auto!important;padding:2rem!important}.patient-type-selector{background:linear-gradient(135deg,#f8f9fa,#e9ecef)!important;border:2px solid #dee2e6!important;border-radius:12px!important;display:flex!important;gap:1rem!important;margin-bottom:2rem!important;padding:1rem!important}.patient-type-selector label{background:#fff!important;border:2px solid #0000!important;border-radius:8px!important;color:#6c757d!important;cursor:pointer!important;flex:1 1!important;font-weight:600!important;padding:1rem!important;text-align:center!important;transition:all .3s ease!important}.patient-type-selector label.active{background:linear-gradient(135deg,#667eea,#764ba2)!important;border-color:#667eea!important;box-shadow:0 6px 15px #667eea4d!important;color:#fff!important;transform:translateY(-2px)!important}.patient-type-selector input[type=radio]{display:none!important}.form-group{margin-bottom:1.5rem!important}.form-group label{color:#495057!important;display:block!important;font-size:.95rem!important;font-weight:700!important;margin-bottom:.5rem!important}.form-group input,.form-group select,.form-group textarea{background:#fff!important;border:2px solid #dee2e6!important;border-radius:8px!important;font-family:inherit!important;font-size:1rem!important;padding:1rem!important;transition:all .3s ease!important;width:100%!important}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea!important;box-shadow:0 0 0 4px #667eea26!important;outline:none!important;transform:translateY(-1px)!important}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545!important;box-shadow:0 0 0 4px #dc354526!important}.form-row{grid-gap:1rem!important;display:grid!important;gap:1rem!important;grid-template-columns:1fr 1fr!important}.search-container{position:relative!important}.search-results{background:#fff!important;border:2px solid #dee2e6!important;border-radius:0 0 8px 8px!important;border-top:none!important;box-shadow:0 4px 12px #00000026!important;left:0!important;max-height:200px!important;overflow-y:auto!important;position:absolute!important;right:0!important;top:100%!important;z-index:1000!important}.search-result-item{border-bottom:1px solid #f8f9fa!important;cursor:pointer!important;padding:1rem!important;transition:all .3s ease!important}.search-result-item:hover{background:#f8f9fa!important;color:#667eea!important}.patient-info{display:flex!important;flex-direction:column!important;gap:.3rem!important}.patient-name{color:#2c3e50!important;font-weight:600!important}.patient-details{color:#6c757d!important;display:flex!important;font-size:.9rem!important;gap:1rem!important}.no-results,.search-loading{color:#6c757d!important;font-style:italic!important;padding:1rem!important;text-align:center!important}.selected-patient-info{background:linear-gradient(135deg,#e3f2fd,#f3e5f5)!important;border:2px solid #667eea!important;border-radius:12px!important;margin-top:1rem!important;padding:1.5rem!important}.selected-patient-info h4{color:#2c3e50!important;font-weight:700!important;margin:0 0 1rem!important}.patient-card{background:#fff!important;border:1px solid #dee2e6!important;border-radius:8px!important;padding:1rem!important}.error-text{color:#dc3545!important;font-size:.85rem!important;font-weight:600!important;margin-top:.3rem!important}.error-message{background:#f8d7da!important;border:1px solid #f5c6cb!important;border-radius:8px!important;color:#721c24!important;margin:1rem 0!important;padding:1rem!important;text-align:center!important}.form-actions{border-top:1px solid #e9ecef!important;display:flex!important;gap:1rem!important;justify-content:center!important;margin-top:2rem!important;padding-top:1.5rem!important}.btn-cancel,.btn-submit{border:none!important;border-radius:12px!important;cursor:pointer!important;font-size:1rem!important;font-weight:600!important;letter-spacing:.5px!important;min-width:120px!important;padding:1rem 2rem!important;text-transform:uppercase!important;transition:all .3s ease!important}.btn-cancel{background:linear-gradient(135deg,#6c757d,#495057)!important;color:#fff!important}.btn-submit{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important}.btn-cancel:hover,.btn-submit:hover{box-shadow:0 6px 15px #0003!important;transform:translateY(-2px)!important}.btn-cancel:disabled,.btn-submit:disabled{box-shadow:none!important;cursor:not-allowed!important;opacity:.6!important;transform:none!important}@media (max-width:768px){.booking-popup-overlay,.confirmation-popup-overlay,.popup-overlay,.view-appointment-popup-overlay{padding:.5rem!important}.booking-popup-container,.confirmation-popup-container,.view-appointment-popup-container{max-height:95vh!important;max-width:95vw!important}.booking-popup-form,.booking-popup-header,.confirmation-popup-content,.confirmation-popup-header,.view-appointment-content,.view-appointment-header{padding:1.5rem!important}.detail-grid,.form-row{grid-template-columns:1fr!important}.patient-type-selector{flex-direction:column!important}}@media (max-width:480px){.booking-popup-header h3,.confirmation-popup-header h3,.header-content h3{font-size:1.5rem!important}.confirmation-icon{font-size:2rem!important;height:60px!important;width:60px!important}.confirmation-popup-actions,.form-actions{flex-direction:column!important;gap:.8rem!important}.btn-cancel,.btn-cancel-action,.btn-cancel-confirm,.btn-close-details,.btn-complete,.btn-confirm,.btn-submit{width:100%!important}}.popup-overlay.closing{animation:popupOverlayFadeOut .3s ease}@keyframes popupOverlayFadeOut{0%{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:1}to{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0}}.popup-container.closing{animation:popupSlideOut .4s cubic-bezier(.55,.06,.68,.19)}@keyframes popupSlideOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-30px) scale(.9)}}.popup-overlay:focus-within{outline:none}.book-appointment-btn:focus,.book-appointment-close-btn:focus,.confirmation-popup-btn:focus,.view-appointment-close-btn:focus{outline:3px solid #667eea80;outline-offset:2px}.book-appointment-form-group input:focus,.book-appointment-form-group select:focus,.book-appointment-form-group textarea:focus,.confirmation-popup-input-section textarea:focus{outline:3px solid #667eea4d;outline-offset:2px}.popup-container{border-image:linear-gradient(90deg,#667eea,#764ba2) 1;border-top:5px solid #0000}.book-appointment-popup,.confirmation-popup,.view-appointment-popup{box-shadow:0 0 0 1px #667eea1a,0 25px 50px #00000040,inset 0 1px 0 #fffc}.popup-loading-overlay{align-items:center;animation:loadingFadeIn .3s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fffffff2;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:1000}@keyframes loadingFadeIn{0%{opacity:0}to{opacity:1}}.popup-loading-spinner{animation:popupSpinner 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}@keyframes popupSpinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dashboard{margin:0 auto;max-width:1400px}.dashboard-header{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;margin-bottom:2rem;padding:2rem}.dashboard-header h1{color:#2c3e50;font-size:2.5rem;font-weight:700;margin:0 0 1.5rem}.dashboard-nav{background:#f8f9fa;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;gap:.5rem;padding:.5rem}.nav-button{background:#0000;border:none;border-radius:8px;color:#6c757d;cursor:pointer;font-weight:500;overflow:hidden;padding:.75rem 1.5rem;position:relative;transition:all .3s ease}.nav-button:hover{background:#667eea1a;color:#667eea}.nav-button.active{background:#667eea;box-shadow:0 4px 12px #667eea4d;color:#fff}.nav-button.active:after{background:#fffc;border-radius:2px;bottom:0;content:"";height:3px;left:50%;position:absolute;transform:translateX(-50%);width:30px}.dashboard-content{background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;min-height:500px;padding:2rem}.availability-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 8px 25px #667eea4d;color:#fff;margin:2rem 0;padding:2rem;text-align:center}.availability-section .section-header{margin-bottom:2rem}.availability-section .section-header h2{font-size:2rem;font-weight:600;margin:0 0 1rem;text-shadow:0 2px 4px #0003}.availability-section .section-header p{font-size:1.1rem;line-height:1.6;margin:0 auto;max-width:600px;opacity:.9}.manage-availability-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:2px solid #ffffff4d;border-radius:50px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;letter-spacing:.5px;padding:1rem 2rem;text-transform:uppercase;transition:all .3s ease}.manage-availability-btn:hover{background:#ffffff4d;border-color:#ffffff80;box-shadow:0 8px 20px #0003;transform:translateY(-2px)}.manage-availability-btn:active{box-shadow:0 4px 10px #0003;transform:translateY(0)}.booking-system-status{align-items:center;background:#e3f2fd;border:1px solid #2196f3;border-radius:20px;color:#1565c0;display:inline-flex;font-size:.85rem;gap:.5rem;margin-top:1rem;padding:.5rem 1rem}.booking-system-status.custom-system{background:#f3e5f5;border-color:#9c27b0;color:#7b1fa2}.booking-system-status.microsoft-disabled{background:#fff3e0;border-color:#ff9800;color:#e65100}.status-indicator{background:currentColor;border-radius:50%;height:8px;width:8px}.availability-quick-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:2rem 0}.availability-stat-card{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem;text-align:center;transition:all .3s ease}.availability-stat-card:hover{border-color:#667eea;box-shadow:0 4px 12px #667eea26}.availability-stat-card .stat-number{color:#667eea;display:block;font-size:2rem;font-weight:700;margin-bottom:.5rem}.availability-stat-card .stat-label{color:#6c757d;font-size:.9rem;font-weight:500}.integration-status-banner{background:linear-gradient(90deg,#ffeaa7,#fab1a0);border:1px solid #fdcb6e;border-radius:8px;color:#2d3436;font-weight:500;margin-bottom:2rem;padding:1rem;text-align:center}.integration-status-banner.disabled{background:linear-gradient(90deg,#ddd6fe,#e0e7ff);border-color:#a78bfa;color:#5b21b6}.integration-status-banner .banner-title{display:block;font-weight:600;margin-bottom:.5rem}.integration-status-banner .banner-message{font-size:.9rem;opacity:.9}@media (max-width:768px){.availability-section{margin:1rem 0;padding:1.5rem 1rem}.availability-section .section-header h2{font-size:1.5rem}.availability-section .section-header p{font-size:1rem}.manage-availability-btn{font-size:1rem;padding:.8rem 1.5rem}.dashboard-nav{flex-direction:column;gap:.25rem}.nav-button{padding:.8rem 1rem;text-align:center}.availability-quick-stats{gap:.75rem;grid-template-columns:1fr}.dashboard-content{padding:1rem}}@media (max-width:480px){.dashboard-nav{flex-direction:column;gap:.5rem}.nav-button{width:100%}}.user-view-overlay{align-items:center;background-color:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.user-view-modal{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 20px 40px #00000026;max-height:90vh;max-width:800px;overflow:hidden;width:90%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.user-view-header{align-items:flex-start;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e5e5e5;color:#fff;display:flex;justify-content:space-between;padding:24px}.header-left h2{font-size:24px;font-weight:600;margin:0 0 12px}.user-badges{display:flex;flex-wrap:wrap;gap:8px}.status-badge{border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px}.status-badge.active{background-color:#22c55e33;border:1px solid #22c55e4d;color:#22c55e}.status-badge.inactive{background-color:#ef444433;border:1px solid #ef44444d;color:#ef4444}.role-badge{background-color:#fff3;border:1px solid #ffffff4d;border-radius:20px;color:#fff;font-size:12px;font-weight:600;padding:4px 12px;text-transform:capitalize}.role-badge.role-admin{background-color:#a855f733;border:1px solid #a855f74d;color:#a855f7}.role-badge.role-doctor{background-color:#3b82f633;border:1px solid #3b82f64d;color:#3b82f6}.role-badge.role-patient{background-color:#22c55e33;border:1px solid #22c55e4d;color:#22c55e}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;padding:0;transition:all .2s ease;width:40px}.close-btn:hover{background-color:#ffffff1a;transform:scale(1.1)}.user-view-content{max-height:60vh;overflow-y:auto;padding:24px}.info-section{margin-bottom:32px}.info-section:last-child{margin-bottom:0}.info-section h3{border-bottom:2px solid #f3f4f6;color:#374151;font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.info-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item{display:flex;flex-direction:column;gap:4px}.info-item.full-width{grid-column:1/-1}.info-item label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-item span{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;color:#111827;font-size:14px;min-height:20px;padding:8px 12px;word-break:break-word}.user-id{background-color:#1f2937!important;border-color:#374151!important;color:#f9fafb!important;font-family:Monaco,Menlo,monospace;font-size:12px!important}.user-view-actions{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.btn-danger,.btn-primary,.btn-secondary{align-items:center;border:none;border-radius:6px;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-secondary{background-color:#6b7280;color:#fff}.btn-secondary:hover{background-color:#4b5563;transform:translateY(-1px)}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb;transform:translateY(-1px)}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover{background-color:#dc2626;transform:translateY(-1px)}@media (max-width:768px){.user-view-modal{margin:20px;width:95%}.user-view-header{padding:16px}.header-left h2{font-size:20px}.user-view-content{padding:16px}.info-grid{grid-template-columns:1fr}.user-view-actions{flex-direction:column-reverse;padding:16px}.btn-danger,.btn-primary,.btn-secondary{justify-content:center;width:100%}}.user-view-content::-webkit-scrollbar{width:6px}.user-view-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.user-view-content::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.user-view-content::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.users-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden}.users-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:2rem}.users-header h2{color:#2c3e50;flex:1 1;font-size:1.8rem;font-weight:600;margin:0}.users-controls{align-items:center;display:flex;gap:1rem}.search-input{border:1px solid #ddd;border-radius:6px;font-size:.9rem;min-width:200px;padding:.5rem 1rem;transition:border-color .3s ease}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a;outline:none}.filter-select{background:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.add-user-btn{background:#28a745;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background .3s ease}.add-user-btn:hover{background:#218838}.error-message{align-items:center;background:#f8d7da;border-left:4px solid #dc3545;color:#721c24;display:flex;justify-content:space-between;margin:0;padding:1rem 2rem}.close-error{background:none;border:none;color:#721c24;cursor:pointer;font-size:1.5rem;height:24px;padding:0;width:24px}.loading-overlay{align-items:center;background:#fffc;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.loading-spinner{color:#667eea;font-weight:500}.no-data{color:#6c757d;font-style:italic;padding:2rem;text-align:center}.users-stats{grid-gap:1.5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:2rem}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem;text-align:center}.stat-card h3{color:#667eea;font-size:2rem;font-weight:700;margin:0}.stat-card p{color:#6c757d;font-size:.9rem;margin:.5rem 0 0}.users-table{overflow-x:auto;position:relative}.users-table table{border-collapse:collapse;width:100%}.users-table td,.users-table th{border-bottom:1px solid #e9ecef;padding:1rem;text-align:left}.users-table th{background:#f8f9fa;color:#495057;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.users-table td{vertical-align:top}.user-info strong{color:#2c3e50;display:block;font-weight:600;margin-bottom:.25rem}.user-info small{color:#6c757d;font-size:.85rem;text-transform:capitalize}.role-badge{border-radius:15px;font-size:.8rem;font-weight:500;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.role-patient{background:#e3f2fd;color:#1976d2}.role-doctor{background:#f3e5f5;color:#7b1fa2}.role-admin{background:#fff3e0;color:#f57c00}.status-badge{border-radius:15px;font-size:.8rem;font-weight:500;padding:.25rem .75rem;text-transform:uppercase}.status-badge.active{background:#d4edda;color:#155724}.status-badge.inactive{background:#f8d7da;color:#721c24}.action-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.action-buttons button{border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;padding:.35rem .75rem;transition:all .2s ease}.action-buttons button:disabled{cursor:not-allowed;opacity:.6}.btn-view{background:#17a2b8;color:#fff}.btn-view:hover:not(:disabled){background:#138496}.btn-edit{background:#ffc107;color:#212529}.btn-edit:hover:not(:disabled){background:#e0a800}.btn-delete{background:#dc3545;color:#fff}.btn-delete:hover:not(:disabled){background:#c82333}@media (max-width:768px){.users-header{align-items:stretch;flex-direction:column}.users-controls{flex-wrap:wrap;justify-content:space-between}.search-input{min-width:150px}.users-stats{grid-template-columns:repeat(2,1fr)}.action-buttons{flex-direction:column;gap:.25rem}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 15px 35px #0000001a;max-width:400px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-header h1{color:#2c3e50;font-size:2.2rem;font-weight:600;margin-bottom:10px}.login-header p{color:#7f8c8d;font-size:1rem;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{gap:8px}.form-group label{color:#2c3e50}.form-group input{border:2px solid #e1e8ed;border-radius:8px;font-size:1rem;padding:12px 16px;transition:border-color .3s ease,box-shadow .3s ease}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input::placeholder{color:#95a5a6}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:14px 20px;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea4d;transform:translateY(-2px)}.login-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.error-message{border-left:4px solid #e53e3e;border-radius:6px;color:#c53030}.login-footer{border-top:1px solid #e1e8ed;margin-top:25px;padding-top:20px;text-align:center}.login-footer p{color:#7f8c8d;font-size:.9rem;margin:0}.register-link{color:#667eea;font-weight:500;margin-left:4px;text-decoration:none}.register-link:hover{color:#5a67d8;text-decoration:underline}@media (max-width:480px){.login-container{padding:10px}.login-card{padding:30px 20px}.login-header h1{font-size:1.8rem}}.register-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.register-card{background:#fff;border-radius:10px;box-shadow:0 15px 35px #0000001a;margin:0 auto;max-width:600px;padding:40px;width:100%}.register-header{margin-bottom:30px;text-align:center}.register-header h1{color:#333;font-size:2rem;font-weight:600;margin-bottom:8px}.register-header p{color:#666;font-size:1rem;margin:0}.register-form{display:flex;flex-direction:column;gap:20px}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column}.form-group label{color:#333;font-size:.95rem;font-weight:500;margin-bottom:5px}.form-group input,.form-group select{background-color:#fff;border:2px solid #e1e5e9;border-radius:8px;font-size:1rem;padding:12px 16px;transition:all .3s ease}.form-group input:focus,.form-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group input::placeholder{color:#aaa}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:.9rem;padding:12px 16px;text-align:center}.register-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin-top:10px;padding:14px 24px;transition:all .3s ease}.register-button:hover{box-shadow:0 5px 15px #667eea4d;transform:translateY(-2px)}.register-button:disabled{background:#ccc;box-shadow:none;cursor:not-allowed;transform:none}.auth-link{color:#666;margin-top:20px;text-align:center}.auth-link a{color:#667eea;font-weight:500;text-decoration:none}.auth-link a:hover{text-decoration:underline}@media (max-width:768px){.register-container{padding:15px}.register-card{padding:30px 25px}.form-row{gap:20px;grid-template-columns:1fr}.register-header h1{font-size:1.75rem}}@media (max-width:480px){.register-card{padding:25px 20px}.register-header h1{font-size:1.5rem}.form-group input,.form-group select{padding:10px 14px}.register-button{font-size:1rem;padding:12px 20px}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.d5116c17.css.map*/