:root{color-scheme:dark;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;--bg: #0b0d10;--panel: #14181d;--border: #2a323d;--fg: #d8e1ec;--muted: #6c7886;--accent: #5cf2c8;--accent2: #ffb86b;--warn: #ff6b6b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);min-height:100vh}#app{max-width:1200px;margin:0 auto;padding:20px}header{border:1px solid var(--border);background:var(--panel);padding:16px 20px;margin-bottom:16px}header h1{margin:0 0 4px;font-size:18px;letter-spacing:.05em;color:var(--accent)}header p{margin:0;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.panel{border:1px solid var(--border);background:var(--panel);padding:14px 16px;min-height:320px}.panel h2{margin:0 0 10px;font-size:12px;letter-spacing:.15em;color:var(--accent2);text-transform:uppercase}#stream{max-height:460px;overflow-y:auto;font-size:12px;line-height:1.55}.row{display:flex;gap:6px;align-items:flex-start;border-bottom:1px dashed #1f262e;padding:3px 0}.row .icon{width:14px;flex-shrink:0}.row .label{color:var(--muted);width:180px;flex-shrink:0}.row .value{color:var(--fg);word-break:break-all;white-space:pre-wrap;flex:1}.row.ok .icon{color:var(--accent)}.row.fail .icon{color:var(--warn)}.row.pending .icon{color:var(--muted)}#assessment .stat{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed #1f262e}#assessment .stat .k{color:var(--muted)}#assessment .shap-list{margin-top:12px;font-size:12px}#assessment .shap-row{display:flex;justify-content:space-between;padding:2px 0}#behavioral{border:1px solid var(--border);background:var(--panel);padding:14px 16px;margin-bottom:16px}#behavioral h2{margin:0 0 10px;font-size:12px;letter-spacing:.15em;color:var(--accent2);text-transform:uppercase}.progress-wrap{height:14px;background:#1a2128;border:1px solid var(--border);margin:8px 0}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));width:0%;transition:width .1s linear}#behavioral .counts{font-size:12px;color:var(--muted)}#behavioral .counts span{color:var(--fg)}button{background:#1a2128;color:var(--fg);border:1px solid var(--border);padding:8px 16px;font-family:inherit;font-size:13px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.4;cursor:not-allowed}.actions{display:flex;gap:8px;margin-top:8px}#summary,#feedback{border:1px solid var(--border);background:var(--panel);padding:14px 16px;margin-bottom:16px}#summary h2,#feedback h2{margin:0 0 10px;font-size:12px;letter-spacing:.15em;color:var(--accent2);text-transform:uppercase}details{margin-top:8px;border:1px solid var(--border);padding:6px 10px}details summary{cursor:pointer;color:var(--accent)}pre{white-space:pre-wrap;word-break:break-all;font-size:11px;margin:8px 0 0;max-height:320px;overflow-y:auto}.hidden{display:none!important}.banner{padding:8px 12px;margin-bottom:8px;font-size:12px}.banner.error{background:#2a1414;border:1px solid var(--warn);color:var(--warn)}.banner.ok{background:#14241e;border:1px solid var(--accent);color:var(--accent)}select,input[type=text]{background:#1a2128;color:var(--fg);border:1px solid var(--border);padding:6px;font-family:inherit}#breakdown-panel{border:1px solid var(--border);background:var(--panel);padding:14px 16px;margin-bottom:16px}#breakdown-panel h2{margin:0 0 10px;font-size:12px;letter-spacing:.15em;color:var(--accent2);text-transform:uppercase}.bd-section{margin-bottom:14px}.bd-section-title{font-size:11px;letter-spacing:.1em;color:var(--accent);text-transform:uppercase;margin-bottom:6px}.bd-final{font-size:13px;color:var(--fg)}.bd-final strong{color:var(--accent)}.bd-cold{padding:8px 10px;border:1px dashed var(--accent2);color:var(--accent2);font-size:12px}.bd-vote{display:grid;grid-template-columns:110px 1fr 200px 60px;gap:8px;align-items:center;padding:3px 0;font-size:12px}.bd-vote-name{color:var(--accent);text-transform:capitalize}.bd-vote-user{color:var(--muted)}.bd-shap-group{margin-bottom:10px}.bd-shap-title{color:var(--accent2);font-size:11px;text-transform:capitalize;margin-bottom:4px}.bd-row{display:grid;grid-template-columns:180px 1fr 60px;gap:8px;align-items:center;padding:2px 0;font-size:12px}.bd-feat{color:var(--fg)}.bd-num{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.bd-bar{height:8px;background:#1a2128;border:1px solid var(--border);position:relative;overflow:hidden}.bd-bar-fill{height:100%;background:var(--accent);transition:width .2s ease}.bd-empty{color:var(--muted);font-size:12px;padding:4px 0}.fb-header{font-size:13px;margin-bottom:6px}.fb-header strong{color:var(--accent)}.fb-question{color:var(--muted);font-size:12px;margin-bottom:10px}.fb-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.fb-yes{background:#14241e;border-color:var(--accent);color:var(--accent)}.fb-correct{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fb-label{color:var(--muted);font-size:12px}.fb-input{flex:1;min-width:200px;padding:6px 10px;background:#0d1117;border:1px solid var(--border);color:var(--fg);border-radius:4px;font-size:13px;font-family:inherit}.fb-input:focus{outline:none;border-color:var(--accent)}.fb-submit{background:var(--accent);color:#0d1117;border:none;padding:6px 14px;border-radius:4px;cursor:pointer;font-size:13px;font-weight:600}.fb-submit:disabled{opacity:.4;cursor:not-allowed}.fb-status{margin-top:8px;font-size:12px;color:var(--muted)}.fb-thanks{padding:10px 12px;border:1px solid var(--accent);background:#14241e;color:var(--accent);font-size:13px}#biometrics-panel{margin-top:16px}.bio-panel{border:1px solid var(--border);border-radius:6px;padding:16px;background:#0f1217}.bio-intro{color:var(--muted);font-size:13px;margin:4px 0 16px}.bio-intro em{color:var(--accent);font-style:normal}.bio-challenge{border:1px solid var(--border);border-radius:4px;padding:12px;margin-bottom:12px;background:#14181f;transition:opacity .3s}.bio-challenge h3{margin:0 0 8px;font-size:14px;color:var(--accent2)}.bio-task{font-size:12px;color:var(--muted);margin:0 0 8px}.bio-locked{opacity:.4;pointer-events:none}.bio-completed{border-color:var(--accent)}.bio-target{font-family:Courier New,monospace;font-size:13px;background:#0d1117;border:1px solid var(--border);padding:10px;border-radius:3px;margin-bottom:8px;-webkit-user-select:none;user-select:none;color:#d4d4d4}.bio-input{width:100%;padding:8px;background:#0d1117;border:1px solid var(--border);color:var(--fg);border-radius:3px;font-family:inherit;font-size:13px;resize:vertical}.bio-input:focus{outline:none;border-color:var(--accent)}.bio-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.bio-metric{background:#0d1117;border:1px solid var(--border);border-radius:3px;padding:6px 8px}.bio-k{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.bio-v{display:block;font-size:13px;color:var(--accent);font-family:Courier New,monospace}.bio-progress-wrap{height:6px;background:#0d1117;border-radius:3px;overflow:hidden;margin:6px 0}.bio-progress-bar{height:100%;background:var(--accent);width:0%;transition:width .2s}.bio-status{font-size:11px;color:var(--muted)}.bio-scroll-box{height:200px;overflow-y:scroll;background:#0d1117;border:1px solid var(--border);padding:12px;border-radius:3px;font-size:12px;color:#aaa}.bio-scroll-inner p{margin:0 0 10px}.bio-done{display:none;padding:8px;border:1px solid var(--accent);background:#14241e;color:var(--accent);text-align:center;border-radius:3px}.bio-done.visible{display:block}.capture-desc{color:var(--muted);font-size:12px;margin:4px 0 8px}#submit-row{margin:16px 0;text-align:center}#submit-row button{padding:10px 24px;font-size:14px;background:var(--accent);color:#0d1117;border:none;border-radius:4px;cursor:pointer;font-weight:700}#submit-row button:disabled{opacity:.4;cursor:not-allowed}#pie-panel{margin-top:20px}.pie-intro{font-size:14px;color:var(--fg);margin-bottom:12px}.pie-intro strong{color:var(--accent)}.pie-layout{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}.pie-svg{background:#0d1117;border-radius:50%}.pie-cold{color:var(--muted);font-size:13px;padding:12px}.pie-legend{display:flex;flex-direction:column;gap:6px;font-size:13px}.pie-legend-header{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--muted);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}.pie-legend-header .pie-swatch{margin-right:4px}.pie-legend-row{display:grid;grid-template-columns:16px 1fr 80px 60px;gap:8px;align-items:center;padding:4px 0}.pie-swatch{width:12px;height:12px;border-radius:2px;display:inline-block}.pie-feature{color:var(--fg)}.pie-group{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.pie-pct{color:var(--accent);font-family:Courier New,monospace;text-align:right}@media (max-width: 720px){.pie-layout{grid-template-columns:1fr}.bio-metrics{grid-template-columns:repeat(2,1fr)}}
