:root{--bg:#0d1117;--panel:#151b23;--panel2:#1c232d;--line:#2a3441;--fg:#e6edf3;
 --dim:#8b98a5;--dim2:#5c6b7a;--acc:#4493f8;--ok:#3fb950;--warn:#d29922;--err:#f85149;
 --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--fg);font:14px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC","Segoe UI",Roboto,sans-serif}
button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--line);background:var(--panel2);color:var(--fg);padding:6px 12px}
button:hover:not(:disabled){border-color:var(--acc)}button:disabled{opacity:.4;cursor:not-allowed}
button.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}
button.ghost{background:transparent;font-size:12px;padding:4px 10px}
select{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font:inherit}
code{font-family:var(--mono);font-size:11px;color:var(--dim);background:#0b1017;padding:1px 4px;border-radius:3px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px}.brand b{font-size:15px}.brand .sub{color:var(--dim2);font-size:12px}
.dot{width:9px;height:9px;border-radius:50%;background:var(--dim2)}.dot.live{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.controls label{display:flex;align-items:center;gap:6px;color:var(--dim);font-size:12px}
.banner{margin:10px 18px 0;padding:9px 13px;border-radius:8px;font-size:13px;background:rgba(210,153,34,.12);border:1px solid rgba(210,153,34,.35);color:#e3b341}
.banner.ok{background:rgba(63,185,80,.1);border-color:rgba(63,185,80,.3);color:#56d364}
.hidden{display:none}
main{display:grid;grid-template-columns:minmax(340px,1fr) minmax(440px,1.2fr);gap:14px;padding:14px 18px 40px;align-items:start}
@media(max-width:1040px){main{grid-template-columns:1fr}}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.panel-head h2{margin:0;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.chip{font:11px/1 var(--mono);padding:5px 9px;border-radius:20px;background:var(--panel2);border:1px solid var(--line);color:var(--dim)}
.meters{display:grid;gap:8px}
.meter{display:grid;grid-template-columns:44px 1fr 46px;align-items:center;gap:10px;font-size:12px;color:var(--dim)}
.bar{height:8px;background:var(--panel2);border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--acc);transition:width .05s linear}
.bar.agent i{background:var(--ok)}
.flag{font:11px var(--mono);color:var(--dim2);text-align:right}
.calib{margin:8px 0 12px;font:11px var(--mono);color:var(--dim2)}.calib.ok{color:var(--ok)}
.transcript{height:340px;overflow-y:auto;background:#0b1017;border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:88%;padding:7px 10px;border-radius:9px;font-size:13px;white-space:pre-wrap;word-break:break-word}
.msg.user{align-self:flex-end;background:#1f6feb33;border:1px solid #1f6feb55}
.msg.agent{align-self:flex-start;background:var(--panel2);border:1px solid var(--line)}
.msg.partial{opacity:.55;font-style:italic}
.msg .meta{display:block;font:10px var(--mono);color:var(--dim2);margin-top:4px}
.bignums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:640px){.bignums{grid-template-columns:repeat(2,1fr)}}
.bignum{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.bignum>span{display:block;font-size:11px;color:var(--dim);line-height:1.4}
.bignum em{display:block;font-style:normal;font-size:10px;color:var(--dim2)}
.bignum b{font:600 24px/1.15 var(--mono)}.bignum .u{font-size:11px;color:var(--dim2);margin-left:3px;display:inline}
.bignum.good b{color:var(--ok)}.bignum.mid b{color:var(--warn)}.bignum.bad b{color:var(--err)}
.sec{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim2);margin:16px 0 8px}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}
table{border-collapse:collapse;width:100%;font:11px var(--mono)}
th,td{padding:5px 7px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
th{background:var(--panel2);color:var(--dim);font-weight:500;cursor:help}
td:first-child,th:first-child{text-align:center;color:var(--dim2)}
td.hl{color:var(--acc);font-weight:600}
td.outlier{color:var(--err);font-weight:600}
input[type=number]{background:var(--panel2);color:var(--fg);border:1px solid var(--line);border-radius:6px;padding:4px 6px;font:inherit}
td.txt{text-align:left;max-width:150px;overflow:hidden;text-overflow:ellipsis;font-family:inherit;color:var(--dim)}
.log{background:#0b1017;border:1px solid var(--line);border-radius:8px;padding:9px;height:170px;overflow-y:auto;font:11px/1.6 var(--mono)}
.log div{color:var(--dim)}.log .warn{color:var(--warn)}.log .error{color:var(--err)}.log .ok{color:var(--ok)}
.log .t{color:var(--dim2);margin-right:7px}
