.home-page{max-width:1000px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.hero-section{text-align:center;margin-bottom:var(--spacing-xl)}.hero-section h1{font-size:2.5rem;color:var(--primary-dark);margin-bottom:var(--spacing-sm)}.hero-section p{font-size:var(--font-size-lg);color:var(--text-muted)}.status-bar{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-sm);background:var(--bg-card);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);font-size:var(--font-size-sm)}.status-indicator{padding:.25rem .75rem;border-radius:20px;font-weight:600}.status-indicator.connected{background-color:var(--secondary-light);color:var(--secondary-dark)}.status-indicator.error{background-color:#fff5f5;color:var(--error-color)}.home-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.home-card{background:var(--bg-card);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);text-decoration:none;color:inherit;transition:var(--transition-base);border:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--spacing-sm)}.home-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.home-card h3{margin:0;color:var(--primary-dark);font-size:var(--font-size-xl)}.home-card p{margin:0;color:var(--text-muted);line-height:1.6}.dashboard-card{grid-column:1 / -1;flex-direction:row;align-items:center;gap:var(--spacing-xl);background:var(--primary-light);border-color:#2c528233}.dashboard-card .card-icon{font-size:2.5rem;background:#fff;width:70px;height:70px;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:var(--shadow-sm);flex-shrink:0}.dashboard-card h3{color:var(--primary-color)}@media (max-width: 768px){.hero-section h1{font-size:2rem}.dashboard-card{flex-direction:column;text-align:center}}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);gap:var(--spacing-md)}.loading-spinner{border:3px solid var(--primary-light);border-top:3px solid var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.small{width:20px;height:20px}.loading-spinner.medium{width:40px;height:40px}.loading-spinner.large{width:60px;height:60px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{color:var(--text-muted);font-size:var(--font-size-sm);font-weight:500}.error-message-container{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-md);margin:var(--spacing-md) 0;border:1px solid transparent}.error-message-container.error{background-color:#fff5f5;border-color:#feb2b2;color:#c53030}.error-message-container.warning{background-color:#fffaf0;border-color:#fbd38d;color:#9c4221}.error-message-container.info{background-color:var(--primary-light);border-color:#bee3f8;color:var(--primary-dark)}.error-icon{font-size:1.25rem;font-weight:700}.error-content{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.error-text{margin:0;font-weight:500;font-size:var(--font-size-sm)}.retry-button{padding:.4rem .8rem;background-color:#fff;color:inherit;border:1px solid currentColor;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.retry-button:hover{background-color:#0000000d}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:10000;display:flex;flex-direction:column-reverse;gap:.75rem;pointer-events:none}.toast-container .toast{pointer-events:auto}.toast{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:10px;background:#fff;color:#1e293b;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;min-width:320px;max-width:450px;border:1px solid #e2e8f0;animation:toastSlideIn .3s cubic-bezier(.16,1,.3,1);cursor:pointer;position:relative;overflow:hidden;transition:all .2s ease}.toast:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left:5px solid #10b981}.toast-success .toast-icon{color:#10b981;background:#ecfdf5}.toast-error{border-left:5px solid #ef4444}.toast-error .toast-icon{color:#ef4444;background:#fef2f2}.toast-warning{border-left:5px solid #f59e0b}.toast-warning .toast-icon{color:#f59e0b;background:#fffbeb}.toast-info{border-left:5px solid #3b82f6}.toast-info .toast-icon{color:#3b82f6;background:#eff6ff}.toast-icon{font-size:1rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.toast-message{flex:1;font-size:.9rem;font-weight:500;line-height:1.5;color:#334155}.toast-close{background:#f1f5f9;border:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#64748b;cursor:pointer;padding:0;transition:all .2s;opacity:.6}.toast-close:hover{opacity:1;background:#e2e8f0;color:#1e293b}@media (max-width: 480px){.toast-container{bottom:1rem;right:1rem;left:1rem}.toast{min-width:0;width:100%}}.patient-access-page{min-height:calc(100vh - 200px);display:flex;justify-content:center;align-items:center;padding:var(--spacing-xl)}.access-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-xl);max-width:500px;width:100%;border:1px solid var(--border-color)}.access-container h1{margin:0 0 var(--spacing-xs) 0;color:var(--primary-dark);font-size:var(--font-size-2xl);text-align:center}.access-subtitle{color:var(--text-muted);margin-bottom:var(--spacing-xl);text-align:center}.access-options{display:flex;gap:var(--spacing-md);flex-direction:column}.access-button{padding:1rem;font-size:var(--font-size-base);background-color:var(--primary-color);color:#fff;border:none;border-radius:var(--border-radius-md);font-weight:600;cursor:pointer;transition:var(--transition-base)}.access-button:hover{background-color:var(--primary-dark)}.back-button{margin-bottom:var(--spacing-lg);padding:.5rem 1rem;background:var(--bg-main);border:1px solid var(--border-color);border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:var(--transition-base)}.back-button:hover{background-color:var(--border-color)}.select-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.select-form label{font-weight:600;font-size:var(--font-size-sm);color:var(--primary-dark)}.create-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.required{color:var(--error-color)}.switch-mode-button{margin-top:var(--spacing-md);padding:.75rem;background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--border-radius-md);font-weight:600;cursor:pointer;font-size:var(--font-size-sm);transition:var(--transition-base)}.switch-mode-button:hover{background-color:var(--primary-light)}.book-appointment{max-width:900px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.book-header{margin-bottom:var(--spacing-xl);display:flex;justify-content:space-between;align-items:center}.book-header h1{font-size:var(--font-size-2xl);color:var(--primary-dark)}.booking-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl);border:1px solid var(--border-color)}.booking-summary-mini{display:flex;justify-content:space-between;align-items:center;background:var(--primary-light);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-xl);border:1px solid rgba(44,82,130,.1);font-size:var(--font-size-sm);color:var(--primary-dark)}.booking-step h2{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg);color:var(--primary-dark);padding-bottom:var(--spacing-xs);border-bottom:2px solid var(--primary-light)}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-md)}.selection-card{padding:var(--spacing-lg);border:2px solid var(--border-color);border-radius:var(--border-radius-md);cursor:pointer;transition:var(--transition-base);background:#fff}.selection-card:hover{border-color:var(--primary-color);background:var(--bg-main)}.selection-card.selected{border-color:var(--primary-color);background:var(--primary-light);box-shadow:0 0 0 1px var(--primary-color)}.selection-card h3{font-size:var(--font-size-md);margin-bottom:var(--spacing-xs);color:var(--primary-dark)}.selection-card p{font-size:.8rem;color:var(--text-muted);line-height:1.4}.calendar-card{background:var(--bg-main);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);margin:var(--spacing-lg) 0;border:1px solid var(--border-color)}.calendar-icon-large{font-size:3rem;background:#fff;width:80px;height:80px;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:var(--shadow-sm)}.modern-datetime-input{width:100%;max-width:300px;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius-md);font-size:var(--font-size-lg);text-align:center}.date-summary-badge{display:inline-flex;align-items:center;gap:var(--spacing-sm);background:var(--secondary-light);color:var(--secondary-dark);padding:.5rem 1rem;border-radius:20px;font-weight:600;margin-bottom:var(--spacing-lg)}.booking-actions{display:flex;justify-content:space-between;margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.success-container{text-align:center;padding:var(--spacing-xl);animation:fadeInScale .4s ease-out}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.success-icon{color:var(--success-color);margin-bottom:var(--spacing-lg);display:inline-flex;padding:var(--spacing-lg);background:var(--secondary-light);border-radius:50%;box-shadow:0 4px 12px #38a16926}.success-container h1{font-size:2rem;margin-bottom:var(--spacing-md)}.success-container p{color:var(--text-muted);font-size:var(--font-size-lg);max-width:400px;margin:0 auto var(--spacing-xl)}.success-actions{display:flex;gap:var(--spacing-lg);justify-content:center;margin-top:var(--spacing-xl)}.success-actions .btn{padding:1rem 2.5rem;border-radius:50px;font-weight:700;letter-spacing:.02em;box-shadow:0 4px 14px #0000001a;transition:all .3s cubic-bezier(.4,0,.2,1);text-transform:uppercase;font-size:.85rem}.success-actions .btn:hover{transform:translateY(-4px);box-shadow:0 6px 20px #00000026}.success-actions .btn-primary{background:linear-gradient(135deg,var(--secondary-color),var(--secondary-dark));color:#fff}.success-actions .btn-secondary{background:#fff;color:var(--primary-color);border:2px solid var(--primary-light)}.success-actions .btn-secondary:hover{background:var(--primary-light);border-color:var(--primary-color)}@media (max-width: 768px){.booking-actions{flex-direction:column-reverse;gap:var(--spacing-md)}.success-actions{flex-direction:column}}.confirm-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:2000}.confirm-dialog{background:var(--bg-card);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);max-width:450px;width:90%;box-shadow:var(--shadow-lg)}.confirm-dialog-title{margin:0 0 var(--spacing-sm) 0;color:var(--primary-dark);font-size:var(--font-size-xl)}.confirm-dialog-message{margin:0 0 var(--spacing-xl) 0;color:var(--text-muted);line-height:1.6}.confirm-dialog-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}.confirm-dialog-button{padding:.625rem 1.25rem;border:none;border-radius:var(--border-radius-md);cursor:pointer;font-size:var(--font-size-sm);font-weight:600;transition:var(--transition-base)}.confirm-dialog-button.cancel{background-color:var(--bg-main);color:var(--text-main);border:1px solid var(--border-color)}.confirm-dialog-button.cancel:hover{background-color:var(--border-color)}.confirm-dialog-button.confirm{background-color:var(--primary-color);color:#fff}.confirm-dialog-button.confirm:hover{background-color:var(--primary-dark)}.confirm-dialog-button.confirm.danger{background-color:var(--error-color)}.confirm-dialog-button.confirm.danger:hover{background-color:#c53030}.patient-profile-page{max-width:800px;margin:0 auto;padding:2rem}.patient-profile-page .back-button{margin-bottom:1.5rem;padding:.6rem 1.25rem;background:#fff;border:1px solid #cbd5e0;border-radius:6px;color:#2c3e50;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s;box-shadow:0 4px 6px #0000001a}.patient-profile-page .back-button:hover{background:#f8fafc;color:#007bff;border-color:#007bff;box-shadow:0 6px 12px #00000026;transform:translateY(-1px)}@media (max-width: 600px){.patient-profile-page{padding:1rem}.profile-container{padding:1.5rem}.profile-actions .submit-button{width:100%}}.patient-appointments-page{max-width:1000px;margin:0 auto;padding:2rem}.patient-appointments-page .back-button{padding:.6rem 1.25rem;background:#fff;border:1px solid #cbd5e0;border-radius:6px;color:#2c3e50;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s;box-shadow:0 4px 6px #0000001a;width:100%;text-align:center}.patient-appointments-page .back-button:hover{background:#f8fafc;color:#007bff;border-color:#007bff;box-shadow:0 6px 12px #00000026;transform:translateY(-1px)}.header-actions{display:flex;flex-direction:column;gap:.75rem;align-items:stretch;min-width:200px}.header-actions .submit-button{width:100%;text-align:center;justify-content:center;display:flex;align-items:center;box-shadow:0 4px 6px #28a74533}.header-actions .submit-button:hover{box-shadow:0 6px 12px #28a7454d;transform:translateY(-1px)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:2rem}.header-content-main h1{font-size:2rem;color:#2c3e50;margin:0 0 .5rem}.header-content-main p{color:#7f8c8d;margin:0}.appointments-grid{display:flex;flex-direction:column;gap:1.5rem}.appointment-card-full{background:#fff;border-radius:12px;padding:1.5rem;display:flex;align-items:center;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;transition:transform .2s,box-shadow .2s}.appointment-card-full:hover{transform:translateY(-2px);box-shadow:0 6px 12px #0000001a}.appointment-card-full.cancelled{opacity:.7;background-color:#f8fafc}.card-left{margin-right:2rem}.date-badge{background:#f0f7ff;color:#007bff;width:70px;height:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:12px;border:1px solid #cce3ff}.date-badge .day{font-size:1.5rem;font-weight:700;line-height:1}.date-badge .month{font-size:.8rem;text-transform:uppercase;font-weight:600}.card-center{flex:1}.exam-info{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.exam-info h3{margin:0;font-size:1.25rem;color:#2c3e50}.status-tag{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.meta-info{display:flex;gap:2rem}.meta-item{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.9rem}.card-right{display:flex;gap:1rem;margin-left:2rem}.btn-details{padding:.6rem 1.25rem;background:#fff;border:1px solid #cbd5e0;color:#4a5568;border-radius:6px;text-decoration:none;font-weight:500;font-size:.9rem;transition:all .2s}.btn-details:hover{background:#f8fafc;border-color:#94a3b8}.btn-cancel{padding:.6rem 1.25rem;background:#fff5f5;border:1px solid #feb2b2;color:#c53030;border-radius:6px;cursor:pointer;font-weight:500;font-size:.9rem;transition:all .2s}.btn-cancel:hover{background:#fed7d7}.empty-state-full{text-align:center;padding:5rem 2rem;background:#fff;border-radius:12px;border:2px dashed #e2e8f0}.empty-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.5}@media (max-width: 768px){.appointment-card-full{flex-direction:column;align-items:stretch;gap:1.25rem;padding:1.25rem}.card-left{margin-right:0;display:flex;justify-content:center}.date-badge{width:100%;height:auto;padding:.75rem;flex-direction:row;gap:.5rem}.date-badge .day{font-size:1.25rem}.date-badge .month{font-size:1rem}.card-center{width:100%}.exam-info{flex-direction:column;align-items:flex-start;gap:.5rem}.exam-info h3{font-size:1.1rem}.meta-info{flex-direction:column;gap:.75rem;background:#f8fafc;padding:.75rem;border-radius:8px}.meta-item{font-size:.85rem}.card-right{margin-left:0;width:100%;padding-top:1rem;border-top:1px solid #f0f2f5}.card-right button,.card-right a{flex:1;text-align:center;padding:.75rem}.page-header{flex-direction:column;align-items:stretch;gap:1.5rem}.header-actions{width:100%;min-width:0}}@media (max-width: 480px){.patient-appointments-page{padding:1rem}.header-content-main h1{font-size:1.5rem}}.doctor-access-page{min-height:calc(100vh - 200px);display:flex;justify-content:center;align-items:center;padding:2rem}.access-container{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;padding:2rem;max-width:600px;width:100%;position:relative}.back-to-home{position:absolute;top:1rem;right:1rem;padding:.5rem 1rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;cursor:pointer;font-size:.9rem;transition:all .2s}.back-to-home:hover{background:#e9ecef;border-color:#ced4da}.access-container h1{margin:0 0 .5rem;color:#333;font-size:1.75rem}.access-subtitle{color:#666;margin-bottom:2rem}.access-options{display:flex;gap:1rem;flex-direction:column}.access-button{padding:1rem 2rem;font-size:1rem;background-color:#007bff;color:#fff!important;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.access-button:hover{background-color:#0056b3;color:#fff!important}.back-button{margin-bottom:1.5rem;padding:.5rem 1rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;color:#495057!important;transition:all .2s}.back-button:hover{background-color:#e9ecef;border-color:#ced4da}.select-form{display:flex;flex-direction:column;gap:1rem}.select-form label{font-weight:500;color:#333}.select-form select{padding:.8rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;background-color:#f8fafc;color:#1e293b;transition:all .2s ease;width:100%}.select-form select:focus{outline:none;border-color:#3b82f6;background-color:#fff;box-shadow:0 0 0 4px #3b82f61a}.select-form select.error{border-color:#ef4444;background-color:#fef2f2}.create-form{display:flex;flex-direction:column;gap:1.5rem}.form-group label{font-weight:500;color:#333}.required{color:#dc3545}.form-group input,.form-group select{padding:.8rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;font-family:inherit;background-color:#f8fafc;color:#1e293b;transition:all .2s ease}.error-message{color:#dc3545;font-size:.875rem;margin-top:-.25rem}.submit-button{padding:1rem 2rem;font-size:1rem;background-color:#28a745;color:#fff!important;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s;margin-top:.5rem}.submit-button:hover:not(:disabled){background-color:#218838;color:#fff!important}.submit-button:disabled{background-color:#6c757d;color:#fffc!important;cursor:not-allowed}.switch-mode-button{margin-top:1rem;padding:.75rem;background-color:transparent;color:#007bff!important;border:1px solid #007bff;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.switch-mode-button:hover{background-color:#007bff1a}.exams-selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;padding:1rem;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;max-height:200px;overflow-y:auto}.exam-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.5rem;border-radius:6px;transition:background-color .2s}.exam-checkbox-label:hover{background-color:#e2e8f0}.exam-checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.exam-name{font-size:.9rem;color:#1e293b}.patient-dashboard,.doctor-dashboard{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.dashboard-header{margin-bottom:var(--spacing-xl);display:flex;justify-content:space-between;align-items:flex-start}.dashboard-header h1{margin:0;font-size:var(--font-size-2xl);color:var(--primary-dark)}.welcome-text{color:var(--text-muted);margin-top:var(--spacing-xs)}.dashboard-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-xl)}.dashboard-section{background:var(--bg-card);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.section-header h2{margin:0;font-size:var(--font-size-lg);color:var(--primary-dark)}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{background:var(--bg-card);padding:var(--spacing-lg);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-xs)}.stat-value{font-size:2rem;font-weight:700;color:var(--primary-color)}.stat-label{font-size:var(--font-size-sm);color:var(--text-muted);font-weight:600;text-transform:uppercase}.appointments-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.appointment-card{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius-md);transition:var(--transition-base)}.appointment-card:hover{border-color:var(--primary-color);background-color:var(--bg-main)}.appointment-main{display:flex;gap:var(--spacing-lg);align-items:center}.appointment-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;height:64px;background:var(--primary-light);border-radius:var(--border-radius-md);color:var(--primary-dark)}.date-day{font-size:var(--font-size-lg);font-weight:700}.date-month{font-size:.7rem;font-weight:700;text-transform:uppercase}.appointment-details h3{font-size:var(--font-size-md);margin:0 0 var(--spacing-xs) 0;color:var(--text-main)}.appointment-meta{font-size:var(--font-size-sm);color:var(--text-muted);display:flex;gap:var(--spacing-md)}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.quick-actions{display:flex;flex-direction:column;gap:var(--spacing-md)}.action-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-main);border-radius:var(--border-radius-md);text-decoration:none;color:var(--text-main);transition:var(--transition-base);border:1px solid var(--border-color)}.action-card:hover{background:#fff;border-color:var(--primary-color);transform:translate(4px)}.action-icon{font-size:1.25rem;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}.action-info h3{font-size:var(--font-size-sm);margin:0;font-weight:700}.action-info p{font-size:.75rem;color:var(--text-muted);margin:0}@media (max-width: 1024px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width: 768px){.dashboard-header{flex-direction:column;gap:var(--spacing-md)}.appointment-card{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.appointment-actions{width:100%;display:flex;justify-content:space-between;align-items:center}}.stat-card.warning{border-left:4px solid var(--warning-color)}.stat-card.info{border-left:4px solid var(--accent-color)}.stat-card:not(.warning):not(.info){border-left:4px solid var(--success-color)}.btn-profile-link{padding:.5rem 1rem;background:#fff;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:var(--border-radius-md);text-decoration:none;font-weight:600;font-size:var(--font-size-sm);transition:var(--transition-base)}.btn-profile-link:hover{background:var(--primary-color);color:#fff}.stat-card.success .stat-value{color:var(--secondary-color)}.stat-card.success{border-left:4px solid var(--secondary-color)}.btn-manage{padding:.4rem .8rem;background:var(--primary-color);color:#fff;border-radius:var(--border-radius-sm);text-decoration:none;font-weight:600;font-size:var(--font-size-sm)}.btn-manage:hover{background:var(--primary-dark)}.doctor-appointments-page{max-width:1000px;margin:0 auto;padding:2rem}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2.5rem}.header-content-main h1{font-size:2.25rem;color:#1e293b;margin:0;font-weight:800;letter-spacing:-.025em}.header-content-main p{color:#64748b;margin-top:.5rem;font-size:1.1rem}.header-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-end}.back-button{padding:.6rem 1.25rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;font-weight:600;transition:all .2s;box-shadow:0 1px 2px #0000000d}.back-button:hover{background:#f8fafc;color:#1e293b;border-color:#cbd5e0}.filter-bar{display:flex;gap:.75rem;margin-bottom:2rem;overflow-x:auto;padding-bottom:.5rem}.filter-btn{padding:.6rem 1.25rem;border-radius:9999px;border:1px solid #e2e8f0;background:#fff;color:#64748b;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.filter-btn:hover{border-color:#cbd5e0;background:#f8fafc}.filter-btn.active{background:#3b82f6;color:#fff;border-color:#3b82f6;box-shadow:0 4px 12px #3b82f633}.appointments-grid{display:flex;flex-direction:column;gap:1.5rem;margin-top:1rem}.appointment-card-full{display:flex;background:#fff;border-radius:16px;border:1px solid #e2e8f0;overflow:hidden;transition:all .2s;box-shadow:0 4px 6px #00000005}.appointment-card-full:hover{transform:translateY(-2px);box-shadow:0 12px 20px #0000000d;border-color:#cbd5e0}.appointment-card-full.cancelled{opacity:.7;background:#f8fafc}.card-left{padding:1.5rem;background:#f1f5f9;display:flex;align-items:center;justify-content:center;min-width:100px}.date-badge{display:flex;flex-direction:column;align-items:center;text-align:center}.date-badge .day{font-size:1.75rem;font-weight:800;color:#1e293b;line-height:1}.date-badge .month{font-size:.875rem;font-weight:700;text-transform:uppercase;color:#64748b;margin-top:.25rem}.card-center{padding:1.5rem;flex:1;display:flex;flex-direction:column;justify-content:center;gap:.75rem}.exam-info{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.exam-info h3{margin:0;font-size:1.25rem;color:#1e293b;font-weight:700}.status-tag{padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.025em}.status-tag.status-pending{background:#fef3c7;color:#92400e}.status-tag.status-confirmed{background:#dcfce7;color:#166534}.status-tag.status-cancelled{background:#fee2e2;color:#991b1b}.meta-info{display:flex;gap:1.5rem}.meta-item{display:flex;align-items:center;gap:.5rem;color:#64748b;font-size:.95rem}.card-right{padding:1.5rem;display:flex;align-items:center;gap:1rem;border-left:1px solid #f1f5f9}.btn-details{padding:.6rem 1.25rem;background:#3b82f6;color:#fff;border-radius:8px;text-decoration:none;font-weight:600;font-size:.9rem;transition:all .2s}.btn-details:hover{background:#2563eb;transform:translateY(-1px)}.empty-state-full{text-align:center;padding:5rem 2rem;background:#fff;border-radius:16px;border:2px dashed #e2e8f0;color:#94a3b8}.empty-icon{font-size:4rem;margin-bottom:1.5rem}@media (max-width: 768px){.page-header{flex-direction:column;gap:1.5rem}.header-actions{width:100%;align-items:stretch}.appointment-card-full{flex-direction:column}.card-left{padding:1rem;min-width:auto}.date-badge{flex-direction:row;gap:.5rem}.card-right{border-left:none;border-top:1px solid #f1f5f9;justify-content:flex-end}}.doctor-profile-page{max-width:800px;margin:0 auto;padding:2rem}.doctor-profile-page .back-button{margin-bottom:1.5rem;padding:.6rem 1.25rem;background:#fff;border:1px solid #cbd5e0;border-radius:6px;color:#2c3e50;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s;box-shadow:0 4px 6px #0000001a}.doctor-profile-page .back-button:hover{background:#f8fafc;color:#007bff;border-color:#007bff;box-shadow:0 6px 12px #00000026;transform:translateY(-1px)}.profile-container{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;padding:2rem}.profile-header{margin-bottom:2.5rem;border-bottom:2px solid #f0f2f5;padding-bottom:1rem}.profile-header h1{font-size:2rem;color:#2c3e50;margin:0 0 .5rem}.profile-header p{color:#7f8c8d;margin:0}.form-section{margin-bottom:2.5rem}.form-section h2{font-size:1.25rem;color:#2c3e50;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:#4a5568;font-size:.9rem}.form-group input,.form-group select{padding:.8rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;background-color:#f8fafc;color:#1e293b;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;background-color:#fff;box-shadow:0 0 0 4px #3b82f61a}.form-group input.error,.form-group select.error{border-color:#ef4444;background-color:#fef2f2}.error-message{color:#e53e3e;font-size:.8rem;margin-top:.25rem}.required{color:#e53e3e;margin-left:2px}.profile-actions{display:flex;justify-content:flex-end;margin-top:2rem;padding-top:2rem;border-top:1px solid #f0f2f5}.submit-button{padding:.8rem 2rem;background-color:#3b82f6;color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:all .2s}.submit-button:hover:not(:disabled){background-color:#2563eb;transform:translateY(-1px)}.submit-button:disabled{background-color:#94a3b8;cursor:not-allowed}.danger-zone{margin-top:4rem;padding:2rem;background-color:#fff5f5;border:1px solid #feb2b2;border-radius:8px}.danger-zone h2{color:#c53030;margin-top:0}.danger-zone p{color:#742a2a;margin-bottom:1.5rem}.delete-account-button{padding:.75rem 1.5rem;background-color:#e53e3e;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background-color .2s}.delete-account-button:hover{background-color:#c53030}@media (max-width: 600px){.doctor-profile-page{padding:1rem}.profile-container{padding:1.5rem}.profile-actions .submit-button{width:100%}}.appointment-manage-page{max-width:1100px;margin:0 auto;padding:2rem}.manage-container{display:flex;flex-direction:column;gap:2rem}.manage-header{display:flex;flex-direction:column;gap:1.5rem}.header-main h1{margin:0;font-size:2rem;color:#1e293b;font-weight:800}.status-badge-large{padding:.5rem 1.25rem;border-radius:30px;font-weight:700;font-size:.9rem;text-transform:uppercase;letter-spacing:.05em}.status-pending{background:#fef3c7;color:#92400e}.status-confirmed{background:#dcfce7;color:#166534}.status-cancelled{background:#fee2e2;color:#991b1b}.manage-grid{display:grid;grid-template-columns:1fr 350px;gap:2rem}@media (max-width: 992px){.manage-grid{grid-template-columns:1fr}}.info-card-large{background:#fff;border-radius:16px;box-shadow:0 4px 6px #0000000d;padding:2rem;margin-bottom:2rem;border:1px solid #e2e8f0}.info-header{margin-bottom:2rem;border-bottom:1px solid #f1f5f9;padding-bottom:1.25rem}.exam-type{color:#3b82f6;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em}.info-header h2{margin:.5rem 0 0;font-size:1.75rem;color:#1e293b;font-weight:800}.info-item .label{font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.info-item .value{font-size:1.125rem;color:#1e293b;font-weight:600}.notes-card{background:#fff;padding:1.5rem;border-radius:16px;border:1px solid #e2e8f0;box-shadow:0 4px 6px #00000005}.notes-card h3{margin:0 0 1rem;font-size:1rem;color:#1e293b;font-weight:700}.notes-card p{margin:0;line-height:1.6;color:#475569}.notes-card.contraindications{border-left:4px solid #ef4444;background:#fffafb}.actions-card{background:#f8fafc;border-radius:16px;padding:1.5rem;border:1px solid #e2e8f0;position:sticky;top:2rem}.actions-card h3{margin:0 0 1.5rem;font-size:1.1rem;color:#1e293b;font-weight:700}.btn-confirm,.btn-cancel-large,.btn-revert{width:100%;padding:.875rem;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.95rem}.btn-confirm{background:#10b981;border:none;color:#fff;box-shadow:0 4px 12px #10b98133}.btn-confirm:hover:not(:disabled){background:#059669;transform:translateY(-1px);box-shadow:0 6px 16px #10b9814d}.btn-cancel-large{background:#fff;border:2px solid #ef4444;color:#ef4444}.btn-cancel-large:hover:not(:disabled){background:#fef2f2;transform:translateY(-1px)}.btn-revert{background:#fff;border:2px solid #64748b;color:#64748b}.btn-revert:hover:not(:disabled){background:#f8fafc;transform:translateY(-1px)}.info-text{font-size:.875rem;color:#64748b;text-align:center;font-style:italic;margin:0}button:disabled{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important}.appointment-detail-page{max-width:1100px;margin:0 auto;padding:2rem}.detail-container{display:flex;flex-direction:column;gap:2rem}.detail-header{display:flex;flex-direction:column;gap:1.5rem}.back-button-simple{background:none;border:none;color:#64748b;cursor:pointer;font-size:1rem;padding:0;display:flex;align-items:center;gap:.5rem;width:fit-content}.back-button-simple:hover{color:#1e293b}.header-main{display:flex;justify-content:space-between;align-items:center}.header-main h1{margin:0;font-size:2rem;color:#2c3e50}.status-badge-large{padding:.5rem 1.25rem;border-radius:30px;font-weight:600;font-size:1rem;text-transform:uppercase}.detail-grid{display:grid;grid-template-columns:1fr 350px;gap:2rem}@media (max-width: 992px){.detail-grid{grid-template-columns:1fr}}.info-card-large{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;padding:2rem;margin-bottom:2rem;border:1px solid #e2e8f0}.info-header{margin-bottom:2rem;border-bottom:1px solid #f0f2f5;padding-bottom:1rem}.exam-type{color:#3498db;font-weight:600;font-size:.9rem;text-transform:uppercase;letter-spacing:1px}.info-header h2{margin:.5rem 0 0;font-size:1.75rem;color:#2c3e50}.info-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2rem}.info-item{display:flex;flex-direction:column;gap:.5rem}.info-item .label{font-size:.85rem;color:#64748b;text-transform:uppercase;font-weight:600}.info-item .value{font-size:1.1rem;color:#1e293b;font-weight:500}.notes-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 600px){.notes-section{grid-template-columns:1fr}}.notes-card{background:#fff;padding:1.5rem;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 4px #00000008}.notes-card h3{margin:0 0 1rem;font-size:1.1rem;color:#2c3e50}.notes-card p{margin:0;line-height:1.6;color:#4a5568}.notes-card.contraindications{border-left:4px solid #e74c3c}.actions-card{background:#f8fafc;border-radius:12px;padding:1.5rem;border:1px solid #e2e8f0;position:sticky;top:2rem}.actions-card h3{margin:0 0 1.5rem;font-size:1.1rem;color:#2c3e50}.action-buttons{display:flex;flex-direction:column;gap:1rem}.btn-edit,.btn-cancel-large,.btn-save,.btn-cancel-edit{width:100%;padding:.75rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-edit{background:#fff;border:1px solid #3498db;color:#3498db}.btn-edit:hover{background:#ebf8ff}.btn-cancel-large{background:#fff;border:1px solid #e74c3c;color:#e74c3c}.btn-cancel-large:hover{background:#fff5f5}.edit-form{display:flex;flex-direction:column;gap:1.25rem}.edit-form .form-group{display:flex;flex-direction:column;gap:.5rem}.edit-form label{font-size:.9rem;font-weight:600;color:#4a5568}.edit-form input,.edit-form textarea{padding:.8rem 1rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;background-color:#f8fafc;color:#1e293b;transition:all .2s ease}.edit-form input:focus,.edit-form textarea:focus{outline:none;border-color:#3b82f6;background-color:#fff;box-shadow:0 0 0 4px #3b82f61a}.edit-actions{display:flex;flex-direction:column;gap:.75rem}.btn-save{background:#2ecc71;color:#fff;border:none}.btn-save:hover:not(:disabled){background:#27ae60}.btn-cancel-edit{background:transparent;border:1px solid #cbd5e0;color:#64748b}.btn-cancel-edit:hover{background:#f1f5f9}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state-title{margin:0 0 .5rem;color:#2c3e50;font-size:1.5rem}.empty-state-message{margin:0 0 1.5rem;color:#666;line-height:1.5;max-width:400px}.empty-state-action{padding:.75rem 1.5rem;background-color:#2c3e50;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background-color .2s}.empty-state-action:hover{background-color:#34495e}.exam-list-page{padding:var(--spacing-xl) var(--spacing-md)}.page-header{margin-bottom:var(--spacing-xl);text-align:center}.subtitle{color:var(--text-muted);font-size:var(--font-size-lg)}.exams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-xl)}.exam-card{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;transition:var(--transition-base);border:1px solid var(--border-color)}.exam-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.exam-card-header{padding:var(--spacing-lg);background:var(--bg-main);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.exam-card-header h3{margin:0;color:var(--primary-dark);font-size:var(--font-size-lg)}.duration-badge{background:var(--primary-light);color:var(--primary-color);padding:.25rem .75rem;border-radius:20px;font-size:.8rem;font-weight:700}.exam-card-body{padding:var(--spacing-lg);flex-grow:1;display:flex;flex-direction:column}.exam-description{color:var(--text-main);margin-bottom:var(--spacing-lg);line-height:1.6;font-size:var(--font-size-sm)}.associated-doctors h4{font-size:.85rem;color:var(--text-muted);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.doctor-mini-list{list-style:none;padding:0;margin:0}.doctor-mini-list li{padding:var(--spacing-xs) 0;border-bottom:1px solid var(--border-color);font-size:var(--font-size-sm);color:var(--primary-dark);font-weight:500}.doctor-mini-list li:last-child{border-bottom:none}.no-doctors{color:var(--text-muted);font-size:.85rem;font-style:italic}.exam-detail-container{max-width:800px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.exam-detail-header{margin-bottom:var(--spacing-xl);display:flex;align-items:center;gap:var(--spacing-lg)}.exam-detail-card{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl);border:1px solid var(--border-color)}.exam-detail-card h2{color:var(--primary-dark);margin-bottom:var(--spacing-md)}.exam-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.info-item label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;font-weight:700;margin-bottom:4px}.info-item span{font-weight:500;color:var(--text-main);font-size:var(--font-size-lg)}.description-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.description-section h3{font-size:var(--font-size-md);margin-bottom:var(--spacing-sm)}.description-section p{color:var(--text-main);line-height:1.6}.admin-page{max-width:1000px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.admin-page h2{color:var(--primary-dark);margin-bottom:var(--spacing-xl);font-size:var(--font-size-2xl)}.admin-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-lg)}.admin-card{background:var(--bg-card);border-radius:var(--border-radius-lg);padding:var(--spacing-xl);text-decoration:none;color:inherit;transition:var(--transition-base);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-xs)}.admin-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.admin-card h3{margin:0;color:var(--primary-color);font-size:var(--font-size-lg)}.admin-card p{margin:0;color:var(--text-muted);font-size:var(--font-size-sm);line-height:1.5}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);gap:var(--spacing-md);flex-wrap:wrap}.admin-header h2{margin-bottom:0}@media (max-width: 768px){.admin-header{flex-direction:column;align-items:flex-start}.admin-header .btn{width:100%;justify-content:center}.admin-page,.admin-exams-page{padding:var(--spacing-md) var(--spacing-sm)}}.admin-table-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.admin-table{width:100%;border-collapse:collapse}@media (max-width: 768px){.admin-table-container{background:transparent;border:none;box-shadow:none}.admin-table,.admin-table thead,.admin-table tbody,.admin-table th,.admin-table td,.admin-table tr{display:block}.admin-table thead tr{position:absolute;top:-9999px;left:-9999px}.admin-table tr{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);box-shadow:var(--shadow-sm)}.admin-table td{border:none;border-bottom:1px solid var(--border-color);position:relative;padding-left:40%;text-align:left;min-height:45px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-top:var(--spacing-md);padding-bottom:var(--spacing-sm)}.admin-table td:last-child{border-bottom:none}.admin-table td:before{content:attr(data-label);position:static;display:block;width:100%;margin-bottom:var(--spacing-xs);font-weight:800;color:var(--primary-color);text-transform:uppercase;font-size:.7rem;letter-spacing:.05em}.admin-table td.actions{flex-direction:row;justify-content:flex-start;padding-top:var(--spacing-md)}}.admin-table th{background:var(--bg-main);padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-color)}.admin-table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);color:var(--text-main);font-size:var(--font-size-sm)}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background-color:var(--bg-main)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:600;font-size:var(--font-size-sm);color:var(--primary-dark)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius-md);font-size:var(--font-size-base);transition:var(--transition-base)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:1500}.admin-quick-nav{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap;background:var(--bg-card);padding:var(--spacing-sm);border-radius:var(--border-radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.nav-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:.5rem 1rem;border-radius:var(--border-radius-md);font-size:.85rem;font-weight:600;color:var(--text-muted);transition:var(--transition-base);text-decoration:none}.nav-item:hover{background:var(--bg-main);color:var(--primary-color)}.nav-item.active{background:var(--primary-light);color:var(--primary-color)}.nav-item svg{opacity:.8}@media (max-width: 768px){.admin-quick-nav{gap:4px;padding:4px}.nav-item{padding:.4rem .6rem;font-size:.75rem;flex:1;justify-content:center;min-width:calc(50% - 4px)}.nav-item span{display:none}.nav-item span{display:inline}}.modal-content{background:var(--bg-card);padding:var(--spacing-xl);border-radius:var(--border-radius-lg);width:90%;max-width:550px;box-shadow:var(--shadow-lg)}.modal-content h3{margin-top:0;margin-bottom:var(--spacing-lg);color:var(--primary-dark)}.admin-patients-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.admin-patients-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);gap:var(--spacing-lg)}.search-bar{flex:1;max-width:400px}.search-bar input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);transition:var(--transition-base)}.search-bar input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.patients-table-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.patients-table{width:100%;border-collapse:collapse}.patients-table th{background:var(--bg-main);padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-color)}.patients-table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);color:var(--text-main);vertical-align:middle}.patient-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:1500}.patient-detail-modal{background:var(--bg-card);padding:var(--spacing-xl);border-radius:var(--border-radius-lg);width:90%;max-width:700px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-lg)}.close-modal{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;font-size:2rem;color:var(--text-muted);cursor:pointer;line-height:1}.detail-section{margin-bottom:var(--spacing-xl)}.detail-section h3{border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-xs);margin-bottom:var(--spacing-md);font-size:var(--font-size-lg)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg)}.info-item label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;font-weight:700;margin-bottom:2px}.info-item span{font-weight:500;color:var(--text-main)}.appointments-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.appointment-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--bg-main);border-radius:var(--border-radius-md)}.appointment-date{font-weight:700;color:var(--primary-dark);margin-right:var(--spacing-md)}.appointment-meta{color:var(--text-muted);font-size:var(--font-size-sm)}@media (max-width: 768px){.admin-patients-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.search-bar{max-width:none}.patients-table-container{background:transparent;border:none;box-shadow:none}.patients-table,.patients-table thead,.patients-table tbody,.patients-table th,.patients-table td,.patients-table tr{display:block}.patients-table thead tr{position:absolute;top:-9999px;left:-9999px}.patients-table tr{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);box-shadow:var(--shadow-sm)}.patients-table td{border:none;border-bottom:1px solid var(--border-color);position:relative;padding-left:0;text-align:left;min-height:45px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-top:var(--spacing-md);padding-bottom:var(--spacing-sm)}.patients-table td:last-child{border-bottom:none}.patients-table td:before{content:attr(data-label);display:block;width:100%;margin-bottom:var(--spacing-xs);font-weight:800;color:var(--primary-color);text-transform:uppercase;font-size:.7rem;letter-spacing:.05em}.actions-cell{width:100%;justify-content:flex-start;padding-top:var(--spacing-sm)}}.admin-doctors-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.admin-doctors-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);gap:var(--spacing-lg)}.doctors-table-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.doctors-table{width:100%;border-collapse:collapse}.doctors-table th{background:var(--bg-main);padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-color)}.doctors-table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);color:var(--text-main);vertical-align:middle}.exams-list-cell{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.exam-tag-mini{background-color:var(--primary-light);color:var(--primary-color);padding:2px 8px;border-radius:var(--border-radius-sm);font-size:.7rem;font-weight:600;border:1px solid rgba(44,82,130,.1)}.exam-tag-more{font-size:.7rem;color:var(--text-muted);align-self:center}.doctor-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:center;z-index:1500}.doctor-detail-modal{background:var(--bg-card);padding:var(--spacing-xl);border-radius:var(--border-radius-lg);width:90%;max-width:700px;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-lg)}@media (max-width: 768px){.admin-doctors-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.doctors-table-container{background:transparent;border:none;box-shadow:none}.doctors-table,.doctors-table thead,.doctors-table tbody,.doctors-table th,.doctors-table td,.doctors-table tr{display:block}.doctors-table thead tr{position:absolute;top:-9999px;left:-9999px}.doctors-table tr{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);box-shadow:var(--shadow-sm)}.doctors-table td{border:none;border-bottom:1px solid var(--border-color);position:relative;padding-left:0;text-align:left;min-height:45px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-top:var(--spacing-md);padding-bottom:var(--spacing-sm)}.doctors-table td:last-child{border-bottom:none}.doctors-table td:before{content:attr(data-label);display:block;width:100%;margin-bottom:var(--spacing-xs);font-weight:800;color:var(--primary-color);text-transform:uppercase;font-size:.7rem;letter-spacing:.05em}.actions-cell{width:100%;justify-content:flex-start;padding-top:var(--spacing-sm)}}.admin-appointments-container{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.admin-appointments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);gap:var(--spacing-lg)}.filters-bar{display:flex;gap:var(--spacing-md);flex:1;max-width:600px}.filters-bar input,.filters-bar select{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);transition:var(--transition-base)}.filters-bar input{flex:1}.filters-bar input:focus,.filters-bar select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-light)}.appointments-table-container{background:var(--bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.appointments-table{width:100%;border-collapse:collapse}.appointments-table th{background:var(--bg-main);padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-color)}.appointments-table td{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);color:var(--text-main);font-size:var(--font-size-sm);vertical-align:middle}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;display:inline-block}.status-pending{background:#fff3cd;color:#856404}.status-confirmed{background:#d4edda;color:#155724}.status-completed{background:#e1f5fe;color:#0288d1}.status-cancelled{background:#f8d7da;color:#721c24}.actions-cell{display:flex;gap:var(--spacing-sm);align-items:center}@media (max-width: 768px){.admin-appointments-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.filters-bar{max-width:none;flex-direction:column}.appointments-table-container{background:transparent;border:none;box-shadow:none}.appointments-table,.appointments-table thead,.appointments-table tbody,.appointments-table th,.appointments-table td,.appointments-table tr{display:block}.appointments-table thead tr{position:absolute;top:-9999px;left:-9999px}.appointments-table tr{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);box-shadow:var(--shadow-sm)}.appointments-table td{border:none;border-bottom:1px solid var(--border-color);position:relative;padding-left:0;text-align:left;min-height:45px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-top:var(--spacing-md);padding-bottom:var(--spacing-sm)}.appointments-table td:last-child{border-bottom:none}.appointments-table td:before{content:attr(data-label);display:block;width:100%;margin-bottom:var(--spacing-xs);font-weight:800;color:var(--primary-color);text-transform:uppercase;font-size:.7rem;letter-spacing:.05em}.actions-cell{width:100%;justify-content:flex-start;padding-top:var(--spacing-sm)}}.admin-exams-page{max-width:1200px;margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}.doctor-assignment-modal{max-width:600px}.modal-subtitle{color:var(--text-muted);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.doctor-selection-list{max-height:400px;overflow-y:auto;border:1px solid var(--border-color);border-radius:var(--border-radius-md);margin-bottom:var(--spacing-lg)}.doctor-selection-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--border-color);transition:var(--transition-base)}.doctor-selection-item:last-child{border-bottom:none}.doctor-selection-item.assigned{background:var(--primary-light)}.doctor-name{font-weight:600;color:var(--primary-dark)}.btn-assign{padding:.4rem 1rem;border-radius:var(--border-radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:var(--transition-base);border:1px solid transparent}.btn-assign.add{background:var(--secondary-light);color:var(--secondary-dark);border-color:#38a16933}.btn-assign.add:hover{background:var(--secondary-color);color:#fff}.btn-assign.remove{background:#fff5f5;color:var(--error-color);border-color:#e53e3e33}.btn-assign.remove:hover{background:var(--error-color);color:#fff}.admin-header .btn-primary{display:flex;align-items:center;gap:var(--spacing-sm)}.admin-table th{white-space:nowrap}.admin-table th svg{vertical-align:middle;margin-right:6px;opacity:.7}.form-group label svg{vertical-align:middle;margin-right:8px;color:var(--primary-color)}.btn-assign{display:flex;align-items:center;gap:6px}.doctor-name svg{vertical-align:middle;margin-right:8px;opacity:.6}.admin-table td.actions{display:flex;gap:var(--spacing-sm);align-items:center;justify-content:flex-start;min-width:180px}@media (max-width: 768px){.admin-table td.actions{justify-content:flex-end;min-width:0;padding-top:var(--spacing-sm)}.modal-content{width:95%;padding:var(--spacing-lg);margin:10px;max-height:90vh;overflow-y:auto}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}.btn-icon{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-md);border:1px solid var(--border-color);background:var(--bg-main);color:var(--primary-color);cursor:pointer;transition:var(--transition-base);text-decoration:none;padding:0}.btn-icon svg{width:20px;height:20px}.btn-icon:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-icon.view,.btn-icon[title="Vedi Dettagli"],.btn-icon[title=Dettagli]{color:var(--primary-color);background-color:var(--primary-light);border-color:#2c528233}.btn-icon.view:hover,.btn-icon[title="Vedi Dettagli"]:hover,.btn-icon[title=Dettagli]:hover{background-color:var(--primary-color);color:#fff}.btn-icon.edit,.btn-icon[title=Modifica]{color:#ef6c00;background-color:#fff3e0;border-color:#ef6c0033}.btn-icon.edit:hover,.btn-icon[title=Modifica]:hover{background-color:#ef6c00;color:#fff}.btn-icon.delete,.btn-icon[title=Elimina],.btn-icon[title=Annulla]{color:var(--error-color);background-color:#ffebee;border-color:#e53e3e33}.btn-icon.delete:hover,.btn-icon[title=Elimina]:hover,.btn-icon[title=Annulla]:hover{background-color:var(--error-color);color:#fff}.btn-icon.assign,.btn-icon[title="Gestisci Dottori"]{color:var(--secondary-color);background-color:var(--secondary-light);border-color:#38a16933}.btn-icon.assign:hover,.btn-icon[title="Gestisci Dottori"]:hover{background-color:var(--secondary-color);color:#fff}.admin-table td{vertical-align:middle}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.modal-actions .btn{min-width:120px;padding:.8rem 1.5rem;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.025em}.btn-outline{background-color:transparent;color:var(--text-muted);border:1px solid var(--border-color);box-shadow:none}.btn-outline:hover{background-color:var(--bg-main);color:var(--text-main);border-color:var(--text-muted);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.modal-actions .btn-primary{background:linear-gradient(135deg,var(--primary-color) 0%,var(--primary-dark) 100%);border:none}.modal-actions .btn-primary:hover{filter:brightness(1.1);box-shadow:0 4px 12px #2c52824d}.modal-actions .btn-primary:disabled{background:var(--border-color);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none;filter:none}.header{background-color:var(--bg-card);color:var(--text-main);padding:.75rem 0;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--border-color)}.header-content{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:var(--spacing-xl)}.logo{text-decoration:none;display:flex;align-items:center}.logo h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--primary-color);letter-spacing:-.5px}.home-link{color:var(--text-muted);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;transition:var(--transition-base)}.home-link:hover{color:var(--primary-color)}.header-right,.nav-menu{display:flex;align-items:center;gap:var(--spacing-md)}.identity-banner{padding:.5rem 1rem;background-color:var(--primary-light);color:var(--primary-dark);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:500;border:1px solid rgba(44,82,130,.1)}.profile-link{display:flex;align-items:center;gap:var(--spacing-xs);color:var(--text-main);text-decoration:none;font-size:var(--font-size-sm);font-weight:500;padding:.5rem .75rem;border-radius:var(--border-radius-md);transition:var(--transition-base)}.profile-link:hover{background-color:var(--bg-main);color:var(--primary-color)}.logout-button{padding:.5rem 1rem;background-color:transparent;color:var(--error-color);border:1px solid var(--error-color);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);font-weight:500;transition:var(--transition-base)}.logout-button:hover{background-color:var(--error-color);color:#fff}.hamburger-button{display:none;background:none;border:none;padding:var(--spacing-sm)}.hamburger-icon{display:block;width:20px;height:2px;background:var(--text-main);position:relative}.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;width:20px;height:2px;background:var(--text-main);left:0}.hamburger-icon:before{top:-6px}.hamburger-icon:after{bottom:-6px}@media (max-width: 768px){.desktop-only{display:none}.hamburger-button{display:block}.nav-menu{position:absolute;top:100%;right:var(--spacing-lg);background:var(--bg-card);flex-direction:column;padding:var(--spacing-md);box-shadow:var(--shadow-lg);border-radius:var(--border-radius-md);border:1px solid var(--border-color);display:none;min-width:200px}.nav-menu.open{display:flex}.identity-banner,.profile-link,.logout-button{width:100%;text-align:center;justify-content:center}}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:#2c3e50;color:#fff;padding:1.5rem;text-align:center;box-shadow:0 2px 4px #0000001a}.app-header h1{margin-bottom:.5rem;font-size:2rem}.app-header p{opacity:.9;font-size:1rem}.app-main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}:root{--primary-color: #2c5282;--primary-light: #ebf8ff;--primary-dark: #2a4365;--secondary-color: #38a169;--secondary-light: #f0fff4;--secondary-dark: #276749;--accent-color: #3182ce;--text-main: #2d3748;--text-muted: #718096;--text-light: #ffffff;--bg-main: #f7fafc;--bg-card: #ffffff;--border-color: #e2e8f0;--error-color: #e53e3e;--success-color: #38a169;--warning-color: #dd6b20;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-base: 16px;--font-size-sm: .875rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--transition-base: all .2s ease-in-out}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--text-main);background-color:var(--bg-main);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:var(--primary-dark);font-weight:600;margin-bottom:var(--spacing-md)}a{color:var(--accent-color);text-decoration:none;transition:var(--transition-base)}a:hover{color:var(--primary-dark)}button{cursor:pointer;font-family:inherit;transition:var(--transition-base)}input,select,textarea{font-family:inherit;font-size:inherit}.card{background:var(--bg-card);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-lg);border:1px solid var(--border-color)}.btn{padding:.75rem 1.5rem;border-radius:var(--border-radius-lg);font-weight:600;border:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);transition:var(--transition-base);box-shadow:var(--shadow-sm)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0)}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover{background-color:var(--secondary-dark)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}
