*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #6366f1;--primary-dark: #4f46e5;--primary-light: #e0e7ff;--success: #22c55e;--success-dark: #16a34a;--success-light: #dcfce7;--danger: #ef4444;--danger-dark: #dc2626;--danger-light: #fee2e2;--warning: #f59e0b;--warning-light: #fef3c7;--info: #3b82f6;--info-light: #dbeafe;--gray-50: #f8fafc;--gray-100: #f1f5f9;--gray-200: #e2e8f0;--gray-300: #cbd5e1;--gray-400: #94a3b8;--gray-500: #64748b;--gray-600: #475569;--gray-700: #334155;--gray-800: #1e293b;--gray-900: #0f172a;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--radius-xl: 20px;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -2px rgba(0,0,0,.05);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -4px rgba(0,0,0,.04);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 8px 10px -6px rgba(0,0,0,.04);--shadow-glow: 0 0 20px rgba(99,102,241,.15)}[data-theme=dark]{--primary: #818cf8;--primary-dark: #6366f1;--primary-light: #1e1b4b;--success: #4ade80;--success-dark: #22c55e;--success-light: #052e16;--danger: #f87171;--danger-dark: #ef4444;--danger-light: #450a0a;--warning: #fbbf24;--warning-light: #451a03;--info: #60a5fa;--info-light: #172554;--gray-50: #1e293b;--gray-100: #1e293b;--gray-200: #334155;--gray-300: #475569;--gray-400: #64748b;--gray-500: #94a3b8;--gray-600: #cbd5e1;--gray-700: #e2e8f0;--gray-800: #f1f5f9;--gray-900: #f8fafc;--shadow: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 6px rgba(0,0,0,.3);--shadow-lg: 0 10px 15px rgba(0,0,0,.3);--shadow-xl: 0 20px 25px rgba(0,0,0,.4);--shadow-glow: 0 0 20px rgba(129,140,248,.2)}[data-theme=dark] body{background:#0f172a;color:#e2e8f0}[data-theme=dark] .modal,[data-theme=dark] .patient-column,[data-theme=dark] .med-card,[data-theme=dark] .appt-card,[data-theme=dark] .exam-card,[data-theme=dark] .monitoring-card{background:#1e293b}[data-theme=dark] .form-control{background:#0f172a;border-color:#334155;color:#e2e8f0}[data-theme=dark] .form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #818cf833}[data-theme=dark] .mobile-menu{background:#1e293b;color:#e2e8f0}[data-theme=dark] .date-bar{background:#1e293b;border-color:#334155}[data-theme=dark] .btn-secondary{background:#334155;color:#e2e8f0;border-color:#475569}[data-theme=dark] .admin-table td,[data-theme=dark] .history-table td{border-color:#334155}html{font-size:16px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f0f2f7;background-image:radial-gradient(at 20% 0%,rgba(99,102,241,.04) 0%,transparent 50%),radial-gradient(at 80% 100%,rgba(118,75,162,.04) 0%,transparent 50%);color:var(--gray-800);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased}.app-header{background:linear-gradient(135deg,#4f46e5,#6366f1,#7c3aed);color:#fff;padding:.85rem 2rem;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 20px #4f46e540;position:sticky;top:0;z-index:1000}.header-brand{display:flex;align-items:center;gap:.75rem}.brand-icon{font-size:1.75rem;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}.header-brand h1{font-size:1.3rem;font-weight:800;letter-spacing:-.5px}.header-brand p{font-size:.72rem;opacity:.75;letter-spacing:.3px}.header-actions{display:flex;align-items:center;gap:.6rem}.date-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 2rem;background:#fff;border-bottom:1px solid var(--gray-200)}.date-nav{display:flex;align-items:center;gap:.5rem}.date-display{display:flex;flex-direction:column;align-items:center;min-width:200px}.date-input{border:none;background:transparent;font-size:.9rem;color:var(--gray-700);cursor:pointer;text-align:center;outline:none}.date-label{font-size:.75rem;color:var(--gray-500);text-transform:capitalize}.dashboard-main{padding:1.5rem 2rem}.patients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;align-items:start}.patient-column{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid rgba(226,232,240,.8);transition:box-shadow .2s,transform .2s}.patient-column:hover{box-shadow:var(--shadow-xl),var(--shadow-glow);transform:translateY(-2px)}.patient-column-header{padding:1rem 1rem .75rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gray-100)}.patient-info{display:flex;align-items:center;gap:.75rem}.patient-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0;box-shadow:0 2px 8px #6366f14d}.patient-avatar.sm{width:32px;height:32px;font-size:.9rem}.patient-info h3{font-size:.95rem;font-weight:600;color:var(--gray-800)}.patient-age{font-size:.75rem;color:var(--gray-500)}.patient-column-actions{display:flex;align-items:center;gap:.25rem}.patient-progress{font-size:.75rem;font-weight:600;color:var(--gray-500);margin-right:.25rem}.patient-progress-bar{height:3px;background:var(--gray-100)}.patient-progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a,#15803d);transition:width .5s ease;border-radius:2px}.med-cards-list{padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.med-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:.85rem;cursor:pointer;transition:all .2s ease;position:relative;box-shadow:var(--shadow)}.med-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #6366f126,0 0 0 2px var(--primary-light);transform:translateY(-2px)}.med-card:focus{outline:2px solid var(--primary);outline-offset:2px}.med-card-taken{opacity:.7;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#86efac}.med-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.med-card-name{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;color:var(--gray-800)}.med-icon{font-size:1rem}.med-time{font-size:.85rem;font-weight:700;color:var(--primary-dark);background:linear-gradient(135deg,var(--primary-light),#c7d2fe);padding:.15rem .5rem;border-radius:6px;box-shadow:0 1px 3px #6366f126}.med-card-dosage{font-size:.8rem;color:var(--gray-500);margin-bottom:.4rem}.med-card-notes{display:flex;align-items:flex-start;gap:.3rem;margin-bottom:.5rem;padding:.35rem .5rem;background:var(--gray-50);border-radius:6px;border:1px solid var(--gray-100)}.med-notes-icon{font-size:.75rem;flex-shrink:0;margin-top:.1rem}.med-notes-text{font-size:.75rem;color:var(--gray-500);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.med-card-actions{display:flex;gap:.25rem;margin-bottom:.5rem}.med-card-footer{display:flex;justify-content:space-between;align-items:center}.med-take-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.78rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:20px;cursor:pointer;transition:all .15s;box-shadow:0 2px 6px #22c55e4d}.med-take-btn:hover{transform:scale(1.05);box-shadow:0 3px 10px #22c55e66}.med-take-btn:active{transform:scale(.97)}.countdown-badge{font-size:.72rem;font-weight:600;padding:.2rem .5rem;border-radius:20px;display:inline-flex;align-items:center;gap:.2rem}.countdown-badge.upcoming{background:var(--info-light);color:var(--info)}.countdown-badge.urgent{background:var(--warning-light);color:var(--warning);animation:pulse 1.5s infinite}.countdown-badge.past{background:var(--danger-light);color:var(--danger)}.countdown-badge.taken{background:var(--success-light);color:var(--success-dark)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.inactive-patients{margin-top:2rem}.inactive-patients h4{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);margin-bottom:.75rem}.inactive-list{display:flex;flex-wrap:wrap;gap:.75rem}.inactive-patient-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.6rem .75rem;display:flex;align-items:center;gap:.6rem;box-shadow:var(--shadow)}.inactive-info{display:flex;flex-direction:column}.inactive-info span:first-child{font-size:.85rem;font-weight:600}.inactive-actions{display:flex;align-items:center;gap:.25rem;margin-left:.5rem}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:var(--radius-sm);border:none;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap;text-decoration:none}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;box-shadow:0 2px 8px #6366f140}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-dark),#6d28d9);box-shadow:0 4px 12px #6366f159}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:var(--gray-200)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:var(--success-dark)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-dark)}.btn-ghost{background:transparent;color:var(--gray-600);font-size:1.2rem;padding:.25rem .6rem}.btn-ghost:hover{background:var(--gray-100)}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn-icon{background:transparent;border:none;cursor:pointer;padding:.3rem;border-radius:6px;font-size:1rem;transition:background .15s;line-height:1}.btn-icon:hover{background:var(--gray-200)}.btn-icon-primary:hover{background:var(--primary-light)}.btn-icon-success:hover{background:var(--success-light)}.btn-icon-danger:hover{background:var(--danger-light)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .15s ease}.modal-overlay.modal-overlay-top{z-index:1100}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:100%;max-width:480px;max-height:85vh;display:flex;flex-direction:column;animation:slideUp .2s ease}.modal>form{display:flex;flex-direction:column;flex:1;min-height:0}.modal-lg{max-width:580px}.modal-detail{max-width:640px}.confirm-dialog{max-width:400px}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-header h3{font-size:1.1rem;font-weight:600;color:var(--gray-800)}.modal-close{background:none;border:none;font-size:1.1rem;cursor:pointer;color:var(--gray-400);padding:.25rem;border-radius:4px;line-height:1;transition:color .15s}.modal-close:hover{color:var(--gray-700);background:var(--gray-100)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1;min-height:0}.modal-body .form-row{overflow:visible}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--gray-200);display:flex;align-items:center;justify-content:flex-end;gap:.75rem;flex-shrink:0}.footer-right{display:flex;gap:.75rem;margin-left:auto}.modal-loading{padding:3rem;display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--gray-500)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;font-weight:500;color:var(--gray-700);margin-bottom:.4rem}.form-control{width:100%;max-width:100%;padding:.55rem .75rem;border:1.5px solid var(--gray-300);border-radius:var(--radius-sm);font-size:.9rem;color:var(--gray-800);background:#fff;transition:border-color .15s,box-shadow .15s;outline:none;box-sizing:border-box}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;overflow:hidden}.schedule-preview{display:flex;align-items:center;gap:.75rem;background:var(--primary-light);border:1px solid var(--primary);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-top:.5rem}.preview-icon{font-size:1.5rem}.preview-info{font-size:.85rem;color:var(--primary-dark);display:flex;flex-wrap:wrap;gap:.25rem}.preview-info strong{font-weight:700}.preview-info span{opacity:.8}.detail-header-info{display:flex;align-items:center;gap:.75rem}.detail-pill-icon{font-size:1.75rem}.detail-header-info h3{font-size:1.15rem;font-weight:700}.detail-patient{font-size:.8rem;color:var(--gray-500)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.25rem}.detail-item{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.2rem}.detail-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);font-weight:600}.detail-value{font-size:.9rem;font-weight:600;color:var(--gray-800)}.detail-progress-section{margin-bottom:1.25rem}.detail-progress-header{display:flex;justify-content:space-between;font-size:.85rem;color:var(--gray-600);margin-bottom:.4rem}.detail-progress-count{font-weight:600}.progress-bar-bg{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden;margin-bottom:.4rem}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--success),var(--success-dark));border-radius:4px;transition:width .5s ease}.detail-remaining{display:flex;justify-content:flex-end}.remaining-badge{font-size:.75rem;background:var(--warning-light);color:var(--warning);padding:.2rem .6rem;border-radius:20px;font-weight:600}.detail-section{margin-bottom:1.25rem}.detail-section h4{font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.6rem;padding-bottom:.4rem;border-bottom:1px solid var(--gray-200)}.schedules-list{display:flex;flex-direction:column;gap:.3rem;max-height:200px;overflow-y:auto}.schedule-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:6px;background:var(--gray-50);font-size:.82rem}.schedule-item.taken{background:var(--success-light);color:var(--success-dark)}.schedule-icon{font-size:.9rem}.schedule-time{font-weight:500}.schedule-taken-at{font-size:.75rem;color:var(--success-dark);margin-left:auto}.schedules-more{font-size:.78rem;color:var(--gray-400);text-align:center;padding:.3rem}.comment-form{display:flex;gap:.5rem;margin-bottom:.75rem}.comment-form .form-control{margin:0}.comments-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.comment-item{display:flex;align-items:flex-start;gap:.5rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.6rem .75rem}.comment-content{flex:1}.comment-content p{font-size:.85rem;color:var(--gray-700);margin-bottom:.2rem}.comment-date{font-size:.72rem;color:var(--gray-400)}.no-comments{font-size:.82rem;color:var(--gray-400);text-align:center;padding:1rem}.loading-state,.empty-state,.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;gap:1rem}.empty-icon,.error-icon{font-size:3rem}.empty-state h3,.error-state h3{font-size:1.2rem;font-weight:600;color:var(--gray-700)}.empty-state p,.error-state p{color:var(--gray-500);max-width:360px}.spinner{width:36px;height:36px;border:3px solid var(--gray-200);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.mobile-menu-toggle{display:flex;background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:1.2rem;width:36px;height:36px;border-radius:8px;cursor:pointer;align-items:center;justify-content:center;transition:background .15s}.mobile-menu-toggle:hover{background:#ffffff40}.mobile-menu{display:flex;flex-direction:column;background:#fff;position:fixed;top:56px;left:0;right:0;bottom:0;z-index:999;overflow-y:auto;animation:fadeIn .15s ease;padding-top:.5rem}.mobile-menu-item{display:flex;align-items:center;gap:.5rem;padding:.85rem 1.25rem;background:none;border:none;border-bottom:1px solid var(--gray-100);font-size:.9rem;color:var(--gray-700);cursor:pointer;text-align:left;transition:background .1s}.mobile-menu-item:hover{background:var(--gray-50)}.mobile-menu-item:last-child{border-bottom:none}.mobile-menu-logout{color:var(--danger)}@media (max-width: 768px){.header-desktop{display:none!important}.app-header{padding:.6rem 1rem}.header-brand h1{font-size:1.1rem}.header-brand p{display:none}.brand-icon{font-size:1.4rem}.date-bar{padding:.5rem .75rem;flex-wrap:wrap;justify-content:center;gap:.5rem}.date-bar-actions{width:100%;justify-content:center;order:-1}.date-nav{width:100%;justify-content:center}.date-display{min-width:140px}.dashboard-main{padding:.75rem}.patients-grid{grid-template-columns:1fr;gap:1rem}.form-row,.detail-grid{grid-template-columns:1fr}.modal-overlay{align-items:stretch!important;padding:0!important}.modal,.modal-lg,.modal-detail,.modal-history,.modal-profile{max-width:100%!important;max-height:none!important;height:100%!important;width:100%!important;margin:0!important;border-radius:0!important;display:flex;flex-direction:column}.modal-header{flex-shrink:0;position:sticky;top:0;background:#fff;z-index:2}.modal-body{flex:1!important;overflow-y:auto!important;max-height:none!important;padding:1rem!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-footer{flex-shrink:0;position:sticky;bottom:0;background:#fff;z-index:2;padding:.75rem 1rem;box-shadow:0 -2px 8px #0000000f}.modal form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.modal form .modal-body{flex:1;overflow-y:auto!important}.profile-body{grid-template-columns:1fr!important;overflow-y:visible!important;max-height:none!important}.profile-col:first-child{border-right:none!important;border-bottom:1px solid var(--gray-200);padding-bottom:1rem}.inactive-patients h4{font-size:.75rem}.inactive-patient-card{flex-wrap:wrap;gap:.5rem}.inactive-actions{width:100%;justify-content:flex-end}}.overdue-banner{display:flex;align-items:flex-start;gap:.75rem;background:#fef2f2;border-top:3px solid var(--danger);border-bottom:1px solid #fecaca;padding:.85rem 2rem;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}.overdue-banner-icon{font-size:1.4rem;flex-shrink:0;margin-top:.1rem}.overdue-banner-content{flex:1}.overdue-banner-content strong{display:block;font-size:.9rem;color:var(--danger-dark);margin-bottom:.5rem}.overdue-banner-list{display:flex;flex-wrap:wrap;gap:.4rem}.overdue-banner-item{display:inline-flex;align-items:center;gap:.5rem;background:#fff;border:1.5px solid var(--danger);border-radius:20px;padding:.3rem .75rem;font-size:.8rem;color:var(--danger-dark);font-weight:500;cursor:pointer;transition:all .15s ease}.overdue-banner-item:hover{background:var(--danger);color:#fff}.overdue-patient{opacity:.75}.overdue-time{font-weight:700;font-size:.75rem}.detail-notes{display:flex;align-items:flex-start;gap:.6rem;background:var(--info-light);border:1px solid #93c5fd;border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1.25rem}.detail-notes-icon{font-size:1.1rem;flex-shrink:0;margin-top:.1rem}.detail-notes-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--info);font-weight:600;margin-bottom:.25rem}.detail-notes-text{font-size:.875rem;color:var(--gray-700);line-height:1.5;white-space:pre-wrap}.schedule-untake-btn{margin-left:auto;font-size:.85rem;opacity:.6;transition:opacity .15s}.schedule-untake-btn:hover{opacity:1;background:var(--danger-light)!important}.label-optional{font-size:.75rem;font-weight:400;color:var(--gray-400)}textarea.form-control{resize:vertical;min-height:72px;font-family:inherit;line-height:1.5}.btn-ghost-white{background:transparent;color:#ffffffbf;border:1px solid rgba(255,255,255,.25);font-size:.8rem;padding:.4rem .8rem}.btn-ghost-white:hover{background:#ffffff26;color:#fff;border-color:#ffffff80}.modal-history{max-width:960px;width:95vw;max-height:90vh}.history-filters{display:flex;align-items:flex-end;gap:.75rem;padding:1rem 1.5rem;background:var(--gray-50);border-bottom:1px solid var(--gray-200);flex-wrap:wrap}.history-filter-group{display:flex;flex-direction:column;gap:.3rem;flex:1;min-width:140px}.history-filter-group label{font-size:.78rem;font-weight:500;color:var(--gray-600)}.history-filter-btn{flex-shrink:0;align-self:flex-end}.history-summary{display:flex;gap:0;border-bottom:1px solid var(--gray-200)}.history-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:.75rem 1rem;border-right:1px solid var(--gray-200);background:#fff}.history-stat:last-child{border-right:none}.history-stat-taken{background:var(--success-light)}.history-stat-missed{background:var(--danger-light)}.history-stat-adherence{background:var(--primary-light)}.history-stat-number{font-size:1.4rem;font-weight:700;color:var(--gray-800);line-height:1}.history-stat-taken .history-stat-number{color:var(--success-dark)}.history-stat-missed .history-stat-number{color:var(--danger-dark)}.history-stat-adherence .history-stat-number{color:var(--primary-dark)}.history-stat-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.4px;color:var(--gray-500);margin-top:.2rem}.history-body{padding:0!important;overflow-x:auto}.history-table{width:100%;border-collapse:collapse;font-size:.85rem}.history-table thead tr{background:var(--gray-100);position:sticky;top:0;z-index:1}.history-table th{padding:.65rem 1rem;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--gray-500);border-bottom:1px solid var(--gray-200);white-space:nowrap}.history-table td{padding:.65rem 1rem;border-bottom:1px solid var(--gray-100);vertical-align:middle;color:var(--gray-700)}.history-table tbody tr:last-child td{border-bottom:none}.history-table tbody tr:hover{background:var(--gray-50)}.row-missed{background:#fff8f8}.row-missed:hover{background:#fff0f0!important}.history-patient-cell{display:flex;align-items:center;gap:.5rem}.history-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.history-patient-name{display:block;font-weight:500;color:var(--gray-800);font-size:.85rem}.history-patient-age{display:block;font-size:.72rem;color:var(--gray-400)}.history-med-name{font-weight:500;color:var(--gray-800)}.history-date{white-space:nowrap;font-size:.82rem;color:var(--gray-500)}.history-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .55rem;border-radius:20px;font-size:.75rem;font-weight:600;white-space:nowrap}.history-badge-taken{background:var(--success-light);color:var(--success-dark)}.history-badge-missed{background:var(--danger-light);color:var(--danger-dark)}.history-count{font-size:.8rem;color:var(--gray-400)}@media (max-width: 768px){.history-filters{flex-direction:column}.history-filter-group{min-width:100%}.history-summary{flex-wrap:wrap}.history-stat{min-width:50%;border-bottom:1px solid var(--gray-200)}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;position:relative;overflow:hidden}.login-page:before,.login-page:after{content:"";position:absolute;border-radius:50%;opacity:.15;pointer-events:none}.login-page:before{width:400px;height:400px;background:#fff;top:-120px;left:-120px}.login-page:after{width:300px;height:300px;background:#fff;bottom:-80px;right:-80px}.login-card{background:#fff;border-radius:20px;box-shadow:0 25px 50px #00000040;padding:2.5rem 2rem 2rem;width:100%;max-width:400px;animation:slideUp .3s ease;position:relative;z-index:1}.login-brand{text-align:center;margin-bottom:2rem}.login-icon{font-size:3rem;display:block;margin-bottom:.75rem;filter:drop-shadow(0 4px 8px rgba(99,102,241,.3))}.login-brand h1{font-size:2rem;font-weight:800;background:linear-gradient(135deg,var(--primary) 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.25rem;letter-spacing:-.5px}.login-brand p{color:var(--gray-400);font-size:.875rem;letter-spacing:.3px}.login-tabs{display:flex;background:var(--gray-100);border-radius:10px;padding:4px;margin-bottom:1.75rem;gap:4px}.login-tab{flex:1;background:none;border:none;padding:.55rem 1rem;font-size:.875rem;font-weight:600;color:var(--gray-500);cursor:pointer;border-radius:7px;transition:all .2s ease;text-align:center}.login-tab.active{background:#fff;color:var(--primary);box-shadow:0 1px 4px #0000001f}.login-tab:not(.active):hover{color:var(--gray-700);background:#ffffff80}.login-form{display:flex;flex-direction:column}.login-form .form-group{margin-bottom:1.1rem}.login-form label{font-size:.8rem;font-weight:600;color:var(--gray-600);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.4rem}.login-form .form-control{border-radius:10px;padding:.65rem .9rem;font-size:.95rem;border:1.5px solid var(--gray-200);background:var(--gray-50);transition:all .15s}.login-form .form-control:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px #6366f11f}.login-error{display:flex;align-items:center;gap:.5rem;background:#fff5f5;color:var(--danger-dark);border:1px solid #fecaca;border-left:3px solid var(--danger);border-radius:8px;padding:.65rem .85rem;font-size:.85rem;margin-bottom:1rem}.login-error:before{content:"⚠️";font-size:1rem}.login-success{display:flex;align-items:center;gap:.5rem;background:var(--success-light);color:var(--success-dark);border:1px solid #bbf7d0;border-left:3px solid var(--success);border-radius:8px;padding:.65rem .85rem;font-size:.85rem;margin-bottom:1rem}.login-submit{width:100%;padding:.75rem;font-size:1rem;font-weight:600;border-radius:10px;margin-top:.5rem;background:linear-gradient(135deg,var(--primary) 0%,#764ba2 100%);border:none;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #6366f159;text-align:center;justify-content:center}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #6366f173}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit:disabled{opacity:.7;cursor:not-allowed}.login-switch{text-align:center;margin-top:1.5rem;font-size:.85rem;color:var(--gray-400)}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:inherit;font-weight:600;text-decoration:none;padding:0;transition:color .15s}.link-btn:hover{color:var(--primary-dark);text-decoration:underline}.user-menu{display:flex;align-items:center;gap:.25rem;margin-left:.25rem}.user-menu-btn{display:flex;align-items:center;gap:.4rem;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:20px;padding:.3rem .75rem .3rem .3rem;cursor:pointer;color:#fff;font-size:.85rem;transition:background .15s}.user-menu-btn:hover{background:#ffffff40}.user-avatar{width:26px;height:26px;border-radius:50%;background:#ffffff4d;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}.user-name{font-weight:500}.user-notif-dot{font-size:.75rem}.user-logout-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc;font-size:.78rem;font-weight:500;padding:.3rem .65rem;border-radius:6px;cursor:pointer;transition:all .15s}.user-logout-btn:hover{background:#ef444433;border-color:#ef444480;color:#fff}.modal-profile{max-width:780px;width:95vw}.profile-body{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0!important}.profile-col{display:flex;flex-direction:column;padding:1.5rem}.profile-col:first-child{border-right:1px solid var(--gray-200)}.profile-col .form-group{margin-bottom:1rem}.profile-col-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-100)}.profile-section-title{font-size:.85rem;font-weight:600;color:var(--gray-700)}.profile-whatsapp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--gray-100)}.profile-password-section{border-top:1px solid var(--gray-200);padding-top:1rem;margin-top:auto}.profile-section-toggle{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.password-fields{margin-top:.5rem}.password-fields .form-group{margin-bottom:.75rem}.profile-whatsapp-ok{background:var(--success-light);color:var(--success-dark);border:1px solid var(--success);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.82rem}.profile-whatsapp-hint{font-size:.8rem;color:var(--gray-400);font-style:italic;margin-top:auto}.profile-feedback{padding:0 1.5rem .5rem}@media (max-width: 700px){.profile-body{grid-template-columns:1fr;overflow-y:auto;max-height:60vh}.profile-col:first-child{border-right:none;border-bottom:1px solid var(--gray-200)}.modal-profile{max-width:100%}}.alert-section{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:1rem;transition:border-color .15s,background .15s}.alert-section-active{border-color:#25d366;background:#f0fdf4}.alert-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--gray-700)}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#25d366}.checkbox-label input:disabled{cursor:not-allowed;opacity:.5}.alert-no-whatsapp{font-size:.75rem;color:var(--gray-400);font-style:italic}.alert-minutes-row{display:flex;align-items:center;gap:.75rem;margin-top:.6rem;font-size:.85rem;color:var(--gray-600)}.form-control-sm{width:auto!important;padding:.3rem .5rem;font-size:.85rem}.callmebot-steps{background:var(--info-light);border:1px solid #93c5fd;border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.75rem;font-size:.8rem;color:var(--gray-700);animation:fadeIn .15s ease}.callmebot-qr-row{display:flex;gap:1rem;align-items:flex-start}.callmebot-qr{display:flex;flex-direction:column;align-items:center;gap:.4rem;flex-shrink:0}.callmebot-qr img{border-radius:8px;border:2px solid white;box-shadow:0 2px 8px #0000001a}.callmebot-qr-label{font-size:.7rem;color:var(--info);font-weight:600;text-align:center}.callmebot-instructions{flex:1}.callmebot-instructions ol{padding-left:1.1rem;margin:0}.callmebot-instructions li{margin-bottom:.35rem;line-height:1.5}.callmebot-instructions a{color:var(--primary);font-weight:500;text-decoration:underline}.callmebot-instructions code{background:#fff;border:1px solid #93c5fd;border-radius:4px;padding:.1rem .3rem;font-size:.78rem}@media (max-width: 500px){.callmebot-qr-row{flex-direction:column;align-items:center}}.input-with-toggle{position:relative;display:flex}.input-with-toggle .form-control{padding-right:2.5rem}.input-toggle-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1rem;padding:0;line-height:1}.password-strength{margin-top:.5rem}.strength-bar{display:flex;gap:3px;margin-bottom:.4rem}.strength-segment{flex:1;height:4px;border-radius:2px;background:var(--gray-200);transition:background .2s}.strength-label{font-size:.75rem;font-weight:600}.strength-rules{list-style:none;padding:0;margin:.3rem 0 0;font-size:.75rem;color:var(--gray-500);display:flex;flex-wrap:wrap;gap:.1rem .75rem}.strength-rules li{line-height:1.6}.field-error{display:block;font-size:.78rem;color:var(--danger);margin-top:.3rem}.forgot-desc{font-size:.875rem;color:var(--gray-500);margin-bottom:1.25rem;line-height:1.5}.forgot-link{display:block;width:100%;text-align:center;background:none;border:none;color:var(--gray-400);font-size:.82rem;cursor:pointer;margin-top:.75rem;padding:.4rem;transition:color .15s}.forgot-link:hover{color:var(--primary)}.verification-sent{text-align:center;padding:1rem 0}.verification-icon{font-size:3rem;margin-bottom:1rem}.verification-sent h3{font-size:1.2rem;color:var(--gray-800);margin-bottom:.5rem}.verification-sent p{color:var(--gray-600);font-size:.9rem;line-height:1.5;margin-bottom:.75rem}.verification-hint{font-size:.82rem;color:var(--gray-400);margin-bottom:1.25rem!important}.notification-card{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:.75rem}.notification-card-header{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;font-weight:600;color:var(--gray-700)}.notification-card-desc{font-size:.78rem;color:var(--gray-500);margin-top:.35rem;line-height:1.4}.notif-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:12px;text-transform:uppercase;letter-spacing:.3px}.notif-badge-ok{background:var(--success-light);color:var(--success-dark)}.notif-badge-off{background:var(--danger-light);color:var(--danger-dark)}.field-hint{display:block;font-size:.75rem;color:var(--gray-400);margin-top:.3rem;font-style:italic}.detail-header-actions{display:flex;align-items:center;gap:.25rem}.notification-card-status{color:var(--success-dark)!important;font-weight:500}.notification-card{background:var(--gray-50);transition:border-color .15s}.notification-card:hover{border-color:var(--gray-300)}.profile-col-title{color:var(--gray-400)!important;font-size:.7rem!important;letter-spacing:1px!important;margin-bottom:1.25rem!important}.profile-col .form-group label{font-size:.8rem;font-weight:500;color:var(--gray-600)}.profile-col .form-control{border-radius:10px;background:#fff}.profile-password-section{border-top:1px solid var(--gray-100)!important}.checkbox-label{font-size:.85rem!important}.checkbox-label input[type=checkbox]{width:18px;height:18px;border-radius:4px}.autocomplete-wrapper{position:relative}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1.5px solid var(--primary);border-top:none;border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:var(--shadow-lg);z-index:50;max-height:200px;overflow-y:auto;animation:fadeIn .1s ease}.autocomplete-item{display:block;width:100%;text-align:left;padding:.55rem .75rem;font-size:.875rem;color:var(--gray-700);background:none;border:none;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .1s}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background:var(--primary-light);color:var(--primary-dark)}.patient-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover}.patient-avatar-emoji{font-size:1.3rem;line-height:1}.patient-avatar.sm .patient-avatar-img{width:100%;height:100%}.patient-avatar.sm .patient-avatar-emoji{font-size:1rem}.user-avatar-img{width:28px;height:28px;border-radius:50%;object-fit:cover}.user-avatar-emoji{font-size:1.2rem;line-height:1}.avatar-section{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--gray-100)}.avatar-preview{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;transition:transform .15s;box-shadow:0 2px 8px #6366f14d}.avatar-preview:hover{transform:scale(1.05)}.avatar-preview .avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.avatar-preview .avatar-emoji{font-size:2rem;line-height:1}.avatar-preview .avatar-letter{color:#fff;font-size:1.5rem;font-weight:700}.avatar-edit-badge{position:absolute;bottom:0;right:0;background:#fff;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:.65rem;box-shadow:0 1px 3px #0003}.avatar-actions{display:flex;flex-direction:column;gap:.25rem}.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:.4rem;margin-bottom:1rem;padding:.75rem;background:var(--gray-50);border-radius:var(--radius-sm);border:1px solid var(--gray-200)}.avatar-grid-item{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:#fff;border-radius:8px;font-size:1.3rem;cursor:pointer;transition:transform .1s,box-shadow .1s}.avatar-grid-item:hover{transform:scale(1.15);box-shadow:0 2px 6px #00000026}.section-collapse-btn{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:none;cursor:pointer;padding:.4rem 0;margin-bottom:.5rem;border-bottom:1px solid var(--gray-200);transition:opacity .15s}.section-collapse-btn:hover{opacity:.7}.section-collapse-btn h4{font-size:.85rem;font-weight:600;color:var(--gray-700);margin:0}.collapse-arrow{font-size:.9rem;color:var(--gray-400)}.header-left{display:flex;align-items:center;gap:.75rem}.header-user-info{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.25rem .5rem;border-radius:20px;transition:background .15s}.header-user-info:hover{background:#ffffff26}.header-user-avatar{width:30px;height:30px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.8rem;overflow:hidden;flex-shrink:0}.header-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.header-avatar-emoji{font-size:1.1rem;line-height:1}.header-user-name{color:#ffffffe6;font-size:.85rem;font-weight:500}@media (max-width: 768px){.header-user-name,.header-brand p{display:none}}.role-selector{display:flex;gap:.5rem}.role-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.6rem .4rem;border:2px solid var(--gray-200);border-radius:var(--radius);background:var(--gray-50);cursor:pointer;transition:all .15s;text-align:center}.role-option:hover{border-color:var(--primary-light);background:#fff}.role-option.active{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 2px #6366f126}.role-icon{font-size:1.3rem}.role-name{font-size:.8rem;font-weight:600;color:var(--gray-700)}.role-desc{font-size:.65rem;color:var(--gray-400)}@media (max-width: 768px){.role-selector{flex-direction:column}.role-option{flex-direction:row;gap:.5rem;padding:.5rem .75rem}.role-option .role-desc{display:none}}.profile-role-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .75rem;background:var(--primary-light);color:var(--primary-dark);border-radius:20px;font-size:.78rem;font-weight:600;margin-bottom:1rem}.header-center{flex:1;display:flex;justify-content:center}.header-center .header-brand{display:flex;align-items:center;gap:.5rem}.header-center .header-brand h1{font-size:1.2rem}.header-clinic{display:flex;align-items:center;gap:.5rem;background:#ffffff1f;padding:.35rem 1rem;border-radius:20px;border:1px solid rgba(255,255,255,.2)}.header-clinic-icon{font-size:1.1rem}.header-clinic-name{font-size:.95rem;font-weight:600;color:#fff;letter-spacing:.3px}.header-right{display:flex;align-items:center}.header-brand-mini{font-size:.75rem;opacity:.6;color:#fff}@media (max-width: 768px){.header-clinic-name{font-size:.82rem}.header-brand-mini{display:none}.header-center .header-brand h1{font-size:1rem}}.patient-dashboard{min-height:100vh;background:var(--gray-50)}.pd-header{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.pd-brand{font-size:1.1rem;font-weight:700}.pd-header-right{display:flex;align-items:center;gap:.75rem}.pd-user-name{font-size:.85rem;opacity:.9}.pd-logout{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.25rem .6rem;border-radius:6px;font-size:.78rem;cursor:pointer}.pd-greeting{padding:1.5rem;text-align:center}.pd-greeting h2{font-size:1.4rem;color:var(--gray-800);margin-bottom:.3rem}.pd-greeting p{color:var(--gray-500);font-size:.95rem}.pd-loading{display:flex;justify-content:center;padding:3rem}.pd-next-dose{padding:0 1.5rem 1rem}.pd-next-label{font-size:.85rem;color:var(--gray-500);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.pd-next-card{background:#fff;border:2px solid var(--success);border-radius:var(--radius-lg);padding:1.5rem;text-align:center;box-shadow:0 4px 12px #22c55e26}.pd-next-info{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem}.pd-next-name{font-size:1.2rem;font-weight:700;color:var(--gray-800)}.pd-next-dosage{font-size:1rem;color:var(--gray-500)}.pd-next-time{font-size:1.1rem;font-weight:600;color:var(--primary)}.pd-next-notes{font-size:.85rem;color:var(--gray-400);font-style:italic}.pd-countdown{font-size:.9rem;font-weight:600;margin-bottom:1rem;display:block}.pd-countdown-upcoming{color:var(--info)}.pd-countdown-urgent{color:var(--warning)}.pd-countdown-past{color:var(--danger)}.pd-take-btn{display:inline-block;padding:1rem 2.5rem;font-size:1.2rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);border:none;border-radius:50px;cursor:pointer;box-shadow:0 4px 15px #22c55e66;transition:transform .15s,box-shadow .15s}.pd-take-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px #22c55e80}.pd-take-btn:active{transform:scale(.97)}.pd-remaining{padding:0 1.5rem 1rem}.pd-remaining h3{font-size:.9rem;color:var(--gray-500);margin-bottom:.5rem}.pd-dose-list{display:flex;flex-direction:column;gap:.5rem}.pd-dose-item{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:.75rem 1rem}.pd-dose-info{display:flex;flex-direction:column;gap:.15rem}.pd-dose-name{font-size:.9rem;font-weight:500;color:var(--gray-700)}.pd-dose-time{font-size:.8rem;color:var(--gray-400)}.pd-take-btn-sm{padding:.4rem .8rem;font-size:.8rem;font-weight:600;color:#fff;background:var(--success);border:none;border-radius:20px;cursor:pointer}.pd-taken{padding:0 1.5rem 2rem}.pd-taken h3{font-size:.85rem;color:var(--gray-400);margin-bottom:.5rem}.pd-taken-list{display:flex;flex-direction:column;gap:.3rem}.pd-taken-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--success-light);border-radius:6px;font-size:.85rem;color:var(--success-dark)}.pd-taken-time{font-size:.75rem;opacity:.7}.invite-desc{font-size:.9rem;color:var(--gray-600);line-height:1.5;margin-bottom:1.25rem}.invite-section{margin-bottom:1rem}.invite-section h4{font-size:.8rem;text-transform:uppercase;color:var(--gray-400);margin-bottom:.5rem}.invite-card{display:flex;gap:1rem;align-items:center;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:1rem;margin-bottom:.5rem}.invite-card-qr img{border-radius:8px;border:2px solid white;box-shadow:var(--shadow)}.invite-card-info{flex:1}.invite-code{font-size:1.2rem;font-weight:700;color:var(--primary);letter-spacing:2px}.invite-expires{font-size:.78rem;color:var(--gray-400);margin:.25rem 0 .5rem}.invite-actions{display:flex;gap:.5rem}.invite-used{padding:.5rem .75rem;background:var(--success-light);border-radius:6px;font-size:.82rem;color:var(--success-dark);margin-bottom:.3rem}.invite-empty{text-align:center;padding:1.5rem;color:var(--gray-400)}.invite-welcome{text-align:center;padding:1rem 0 1.5rem}.invite-welcome p{color:var(--gray-600);font-size:.95rem;line-height:1.5;margin-bottom:.5rem}.invite-welcome-sub{font-size:.82rem!important;color:var(--gray-400)!important}.team-invite-section{margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--gray-200)}.team-invite-section h4{font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.75rem}.team-invite-form{display:flex;gap:.5rem;align-items:flex-end}.team-invite-form .form-control{flex:1}.team-invite-hint{font-size:.75rem;color:var(--gray-400);margin-top:.5rem}.team-members-section h4{font-size:.85rem;font-weight:600;color:var(--gray-700);margin-bottom:.75rem}.team-members-list{display:flex;flex-direction:column;gap:.5rem}.team-member-card{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-sm)}.team-member-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex-shrink:0}.team-member-info{flex:1;display:flex;flex-direction:column}.team-member-name{font-size:.9rem;font-weight:600;color:var(--gray-800)}.team-member-email{font-size:.78rem;color:var(--gray-400)}.team-badge-you{font-size:.7rem;color:var(--primary);font-weight:500}@media (max-width: 768px){.team-invite-form{flex-direction:column}}.patient-dashboard{font-size:1.05rem}.pd-next-card{border-width:3px}.pd-take-btn{min-height:56px;font-size:1.3rem}.pd-dose-item{min-height:52px}.pd-next-name{color:#0f172a}.pd-countdown-past{font-size:1rem;font-weight:700}.pd-celebration{text-align:center;padding:2rem;animation:fadeIn .5s ease}.pd-celebration-icon{font-size:4rem;margin-bottom:1rem;animation:bounce 1s ease infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.patient-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.status-done{background:var(--success);box-shadow:0 0 4px var(--success)}.status-pending{background:var(--warning);box-shadow:0 0 4px var(--warning)}.status-overdue{background:var(--danger);box-shadow:0 0 4px var(--danger);animation:pulse 1.5s infinite}.invite-existing-user{display:flex;gap:.75rem;background:var(--warning-light);border:1px solid #fcd34d;border-radius:var(--radius-sm);padding:1rem;margin-bottom:1.25rem}.invite-existing-icon{font-size:1.5rem;flex-shrink:0}.invite-existing-info p{font-size:.9rem;color:var(--gray-700);line-height:1.5;margin-bottom:.5rem}.invite-existing-hint{font-size:.82rem!important;color:var(--gray-500)!important}.appt-card{background:#fff;border:1px solid #93c5fd;border-left:4px solid var(--info);border-radius:var(--radius);padding:.75rem;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow)}.appt-card:hover{border-color:var(--info);box-shadow:0 4px 12px #3b82f626;transform:translateY(-1px)}.appt-card-done{opacity:.7;background:var(--info-light);border-color:#93c5fd}.appt-card-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem}.appt-icon{font-size:1rem}.appt-doctor{font-weight:600;font-size:.9rem;color:var(--gray-800);flex:1}.appt-time-badge{font-size:.8rem;font-weight:700;color:var(--info);background:var(--info-light);padding:.1rem .4rem;border-radius:6px}.appt-card-sub{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--gray-500);margin-bottom:.3rem}.appt-specialty{color:var(--gray-400)}.appt-type{background:var(--gray-100);padding:.1rem .4rem;border-radius:4px;font-size:.7rem}.appt-address{font-size:.75rem;color:var(--gray-400);margin-bottom:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appt-card-footer{display:flex;justify-content:space-between;align-items:center}.appt-nav-btn{font-size:.75rem;color:var(--info);text-decoration:none;font-weight:500;padding:.2rem .5rem;border-radius:4px;background:var(--info-light)}.appt-nav-btn:hover{background:#bfdbfe}.appointments-section{margin-top:1.5rem;margin-bottom:1.5rem}.section-title{font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-400);margin-bottom:.75rem}.appointments-list{display:flex;flex-direction:column;gap:.75rem}.appointment-card{background:#fff;border:1px solid #93c5fd;border-left:4px solid var(--info);border-radius:var(--radius);padding:.85rem;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow)}.appointment-card:hover{border-color:var(--info);box-shadow:0 4px 12px #3b82f626;transform:translateY(-1px)}.appointment-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.3rem}.appointment-card-doctor{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem;color:var(--gray-800)}.appointment-card-time{font-size:.85rem;font-weight:700;color:var(--info);background:var(--info-light);padding:.15rem .5rem;border-radius:6px}.appointment-card-details{font-size:.8rem;color:var(--gray-500);margin-bottom:.4rem}.appointment-card-footer{display:flex;justify-content:space-between;align-items:center}.appointment-type-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:var(--gray-100);color:var(--gray-600)}.appointment-status-completed{opacity:.6;border-color:var(--success);border-left-color:var(--success)}.exam-card{background:#fff;border:1px solid #c4b5fd;border-left:4px solid #8b5cf6;border-radius:var(--radius);padding:.75rem;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow)}.exam-card:hover{border-color:#8b5cf6;box-shadow:0 4px 12px #8b5cf626;transform:translateY(-1px)}.exam-card-done{opacity:.7;background:#f5f3ff;border-color:#c4b5fd}.exam-card-waiting{background:#fffbeb;border-color:#fbbf24;border-left-color:#f59e0b}.exam-card-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem}.exam-icon{font-size:1rem}.exam-type{font-weight:600;font-size:.9rem;color:var(--gray-800);flex:1}.exam-time-badge{font-size:.8rem;font-weight:700;color:#8b5cf6;background:#f5f3ff;padding:.1rem .4rem;border-radius:6px}.exam-card-sub{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--gray-500);margin-bottom:.3rem}.exam-lab,.exam-patient{color:var(--gray-400)}.exam-preparation{font-size:.75rem;color:#d97706;background:#fffbeb;padding:.2rem .4rem;border-radius:4px;margin-bottom:.3rem}.exam-address{font-size:.75rem;color:var(--gray-400);margin-bottom:.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exam-card-footer{display:flex;justify-content:space-between;align-items:center}.exam-result-preview{font-size:.75rem;color:var(--gray-500);margin-top:.3rem;font-style:italic}.exam-expected-date{font-size:.75rem;color:#d97706;margin-top:.3rem}.exams-section{margin-top:1.5rem;margin-bottom:1.5rem}.exams-list{display:flex;flex-direction:column;gap:.75rem}.mobile-menu-section-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.8px;color:var(--gray-400);padding:.6rem 1rem .2rem;font-weight:600;border-top:1px solid var(--gray-100);margin-top:.3rem}.mobile-menu-section-label:first-child{border-top:none;margin-top:0}.modal-lg{max-width:600px;width:95%;max-height:85vh}.manage-list{display:flex;flex-direction:column;gap:.5rem}.manage-list-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--gray-100);border-radius:var(--radius);transition:all .15s ease}.manage-list-item:hover{background:var(--gray-50);border-color:var(--gray-200)}.manage-list-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;flex-shrink:0}.manage-avatar-img{width:40px;height:40px;border-radius:50%;object-fit:cover}.manage-avatar-emoji{font-size:1.2rem}.manage-avatar-letter{font-size:1rem;font-weight:600;color:var(--primary)}.manage-list-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.manage-list-name{font-weight:600;font-size:.9rem;color:var(--gray-800);display:flex;align-items:center;gap:.4rem}.manage-badge{font-size:.65rem;background:var(--primary-light);color:var(--primary);padding:.1rem .4rem;border-radius:4px;font-weight:500}.manage-list-detail{font-size:.78rem;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-list-actions{display:flex;gap:.25rem;flex-shrink:0}.grouped-section{margin-bottom:.75rem}.grouped-patient-label{display:inline-block;font-size:.78rem;font-weight:600;color:var(--gray-600);margin-bottom:.4rem;padding:.15rem .5rem;background:var(--gray-50);border-radius:4px}.date-bar-actions{display:flex;align-items:center;gap:.4rem}.btn-quick-action{width:34px;height:34px;border-radius:50%;border:1px solid var(--gray-200);background:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.btn-quick-action:hover{background:var(--primary-light);border-color:var(--primary);transform:scale(1.1)}.detail-section{display:flex;flex-direction:column;gap:.5rem}.detail-row{display:flex;align-items:flex-start;gap:.75rem;padding:.4rem 0;border-bottom:1px solid var(--gray-50)}.detail-row:last-child{border-bottom:none}.detail-label{font-size:.78rem;color:var(--gray-400);min-width:100px;flex-shrink:0;font-weight:500}.detail-value{font-size:.85rem;color:var(--gray-800);word-break:break-word}.detail-warning{color:#d97706}.detail-badge{font-size:.75rem;padding:.2rem .5rem;border-radius:4px;font-weight:500}.badge-success{background:var(--success-light);color:var(--success)}.badge-info{background:var(--info-light);color:var(--info)}.badge-warning{background:#fffbeb;color:#d97706}.badge-danger{background:#fef2f2;color:#dc2626}.btn-success{background:var(--success);color:#fff;border:none}.btn-success:hover{background:#059669}.btn-danger{background:#dc2626;color:#fff;border:none}.btn-danger:hover{background:#b91c1c}.patient-name-block{min-width:0;flex:1}.patient-name-truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.patient-action-row{display:flex;flex-wrap:wrap;gap:.3rem;padding:.4rem .5rem;border-bottom:1px solid var(--gray-100);margin-bottom:.4rem;justify-content:center}.btn-patient-action{display:flex;align-items:center;gap:.2rem;padding:.2rem .4rem;border:1px solid var(--gray-200);border-radius:4px;background:#fff;font-size:.7rem;cursor:pointer;transition:all .15s ease;color:var(--gray-600)}.btn-patient-action span{font-size:.68rem}.btn-patient-action:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.btn-patient-action-danger:hover{background:#fef2f2;border-color:#dc2626;color:#dc2626}.history-section{margin-bottom:1.5rem;padding-left:.75rem}.history-section-title{font-size:.85rem;font-weight:600;color:var(--gray-600);margin-bottom:.5rem;padding-bottom:.3rem;padding-left:.25rem;border-bottom:1px solid var(--gray-100)}.history-badge-pending{background:var(--info-light);color:var(--info)}.row-pending{background:#fffbeb}.med-card-taken .med-card-footer,.appt-card-done .appt-card-footer,.exam-card-done .exam-card-footer,.exam-card-waiting .exam-card-footer{justify-content:flex-end}.appt-card-actions,.exam-card-actions{display:flex;align-items:center;gap:.3rem}.card-done-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--gray-200);background:#fff;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.card-done-btn:hover{background:#dcfce7;border-color:#22c55e;transform:scale(1.1)}.monitoring-measurements{display:flex;flex-direction:column;gap:1rem}.monitoring-chart{background:var(--gray-50);border-radius:var(--radius);padding:1rem}.chart-bars{display:flex;align-items:flex-end;gap:4px;height:120px}.chart-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}.chart-bar{width:100%;min-width:12px;max-width:30px;border-radius:3px 3px 0 0;transition:height .3s ease}.chart-bar-normal{background:#22c55e}.chart-bar-warning{background:#f59e0b}.chart-bar-danger{background:#ef4444}.chart-bar-label{font-size:.6rem;color:var(--gray-400);margin-top:.2rem;white-space:nowrap}.monitoring-status{font-size:.85rem}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar-month-label{font-weight:600;font-size:1rem;text-transform:capitalize;color:var(--gray-800)}.calendar-grid{margin-bottom:1rem}.calendar-header-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.3rem}.calendar-weekday{text-align:center;font-size:.7rem;font-weight:600;color:var(--gray-400);text-transform:uppercase}.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem .2rem;border:none;background:none;border-radius:6px;cursor:pointer;min-height:40px;transition:all .1s ease}.calendar-day:hover:not(.empty){background:var(--gray-100)}.calendar-day.empty{cursor:default}.calendar-today{background:var(--primary-light)!important;font-weight:700}.calendar-today .calendar-day-number{color:var(--primary)}.calendar-day-number{font-size:.85rem;color:var(--gray-700)}.calendar-dots{display:flex;gap:2px;margin-top:2px}.calendar-dot{width:5px;height:5px;border-radius:50%}.dot-med{background:#22c55e}.dot-appt{background:#3b82f6}.dot-exam{background:#8b5cf6}.calendar-legend{display:flex;justify-content:center;gap:1rem;padding-top:.5rem;border-top:1px solid var(--gray-100)}.calendar-legend-item{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:var(--gray-500)}.attachments-section{border-top:1px solid var(--gray-100);padding-top:.75rem}.attachments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.attachments-title{font-size:.8rem;font-weight:600;color:var(--gray-600)}.attachments-list{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.5rem}.attachment-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;background:var(--gray-50);border-radius:4px;font-size:.8rem}.attachment-type{flex-shrink:0}.attachment-info{flex:1;min-width:0;display:flex;flex-direction:column}.attachment-name{font-weight:500;color:var(--gray-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-notes{font-size:.72rem;color:var(--gray-400)}.attachment-actions{display:flex;gap:.2rem}.attachment-form{background:var(--gray-50);padding:.75rem;border-radius:var(--radius);margin-top:.5rem}.empty-state-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem}.exam-item-row{display:flex;gap:.4rem;align-items:center;margin-bottom:.4rem}.exam-item-row .form-control:first-child{flex:2}.exam-item-row .form-control:nth-child(2){flex:1}.monitoring-card{background:#fff;border:1px solid #fdba74;border-left:4px solid #f97316;border-radius:var(--radius);padding:.6rem .75rem;cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow)}.monitoring-card:hover{border-color:#f97316;box-shadow:0 4px 12px #f9731626;transform:translateY(-1px)}.monitoring-card-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem}.monitoring-card-icon{font-size:.9rem}.monitoring-card-name{font-weight:600;font-size:.85rem;color:var(--gray-800);flex:1}.monitoring-card-time{font-size:.75rem;font-weight:700;color:#f97316;background:#fff7ed;padding:.1rem .4rem;border-radius:6px}.monitoring-card-footer{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--gray-500)}.monitoring-card-unit{color:var(--gray-400)}.metric-checkboxes{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-top:.3rem}.metric-checkbox-item{display:flex;align-items:center;gap:.6rem;font-size:.82rem;padding:.6rem .75rem;border:2px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;background:#fff;-webkit-user-select:none;user-select:none}.metric-checkbox-item:hover{background:var(--gray-50);border-color:var(--primary)}.metric-checkbox-item input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--gray-300);border-radius:4px;flex-shrink:0;margin:0;position:relative;cursor:pointer;transition:all .15s ease}.metric-checkbox-item input[type=checkbox]:checked{background:var(--primary);border-color:var(--primary)}.metric-checkbox-item input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-size:12px;font-weight:700}.metric-checkbox-item span{flex:1;line-height:1.2}.monitoring-card-metrics{display:flex;flex-wrap:wrap;gap:.25rem;margin:.3rem 0}.monitoring-card-metric-tag{font-size:.7rem;padding:.1rem .4rem;background:#fff7ed;color:#c2410c;border-radius:4px;border:1px solid #fed7aa}.monitoring-record-list{display:flex;flex-direction:column;gap:.6rem}.monitoring-record-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--gray-50);border-radius:var(--radius)}.monitoring-record-label{min-width:120px;display:flex;flex-direction:column}.monitoring-record-metric{font-weight:600;font-size:.85rem;color:var(--gray-800)}.monitoring-record-unit{font-size:.72rem;color:var(--gray-400)}.monitoring-record-inputs{display:flex;gap:.4rem;flex:1}.monitoring-record-inputs .form-control{max-width:100px}.monitoring-patient-detail{display:flex;flex-direction:column;gap:1.25rem}.monitoring-metric-section{border:1px solid var(--gray-100);border-radius:var(--radius);padding:.75rem}.monitoring-metric-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;padding-bottom:.4rem;border-bottom:1px solid var(--gray-50)}.monitoring-metric-title{font-weight:600;font-size:.9rem;color:var(--gray-800)}.monitoring-metric-unit{font-size:.75rem;color:var(--gray-400)}.monitoring-last-values{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem}.monitoring-value-row{display:flex;align-items:center;gap:.75rem;font-size:.8rem;padding:.25rem 0;border-bottom:1px solid var(--gray-50)}.monitoring-value-row:last-child{border-bottom:none}.monitoring-value-date{color:var(--gray-400);min-width:90px;font-size:.75rem}.monitoring-value-number{color:var(--gray-800)}.monitoring-value-notes{color:var(--gray-400);font-size:.72rem;font-style:italic}.metric-disabled{opacity:.5;cursor:not-allowed}.metric-disabled input{cursor:not-allowed}.monitoring-card-done{opacity:.8;background:#fff7ed;border-color:#86efac;border-left-color:#22c55e}.monitoring-card-registered{display:flex;flex-direction:column;gap:.15rem;margin:.3rem 0}.monitoring-registered-value{font-size:.75rem;color:var(--gray-600);font-weight:500}.metric-tag-done{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important}.monitoring-details-toggle{margin-top:.4rem}.monitoring-expand-btn{cursor:pointer;font-size:.78rem;color:var(--primary);font-weight:500;padding:.3rem 0;list-style:none}.monitoring-expand-btn::-webkit-details-marker{display:none}.monitoring-expand-btn:before{content:"▶ ";font-size:.6rem}details[open]>.monitoring-expand-btn:before{content:"▼ "}.exam-group-list{display:flex;flex-direction:column;gap:.4rem;width:100%}.exam-group-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--gray-50);border-radius:4px;border-left:3px solid #8b5cf6}.exam-group-item-name{font-weight:500;font-size:.85rem;color:var(--gray-800);flex:1}.exam-group-item-prep{font-size:.72rem;color:#d97706}.exam-detail-items{margin-top:1rem;border-top:1px solid var(--gray-100);padding-top:.75rem}.exam-detail-item{padding:.6rem;border:1px solid var(--gray-100);border-left:3px solid #8b5cf6;border-radius:var(--radius);margin-bottom:.5rem}.exam-detail-item-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.exam-detail-item-name{font-weight:600;font-size:.88rem;color:var(--gray-800)}.exam-detail-item-prep{font-size:.75rem;color:#d97706;margin-top:.2rem}.exam-detail-item-info{font-size:.75rem;color:var(--gray-500);margin-top:.2rem}.exam-detail-item-buttons{margin-top:.4rem;display:flex;gap:.3rem}.exam-detail-item-action{margin-top:.5rem;padding:.5rem;background:var(--gray-50);border-radius:4px}.metric-tag-waiting{background:#fffbeb!important;color:#d97706!important;border-color:#fbbf24!important}.continuous-toggle{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;margin:-.25rem 0 .75rem;border:1px solid var(--gray-200);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;font-size:.85rem}.continuous-toggle:hover{border-color:var(--primary);background:var(--primary-light)}.continuous-toggle:has(input:checked){border-color:var(--primary);background:var(--primary-light)}.continuous-toggle input{width:16px;height:16px;accent-color:var(--primary)}.continuous-toggle-label{font-weight:500;color:var(--gray-700)}.continuous-toggle-hint{font-size:.72rem;color:var(--gray-400);margin-left:auto}.schedule-item.overdue{background:#fef2f2;border-color:#fecaca}.schedule-overdue-time{font-size:.72rem;color:#dc2626;font-weight:600;margin-left:auto}.specialty-wrapper{position:relative;z-index:10}.specialty-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid var(--gray-200);border-top:none;border-radius:0 0 var(--radius) var(--radius);box-shadow:0 8px 24px #00000026;max-height:200px;overflow-y:auto;z-index:9999}.specialty-dropdown-item{display:block;width:100%;text-align:left;padding:.5rem .75rem;border:none;background:none;font-size:.85rem;color:var(--gray-700);cursor:pointer}.specialty-dropdown-item:hover{background:var(--primary-light);color:var(--primary)}.pwa-banner{position:fixed;bottom:1rem;left:1rem;right:1rem;background:#fff;border:2px solid var(--primary);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;z-index:2000;animation:slideUp .3s ease}.pwa-banner-content{display:flex;align-items:flex-start;gap:.6rem;flex:1}.pwa-banner-icon{font-size:1.5rem;flex-shrink:0}.pwa-banner-text{font-size:.82rem;color:var(--gray-700);line-height:1.4}.pwa-banner-text strong{display:block;margin-bottom:.2rem}.pwa-banner-text p{margin:.2rem 0;color:var(--gray-500);font-size:.78rem}.pwa-banner-hint{font-size:.72rem!important;color:var(--gray-400)!important;font-style:italic}.pwa-ios-icon{font-size:1.1rem;vertical-align:middle}.pwa-banner-actions{display:flex;align-items:center;gap:.5rem}.pwa-banner-close{background:none;border:none;font-size:1.2rem;color:var(--gray-400);cursor:pointer;padding:.25rem}.calendar-view-toggle{display:flex;background:var(--gray-100);border-radius:6px;padding:2px;margin-bottom:.75rem}.calendar-toggle-btn{flex:1;padding:.4rem;border:none;background:none;border-radius:4px;font-size:.8rem;font-weight:500;color:var(--gray-500);cursor:pointer;transition:all .15s ease}.calendar-toggle-btn.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px #0000001a}.calendar-week-view{display:flex;flex-direction:column;gap:4px;margin-bottom:.75rem}.calendar-week-day{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:1px solid var(--gray-100);border-radius:var(--radius);background:#fff;cursor:pointer;transition:all .1s ease;text-align:left}.calendar-week-day:hover{background:var(--gray-50);border-color:var(--primary)}.calendar-week-day.calendar-today{background:var(--primary-light);border-color:var(--primary)}.calendar-week-day-name{font-size:.75rem;color:var(--gray-400);text-transform:capitalize;min-width:35px}.calendar-week-day-num{font-size:1rem;font-weight:600;color:var(--gray-800);min-width:25px}.calendar-week-day-events{display:flex;gap:.4rem;flex:1}.calendar-week-event{font-size:.72rem;padding:.1rem .4rem;border-radius:4px}.event-appt{background:var(--info-light);color:var(--info)}.event-exam{background:#f5f3ff;color:#8b5cf6}.calendar-week-day-empty{font-size:.8rem;color:var(--gray-300)}.event-med{background:#dcfce7;color:#166534}.dot-monitoring{background:#f97316}.event-monitoring{background:#fff7ed;color:#c2410c}.admin-panel{max-width:900px;margin:0 auto;padding:1.5rem}.admin-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.admin-header h1{font-size:1.3rem;flex:1}.admin-badge{font-size:.7rem;background:var(--danger);color:#fff;padding:.2rem .5rem;border-radius:4px;font-weight:600;text-transform:uppercase}.admin-tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-200);margin-bottom:1.5rem}.admin-tab{padding:.6rem 1.25rem;border:none;background:none;font-size:.9rem;font-weight:500;color:var(--gray-500);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.admin-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.admin-tab:hover{color:var(--gray-700)}.admin-content{min-height:400px}.admin-search{display:flex;gap:.5rem;margin-bottom:1rem}.admin-search .form-control{flex:1}.admin-table{width:100%;border-collapse:collapse;font-size:.82rem}.admin-table th{text-align:left;padding:.6rem .5rem;border-bottom:2px solid var(--gray-200);font-size:.72rem;text-transform:uppercase;color:var(--gray-400)}.admin-table td{padding:.6rem .5rem;border-bottom:1px solid var(--gray-100)}.row-blocked{background:#fef2f2}.admin-role-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:var(--gray-100);color:var(--gray-600)}.admin-status-active{color:var(--success);font-weight:500}.admin-status-blocked{color:var(--danger);font-weight:500}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;font-size:.82rem;color:var(--gray-500)}.admin-flags-list{display:flex;flex-direction:column;gap:.75rem}.admin-flag-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;border:1px solid var(--gray-200);border-radius:var(--radius)}.admin-flag-info{display:flex;flex-direction:column;gap:.2rem}.admin-flag-key{font-weight:600;font-size:.95rem;text-transform:capitalize}.admin-flag-updated{font-size:.72rem;color:var(--gray-400)}.admin-flags-hint{margin-top:1rem;font-size:.78rem;color:var(--gray-400);text-align:center}.admin-toggle{position:relative;display:inline-block;width:48px;height:26px}.admin-toggle input{opacity:0;width:0;height:0}.admin-toggle-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background:var(--gray-300);border-radius:26px;transition:.3s}.admin-toggle-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}.admin-toggle input:checked+.admin-toggle-slider{background:var(--success)}.admin-toggle input:checked+.admin-toggle-slider:before{transform:translate(22px)}.map-embed{margin:.75rem 0;border:1px solid var(--gray-200);position:relative}.map-embed-loading{display:flex;align-items:center;justify-content:center;background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-200)}.map-embed-actions{position:absolute;bottom:8px;right:8px;display:flex;gap:.4rem;z-index:1000}.map-nav-btn{display:inline-flex;align-items:center;gap:.2rem;padding:.3rem .6rem;background:#fff;border:1px solid var(--gray-200);border-radius:4px;font-size:.72rem;font-weight:500;color:var(--gray-700);text-decoration:none;box-shadow:var(--shadow)}.map-nav-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.theme-selector{display:flex;gap:.5rem;margin-top:.5rem}.theme-option{flex:1;padding:.5rem;border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:none;font-size:.8rem;cursor:pointer;transition:all .15s;color:var(--gray-600)}.theme-option:hover{border-color:var(--primary)}.theme-option.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}.detail-map-links{display:flex;gap:.4rem;margin-top:.4rem}.modal.modal-large{max-width:680px;width:95vw;max-height:90vh}.list-modal-toolbar{display:flex;gap:.5rem;padding:.75rem 1.5rem;border-bottom:1px solid var(--gray-100);flex-wrap:wrap;align-items:center}.list-modal-search{flex:1;min-width:150px;padding:.5rem .75rem;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.85rem;outline:none;transition:border-color .15s}.list-modal-search:focus{border-color:var(--primary)}.list-modal-filter{padding:.5rem .75rem;border:1px solid var(--gray-200);border-radius:var(--radius);font-size:.85rem;background:#fff;cursor:pointer}.list-modal-body{padding:1rem 1.5rem!important;display:flex;flex-direction:column;gap:.5rem}.list-modal-group{margin-bottom:.75rem}.list-modal-group-header{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;margin-bottom:.4rem;border-bottom:1px solid var(--gray-100)}.list-modal-group-avatar{width:28px;height:28px;border-radius:50%;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:.8rem;overflow:hidden}.list-group-avatar-img{width:100%;height:100%;object-fit:cover;border-radius:50%}.list-modal-group-name{font-weight:600;font-size:.88rem;color:var(--gray-700)}.list-modal-group-count{font-size:.72rem;background:var(--gray-100);color:var(--gray-500);padding:.1rem .4rem;border-radius:10px;margin-left:auto}.list-modal-section-header{font-size:.8rem;font-weight:600;color:var(--gray-500);padding:.5rem 0 .3rem;margin-top:.5rem}.list-modal-card{display:flex;flex-direction:column;gap:.4rem;padding:.75rem;border:1px solid var(--gray-100);border-radius:var(--radius);cursor:pointer;transition:all .15s ease;background:#fff}.list-modal-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #0000000f;transform:translateY(-1px)}.list-modal-card-header{display:flex;align-items:flex-start;gap:.6rem}.list-modal-card-icon{font-size:1.1rem;flex-shrink:0;margin-top:.1rem}.list-modal-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.list-modal-card-name{font-weight:600;font-size:.9rem;color:var(--gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-modal-card-sub{font-size:.78rem;color:var(--gray-500);display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.list-modal-card-status{font-size:.72rem;padding:.15rem .5rem;border-radius:10px;font-weight:500;white-space:nowrap;flex-shrink:0}.list-modal-card-status.status-active{background:#dcfce7;color:#166534}.list-modal-card-status.status-completed{background:var(--gray-100);color:var(--gray-500)}.list-modal-card-status.status-cancelled{background:#fef2f2;color:#dc2626}.list-modal-card-status.status-waiting{background:#fffbeb;color:#d97706}.list-modal-progress{display:flex;align-items:center;gap:.5rem;padding-left:1.7rem}.list-modal-progress-bar{flex:1;height:6px;background:var(--gray-100);border-radius:3px;overflow:hidden}.list-modal-progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .3s ease}.list-modal-progress-text{font-size:.72rem;color:var(--gray-400);font-weight:600;min-width:30px}.list-modal-footer{padding:.75rem 1.5rem;border-top:1px solid var(--gray-100);display:flex;justify-content:center;gap:.5rem}.prescription-error{background:#fef2f2;color:#dc2626;padding:.6rem .75rem;border-radius:var(--radius);font-size:.85rem;margin-bottom:1rem;border:1px solid #fecaca}.prescription-upload-step{display:flex;flex-direction:column;gap:1rem}.prescription-dropzone{border:2px dashed var(--gray-300);border-radius:var(--radius-lg);padding:2rem;text-align:center;cursor:pointer;transition:all .2s ease;min-height:180px;display:flex;align-items:center;justify-content:center}.prescription-dropzone:hover{border-color:var(--primary);background:var(--primary-light)}.prescription-dropzone.has-image{border-style:solid;border-color:var(--primary);padding:.5rem}.prescription-dropzone-content{display:flex;flex-direction:column;align-items:center;gap:.75rem}.prescription-dropzone-icon{font-size:2.5rem}.prescription-dropzone-content p{color:var(--gray-500);font-size:.9rem}.prescription-dropzone-buttons{display:flex;gap:.5rem}.prescription-preview{position:relative;width:100%;max-height:250px;overflow:hidden;border-radius:var(--radius)}.prescription-preview-img{width:100%;max-height:250px;object-fit:contain;border-radius:var(--radius)}.prescription-remove-img{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.prescription-options{display:flex;flex-direction:column;gap:.4rem}.prescription-analyzing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1rem;text-align:center}.prescription-analyzing p{font-size:1rem;color:var(--gray-700);font-weight:500}.prescription-analyzing-hint{font-size:.82rem!important;color:var(--gray-400)!important;font-weight:400!important}.prescription-review-step{display:flex;flex-direction:column;gap:1rem}.prescription-review-header{display:flex;align-items:center;justify-content:space-between;font-size:.95rem;font-weight:600;color:var(--gray-800)}.prescription-doctor{font-size:.82rem;font-weight:400;color:var(--gray-500)}.prescription-review-hint{font-size:.82rem;color:var(--gray-500);margin:-.5rem 0 0}.prescription-meds-list{display:flex;flex-direction:column;gap:.75rem}.prescription-med-card{display:flex;gap:.75rem;padding:.75rem;border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;transition:all .15s}.prescription-med-card:hover{border-color:var(--primary)}.prescription-med-disabled{opacity:.5;background:var(--gray-50)}.prescription-med-check{display:flex;align-items:flex-start;padding-top:.3rem}.prescription-med-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.prescription-med-fields{flex:1;display:flex;flex-direction:column;gap:.4rem;min-width:0}.prescription-med-row{display:flex;gap:.4rem}.prescription-med-row .form-control{flex:1;min-width:0}.prescription-med-row .form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.prescription-review-actions{display:flex;justify-content:space-between;align-items:center;padding-top:.75rem;border-top:1px solid var(--gray-100)}@media (max-width: 600px){.modal.modal-large{max-width:100%;max-height:none;height:100%;border-radius:0}.list-modal-toolbar{padding:.5rem 1rem}.list-modal-body{padding:.75rem 1rem!important}.list-modal-footer{padding:.75rem 1rem}.prescription-med-row{flex-wrap:wrap}.prescription-med-dosage,.prescription-med-days{max-width:none;flex:1!important}}.prescription-images-grid{display:flex;flex-wrap:wrap;gap:.75rem;padding:1rem;border:2px solid var(--gray-200);border-radius:var(--radius-lg);background:var(--gray-50)}.prescription-thumb{position:relative;width:100px;height:100px;border-radius:var(--radius);overflow:hidden;border:2px solid var(--gray-200);background:#fff}.prescription-thumb-img{width:100%;height:100%;object-fit:cover}.prescription-thumb-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;background:#0009;color:#fff;border:none;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.prescription-thumb-label{position:absolute;bottom:0;left:0;right:0;background:#00000080;color:#fff;font-size:.65rem;text-align:center;padding:.1rem}.prescription-thumb-add{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--gray-300);cursor:pointer;color:var(--gray-400);font-size:1.5rem;transition:all .15s}.prescription-thumb-add:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.prescription-doctor-section{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:.75rem;margin-bottom:1rem}.prescription-doctor-check{display:flex;align-items:center;gap:.5rem;font-size:.88rem;font-weight:500;color:var(--gray-700);cursor:pointer}.prescription-doctor-check input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.prescription-doctor-fields{display:flex;gap:.5rem;margin-top:.6rem}.prescription-doctor-fields .form-control{flex:1}@media (max-width: 600px){.prescription-doctor-fields{flex-direction:column}.prescription-images-grid{justify-content:center}.prescription-thumb{width:80px;height:80px}}.prescription-field-group{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.prescription-field-label{font-size:.7rem;font-weight:600;color:var(--gray-400);text-transform:uppercase;letter-spacing:.3px}.prescription-med-dosage,.prescription-med-days{max-width:130px;flex:0 0 130px!important}.prescription-thumb-pdf{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;background:var(--gray-50)}.feedback-fab{position:fixed;bottom:1.25rem;right:1.25rem;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;border:none;font-size:1.3rem;cursor:pointer;box-shadow:0 4px 16px #6366f159;display:flex;align-items:center;justify-content:center;z-index:900;transition:transform .15s,box-shadow .15s}.feedback-fab:hover{transform:scale(1.1);box-shadow:0 6px 20px #6366f173}.feedback-fab:active{transform:scale(.95)}.feedback-type-options{display:flex;gap:.5rem;margin-top:.3rem}.feedback-type-btn{flex:1;padding:.5rem;border:2px solid var(--gray-200);border-radius:var(--radius-sm);background:#fff;font-size:.8rem;cursor:pointer;transition:all .15s;text-align:center}.feedback-type-btn:hover{border-color:var(--primary)}.feedback-type-btn.active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600}@media (max-width: 600px){.feedback-fab{bottom:.75rem;right:.75rem;width:42px;height:42px;font-size:1.1rem}}.feedback-modal{max-width:400px;max-height:85vh}.feedback-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:.65rem;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700}.feedback-list-view{display:flex;flex-direction:column;padding:1rem;gap:.75rem}.feedback-new-btn{width:100%;padding:.75rem;background:var(--primary-light);border:2px dashed var(--primary);border-radius:var(--radius);color:var(--primary);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .15s}.feedback-new-btn:hover{background:var(--primary);color:#fff;border-style:solid}.feedback-empty{text-align:center;color:var(--gray-400);font-size:.85rem;padding:1.5rem 0}.feedback-threads{display:flex;flex-direction:column;gap:.5rem}.feedback-thread-item{display:flex;flex-direction:column;gap:.3rem;padding:.75rem;border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;cursor:pointer;text-align:left;width:100%;transition:border-color .15s}.feedback-thread-item:hover{border-color:var(--primary)}.feedback-thread-unread{border-left:3px solid var(--primary);background:#f0f0ff}.feedback-thread-header{display:flex;align-items:center;gap:.4rem}.feedback-thread-type{font-size:.9rem}.feedback-thread-subject{font-weight:600;font-size:.85rem;color:var(--gray-800);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedback-thread-status{font-size:.75rem}.feedback-thread-preview{font-size:.78rem;color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feedback-thread-meta{display:flex;justify-content:space-between;font-size:.7rem;color:var(--gray-400)}.feedback-thread-view{display:flex;flex-direction:column;height:100%}.feedback-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-height:50vh}.feedback-msg{display:flex;flex-direction:column}.feedback-msg-user{align-items:flex-end}.feedback-msg-admin{align-items:flex-start}.feedback-msg-bubble{max-width:85%;padding:.6rem .85rem;border-radius:12px}.feedback-msg-user .feedback-msg-bubble{background:var(--primary);color:#fff;border-bottom-right-radius:4px}.feedback-msg-admin .feedback-msg-bubble{background:var(--gray-100);color:var(--gray-800);border-bottom-left-radius:4px}.feedback-msg-bubble p{margin:0;font-size:.88rem;line-height:1.5;white-space:pre-wrap}.feedback-msg-time{font-size:.68rem;color:var(--gray-400);margin-top:.2rem}.feedback-reply-bar{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--gray-200)}.feedback-reply-bar .form-control{flex:1}.feedback-closed-banner{text-align:center;padding:.75rem;background:var(--gray-50);border-top:1px solid var(--gray-200);color:var(--gray-400);font-size:.82rem}.feedback-new-form{display:flex;flex-direction:column;height:100%}.feedback-form-inner{flex:1;padding:1rem}.feedback-form-actions{display:flex;gap:.5rem;justify-content:flex-end;padding:.75rem 1rem;border-top:1px solid var(--gray-200)}@media (max-width: 600px){.feedback-modal{max-width:100%;max-height:none;height:100%;border-radius:0}}.feedback-delete-btn{cursor:pointer;opacity:.4;font-size:.75rem;transition:opacity .15s}.feedback-delete-btn:hover{opacity:1}
