:root{--bg: #0b0c0e;--panel: #111214;--panel-2: #18191c;--line: #2a2c31;--ink: #e7e8ea;--muted: #8b8d93;--accent: #3b82f6;--ok: #3dd68c;--warn: #e6b84d;--bad: #f07178}*{box-sizing:border-box}html,body,#root,.app{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:13px/1.45 IBM Plex Sans,Noto Sans SC,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:6px}button{padding:.32rem .7rem;cursor:pointer}button.primary{background:#2563eb;border-color:#2563eb;color:#fff}button.ghost,button.wide{background:transparent}button.wide{width:100%}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{padding:.35rem .5rem}textarea{width:100%;resize:vertical}.topbar{display:flex;align-items:center;gap:1.2rem;padding:0 1rem;height:48px;background:#0e0f11;border-bottom:1px solid var(--line)}.brand{font-weight:700;font-size:15px;display:flex;flex-direction:column;line-height:1.1;min-width:7rem}.brand small{font-weight:400;font-size:10px;color:var(--muted);margin-top:2px}.nav{display:flex;gap:1rem;flex:1;flex-wrap:wrap}.nav a{color:var(--muted);text-decoration:none}.nav a:hover{color:var(--ink);text-decoration:none}.nav a.active{color:var(--ink)}.who{color:var(--muted);font-size:12px;display:flex;align-items:center;gap:.5rem}.who button{padding:.2rem .5rem}.page{padding:1.25rem 1.5rem;max-width:1100px}.page h1{font-size:1.2rem;margin:0 0 1rem;font-weight:600}.muted{color:var(--muted)}.err{color:var(--bad)}.ok{color:var(--ok)}.pad{padding:.6rem}.grow{flex:1}.login{min-height:100%;display:grid;place-items:center;background:radial-gradient(ellipse at top,#16181d,var(--bg))}.login-card{width:360px;background:var(--panel);border:1px solid var(--line);padding:1.6rem;border-radius:10px}.login-card h1{margin:0}.login-card label{display:block;margin:.7rem 0 .25rem;color:var(--muted)}.login-card input{width:100%}.login-card button{width:100%;margin-top:1.1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem}.card{background:var(--panel);border:1px solid var(--line);padding:1rem;border-radius:8px}.card h3{margin:0 0 .4rem;font-size:1rem}.card .actions{margin-top:.7rem;display:flex;gap:.75rem}.ws{height:calc(100vh - 48px);display:grid;grid-template-columns:250px minmax(0,1fr) 320px;grid-template-rows:minmax(0,1fr) 36px}.ws-tree{grid-column:1;grid-row:1 / 3;border-right:1px solid var(--line);background:#0f1012;overflow:hidden;display:flex;flex-direction:column}.ws-tabs{display:flex;border-bottom:1px solid var(--line)}.ws-tabs button{flex:1;border:0;border-radius:0;background:transparent;color:var(--muted);padding:.55rem 0;font-size:11px;letter-spacing:.04em}.ws-tabs button.on,.ws-tabs span.on{color:var(--ink);background:var(--panel-2);flex:1;text-align:center;padding:.55rem 0;font-size:11px;letter-spacing:.04em}.ws-search{margin:.45rem .5rem;width:calc(100% - 1rem);background:#0b0c0e}.skill-list,.tree-body{flex:1;overflow:auto;padding-bottom:.5rem}.tree-sec{padding:.45rem .6rem .2rem;color:var(--muted);font-size:11px;text-transform:lowercase}.ws-main{grid-column:2;grid-row:1;display:flex;flex-direction:column;min-width:0;min-height:0}.ws-toolbar{display:flex;gap:.7rem;align-items:center;padding:0 .8rem;height:36px;border-bottom:1px solid var(--line)}.ws-toolbar .tab-on{color:var(--ink);font-weight:600}.editor-wrap{flex:1;display:flex;min-height:0;background:#0c0d0f}.gutter{width:44px;overflow:hidden;text-align:right;padding:.7rem .45rem;color:#4b4e55;font:12px/1.55 IBM Plex Mono,ui-monospace,monospace;-webkit-user-select:none;user-select:none;border-right:1px solid #1c1d20}.ws-editor{flex:1;border:0;border-radius:0;resize:none;font:12px/1.55 IBM Plex Mono,ui-monospace,monospace;padding:.7rem .8rem;background:transparent;outline:none}.ws-diff{flex:1;margin:0;overflow:auto;padding:.8rem;white-space:pre-wrap;font:12px/1.5 IBM Plex Mono,ui-monospace,monospace;background:#0c0d0f}.split-diff{flex:1;display:grid;grid-template-columns:1fr 1fr;min-height:0;overflow:auto;font:12px/1.5 IBM Plex Mono,ui-monospace,monospace}.split-col{overflow:auto;padding:.4rem}.split-col.old{border-right:1px solid var(--line)}.dl{white-space:pre-wrap}.dl.add{background:#12291c;color:#9ee6b8}.dl.del{background:#2a1416;color:#f0a0a4}.dl.meta{color:var(--muted)}.ws-rail{grid-column:3;grid-row:1 / 3;border-left:1px solid var(--line);background:#101114;padding:.7rem .7rem .55rem;display:flex;flex-direction:column;gap:.5rem;min-height:0}.rail-status{margin:0;font-size:12px}.thread-box{border:1px solid var(--line);border-radius:6px;max-height:160px;display:flex;flex-direction:column;min-height:0}.thread-bar{display:flex;justify-content:space-between;align-items:center;padding:.25rem .4rem;border-bottom:1px solid var(--line)}.thread-list{overflow:auto}.thread-item{display:flex;align-items:center;gap:.25rem}.thread-item.on{background:#1c1e22}.thread-name{flex:1;text-align:left;background:transparent;border:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:.28rem .4rem}.thread-item.on .thread-name{color:var(--ink)}.chat{flex:1;overflow:auto;display:flex;flex-direction:column;gap:.5rem}.bubble{padding:.5rem .55rem;border:1px solid var(--line);border-radius:6px;white-space:pre-wrap;font-size:12px}.bubble.user{background:#1a2333}.bubble.assistant{background:#0c0d0f}.bubble-meta{color:var(--muted);font-size:11px;margin-bottom:.25rem}.chat-input{display:flex;gap:.4rem}.chat-input input{flex:1}.ws-bar{grid-column:2;grid-row:2;display:flex;gap:.45rem;align-items:center;padding:0 .7rem;border-top:1px solid var(--line);background:#0e0f11;font-size:12px}.ws-bar .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46%}.file-item{display:block;width:100%;text-align:left;padding:.28rem .6rem;color:var(--muted);cursor:pointer;background:transparent;border:0;border-radius:0}.file-item.folder{color:#c8c9cc}.file-item .chev{display:inline-block;width:.9em;color:#6b6e75}.file-item.active,.file-item:hover{color:var(--ink);background:#1c1e22}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:grid;place-items:center;z-index:20}.modal{width:360px;background:#1a1b1e;border:1px solid var(--line);border-radius:10px;padding:1.2rem 1.2rem 1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500}.badge{display:inline-block;padding:0 .4rem;border:1px solid var(--line);border-radius:3px;font-size:12px}.badge.pass{color:var(--ok)}.badge.fail{color:var(--bad)}.user-index{flex:0 1 42%;min-height:160px;border:1px solid var(--line);border-radius:8px;margin:.45rem 0 0;overflow:auto;background:#0f1012}.user-index-title{position:sticky;top:0;padding:.4rem .7rem;font-size:12px;color:var(--muted);background:#0f1012;border-bottom:1px solid var(--line)}.user-index button{display:flex;gap:.75rem;align-items:baseline;width:100%;text-align:left;background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--line);padding:.32rem .7rem;color:var(--ink)}.user-index button:last-child{border-bottom:0}.user-index button .when{flex:0 0 6.2rem;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.user-index button .n{flex:0 0 4.2rem;color:var(--muted);font-variant-numeric:tabular-nums}.user-index button.long .n{color:var(--warn);font-weight:600}.user-index button .preview{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.user-index button.long .preview{color:var(--ink)}.user-index button:hover{background:#1c1e22}.thread{display:flex;flex-direction:column;gap:1.15rem;max-width:860px}.msg-user{align-self:flex-end;width:min(640px,100%);background:#2a2d33;border:1px solid #3a3d44;border-radius:12px 12px 4px;padding:.55rem .85rem .7rem;scroll-margin-top:.75rem}.msg-user.long{border-color:#8a6a2f}.msg-meta{display:flex;justify-content:flex-start;align-items:baseline;gap:.8rem;margin-bottom:.35rem;font-size:11px;letter-spacing:.02em;color:var(--muted)}.msg-user .msg-time{font-variant-numeric:tabular-nums}.msg-user .chars{margin-left:auto;font-variant-numeric:tabular-nums}.msg-user.long .chars{color:var(--warn);font-weight:600}.msg-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.msg-assistant{scroll-margin-top:.75rem}.msg-assistant .msg-meta{margin-bottom:.15rem}.msg-assistant.brief .md{color:#9a9ca3}pre.diff{white-space:pre-wrap;background:#101012;padding:.8rem;overflow:auto}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.7rem}.arch{display:grid;grid-template-columns:280px minmax(380px,1.15fr) minmax(420px,1.4fr);height:calc(100vh - 48px);min-height:0}.arch-files,.arch-graph,.arch-main{min-width:0;min-height:0;overflow:auto}.arch-span{grid-column:2 / span 2;padding:1.25rem 1.5rem}.arch-files{border-right:1px solid var(--line);padding:.65rem .4rem 1rem;background:#0f1012}.arch-files .row{padding:0 .25rem}.arch-files .row input{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:.55rem;max-width:40rem;margin-bottom:1.5rem}.stack label{display:flex;flex-direction:column;gap:.25rem;color:var(--muted)}.stack input{width:100%}.plain{margin:0;padding-left:1.1rem}.arch-sync{padding:0 .25rem .65rem;margin-bottom:.45rem;border-bottom:1px solid var(--line)}.arch-sync select,.arch-sync input{width:100%;margin:.3rem 0}.arch-sync p{margin:.2rem 0 .35rem}.folder-row{display:flex;align-items:center;gap:.3rem;width:100%;background:transparent;border:0;border-radius:4px;padding:.28rem .35rem;color:#d5d7db;text-align:left}.folder-row:hover{background:#1c1e22}.folder-row .chev{width:.9em;color:#8b8d93;flex:0 0 auto}.folder-row .folder-name{min-width:0}.folder-row .muted{margin-left:auto}.folder-row.l2{padding-left:1.15rem}.file-row.deep{margin-left:2.15rem}.view-toggle{display:flex;gap:.25rem;margin:0 .25rem .45rem}.view-toggle button{flex:1}.view-toggle button.on{background:#2563eb;border-color:#2563eb;color:#fff}.file-row{display:block;margin-left:1.2rem;padding:.22rem .4rem;color:var(--muted);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:4px}.file-row.on,.file-row:hover{color:var(--ink);background:#1c2430;text-decoration:none}.file-hits{list-style:none;margin:.4rem 0 0;padding:0}.file-hits .file-row{margin-left:0}.file-empty{padding:.6rem .7rem}.arch-graph{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:.65rem .7rem .7rem;background:#0c0d0f;overflow:hidden}.arch-graph h2{position:sticky;top:0;z-index:1;margin:0 0 .35rem;padding:.1rem 0 .4rem;font-size:13px;background:#0c0d0f}.arch-main{background:var(--bg)}.arch-read{padding:1.25rem 1.5rem 2rem;max-width:none}.arch-read h1{font-size:1.2rem;margin:0 0 .6rem;font-weight:600}.arch-empty{padding:1.25rem 1.5rem}.rel-tree{border:1px solid var(--line);padding:.6rem .7rem;margin:.6rem 0 1rem;border-radius:6px}.rel-tree h2{font-size:13px;margin:0 0 .4rem}.fork-tree{flex:1;min-height:0;display:flex}.tg-pane{flex:1;min-height:0;display:flex;flex-direction:column}.tg-zoom{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.tg-zoom button{padding:.12rem .5rem}.tg-viewport{flex:1;min-height:0;overflow:hidden;cursor:grab;border:1px solid var(--line);border-radius:6px;background:#0b0c0e}.tg-viewport:active{cursor:grabbing}.tg-stage{transform-origin:0 0}.tg{display:block}.tg-line{fill:none;stroke:#5c616a;stroke-width:1.6}.tg-line.on{stroke:#3b82f6;stroke-width:2.2}.tg-dot{fill:#7d828a}.tg-dot.on{fill:#3b82f6}.tg-label{color:#d5d7dc;font:11px/1.25 IBM Plex Sans,Noto Sans SC,system-ui,sans-serif;text-align:center;overflow:hidden;word-break:break-all}.tg-label.tg-before{color:#9aa0a8}.fork-extra{list-style:none;margin:.4rem 0 0;padding:0;font-size:12px}.msg-user:target{outline:1px solid var(--warn)}.research{display:grid;grid-template-columns:260px 1fr;height:calc(100vh - 48px)}.res-side{border-right:1px solid var(--line);padding:.8rem;overflow:auto;background:#0f1012}.res-side h2{font-size:13px;margin:1rem 0 .4rem}.res-side h2:first-child{margin-top:0}.res-side textarea{width:100%}.step-list{list-style:none;padding:0;margin:0 0 1rem}.step-list button{width:100%;text-align:left;background:transparent;border:0;border-radius:0;color:var(--muted)}.step-list button.on{color:var(--ink);background:var(--panel-2)}.res-main{overflow:auto;max-width:none}.md h1,.md h2,.md h3{margin:.85rem 0 .4rem;line-height:1.35}.md h1{font-size:1.25rem}.md h2{font-size:1.1rem}.md h3{font-size:1rem}.md p{margin:.4rem 0;line-height:1.55}.md ul,.md ol{margin:.35rem 0 .35rem 1.25rem;padding:0}.md li{margin:.18rem 0}.md table{margin:.55rem 0 .7rem;font-size:12px}.md code{background:#1c1e22;padding:0 .25rem;border-radius:3px}.md pre{background:#101012;padding:.7rem .8rem;overflow:auto;border-radius:6px;border:1px solid var(--line)}.md pre code{background:transparent;padding:0}.md hr{border:0;border-top:1px solid var(--line);margin:.9rem 0}.md a{color:var(--accent)}.arch-rail,.arch-scrim,.arch-hint-mobile{display:none}@media (max-width: 1080px){.topbar{gap:.55rem;padding:0 .55rem}.brand{min-width:0}.brand small{display:none}.nav{flex-wrap:nowrap;overflow-x:auto;gap:.7rem;min-width:0}.nav a{white-space:nowrap;flex:0 0 auto}.who{flex:0 0 auto;white-space:nowrap}.arch{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:minmax(0,1fr);position:relative;height:calc(100dvh - 48px);overflow:hidden}.arch.has-session{grid-template-columns:44px 44px minmax(0,1fr)}.arch-rail{display:flex;align-items:center;justify-content:center;grid-row:1;writing-mode:vertical-rl;letter-spacing:.22em;border:0;border-right:1px solid var(--line);border-radius:0;background:#0f1012;color:var(--muted);padding:.75rem 0;z-index:30}.arch-rail-files{grid-column:1}.arch-rail-graph{grid-column:2;background:#0c0d0f}.arch-rail.on{color:var(--ink);background:#1c2430}.arch-main,.arch-span{grid-column:2;grid-row:1;overflow:auto}.arch.has-session .arch-main,.arch.has-session .arch-span{grid-column:3}.arch-hint-desk{display:none}.arch-hint-mobile{display:inline}.arch-files,.arch-graph{position:absolute;z-index:25;top:0;bottom:0;left:44px;width:min(340px,calc(100% - 44px));transform:translate(calc(-100% - 16px));transition:transform .18s ease;pointer-events:none;box-shadow:none}.arch.has-session .arch-graph{left:88px;width:min(380px,calc(100% - 88px))}.arch.files-open .arch-files,.arch.graph-open .arch-graph{transform:none;pointer-events:auto;box-shadow:8px 0 28px #00000080}.arch.files-open .arch-files{z-index:32}.arch-graph{overflow:auto}.arch-graph .fork-tree{display:block;flex:none;height:260px}.arch-graph .tg-pane{height:100%}.arch-graph .user-index{flex:none;min-height:0;overflow:visible}.arch-scrim{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;margin:0;padding:0;border:0;border-radius:0;background:#0006;cursor:pointer}.arch-read{padding:.9rem .85rem 1.6rem}.arch-read h1{font-size:1.05rem}}
