: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}.version-picker{padding:0 8px 14px}.version-picker label{display:block;color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.version-picker select{width:100%;background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:7px 9px;font-size:12px;font-family:var(--mono);cursor:pointer}.version-picker select:disabled{color:var(--text-faint);cursor:default}.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,textarea.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%}textarea.txt{resize:vertical;line-height:1.5}.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)}}.studio{display:flex;flex-direction:column;height:100%}.stage-main{overflow:auto;padding:24px 30px 60px;flex:1}.runbar{display:flex;align-items:center;gap:18px;padding:10px 20px;background:var(--bg-elev);border-bottom:1px solid var(--line)}.runbar-brand{display:flex;align-items:center;gap:9px;cursor:pointer}.runbar-brand .logo{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--accent),#8a6cff);display:grid;place-items:center;font-weight:800;color:#fff;font-size:13px}.rb-name{font-weight:700;letter-spacing:-.02em;font-size:14px}.rb-name small{color:var(--text-faint);font-weight:500;font-size:10.5px;margin-left:5px}.rb-run{display:flex;align-items:center;gap:8px}.rb-run-label{color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.rb-run select{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 10px;font-size:12px;font-family:var(--mono);cursor:pointer;min-width:240px}.rb-nav{display:flex;gap:4px;margin-left:auto}.rb-nav a{color:var(--text-dim);padding:7px 13px;border-radius:var(--radius-sm);font-size:13px}.rb-nav a:hover{background:var(--bg-elev-2);color:var(--text)}.rb-nav a.on{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.rb-logout{padding:6px 12px;font-size:12px}.crumb{display:inline-block;color:var(--text-faint);font-size:12.5px;margin-bottom:6px}.verdict-tally{display:flex;align-items:center;gap:6px}.funnel{padding:8px}.funnel-row{display:grid;grid-template-columns:108px 118px 1fr 42px minmax(140px,1.3fr);align-items:center;gap:12px;width:100%;background:none;border:0;cursor:pointer;padding:9px 12px;border-radius:var(--radius-sm);text-align:left;color:var(--text);border-bottom:1px solid var(--line-soft);transition:background .12s}.funnel-row:hover{background:var(--bg-elev-2)}.funnel-head{display:flex;align-items:center;gap:8px}.funnel-num{color:var(--accent);font-family:var(--mono)}.funnel-name{font-weight:600}.funnel-nums{font-size:13px;color:var(--text-dim)}.funnel-kill{color:var(--kill)}.funnel-track{position:relative;height:20px;background:var(--bg);border-radius:5px;overflow:hidden}.funnel-entered{position:absolute;inset:0 auto 0 0;background:var(--bg-elev-2);border-radius:5px}.funnel-survived{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--accent),#8a6cff);border-radius:5px}.funnel-rate{font-size:12px;color:var(--text-dim);text-align:right}.funnel-reasons{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}.funnel-legend{margin-top:12px;font-size:12px}.reason-chip{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--bg-elev-2);border:1px solid var(--line);color:var(--text-dim);white-space:nowrap}.reason-chip.kill{color:var(--kill);border-color:#e0556e59}.reason-chip.clickable{cursor:pointer}.reason-chip.clickable:hover{border-color:var(--accent);color:var(--text)}.drill-list{display:flex;flex-direction:column;gap:2px}.drill-item{display:grid;grid-template-columns:14px 1fr auto 150px;align-items:center;gap:12px;width:100%;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 14px;cursor:pointer;text-align:left;color:var(--text);transition:border-color .12s}.drill-item:hover{border-color:var(--accent)}.drill-item.killed{opacity:.72}.dot{width:8px;height:8px;border-radius:50%}.dot.survived{background:var(--pursue)}.dot.killed{background:var(--kill)}.dot.entered{background:var(--text-faint)}.drill-title{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drill-meta{display:flex;gap:6px;align-items:center;justify-content:flex-end}.drill-id{font-size:11px;text-align:right;overflow:hidden;text-overflow:ellipsis}.lineage{display:flex;flex-direction:column}.lstep{display:grid;grid-template-columns:40px 1fr;gap:14px}.lstep-rail{display:flex;flex-direction:column;align-items:center}.lstep-num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--bg-elev-2);border:1px solid var(--line);color:var(--accent);font-family:var(--mono);font-size:13px}.lstep-rail:after{content:"";flex:1;width:2px;background:var(--line);margin:4px 0}.lstep:last-child .lstep-rail:after{display:none}.lstep.dead .lstep-num{color:var(--kill);border-color:#e0556e66}.lstep-body{padding-bottom:22px;min-width:0}.lstep-title{font-weight:650;margin-bottom:8px}.lstep-content{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.quote{border-left:2px solid var(--line);padding-left:12px;margin:6px 0;color:var(--text-dim);font-size:12.5px;white-space:pre-wrap}.ev-row{margin-left:12px;font-size:12.5px;color:var(--text-dim)}.tag{font-size:12px;font-weight:600;padding:2px 9px;border-radius:999px}.tag.ok{color:var(--pursue);background:#2fbf7121}.tag.bad{color:var(--kill);background:#e0556e21}.trace-pane{margin-top:12px;border-top:1px dashed var(--line);padding-top:10px}.trace-label{color:var(--text-faint);font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.trace-row{border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:6px;overflow:hidden}.trace-toggle{display:flex;align-items:center;gap:10px;width:100%;background:var(--bg);border:0;color:var(--text-dim);padding:8px 11px;cursor:pointer;font-size:12px;text-align:left}.trace-toggle:hover{background:var(--bg-elev-2)}.trace-body{padding:4px 12px 12px}.trace-block{margin-top:10px}.trace-btitle{color:var(--text-faint);font-size:10.5px;letter-spacing:.05em;margin-bottom:4px}.trace-block pre{background:var(--bg);border:1px solid var(--line-soft);border-radius:6px;padding:10px 12px;margin:0;font-family:var(--mono);font-size:11.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:340px;overflow:auto;color:var(--text-dim)}.cost-badge{display:inline-flex;gap:8px;align-items:center;font-size:11px;margin-left:auto}.cost-badge .mono{color:var(--text-dim)}.ask-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ask-presets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.ask-turn{margin:10px 0}.ask-q{font-size:13px;color:var(--text);font-weight:600}.ask-a{margin-top:4px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.ask-a-body{font-size:13px;color:var(--text-dim);white-space:pre-wrap}.ask-meta{display:flex;align-items:center;gap:10px;margin-top:8px}.ask-input{display:flex;gap:8px;margin-top:10px}.ask-input .txt{flex:1}.seg.tiny button{padding:4px 10px;font-size:12px}.reason-chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.fb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.fb-note{width:100%}.fb-actions{display:flex;align-items:center;gap:12px;margin-top:10px}.fb-history{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}.fb-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}.fb-note-text{font-size:12px;color:var(--text-dim);white-space:pre-wrap}
