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:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;transition:background-color .3s ease,color .3s ease}:root{--bg-body:#f9fafb;--bg-primary:#fff;--bg-secondary:#f3f4f6;--bg-accent:#eff6ff;--bg-modal-overlay:#00000080;--text-primary:#111827;--text-secondary:#374151;--text-tertiary:#6b7280;--text-accent:#2563eb;--text-error:#dc2626;--text-appointment-item:#1e40af;--border-color:#e5e7eb;--border-input:#d1d5db;--border-today:#93c5fd;--shadow-sm:0 1px 3px 0 #0000001a;--shadow-md:0 4px 6px -1px #0000001a;--shadow-xl:0 25px 50px -12px #00000040}body.dark-mode{--bg-body:#1a202c;--bg-primary:#2d3748;--bg-secondary:#4a5568;--bg-accent:#2c5282;--bg-modal-overlay:#000000b3;--text-primary:#e2e8f0;--text-secondary:#cbd5e0;--text-tertiary:#a0aec0;--text-accent:#63b3ed;--text-error:#fc8181;--text-appointment-item:#90cdf4;--border-color:#4a5568;--border-input:#6b7280;--border-today:#4299e1;--shadow-sm:0 1px 3px 0 #0000004d;--shadow-md:0 4px 6px -1px #0000004d;--shadow-xl:0 25px 50px -12px #00000080}body{background-color:#f9fafb;background-color:var(--bg-body);color:#374151;color:var(--text-secondary)}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.login-container{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:3rem 1rem}.login-form-wrapper{background:#fff;background:var(--bg-primary);border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow-md);max-width:28rem;padding:2rem;width:100%}.login-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem;margin-top:1.5rem}.login-title{color:#111827;color:var(--text-primary);font-size:1.875rem;font-weight:800}.login-subtitle{color:#6b7280;color:var(--text-tertiary);font-size:.875rem;margin-bottom:2rem;text-align:center}.login-form{display:flex;flex-direction:column;gap:1rem}.input-group{position:relative}.form-input{appearance:none;background-color:#fff;background-color:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-input);border-radius:.375rem;color:#111827;color:var(--text-primary);font-size:.875rem;padding:.75rem;transition:all .15s ease-in-out;width:100%}.form-input:focus{border-color:#2563eb;border-color:var(--text-accent);box-shadow:0 0 0 2px #2563eb;box-shadow:0 0 0 2px var(--text-accent);outline:none}.form-input::placeholder{color:#6b7280;color:var(--text-tertiary)}.input-group:first-child .form-input{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.input-group:last-child .form-input{border-top-left-radius:0;border-top-right-radius:0}.error-message{color:#dc2626;color:var(--text-error);font-size:.875rem;margin:.5rem 0;text-align:center}.login-button{background-color:#3b82f6;border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.75rem 1rem;transition:background-color .15s ease-in-out;width:100%}.login-button:hover{background-color:#2563eb}.demo-credentials{color:#6b7280;color:var(--text-tertiary);font-size:.75rem;margin-top:1rem;text-align:center}.app-container{min-height:100vh}.app-header{background-color:#fff;background-color:var(--bg-primary);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color);box-shadow:0 1px 3px 0 #0000001a;box-shadow:var(--shadow-sm)}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:80rem;padding:1rem}.app-title{color:#111827;color:var(--text-primary);font-size:1.5rem;font-weight:700}.header-actions{align-items:center;display:flex;gap:1rem}.logout-button{background-color:#dc2626;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .15s ease-in-out}.logout-button:hover{background-color:#b91c1c}.theme-toggle-button{background:none;border:none;border-radius:.375rem;color:#111827;color:var(--text-primary);cursor:pointer;padding:.5rem;transition:background-color .15s ease-in-out}.theme-toggle-button:hover{background-color:#f3f4f6;background-color:var(--bg-secondary)}.theme-toggle-button svg{height:1.5rem;width:1.5rem}.main-content{margin:0 auto;max-width:80rem;padding:2rem 1rem}.calendar-container{background-color:#fff;background-color:var(--bg-primary);border-radius:.5rem;box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow-md)}.calendar-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1.5rem}.nav-button{background:none;border:none;border-radius:.375rem;color:#111827;color:var(--text-primary);cursor:pointer;padding:.5rem;transition:background-color .15s ease-in-out}.nav-button:hover{background-color:#f3f4f6;background-color:var(--bg-secondary)}.nav-button svg{height:1.25rem;width:1.25rem}.calendar-title{color:#111827;color:var(--text-primary);font-size:1.25rem;font-weight:600}.day-names-header{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color);display:grid;grid-template-columns:repeat(7,1fr)}.day-name{background-color:#f3f4f6;background-color:var(--bg-secondary);color:#374151;color:var(--text-secondary);font-weight:500;padding:.75rem;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{border:1px solid #e5e7eb;border:1px solid var(--border-color);cursor:pointer;height:8rem;padding:.5rem;transition:background-color .15s ease-in-out}.calendar-day:hover{background-color:#f3f4f6;background-color:var(--bg-secondary)}.calendar-day.today{background-color:#eff6ff;background-color:var(--bg-accent);border-color:#93c5fd;border-color:var(--border-today)}.day-number{color:#111827;color:var(--text-primary);font-size:.875rem;font-weight:600;margin-bottom:.25rem}.day-number.today{color:#2563eb;color:var(--text-accent)}.appointments-list{display:flex;flex-direction:column;gap:.25rem;max-height:5rem;overflow-y:auto}.appointment-item{background-color:#eff6ff;background-color:var(--bg-accent);border-radius:.25rem;color:#1e40af;color:var(--text-appointment-item);cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:background-color .15s ease-in-out}.appointment-item:hover{background-color:#93c5fd;background-color:var(--border-today)}.appointment-time{font-weight:500}.appointment-patient{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media screen and (max-width:767px){.hide-on-mobile{display:none!important}}.day-view-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem}.day-view-date-info{align-items:center;display:flex;flex-direction:column}.date-input{background:#0000;border:none;color:#111827;color:var(--text-primary);font-size:1.125rem;font-weight:600;text-align:center}.day-name-text{color:#6b7280;color:var(--text-tertiary);font-size:.875rem}.day-name-text.today{color:#2563eb;color:var(--text-accent);font-weight:500}.day-content{padding:1rem}.day-content-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.day-title{color:#111827;color:var(--text-primary);font-size:1.125rem;font-weight:500}.add-appointment-button{background-color:#3b82f6;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .15s ease-in-out}.add-appointment-button:hover{background-color:#2563eb}.no-appointments{color:#6b7280;color:var(--text-tertiary);padding:2rem 0;text-align:center}.no-appointments svg{color:#d1d5db;color:var(--border-input);height:3rem;margin:0 auto 1rem;width:3rem}.no-appointments-link{color:#2563eb;color:var(--text-accent);cursor:pointer;font-weight:500;margin-top:.5rem;text-decoration:none}.no-appointments-link:hover{color:#1d4ed8}.day-appointments{display:flex;flex-direction:column;gap:.75rem}.day-appointment-card{background-color:#f3f4f6;background-color:var(--bg-secondary);border-radius:.5rem;cursor:pointer;padding:1rem;transition:background-color .15s ease-in-out}.day-appointment-card:hover{background-color:#e5e7eb;background-color:var(--border-color)}.appointment-card-content{align-items:flex-start;display:flex;justify-content:space-between}.appointment-details .patient-name{color:#111827;color:var(--text-primary);font-weight:500}.appointment-details .doctor-name{color:#374151;color:var(--text-secondary);font-size:.875rem}.appointment-details .appointment-time-detail{color:#2563eb;color:var(--text-accent);font-size:.875rem;font-weight:500}.appointment-card-content svg{color:#6b7280;color:var(--text-tertiary);height:1.25rem;width:1.25rem}.modal-overlay{align-items:center;background-color:#00000080;background-color:var(--bg-modal-overlay);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:50}.modal-content{background-color:#fff;background-color:var(--bg-primary);border-radius:.5rem;box-shadow:0 25px 50px -12px #00000040;box-shadow:var(--shadow-xl);max-height:100vh;max-width:28rem;overflow-y:auto;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.modal-title{color:#111827;color:var(--text-primary);font-size:1.25rem;font-weight:600}.close-button{background:none;border:none;color:#6b7280;color:var(--text-tertiary);cursor:pointer;transition:color .15s ease-in-out}.close-button:hover{color:#374151;color:var(--text-secondary)}.close-button svg{height:1.5rem;width:1.5rem}.modal-body{padding:1.5rem}.form-container{gap:1rem}.form-container,.form-group{display:flex;flex-direction:column}.form-label{color:#374151;color:var(--text-secondary);display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.form-input-field,.form-select{background-color:#fff;background-color:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-input);border-radius:.375rem;color:#111827;color:var(--text-primary);font-size:.875rem;padding:.75rem;transition:all .15s ease-in-out;width:100%}.form-input-field:focus,.form-select:focus{border-color:#2563eb;border-color:var(--text-accent);box-shadow:0 0 0 2px #2563eb;box-shadow:0 0 0 2px var(--text-accent);outline:none}.date-display{background-color:#f3f4f6;background-color:var(--bg-secondary);border-radius:.375rem;color:#111827;color:var(--text-primary);padding:.75rem}.form-actions{display:flex;justify-content:space-between;padding-top:1.5rem}.form-actions-left{display:flex}.form-actions-right{display:flex;gap:.75rem}.delete-button{background-color:#dc2626;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .15s ease-in-out}.delete-button:hover{background-color:#b91c1c}.cancel-button{background-color:#fff;background-color:var(--bg-primary);border:1px solid #d1d5db;border:1px solid var(--border-input);border-radius:.375rem;color:#374151;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .15s ease-in-out}.cancel-button:hover{background-color:#f3f4f6;background-color:var(--bg-secondary)}.save-button{background-color:#3b82f6;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .15s ease-in-out}.save-button:hover{background-color:#2563eb}@media (max-width:640px){.header-content{padding:0 .5rem}.app-title{font-size:1.25rem}.main-content{padding:1rem .5rem}.calendar-header{padding:1rem}.calendar-title{font-size:1.125rem}.day-content-header{align-items:stretch;flex-direction:column;gap:1rem}.modal-content{margin:1rem;max-width:calc(100% - 2rem)}.modal-body{padding:1rem}.form-actions{flex-direction:column;gap:1rem}.form-actions-right{justify-content:stretch}.form-actions-right button{flex:1 1}}@media (max-width:480px){.login-container{padding:1rem}.login-form-wrapper{padding:1.5rem}.calendar-day{height:6rem;padding:.25rem}.day-number{font-size:.75rem}.appointment-item{font-size:.625rem;padding:.125rem .25rem}}
/*# sourceMappingURL=main.53d43814.css.map*/