:root,:root[data-theme=dark]{--bg:#1e1e1e;--bg2:#252526;--bg3:#2d2d30;--activity:#333333;--border:#3c3c3c;--fg:#cccccc;--strong:#ffffff;--muted:#8b8b8b;--accent:#3794ff;--danger:#f48771;--hover:rgba(255,255,255,0.06);--sel:rgba(55,148,255,0.18);--primary:#0e639c;--primary-hover:#1177bb;--status:#007acc;--on-color:#ffffff;--bubble-user:#094771;--pal-sel:#04395e;color-scheme:dark}:root[data-theme=light]{--bg:#ffffff;--bg2:#f3f3f3;--bg3:#ececec;--activity:#e8e8e8;--border:#d4d4d4;--fg:#333333;--strong:#000000;--muted:#6e6e6e;--accent:#0b6ac9;--danger:#c4311b;--hover:rgba(0,0,0,0.06);--sel:rgba(11,106,201,0.14);--primary:#0e639c;--primary-hover:#1177bb;--status:#007acc;--on-color:#ffffff;--bubble-user:#d6e8fb;--pal-sel:#cfe3f8;color-scheme:light}:root[data-theme=warm]{--bg:#17110a;--bg2:#1d160d;--bg3:#251c10;--activity:#211809;--border:#3a2c17;--fg:#c19a55;--strong:#e0b66b;--muted:#86693a;--accent:#d9a441;--danger:#d98a4a;--hover:rgba(217,164,65,0.09);--sel:rgba(217,164,65,0.2);--primary:#6e4f17;--primary-hover:#86611d;--status:#3a2a0d;--on-color:#f0d9a8;--bubble-user:#3a2a0d;--pal-sel:#3a2a0d;color-scheme:dark}:root[data-theme=warm] .maplibregl-canvas{filter:sepia(1) saturate(.7) brightness(.55)}*{box-sizing:border-box}body,html{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:13px/1.5 Segoe UI,system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--bg3);border:1px solid var(--border);border-radius:3px;padding:6px 8px;width:100%}input:focus,select:focus,textarea:focus{outline:1px solid var(--accent)}textarea{resize:vertical}button{background:var(--bg3);border:1px solid var(--border);border-radius:3px;padding:5px 12px;cursor:pointer}button:hover{border-color:var(--accent)}button.primary{background:var(--primary);border-color:var(--primary);color:var(--on-color)}button.primary:hover{background:var(--primary-hover)}button:disabled{opacity:.55;cursor:default}button.link{background:none;border:none;color:var(--muted);padding:0}button.link:hover{color:var(--accent)}kbd{border:1px solid var(--border)}code,kbd{background:var(--bg3);border-radius:3px;padding:0 4px}.workbench{display:flex;flex-direction:column;height:100vh}.main{flex:1 1;display:flex;min-height:0}.topbar{gap:16px;height:36px;padding:0 12px;background:var(--activity);border-bottom:1px solid var(--border);flex-shrink:0}.topbar,.topbar-left{display:flex;align-items:center}.topbar-left{gap:10px;flex:0 0 auto;font-size:13px;white-space:nowrap}.topbar-right{gap:6px;flex:0 0 auto;margin-left:auto}.topbar-right,.topbar-search{display:flex;align-items:center;white-space:nowrap}.topbar-search{gap:8px;flex:1 1 420px;max-width:420px;min-width:140px;margin:0 auto;height:24px;padding:0 8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:12px;overflow:hidden}.topbar-search:hover{border-color:var(--accent);color:var(--fg)}.topbar-search kbd{margin-left:auto;font-size:10px}.model-switch{display:flex;align-items:center;gap:6px;height:24px;padding:0 8px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:12px}.model-switch select{background:transparent;border:none;color:var(--fg);font-size:12px;padding:0;width:auto}.model-name{color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-btn{width:28px;height:24px;display:grid;place-items:center;padding:0;background:none;border:none;border-radius:4px;color:var(--muted)}.top-btn:hover{background:var(--bg3)}.top-btn.on,.top-btn:hover{color:var(--strong)}.activity{width:48px;background:var(--activity);justify-content:space-between;flex-shrink:0}.activity,.stages{display:flex;flex-direction:column}.act{width:48px;height:48px;display:grid;place-items:center;background:none;border:none;border-left:2px solid transparent;border-radius:0;color:var(--muted);padding:0}.act.on,.act:hover{color:var(--strong)}.act.on{border-left-color:var(--accent)}.side{background:var(--bg2);display:flex;flex-direction:column;flex-shrink:0;min-width:0}.side-head{padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.side-body{padding:0 12px 12px;overflow:auto;flex:1 1}.ext{padding:10px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.ext-name{font-weight:600;color:var(--strong)}.side-panel{margin-top:4px}.open{text-align:left}.resizer{width:4px;cursor:col-resize;background:transparent;flex-shrink:0}.resizer:hover{background:var(--accent)}.editor{flex:1 1;display:flex;flex-direction:column;min-width:0}.tabs{background:var(--bg2);min-height:35px;overflow-x:auto}.tab,.tabs{display:flex}.tab{align-items:center;gap:8px;padding:0 14px;background:var(--bg3);border-right:1px solid var(--border);cursor:pointer;color:var(--muted);white-space:nowrap}.tab.on{background:var(--bg);color:var(--strong)}.editor-body{flex:1 1;min-height:0;overflow:auto}.welcome{padding:48px;max-width:560px}.chatwrap{background:var(--bg2);flex-shrink:0;min-width:0}.chat{display:flex;flex-direction:column;height:100%}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.chat-body{flex:1 1;overflow:auto;padding:0 12px;gap:8px}.chat-body,.chat-input{display:flex;flex-direction:column}.chat-input{gap:6px;padding:10px 12px;border-top:1px solid var(--border)}.bubble{padding:8px 10px;border-radius:6px;white-space:pre-wrap;word-break:break-word}.bubble.user{background:var(--bubble-user);align-self:flex-end;max-width:90%}.bubble.ai{background:var(--bg3)}.toolchip{font:11px/1.4 Consolas,monospace;color:var(--muted);padding:2px 6px;word-break:break-all}.toolchip.result{color:#89d185}.answer{background:var(--bg3);padding:8px 10px;border-radius:6px;white-space:pre-wrap}.status{display:flex;gap:16px;align-items:center;padding:2px 12px;background:var(--status);color:var(--on-color);font-size:12px}.status .grow{flex:1 1}.status .error{color:#fff;background:#c42b1c;padding:0 6px}.muted{color:var(--muted)}.small{font-size:12px}.pad{padding:6px 2px}.error{color:var(--danger)}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:grid;place-items:center;z-index:50}.overlay.top{place-items:start center;padding-top:12vh}.dialog{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:20px;width:min(480px,92vw);display:flex;flex-direction:column;gap:6px}.dialog h3{margin:0 0 8px}.dialog label{margin-top:6px}.dialog .hint,.dialog label{font-size:12px;color:var(--muted)}.dialog .row{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.palette{width:min(560px,92vw);background:var(--bg2);border:1px solid var(--border);border-radius:6px;overflow:hidden}.palette input{border:none;border-bottom:1px solid var(--border);border-radius:0;padding:10px 12px}.palette .item{padding:7px 12px;cursor:pointer}.palette .item.sel,.palette .item:hover{background:var(--pal-sel)}.toasts{position:fixed;right:16px;bottom:36px;display:flex;flex-direction:column;gap:6px;z-index:60}.toast{background:var(--bg3);border:1px solid var(--border);padding:8px 12px;border-radius:4px;max-width:360px}.foot{position:relative}.avatar{width:26px;height:26px;border-radius:50%;background:var(--primary);color:var(--on-color);display:grid;place-items:center;font-size:12px;font-weight:600}.popmenu{position:absolute;left:52px;bottom:4px;z-index:50;min-width:240px;padding:6px;background:var(--bg2,#252526);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:4px}.popmenu button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;color:var(--fg);padding:5px 8px;border-radius:4px;font-size:12px}.popmenu button:hover{background:var(--primary);color:var(--on-color)}.popmenu kbd{margin-left:auto;font-size:10px}.pop-title{display:flex;align-items:center;gap:6px;padding:2px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.pad{padding:4px 8px}.sec{border-top:1px solid var(--border)}.sec:first-child{border-top:none}.sec-head{display:flex;align-items:center;gap:2px;width:100%;background:none;border:none;border-radius:0;color:var(--fg);padding:4px 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;text-align:left}.sec-head:hover{background:var(--hover)}.sec-body{padding-bottom:6px}.node{display:flex;align-items:center;gap:6px;height:22px;padding-right:8px;font-size:13px;cursor:pointer;white-space:nowrap}.node:hover{background:var(--hover)}.node.on{background:var(--sel)}.node .twisty{width:14px;display:inline-flex;flex-shrink:0}.node-label{overflow:hidden;text-overflow:ellipsis;flex:1 1}.node.tl{cursor:default;padding-left:12px}.tl-dot{width:7px;height:7px;border-radius:50%;background:var(--muted);flex-shrink:0}.tl-dot.tool{background:#c586c0}.tl-dot.panel{background:var(--accent)}.tl-dot.model{background:#dcdcaa}.tl-dot.notify{background:#89d185}.resizer.v{width:auto;height:4px;cursor:row-resize}.layout-toggles{display:flex;align-items:center;gap:2px}.bpanel-wrap{flex-shrink:0;min-height:0;border-top:1px solid var(--border)}.bpanel{display:flex;flex-direction:column;height:100%;background:var(--bg)}.bpanel-head{display:flex;align-items:center;justify-content:space-between;padding:0 8px;min-height:30px}.bpanel-tabs{display:flex;gap:14px}.bpanel-tabs button{background:none;border:none;border-bottom:1px solid transparent;border-radius:0;color:var(--muted);padding:4px 0;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.bpanel-tabs button.on{color:var(--strong);border-bottom-color:var(--accent)}.bpanel-actions{display:flex;gap:2px}.bpanel-body{flex:1 1;overflow:auto;padding:4px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.logline{padding:1px 0;white-space:pre-wrap}.logline.error{color:var(--danger)}.badge{margin-left:6px;background:#c42b1c;color:#fff;border-radius:8px;padding:0 5px;font-size:10px}.perms{margin:4px 0 8px;padding-left:18px}.overlay.clear{background:transparent;display:block}.popmenu.ctx{position:fixed;bottom:auto}.popmenu button:disabled{opacity:.5;cursor:default}.popmenu .check{width:14px;display:inline-flex}.rpanel{display:flex;flex-direction:column;height:100%}.rpanel-tabs{display:flex;gap:14px;padding:0 12px;min-height:30px;align-items:flex-end;border-bottom:1px solid var(--border)}.rpanel-tabs button{background:none;border:none;border-bottom:1px solid transparent;border-radius:0;color:var(--muted);padding:4px 0;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.rpanel-tabs button.on{color:var(--strong);border-bottom-color:var(--accent)}.rpanel-body{flex:1 1;min-height:0}.rpanel-body.ext{overflow:auto;padding:8px 12px}.bpanel-tabs{overflow-x:auto}.ls-login{display:inline-flex;align-items:center;gap:8px;background:#0b2a5b;color:#fff!important;border:1px solid #0b2a5b;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600;text-decoration:none}.ls-login:hover{background:#12397a;border-color:#12397a}.ls-login.compact{padding:3px 10px;font-size:12px;border-radius:5px}.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover}.popmenu-link{padding:5px 8px;font-size:12px;color:var(--accent)}.ls-login{white-space:nowrap}.topbar{gap:12px}@media (max-width:1500px){.topbar-left .muted{display:none}}@media (max-width:1250px){.model-name,.topbar-search kbd{display:none}}@media (max-width:1000px){.topbar-left strong{display:none}}.brand-link{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none}