:root{--bg:#0a0e1a;--bg-2:#0f1424;--panel:#121829;--panel-2:#171e33;--border:#232c45;--border-2:#2e3958;--text:#e6eaf5;--muted:#8d97b3;--accent:#5eead4;--accent-2:#2dd4bf;--accent-ink:#042f2e;--violet:#a78bfa;--ok:#4ade80;--warn:#fbbf24;--bad:#f87171;--busy:#60a5fa;--radius:12px;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--shadow:0 10px 30px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#f5f7fb;--bg-2:#eef1f7;--panel:#fff;--panel-2:#f7f9fc;--border:#e2e7f0;--border-2:#cfd7e6;--text:#131a2c;--muted:#5d6886;--accent:#0d9488;--accent-2:#0f766e;--accent-ink:#fff;--violet:#7c3aed;--ok:#16a34a;--warn:#b45309;--bad:#dc2626;--busy:#2563eb;--shadow:0 10px 30px #141e3c1f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:14px/1.5 Inter,system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--mono);background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:0 5px;font-size:.92em}h1,h2,h3{letter-spacing:-.01em;margin:0}.muted{color:var(--muted)}.small{font-size:12.5px}.nowrap{white-space:nowrap}.right{text-align:right}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.error-text{color:var(--bad)}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;gap:8px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:4px 8px 16px;display:flex}.brand-mark{font-size:26px}.brand b{font-size:15px;display:block}.brand small{color:var(--muted);font-size:12px}.menu-btn{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;margin-left:auto;padding:4px 10px;font-size:16px;display:none}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;display:flex}.nav-item:hover{background:var(--panel);color:var(--text);text-decoration:none}.nav-item.active{background:var(--panel-2);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav-icon{text-align:center;opacity:.85;width:18px}.sidebar-foot{flex-direction:column;gap:8px;margin-top:auto;padding:8px;display:flex}.runtime-pill{border:1px solid var(--border);background:var(--panel);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:12.5px;display:flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-ok{background:var(--ok)}.dot-warn{background:var(--warn)}.main{width:100%;min-width:0;max-width:1280px;padding:28px 36px 64px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-header h1{align-items:center;gap:10px;font-size:24px;display:flex}.subtitle{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;max-width:760px;margin:6px 0 0;display:flex}.page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.crumbs{color:var(--muted);margin-bottom:4px;font-size:12.5px}.crumbs a{color:var(--muted)}.title-icon{color:var(--accent)}.title-code{font-size:16px}.btn{border:1px solid var(--border-2);background:var(--panel-2);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-weight:500;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-2)}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--border)}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-xs{border-radius:7px;padding:3px 9px;font-size:12.5px}input,select,textarea{font:inherit;color:var(--text);background:var(--bg-2);border:1px solid var(--border-2);border-radius:9px;width:100%;padding:8px 11px}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb, var(--accent) 45%, transparent);border-color:var(--accent)}textarea{resize:vertical}.select-sm{width:auto;padding:4px 8px;font-size:12.5px}.search{max-width:320px;margin-bottom:14px}.check{cursor:pointer;align-items:center;gap:7px;flex-direction:row!important;font-weight:400!important;display:inline-flex!important}.check input{width:auto}.form{flex-direction:column;gap:14px;display:flex}.form label{flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.form fieldset{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.form legend{margin-bottom:6px;font-size:13px;font-weight:500}.form-inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-inline input,.form-inline select{flex:160px;width:auto}.hint{color:var(--muted);margin:6px 0 0;font-size:12.5px}.choice-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.choice-grid.two{grid-template-columns:repeat(2,1fr)}.choice{text-align:left;border:1px solid var(--border-2);background:var(--bg-2);color:var(--text);font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.choice small{color:var(--muted);font-size:12px}.choice.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--bg-2))}.choice-icon{color:var(--accent);font-size:18px}.idea-row{flex-wrap:wrap;gap:6px;margin-top:-6px;display:flex}.chip{font:inherit;border:1px dashed var(--border-2);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:12px}.chip:hover{color:var(--text);border-color:var(--accent)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:0;margin-bottom:16px}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:13px 18px;display:flex}.card-head h2{text-transform:none;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.card-actions{align-items:center;gap:6px;display:flex}.card-body{padding:16px 18px}.card.danger{border-color:color-mix(in srgb, var(--bad) 45%, var(--border))}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.stack-col{flex-direction:column;min-width:0;display:flex}.tab-body{padding-top:16px}.flow{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;display:grid}.flow-step{border-radius:var(--radius);background:linear-gradient(135deg, color-mix(in srgb, var(--accent) 9%, var(--panel)), var(--panel));border:1px solid var(--border);gap:10px;padding:12px 14px;display:flex}.flow-step p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.flow-n{width:24px;height:24px;color:var(--accent-ink);background:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.stats{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;padding:14px 16px;display:flex}a.stat:hover{border-color:var(--accent);text-decoration:none}.stat-value{letter-spacing:-.02em;font-size:26px;font-weight:700}.stat-label{color:var(--muted);font-size:12.5px}.stat-sub{color:var(--muted);margin-top:2px;font-size:12px}.stat-sub.ok{color:var(--ok)}.stat-sub.bad{color:var(--bad)}.status{text-transform:capitalize;white-space:nowrap;align-items:center;gap:6px;font-size:12.5px;font-weight:500;display:inline-flex}.status i{background:currentColor;border-radius:50%;width:8px;height:8px}.status-ok{color:var(--ok)}.status-bad{color:var(--bad)}.status-muted{color:var(--muted)}.status-wait{color:var(--warn)}.status-busy{color:var(--busy)}.status-busy i{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3;transform:scale(.7)}}.badge{border:1px solid var(--border-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-accent{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 50%, transparent)}.badge-ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 40%, transparent)}.badge-warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.badge-bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 45%, transparent)}.agent-chip{background:var(--panel-2);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px 2px 6px;font-size:12.5px;font-weight:600;display:inline-flex}.agent-chip b{border-radius:50%;place-items:center;width:18px;height:18px;font-size:12px;display:grid}.agent-claude-code b{color:#fff;background:#d97757}.agent-codex b{background:var(--text);color:var(--bg)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding:9px 14px;font-size:11.5px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.table tr:last-child td{border-bottom:0}.row-link{cursor:pointer}.row-link:hover td{background:var(--panel-2)}.commit-cell{align-items:center;gap:8px;max-width:360px;display:flex}.session-list,.commit-list,.activity,.token-list,.tool-list,.file-tree,.checklist{margin:0;padding:0;list-style:none}.session-item{border-bottom:1px solid var(--border);color:var(--text);align-items:center;gap:12px;padding:12px 16px;display:flex}.session-list li:last-child .session-item{border-bottom:0}.session-item:hover{background:var(--panel-2);text-decoration:none}.session-main{flex:1;min-width:0}.session-task{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.commit-list li{border-bottom:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 16px;display:grid}.commit-list li:last-child{border:0}.activity li{border-bottom:1px dashed var(--border);padding:6px 0;font-size:13px}.activity li:last-child{border:0}.kv{gap:8px;margin:0;display:grid}.kv>div{grid-template-columns:130px 1fr;align-items:center;gap:10px;display:grid}.kv dt{color:var(--muted);font-size:12.5px}.kv dd{min-width:0;margin:0}.kv-inline{grid-template-columns:repeat(4,1fr);margin-top:14px}.kv-inline>div{grid-template-columns:1fr;gap:2px}.project-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.project-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;flex-direction:column;gap:10px;padding:16px;transition:border-color .15s,transform .15s;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-1px)}.project-top{align-items:center;gap:10px;display:flex}.project-icon{background:color-mix(in srgb, var(--accent) 14%, var(--panel-2));width:34px;height:34px;color:var(--accent);border-radius:9px;place-items:center;font-size:17px;display:grid}.project-title{flex-direction:column;flex:1;min-width:0;display:flex}.project-title a{color:var(--text)}.project-desc{color:var(--text);opacity:.85;min-height:2.6em;margin:0;font-size:13px}.project-envs{flex-direction:column;gap:4px;font-size:12.5px;display:flex}.project-envs>div{align-items:center;gap:8px;min-width:0;display:flex}.env-label{width:52px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px}.project-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding-top:10px;display:flex}.live-link{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.env-url{margin:4px 0 8px;font-size:15px}.env-latest{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.resource-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.resource-grid .span-all{grid-column:1/-1}.res-icon{font-size:18px}.res-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.code-layout{grid-template-columns:300px 1fr;gap:16px;display:grid}.file-tree button{width:100%;color:var(--text);font:12.5px var(--mono);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;gap:8px;padding:7px 14px;display:flex}.file-tree button:hover,.file-tree button.active{background:var(--panel-2)}.file-tree button.active{box-shadow:inset 2px 0 0 var(--accent)}.file-view{font:12.5px/1.55 var(--mono);white-space:pre;max-height:620px;margin:0;padding:16px;overflow:auto}.tabs{border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.tab{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-weight:500}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.stagebar{gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.stage{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);flex-direction:column;flex:1;gap:6px;font-size:11.5px;display:flex}.stage-dot{background:var(--border-2);border-radius:3px;height:5px}.stage-done .stage-dot{background:var(--ok)}.stage-active{color:var(--busy)}.stage-active .stage-dot{background:var(--busy);animation:1s infinite pulse}.stage-failed{color:var(--bad)}.stage-failed .stage-dot{background:var(--bad)}.logs{font:12.5px/1.6 var(--mono);background:var(--bg-2);border-radius:0 0 var(--radius) var(--radius);max-height:560px;padding:12px 0;overflow:auto}.log{white-space:pre-wrap;word-break:break-word;gap:12px;padding:0 16px;display:flex}.log:hover{background:var(--panel)}.log-stage-tag{width:56px;color:var(--muted);opacity:.7;flex:none}.log-stage .log-line{color:var(--accent);padding-top:6px;font-weight:600}.log-warn .log-line{color:var(--warn)}.log-error .log-line{color:var(--bad)}.transcript{margin:0;padding:8px 0;list-style:none}.ev{gap:12px;padding:10px 18px;display:flex}.ev+.ev{border-top:1px solid var(--border)}.ev-icon{background:var(--panel-2);width:26px;height:26px;font-size:13px;font-family:var(--mono);border-radius:8px;flex:none;place-items:center;display:grid}.ev-main{flex:1;min-width:0}.ev-title{word-break:break-word;font-size:13px;font-weight:500}.ev-text{white-space:pre-wrap;margin:4px 0 0}.ev-body{font:12px/1.5 var(--mono);background:var(--bg-2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:260px;margin:6px 0 0;padding:8px 10px;overflow:auto}.ev-thought .ev-text{color:var(--muted);font-style:italic}.ev-message .ev-icon{background:color-mix(in srgb, var(--accent) 20%, var(--panel-2))}.ev-file .ev-icon{background:color-mix(in srgb, var(--violet) 25%, var(--panel-2))}.ev-error .ev-icon{background:color-mix(in srgb, var(--bad) 25%, var(--panel-2))}.ev-result .ev-icon{background:color-mix(in srgb, var(--ok) 25%, var(--panel-2))}.ev-pending{align-items:center}.diff{font:12px/1.5 var(--mono);white-space:pre;max-height:65vh;margin:0;overflow:auto}.diff .add{color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent);width:100%;display:inline-block}.diff .del{color:var(--bad);background:color-mix(in srgb, var(--bad) 8%, transparent);width:100%;display:inline-block}.diff .hunk{color:var(--violet)}.agent-cards{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.agent-card{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.checklist li{padding:2px 0}.checklist li.yes:before{content:"✓ ";color:var(--ok)}.checklist li.no:before{content:"○ ";color:var(--muted)}.token-box{flex-direction:column;gap:8px;margin-top:12px;display:flex}.token-row{align-items:center;gap:8px;display:flex}.token-row code{word-break:break-all}.token-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;display:flex}.token-list li .btn{margin-left:auto}.sub{color:var(--muted);margin:18px 0 6px;font-size:13px;font-weight:600}.tool-list{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.codeblock{margin:8px 0;position:relative}.codeblock pre{background:var(--bg-2);border:1px solid var(--border);font:12.5px/1.55 var(--mono);border-radius:10px;margin:0;padding:12px 70px 12px 14px;overflow-x:auto}.codeblock-copy{position:absolute;top:6px;right:6px}.arch{flex-direction:column;gap:8px;display:flex}.arch-row{gap:8px;display:flex}.arch-box{border:1px solid var(--border-2);background:var(--bg-2);text-align:center;border-radius:10px;flex:1;padding:10px 12px;font-size:13px;font-weight:600}.arch-box small{color:var(--muted);font-size:11.5px;font-weight:400;display:block}.arch-box.accent{background:color-mix(in srgb, var(--accent) 14%, var(--bg-2));border-color:var(--accent)}.arch-box.on{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.arch-box.dim{color:var(--muted);font-weight:500}.alert{border:1px solid;border-radius:10px;margin:10px 0;padding:10px 14px;font-size:13px}.alert-bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 40%, transparent);background:color-mix(in srgb, var(--bad) 8%, transparent)}.alert-ok{color:var(--text);border-color:color-mix(in srgb, var(--ok) 40%, transparent);background:color-mix(in srgb, var(--ok) 8%, transparent)}.empty{text-align:center;color:var(--muted);padding:36px 20px}.empty h3{color:var(--text);margin:6px 0;font-size:15px}.empty p{max-width:420px;margin:0 auto 14px}.empty-icon{color:var(--accent);font-size:26px}.loading{color:var(--muted);align-items:center;gap:10px;padding:24px;display:flex}.spinner{border:2px solid var(--border-2);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#05081099;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border-2);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex}.modal-wide{width:min(980px,100%)}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head h2{font-size:16px}.modal-body{padding:18px;overflow:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.toaster{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--panel-2);border:1px solid var(--border-2);box-shadow:var(--shadow);border-radius:10px;max-width:360px;padding:10px 14px;animation:.2s ease-out rise}.toast-ok{border-left:3px solid var(--ok)}.toast-bad{border-left:3px solid var(--bad)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (width<=1100px){.stats{grid-template-columns:repeat(3,1fr)}.flow{grid-template-columns:repeat(2,1fr)}.grid-main{grid-template-columns:1fr}.resource-grid{grid-template-columns:1fr 1fr}}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{z-index:20;flex-direction:column;height:auto;padding:10px 16px;position:sticky}.brand{padding:0}.menu-btn{display:block}.nav,.sidebar-foot{display:none}.menu-open .nav,.menu-open .sidebar-foot{display:flex}.main{padding:18px 16px 48px}.grid-2,.agent-cards,.resource-grid,.code-layout{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.flow,.choice-grid{grid-template-columns:1fr}.kv-inline{grid-template-columns:1fr 1fr}.kv>div{grid-template-columns:110px 1fr}.hide-sm{display:none}.arch-row{flex-wrap:wrap}.arch-box{flex:40%}.project-grid{grid-template-columns:1fr}}.runtime-row{align-items:flex-start;gap:12px;display:flex}.runtime-row p{margin:2px 0 0}.steps{gap:4px;margin:12px 0 0;padding-left:20px;display:grid}.steps li.done{color:var(--ok)}.steps li.done::marker{content:"✓  "}.admin-row{margin-top:12px}.admin-row input{max-width:420px}.env-links{flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12.5px;display:flex}.runtime-logs{font:12px/1.55 var(--mono);white-space:pre-wrap;word-break:break-word;background:var(--bg-2);border-radius:0 0 var(--radius) var(--radius);max-height:520px;margin:0;padding:14px 16px;overflow:auto}
