:root{--bg:#07111f;--bg2:#0d1a2e;--panel:#112240;--panel2:#162d4e;--border:#1e3a5f;--border2:#2a4f7a;--text:#e2eeff;--muted:#7ca4cc;--accent:#38bdf8;--accent2:#0ea5e9;--green:#4ade80;--amber:#f59e0b;--red:#f87171;--purple:#c084fc;--teal:#2dd4bf;--sidebar-w:290px}[data-theme=light]{--bg:#f0f4f8;--bg2:#e8eef5;--panel:#fff;--panel2:#f1f5f9;--border:#cbd5e1;--border2:#94a3b8;--text:#0f172a;--muted:#475569;--accent:#0284c7;--accent2:#0369a1;--green:#16a34a;--amber:#d97706;--red:#dc2626;--purple:#7c3aed;--teal:#0d9488}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;font-size:14px;line-height:1.5}.app-shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:52px 1fr;min-height:100vh;display:grid}.topbar{border-bottom:1px solid var(--border);z-index:100;background:#09182b;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 20px;display:flex;position:sticky;top:0}.topbar-brand{align-items:center;gap:10px;display:flex}.topbar-logo{background:linear-gradient(135deg, var(--accent), var(--purple));color:#fff;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:flex}.topbar-title{color:var(--accent);letter-spacing:.02em;font-size:16px;font-weight:700}.topbar-subtitle{color:var(--muted);font-size:11px}.topbar-meta{color:var(--muted);align-items:center;gap:16px;font-size:12px;display:flex}.topbar-badge{border:1px solid var(--accent2);color:var(--accent);background:#0ea5e920;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.sidebar{background:var(--bg2);border-right:1px solid var(--border);flex-direction:column;gap:16px;padding:20px 16px;display:flex;overflow-y:auto}.sidebar-logo{justify-content:center;padding-bottom:4px;display:flex}.sidebar-logo-img{object-fit:contain;border-radius:10px;width:100%;height:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;font-size:10px;font-weight:700}.patient-select-wrap{position:relative}.patient-select-wrap select{background:var(--panel);border:1px solid var(--border2);width:100%;color:var(--text);cursor:pointer;appearance:none;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600}.patient-select-wrap select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #38bdf820}.select-arrow{pointer-events:none;color:var(--muted);position:absolute;top:50%;right:12px;transform:translateY(-50%)}.meta-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}.meta-card h4{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:12px;font-weight:700}.meta-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:5px 0;font-size:12px;display:flex}.meta-row:last-child{border-bottom:none}.meta-label{color:var(--muted)}.meta-value{color:var(--text);font-weight:600}.meta-value.warn{color:var(--amber)}.meta-value.ok{color:var(--green)}.meta-value.crit{color:var(--red)}.status-chip{border-radius:20px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.status-chip.drug-naive{color:var(--green);border:1px solid var(--green);background:#4ade8020}.status-chip.partial{color:var(--amber);border:1px solid var(--amber);background:#fbbf2420}.status-chip.relapse{color:var(--red);border:1px solid var(--red);background:#f8717120}.status-chip.on-med{color:var(--accent);border:1px solid var(--accent);background:#38bdf820}.ai-note{border:1px solid #2a4060;border-left:3px solid var(--purple);background:linear-gradient(135deg,#1a2a4a,#1e2d50);border-radius:10px;padding:12px}.ai-note-title{color:var(--purple);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:11px;font-weight:700}.ai-note p{color:var(--muted);font-size:11px;line-height:1.6}.ai-btn{border:1px solid var(--purple);width:100%;color:var(--purple);cursor:pointer;background:#c084fc20;border-radius:8px;margin-top:8px;padding:8px;font-size:12px;font-weight:600;transition:background .15s}.ai-btn:hover{background:#c084fc30}.main-content{flex-direction:column;gap:20px;padding:20px 24px;display:flex;overflow-y:auto}.section{flex-direction:column;gap:12px;display:flex}.section-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding-bottom:8px;display:flex}.section-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.section-dot.blue{background:var(--accent)}.section-dot.green{background:var(--green)}.section-dot.purple{background:var(--purple)}.section-dot.amber{background:var(--amber)}.section-title{color:var(--text);letter-spacing:.03em;text-transform:uppercase;font-size:13px;font-weight:700}.section-desc{color:var(--muted);margin-left:auto;font-size:11px}.row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;padding:16px;display:flex}.panel-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700}.panel-title span{color:var(--accent)}.panel.accent-top{border-top:2px solid var(--accent)}.panel.green-top{border-top:2px solid var(--green)}.panel.purple-top{border-top:2px solid var(--purple)}.panel.amber-top{border-top:2px solid var(--amber)}.recharts-cartesian-axis-tick-value{fill:var(--muted);font-size:11px}.recharts-legend-item-text{font-size:11px;color:var(--text)!important}.recharts-tooltip-wrapper{font-size:12px}.rank-tabs{gap:6px;margin-bottom:8px;display:flex}.rank-tab{cursor:pointer;border:1px solid var(--border2);color:var(--muted);background:0 0;border-radius:20px;padding:5px 12px;font-size:11px;font-weight:600;transition:all .15s}.rank-tab.active{background:var(--accent2);border-color:var(--accent2);color:#fff}.drug-list{flex-direction:column;gap:4px;max-height:300px;display:flex;overflow-y:auto}.drug-list::-webkit-scrollbar{width:4px}.drug-list::-webkit-scrollbar-track{background:0 0}.drug-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}.drug-row{background:var(--panel2);border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;transition:border-color .1s;display:flex}.drug-row:hover{border-color:var(--border2)}.drug-rank{color:var(--muted);min-width:20px;font-size:11px;font-weight:700}.drug-rank.gold{color:#f59e0b}.drug-rank.silver{color:#94a3b8}.drug-rank.bronze{color:#b45309}.drug-name{flex:1;font-size:12px;font-weight:600}.drug-moa{color:var(--muted);flex:1.2;font-size:10px}.corr-bar-wrap{background:var(--bg);border-radius:3px;width:80px;height:6px;overflow:hidden}.corr-bar{background:linear-gradient(90deg, var(--accent), var(--green));border-radius:3px;height:100%}.corr-val{color:var(--accent);text-align:right;min-width:40px;font-size:11px;font-weight:700}.moa-group{margin-bottom:12px}.moa-group-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.moa-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.moa-name{color:var(--text);text-transform:capitalize;font-size:11px;font-weight:700}.network-container{aspect-ratio:4/3;background:var(--bg);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}.network-container svg{width:100%;height:100%}.body-map-container{flex-direction:column;align-items:center;gap:10px;display:flex}.body-map-svg{width:100%;max-width:220px}.body-legend{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.legend-item{color:var(--muted);align-items:center;gap:5px;font-size:10px;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px}.rescue-notice{color:var(--muted);background:var(--bg2);border-left:3px solid var(--amber);border-radius:8px;padding:8px 12px;font-size:11px}.rescue-winner{border:1px solid var(--green);background:#4ade8010;border-radius:10px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 14px;display:flex}.rescue-winner-label{color:var(--muted);font-size:11px}.rescue-winner-drug{color:var(--green);font-size:15px;font-weight:800}.rescue-winner-score{color:var(--muted);margin-left:auto;font-size:11px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.custom-tooltip{background:var(--bg2);border:1px solid var(--border2);border-radius:8px;padding:8px 12px;font-size:12px}.custom-tooltip .label{color:var(--muted);margin-bottom:4px}.custom-tooltip .value{font-weight:600}[data-theme=light] .topbar{border-bottom-color:var(--border);background:#fff}[data-theme=light] .sidebar{background:#f8fafc}[data-theme=light] .ai-note{border-color:var(--border);border-left-color:var(--purple);background:#f3f0ff}[data-theme=light] .network-container{background:var(--bg2)}[data-theme=light] .rescue-winner{background:#f0fdf4}[data-theme=light] .status-chip.drug-naive{background:#dcfce7}[data-theme=light] .status-chip.partial{background:#fef9c3}[data-theme=light] .status-chip.relapse{background:#fee2e2}[data-theme=light] .status-chip.on-med{background:#e0f2fe}[data-theme=light] .rank-tab{background:var(--panel2);color:var(--muted)}[data-theme=light] .drug-row{background:var(--panel2)}[data-theme=light] .corr-bar-wrap{background:var(--border)}.theme-toggle{border:1px solid var(--border2);background:var(--panel);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:5px 12px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s;display:flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle svg{flex-shrink:0}
