*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root,[data-theme=dark]{--surface-0: #0a0e14;--surface-1: #0f1319;--surface-2: #151a23;--surface-3: #1b2230;--surface-4: #232b3d;--surface-overlay: rgba(0, 0, 0, .6);--border-default: #262f3f;--border-muted: #1c2535;--border-accent: rgba(99, 140, 255, .25);--text-primary: #e2e8f0;--text-secondary: #8892a4;--text-tertiary: #5a6578;--text-link: #638cff;--text-inverse: #0a0e14;--accent: #638cff;--accent-hover: #7da1ff;--accent-muted: rgba(99, 140, 255, .12);--accent-subtle: rgba(99, 140, 255, .06);--success: #34d399;--success-muted: rgba(52, 211, 153, .12);--warning: #fbbf24;--warning-muted: rgba(251, 191, 36, .12);--danger: #f87171;--danger-muted: rgba(248, 113, 113, .1);--info: #638cff;--info-muted: rgba(99, 140, 255, .1);--chat-user-bg: rgba(99, 140, 255, .12);--chat-user-border: rgba(99, 140, 255, .2);--chat-ai-bg: #151a23;--chat-ai-border: #262f3f;--term-bg: #0a0e14;--term-fg: #e2e8f0;--term-cursor: #638cff;--term-selection: rgba(99, 140, 255, .2);--term-black: #484f58;--term-red: #f87171;--term-green: #34d399;--term-yellow: #fbbf24;--term-blue: #638cff;--term-magenta: #c084fc;--term-cyan: #22d3ee;--term-white: #b1bac4;--term-bright-black: #6e7681;--term-bright-red: #fca5a5;--term-bright-green: #6ee7b7;--term-bright-yellow: #fde68a;--term-bright-blue: #93b4ff;--term-bright-magenta: #d8b4fe;--term-bright-cyan: #67e8f9;--term-bright-white: #f0f6fc;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-xs: 4px;--radius-s: 6px;--radius-m: 10px;--radius-l: 14px;--radius-xl: 20px;--radius-full: 9999px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Cascadia Code", "Consolas", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-lg: 14px;--font-size-xl: 16px;--font-size-2xl: 20px;--line-height: 1.55;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .15);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .4), 0 8px 10px rgba(0, 0, 0, .2);--shadow-overlay: 0 25px 50px -12px rgba(0, 0, 0, .6);--transition-fast: .12s ease;--transition-normal: .2s ease;--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--z-terminal: 1;--z-panel: 10;--z-header: 20;--z-overlay: 100;--z-toast: 200;--z-palette: 300}[data-theme=light]{--surface-0: #fafbfc;--surface-1: #f3f5f8;--surface-2: #ebeef3;--surface-3: #dfe3eb;--surface-4: #d0d6e0;--surface-overlay: rgba(15, 23, 42, .3);--border-default: #cdd5df;--border-muted: #dfe3eb;--border-accent: rgba(59, 91, 219, .3);--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--text-link: #3b5bdb;--text-inverse: #ffffff;--accent: #3b5bdb;--accent-hover: #2f4dc4;--accent-muted: rgba(59, 91, 219, .1);--accent-subtle: rgba(59, 91, 219, .05);--success: #059669;--success-muted: rgba(5, 150, 105, .1);--warning: #d97706;--warning-muted: rgba(217, 119, 6, .1);--danger: #dc2626;--danger-muted: rgba(220, 38, 38, .08);--info: #3b5bdb;--info-muted: rgba(59, 91, 219, .08);--chat-user-bg: rgba(59, 91, 219, .08);--chat-user-border: rgba(59, 91, 219, .15);--chat-ai-bg: #f3f5f8;--chat-ai-border: #cdd5df;--term-bg: #1e1e2e;--term-fg: #cdd6f4;--term-cursor: #89b4fa;--term-selection: rgba(137, 180, 250, .3);--term-black: #45475a;--term-red: #f38ba8;--term-green: #a6e3a1;--term-yellow: #f9e2af;--term-blue: #89b4fa;--term-magenta: #cba6f7;--term-cyan: #94e2d5;--term-white: #bac2de;--term-bright-black: #585b70;--term-bright-red: #f38ba8;--term-bright-green: #a6e3a1;--term-bright-yellow: #f9e2af;--term-bright-blue: #89b4fa;--term-bright-magenta: #cba6f7;--term-bright-cyan: #94e2d5;--term-bright-white: #a6adc8;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06), 0 1px 3px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 10px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px rgba(0, 0, 0, .06);--shadow-overlay: 0 25px 50px -12px rgba(0, 0, 0, .15)}html,body,#root{height:100%;width:100%;overflow:hidden;background:var(--surface-0);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--font-size-md);line-height:var(--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-muted);color:var(--text-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes breathing{0%,to{opacity:.6}50%{opacity:1}}/**
 * 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}.terminal-panel{display:flex;flex-direction:column;height:100%;background:var(--term-bg);position:relative}.terminal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--border-muted);height:38px;flex-shrink:0;z-index:2}.terminal-toolbar-left,.terminal-toolbar-right{display:flex;align-items:center;gap:var(--space-2)}.toolbar-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.toolbar-icon{color:var(--accent)}.toolbar-chip{font-size:var(--font-size-xs);padding:2px 8px;border-radius:var(--radius-full);background:var(--accent-subtle);color:var(--accent);font-weight:500;letter-spacing:.2px}.toolbar-btn{background:none;border:1px solid transparent;color:var(--text-tertiary);padding:4px 6px;border-radius:var(--radius-s);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.toolbar-btn:hover{color:var(--text-primary);background:var(--surface-3);border-color:var(--border-default)}.toolbar-font-size{font-size:var(--font-size-xs);color:var(--text-tertiary);min-width:32px;text-align:center;font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.toolbar-divider{width:1px;height:16px;background:var(--border-default);margin:0 var(--space-1)}.terminal-search-bar{position:absolute;top:38px;right:var(--space-3);display:flex;align-items:center;gap:var(--space-1);background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-m);padding:var(--space-1) var(--space-2);z-index:5;animation:fadeInDown .15s ease;box-shadow:var(--shadow-md)}.search-bar-icon{color:var(--text-tertiary);margin-left:var(--space-1);flex-shrink:0}.terminal-search-bar input{background:transparent;border:none;color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-mono);outline:none;width:200px;padding:var(--space-1)}.terminal-search-bar input::placeholder{color:var(--text-tertiary)}.terminal-search-bar button{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:3px;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.terminal-search-bar button:hover{background:var(--surface-4);color:var(--text-primary)}.ghost-suggestion{position:absolute;bottom:var(--space-2);left:var(--space-3);display:flex;align-items:center;gap:var(--space-3);background:var(--surface-3);border:1px solid var(--border-accent);border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);z-index:3;animation:slideUp .2s ease;box-shadow:var(--shadow-md)}.ghost-text{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.ghost-hint{font-size:var(--font-size-xs);color:var(--text-tertiary);background:var(--surface-4);padding:2px 8px;border-radius:var(--radius-xs);font-weight:500}.error-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:linear-gradient(90deg,#f871711f,#f871710f);border-top:1px solid rgba(248,113,113,.25);border-bottom:1px solid rgba(248,113,113,.25);cursor:pointer;flex-shrink:0;animation:errorBannerSlide .25s ease;transition:background var(--transition-fast);z-index:4}.error-banner:hover{background:linear-gradient(90deg,#f871712e,#f871711a)}.error-banner-content{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1}.error-banner-icon{color:#f87171;flex-shrink:0;animation:errorPulse 2s ease-in-out infinite}.error-banner-text{font-size:var(--font-size-xs);color:#fca5a5;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.error-banner-text strong{color:#f87171;font-weight:700}.error-banner-action{display:flex;align-items:center;gap:5px;padding:4px 12px;background:#f8717126;border:1px solid rgba(248,113,113,.35);border-radius:var(--radius-full);color:#fca5a5;font-size:var(--font-size-xs);font-weight:600;font-family:var(--font-sans);cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--transition-fast)}.error-banner-action:hover:not(:disabled){background:#f8717140;color:#f87171;border-color:#f8717180;transform:translateY(-1px);box-shadow:0 2px 8px #f8717133}.error-banner-action:disabled{opacity:.6;cursor:wait}.error-banner-dismiss{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-xs);background:transparent;border:none;color:#fca5a580;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast);padding:0}.error-banner-dismiss:hover{color:#f87171;background:#f8717126}@keyframes errorBannerSlide{0%{opacity:0;transform:translateY(-4px);max-height:0}to{opacity:1;transform:translateY(0);max-height:50px}}@keyframes errorPulse{0%,to{opacity:1}50%{opacity:.5}}.terminal-xterm{flex:1;padding:var(--space-2) var(--space-1) var(--space-1);overflow:hidden}.terminal-xterm .xterm{height:100%}.terminal-xterm .xterm-selection div{background:var(--term-selection)!important;border-radius:2px}.terminal-xterm .xterm-viewport::-webkit-scrollbar{width:5px}.terminal-xterm .xterm-viewport::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full)}.terminal-toolbar.shellmate-active{background:linear-gradient(90deg,var(--surface-2),color-mix(in srgb,var(--accent) 8%,var(--surface-2)));border-bottom:1px solid color-mix(in srgb,var(--accent) 30%,var(--border-muted))}.shellmate-icon{color:var(--accent)!important;animation:shellmate-pulse 2s ease-in-out infinite}.shellmate-chip{display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--accent) 15%,transparent)!important;color:var(--accent)!important;border:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}.shellmate-dot{width:6px;height:6px;border-radius:50%;background:#34d399;animation:shellmate-dot-blink 1.5s ease-in-out infinite}@keyframes shellmate-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shellmate-dot-blink{0%,to{opacity:1;box-shadow:0 0 4px #34d399}50%{opacity:.5;box-shadow:none}}.shellmate-input-bar{flex-shrink:0;padding:var(--space-2) var(--space-3);background:var(--surface-2);border-top:1px solid color-mix(in srgb,var(--accent) 30%,var(--border-muted));animation:slideUp .2s ease}.shellmate-input-wrapper{display:flex;align-items:center;gap:var(--space-2);background:var(--surface-1);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border-default));border-radius:var(--radius-m);padding:var(--space-2) var(--space-3);transition:all var(--transition-fast)}.shellmate-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 0 20px color-mix(in srgb,var(--accent) 8%,transparent)}.shellmate-input-icon{color:var(--accent);flex-shrink:0;animation:shellmate-pulse 2s ease-in-out infinite}.shellmate-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary);font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.5}.shellmate-input::placeholder{color:var(--text-tertiary)}.shellmate-input:disabled{opacity:.5}.shellmate-send-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-s);border:none;background:var(--accent);color:#fff;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.shellmate-send-btn:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.05)}.shellmate-send-btn:disabled{opacity:.4;cursor:not-allowed}.shellmate-input-hint{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-top:var(--space-1);padding-left:var(--space-2)}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.rich-markdown{font-size:var(--font-size-md);line-height:var(--line-height);color:var(--text-primary);overflow-wrap:break-word}.rich-markdown h1,.rich-markdown h2,.rich-markdown h3{margin:var(--space-3) 0 var(--space-2);font-weight:600;color:var(--text-primary)}.rich-markdown h1{font-size:var(--font-size-xl)}.rich-markdown h2{font-size:var(--font-size-lg)}.rich-markdown h3{font-size:var(--font-size-md)}.rich-markdown p{margin:var(--space-1) 0}.rich-markdown ul,.rich-markdown ol{padding-left:var(--space-5);margin:var(--space-2) 0}.rich-markdown li{margin:var(--space-1) 0}.rich-markdown strong{font-weight:600;color:var(--text-primary)}.rich-markdown em{color:var(--text-secondary)}.rich-markdown a{color:var(--text-link);text-decoration:none}.rich-markdown a:hover{text-decoration:underline}.rich-markdown code{background:var(--surface-3);padding:2px 6px;border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:.88em;color:var(--accent)}.rich-markdown pre{background:var(--surface-0);border:1px solid var(--border-muted);border-radius:var(--radius-m);padding:var(--space-4) var(--space-4) var(--space-3);overflow-x:auto;margin:var(--space-3) 0;position:relative}.rich-markdown pre code{background:none;padding:0;color:var(--text-primary);font-size:var(--font-size-sm);line-height:1.6}.code-actions{position:absolute;top:var(--space-2);right:var(--space-2);display:flex;align-items:center;gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast)}pre:hover .code-actions{opacity:1}.code-action-btn{display:flex;align-items:center;gap:5px;background:var(--surface-3);border:1px solid var(--border-default);color:var(--text-secondary);font-size:var(--font-size-xs);padding:4px 10px;border-radius:var(--radius-s);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans);white-space:nowrap;font-weight:500}.code-action-btn:hover{color:var(--text-primary);background:var(--surface-4);border-color:var(--border-default)}.code-action-btn.copied{color:var(--success);border-color:var(--success)}.code-action-run:hover{color:var(--success);border-color:var(--success);background:var(--success-muted)}.code-action-explain:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-muted)}.code-lang-tag{font-size:10px;color:var(--text-tertiary);padding:2px 6px;border-radius:var(--radius-xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.3px;font-weight:500}.callout{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-m);margin:var(--space-3) 0;border:1px solid}.callout-icon{flex-shrink:0;line-height:1;display:flex;align-items:flex-start;padding-top:2px}.callout-body{flex:1;min-width:0}.callout-body p:first-child{margin-top:0}.callout-body p:last-child{margin-bottom:0}.callout-warning{background:var(--warning-muted);border-color:#fbbf244d}.callout-warning .callout-icon{color:var(--warning)}.callout-danger{background:var(--danger-muted);border-color:#f871714d}.callout-danger .callout-icon{color:var(--danger)}.callout-success{background:var(--success-muted);border-color:#34d3994d}.callout-success .callout-icon{color:var(--success)}.callout-tip{background:var(--accent-muted);border-color:var(--border-accent)}.callout-tip .callout-icon{color:var(--accent)}.callout-info{background:var(--info-muted);border-color:#638cff4d}.callout-info .callout-icon{color:var(--info)}.rich-markdown details{background:var(--surface-2);border:1px solid var(--border-muted);border-radius:var(--radius-m);margin:var(--space-3) 0;overflow:hidden}.rich-markdown summary{padding:var(--space-3) var(--space-4);cursor:pointer;font-weight:500;color:var(--text-primary);transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;list-style:none}.rich-markdown summary:before{content:"▸";color:var(--text-tertiary);transition:transform var(--transition-fast);display:inline-block}.rich-markdown details[open] summary:before{content:"▾"}.rich-markdown summary:hover{background:var(--surface-3)}.rich-markdown details>*:not(summary){padding:0 var(--space-4) var(--space-3)}.rich-markdown blockquote{border-left:3px solid var(--border-default);padding-left:var(--space-4);margin:var(--space-3) 0;color:var(--text-secondary)}.rich-markdown table{width:100%;border-collapse:collapse;margin:var(--space-3) 0;font-size:var(--font-size-sm)}.rich-markdown th,.rich-markdown td{padding:var(--space-2) var(--space-3);border:1px solid var(--border-muted);text-align:left}.rich-markdown th{background:var(--surface-3);font-weight:600}.rich-markdown tr:nth-child(2n){background:var(--surface-2)}.rich-markdown hr{border:none;border-top:1px solid var(--border-muted);margin:var(--space-4) 0}.hljs-keyword{color:var(--term-magenta)}.hljs-string{color:var(--term-green)}.hljs-number{color:var(--term-yellow)}.hljs-comment{color:var(--text-tertiary);font-style:italic}.hljs-function,.hljs-title{color:var(--term-blue)}.hljs-built_in{color:var(--term-cyan)}.hljs-type{color:var(--term-yellow)}.hljs-literal{color:var(--term-bright-red)}.hljs-variable{color:var(--term-bright-blue)}.hljs-attr{color:var(--term-cyan)}.hljs-meta{color:var(--text-tertiary)}.hljs-params{color:var(--text-primary)}.hljs-symbol{color:var(--term-green)}.hljs-addition{color:var(--success);background:var(--success-muted)}.hljs-deletion{color:var(--danger);background:var(--danger-muted)}.chat-panel{display:flex;flex-direction:column;height:100%;background:var(--surface-1)}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-3);background:var(--surface-2);border-bottom:1px solid var(--border-muted);height:38px;flex-shrink:0}.chat-header-left{display:flex;align-items:center;gap:var(--space-2)}.chat-header-icon{color:var(--accent)}.chat-header-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.chat-model-badge{font-size:10px;padding:2px 8px;border-radius:var(--radius-full);background:var(--success-muted);color:var(--success);font-weight:500;letter-spacing:.2px}.chat-quick-actions{display:flex;flex-wrap:wrap;gap:6px;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-muted);flex-shrink:0}.quick-action-chip{display:flex;align-items:center;gap:5px;padding:5px 12px;background:var(--surface-2);border:1px solid var(--border-muted);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);font-family:var(--font-sans);font-weight:500}.quick-action-chip:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-subtle)}.quick-action-chip:disabled{opacity:.4;cursor:not-allowed}.quick-action-icon{display:flex;align-items:center;color:inherit}.chat-messages{flex:1;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.msg{animation:fadeIn .2s ease;max-width:100%}.msg-system{text-align:center;padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--border-muted);border-radius:var(--radius-m);font-size:var(--font-size-sm);color:var(--text-secondary)}.msg-user{display:flex;align-items:flex-start;gap:var(--space-2);flex-direction:row-reverse}.msg-user .msg-body{background:var(--chat-user-bg);border:1px solid var(--chat-user-border);padding:var(--space-2) var(--space-3);border-radius:var(--radius-m) var(--radius-m) var(--radius-xs) var(--radius-m);font-size:var(--font-size-md);max-width:85%;word-wrap:break-word}.msg-ai{display:flex;align-items:flex-start;gap:var(--space-2)}.msg-ai .msg-body{background:var(--chat-ai-bg);border:1px solid var(--chat-ai-border);padding:var(--space-3) var(--space-4);border-radius:var(--radius-m) var(--radius-m) var(--radius-m) var(--radius-xs);max-width:92%;min-width:60px;overflow:hidden}.msg-avatar{width:26px;height:26px;border-radius:var(--radius-s);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--accent-muted);color:var(--accent)}.msg-avatar-ai{background:var(--success-muted);color:var(--success)}.streaming-cursor{display:inline-block;width:7px;height:16px;background:var(--accent);border-radius:1px;animation:pulse .8s infinite;vertical-align:text-bottom;margin-left:2px}.msg-loading-shimmer{height:16px;width:120px;border-radius:var(--radius-s);background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-4) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.thinking-indicator{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);animation:fadeIn .2s ease}.thinking-dots{display:flex;gap:4px}.thinking-dots span{width:5px;height:5px;border-radius:50%;background:var(--text-tertiary);animation:pulse 1.4s infinite both}.thinking-dots span:nth-child(2){animation-delay:.2s}.thinking-dots span:nth-child(3){animation-delay:.4s}.thinking-label{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:500}.chat-input-area{padding:var(--space-3);border-top:1px solid var(--border-muted);background:var(--surface-2);flex-shrink:0}.chat-input-wrapper{display:flex;align-items:flex-end;gap:var(--space-2);background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-m);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.chat-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.chat-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:var(--font-size-md);font-family:var(--font-sans);resize:none;outline:none;min-height:24px;max-height:120px;line-height:1.5}.chat-input::placeholder{color:var(--text-tertiary)}.chat-send-btn{width:32px;height:32px;background:var(--accent);border:none;border-radius:var(--radius-s);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.chat-send-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 2px 8px var(--accent-muted)}.chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.chat-input-hint{font-size:10px;color:var(--text-tertiary);margin-top:var(--space-1);padding-left:var(--space-1)}.multimodal-badge{background:var(--accent-subtle)!important;color:var(--accent)!important}.chat-panel{position:relative}.chat-panel.drag-active{outline:2px dashed var(--accent);outline-offset:-2px}.drag-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(var(--accent-rgb, 99, 140, 255),.08);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:20;border-radius:inherit}.drag-overlay-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--accent);font-size:var(--font-size-md);font-weight:600}.drag-overlay-content svg{opacity:.7}.attachment-bar{display:flex;flex-wrap:wrap;gap:6px;padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-muted);background:var(--surface-2);flex-shrink:0}.attachment-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-s);font-size:var(--font-size-xs);color:var(--text-secondary);max-width:200px;animation:fadeIn .15s ease}.attachment-chip.image{border-color:var(--success);background:var(--success-muted)}.attachment-chip.audio{border-color:var(--accent);background:var(--accent-subtle)}.attachment-chip svg{flex-shrink:0;color:inherit}.attachment-thumb{width:28px;height:28px;border-radius:3px;object-fit:cover;flex-shrink:0}.attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.attachment-remove{width:16px;height:16px;border-radius:50%;background:var(--surface-4);border:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast);padding:0}.attachment-remove:hover{background:var(--error-muted, rgba(248, 113, 113, .15));color:var(--error, #f87171)}.multimodal-toolbar{display:flex;align-items:center;gap:4px;padding-bottom:var(--space-1)}.mm-btn{width:30px;height:30px;background:var(--surface-3);border:1px solid var(--border-muted);border-radius:var(--radius-s);color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);padding:0}.mm-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:var(--accent-subtle)}.mm-btn:disabled{opacity:.3;cursor:not-allowed}.mm-btn.recording{color:#f87171;border-color:#f87171;background:#f871711f;animation:pulse 1.2s infinite}.recording-indicator{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:#f87171;font-weight:600;padding:0 var(--space-2);animation:fadeIn .2s ease}.recording-dot{width:7px;height:7px;border-radius:50%;background:#f87171;animation:pulse 1s infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--surface-overlay);z-index:var(--z-palette);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;animation:fadeIn .1s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.palette-container{width:520px;max-width:90vw;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-l);box-shadow:var(--shadow-overlay);overflow:hidden;animation:slideUp .15s ease}.palette-input-wrapper{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-muted)}.palette-input-icon{color:var(--text-tertiary);flex-shrink:0}.palette-input{flex:1;background:transparent;border:none;color:var(--text-primary);font-size:var(--font-size-lg);font-family:var(--font-sans);outline:none}.palette-input::placeholder{color:var(--text-tertiary)}.palette-list{max-height:340px;overflow-y:auto;padding:var(--space-2)}.palette-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;border-radius:var(--radius-m);color:var(--text-primary);font-size:var(--font-size-md);font-family:var(--font-sans);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.palette-item:hover,.palette-item.selected{background:var(--surface-3)}.palette-item-icon{width:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary)}.palette-item.selected .palette-item-icon,.palette-item:hover .palette-item-icon{color:var(--accent)}.palette-item-content{display:flex;flex-direction:column;gap:2px}.palette-item-label{font-weight:500}.palette-item-hint{font-size:var(--font-size-xs);color:var(--text-tertiary)}.palette-empty{text-align:center;padding:var(--space-6);color:var(--text-tertiary);font-size:var(--font-size-sm)}.palette-footer{display:flex;gap:var(--space-4);padding:var(--space-2) var(--space-4);border-top:1px solid var(--border-muted);font-size:10px;color:var(--text-tertiary)}.palette-footer span{display:flex;align-items:center;gap:4px}.palette-footer kbd{font-family:var(--font-mono);font-size:10px;padding:1px 4px;background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--text-tertiary)}.toast-container{position:fixed;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column-reverse;gap:var(--space-2);z-index:var(--z-toast);pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-m);box-shadow:var(--shadow-lg);font-size:var(--font-size-sm);color:var(--text-primary);animation:slideInRight .25s ease;pointer-events:all;cursor:pointer;max-width:380px;transition:opacity var(--transition-normal)}.toast:hover{opacity:.9}.toast-icon{display:flex;align-items:center;flex-shrink:0}.toast-message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.toast-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:2px;display:flex;align-items:center;border-radius:var(--radius-xs);transition:all var(--transition-fast)}.toast-close:hover{color:var(--text-primary);background:var(--surface-4)}.toast-info{border-left:3px solid var(--info)}.toast-info .toast-icon{color:var(--info)}.toast-success{border-left:3px solid var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-warning{border-left:3px solid var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-error{border-left:3px solid var(--danger)}.toast-error .toast-icon{color:var(--danger)}.status-chip{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--text-secondary);padding:4px 10px;border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--border-muted);transition:all var(--transition-normal)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-success{background:var(--success);box-shadow:0 0 6px var(--success)}.dot-warning{background:var(--warning);animation:pulse 1s infinite}.dot-danger{background:var(--danger);animation:pulse .8s infinite}.status-label{font-weight:500;letter-spacing:.2px}.disclaimer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease;padding:var(--space-4)}.disclaimer-modal{background:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-l);box-shadow:var(--shadow-lg);max-width:600px;width:100%;max-height:85vh;overflow-y:auto;padding:var(--space-6);position:relative;animation:slideUp .25s ease}.disclaimer-close{position:absolute;top:var(--space-3);right:var(--space-3);background:none;border:1px solid transparent;border-radius:var(--radius-s);color:var(--text-tertiary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.disclaimer-close:hover{background:var(--surface-3);border-color:var(--border-default);color:var(--text-primary)}.disclaimer-header{text-align:center;margin-bottom:var(--space-5)}.disclaimer-icon{width:48px;height:48px;border-radius:var(--radius-m);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-3)}.disclaimer-header h2{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin:0 0 var(--space-1)}.disclaimer-subtitle{color:var(--text-tertiary);font-size:var(--font-size-sm);margin:0}.disclaimer-notice{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:var(--radius-m);margin-bottom:var(--space-5);font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.5}.disclaimer-notice svg{color:#fbbf24;flex-shrink:0;margin-top:2px}.disclaimer-tools{margin-bottom:var(--space-5)}.disclaimer-tools h3{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-3);text-transform:uppercase;letter-spacing:.3px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-3)}.tool-category{background:var(--surface-2);border:1px solid var(--border-muted);border-radius:var(--radius-m);padding:var(--space-3)}.tool-category h4{font-size:var(--font-size-xs);font-weight:600;color:var(--text-tertiary);margin:0 0 var(--space-2);text-transform:uppercase;letter-spacing:.4px}.tool-tags{display:flex;flex-wrap:wrap;gap:4px}.tool-tags code{font-size:11px;font-family:var(--font-mono);padding:2px 7px;background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--accent);white-space:nowrap}.disclaimer-btn{display:block;width:100%;padding:var(--space-3) var(--space-4);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-m);font-size:var(--font-size-base);font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast)}.disclaimer-btn:hover{filter:brightness(1.1)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width: 768px){.disclaimer-modal{padding:var(--space-4)}.tool-grid{grid-template-columns:repeat(2,1fr)}}.app{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background:var(--surface-0)}.app-header{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);height:48px;background:var(--surface-2);border-bottom:1px solid var(--border-muted);z-index:var(--z-header);flex-shrink:0}.header-left,.header-right{display:flex;align-items:center;gap:var(--space-2)}.header-center,.header-logo{display:flex;align-items:center;gap:var(--space-3)}.logo-mark{width:28px;height:28px;border-radius:var(--radius-s);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center}.logo-text{font-size:var(--font-size-lg);font-weight:700;color:var(--text-primary);letter-spacing:-.4px}.header-palette-btn{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-4);background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-m);color:var(--text-tertiary);font-size:var(--font-size-sm);font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);min-width:260px}.header-palette-btn:hover{border-color:var(--accent);color:var(--text-secondary);background:var(--surface-4)}.palette-btn-icon{opacity:.5}.palette-btn-text{flex:1;text-align:left}.palette-btn-kbd{font-size:10px;padding:2px 6px;background:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-xs);color:var(--text-tertiary);font-family:var(--font-mono);font-weight:500}.mode-switch{display:flex;align-items:center;gap:6px;padding:4px;background:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-full)}.mode-chip{border:none;background:transparent;color:var(--text-tertiary);font-size:var(--font-size-xs);font-weight:600;padding:5px 10px;border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.3px}.mode-chip:hover{color:var(--text-secondary);background:var(--surface-4)}.mode-chip.active{color:var(--accent);background:var(--accent-subtle);box-shadow:inset 0 0 0 1px var(--border-accent)}.header-icon-btn{width:32px;height:32px;background:none;border:1px solid transparent;border-radius:var(--radius-s);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--transition-fast)}.header-icon-btn:hover{background:var(--surface-3);border-color:var(--border-default);color:var(--text-primary)}.header-icon-btn.active{background:var(--accent-muted);border-color:var(--border-accent);color:var(--accent)}.app-main{display:flex;flex:1;overflow:hidden}.pane{overflow:hidden;transition:width .2s ease}.pane-terminal{min-width:300px}.pane-chat{min-width:280px;border-left:1px solid var(--border-muted);animation:slideInRight .2s ease}.resize-handle{width:3px;background:var(--border-muted);cursor:col-resize;transition:background var(--transition-fast);flex-shrink:0;position:relative}.resize-handle:after{content:"";position:absolute;top:0;right:-4px;bottom:0;left:-4px}.resize-handle:hover,.resize-handle.dragging{background:var(--accent)}@media (max-width: 768px){.header-palette-btn{min-width:auto}.mode-switch,.palette-btn-text,.palette-btn-kbd{display:none}.pane-chat{position:absolute;right:0;top:48px;bottom:0;width:100%!important;max-width:400px;z-index:var(--z-panel);box-shadow:var(--shadow-lg)}}
