:root{color-scheme:dark;--bg: #101114;--bar: #17191e;--tree: #14161b;--detail: #0c0d10;--line: #2a2d35;--text: #ece8e1;--muted: #8e8a82;--hover: #22252c;--running: #6fbf8b;--transit: #d7a15a;--stopped: #7c7872;--danger: #e07a6a;font:14px/1.4 Avenir Next,Segoe UI,sans-serif}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text)}#app:not(:has(.shell)){display:grid;place-items:center;padding:24px}.shell{height:100%;display:grid;grid-template-rows:52px 1fr}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 16px 0 18px;background:var(--bar);border-bottom:1px solid var(--line)}.brand{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.topbar-error{flex:1;min-width:0;color:var(--danger);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout{font:inherit;color:var(--text);background:transparent;border:1px solid var(--line);border-radius:999px;padding:6px 14px;cursor:pointer}.logout:hover{background:var(--hover)}.workspace{min-height:0;display:grid;grid-template-columns:minmax(320px,420px) 1fr}.tree{min-width:0;min-height:0;overflow:auto;background:var(--tree);border-right:1px solid var(--line);padding:10px 8px 24px}.detail{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--detail)}.detail-empty{margin:28px 20px;color:var(--muted)}.tabs{display:flex;gap:8px;overflow-x:auto;padding:14px 16px 0}.tab{display:flex;align-items:baseline;gap:8px;border:1px solid var(--line);background:transparent;color:var(--text);border-radius:999px;padding:6px 12px;font:inherit;cursor:pointer;white-space:nowrap}.tab.is-on{background:#222127;border-color:#4a463f}.tab-kind{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase}.connect{margin:12px 16px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;display:grid;gap:8px}.connect>div{display:grid;gap:2px}.connect .connect-line{display:flex;align-items:flex-start;gap:8px}.connect dt{color:var(--muted);font-size:12px}.connect dd{flex:1;min-width:0;margin:0;word-break:break-all;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.copy{flex:none;display:grid;place-items:center;width:28px;height:28px;margin-top:-4px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer}.copy:hover,.copy.is-done{color:var(--text);background:var(--hover)}.bubble.is-live:after{content:"▍";margin-left:1px;color:var(--muted)}.stage{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 16px 16px;gap:10px}.chat-log{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px}.bubble{max-width:min(70%,640px);padding:8px 12px;border-radius:12px;white-space:pre-wrap}.bubble.user{align-self:flex-end;background:#2a3140}.bubble.assistant{align-self:flex-start;background:#1c1e24}.reasoning{color:var(--muted);font-size:13px;white-space:pre-wrap}.reasoning:not([hidden])+.answer:not(:empty){margin-top:8px}.composer{display:flex;gap:8px;align-items:flex-end}.composer-input{flex:1;min-width:0;font:inherit;color:var(--text);background:#14161b;border:1px solid var(--line);border-radius:10px;padding:8px 10px;resize:vertical}.primary{font:inherit;color:var(--text);background:#2a3140;border:1px solid var(--line);border-radius:10px;padding:8px 14px;cursor:pointer}.primary:disabled{opacity:.5;cursor:default}.download{display:inline-block;text-decoration:none;width:fit-content}.stage-note{margin:0;min-height:1.2em;color:var(--muted)}.preview-wrap{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px}.preview{max-width:100%;border-radius:12px}.transcript{flex:1;min-height:0;overflow:auto;margin:0;white-space:pre-wrap;font:inherit}.node{display:grid;min-width:0}.node-toggle,.power{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer}.node-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:6px 8px;border-radius:8px;text-align:left}.node-toggle:hover,.power:hover{background:var(--hover)}.node.is-offline .node-name{color:var(--muted)}.chevron{flex:none;color:var(--muted);transition:transform .15s ease}.node.is-open .chevron{transform:rotate(90deg)}.node-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-body{display:grid;gap:2px;min-width:0;padding:0 4px 8px 30px}.node:not(.is-open) .node-body{display:none}.gpu-line,.resource{display:flex;align-items:center;gap:8px;min-width:0;min-height:30px;padding:2px 8px;border-radius:8px}.gpu-name,.resource-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gpu-name{color:var(--muted)}.gpu-mem{flex:none;font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--text)}.pills{display:flex;gap:4px;flex:none}.pill{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;border:1px solid #4a463f;background:#232127;font-size:10px;line-height:1;color:var(--text)}.status,.power,.power-slot{width:28px;height:28px;display:grid;place-items:center;flex:none;border-radius:8px;padding:0}.status-running{color:var(--running)}.status-starting,.status-stopping{color:var(--transit)}.status-stopped{color:var(--stopped)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.empty{padding:12px 10px;color:var(--muted)}@media(max-width:800px){.workspace{grid-template-columns:1fr;grid-template-rows:minmax(220px,1fr) minmax(320px,46vh)}.tree{border-right:0;border-bottom:1px solid var(--line)}}
