@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d1117;--surface:#161b22;--surface2:#1c2128;--border:#21262d;--border2:#30363d;--text:#c9d1d9;--text-muted:#8b949e;--text-dim:#484f58;--green:#3fb950;--blue:#58a6ff;--red:#f85149;--red-dim:#3d1a1a;--yellow:#d29922;--mono:"JetBrains Mono","Fira Code","Cascadia Code","Consolas",monospace}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--mono);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:13px}.app-shell{background:var(--bg);flex-direction:column;height:100vh;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;height:44px;padding:0 16px;display:flex}.topbar-left,.topbar-right{align-items:center;gap:10px;display:flex}.logo{align-items:center;gap:8px;display:flex}.logo-text{color:var(--text);letter-spacing:-.02em;font-size:14px;font-weight:600}.lang-badge{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:flex}.lang-badge--btn{cursor:pointer;font-family:var(--mono);transition:border-color .15s,color .15s}.lang-badge--btn:hover{border-color:var(--border2);color:var(--text)}.lang-dot{background:var(--green);border-radius:50%;flex-shrink:0;width:6px;height:6px}.btn-ghost{border:1px solid var(--border);color:var(--text-muted);font-family:var(--mono);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:4px 10px;font-size:12px;transition:color .15s,border-color .15s}.btn-ghost:hover{color:var(--text);border-color:var(--border2)}.btn-run{background:var(--green);color:#0d1117;font-family:var(--mono);cursor:pointer;white-space:nowrap;border:none;border-radius:4px;align-items:center;gap:6px;padding:5px 14px;font-size:12px;font-weight:600;transition:background .15s;display:flex}.btn-run:hover{background:#56d364}.btn-run:disabled{opacity:.6;cursor:not-allowed}.btn-run--loading{background:#2d6a3f}.btn-run kbd{font-family:var(--mono);color:#0d1117bf;background:#00000040;border-radius:3px;margin-left:2px;padding:1px 5px;font-size:10px}.save-indicator{color:var(--green);opacity:.8;font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #0003;border-top-color:#0d1117;border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.7s linear infinite spin;display:inline-block}.spinner--sm{border-color:var(--border2);border-top-color:var(--green);width:11px;height:11px}.dropdown-wrapper{position:relative}.dropdown-backdrop{z-index:9;position:fixed;inset:0}.dropdown-menu{background:var(--surface);border:1px solid var(--border2);z-index:10;border-radius:6px;min-width:168px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 32px #00000080}.dropdown-item{text-align:left;width:100%;color:var(--text-muted);font-family:var(--mono);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:7px 12px;font-size:12px;transition:background .1s,color .1s;display:block}.dropdown-item:hover,.dropdown-item--active{background:var(--surface2);color:var(--text)}.dropdown-item--active{color:var(--green)!important}.dropdown-divider{background:var(--border);height:1px;margin:4px 0}.dropdown-group-label{letter-spacing:.08em;color:var(--text-dim);text-transform:uppercase;padding:4px 12px 2px;font-size:10px}.workspace{flex:1;min-height:0;display:flex;overflow:hidden}.editor-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.editor-panel .cm-editor{height:100%!important}.editor-panel .cm-scroller{height:100%;overflow:auto!important}.drag-handle{cursor:col-resize;background:0 0;flex-shrink:0;width:4px;transition:background .15s}.drag-handle:hover{background:var(--border2)}.io-panel{background:var(--bg);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.io-section{border-bottom:1px solid var(--border);flex-direction:column;display:flex}.io-section--grow{border-bottom:none;flex:1;overflow:hidden}.io-label{letter-spacing:.08em;color:var(--text-dim);background:var(--surface);border-bottom:1px solid var(--border);text-transform:uppercase;flex-shrink:0;align-items:center;gap:6px;padding:5px 14px;font-size:10px;font-weight:600;display:flex}.io-chevron{color:var(--green);font-size:12px}.exec-time{color:var(--green);margin-left:auto;font-size:10px;font-weight:400}.copy-out-btn{border:1px solid var(--border);color:var(--text-dim);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:10px;transition:color .15s,border-color .15s}.copy-out-btn:hover{color:var(--text);border-color:var(--border2)}.io-input{background:var(--surface2);color:var(--text);font-family:var(--mono);border:none;outline:none;width:100%;padding:8px 14px;font-size:12px}.io-input::placeholder{color:var(--text-dim)}.io-input:focus{background:#1e242d}.io-textarea{resize:none;background:var(--surface2);height:82px;color:var(--text);font-family:var(--mono);border:none;outline:none;width:100%;padding:10px 14px;font-size:13px;line-height:1.5}.io-textarea::placeholder{color:var(--text-dim)}.io-textarea:focus{background:#1e242d}.output-box{flex:1;min-height:0;padding:12px 14px;overflow-y:auto}.output-idle,.output-running{background:var(--bg)}.output-success{background:#0b1a0d}.output-error{background:#160a0a}.output-hint{color:var(--text-dim);align-items:center;gap:8px;font-size:12px;display:flex}.output-hint strong{color:var(--text-muted)}.output-hint--muted{color:var(--text-dim)}.output-section{margin-bottom:10px}.output-section:last-child{margin-bottom:0}.output-tag{letter-spacing:.1em;border-radius:3px;margin-bottom:6px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-block}.output-tag--err{background:var(--red-dim);color:var(--red)}.output-tag--out{color:var(--green);background:#0c2a1a}.output-tag--stderr{color:var(--yellow);background:#2a1e00}.output-pre{font-family:var(--mono);color:var(--text);white-space:pre-wrap;word-break:break-all;font-size:13px;line-height:1.6}.output-pre--err{color:var(--red)}.output-pre--stderr{color:var(--yellow)}.exit-strip{border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:5px 14px;font-size:11px;display:flex}.exit-ok{color:#56d364;background:#0c1f0e}.exit-fail{color:var(--red);background:#1c0a0a}.exit-label{font-weight:600}.statusbar{background:var(--surface);border-top:1px solid var(--border);height:24px;color:var(--text-dim);flex-shrink:0;align-items:center;gap:6px;padding:0 14px;font-size:11px;display:flex}.sb-sep{background:var(--border2);flex-shrink:0;width:1px;height:12px}.sb-credit{color:var(--text-dim);font-size:10px;text-decoration:none;transition:color .15s}.sb-credit:hover{color:var(--text-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#484f58}