@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);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}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.login-page{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:20px;position:relative}.background-shapes{height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:0}.shape{animation:float 6s ease-in-out infinite;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#ffffff1a;border-radius:50%;position:absolute}.shape-1{animation-delay:0s;height:300px;left:-150px;top:-150px;width:300px}.shape-2{animation-delay:2s;height:200px;right:-100px;top:70%;width:200px}.shape-3{animation-delay:4s;bottom:-75px;height:150px;left:30%;width:150px}@keyframes float{0%,to{opacity:.7;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-20px) scale(1.05)}}.login-container{animation:slideUp .6s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:24px;box-shadow:0 20px 60px #0000001a,0 8px 32px #0000001a;max-width:440px;padding:48px;position:relative;width:100%;z-index:1}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:40px;text-align:center}.logo-container{flex-direction:column}.logo-container,.logo-icon{align-items:center;display:flex}.logo-icon{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 10px 30px #667eea4d;height:80px;justify-content:center;margin-bottom:20px;width:80px}.medical-icon{stroke-width:2;color:#fff;height:40px;width:40px}.brand-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#1a202c;font-size:2.2rem;font-weight:700;margin-bottom:8px}.brand-subtitle{color:#64748b;font-size:1rem;font-weight:500}.login-form{margin-bottom:32px}.form-group{margin-bottom:24px}.form-label{color:#374151;display:block;font-size:.95rem;font-weight:600;margin-bottom:8px}.input-container{position:relative}.input-icon{color:#9ca3af;left:16px;position:absolute;top:50%;transform:translateY(-50%);z-index:2}.input-icon svg{stroke-width:2;height:20px;width:20px}.form-input{background:#fff;border:2px solid #e5e7eb;border-radius:12px;color:#1f2937;font-size:1rem;font-weight:500;padding:16px 16px 16px 52px;transition:all .3s ease;width:100%}.form-input:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none;transform:translateY(-1px)}.form-input:hover{border-color:#d1d5db}.form-input::placeholder{color:#9ca3af;font-weight:400}.password-toggle{background:none;border:none;border-radius:8px;color:#9ca3af;cursor:pointer;padding:8px;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:all .2s ease}.password-toggle:hover{background:#f3f4f6;color:#667eea}.password-toggle svg{stroke-width:2;height:18px;width:18px}.form-options{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.checkbox-container{align-items:center;color:#6b7280;cursor:pointer;display:flex;font-size:.9rem;font-weight:500}.checkbox{accent-color:#667eea;cursor:pointer;height:18px;margin-right:8px;width:18px}.forgot-link{color:#667eea;font-size:.9rem;font-weight:600;text-decoration:none;transition:color .2s ease}.forgot-link:hover{color:#764ba2}.error-message{animation:shake .5s ease-in-out;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;border-radius:12px;color:#dc2626;font-size:.9rem;font-weight:500;gap:12px;margin-bottom:24px;padding:16px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.error-icon{stroke-width:2;flex-shrink:0;height:20px;width:20px}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s ease;width:100%}.submit-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.submit-button:hover:not(:disabled){background:linear-gradient(135deg,#5a67d8,#6b46c1);box-shadow:0 12px 40px #667eea66;transform:translateY(-2px)}.submit-button:hover:not(:disabled):before{left:100%}.submit-button:disabled{cursor:not-allowed;opacity:.7;transform:none}.button-content,.loading-content{align-items:center;display:flex;gap:8px;justify-content:center}.arrow-icon{stroke-width:2;height:18px;transition:transform .2s ease;width:18px}.submit-button:hover .arrow-icon{transform:translateX(4px)}.spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.login-footer{text-align:center}.divider{background:linear-gradient(90deg,#0000,#e5e7eb,#0000);height:1px;margin:24px 0 20px}.footer-text{color:#6b7280;font-size:.85rem;font-weight:500;margin-bottom:16px}.security-badges{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.badge{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:20px;color:#0369a1;font-size:.75rem;font-weight:600;padding:6px 12px}@media (max-width:480px){.login-container{border-radius:20px;margin:16px;padding:32px 24px}.brand-title{font-size:1.8rem}.form-input{padding:14px 14px 14px 48px}.submit-button{padding:14px 20px}.security-badges{align-items:center;flex-direction:column}}@media (prefers-contrast:high){.form-input{border-width:3px}.submit-button{border:2px solid #667eea}}.forgot-link:focus,.password-toggle:focus,.submit-button:focus{outline:2px solid #667eea;outline-offset:2px}@media (prefers-reduced-motion:reduce){.login-container,.shape{animation:none}.submit-button:hover{transform:none}}.calendar-container{background-color:#f8fafc;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;min-height:100vh;padding:1rem;transition:all .3s ease}.calendar-container.dark-mode{background-color:#1a202c;color:#e2e8f0}.calendar-container.dark-mode .calendar-widget,.calendar-container.dark-mode .day-cell,.calendar-container.dark-mode .top-bar{background-color:#2d3748;border-color:#4a5568}.calendar-container.dark-mode .day-cell{color:#e2e8f0}.calendar-container.dark-mode .day-cell:hover{background-color:#4a5568;border-color:#718096}.calendar-container.dark-mode .other-month{background-color:#1a202c;color:#718096}.calendar-container.dark-mode .mobile-day{background-color:#2d3748;border-color:#4a5568}.calendar-container.dark-mode .mobile-appointment,.calendar-container.dark-mode .week-header{background-color:#4a5568}.calendar-container.dark-mode .nav-button{background-color:#4a5568;border-color:#718096;color:#e2e8f0}.calendar-container.dark-mode .nav-button:hover{background-color:#718096;border-color:#a0aec0}.calendar-container.dark-mode .mobile-date-picker{background-color:#2d3748;border-color:#4a5568;color:#e2e8f0}.w-5{width:1.25rem}.h-5,.w-5{height:1.25rem}.w-6{width:1.5rem}.h-6,.w-6{height:1.5rem}.top-bar{background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #00000012;justify-content:space-between;margin-bottom:1.5rem;padding:1.5rem 2rem}.top-bar,.top-bar-actions{align-items:center;display:flex}.top-bar-actions{gap:1rem}.dark-mode-toggle,.filter-toggle{align-items:center;background-color:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;display:flex;justify-content:center;padding:.75rem;position:relative;transition:all .3s ease}.dark-mode-toggle:hover,.filter-toggle:hover{background-color:#edf2f7;border-color:#cbd5e0;transform:translateY(-2px)}.filter-toggle.has-filters{background-color:#ebf8ff;border-color:#4299e1;color:#2b6cb0}.filter-count{align-items:center;background-color:#e53e3e;border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:700;height:20px;justify-content:center;position:absolute;right:-8px;top:-8px;width:20px}.filter-panel{background-color:#fff;box-shadow:-4px 0 20px #0000001a;height:100vh;overflow-y:auto;padding:2rem;position:fixed;right:-400px;top:0;transition:right .3s ease;width:350px;z-index:1000}.filter-panel.show{right:0}.calendar-container.dark-mode .filter-panel{background-color:#2d3748;color:#e2e8f0}.filter-header{align-items:center;border-bottom:2px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.calendar-container.dark-mode .filter-header{border-bottom-color:#4a5568}.filter-header h3{font-size:1.25rem;font-weight:700;margin:0}.close-filter{align-items:center;background:none;border:none;border-radius:50%;color:#a0aec0;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;padding:0;transition:all .2s ease;width:40px}.close-filter:hover{background-color:#f7fafc;color:#4a5568}.calendar-container.dark-mode .close-filter:hover{background-color:#4a5568;color:#e2e8f0}.filter-group{margin-bottom:1.5rem}.filter-group label{color:#4a5568;display:block;font-weight:600;margin-bottom:.5rem}.calendar-container.dark-mode .filter-group label{color:#e2e8f0}.filter-group select{background-color:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:1rem;padding:.75rem;transition:all .2s ease;width:100%}.calendar-container.dark-mode .filter-group select{background-color:#4a5568;border-color:#718096;color:#e2e8f0}.filter-group select:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.filter-actions{border-top:1px solid #e2e8f0;margin-top:2rem;padding-top:1.5rem}.calendar-container.dark-mode .filter-actions{border-top-color:#4a5568}.clear-filters-btn{background-color:#edf2f7;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-weight:600;margin-bottom:1rem;padding:.75rem;transition:all .2s ease;width:100%}.clear-filters-btn:hover{background-color:#e2e8f0;transform:translateY(-1px)}.calendar-container.dark-mode .clear-filters-btn{background-color:#4a5568;border-color:#718096;color:#e2e8f0}.calendar-container.dark-mode .clear-filters-btn:hover{background-color:#718096}.active-filters{display:flex;flex-direction:column;gap:.5rem}.filter-tag{background-color:#ebf8ff;border:1px solid #bee3f8;border-radius:20px;color:#2b6cb0;font-size:.875rem;font-weight:600;padding:.375rem .75rem}.calendar-container.dark-mode .filter-tag{background-color:#2c5282;border-color:#3182ce;color:#bee3f8}.logo{align-items:center;color:#2d3748;display:flex;font-size:1.5rem;font-weight:700}.logo svg{color:#4299e1;margin-right:.75rem}.logout-button{align-items:center;background:linear-gradient(135deg,#e53e3e,#c53030);border:none;border-radius:8px;box-shadow:0 2px 8px #e53e3e4d;color:#fff;cursor:pointer;display:flex;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.logout-button:hover{background:linear-gradient(135deg,#c53030,#9c2626);box-shadow:0 4px 12px #e53e3e66;transform:translateY(-2px)}.logout-button svg{margin-right:.5rem}.calendar-widget{background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #00000012;padding:2rem}.calendar-header{align-items:center;border-bottom:2px solid #f1f5f9;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.calendar-header-title{color:#2d3748;flex:1 1;font-size:1.5rem;font-weight:700;margin:0;text-align:center}.nav-button{align-items:center;background-color:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;display:flex;justify-content:center;padding:.75rem;transition:all .3s ease}.nav-button:hover{background-color:#edf2f7;border-color:#cbd5e0;box-shadow:0 4px 12px #0000001a;color:#2d3748;transform:translateY(-2px)}.nav-button:active{transform:translateY(0)}.week-header{background-color:#f8fafc;border-radius:8px;display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:1rem;padding:.5rem 0}.week-day{color:#4a5568;font-size:.9rem;font-weight:700;letter-spacing:.5px;padding:.75rem;text-align:center;text-transform:uppercase}.calendar-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(7,1fr)}.day-cell{background-color:#fff;border:2px solid #f1f5f9;border-radius:8px;cursor:pointer;min-height:120px;overflow:hidden;padding:.75rem;position:relative;transition:all .3s ease}.day-cell:hover{background-color:#f8fafc;border-color:#cbd5e0;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.day-number{color:#2d3748;font-size:1rem;font-weight:700;margin-bottom:.5rem}.today{background:linear-gradient(135deg,#ebf8ff,#dbeafe);border:2px solid #4299e1;position:relative}.today:before{background:linear-gradient(90deg,#4299e1,#3182ce);content:"";height:3px;left:0;position:absolute;right:0;top:0}.today .day-number{color:#2b6cb0;font-weight:800}.other-month{background-color:#f9fafb;border-color:#f3f4f6;color:#a0aec0}.other-month:hover{background-color:#f3f4f6}.has-appointments{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.has-appointments:after{background:linear-gradient(135deg,#4299e1,#3182ce);border-radius:50%;box-shadow:0 2px 4px #4299e166;content:"";height:8px;position:absolute;right:8px;top:8px;width:8px}.appointment{align-items:center;background-color:#ffffffe6;border-left:4px solid;border-radius:6px;box-shadow:0 1px 3px #0000001a;cursor:pointer;display:flex;font-size:.75rem;justify-content:space-between;margin-bottom:.25rem;overflow:hidden;padding:.375rem;position:relative;text-overflow:ellipsis;transition:all .2s ease;white-space:nowrap}.appointment-time{font-size:.7rem;font-weight:700;margin-right:.375rem}.appointment-patient{flex:1 1;font-weight:500;overflow:hidden;text-overflow:ellipsis}.appointment-delete{align-items:center;background:none;border:none;border-radius:50%;color:#e53e3e;cursor:pointer;display:flex;font-size:1rem;height:18px;justify-content:center;margin-left:.25rem;opacity:0;padding:.125rem .25rem;transition:all .2s ease;width:18px}.appointment:hover .appointment-delete{opacity:1}.appointment-delete:hover{background-color:#fee2e2;color:#dc2626}.appointment.doctor-Dr-Smith{background:linear-gradient(135deg,#ebf8ff,#dbeafe);border-left-color:#3182ce;color:#2c5282}.appointment.doctor-Dr-Johnson{background:linear-gradient(135deg,#fff5f5,#fed7d7);border-left-color:#e53e3e;color:#742a2a}.appointment.doctor-Dr-Williams{background:linear-gradient(135deg,#f0fff4,#c6f6d5);border-left-color:#38a169;color:#22543d}.appointment.doctor-Dr-Brown{background:linear-gradient(135deg,#faf5ff,#e9d8fd);border-left-color:#805ad5;color:#44337a}.appointment.doctor-Dr-Davis{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-left-color:#d69e2e;color:#744210}.appointment.doctor-Dr-Wilson{background:linear-gradient(135deg,#f0f9ff,#dbeafe);border-left-color:#0ea5e9;color:#0c4a6e}.appointment.doctor-Dr-Anderson{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-left-color:#ec4899;color:#831843}.appointment:hover{background-color:#fff;box-shadow:0 4px 12px #00000026;transform:translateX(4px) translateY(-1px)}.more-appointments{background:linear-gradient(135deg,#4299e11a,#3182ce26);border-radius:4px;color:#4299e1;cursor:pointer;font-size:.7rem;font-weight:600;padding:.25rem;text-align:center;transition:all .2s ease}.more-appointments:hover{background:linear-gradient(135deg,#4299e133,#3182ce40);transform:translateY(-1px)}.mobile-container{margin-top:1.5rem}.mobile-date-picker{background-color:#fff;border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:1rem;font-weight:600;margin-bottom:1.5rem;padding:1rem;transition:all .2s ease;width:100%}.mobile-date-picker:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.mobile-date-picker.today{background:linear-gradient(135deg,#ebf8ff,#dbeafe);border-color:#3182ce;font-weight:700}.mobile-day{background-color:#fff;border:2px solid #e2e8f0;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem}.mobile-day-header{align-items:center;color:#2d3748;display:flex;font-size:1.1rem;font-weight:700;justify-content:space-between;margin-bottom:1.5rem}.no-appointments{color:#718096;font-style:italic;padding:2rem 0;text-align:center}.mobile-appointment{background-color:#f7fafc;border-left:4px solid #0000;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:.75rem;padding:1rem;transition:all .3s ease}.mobile-appointment:hover{background-color:#edf2f7;box-shadow:0 4px 12px #00000026;transform:translateX(4px)}.mobile-appointment-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.mobile-appointment-time{align-items:center;color:#2d3748;display:flex;font-size:1rem;font-weight:700}.mobile-appointment-time:before{border-radius:50%;box-shadow:0 2px 4px #0003;content:"";display:inline-block;height:10px;margin-right:.75rem;width:10px}.mobile-appointment-delete{align-items:center;background:none;border:none;border-radius:50%;color:#e53e3e;cursor:pointer;display:flex;font-size:1.25rem;height:32px;justify-content:center;padding:.25rem;transition:all .2s ease;width:32px}.mobile-appointment-delete:hover{background-color:#fee2e2;color:#dc2626}.mobile-appointment.doctor-Dr-Smith{background:linear-gradient(135deg,#ebf8ff,#dbeafe);border-left-color:#3182ce}.mobile-appointment.doctor-Dr-Smith .mobile-appointment-time:before{background-color:#3182ce}.mobile-appointment.doctor-Dr-Johnson{background:linear-gradient(135deg,#fff5f5,#fed7d7);border-left-color:#e53e3e}.mobile-appointment.doctor-Dr-Johnson .mobile-appointment-time:before{background-color:#e53e3e}.mobile-appointment.doctor-Dr-Williams{background:linear-gradient(135deg,#f0fff4,#c6f6d5);border-left-color:#38a169}.mobile-appointment.doctor-Dr-Williams .mobile-appointment-time:before{background-color:#38a169}.mobile-appointment.doctor-Dr-Brown{background:linear-gradient(135deg,#faf5ff,#e9d8fd);border-left-color:#805ad5}.mobile-appointment.doctor-Dr-Brown .mobile-appointment-time:before{background-color:#805ad5}.mobile-appointment.doctor-Dr-Davis{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-left-color:#d69e2e}.mobile-appointment.doctor-Dr-Davis .mobile-appointment-time:before{background-color:#d69e2e}.mobile-appointment.doctor-Dr-Wilson{background:linear-gradient(135deg,#f0f9ff,#dbeafe);border-left-color:#0ea5e9}.mobile-appointment.doctor-Dr-Wilson .mobile-appointment-time:before{background-color:#0ea5e9}.mobile-appointment.doctor-Dr-Anderson{background:linear-gradient(135deg,#fdf2f8,#fce7f3);border-left-color:#ec4899}.mobile-appointment.doctor-Dr-Anderson .mobile-appointment-time:before{background-color:#ec4899}.mobile-appointment-patient{color:#4a5568;font-weight:600;margin-bottom:.25rem}.mobile-appointment-doctor{color:#718096;font-size:.875rem;margin-bottom:.25rem}.mobile-appointment-reason{border-top:1px dashed #e2e8f0;color:#718096;font-size:.8rem;font-style:italic;margin-top:.5rem;padding-top:.5rem}.add-button{align-items:center;background:linear-gradient(135deg,#4299e1,#3182ce);border:none;border-radius:50%;bottom:2rem;box-shadow:0 8px 25px #4299e166;color:#fff;cursor:pointer;display:flex;height:64px;justify-content:center;position:fixed;right:2rem;transition:all .3s ease;width:64px;z-index:100}.add-button:hover{background:linear-gradient(135deg,#3182ce,#2c5282);box-shadow:0 12px 35px #4299e199;transform:translateY(-4px) scale(1.05)}.add-button:active{transform:translateY(-2px) scale(1.02)}@media (max-width:768px){.calendar-container{padding:.5rem}.top-bar{flex-direction:column;gap:1rem;padding:1rem;text-align:center}.top-bar-actions{justify-content:center;order:-1;width:100%}.logo{font-size:1.25rem}.calendar-widget{padding:1rem}.calendar-header-title{font-size:1.25rem}.day-cell{min-height:80px;padding:.5rem}.week-day{font-size:.8rem;padding:.5rem}.filter-panel{right:-100%;width:100%}}@media (max-width:640px){.add-button{bottom:1.5rem;height:56px;right:1.5rem;width:56px}.mobile-appointment{padding:.75rem}.mobile-appointment-header{margin-bottom:.375rem}.filter-panel{padding:1rem}.top-bar-actions{gap:.5rem}.dark-mode-toggle,.filter-toggle{padding:.5rem}}@media (prefers-reduced-motion:reduce){.add-button:hover,.appointment:hover,.day-cell:hover,.mobile-appointment:hover,.nav-button:hover{transform:none}}@media (prefers-contrast:high){.appointment{border-left-width:6px}.day-cell{border-width:3px}}.add-button:focus,.appointment-delete:focus,.appointment:focus,.mobile-appointment-delete:focus,.mobile-appointment:focus,.nav-button:focus{outline:2px solid #4299e1;outline-offset:2px}.add-appointment-modal{align-items:center;animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.add-appointment-modal.dark-mode{background-color:#000c}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideIn .3s ease-out;background-color:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow:hidden;padding:0;width:90%}.add-appointment-modal.dark-mode .modal-content{background-color:#2d3748;border-color:#4a5568;color:#e2e8f0}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#edf2f7);border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:2rem 2rem 1rem}.add-appointment-modal.dark-mode .modal-header{background:linear-gradient(135deg,#4a5568,#2d3748);border-bottom-color:#718096}.modal-header h2{color:#2d3748;font-size:1.75rem;font-weight:700;margin:0}.add-appointment-modal.dark-mode .modal-header h2{color:#e2e8f0}.close-button{align-items:center;background:none;border:none;border-radius:50%;color:#a0aec0;cursor:pointer;display:flex;font-size:2rem;height:40px;justify-content:center;padding:0;transition:all .2s ease;width:40px}.close-button:hover{background-color:#f7fafc;color:#4a5568;transform:scale(1.1)}.add-appointment-modal.dark-mode .close-button:hover{background-color:#4a5568;color:#e2e8f0}.appointment-date{background:linear-gradient(135deg,#ebf8ff,#dbeafe);border-left:4px solid #4299e1;border-radius:8px;color:#2c5282;font-size:1rem;font-weight:600;margin:1.5rem 2rem;padding:1rem;text-align:center}.add-appointment-modal.dark-mode .appointment-date{background:linear-gradient(135deg,#2c5282,#2b6cb0);border-left-color:#63b3ed;color:#bee3f8}form{max-height:60vh;overflow-y:auto;padding:0 2rem 2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#4a5568;display:block;font-size:.95rem;font-weight:600;margin-bottom:.5rem}.add-appointment-modal.dark-mode .form-group label{color:#e2e8f0}.form-group input,.form-group select,.form-group textarea{background-color:#fff;border:2px solid #e2e8f0;border-radius:8px;box-sizing:border-box;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:1rem;padding:.875rem;transition:all .2s ease;width:100%}.add-appointment-modal.dark-mode .form-group input,.add-appointment-modal.dark-mode .form-group select,.add-appointment-modal.dark-mode .form-group textarea{background-color:#4a5568;border-color:#718096;color:#e2e8f0}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a;outline:none}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#cbd5e0}.add-appointment-modal.dark-mode .form-group input:hover,.add-appointment-modal.dark-mode .form-group select:hover,.add-appointment-modal.dark-mode .form-group textarea:hover{border-color:#a0aec0}.form-group textarea{font-family:inherit;min-height:100px;resize:vertical}.form-group select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;cursor:pointer;padding-right:3rem}.add-appointment-modal.dark-mode .form-group select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%23e2e8f0' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E")}.form-group input[type=time]{cursor:pointer}.form-group input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(.5);margin-left:.5rem}.add-appointment-modal.dark-mode .form-group input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.8)}.form-group .error{background-color:#fef5f5;border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1a}.add-appointment-modal.dark-mode .form-group .error{background-color:#742a2a;border-color:#fc8181}.error-message{align-items:center;color:#e53e3e;display:block;display:flex;font-size:.85rem;font-weight:600;margin-top:.5rem}.add-appointment-modal.dark-mode .error-message{color:#fc8181}.error-message:before{content:"⚠️";margin-right:.5rem}.form-actions{border-top:1px solid #e2e8f0;display:flex;gap:1rem;justify-content:space-between;margin-top:2rem;padding-top:1.5rem}.add-appointment-modal.dark-mode .form-actions{border-top-color:#718096}.cancel-button,.save-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;flex:1 1;font-family:inherit;font-size:1rem;font-weight:600;justify-content:center;min-height:48px;padding:.875rem 1.5rem;transition:all .3s ease}.cancel-button{background-color:#f7fafc;border:2px solid #e2e8f0;color:#4a5568}.add-appointment-modal.dark-mode .cancel-button{background-color:#4a5568;border-color:#718096;color:#e2e8f0}.cancel-button:hover{background-color:#edf2f7;border-color:#cbd5e0;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.add-appointment-modal.dark-mode .cancel-button:hover{background-color:#718096;border-color:#a0aec0}.save-button{background:linear-gradient(135deg,#4299e1,#3182ce);border:2px solid #4299e1;color:#fff}.save-button:hover{background:linear-gradient(135deg,#3182ce,#2c5282);border-color:#3182ce;box-shadow:0 8px 25px #4299e166;transform:translateY(-2px)}.cancel-button:active,.save-button:active{transform:translateY(0)}.save-button:disabled{cursor:not-allowed}.save-button:disabled,.save-button:disabled:hover{background:#a0aec0;border-color:#a0aec0;transform:none}.save-button:disabled:hover{box-shadow:none}@media (max-width:640px){.modal-content{border-radius:8px;margin:1rem;width:calc(100% - 2rem)}.modal-header{padding:1.5rem 1.5rem 1rem}.modal-header h2{font-size:1.5rem}.appointment-date{font-size:.9rem;margin:1rem 1.5rem}form{padding:0 1.5rem 1.5rem}.form-actions{flex-direction:column}.cancel-button,.save-button{width:100%}}@media (max-width:480px){.modal-content{margin:.5rem;width:calc(100% - 1rem)}.modal-header{padding:1rem}.modal-header h2{font-size:1.25rem}form{padding:0 1rem 1rem}.appointment-date{margin:1rem}}@media (prefers-reduced-motion:reduce){.add-appointment-modal,.modal-content{animation:none}.cancel-button:hover,.close-button:hover,.save-button:hover{transform:none}}@media (prefers-contrast:high){.form-group input,.form-group select,.form-group textarea,.save-button{border-width:3px}.error-message{font-weight:700}}.cancel-button:focus,.close-button:focus,.save-button:focus{outline:2px solid #4299e1;outline-offset:2px}form::-webkit-scrollbar{width:6px}form::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}form::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}form::-webkit-scrollbar-thumb:hover{background:#a0aec0}
/*# sourceMappingURL=main.e624d72d.css.map*/