:root{--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-xxl:24px;--fs-3xl:32px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--radius-sm:4px;--radius:6px;--radius-md:8px;--radius-lg:12px;--sidebar-w:240px;--tree-w:280px;--memory-w:300px;--topbar-h:48px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-pop:0 8px 24px #00000073}:root[data-theme=dark],:root:not([data-theme]){--bg-app:#0a0b0d;--bg-surface:#14161b;--bg-surface-2:#1a1d23;--bg-surface-3:#22262e;--bg-hover:#1f232a;--bg-active:#2a2f38;--border:#262a32;--border-strong:#353a44;--border-faint:#1d2026;--text-primary:#e6e9ef;--text-secondary:#a3a9b4;--text-tertiary:#6c727b;--text-on-accent:#0a0b0d;--accent:#5aa3ff;--accent-soft:#1d3756;--accent-hover:#6fb1ff;--success:#4ade80;--success-soft:#15321f;--warning:#f5b54a;--warning-soft:#3a2e15;--danger:#f87171;--danger-soft:#3a1818;--info:#60a5fa;--info-soft:#1a2c46;--llm:#b89cff;--llm-soft:#2a1f48;--llm-strong:#c8b3ff;--sev-low:var(--text-tertiary);--sev-medium:var(--info);--sev-high:var(--warning);--sev-critical:var(--danger)}:root[data-theme=light]{--bg-app:#f7f8fa;--bg-surface:#fff;--bg-surface-2:#f1f3f6;--bg-surface-3:#e7eaef;--bg-hover:#eef0f4;--bg-active:#e1e6ee;--border:#dde1e8;--border-strong:#c8cdd6;--border-faint:#ecedf1;--text-primary:#14161b;--text-secondary:#4a5260;--text-tertiary:#7a818d;--text-on-accent:#fff;--accent:#2563eb;--accent-soft:#dceaff;--accent-hover:#1d4ed8;--success:#16a34a;--success-soft:#d4f3df;--warning:#c2741b;--warning-soft:#fbe7c2;--danger:#dc2626;--danger-soft:#fcd5d5;--info:#2563eb;--info-soft:#dceaff;--llm:#7c4cff;--llm-soft:#ece2ff;--llm-strong:#5e2bd9;--sev-low:var(--text-tertiary);--sev-medium:var(--info);--sev-high:var(--warning);--sev-critical:var(--danger);--shadow-sm:0 1px 2px #14161b14;--shadow-md:0 4px 12px #14161b1f;--shadow-pop:0 8px 24px #14161b29}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:var(--fs-base);color:var(--text-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre{font-family:var(--font-mono);font-size:var(--fs-sm)}pre,h1,h2,h3,h4{margin:0}.row{align-items:center;display:flex}.col{flex-direction:column;display:flex}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.gap-6{gap:var(--sp-6)}.grow{flex:auto;min-width:0}.muted{color:var(--text-tertiary)}.sec{color:var(--text-secondary)}.tour-btn{padding:4px var(--sp-3);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--fs-xs);cursor:pointer;background:0 0;align-items:center;gap:6px;display:inline-flex}.tour-btn:hover{color:var(--text-primary);border-color:var(--border-strong);background:var(--bg-hover)}.howto{color:var(--text-secondary);line-height:1.6}.howto strong{color:var(--text-primary)}.howto p{margin:0 0 10px}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.right{justify-content:flex-end;display:flex}.center{justify-content:center;align-items:center;display:flex}.app{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"sidebar topbar""sidebar main";height:100vh;display:grid;overflow:hidden}.sidebar{border-right:1px solid var(--border);background:var(--bg-surface);grid-area:sidebar;overflow-y:auto}.topbar{border-bottom:1px solid var(--border);background:var(--bg-surface);grid-area:topbar}.main{flex-direction:column;grid-area:main;display:flex;overflow:hidden}.main.three-pane{grid-template-columns:var(--tree-w) 1fr var(--memory-w);display:grid}.main.scrollable{overflow-y:auto}.sb-brand{height:var(--topbar-h);padding:0 var(--sp-4);align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--border-faint);display:flex}.sb-project{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-faint);cursor:pointer;color:inherit;text-decoration:none;display:block}.sb-project,.sb-project:link,.sb-project:visited,.sb-project:hover,.sb-project:active,.sb-project:focus{color:inherit;text-decoration:none}.sb-project:hover{background:var(--bg-hover)}.sb-project:hover .pic-name,.sb-project:hover .pic-mode,.sb-project:hover .label{text-decoration:none}.sb-project .label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:var(--sp-1)}.sb-project .picker{align-items:center;gap:var(--sp-2);display:flex}.sb-project .pic-avatar{background:var(--accent-soft);width:22px;height:22px;color:var(--accent);border-radius:var(--radius-sm);font-weight:600;font-size:var(--fs-xs);justify-content:center;align-items:center;display:flex}.sb-project .pic-name{font-weight:600;font-size:var(--fs-md)}.sb-project .pic-mode{font-size:var(--fs-xs);color:var(--text-tertiary)}.sb-section{padding:var(--sp-3) var(--sp-2)}.sb-section .head{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);padding:0 var(--sp-3) var(--sp-2)}.sb-link{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--fs-md);cursor:pointer;display:flex}.sb-link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.sb-link.active{background:var(--bg-active);color:var(--text-primary);font-weight:500}.sb-link .ico{text-align:center;flex-shrink:0;width:16px;height:16px;display:inline-block}.sb-link .count{font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.tb{align-items:center;gap:var(--sp-3);height:100%;padding:0 var(--sp-4);display:flex}.tb .crumbs{align-items:center;gap:var(--sp-2);font-size:var(--fs-md);color:var(--text-secondary);display:flex}.tb .crumbs a{color:inherit}.tb .crumbs .sep{color:var(--text-tertiary)}.tb .crumbs .leaf{color:var(--text-primary);font-weight:500}.tb .spacer{flex:1}.tb .meta{align-items:center;gap:var(--sp-3);display:flex}.tb .kbd-search{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface-2);color:var(--text-tertiary);font-size:var(--fs-sm);cursor:pointer;min-width:280px;display:flex}.tb .kbd-search:hover{border-color:var(--border-strong);color:var(--text-secondary)}.kbd{font-family:var(--font-mono);border:1px solid var(--border);background:var(--bg-app);color:var(--text-tertiary);border-radius:3px;padding:1px 5px;font-size:10px}.tb .worker-status{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary);display:flex}.tb .queue{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-secondary);padding:2px var(--sp-2);background:var(--bg-surface-2);border-radius:var(--radius-sm);border:1px solid var(--border);display:flex}.btn{align-items:center;gap:var(--sp-2);padding:5px var(--sp-3);border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-surface-2);color:var(--text-primary);font-size:var(--fs-sm);white-space:nowrap;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover{background:var(--bg-hover);border-color:var(--border-strong);text-decoration:none}.btn.primary{background:var(--accent);color:var(--text-on-accent);border-color:var(--accent);font-weight:600}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.danger{color:var(--danger)}.btn.danger.primary{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn.small{padding:3px var(--sp-2);font-size:var(--fs-xs)}.btn.large{padding:7px var(--sp-4);font-size:var(--fs-md)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{background:var(--bg-surface-2);border-color:var(--border)}.btn.ghost:disabled:hover{background:0 0}.btn.primary:disabled:hover{background:var(--accent);border-color:var(--accent)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:13px;height:13px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.pill{padding:1px var(--sp-2);font-size:var(--fs-xs);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;font-weight:600;line-height:1.6;display:inline-flex}.pill .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.pill.success{color:var(--success);background:var(--success-soft)}.pill.warning{color:var(--warning);background:var(--warning-soft)}.pill.danger{color:var(--danger);background:var(--danger-soft)}.pill.info{color:var(--info);background:var(--info-soft)}.pill.llm{color:var(--llm);background:var(--llm-soft)}.pill.muted{color:var(--text-tertiary);background:var(--bg-surface-3)}.pill.outlined{border:1px solid var(--border-strong);color:var(--text-secondary);background:0 0}.sev{font-size:var(--fs-xs);text-transform:uppercase;border-radius:4px;align-items:center;gap:4px;padding:1px 6px;font-weight:600;display:inline-flex}.sev.low{color:var(--sev-low);background:var(--bg-surface-3)}.sev.medium{color:var(--sev-medium);background:var(--info-soft)}.sev.high{color:var(--sev-high);background:var(--warning-soft)}.sev.critical{color:var(--sev-critical);background:var(--danger-soft)}.input,.select,.textarea{padding:5px var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);color:var(--text-primary);font-size:var(--fs-sm);min-width:200px}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:none}.textarea{font-family:var(--font-mono);font-size:var(--fs-sm);resize:vertical;width:100%;min-height:120px}.toggle{align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);color:var(--text-secondary);display:inline-flex}.field{flex-direction:column;gap:4px;display:flex}.field .lab{font-size:var(--fs-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.field .help{font-size:var(--fs-xs);color:var(--text-tertiary)}.page{padding:var(--sp-5) var(--sp-6);max-width:1400px}.page.fluid{max-width:none}.page.pagecol{flex-direction:column;flex:auto;min-height:0;display:flex}.gridhead{flex:none}.gridbody{flex:auto;min-height:0;overflow-y:auto}.page-head{align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-5);padding-bottom:var(--sp-4);border-bottom:1px solid var(--border-faint);display:flex}.page-head .title{font-size:var(--fs-xxl);letter-spacing:-.01em;font-weight:600}.page-head .sub{font-size:var(--fs-sm);color:var(--text-tertiary);margin-top:4px}.section-title{font-size:var(--fs-md);margin:var(--sp-6) 0 var(--sp-3);color:var(--text-primary);font-weight:600}.section-title:first-child{margin-top:0}.section-sub{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:var(--sp-3)}.card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);overflow:hidden}.card .card-head{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-faint);justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.card .card-head h4{font-size:var(--fs-md);margin:0;font-weight:600}.card .card-body{padding:var(--sp-4)}.card.flat{background:0 0}.stat-grid{gap:var(--sp-3);grid-template-columns:repeat(4,1fr);display:grid}.stat-grid.cols-3{grid-template-columns:repeat(3,1fr)}.stat-grid.cols-2{grid-template-columns:repeat(2,1fr)}.stat{padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface)}.stat .label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.stat .value{font-size:var(--fs-xxl);margin-top:var(--sp-1);font-variant-numeric:tabular-nums;font-weight:600}.stat .delta{font-size:var(--fs-xs);margin-top:2px}.stat .delta.up{color:var(--success)}.stat .delta.down{color:var(--danger)}.stat .delta.flat{color:var(--text-tertiary)}.stat.highlight{background:var(--accent-soft);border-color:var(--accent)}.stat.highlight .value{color:var(--accent)}table.t{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}table.t th,table.t td{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-faint);text-align:left}table.t th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);background:var(--bg-surface-2);font-weight:600;position:sticky;top:0}table.t td.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}table.t td.right,table.t th.right{text-align:right;display:table-cell}table.t td.center,table.t th.center{text-align:center;display:table-cell}table.t tr:last-child td{border-bottom:none}table.t tr.row-link:hover{background:var(--bg-hover);cursor:pointer}table.t tfoot td{background:var(--bg-surface-2);border-top:1px solid var(--border);font-weight:600}table.t.compact th,table.t.compact td{padding:5px var(--sp-2)}.list-toolbar{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.list-toolbar .btn{white-space:nowrap}.tabs{padding:0 var(--sp-5);border-bottom:1px solid var(--border);background:var(--bg-surface);gap:0;display:flex;overflow-x:auto}.tab{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3);color:var(--text-secondary);font-size:var(--fs-md);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:500;display:flex}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--text-primary);border-bottom-color:var(--accent)}.tab .badge{background:var(--bg-surface-3);min-width:18px;height:18px;color:var(--text-secondary);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-weight:600;display:inline-flex}.tab.active .badge{background:var(--accent-soft);color:var(--accent)}.tab .badge.warn{background:var(--warning-soft);color:var(--warning)}.tab .badge.danger{background:var(--danger-soft);color:var(--danger)}.tab-content{flex:1;overflow-y:auto}.tab-pane{padding:var(--sp-5);display:none}.tab-pane.active{display:block}.seg{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);display:inline-flex;overflow:hidden}.seg button{padding:4px var(--sp-3);font-size:var(--fs-sm);color:var(--text-secondary);border-right:1px solid var(--border)}.seg button:last-child{border-right:none}.seg button:hover{background:var(--bg-hover);color:var(--text-primary)}.seg button.active{background:var(--accent-soft);color:var(--accent)}.banner{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-md);margin-bottom:var(--sp-4);border:1px solid;display:flex}.banner.success{background:var(--success-soft);border-color:var(--success);color:var(--success)}.banner.warning{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.banner.danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.banner.info{background:var(--info-soft);border-color:var(--info);color:var(--info)}.banner .grow .t{font-weight:600;font-size:var(--fs-md)}.banner .grow .s{font-size:var(--fs-sm);color:var(--text-secondary)}.banner .grow.text{color:var(--text-primary)}.banner-pause{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);background:var(--warning-soft);border-bottom:1px solid var(--warning);color:var(--warning);font-size:var(--fs-sm);display:flex}.banner-pause .ic{width:16px;height:16px}.banner-pause .countdown{font-family:var(--font-mono);font-weight:600}.banner-pause .grow{color:var(--text-primary)}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.proj-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);padding:var(--sp-4);cursor:pointer;transition:border-color .12s,transform .12s}.proj-card:hover{border-color:var(--accent);transform:translateY(-1px)}.proj-card .ph{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-2);display:flex}.proj-card .ph .av{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:var(--radius);font-weight:700;font-size:var(--fs-md);justify-content:center;align-items:center;display:flex}.proj-card .ph .n{font-size:var(--fs-md);font-weight:600}.proj-card .ph .mode{font-size:var(--fs-xs);color:var(--text-tertiary)}.proj-card .meta{gap:var(--sp-2);margin-top:var(--sp-3);font-size:var(--fs-xs);grid-template-columns:repeat(2,1fr);display:grid}.proj-card .meta .k{color:var(--text-tertiary)}.proj-card .meta .v{color:var(--text-primary);font-weight:500}.proj-card .last-run{margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--border-faint);align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);display:flex}.proj-card .spark{background:linear-gradient(180deg, transparent 0%, var(--success-soft) 100%);border-radius:var(--radius-sm);height:24px;margin-top:var(--sp-2);position:relative;overflow:hidden}.proj-card .spark .bar{background:var(--success);border-radius:1px;width:6%;position:absolute;bottom:0}.chip{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);font-size:var(--fs-xs);cursor:pointer;border-radius:999px;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.diff-file{margin-bottom:var(--sp-4)}.diff-file .head{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;justify-content:space-between;align-items:center;display:flex}.diff-file .head .path{font-family:var(--font-mono);font-size:var(--fs-sm)}.diff-file .head .stats{font-size:var(--fs-xs);color:var(--text-tertiary);gap:var(--sp-2);display:flex}.diff-file .head .stats .add{color:var(--success)}.diff-file .head .stats .rem{color:var(--danger)}.hunk{border:1px solid var(--border);background:var(--bg-surface);border-top:none}.hunk:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.hunk .hunk-head{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface-2);border-bottom:1px solid var(--border-faint);font-size:var(--fs-xs);justify-content:space-between;align-items:center;display:flex}.hunk .hunk-head .loc{font-family:var(--font-mono);color:var(--text-tertiary)}.hunk .hunk-head .actions{gap:var(--sp-2);display:flex}.hunk .code{font-family:var(--font-mono);font-size:var(--fs-sm);padding:var(--sp-2) 0}.hunk .code .line{gap:var(--sp-2);padding:0 var(--sp-3);grid-template-columns:30px 30px 1fr;display:grid}.hunk .code .line .ln{color:var(--text-tertiary);text-align:right}.hunk .code .line.add{background:var(--success-soft)}.hunk .code .line.add .text:before{content:"+ ";color:var(--success)}.hunk .code .line.rem{background:var(--danger-soft)}.hunk .code .line.rem .text:before{content:"- ";color:var(--danger)}.hunk .code .line .text{white-space:pre;color:var(--text-primary)}.attrib{padding:var(--sp-2) var(--sp-3);background:var(--llm-soft);border-top:1px solid var(--border-faint);align-items:center;gap:var(--sp-3);font-size:var(--fs-xs);color:var(--llm-strong);flex-wrap:wrap;display:flex}.attrib .label{text-transform:uppercase;letter-spacing:.04em;font-weight:600}.attrib .v{font-family:var(--font-mono)}.logs{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);font-family:var(--font-mono);font-size:var(--fs-sm);overflow:hidden}.log-line{gap:var(--sp-2);padding:3px var(--sp-3);border-bottom:1px solid var(--border-faint);white-space:nowrap;grid-template-columns:96px 60px 80px 1fr;display:grid}.log-line:hover{background:var(--bg-hover)}.log-line .ts{color:var(--text-tertiary)}.log-line .lvl{font-weight:600}.log-line .lvl.info{color:var(--info)}.log-line .lvl.warn{color:var(--warning)}.log-line .lvl.err{color:var(--danger)}.log-line .lvl.llm{color:var(--llm)}.log-line .lvl.ok{color:var(--success)}.log-line .src{color:var(--text-tertiary)}.log-line .msg{color:var(--text-primary);white-space:pre-wrap}.gantt{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);grid-template-columns:110px 1fr 80px;gap:0;display:grid;overflow:hidden}.gantt .lane-head{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.gantt .lane-axis{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface-2);border-bottom:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-tertiary);justify-content:space-between;display:flex}.gantt .lane{display:contents}.gantt .lane .role{padding:var(--sp-3);border-bottom:1px solid var(--border-faint);flex-direction:column;justify-content:center;gap:2px;display:flex}.gantt .lane .role .name{font-weight:600;font-size:var(--fs-sm)}.gantt .lane .role .user{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary)}.gantt .lane .timeline{padding:var(--sp-3);border-bottom:1px solid var(--border-faint);min-height:60px;position:relative}.gantt .lane .duration{padding:var(--sp-3);border-bottom:1px solid var(--border-faint);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-secondary);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;display:flex}.gantt .lane:last-child .role,.gantt .lane:last-child .timeline,.gantt .lane:last-child .duration{border-bottom:none}.step{border-radius:var(--radius-sm);height:24px;padding:0 var(--sp-2);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;border:1px solid;align-items:center;gap:6px;display:flex;position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.step.ok{background:var(--success-soft);border-color:var(--success);color:var(--success)}.step.warn{background:var(--warning-soft);border-color:var(--warning);color:var(--warning)}.step.failed{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.step.llm{background:var(--llm-soft);border-color:var(--llm);color:var(--llm)}.step .ms{font-family:var(--font-mono);opacity:.8}.filmstrip{gap:var(--sp-3);padding:var(--sp-1) 0;grid-auto-columns:200px;grid-auto-flow:column;display:grid;overflow-x:auto}.frame{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-surface);cursor:pointer;transition:transform .12s,border-color .12s;overflow:hidden}.frame:hover{border-color:var(--accent);transform:translateY(-2px)}.frame .thumb{background:repeating-linear-gradient(45deg, var(--bg-surface-2) 0 6px, var(--bg-surface-3) 6px 12px);width:100%;height:110px;position:relative}.frame .thumb .label{color:#fff;font-size:var(--fs-xs);font-family:var(--font-mono);background:#0009;border-radius:3px;padding:2px 6px;position:absolute;top:6px;right:6px}.frame .meta{padding:var(--sp-2) var(--sp-3)}.frame .meta .t{font-size:var(--fs-xs);color:var(--text-tertiary);font-family:var(--font-mono)}.frame .meta .d{font-size:var(--fs-sm);margin-top:2px}.tree{border-right:1px solid var(--border);background:var(--bg-surface);overflow-y:auto}.tree-head{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-faint);justify-content:space-between;align-items:center;display:flex}.tree-head h3{font-size:var(--fs-md);margin:0;font-weight:600}.tree-head .meta{font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.tree-run{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-faint);background:var(--bg-surface-2)}.tree-run .name{font-weight:600;font-size:var(--fs-md)}.tree-run .id{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary)}.tree-run .stats{gap:var(--sp-3);margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--text-secondary);display:flex}.tree-iter{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border-faint);cursor:pointer;grid-template-columns:36px 1fr auto;display:grid;position:relative}.tree-iter:hover{background:var(--bg-hover)}.tree-iter.active{background:var(--bg-active)}.tree-iter.active:before{content:"";background:var(--accent);width:3px;position:absolute;top:0;bottom:0;left:0}.tree-iter .num{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);text-align:center;font-variant-numeric:tabular-nums}.tree-iter .body .title{font-size:var(--fs-sm);font-weight:500}.tree-iter .body .sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:1px}.tree-iter .right{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.tree-iter .cost{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums}.det-head{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);background:var(--bg-surface)}.det-head .row1{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.det-head .iter-id{font-family:var(--font-mono);color:var(--text-tertiary);font-size:var(--fs-sm)}.det-head h1{font-size:var(--fs-xl);letter-spacing:-.01em;margin:0;font-weight:600}.det-head .row2{gap:var(--sp-4) var(--sp-5);font-size:var(--fs-sm);color:var(--text-secondary);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.det-head .row2 .kv .k{color:var(--text-tertiary);margin-right:var(--sp-1);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.det-head .row2 .kv .v{color:var(--text-primary);font-weight:500}.det-head .row2 .kv .v.mono{font-family:var(--font-mono)}.memory{border-left:1px solid var(--border);background:var(--bg-surface);overflow-y:auto}.memory-head{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-faint)}.memory-head h3{font-size:var(--fs-md);margin:0;font-weight:600}.memory-head .sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.mem-section{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-faint)}.mem-section h4{margin:0 0 var(--sp-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);justify-content:space-between;align-items:center;display:flex}.mem-section h4 .count{color:var(--accent);font-weight:600}.mem-item{padding:var(--sp-2) 0;border-bottom:1px dashed var(--border-faint);font-size:var(--fs-sm)}.mem-item:last-child{border-bottom:none}.mem-item .id{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary)}.mem-item .desc{color:var(--text-secondary);margin-top:2px}.mem-item .since{font-size:var(--fs-xs);color:var(--text-tertiary)}.cool-file{padding:var(--sp-2) 0;border-bottom:1px dashed var(--border-faint);font-size:var(--fs-sm);justify-content:space-between;align-items:center;display:flex}.cool-file .path{font-family:var(--font-mono);font-size:var(--fs-xs)}.cool-file .left{font-size:var(--fs-xs);color:var(--warning);font-family:var(--font-mono)}.find-group{margin-bottom:var(--sp-5)}.find-group .gh{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.find-group .gh .name{font-size:var(--fs-md);font-weight:600}.find-group .gh .meta{font-size:var(--fs-xs);color:var(--text-tertiary)}.finding{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);margin-bottom:var(--sp-2);grid-template-columns:auto 1fr auto;align-items:start;display:grid}.finding .body .title{font-weight:600;font-size:var(--fs-md);margin-bottom:var(--sp-1)}.finding .body .desc{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--sp-2)}.finding .body .meta{gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-tertiary);flex-wrap:wrap;display:flex}.finding .body .meta .k{color:var(--text-tertiary)}.finding .body .meta .v{color:var(--text-secondary);font-family:var(--font-mono)}.finding .body .reco{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--bg-surface-2);border-left:2px solid var(--llm);font-size:var(--fs-sm);border-radius:2px}.finding .body .reco .lab{font-size:var(--fs-xs);color:var(--llm);text-transform:uppercase;letter-spacing:.04em;margin-right:var(--sp-2);font-weight:600}.finding .actions{gap:var(--sp-1);flex-direction:column;align-items:flex-end;min-width:120px;display:flex}.rbac{grid-template-columns:200px repeat(var(--cols,5), 1fr);border:1px solid var(--border);border-radius:var(--radius-md);display:grid;overflow:hidden}.rbac .cell,.rbac .head,.rbac .row-h{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-faint);border-right:1px solid var(--border-faint);font-size:var(--fs-sm)}.rbac .head{background:var(--bg-surface-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);font-weight:600}.rbac .row-h{background:var(--bg-surface);font-weight:500}.rbac .cell.ok{background:var(--success-soft);color:var(--success)}.rbac .cell.no{color:var(--text-tertiary)}.rbac .cell.partial{background:var(--warning-soft);color:var(--warning)}.audit-event{gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-faint);font-size:var(--fs-sm);grid-template-columns:90px 110px 1fr 1fr auto;align-items:center;display:grid}.audit-event:hover{background:var(--bg-hover)}.audit-event .ts{font-family:var(--font-mono);color:var(--text-tertiary);font-size:var(--fs-xs)}.audit-event .actor{font-weight:500}.audit-event .action{color:var(--text-secondary)}.audit-event .target{font-family:var(--font-mono);color:var(--text-secondary);font-size:var(--fs-xs)}.audit-event .hash{font-family:var(--font-mono);color:var(--text-tertiary);font-size:11px}.md-editor{gap:var(--sp-3);height:calc(100vh - var(--topbar-h) - 200px);grid-template-columns:1fr 1fr;min-height:400px;display:grid}.md-pane{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);flex-direction:column;display:flex;overflow:hidden}.md-pane .ph{padding:var(--sp-2) var(--sp-3);background:var(--bg-surface-2);border-bottom:1px solid var(--border-faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.md-pane .body{padding:var(--sp-4);flex:1;overflow-y:auto}.md-pane .body.code{font-family:var(--font-mono);font-size:var(--fs-sm);white-space:pre-wrap;color:var(--text-primary);background:var(--bg-app)}.md-preview h1{font-size:var(--fs-xxl);margin:0 0 var(--sp-3)}.md-preview h2{font-size:var(--fs-lg);margin:var(--sp-4) 0 var(--sp-2);border-bottom:1px solid var(--border-faint);padding-bottom:var(--sp-1)}.md-preview h3{font-size:var(--fs-md);margin:var(--sp-3) 0 var(--sp-2)}.md-preview p,.md-preview li{font-size:var(--fs-md);color:var(--text-secondary);line-height:1.6}.md-preview code{background:var(--bg-surface-3);border-radius:3px;padding:1px 5px}.md-preview blockquote{border-left:3px solid var(--accent);margin:var(--sp-3) 0;padding-left:var(--sp-3);color:var(--text-tertiary)}.connector{gap:var(--sp-3);padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);margin-bottom:var(--sp-3);grid-template-columns:56px 1fr auto;display:grid}.connector .ic{background:var(--bg-surface-3);width:40px;height:40px;color:var(--text-secondary);border-radius:var(--radius);font-weight:700;font-size:var(--fs-md);justify-content:center;align-items:center;display:flex}.connector .body .name{font-size:var(--fs-md);font-weight:600}.connector .body .desc{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:2px}.connector .body .conf{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:var(--sp-2);font-family:var(--font-mono)}.connector .actions{gap:var(--sp-1);flex-direction:column;align-items:flex-end;display:flex}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-surface-3);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.sitemap{max-width:980px;padding:var(--sp-8) var(--sp-6);margin:0 auto}.sitemap h1{font-size:var(--fs-3xl);letter-spacing:-.02em;margin-bottom:var(--sp-3);font-weight:700}.sitemap .lead{color:var(--text-secondary);font-size:var(--fs-md);margin-bottom:var(--sp-8);max-width:70ch}.sitemap-section{margin-bottom:var(--sp-8)}.sitemap-section h2{font-size:var(--fs-md);text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:var(--sp-3)}.sitemap-grid{gap:var(--sp-3);grid-template-columns:repeat(2,1fr);display:grid}.sm-card{padding:var(--sp-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);gap:var(--sp-3);cursor:pointer;color:inherit;align-items:flex-start;text-decoration:none;transition:border-color .12s,transform .12s;display:flex}.sm-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-1px)}.sm-card .ic{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.sm-card .body .t{font-weight:600;font-size:var(--fs-md)}.sm-card .body .s{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:2px}.sm-card .body .url{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}
