:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--primary-base:210;--primary:#0073e6;--primary-hover:#0061c2;--primary-light:#ebf5ff;--primary-soft:#cce6ff;--teal:#0ac7b4;--teal-hover:#09aa9a;--teal-light:#e7fefb;--success:#0fae5e;--success-light:#ecfdf5;--warning:#f59f0a;--warning-light:#fef7eb;--danger:#ee3a58;--danger-light:#fdecef;--bg-app:#f5f7fb;--bg-card:#fff;--bg-card-hover:#fafbfc;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border-light:#e2e8f0;--border-focus:#9cf;--shadow-sm:0 1px 3px #0f172a08, 0 1px 2px #0f172a0f;--shadow-md:0 4px 6px -1px #0f172a14, 0 2px 4px -2px #0f172a14;--shadow-lg:0 10px 15px -3px #0f172a14, 0 4px 6px -4px #0f172a14;--shadow-premium:0 20px 25px -5px #0f172a0d, 0 8px 10px -6px #0f172a0d, inset 0 1px 0 #fff9;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--transition-fast:.15s ease;--transition-normal:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}button,input,select,textarea{font-family:inherit}a{color:var(--primary);transition:var(--transition-fast);text-decoration:none}a:hover{color:var(--primary-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseBorder{0%{box-shadow:0 0 #0ea5e966}70%{box-shadow:0 0 0 6px #0ea5e900}to{box-shadow:0 0 #0ea5e900}}.animate-fade-in{animation:fadeIn var(--transition-normal) forwards}.animate-slide-up{animation:slideUp var(--transition-normal) forwards}.app-container{flex-direction:column;min-height:100vh;display:flex}.app-main{width:100%;max-width:1280px;animation:fadeIn var(--transition-slow) forwards;flex:1;margin:0 auto;padding:24px 16px 80px}.app-header{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light);z-index:50;box-shadow:var(--shadow-sm);background:#fffc;justify-content:space-between;align-items:center;padding:12px 24px;display:flex;position:sticky;top:0}.logo-container{color:var(--primary);align-items:center;gap:10px;font-size:1.25rem;font-weight:700;display:flex}.logo-icon{background:linear-gradient(135deg, var(--primary), var(--teal));color:#fff;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 10px #0ea5e940}.header-user-info{align-items:center;gap:16px;display:flex}.user-badge{background:var(--primary-light);border:1px solid var(--primary-soft);color:var(--primary);border-radius:9999px;align-items:center;gap:8px;padding:6px 12px;font-size:.85rem;font-weight:600;display:flex}.user-badge.patient{background:var(--teal-light);color:var(--teal-hover);border-color:#c5fcf6}.user-badge.super-admin{color:#6f0ac2;background:#f6ecfe;border-color:#e8cffc}.auth-wrapper{justify-content:center;align-items:center;min-height:80vh;padding:20px 0;display:flex}.auth-card{background:var(--bg-card);border-radius:var(--radius-lg);width:100%;max-width:500px;box-shadow:var(--shadow-premium);animation:slideUp var(--transition-normal) forwards;border:1px solid #fffc;padding:40px}.auth-title{text-align:center;color:var(--text-primary);margin-bottom:8px;font-size:1.75rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:24px;font-size:.95rem}.role-tabs{background:var(--border-light);border-radius:var(--radius-md);margin-bottom:24px;padding:4px;display:flex}.role-tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;flex:1;padding:10px;font-size:.9rem;font-weight:600}.role-tab.active{color:var(--primary);box-shadow:var(--shadow-sm);background:#fff}.form-group{margin-bottom:20px}.form-label{color:var(--text-primary);margin-bottom:6px;font-size:.875rem;font-weight:600;display:block}.form-input,.form-select,.form-textarea{border:1.5px solid var(--border-light);border-radius:var(--radius-md);width:100%;color:var(--text-primary);transition:var(--transition-fast);background-color:#fff;padding:12px 16px;font-size:.95rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--border-focus);outline:none}.survey-section{background:var(--bg-app);border-radius:var(--radius-md);border:1px dashed var(--border-light);margin-top:16px;margin-bottom:20px;padding:20px}.survey-title{color:var(--text-primary);align-items:center;gap:6px;margin-bottom:12px;font-size:.95rem;font-weight:700;display:flex}.survey-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.checkbox-label{color:var(--text-primary);cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border-light);transition:var(--transition-fast);background:#fff;align-items:center;gap:8px;padding:10px;font-size:.875rem;display:flex}.checkbox-label:hover{border-color:var(--primary-soft);background:var(--primary-light)}.checkbox-label input{width:16px;height:16px;accent-color:var(--primary)}.btn{background:linear-gradient(135deg, var(--primary), #0061c2);color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:var(--transition-fast);border:none;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:1rem;font-weight:600;display:flex;box-shadow:0 4px 12px #0ea5e933}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0ea5e94d}.btn-secondary{color:var(--text-primary);border:1.5px solid var(--border-light);box-shadow:none;background:#fff}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--text-secondary);box-shadow:none;transform:none}.btn-teal{background:linear-gradient(135deg, var(--teal), var(--teal-hover));box-shadow:0 4px 12px #0d948833}.btn-teal:hover{box-shadow:0 6px 16px #0d94884d}.btn-danger{background:linear-gradient(135deg, var(--danger), #eb1438);box-shadow:0 4px 12px #ef444433}.btn-danger:hover{box-shadow:0 6px 16px #ef44444d}.auth-toggle{text-align:center;color:var(--text-secondary);margin-top:16px;font-size:.9rem}.role-console{color:#fff;z-index:100;background:#0f172a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:8px 16px;font-size:.85rem;display:flex;box-shadow:0 4px 20px #00000026}.role-console-title{color:#38bdf8;align-items:center;gap:6px;font-weight:700;display:flex}.role-console-buttons{gap:8px;display:flex}.console-btn{color:#94a3b8;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);background:#1e293b;border:1px solid #334155;padding:4px 10px;font-size:.75rem;font-weight:600}.console-btn:hover{color:#fff;background:#334155}.console-btn.active{color:#fff;background:#0ea5e9;border-color:#38bdf8}.dashboard-grid{grid-template-columns:repeat(12,1fr);gap:24px;display:grid}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-3{grid-column:span 3}@media (width<=1024px){.col-8,.col-4,.col-6,.col-3{grid-column:span 12}}.card{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-light);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);padding:24px;position:relative;overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card-header-flex{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.card-title{color:var(--text-primary);align-items:center;gap:8px;font-size:1.15rem;font-weight:700;display:flex}.card-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.85rem}.stats-container{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{border-radius:var(--radius-md);border:1px solid var(--border-light);transition:transform var(--transition-fast);background:#fff;align-items:center;gap:16px;padding:20px;display:flex}.stat-card:hover{transform:translateY(-2px)}.stat-icon-wrapper{border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;display:flex}.stat-icon-primary{background:var(--primary-light);color:var(--primary)}.stat-icon-teal{background:var(--teal-light);color:var(--teal)}.stat-icon-success{background:var(--success-light);color:var(--success)}.stat-icon-warning{background:var(--warning-light);color:var(--warning)}.stat-icon-danger{background:var(--danger-light);color:var(--danger)}.stat-details{flex-direction:column;display:flex}.stat-value{color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1.2}.stat-label{color:var(--text-secondary);font-size:.825rem;font-weight:500}.calendar-wrapper{border-radius:var(--radius-md);border:1px solid var(--border-light);background:#fff;padding:16px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.calendar-month-title{color:var(--text-primary);font-size:1.1rem;font-weight:700}.calendar-nav-btn{border:1px solid var(--border-light);color:var(--text-primary);cursor:pointer;width:32px;height:32px;transition:var(--transition-fast);background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.calendar-nav-btn:hover{background:var(--bg-app)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.calendar-day-label{text-align:center;color:var(--text-secondary);border-bottom:1px solid var(--border-light);padding:8px 0;font-size:.75rem;font-weight:700}.calendar-cell{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg-card-hover);min-height:52px;transition:var(--transition-fast);border:1px solid #0000;flex-direction:column;justify-content:space-between;padding:4px;display:flex;position:relative}.calendar-cell.outside{opacity:.3}.calendar-cell.today{border-color:var(--primary);background:var(--primary-light)}.day-number{color:var(--text-primary);font-size:.8rem;font-weight:600}.calendar-event-dot{border-radius:50%;width:6px;height:6px;margin:2px auto 0}.calendar-badge-container{flex-direction:column;gap:2px;width:100%;margin-top:4px;display:flex;overflow:hidden}.calendar-badge{text-align:center;white-space:nowrap;text-overflow:ellipsis;border-radius:3px;padding:1px 4px;font-size:.65rem;font-weight:700;overflow:hidden}.calendar-badge.chemo{background:var(--danger-light);color:var(--danger);border-left:2px solid var(--danger)}.calendar-badge.rest{background:var(--primary-light);color:var(--primary);border-left:2px solid var(--primary)}.calendar-badge.clinic{background:var(--warning-light);color:var(--warning);border-left:2px solid var(--warning)}.calendar-badge.admission{color:#0a85c2;background:#ecf8fe;border-left:2px solid #0da6f2}.calendar-badge.discharge{color:#470ac2;background:#f2ecfe;border-left:2px solid #590df2}.effects-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.effect-card{border-left:4px solid var(--border-light);background:var(--bg-card-hover);border-radius:0 var(--radius-md) var(--radius-md) 0;transition:var(--transition-fast);padding:16px}.effect-card.severe{border-left-color:var(--danger);background:#fffafb}.effect-card.moderate{border-left-color:var(--warning);background:#fffdfa}.effect-card.mild{border-left-color:var(--primary);background:#fafcff}.effect-title{justify-content:space-between;align-items:center;font-size:.95rem;font-weight:700;display:flex}.effect-badge{border-radius:9999px;padding:2px 6px;font-size:.7rem;font-weight:600}.effect-badge.severe{background:var(--danger-light);color:var(--danger)}.effect-badge.moderate{background:var(--warning-light);color:var(--warning)}.effect-badge.mild{background:var(--primary-light);color:var(--primary)}.effect-desc{color:var(--text-secondary);margin-top:8px;font-size:.825rem}.effect-action{border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-primary);background:#fff;margin-top:10px;padding:8px;font-size:.8rem}.patient-list{flex-direction:column;gap:12px;display:flex}.patient-row-card{border:1px solid var(--border-light);border-radius:var(--radius-md);transition:var(--transition-fast);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.patient-row-card:hover{border-color:var(--primary-soft);box-shadow:var(--shadow-sm);transform:translate(4px)}.patient-meta-info{align-items:center;gap:16px;display:flex}.patient-avatar{background:var(--primary-light);width:42px;height:42px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex}.patient-name-box{flex-direction:column;display:flex}.patient-name-title{color:var(--text-primary);font-size:1rem;font-weight:700}.patient-sub-details{color:var(--text-secondary);font-size:.8rem}.patient-status-badge{background:var(--border-light);color:var(--text-secondary);border-radius:9999px;padding:4px 10px;font-size:.75rem;font-weight:600}.patient-status-badge.active{background:var(--success-light);color:var(--success)}.patient-status-badge.pending{background:var(--warning-light);color:var(--warning)}.admin-code-card{color:#fff;background:linear-gradient(135deg,#1e293b,#0f172a);border:none}.admin-code-title{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:600}.admin-code-value{color:#38bdf8;letter-spacing:2px;align-items:center;gap:12px;margin:12px 0;font-family:monospace;font-size:2.25rem;font-weight:800;display:flex}.admin-code-copy{color:#94a3b8;cursor:pointer;width:32px;height:32px;transition:var(--transition-fast);background:#ffffff14;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.admin-code-copy:hover{color:#fff;background:#ffffff26}.dashboard-tabs{border-bottom:2px solid var(--border-light);gap:8px;margin-bottom:24px;display:flex}.dashboard-tab{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-bottom:2.5px solid #0000;padding:12px 16px;font-size:.95rem;font-weight:600}.dashboard-tab:hover{color:var(--text-primary)}.dashboard-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.survey-info-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.survey-info-item{background:var(--bg-app);border-radius:var(--radius-md);border:1px solid var(--border-light);padding:14px}.survey-info-label{color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px;font-size:.75rem;font-weight:600}.survey-info-value{color:var(--text-primary);font-size:.95rem;font-weight:700}.survey-tag{border:1px solid var(--border-light);background:#fff;border-radius:9999px;margin-top:4px;margin-right:6px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.survey-tag.alert{border-color:var(--danger-light);color:var(--danger);background:#fef6f7}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn var(--transition-fast) forwards;background:#0f172a66;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-light);width:100%;max-width:680px;max-height:90vh;animation:slideUp var(--transition-normal) forwards;background:#fff;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title{color:var(--text-primary);font-size:1.25rem;font-weight:700}.modal-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.5rem;display:flex}.modal-close:hover{background:var(--bg-app)}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-light);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.side-effect-logger-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-bottom:20px;display:grid}.logger-item{border:1px solid var(--border-light);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:var(--transition-fast);background:#fff;padding:12px}.logger-item:hover{border-color:var(--primary-soft);background:var(--primary-light)}.logger-item.selected{border-color:var(--primary);background:var(--primary-light);box-shadow:0 0 0 3px var(--border-focus)}.logger-icon{margin-bottom:6px;font-size:1.5rem}.logger-name{font-size:.8rem;font-weight:700}.severity-slider{gap:8px;margin-top:12px;display:flex}.severity-btn{border-radius:var(--radius-sm);border:1px solid var(--border-light);cursor:pointer;transition:var(--transition-fast);background:#fff;flex:1;padding:6px;font-size:.75rem;font-weight:600}.severity-btn.selected-1{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.severity-btn.selected-2{background:var(--warning-light);color:var(--warning);border-color:var(--warning)}.severity-btn.selected-3{background:var(--danger-light);color:var(--danger);border-color:var(--danger)}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border-light);overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.custom-table th{background:var(--bg-app);color:var(--text-secondary);border-bottom:1px solid var(--border-light);padding:14px 16px;font-weight:700}.custom-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);background:#fff;padding:14px 16px}.custom-table tr:last-child td{border-bottom:none}.custom-table tr:hover td{background:var(--bg-card-hover)}.badge{border-radius:9999px;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-teal{background:var(--teal-light);color:var(--teal)}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.empty-state{text-align:center;color:var(--text-secondary);padding:40px 20px}.empty-state-icon{color:var(--text-muted);margin-bottom:12px;font-size:3rem}.empty-state-title{color:var(--text-primary);margin-bottom:4px;font-size:1.1rem;font-weight:700}.empty-state-desc{max-width:320px;margin:0 auto 16px;font-size:.85rem}.toast{color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:10000;animation:slideUp var(--transition-fast) forwards;background:#0f172a;align-items:center;gap:10px;padding:12px 20px;font-size:.9rem;font-weight:600;display:flex;position:fixed;bottom:24px;right:24px}.toast.success{border-left:4px solid var(--success)}.toast.error{border-left:4px solid var(--danger)}@media (width<=768px){.role-console{flex-direction:column;align-items:flex-start;gap:8px;padding:10px 12px}.role-console-buttons{white-space:nowrap;-webkit-overflow-scrolling:touch;gap:6px;width:100%;padding-bottom:4px;overflow-x:auto}.console-btn{flex-shrink:0}.col-4 .card{max-height:350px;overflow-y:auto}}@media (width<=600px){.app-header{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:12px 16px}.header-user-info{flex-wrap:wrap;justify-content:center;gap:8px;width:100%}.calendar-cell{min-height:48px;padding:2px}.calendar-badge{text-indent:-9999px;border-radius:50%;width:6px;height:6px;margin:1px auto;padding:0;display:inline-block;border-left:none!important}.calendar-badge-container{flex-flow:wrap;justify-content:center;gap:3px;margin-top:2px}.day-number{font-size:.725rem}}@media (width<=480px){.survey-grid{grid-template-columns:1fr}.checkbox-label{padding:8px 10px}.card{padding:16px}.modal-overlay{padding:8px}.modal-content{max-height:95vh}.modal-body{padding:16px}}
