:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1e222b;--border: #2a2f3a;--text: #e6e8ec;--muted: #9aa3b2;--accent: #4ade80;--accent-dim: #2f7d52;--danger: #f87171;--warn: #fbbf24;--radius: 10px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overflow-x:hidden}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}.app{max-width:1100px;margin:0 auto;padding:24px 20px 64px}.app-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.app-header h1{font-size:20px;margin:0;letter-spacing:.3px}.app-header .sub{color:var(--muted);font-size:13px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:24px;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{background:none;border:none;color:var(--muted);padding:10px 16px;cursor:pointer;font-size:14px;border-bottom:2px solid transparent;margin-bottom:-1px;flex:0 0 auto;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.dropzone{position:relative;border:2px dashed var(--border);border-radius:var(--radius);padding:56px 24px;text-align:center;color:var(--muted);background:var(--panel);transition:border-color .15s,background .15s;cursor:pointer}.help-btn{position:absolute;top:12px;right:12px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:14px;font-weight:700;cursor:pointer;line-height:1}.help-btn:hover{color:var(--text);border-color:var(--accent)}.dropzone.drag{border-color:var(--accent);background:var(--panel-2)}.dropzone h2{color:var(--text);margin:0 0 8px;font-size:18px}.dropzone .hint{font-size:13px}.btn{background:var(--accent-dim);color:var(--text);border:1px solid var(--accent);border-radius:8px;padding:8px 16px;cursor:pointer;font-size:14px}.btn:hover{background:var(--accent);color:#06210f}.btn:disabled{opacity:.5;cursor:default}.sample-row{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:13px;flex-wrap:wrap}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.muted{color:var(--muted)}.stat-row{display:flex;flex-wrap:wrap;gap:28px}.stat-value{font-size:24px;font-weight:600}.stat-value.sm{font-size:18px;color:var(--muted)}.stat-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.stat-trend{margin-top:5px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:3px;min-height:16px}.stat-trend .arrow{font-size:13px;line-height:1}.stat-trend.good{color:var(--accent)}.stat-trend.bad{color:var(--danger)}.stat-trend.flat{color:var(--muted)}.stat-caption{margin:14px 0 0;font-size:11px}.warnings{margin:14px 0 0;padding:12px 12px 12px 16px;list-style:none;background:var(--panel-2);border-left:3px solid var(--warn);border-radius:6px;font-size:13px;color:var(--muted)}.warnings li+li{margin-top:6px}.page{margin-top:16px}.page-head h2{margin:0 0 4px;font-size:18px}.page-head p{margin:0 0 14px;max-width:70ch;font-size:13px}.plot-figure{width:100%}.plot-figure svg{height:auto;max-width:100%}.card+.card{margin-top:16px}.page>.card,.page>.mini-grid{margin-top:16px}.mini-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:end}.mini-title{font-size:13px;font-weight:600;color:var(--text);margin-bottom:8px}.card.mini{padding:12px}.hcp-chart{position:relative}.hcp-tip{position:absolute;z-index:30;transform:translate(-50%,calc(-100% - 12px));padding:7px 11px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 20px #00000073;text-align:center;white-space:nowrap;pointer-events:none}.hcp-tip.below{transform:translate(-50%,12px)}.hcp-tip-index{font-size:24px;font-weight:700;line-height:1.05;color:var(--text);font-variant-numeric:tabular-nums}.hcp-tip-round{margin-top:3px;font-size:12px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.hcp-tip-round-label{font-weight:400;color:var(--muted)}.hcp-tip-date{margin-top:2px;font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.info-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:4px;border:1px solid var(--warn);border-radius:50%;color:var(--warn);font-size:10px;font-style:italic;font-weight:700;line-height:1;cursor:help;vertical-align:middle;outline:none}.info-badge .info-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:20;width:max(240px,20vw);max-width:340px;padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-left:3px solid var(--warn);border-radius:8px;box-shadow:0 6px 20px #00000073;color:var(--text);font-size:12px;font-style:normal;font-weight:400;line-height:1.45;letter-spacing:normal;text-transform:none;white-space:normal;opacity:0;visibility:hidden;transition:opacity .12s ease}.info-badge:hover .info-pop,.info-badge:focus .info-pop,.info-badge:focus-visible .info-pop{opacity:1;visibility:visible}.par-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.par-card-head .stat-value{font-size:20px;line-height:1.1}.par-card-head .stat-trend{margin-top:0}.toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer}.controls{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.filter-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:16px;padding:0;background:none;border:none;border-radius:0;opacity:.8}.filter-count{font-size:12px;white-space:nowrap;order:-1;margin-right:auto}.mini-head{display:flex;justify-content:flex-end;align-items:center}.segmented{display:inline-flex;align-items:center;gap:4px;font-size:12px}.segmented-label{color:var(--muted);margin-right:2px}.seg{background:var(--panel-2);color:var(--muted);border:1px solid var(--border);border-radius:5px;padding:2px 8px;cursor:pointer;font-size:12px}.seg:hover{color:var(--text)}.seg.active{color:#06210f;background:var(--accent);border-color:var(--accent)}.select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:14px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{text-align:right;padding:6px 10px;border-bottom:1px solid var(--border)}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table th{color:var(--muted);font-weight:500;text-transform:uppercase;font-size:11px;letter-spacing:.3px}.data-table td.emph{font-weight:700;font-variant-numeric:tabular-nums}.data-table td{font-variant-numeric:tabular-nums}.table-note{margin:12px 2px 0;font-size:12px;line-height:1.5}.data-table tr.low-confidence td{color:var(--muted)}.swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:8px;vertical-align:baseline}.data-table td .stat-trend{margin-top:0;justify-content:flex-end}.plot-figure figure{margin:0;color:var(--muted)}.data-table td .score-mark{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 3px;font-variant-numeric:tabular-nums;line-height:1}.score-mark.circle,.score-mark.dcircle{border:1.5px solid var(--text);border-radius:50%}.score-mark.square,.score-mark.dsquare{border:1.5px solid var(--text);border-radius:3px}.score-mark.dcircle,.score-mark.dsquare{box-shadow:0 0 0 2px var(--panel),0 0 0 3.5px var(--text)}.error{color:var(--danger)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-width:520px;width:100%;max-height:90vh;overflow-y:auto;padding:20px 24px 24px;box-shadow:0 20px 50px #00000080}.modal-wide{max-width:760px}.app-footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);display:flex;justify-content:center}.footer-link{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:4px 8px}.footer-link:hover{color:var(--text);text-decoration:underline}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}.modal-head h2{margin:0;font-size:17px}.modal-close{background:none;border:none;color:var(--muted);font-size:16px;cursor:pointer;padding:4px;line-height:1}.modal-close:hover{color:var(--text)}.help-steps{list-style:none;margin:12px 0 0;padding:0}.help-steps li{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.help-step-num{flex:0 0 auto;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent-dim);border:1px solid var(--accent);color:var(--text);font-size:12px;font-weight:700}.help-step-title{font-weight:600;color:var(--text);margin-bottom:2px}.help-step-body{font-size:13px;color:var(--muted)}.help-step-body a{color:var(--accent)}.help-step-body code{background:var(--panel-2);border-radius:4px;padding:1px 5px;font-size:12px}@media(max-width:640px){.app{padding:16px 12px 48px}.app-header{margin-bottom:16px}.app-header h1{font-size:18px}.tabs{margin-bottom:16px}.tab{padding:10px 13px}.filter-bar{justify-content:flex-start}.controls{gap:16px}.filter-count{order:0;margin-right:0;width:100%}.stat-row{gap:18px}.data-table th,.data-table td{white-space:nowrap;padding:6px 8px}.info-badge .info-pop{width:min(300px,calc(100vw - 32px));max-width:none}}
