:root{--bg:#0d1117;--bg-raised:#161b22;--bg-input:#0b0f14;--border:#262d36;--border-bright:#3a444f;--text:#e6edf3;--text-dim:#8b949e;--accent:#4a9eff;--accent-dim:#1f4d7a;--good:#3fb950;--warn:#d29922;--bad:#f85149;--radius:10px;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:15px/1.55 system-ui,-apple-system,Segoe UI,sans-serif}.shell{grid-template-columns:232px 1fr;min-height:100%;display:grid}.sidebar{background:var(--bg-raised);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.2px;padding:0 10px 6px;font-size:17px;font-weight:650}.brand small{color:var(--text-dim);letter-spacing:0;font-size:12px;font-weight:400;display:block}.nav-link{color:var(--text-dim);border-radius:7px;padding:9px 11px;font-size:14px;text-decoration:none;transition:background .12s,color .12s;display:block}.nav-link:hover{color:var(--text);background:#1c232c}.nav-link.active{background:var(--accent-dim);color:#fff}.sidebar-foot{color:var(--text-dim);font-size:12px;font-family:var(--mono);border-top:1px solid var(--border);margin-top:auto;padding:10px}.main{width:100%;max-width:1100px;padding:32px 36px 64px}h1{letter-spacing:-.4px;margin:0 0 6px;font-size:24px}h2{margin:0 0 12px;font-size:17px}.lede{color:var(--text-dim);max-width:68ch;margin:0 0 26px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:18px;padding:20px}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.card-head h2{margin:0}.grid-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}label{color:var(--text-dim);margin-bottom:5px;font-size:13px;display:block}input,select,textarea{background:var(--bg-input);border:1px solid var(--border-bright);width:100%;color:var(--text);font:inherit;border-radius:7px;padding:9px 11px}textarea{font-family:var(--mono);resize:vertical;min-height:120px;font-size:13px;line-height:1.6}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.field{margin-bottom:14px}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row>*{flex:1;min-width:130px}.check{color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.check input{width:auto;accent-color:var(--accent)}button{background:var(--accent);color:#04121f;cursor:pointer;font:inherit;border:1px solid #0000;border-radius:7px;flex:none;padding:9px 16px;font-weight:560;transition:filter .12s}button:hover:not(:disabled){filter:brightness(1.12)}button:disabled{opacity:.45;cursor:not-allowed}button.ghost{border-color:var(--border-bright);color:var(--text);background:0 0}button.danger{color:var(--bad);background:0 0;border-color:#6e2b28}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border);padding:0 10px 8px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px}tr:last-child td{border-bottom:none}.mono{font-family:var(--mono);font-size:13px}.badge{border:1px solid;border-radius:20px;padding:2px 8px;font-size:12px;font-weight:560;display:inline-block}.badge.ok{color:var(--good);background:#0f2a15;border-color:#1f6f2c}.badge.no{color:var(--bad);background:#2a1211;border-color:#6e2b28}.badge.wait{color:var(--warn);background:#2a2110;border-color:#6b5119}.notice{border:1px solid;border-radius:7px;margin-bottom:16px;padding:11px 14px;font-size:14px}.notice.error{color:#ffb3ae;background:#2a1211;border-color:#6e2b28}.notice.info{color:var(--text-dim);border-color:var(--border-bright);background:var(--bg-input)}.notice.ok{color:#94e2a2;background:#0f2a15;border-color:#1f6f2c}.chat{flex-direction:column;gap:12px;max-height:52vh;margin-bottom:16px;padding-right:6px;display:flex;overflow-y:auto}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;max-width:82%;padding:11px 14px}.bubble.assistant{border:1px solid var(--border);background:#1c232c;border-bottom-left-radius:4px;align-self:flex-start}.bubble.user{background:var(--accent-dim);border-bottom-right-radius:4px;align-self:flex-end}.composer{align-items:flex-end;gap:10px;display:flex}.composer textarea{min-height:62px}.turns{flex-direction:column;gap:10px;display:flex}.turn{border-bottom:1px solid var(--border);grid-template-columns:84px 1fr;gap:12px;padding:9px 0;display:grid}.turn:last-child{border-bottom:none}.turn-who{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);padding-top:2px;font-size:12px;font-weight:600}.turn-who.agent{color:var(--accent)}.turn-text{overflow-wrap:anywhere}.turn-text.pending:after{content:"▍";color:var(--accent);animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.interrupted{color:var(--warn);margin-left:6px;font-size:12px}.pin-wrap{text-align:center;max-width:400px;margin:8vh auto 0}.pin-input{font-family:var(--mono);letter-spacing:14px;text-align:center;margin:20px 0 14px;padding:16px 10px 16px 24px;font-size:34px}.metrics{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}.metric{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:11px 13px}.metric b{font-size:19px;font-weight:600;font-family:var(--mono);display:block}.metric span{color:var(--text-dim);font-size:12px}.empty{color:var(--text-dim);text-align:center;padding:22px}pre{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;margin:0;padding:13px;font-size:12.5px;overflow-x:auto}.summary{white-space:pre-wrap;background:var(--bg-input);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:13px 16px}@media (width<=800px){.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:static}.brand,.sidebar-foot{border:none;width:100%;margin:0}.main{padding:20px 16px 48px}}
