: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) 300px;grid-template-rows:1fr 36px}.ws-tree{grid-row:1 / -1;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{color:var(--ink);background:var(--panel-2)}.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{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}.ws-rail{grid-row:1 / -1;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}.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;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)}.turn{margin:.6rem 0;padding:.6rem;background:var(--panel);border:1px solid var(--line);border-radius:6px}.turn.tool,.turn.subagent{color:var(--muted)}details.turn summary{cursor:pointer}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 1fr;height:calc(100vh - 48px)}.arch-side{border-right:1px solid var(--line);overflow:auto;padding:.8rem .7rem;background:#0f1012}.arch-side h2{font-size:13px;margin:0 0 .5rem}.day-bars{margin:.4rem 0 .8rem}.day-row{display:flex;align-items:center;gap:.4rem;width:100%;background:transparent;border:0;border-radius:0;padding:.2rem 0}.day-row.on .day-label{color:var(--ink)}.day-label{width:6.2rem;color:var(--muted);font-size:12px;text-align:left}.day-bar{height:8px;background:#2563eb;border-radius:2px;opacity:.7}.sess-list{list-style:none;margin:0;padding:0}.sess-list li{padding:.35rem 0;border-bottom:1px solid var(--line)}.sess-list li.on a{color:var(--ink)}.arch-read{overflow:auto;max-width:none}.rel-tree{border:1px solid var(--line);padding:.6rem;margin:.6rem 0 1rem;border-radius:6px}.rel-tree h2{font-size:13px;margin:0 0 .4rem}.rel-node{font-size:12px;margin:.15rem 0}.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:.7rem 0 .4rem}.md table{margin:.5rem 0}.md code{background:#1c1e22;padding:0 .25rem;border-radius:3px}
