:root{--bg: #fafaf7;--panel: #ffffff;--panel-2: #f5f5f2;--border: #d0d0cc;--text: #111111;--muted: #5a5a55;--accent: #7b2cbf;--link: #0c7c9e;--good: #2a8f38;--warn: #9e6b00;--bad: #c92a2a;--live: #c92a2a;--dry: #5a5a55}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 ui-monospace,SFMono-Regular,Menlo,Monaco,Liberation Mono,monospace}header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border);background:radial-gradient(ellipse at top left,rgba(123,44,191,.08),transparent 60%),var(--bg)}header .brand{display:flex;align-items:center;gap:16px;min-width:0}header .logo{width:54px;height:54px;border-radius:50%;object-fit:cover;border:1px solid var(--border);box-shadow:0 0 18px #7b2cbf26}header h1{margin:0;font-family:UnifrakturMaguntia,Cinzel,serif;font-size:40px;font-weight:400;letter-spacing:1px;color:var(--text);line-height:1}header .meta{display:flex;gap:16px;color:var(--muted);font-size:12px}header .meta .ok{color:var(--good)}header .meta .err{color:var(--bad)}main{padding:20px;max-width:1400px;margin:0 auto}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.summary .card{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px 14px}.summary .card .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px}.summary .card .value{font-size:22px;font-weight:600;margin-top:4px}.summary .card .value.good{color:var(--good)}.summary .card .value.bad{color:var(--bad)}.bots{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}.bot{background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}.bot .head{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel-2);display:flex;align-items:center;justify-content:space-between;gap:10px}.bot .title{display:flex;flex-direction:column;gap:2px;min-width:0}.bot .name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bot .sub{color:var(--muted);font-size:11px}.bot .tags{display:flex;gap:6px;flex-shrink:0}.tag{font-size:10px;padding:2px 6px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--border);color:var(--muted)}.tag.live{background:#c92a2a1a;border-color:var(--live);color:var(--live)}.tag.dry{background:#5a5a551a;color:var(--muted)}.tag.stopped{background:#9e6b001a;color:var(--warn);border-color:var(--warn)}.tag.project{background:#7b2cbf1a;color:var(--accent);border-color:var(--accent)}.tag.paper{background:#9e6b001a;color:var(--warn);border-color:var(--warn)}.bot .body{padding:10px 14px;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bot .body .kv{display:flex;flex-direction:column}.bot .body .kv .k{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.bot .body .kv .v{font-size:13px;font-weight:500}.bot .body .kv .v.good{color:var(--good)}.bot .body .kv .v.bad{color:var(--bad)}.bot .body .kv.sub .v{font-size:12px;font-weight:400;color:var(--text)}.bot .body .kv.sub .k{opacity:.8}.bot .chart-status{padding:7px 14px;border-top:1px solid var(--border);background:#9e6b001a;color:var(--warn);font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;text-align:center}.bot .chart-wrap{padding:8px 10px 6px;border-top:1px solid var(--border);background:var(--bg)}.chart-box{margin-bottom:8px}.chart-box:last-child{margin-bottom:0}.chart-cap{font-size:10px;font-weight:600;color:var(--text);opacity:.85;margin:0 0 2px 2px}.chart-empty{font-size:11px;font-style:italic;color:var(--muted);padding:18px 0;text-align:center}.recharts-cartesian-axis-tick-value{font-family:ui-monospace,monospace}.recharts-legend-item-text{color:var(--muted)!important}.recharts-tooltip-item{font-family:ui-monospace,monospace}.bot .log{margin:0;padding:10px 14px;background:var(--panel);border-top:1px solid var(--border);font-size:11.5px;line-height:1.4;white-space:pre;overflow-x:auto;max-height:480px;overflow-y:auto;color:var(--text)}.bot .log.empty{color:var(--muted);font-style:italic}.bot .cmd{padding:6px 14px;border-top:1px solid var(--border);font-size:11px;color:var(--muted);white-space:nowrap;overflow-x:auto}.bot.not-running{opacity:.72}.bot.not-running .head{background:#9e6b000f}.empty-state{padding:40px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:6px}footer{text-align:center;padding:20px;color:var(--muted);font-size:11px}footer a{color:var(--accent);text-decoration:none}footer a:hover{text-decoration:underline}.opt-card{grid-column:1 / -1}.opt-warn{background:#fff8e1;border:1px solid #d4a017;color:#5c4302;padding:.6rem .75rem;border-radius:6px;font-size:.8rem;line-height:1.4;margin:.5rem 0 .75rem}.opt-controls{display:flex;gap:.4rem;margin-bottom:.6rem}.opt-controls button{background:var(--panel);border:1px solid var(--border);color:var(--muted);padding:.25rem .6rem;border-radius:4px;font-size:.75rem;cursor:pointer}.opt-controls button.on{background:var(--accent);border-color:var(--accent);color:#fff}.opt-live{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:.5rem}.opt-stat{display:flex;flex-direction:column}.opt-stat .k{font-size:.68rem;color:var(--muted);text-transform:uppercase}.opt-stat .v{font-size:1rem;font-variant-numeric:tabular-nums}.opt-spark{display:block;margin:.25rem 0 .5rem;max-width:100%}.opt-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.72rem;color:var(--muted);margin-bottom:.5rem}.opt-leg .sw{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:.3rem}.sw.opt-a,.opt-seg.opt-a{background:#0c7c9e}.sw.opt-b,.opt-seg.opt-b{background:#2a8f38}.sw.opt-c,.opt-seg.opt-c{background:#9e6b00}.opt-rows{display:flex;flex-direction:column;gap:.45rem}.opt-row-head{display:grid;grid-template-columns:8rem 5.5rem 1fr 9rem;gap:.5rem;align-items:baseline;font-size:.8rem}.opt-op{font-weight:600}.opt-val,.opt-rate{color:var(--muted);font-size:.72rem;text-align:right}.opt-ticker{font-variant-numeric:tabular-nums;color:var(--text);text-align:right}.opt-bar{display:flex;height:5px;border-radius:3px;overflow:hidden;background:var(--panel-2)}.opt-seg{display:block;height:100%}.opt-foot{margin-top:.75rem;font-size:.7rem;color:var(--muted);line-height:1.5}.opt-foot code{background:var(--panel-2);padding:0 .25rem;border-radius:3px}
