.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar :after,.react-calendar :before{box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:focus,.react-calendar__navigation button:enabled:hover{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__century-view__decades__decade--neighboringCentury,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__month-view__days__day--neighboringMonth{color:#757575}.react-calendar__century-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__year-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__century-view__decades__decade--neighboringCentury:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__month-view__days__day--neighboringMonth:disabled{color:#cdcdcd}.react-calendar__tile:enabled:focus,.react-calendar__tile:enabled:hover{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:focus,.react-calendar__tile--now:enabled:hover{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:focus,.react-calendar__tile--hasActive:enabled:hover{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:focus,.react-calendar__tile--active:enabled:hover{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}.appointment-manager{width:100%;background-color:#0000}.appointment-manager .booking-mode-info{margin-bottom:24px;padding:16px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;border:1px solid #bae6fd}.appointment-manager .booking-mode-info h3{color:#0369a1;margin:0 0 4px;font-size:1.1rem;font-weight:700}.appointment-manager .booking-mode-info p{color:#075985;margin:0;font-size:.9rem;opacity:.9}.appointment-manager .shift-selection-tabs{display:flex;gap:12px;margin-bottom:24px;padding-bottom:8px;overflow-x:auto;scrollbar-width:thin}.appointment-manager .shift-selection-tabs::-webkit-scrollbar{height:4px}.appointment-manager .shift-selection-tabs .shift-tab{display:flex;flex-direction:column;align-items:center;padding:12px 20px;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s;min-width:150px;text-align:center;position:relative}.appointment-manager .shift-selection-tabs .shift-tab:hover:not(:disabled){border-color:#3b82f6;background:#f0f7ff;transform:translateY(-2px)}.appointment-manager .shift-selection-tabs .shift-tab.active{border-color:#3b82f6;background:#eff6ff;box-shadow:0 4px 12px #3b82f626}.appointment-manager .shift-selection-tabs .shift-tab.active .shift-name{color:#3b82f6}.appointment-manager .shift-selection-tabs .shift-tab.inactive{opacity:.6;cursor:not-allowed;background:#f8fafc;border-style:dashed}.appointment-manager .shift-selection-tabs .shift-tab.inactive:hover{transform:none}.appointment-manager .shift-selection-tabs .shift-tab .shift-name{font-weight:700;font-size:.95rem;color:#1e293b;margin-bottom:2px}.appointment-manager .shift-selection-tabs .shift-tab .shift-time{font-size:.8rem;color:#64748b}.appointment-manager .shift-selection-tabs .shift-tab .inactive-badge{position:absolute;top:-6px;right:-6px;background:#64748b;color:#fff;font-size:10px;padding:2px 6px;border-radius:4px;text-transform:uppercase}.appointment-grid{display:grid;grid-template-columns:350px 1fr;grid-gap:24px;gap:24px;align-items:start}@media(max-width:992px){.appointment-grid{grid-template-columns:1fr}}.calendar-section .custom-calendar{width:100%!important;max-width:100%;background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 12px #0000000d;padding:1rem;font-family:inherit}.calendar-section .custom-calendar .react-calendar__navigation{margin-bottom:1rem}.calendar-section .custom-calendar .react-calendar__navigation button{color:#1e293b;font-weight:600;border-radius:8px}.calendar-section .custom-calendar .react-calendar__navigation button:enabled:focus,.calendar-section .custom-calendar .react-calendar__navigation button:enabled:hover{background-color:#f1f5f9}.calendar-section .custom-calendar .react-calendar__month-view__weekdays{font-weight:700;text-transform:uppercase;font-size:.75rem;color:#94a3b8}.calendar-section .custom-calendar .react-calendar__month-view__weekdays abbr{text-decoration:none}.calendar-section .custom-calendar .react-calendar__tile{padding:12px 8px;font-size:.9rem;border-radius:8px;transition:all .2s}.calendar-section .custom-calendar .react-calendar__tile:enabled:hover{background-color:#f1f5f9;color:#3b82f6}.calendar-section .custom-calendar .react-calendar__tile--active{background:#3b82f6!important;color:#fff!important;box-shadow:0 4px 12px #3b82f64d}.calendar-section .custom-calendar .react-calendar__tile--now{background:#eff6ff;color:#3b82f6;font-weight:700}.calendar-section .custom-calendar .react-calendar__tile:disabled{background-color:#0000;color:#cbd5e0;opacity:.4}.calendar-section .queue-info{margin-top:20px;padding:16px;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.calendar-section .queue-info h3{font-size:1rem;color:#334155;margin:0 0 8px}.calendar-section .queue-info p{font-size:.85rem;color:#64748b;margin:0}.calendar-section .queue-info p.not-working-day{color:#ef4444;font-weight:600}.queue-section,.slots-section{background:#fff;padding:24px;border-radius:16px;border:1px solid #e2e8f0;box-shadow:0 4px 12px #0000000d}.queue-section h4,.slots-section h4{margin:0 0 20px;color:#1e293b;font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:10px}.queue-section h4:before,.slots-section h4:before{content:"";width:4px;height:18px;background:#3b82f6;border-radius:2px}.time-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));grid-gap:12px;gap:12px}.time-slots .time-slot{background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;padding:12px 8px;text-align:center;transition:all .2s cubic-bezier(.4,0,.2,1)}.time-slots .time-slot .slot-time{font-weight:700;font-size:.9rem;color:#334155}.time-slots .time-slot:not(.occupied):not(.past-slot):hover{border-color:#3b82f6;background:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #3b82f61a}.time-slots .time-slot.occupied{background-color:#f1f5f9;border-color:#e2e8f0;cursor:not-allowed;opacity:.7}.time-slots .time-slot.occupied .slot-time{color:#94a3b8}.time-slots .time-slot.occupied:after{content:"Reserved";display:block;font-size:10px;color:#94a3b8;font-weight:600}.time-slots .time-slot.past-slot{background-color:#0000;border:2px dashed #e2e8f0;color:#cbd5e0;cursor:not-allowed}.time-slots .time-slot.past-slot .slot-time{color:#cbd5e0}.time-slots .time-slot.past-slot .slot-status{display:none}.appointments-table-container{margin-top:16px;overflow-x:auto;border-radius:12px;border:1px solid #e2e8f0}.appointments-table-container .appointments-table{width:100%;border-collapse:collapse}.appointments-table-container .appointments-table th{background:#f8fafc;padding:12px 16px;text-align:left;font-size:.8rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.appointments-table-container .appointments-table td{padding:14px 16px;border-top:1px solid #f1f5f9;font-size:.9rem;color:#334155}.appointments-table-container .appointments-table .status-badge{padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:600}.appointments-table-container .appointments-table .status-badge.scheduled{background:#dbeafe;color:#1e40af}.appointments-table-container .appointments-table .status-badge.confirmed{background:#dcfce7;color:#166534}.appointments-table-container .appointments-table .status-badge.cancelled{background:#fee2e2;color:#991b1b}.bookings-list{display:flex;flex-direction:column;gap:12px}.booking-item{display:flex;align-items:center;background:#fff;padding:16px;border-radius:12px;border:1px solid #e2e8f0;transition:all .2s}.booking-item:hover{border-color:#3b82f6;box-shadow:0 4px 12px #0000000d}.booking-item .queue-number{width:36px;height:36px;background:#3b82f6;color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;margin-right:16px;flex-shrink:0}.booking-item .booking-info{flex:1 1}.booking-item .booking-info .patient-name{display:block;font-weight:700;color:#1e293b;font-size:1rem;margin-bottom:4px}.booking-item .booking-info .booking-details{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:#64748b;align-items:center}.booking-item .booking-info .booking-details i{color:#3b82f6;margin-right:4px}.booking-item .status-badge{padding:4px 12px;border-radius:8px;font-size:.75rem;font-weight:700;background:#f1f5f9;color:#475569}.booking-item .status-badge.waiting{background:#fff7ed;color:#9a3412}.booking-item .status-badge.completed{background:#f0fdf4;color:#166534}.add-patient-button{width:100%;margin-top:16px;padding:14px;background:#3b82f6;color:#fff;border:none;border-radius:12px;font-weight:700;cursor:pointer;transition:all .2s}.add-patient-button:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.queue-filter{display:flex;gap:8px;margin-bottom:20px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.queue-filter::-webkit-scrollbar{display:none}.queue-filter .filter-button{padding:8px 16px;border-radius:8px;background:#f1f5f9;border:none;color:#64748b;font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:all .2s}.queue-filter .filter-button:hover{background:#e2e8f0}.queue-filter .filter-button.active{background:#3b82f6;color:#fff}.modal-overlay{z-index:2500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#0006;position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.modal-overlay .modal-content{background:#fff;border-radius:20px;padding:32px;width:90%;max-width:450px;box-shadow:0 25px 50px -12px #00000040;animation:dpm-slide-up .4s cubic-bezier(.34,1.56,.64,1)}.modal-overlay .modal-content .modal-close-icon{position:absolute;top:16px;right:16px;width:36px;height:36px;background:#f1f5f9;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:all .2s;z-index:10}.modal-overlay .modal-content .modal-close-icon:hover{background:#e2e8f0;color:#1e293b;transform:rotate(90deg)}.modal-overlay .modal-content .modal-close-icon i{font-size:16px}.modal-overlay .modal-content h2{font-size:1.6rem;font-weight:800;color:#1e293b;margin-bottom:8px;text-align:center;padding-top:8px}.modal-overlay .modal-content .modal-subtitle{text-align:center;color:#64748b;font-size:.95rem;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.modal-overlay .modal-content .modal-subtitle strong{color:#3b82f6}.modal-overlay .modal-content .form-group{margin-bottom:18px;display:flex;flex-direction:column}.modal-overlay .modal-content .form-group label{font-weight:700;font-size:.85rem;color:#475569;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.modal-overlay .modal-content .form-group input,.modal-overlay .modal-content .form-group select,.modal-overlay .modal-content .form-group textarea{width:100%;box-sizing:border-box;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:12px 16px;font-size:1rem;color:#1e293b;transition:all .2s;font-family:inherit}.modal-overlay .modal-content .form-group input::placeholder,.modal-overlay .modal-content .form-group select::placeholder,.modal-overlay .modal-content .form-group textarea::placeholder{color:#94a3b8}.modal-overlay .modal-content .form-group input:focus,.modal-overlay .modal-content .form-group select:focus,.modal-overlay .modal-content .form-group textarea:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 4px #3b82f61a}.modal-overlay .modal-content .form-group input:disabled,.modal-overlay .modal-content .form-group select:disabled,.modal-overlay .modal-content .form-group textarea:disabled{background:#f1f5f9;cursor:not-allowed;color:#94a3b8;opacity:.7}.modal-overlay .modal-content .form-group textarea{min-height:100px;resize:none}.modal-overlay .modal-content .modal-actions{margin-top:32px;display:flex;flex-direction:column;gap:12px}.modal-overlay .modal-content .modal-actions button{width:100%;height:54px;padding:0 24px;border-radius:12px;font-weight:700;font-size:1.1rem;cursor:pointer;transition:all .2s;border:none}.modal-overlay .modal-content .modal-actions button.add-button,.modal-overlay .modal-content .modal-actions button.book-button{background:#3b82f6;color:#fff}.modal-overlay .modal-content .modal-actions button.add-button:hover,.modal-overlay .modal-content .modal-actions button.book-button:hover{background:#2563eb;transform:translateY(-1px);box-shadow:0 8px 15px #3b82f64d}.modal-overlay .modal-content .modal-actions button.add-button:active,.modal-overlay .modal-content .modal-actions button.book-button:active{transform:translateY(0)}.modal-overlay .modal-content .modal-actions button.cancel-button{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.modal-overlay .modal-content .modal-actions button.cancel-button:hover{background:#e2e8f0;color:#1e293b}