:root{--bg: #0b0e14;--bg-elev: #121724;--bg-elev-2: #1a2030;--line: #232a3b;--line-soft: #1b2230;--text: #e6e9f0;--text-dim: #9aa4b8;--text-faint: #66708a;--accent: #5b8cff;--accent-soft: rgba(91, 140, 255, .14);--pursue: #2fbf71;--review: #e0b341;--kill: #e0556e;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .25);--mono: "SF Mono", "JetBrains Mono", "Fira Code", ui-monospace, monospace;--sans: -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.01em}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2a3142;border-radius:6px}.app{display:grid;grid-template-columns:232px 1fr;height:100%}.sidebar{background:var(--bg-elev);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}.brand .logo{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--accent),#8a6cff);display:grid;place-items:center;font-weight:800;color:#fff;font-size:15px}.brand .name{font-weight:700;letter-spacing:-.02em}.brand .name small{display:block;color:var(--text-faint);font-weight:500;font-size:11px;letter-spacing:.04em}.nav{display:flex;flex-direction:column;gap:2px;margin-top:4px}.nav button{display:flex;align-items:center;gap:10px;background:none;border:0;color:var(--text-dim);padding:9px 11px;border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px;font-family:var(--sans);text-align:left;width:100%;transition:background .12s,color .12s}.nav button:hover{background:var(--bg-elev-2);color:var(--text)}.nav button.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav .ico{width:16px;text-align:center;opacity:.9}.sidebar .foot{margin-top:auto;color:var(--text-faint);font-size:11.5px;padding:8px}.main{overflow:auto;padding:26px 30px 60px}.topbar{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px}.topbar .sub{color:var(--text-dim);font-size:13px;margin-top:3px}.btn{background:var(--accent);color:#fff;border:0;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:var(--sans);transition:filter .12s,opacity .12s}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line)}.grid{display:grid;gap:16px}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}@media (max-width: 1000px){.cols-4{grid-template-columns:repeat(2,1fr)}.cols-2{grid-template-columns:1fr}}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card h3{font-size:13px;color:var(--text-dim);font-weight:600;margin-bottom:14px;letter-spacing:.02em}.stat .label{color:var(--text-dim);font-size:12.5px;text-transform:uppercase;letter-spacing:.06em}.stat .value{font-size:32px;font-weight:700;font-family:var(--mono);margin-top:6px;letter-spacing:-.02em}.stat .hint{color:var(--text-faint);font-size:12px;margin-top:4px}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:650;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip.pursue{color:var(--pursue);background:#2fbf7121}.chip.review{color:var(--review);background:#e0b34121}.chip.kill{color:var(--kill);background:#e0556e21}.chip.syn{color:#b08cff;background:#b08cff21}.fbar{display:grid;grid-template-columns:116px 1fr 34px;align-items:center;gap:10px;margin:5px 0}.fbar .fname{color:var(--text-dim);font-size:12px}.fbar .track{height:6px;background:var(--bg-elev-2);border-radius:4px;overflow:hidden}.fbar .fill{height:100%;background:linear-gradient(90deg,var(--accent),#8a6cff);border-radius:4px}.fbar .fval{font-family:var(--mono);font-size:11.5px;color:var(--text-dim);text-align:right}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--text-faint);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:0 12px 10px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid var(--line-soft);vertical-align:top}tr:hover td{background:#ffffff04}.mono{font-family:var(--mono)}.alpha{font-family:var(--mono);font-weight:600;color:var(--accent)}.dim{color:var(--text-dim)}.faint{color:var(--text-faint)}.field{margin-bottom:16px}.field label{display:block;color:var(--text-dim);font-size:12.5px;margin-bottom:7px}.seg{display:inline-flex;background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.seg button{background:none;border:0;color:var(--text-dim);padding:7px 14px;cursor:pointer;font-size:13px;font-family:var(--sans)}.seg button.on{background:var(--accent);color:#fff}input.txt,select.txt{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:9px 11px;border-radius:var(--radius-sm);font-size:13.5px;font-family:var(--sans);width:100%}.runlog{font-family:var(--mono);font-size:12.5px;white-space:pre-wrap;color:var(--text-dim);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;min-height:60px}.memo{border-left:2px solid var(--line);padding:2px 0 2px 16px;margin:0 0 8px}.memo .obj{color:var(--kill)}.memo .rat{color:var(--pursue)}.kv{color:var(--text-dim);font-size:13px;margin:3px 0}.kv b{color:var(--text);font-weight:600}.flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}.flow .node{background:var(--bg-elev-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 13px;font-size:12.5px;min-width:96px}.flow .node .t{font-weight:650}.flow .node .d{color:var(--text-faint);font-size:11px;margin-top:2px}.flow .node.llm{border-color:#5b8cff80;box-shadow:inset 0 0 0 1px #5b8cff26}.flow .arrow{align-self:center;color:var(--text-faint);padding:0 9px}.login-wrap{height:100%;display:grid;place-items:center}.login{width:340px}.login .card{padding:26px}.login h2{margin-bottom:6px}.login p{color:var(--text-dim);margin:0 0 20px;font-size:13px}.err{color:var(--kill);font-size:13px;margin-top:10px}.muted-note{color:var(--text-faint);font-size:12px}.empty{color:var(--text-faint);text-align:center;padding:40px}.spinner{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:-3px}@keyframes spin{to{transform:rotate(360deg)}}
