/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{--cv-bg-base: #1e1e1e;--cv-bg-surface: #252526;--cv-bg-surface-hover: #2d2d2d;--cv-bg-surface-deep: #161616;--cv-bg-button: #3c3c3c;--cv-bg-button-hover: #4a4a4a;--cv-bg-selected: #094771;--cv-bg-input: #1e1e1e;--cv-bg-msg-user: #2a2d36;--cv-bg-error: #3a1f1f;--cv-text-primary: #e0e0e0;--cv-text-body: #d4d4d4;--cv-text-secondary: #aaa;--cv-text-muted: #888;--cv-text-onaccent: #fff;--cv-border-subtle: #1a1a1a;--cv-border-input: #3c3c3c;--cv-border-pane: #2a2a2a;--cv-border-msg: #3a3d46;--cv-accent: #007acc;--cv-accent-hover: #1080d0;--cv-success: #6cb87a;--cv-warning: #e2c08d;--cv-error: #d97077;--cv-error-bg: #3a1f1f;--cv-error-border: #5c2c2c;--cv-info: #4ec9b0;--cv-space-1: 4px;--cv-space-2: 8px;--cv-space-3: 12px;--cv-space-4: 16px;--cv-space-5: 20px;--cv-space-6: 24px;--cv-radius-sm: 3px;--cv-radius-md: 4px;--cv-radius-lg: 6px;--cv-radius-xl: 8px;--cv-transition: .15s ease;--cv-toolbar-height: 36px;--cv-statusbar-height: 22px}html,body,#root{margin:0;height:100%;background:var(--cv-bg-base);color:var(--cv-text-body);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}:focus-visible{outline:2px solid var(--cv-accent);outline-offset:1px;border-radius:var(--cv-radius-sm)}kbd,.kbd{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10.5px;background:var(--cv-bg-input);border:1px solid var(--cv-border-input);border-radius:var(--cv-radius-sm);padding:1px 5px;color:var(--cv-text-secondary);white-space:nowrap}.toolbar{height:var(--cv-toolbar-height);display:flex;align-items:center;padding:0 var(--cv-space-3);background:var(--cv-bg-surface);border-bottom:1px solid var(--cv-border-subtle);gap:var(--cv-space-2);font-size:12px}.toolbar-brand{font-weight:600;color:var(--cv-text-primary);letter-spacing:.4px;margin-right:var(--cv-space-2)}.toolbar-group{display:flex;align-items:center;gap:var(--cv-space-1)}.toolbar-sep{width:1px;height:16px;background:var(--cv-border-input);margin:0 var(--cv-space-2)}.toolbar button{background:var(--cv-bg-button);color:var(--cv-text-body);border:none;padding:6px 10px;font-size:12px;border-radius:var(--cv-radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:var(--cv-space-2);transition:background var(--cv-transition)}.toolbar button:hover{background:var(--cv-bg-button-hover)}.toolbar button .kbd{background:#00000040;border-color:#ffffff14;color:var(--cv-text-muted)}.toolbar .hint{opacity:.6;font-size:11px}.main{position:absolute;top:var(--cv-toolbar-height);left:0;right:0;bottom:var(--cv-statusbar-height);display:flex}.sidebar{width:240px;background:var(--cv-bg-surface);border-right:1px solid var(--cv-border-subtle);overflow-y:auto;font-size:12px;flex:0 0 auto}.layout-host{flex:1 1 0;min-width:0;position:relative}.statusbar{position:absolute;bottom:0;left:0;right:0;height:var(--cv-statusbar-height);display:flex;align-items:center;gap:var(--cv-space-3);padding:0 var(--cv-space-3);background:var(--cv-bg-surface);border-top:1px solid var(--cv-border-subtle);font-size:11px;color:var(--cv-text-secondary);-webkit-user-select:none;user-select:none}.statusbar-section{display:inline-flex;align-items:center;gap:var(--cv-space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statusbar-section.active-title{flex:1 1 auto;justify-content:center;color:var(--cv-text-muted);min-width:0}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--cv-text-muted);display:inline-block}.status-dot.ok{background:var(--cv-success);box-shadow:0 0 4px #6cb87a99}.status-dot.warn{background:var(--cv-warning)}.status-dot.error{background:var(--cv-error)}.status-dot.checking{background:var(--cv-text-muted);animation:cv-pulse 1.2s ease-in-out infinite}@keyframes cv-pulse{0%,to{opacity:.4}50%{opacity:1}}.statusbar .kbd-hint{display:inline-flex;gap:var(--cv-space-1);align-items:center}.statusbar-sep{opacity:.35;-webkit-user-select:none;user-select:none}.statusbar-copyright{color:var(--cv-text-muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filetree-root{padding:var(--cv-space-1) 0}.filetree-header{padding:6px var(--cv-space-3);color:var(--cv-text-muted);text-transform:uppercase;font-size:10px;letter-spacing:.6px;border-bottom:1px solid var(--cv-border-subtle);margin-bottom:var(--cv-space-1)}.filetree-error,.filetree-empty,.filetree-loading,.tree-error,.tree-loading{padding:var(--cv-space-1) var(--cv-space-3);color:var(--cv-text-muted);font-size:11px}.filetree-error,.tree-error{color:var(--cv-error)}.filetree,.filetree ul{list-style:none;padding:0;margin:0}.filetree ul{padding-left:14px}.tree-row{display:flex;gap:var(--cv-space-1);padding:2px var(--cv-space-3);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center}.tree-row:hover{background:var(--cv-bg-surface-hover)}.tree-row .caret{width:10px;opacity:.7}.tree-row.file .name{opacity:.85}.tree-row.dir .name{color:#cdd6f4}.pane-frame{display:flex;flex-direction:column;width:100%;height:100%;border:1px solid var(--cv-border-pane);box-sizing:border-box;background:var(--cv-bg-base);position:relative;transition:border-color var(--cv-transition)}.pane-frame.active{border-color:var(--cv-accent)}.pane-frame.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--cv-accent);pointer-events:none}.pane-header{height:22px;display:flex;align-items:center;padding:0 var(--cv-space-2);font-size:11px;background:var(--cv-bg-surface-hover);border-bottom:1px solid var(--cv-border-subtle);color:var(--cv-text-secondary);-webkit-user-select:none;user-select:none;gap:var(--cv-space-1)}.pane-header-icon{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;opacity:.7;flex-shrink:0;width:14px;text-align:center}.pane-header-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.pane-header button{background:transparent;border:none;color:var(--cv-text-secondary);cursor:pointer;font-size:14px;line-height:1;padding:0 var(--cv-space-1);border-radius:var(--cv-radius-sm);flex-shrink:0;transition:color var(--cv-transition),background var(--cv-transition)}.pane-header button:hover{color:var(--cv-text-onaccent);background:#ffffff14}.pane-content{flex:1 1 0;min-height:0;position:relative}.term-host{position:absolute;inset:var(--cv-space-1)}.viewer{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:var(--cv-space-3);overflow:auto;font-family:Menlo,Consolas,DejaVu Sans Mono,monospace;font-size:12px;line-height:1.5;color:var(--cv-text-body);white-space:pre;-moz-tab-size:4;tab-size:4}.viewer-error,.viewer-loading{padding:var(--cv-space-3);color:var(--cv-text-muted);font-size:12px}.viewer-error{color:var(--cv-error)}.splitter-h,.splitter-v{background:var(--cv-border-subtle);flex:0 0 auto;transition:background var(--cv-transition)}.splitter-h{cursor:col-resize;width:4px}.splitter-v{cursor:row-resize;height:4px}.splitter-h:hover,.splitter-v:hover{background:var(--cv-accent)}.login-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--cv-bg-base)}.login-form{background:var(--cv-bg-surface);padding:32px 40px;border:1px solid var(--cv-border-subtle);border-radius:var(--cv-radius-xl);display:flex;flex-direction:column;gap:var(--cv-space-3);width:320px}.login-form h1{margin:0 0 4px;font-size:18px;color:var(--cv-text-primary)}.login-form p{margin:0;font-size:12px;opacity:.75}.login-form .hint{opacity:.55;font-size:11px}.login-form input{background:var(--cv-bg-input);color:var(--cv-text-body);border:1px solid var(--cv-border-input);border-radius:var(--cv-radius-sm);padding:var(--cv-space-2) 10px;font-size:13px;font-family:Menlo,Consolas,monospace;transition:border-color var(--cv-transition)}.login-form input:focus{outline:none;border-color:var(--cv-accent)}.login-form button{background:var(--cv-accent);color:var(--cv-text-onaccent);border:none;border-radius:var(--cv-radius-sm);padding:var(--cv-space-2) var(--cv-space-3);font-size:13px;cursor:pointer;transition:background var(--cv-transition)}.login-form button:hover{background:var(--cv-accent-hover)}.editor-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.editor-status{height:22px;display:flex;align-items:center;padding:0 var(--cv-space-2);background:var(--cv-bg-surface-hover);border-bottom:1px solid var(--cv-border-subtle);font-size:11px;color:var(--cv-text-secondary);gap:var(--cv-space-2)}.editor-status-pill{font-weight:500}.status-clean,.status-saved{color:var(--cv-success)}.status-dirty{color:var(--cv-warning)}.status-saving{color:var(--cv-info)}.status-error{color:var(--cv-error)}.editor-hint{opacity:.55;font-size:10.5px}.editor-host{flex:1 1 0;min-height:0;position:relative}.agent-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--cv-bg-base)}.agent-messages{flex:1 1 0;min-height:0;overflow-y:auto;padding:var(--cv-space-3) var(--cv-space-4)}.agent-empty{color:var(--cv-text-muted);font-size:12.5px;padding:var(--cv-space-2) 0;line-height:1.5}.agent-msg{margin-bottom:14px;font-size:13px;line-height:1.5}.agent-msg-role{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;opacity:.6;margin-bottom:var(--cv-space-1)}.agent-msg-user .agent-msg-content{background:var(--cv-bg-msg-user);border:1px solid var(--cv-border-subtle);border-radius:var(--cv-radius-md);padding:var(--cv-space-2) 10px;white-space:pre-wrap;color:var(--cv-text-primary)}.agent-msg-assistant .agent-msg-content{color:var(--cv-text-body)}.agent-msg-assistant .agent-msg-content p{margin:0 0 var(--cv-space-2) 0}.agent-msg-assistant .agent-msg-content p:last-child{margin-bottom:0}.agent-msg-assistant .agent-msg-content code{background:var(--cv-bg-surface-hover);border-radius:var(--cv-radius-sm);padding:1px 5px;font-family:Menlo,Consolas,monospace;font-size:12px}.agent-msg-assistant .agent-msg-content pre{background:var(--cv-bg-surface-deep);border:1px solid var(--cv-border-subtle);border-radius:var(--cv-radius-md);padding:10px var(--cv-space-3);overflow-x:auto;margin:var(--cv-space-2) 0}.agent-msg-assistant .agent-msg-content pre code{background:transparent;padding:0;font-size:12px;line-height:1.5}.agent-msg-assistant .agent-msg-content ul,.agent-msg-assistant .agent-msg-content ol{margin:6px 0;padding-left:22px}.agent-msg-assistant .agent-msg-content a{color:var(--cv-info)}.agent-error{background:var(--cv-error-bg);border:1px solid var(--cv-error-border);color:#f5a3a3;padding:var(--cv-space-2) 10px;border-radius:var(--cv-radius-md);font-size:12px;margin:var(--cv-space-2) 0}.agent-input-row{display:flex;gap:var(--cv-space-2);padding:var(--cv-space-2) var(--cv-space-3);border-top:1px solid var(--cv-border-subtle);background:var(--cv-bg-surface);align-items:flex-end}.agent-input-row textarea{flex:1 1 0;background:var(--cv-bg-input);color:var(--cv-text-body);border:1px solid var(--cv-border-input);border-radius:var(--cv-radius-sm);padding:var(--cv-space-2) 10px;font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;resize:none;min-height:40px;max-height:160px;transition:border-color var(--cv-transition)}.agent-input-row textarea:focus{outline:none;border-color:var(--cv-accent)}.agent-input-row button{background:var(--cv-accent);color:var(--cv-text-onaccent);border:none;border-radius:var(--cv-radius-sm);padding:var(--cv-space-2) 14px;font-size:13px;cursor:pointer;min-width:70px;transition:background var(--cv-transition),filter var(--cv-transition)}.agent-input-row button:disabled{background:var(--cv-bg-button);color:var(--cv-text-muted);cursor:not-allowed}.agent-input-row button.agent-stop{background:#a04040}.agent-input-row button.agent-stop:hover{background:#b84747}.agent-thinking{opacity:.7;font-size:16px;letter-spacing:2px;display:inline-flex;gap:3px}.agent-thinking:after{content:"...";animation:cv-thinking 1.2s ease-in-out infinite}@keyframes cv-thinking{0%,to{opacity:.3}50%{opacity:1}}.agent-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-family:Menlo,Consolas,monospace;margin:var(--cv-space-1) var(--cv-space-1) var(--cv-space-1) 0;background:var(--cv-bg-msg-user);border:1px solid var(--cv-border-msg);color:#cdd6f4}.agent-pill-running{color:var(--cv-warning);border-color:#5a4a30;background:#2e2820}.agent-pill-ok{color:var(--cv-success);border-color:#2f4a35;background:#1f2a22}.agent-pill-error{color:var(--cv-error);border-color:#4a2c2c;background:#2a1f1f}.agent-pill-icon,.agent-pill-name{font-weight:600}.agent-pill-arg{opacity:.85}.agent-pill-err{opacity:.85;font-style:italic}.agent-loading{padding:var(--cv-space-4);color:var(--cv-text-muted);font-size:12px}.agent-headerbar{height:28px;display:flex;align-items:center;padding:0 10px;background:var(--cv-bg-surface-hover);border-bottom:1px solid var(--cv-border-subtle);font-size:11px;color:var(--cv-text-secondary);gap:var(--cv-space-2)}.agent-headerbar-title{flex:1 1 auto}.agent-clear{background:transparent;border:1px solid var(--cv-border-input);color:var(--cv-text-secondary);padding:2px var(--cv-space-2);border-radius:var(--cv-radius-sm);font-size:10.5px;cursor:pointer;transition:background var(--cv-transition),color var(--cv-transition)}.agent-clear:hover:not(:disabled){background:var(--cv-bg-button);color:var(--cv-text-onaccent)}.agent-clear:disabled{opacity:.4;cursor:not-allowed}.agent-pill-awaiting_approval{color:var(--cv-warning);border-color:#5a4a30;background:#2e2820}.agent-pill-approving{color:var(--cv-info);border-color:#2a4a48;background:#1e2828}.agent-pill-actions{display:inline-flex;gap:6px;margin-left:var(--cv-space-2)}.agent-pill-actions button{background:var(--cv-accent);color:var(--cv-text-onaccent);border:none;border-radius:var(--cv-radius-sm);padding:2px 9px;font-size:11px;font-family:inherit;cursor:pointer}.agent-pill-actions button.deny{background:#6c3030}.agent-pill-actions button:hover{filter:brightness(1.15)}.command-palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;justify-content:center;padding-top:12vh;z-index:1000}.command-palette{background:#2a2a2a;color:var(--cv-text-primary);border:1px solid var(--cv-border-input);border-radius:var(--cv-radius-lg);width:min(640px,90vw);max-height:60vh;display:flex;flex-direction:column;box-shadow:0 12px 32px #0006;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.command-palette input{background:transparent;color:inherit;border:none;border-bottom:1px solid var(--cv-border-input);padding:var(--cv-space-3) 14px;font:inherit;font-size:14px;outline:none}.command-palette ul{list-style:none;padding:var(--cv-space-1) 0;margin:0;overflow-y:auto}.command-palette-row{display:flex;align-items:center;justify-content:space-between;gap:var(--cv-space-3);padding:var(--cv-space-2) 14px;cursor:pointer;font-size:13px}.command-palette-row.hl,.command-palette-row:hover{background:var(--cv-bg-selected)}.command-palette-row-main{display:flex;align-items:baseline;gap:var(--cv-space-2);min-width:0}.command-palette-category{color:var(--cv-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.command-palette-title{color:var(--cv-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette-kbd{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;background:var(--cv-bg-input);border:1px solid #444;border-radius:var(--cv-radius-sm);padding:2px 6px;color:var(--cv-text-secondary);white-space:nowrap}.command-palette-empty{padding:14px;color:var(--cv-text-muted);font-size:13px;text-align:center}.update-banner{position:fixed;top:calc(var(--cv-toolbar-height) + var(--cv-space-2));right:var(--cv-space-3);z-index:1100;display:inline-flex;align-items:center;gap:var(--cv-space-2);padding:var(--cv-space-2) var(--cv-space-3);background:var(--cv-bg-surface);border:1px solid var(--cv-accent);border-radius:var(--cv-radius-lg);color:var(--cv-text-primary);font-size:12px;box-shadow:0 8px 24px #0006}.update-banner-text{white-space:nowrap}.update-banner-btn{background:var(--cv-accent);color:var(--cv-text-onaccent);border:none;border-radius:var(--cv-radius-sm);padding:4px var(--cv-space-3);font-size:12px;font-weight:500;cursor:pointer;transition:background var(--cv-transition)}.update-banner-btn:hover{background:var(--cv-accent-hover)}.agent-pill{flex-direction:column;align-items:flex-start;padding:3px 9px 4px}.agent-pill-row{display:inline-flex;align-items:center;gap:6px}.agent-pill-progress{display:block;width:100%;margin:4px 0 0;padding:6px 8px;background:#00000059;border-radius:var(--cv-radius-sm);font-family:Menlo,Consolas,monospace;font-size:11px;line-height:1.45;color:#cdd6f4;white-space:pre-wrap;word-break:break-word;max-height:14em;overflow:auto}.agent-pill-deny-form input{background:#1f2129;border:1px solid var(--cv-border);color:var(--cv-text);border-radius:var(--cv-radius-sm);padding:2px 6px;font-size:11.5px;font-family:Menlo,Consolas,monospace;min-width:14em;margin-right:2px}.agent-pill-deny-form input:focus{outline:none;border-color:var(--cv-accent)}.agent-pill-deny-form button.cancel{background:#3a3a44}
