:root{--bg: #1e1e1e;--bg-elev-1: #252526;--bg-elev-2: #2d2d30;--bg-elev-3: #3a3d41;--bg-elev-4: #45494e;--fg: #d4d4d4;--fg-muted: #a0a0a0;--fg-dim: #6b6b6b;--accent: #0e639c;--accent-2: #1177bb;--accent-3: #2a8ad3;--danger: #c75050;--warn: #cca700;--border: #3c3c3c;--border-strong: #555;--tab-active-bg: #1e1e1e;--tab-inactive-bg: #2d2d30;--header-h: 38px;--tab-h: 32px;--status-h: 22px;--splitter-w: 5px;--colhdr-h: 30px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;width:100%;font-family:Segoe UI,SF Pro Text,system-ui,-apple-system,sans-serif;font-size:13px;background:var(--bg);color:var(--fg);overflow:hidden}button{font:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:3px;padding:3px 9px;cursor:pointer;line-height:1.2}button:hover{background:var(--bg-elev-3)}button:active{background:var(--bg-elev-4)}button:disabled{opacity:.4;cursor:not-allowed}button:disabled:hover{background:transparent}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}button.ghost{color:var(--fg-muted);padding:2px 7px}button.ghost:hover{color:var(--fg)}input,textarea{background:var(--bg-elev-2);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:5px 7px;font:inherit;outline:none}input:focus,textarea:focus{border-color:var(--accent-2)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-elev-3);border-radius:5px;border:2px solid var(--bg-elev-1)}::-webkit-scrollbar-thumb:hover{background:var(--bg-elev-4)}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden}.header{display:flex;align-items:center;padding:0 12px;height:var(--header-h);background:var(--bg-elev-1);border-bottom:1px solid var(--border);gap:12px;flex-shrink:0}.header .title{font-weight:600;letter-spacing:.5px;color:var(--fg);font-size:13px}.header .spacer{flex:1}.header .toggles{display:flex;gap:4px;flex-shrink:0}.header .toggle{font-size:11px;padding:4px 9px;border:1px solid var(--border);color:var(--fg-muted);background:var(--bg-elev-2);border-radius:3px;white-space:nowrap}.header .toggle:hover{background:var(--bg-elev-3);color:var(--fg);border-color:var(--border-strong)}.header .toggle.on{background:var(--accent);color:#fff;border-color:var(--accent)}.header .toggle.on:hover{background:var(--accent-2);border-color:var(--accent-2)}.main{display:flex;flex-direction:row;flex:1;min-height:0;overflow:hidden}.left-col,.right-col{background:var(--bg-elev-1);display:flex;flex-direction:column;min-height:0;overflow:hidden;flex-shrink:0;flex-grow:0}.left-col{border-right:1px solid var(--border)}.right-col{border-left:1px solid var(--border)}.col-collapsed{display:none!important}.col-header{display:flex;align-items:center;padding:0 10px;height:var(--colhdr-h);background:var(--bg-elev-2);border-bottom:1px solid var(--border);text-transform:uppercase;font-size:11px;letter-spacing:.5px;color:var(--fg-muted);flex-shrink:0;gap:6px}.col-header .actions{margin-left:auto;display:flex;gap:2px}.col-header .actions button.ghost{font-size:14px;padding:1px 7px;border-radius:3px}.col-body{flex:1;overflow-y:auto;overflow-x:auto;min-height:0}.splitter-v{width:var(--splitter-w);cursor:col-resize;background:transparent;flex-shrink:0;position:relative;z-index:5}.splitter-v:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translate(-50%);background:var(--border)}.splitter-v:hover,.splitter-v.dragging{background:var(--accent-2)}.splitter-v:hover:before,.splitter-v.dragging:before{background:var(--accent-2)}.center-col{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:hidden}.tabs-bar{display:flex;flex-shrink:0;height:var(--tab-h);background:var(--bg-elev-2);border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden}.tabs-bar::-webkit-scrollbar{height:3px}.tab{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;min-width:120px;max-width:240px;background:var(--tab-inactive-bg);border-right:1px solid var(--border);cursor:pointer;color:var(--fg-muted);font-size:12px;-webkit-user-select:none;user-select:none;position:relative;flex-shrink:0}.tab:hover{color:var(--fg);background:var(--bg-elev-3)}.tab.active{background:var(--tab-active-bg);color:var(--fg)}.tab.active:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent-2)}.tab .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.tab .kind-badge{font-size:9px;padding:1px 5px;border-radius:2px;background:var(--bg-elev-4);color:var(--fg-dim);letter-spacing:.5px;font-weight:600;flex-shrink:0}.tab.kind-conv .kind-badge{background:#6b3a8f;color:#e0d0f0}.tab.kind-file .kind-badge{background:#2a5f7a;color:#c0e0f0}.tab.dirty .name:before{content:"● ";color:var(--fg)}.tab .close{opacity:.5;padding:0 4px;border-radius:3px;flex-shrink:0;font-size:14px;line-height:1}.tab .close:hover{opacity:1;background:var(--bg-elev-4)}.tabs-empty{padding:0 14px;color:var(--fg-dim);display:flex;align-items:center;font-size:11px}.center-pane{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg);position:relative;overflow:hidden}.center-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);flex-direction:column;gap:8px;text-align:center;padding:20px}.center-empty .hint{font-size:12px;max-width:480px}.editor-host{flex:1;min-height:0;min-width:0;display:flex}.editor-host>*{flex:1;min-width:0;min-height:0}.editor-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:12px}.tree{padding:4px 0}.tree-node{font-size:12px}.tree-row{display:flex;align-items:center;height:22px;padding-left:var(--depth, 0px);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;color:var(--fg)}.tree-row:hover{background:var(--bg-elev-3)}.tree-row.selected{background:var(--accent);color:#fff}.tree-row .chev{width:16px;text-align:center;color:var(--fg-dim);flex-shrink:0;font-size:10px}.tree-row .icon{width:18px;text-align:center;margin-right:2px;flex-shrink:0;font-size:12px}.tree-row .name{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;padding-right:6px}.tree-row .size{font-size:10px;color:var(--fg-dim);padding-right:8px;flex-shrink:0}.tree-row.selected .size{color:#fff9}.tree-row.loading{color:var(--fg-dim)}.tree-row.error{color:var(--danger)}.tree-row.hidden-name .name{color:var(--fg-muted)}.tree-row.type-file .name{color:var(--fg)}.tree-row.type-dir .name{color:var(--fg);font-weight:500}.tree-row.type-symlink .name{font-style:italic;color:var(--accent-3)}.conv-list{padding:4px}.conv-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:3px;cursor:pointer;font-size:12px;margin-bottom:2px}.conv-row:hover{background:var(--bg-elev-3)}.conv-row.selected{background:var(--accent);color:#fff}.conv-row .icon{flex-shrink:0}.conv-row .title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.conv-row .delete{opacity:0;padding:0 5px;flex-shrink:0;font-size:14px;line-height:1}.conv-row:hover .delete{opacity:.7}.conv-row .delete:hover{opacity:1;color:var(--danger)}.conv-row.selected .delete{color:#fffc}.conv-list-empty{padding:18px 16px;text-align:center;color:var(--fg-dim);font-size:12px}.conv-list-empty button{margin-top:10px}.ai-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.ai-panel .ai-header{padding:8px 10px;border-bottom:1px solid var(--border);font-size:12px;color:var(--fg-muted);display:flex;align-items:center;gap:8px;flex-shrink:0;background:var(--bg-elev-2)}.ai-panel .ai-header .placeholder-tag{background:#6b3a8f;color:#e0d0f0;padding:2px 7px;border-radius:2px;font-size:9px;font-weight:600;letter-spacing:.5px}.ai-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:0}.ai-msg{padding:8px 12px;border-radius:6px;font-size:12px;line-height:1.5;max-width:92%;word-wrap:break-word}.ai-msg.role-user{background:var(--accent);color:#fff;align-self:flex-end}.ai-msg.role-assistant{background:var(--bg-elev-2);align-self:flex-start;border:1px solid var(--border)}.ai-msg.role-system{background:transparent;color:var(--fg-dim);align-self:center;font-style:italic;border:1px dashed var(--border)}.ai-msg .role-tag{font-size:9px;color:var(--fg-dim);margin-bottom:3px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.ai-msg.role-user .role-tag{color:#ffffffb3}.ai-msg.role-trace{background:transparent;color:var(--fg-muted);align-self:stretch;font-family:Consolas,SF Mono,monospace;font-size:11px;border-left:2px solid var(--border-strong);border-radius:0;padding:4px 10px}.ai-msg.role-trace.kind-error{border-left-color:var(--danger);color:var(--danger)}.ai-msg.role-trace.kind-thinking{opacity:.65;font-style:italic}.ai-msg.role-assistant.kind-say{background:var(--bg-elev-2)}.status-tag{padding:2px 7px;border-radius:2px;font-size:9px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.status-tag.status-pending{background:#5a4500;color:#ffd97a}.status-tag.status-thinking{background:#1a4a6b;color:#9bd0ff}.status-tag.status-idle{background:var(--bg-elev-3);color:var(--fg-muted)}.ai-composer{border-top:1px solid var(--border);padding:8px;display:flex;gap:8px;flex-shrink:0;background:var(--bg-elev-1)}.ai-composer textarea{flex:1;resize:none;min-height:54px;max-height:180px;font-family:inherit}.ai-composer button{align-self:flex-end}.ai-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);flex-direction:column;gap:8px;padding:24px;text-align:center}.voice-panel{border-top:1px solid var(--border);background:var(--bg-elev-1);padding:8px 10px;display:flex;align-items:center;gap:10px;flex-shrink:0;height:44px}.voice-panel .mic-bubble{width:28px;height:28px;border-radius:50%;background:var(--bg-elev-3);display:flex;align-items:center;justify-content:center;color:var(--fg-muted);flex-shrink:0}.voice-panel .waveform{flex:1;height:24px;background:var(--bg-elev-2);border-radius:3px;display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-size:11px;font-style:italic;min-width:0}.voice-panel .row{gap:4px;flex-shrink:0}.ctx-menu{position:fixed;z-index:1000;background:var(--bg-elev-2);border:1px solid var(--border-strong);border-radius:4px;box-shadow:0 6px 18px #00000080;min-width:200px;padding:4px 0;font-size:12px;-webkit-user-select:none;user-select:none}.ctx-item{padding:5px 14px;cursor:pointer;color:var(--fg)}.ctx-item:hover{background:var(--accent);color:#fff}.ctx-item.disabled{color:var(--fg-dim);cursor:not-allowed}.ctx-item.disabled:hover{background:transparent;color:var(--fg-dim)}.ctx-item.danger{color:#ef7777}.ctx-item.danger:hover{background:var(--danger);color:#fff}.ctx-sep{height:1px;background:var(--border);margin:4px 0}.editor-banner{display:flex;align-items:center;gap:10px;padding:6px 12px;background:#5a4500;color:#ffe7a0;border-bottom:1px solid var(--warn);font-size:12px;flex-shrink:0}.editor-banner button{font-size:11px;padding:3px 9px}.error-boundary{padding:40px;max-width:900px;margin:0 auto;color:var(--fg)}.error-boundary h2{color:var(--danger);margin-top:0}.error-stack{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:4px;padding:12px;overflow:auto;font-size:11px;font-family:Consolas,Cascadia Code,Menlo,monospace;max-height:300px;white-space:pre-wrap}.logs-panel{border-top:1px solid var(--border);background:#131313;display:flex;flex-direction:column;height:220px;min-height:80px;max-height:60vh;flex-shrink:0}.logs-header{display:flex;align-items:center;padding:4px 8px;background:var(--bg-elev-2);border-bottom:1px solid var(--border);font-size:11px;gap:10px;flex-shrink:0;height:28px}.logs-header .logs-title{color:var(--fg-muted);font-weight:600}.logs-header .logs-error{color:var(--danger)}.logs-header .spacer{flex:1}.logs-header .logs-control{display:flex;align-items:center;gap:4px;color:var(--fg-muted);cursor:pointer}.logs-header .logs-control select{background:var(--bg-elev-3);color:var(--fg);border:1px solid var(--border);border-radius:2px;font-size:11px;padding:1px 4px}.logs-header .logs-control input{margin:0;cursor:pointer}.logs-body{flex:1;overflow-y:auto;overflow-x:auto;font-family:Consolas,Cascadia Code,Menlo,monospace;font-size:11px;line-height:1.45;padding:6px 8px;min-height:0}.logs-line{white-space:pre;color:var(--fg)}.logs-line.err{color:#ef7777}.logs-line.warn{color:var(--warn)}.logs-line.info{color:var(--accent-3)}.status-bar{height:var(--status-h);background:var(--accent);color:#fff;display:flex;align-items:center;padding:0 12px;gap:16px;font-size:11px;flex-shrink:0}.status-bar .item{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-bar .spacer{flex:1}.muted{color:var(--fg-muted)}.dim{color:var(--fg-dim)}.row{display:flex;align-items:center;gap:6px}.col{display:flex;flex-direction:column;gap:6px}
