.toolbar[data-v-68cfd4b9]{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:48px;padding:0 16px;background-color:#323233;color:#ccc}.toolbar-left[data-v-68cfd4b9]{display:flex;align-items:center}.logo[data-v-68cfd4b9]{display:flex;align-items:center;gap:8px;font-weight:600;font-size:16px}.logo-icon[data-v-68cfd4b9]{font-size:20px}.logo-text[data-v-68cfd4b9]{color:#e0e0e0}.toolbar-center[data-v-68cfd4b9]{display:flex;align-items:center;gap:8px}.toolbar-btn[data-v-68cfd4b9]{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:#0e639c;border:none;border-radius:4px;color:#fff;font-size:13px;cursor:pointer;transition:background-color .2s}.toolbar-btn[data-v-68cfd4b9]:hover{background-color:#17b}.toolbar-btn[data-v-68cfd4b9]:active{background-color:#0d5a8a}.run-btn[data-v-68cfd4b9]{background-color:#388a34}.run-btn[data-v-68cfd4b9]:hover{background-color:#4ca448}.run-btn[data-v-68cfd4b9]:active{background-color:#2d6e2a}.compile-btn[data-v-68cfd4b9]{background-color:#6b4fa0}.compile-btn[data-v-68cfd4b9]:hover{background-color:#8b6bc0}.compile-btn[data-v-68cfd4b9]:active{background-color:#5a3d8a}.typecheck-btn[data-v-68cfd4b9]{background-color:#6b4fa0}.typecheck-btn[data-v-68cfd4b9]:hover{background-color:#8b6bc0}.typecheck-btn[data-v-68cfd4b9]:active{background-color:#5a3d8a}.clippy-btn[data-v-68cfd4b9]{background-color:#f4a261}.clippy-btn[data-v-68cfd4b9]:hover{background-color:#f6b27e}.clippy-btn[data-v-68cfd4b9]:active{background-color:#d88a4b}.generate-wasm-btn[data-v-68cfd4b9]{background-color:#c50}.generate-wasm-btn[data-v-68cfd4b9]:hover{background-color:#e60}.generate-wasm-btn[data-v-68cfd4b9]:active{background-color:#a40}.executor-switch[data-v-68cfd4b9]{display:flex;align-items:center;padding:4px 8px;background-color:#2d2d2d;border-radius:4px;margin:0 4px}.switch-label[data-v-68cfd4b9]{display:flex;align-items:center;gap:8px;cursor:pointer}.switch-text[data-v-68cfd4b9]{font-size:12px;color:#888;transition:color .2s}.switch-text.active[data-v-68cfd4b9]{color:#fff;font-weight:600}.switch[data-v-68cfd4b9]{position:relative;width:36px;height:20px}.switch input[data-v-68cfd4b9]{opacity:0;width:0;height:0}.slider[data-v-68cfd4b9]{position:absolute;cursor:pointer;inset:0;background-color:#0e639c;transition:.3s;border-radius:20px}.slider[data-v-68cfd4b9]:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.slider[data-v-68cfd4b9]{background-color:#c50}input:checked+.slider[data-v-68cfd4b9]:before{transform:translate(16px)}.icon[data-v-68cfd4b9]{font-size:14px}.text[data-v-68cfd4b9]{font-weight:500}.toolbar-right[data-v-68cfd4b9]{display:flex;justify-content:flex-end;align-items:center}.status[data-v-68cfd4b9]{font-size:12px;color:#888;padding:4px 8px;background-color:#2d2d2d;border-radius:4px;margin-left:8px}.status.gpu-enabled[data-v-68cfd4b9]{color:#4fc3f7;background-color:#4fc3f71a}.thread-status[data-v-68cfd4b9]{color:#81c784;background-color:#81c7841a}.lang-btn[data-v-68cfd4b9]{padding:4px 10px;background-color:#2d2d2d;border:1px solid #444;border-radius:4px;color:#ccc;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;margin-right:8px}.lang-btn[data-v-68cfd4b9]:hover{background-color:#3d3d3d;border-color:#666;color:#fff}.github-link[data-v-68cfd4b9]{display:flex;align-items:center;gap:4px;padding:4px 10px;background-color:#2d2d2d;border:1px solid #444;border-radius:4px;color:#ccc;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;transition:all .2s;margin-right:8px}.github-link[data-v-68cfd4b9]:hover{background-color:#3d3d3d;border-color:#666;color:#fff}.tab-bar[data-v-513f5e0e]{display:flex;align-items:center;height:35px;background-color:#252526;border-bottom:1px solid #3c3c3c;overflow-x:auto}.tabs-container[data-v-513f5e0e]{display:flex;align-items:center;height:100%;flex:1}.tab[data-v-513f5e0e]{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;min-width:120px;max-width:200px;background-color:#1e1e1e;border-right:1px solid #3c3c3c;cursor:pointer;transition:background-color .15s;position:relative}.tab[data-v-513f5e0e]:hover{background-color:#37373d}.tab.active[data-v-513f5e0e]{background-color:#2d2d2d}.tab.active[data-v-513f5e0e]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background-color:#0e639c}.tab-icon[data-v-513f5e0e]{font-size:14px;flex-shrink:0}.tab-name[data-v-513f5e0e]{flex:1;font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab.active .tab-name[data-v-513f5e0e]{color:#fff}.tab-close[data-v-513f5e0e]{width:18px;height:18px;padding:0;background:none;border:none;border-radius:3px;color:#888;font-size:16px;line-height:1;cursor:pointer;opacity:0;transition:all .15s;flex-shrink:0}.tab:hover .tab-close[data-v-513f5e0e]{opacity:1}.tab-close[data-v-513f5e0e]:hover{background-color:#5a5a5a;color:#fff}.tab-bar[data-v-513f5e0e]::-webkit-scrollbar{height:3px}.tab-bar[data-v-513f5e0e]::-webkit-scrollbar-track{background:transparent}.tab-bar[data-v-513f5e0e]::-webkit-scrollbar-thumb{background-color:#424242;border-radius:2px}.tree-node[data-v-2b016b9c]{user-select:none}.node-content[data-v-2b016b9c]{display:flex;align-items:center;gap:6px;padding:4px 8px;cursor:pointer;transition:background-color .15s;position:relative}.node-content[data-v-2b016b9c]:hover{background-color:#2a2d2e}.node-content.active[data-v-2b016b9c]{background-color:#37373d}.expand-icon[data-v-2b016b9c]{font-size:10px;color:#888;width:12px;flex-shrink:0}.node-icon[data-v-2b016b9c]{font-size:14px;flex-shrink:0}.node-name[data-v-2b016b9c]{flex:1;font-size:13px;color:#ccc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-content.active .node-name[data-v-2b016b9c]{color:#fff}.rename-input[data-v-2b016b9c]{flex:1;font-size:13px;padding:2px 6px;background-color:#3c3c3c;border:1px solid #0e639c;border-radius:2px;color:#fff;outline:none}.node-actions[data-v-2b016b9c]{display:flex;gap:4px;transition:opacity .2s}.node-content:hover .node-actions[data-v-2b016b9c]{opacity:1}.action-btn[data-v-2b016b9c]{padding:2px 4px;background:none;border:none;cursor:pointer;font-size:12px;opacity:.7;transition:opacity .2s}.action-btn[data-v-2b016b9c]:hover{opacity:1}.run-btn[data-v-2b016b9c]{color:#4ca448}.children[data-v-2b016b9c]{overflow:hidden}.file-explorer[data-v-6f86579f]{display:flex;flex-direction:column;height:100%;background-color:#252526;position:relative}.explorer-header[data-v-6f86579f]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:#2d2d2d;border-bottom:1px solid #3c3c3c}.header-title[data-v-6f86579f]{font-size:13px;font-weight:600;color:#ccc;text-transform:uppercase;letter-spacing:.5px}.header-actions[data-v-6f86579f]{display:flex;gap:4px}.header-btn[data-v-6f86579f]{width:24px;height:24px;padding:0;background-color:#0e639c;border:none;border-radius:4px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.header-btn[data-v-6f86579f]:hover{background-color:#17b}.file-tree[data-v-6f86579f]{flex:1;overflow-y:auto;padding:8px 0}.context-menu[data-v-6f86579f]{position:fixed;background-color:#2d2d2d;border:1px solid #444;border-radius:4px;padding:4px 0;z-index:1000;box-shadow:0 2px 8px #0000004d}.menu-item[data-v-6f86579f]{padding:6px 16px;font-size:13px;color:#ccc;cursor:pointer;transition:background-color .15s}.menu-item[data-v-6f86579f]:hover{background-color:#37373d}.menu-item.danger[data-v-6f86579f]{color:#f48771}.menu-divider[data-v-6f86579f]{height:1px;background-color:#444;margin:4px 0}.monaco-editor[data-v-bcb5810f]{width:100%;height:100%}.unsupported-file[data-v-bcb5810f]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#1e1e1e}.unsupported-content[data-v-bcb5810f]{display:flex;flex-direction:column;align-items:center;gap:12px;color:#888}.unsupported-icon[data-v-bcb5810f]{font-size:64px;opacity:.5}.unsupported-text[data-v-bcb5810f]{font-size:16px;font-weight:500}.unsupported-filename[data-v-bcb5810f]{font-size:13px;color:#666}.log-panel[data-v-cfae4857]{display:flex;flex-direction:column;height:100%;background-color:#1e1e1e}.log-header[data-v-cfae4857]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background-color:#2d2d2d;border-bottom:1px solid #3c3c3c}.header-title[data-v-cfae4857]{font-size:13px;font-weight:600;color:#ccc;text-transform:uppercase;letter-spacing:.5px}.clear-btn[data-v-cfae4857]{padding:4px 12px;background-color:transparent;border:1px solid #3c3c3c;border-radius:4px;color:#888;font-size:12px;cursor:pointer;transition:all .15s}.clear-btn[data-v-cfae4857]:hover{background-color:#3c3c3c;color:#ccc}.log-container[data-v-cfae4857]{flex:1;overflow-y:auto;padding:8px;font-family:Consolas,Courier New,monospace;font-size:12px}.log-entry[data-v-cfae4857]{display:grid;grid-template-columns:70px 50px 1fr;gap:8px;padding:4px 8px;border-radius:4px;margin-bottom:2px}.log-entry[data-v-cfae4857]:hover{background-color:#2a2d2e}.log-time[data-v-cfae4857]{color:#888}.log-level[data-v-cfae4857]{font-weight:600;text-align:center}.log-info .log-level[data-v-cfae4857]{color:#4fc3f7}.log-error .log-level[data-v-cfae4857]{color:#ef5350}.log-warn .log-level[data-v-cfae4857]{color:#ffb74d}.log-debug .log-level[data-v-cfae4857]{color:#9575cd}.log-message[data-v-cfae4857]{color:#d4d4d4;white-space:pre-wrap;word-break:break-all}.log-error[data-v-cfae4857]{background-color:#ef53501a}.log-warn[data-v-cfae4857]{background-color:#ffb74d1a}/**
 * 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;inset:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.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;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.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}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.terminal-wrapper[data-v-80cecf50]{height:100%;background-color:#0c0c0c;padding:8px}.terminal-container[data-v-80cecf50]{height:100%;width:100%}.main-layout[data-v-dca925cf]{display:grid;grid-template-rows:auto 1fr auto;height:100vh;background-color:#1e1e1e}.toolbar-container[data-v-dca925cf]{grid-row:1;height:48px;border-bottom:1px solid #3c3c3c}.content-container[data-v-dca925cf]{grid-row:2;display:grid;grid-template-columns:240px 1fr 300px;overflow:hidden}.sidebar[data-v-dca925cf]{grid-column:1;background-color:#252526;border-right:1px solid #3c3c3c;overflow:auto}.editor-area[data-v-dca925cf]{grid-column:2;display:flex;flex-direction:column;overflow:hidden}.editor-container[data-v-dca925cf]{flex:1;overflow:hidden}.log-container[data-v-dca925cf]{grid-column:3;background-color:#1e1e1e;border-left:1px solid #3c3c3c;overflow:hidden}.terminal-container[data-v-dca925cf]{grid-row:3;height:200px;border-top:2px solid #3c3c3c}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:#1e1e1e;color:#d4d4d4;overflow:hidden}#app{width:100vw;height:100vh}
