:root{--bg:#1a1b26;--bg-surface:#1f2133;--bg-elevated:#24263a;--border:#ffffff0f;--border-focus:#4a80ff66;--text:#c0caf5;--text-muted:#565f89;--text-bright:#e0e7ff;--accent:#7aa2f7;--accent-dim:#7aa2f726;--green:#9ece6a;--red:#f7768e;--yellow:#e0af68;--cyan:#7dcfff;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-code:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--radius:8px;--radius-sm:4px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:13px}#app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--bg-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:48px;padding:0 16px;display:flex}.topbar-left{align-items:center;gap:10px;display:flex}.topbar-logo{border-radius:4px;width:22px;height:22px}.topbar-title{color:var(--text-bright);letter-spacing:-.3px;font-size:14px;font-weight:600}.topbar-accent{color:var(--accent);font-weight:400}.topbar-right{align-items:center;gap:8px;display:flex}.btn-icon{border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;transition:all .15s;display:flex}.btn-icon:hover{color:var(--text);background:var(--bg-elevated);border-color:#ffffff1a}.btn-run{background:var(--accent);color:#1a1b26;border-radius:var(--radius-sm);height:32px;font-family:var(--font-ui);cursor:pointer;letter-spacing:.2px;border:none;align-items:center;gap:6px;padding:0 14px;font-size:12.5px;font-weight:600;transition:all .15s;display:flex}.btn-run:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 12px #7aa2f740}.btn-run:active{box-shadow:none;transform:translateY(0)}.workspace{flex:1;min-height:0;display:flex}.pane{flex-direction:column;flex:1;min-width:0;display:flex}.divider{background:var(--border);flex-shrink:0;width:1px}.pane-tab{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;height:36px;padding:0 12px;display:flex}.tab{height:100%;color:var(--text-muted);border-bottom:2px solid #0000;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.tab.active{color:var(--text-bright);border-bottom-color:var(--accent)}.editor-body{background:var(--bg);flex:1;display:flex;overflow:hidden}.editor-body .cm-editor{width:100%;height:100%}.console-body{font-family:var(--font-code);background:var(--bg);flex:1;padding:4px 16px 14px;font-size:13px;line-height:1.65;overflow-y:auto}.console-welcome{color:var(--text-muted);align-items:center;gap:8px;display:flex}.console-welcome kbd{background:var(--bg-elevated);border:1px solid var(--border);font-family:var(--font-ui);color:var(--text);border-radius:3px;padding:1px 6px;font-size:11px;display:inline-block}.console-caret{color:var(--accent);font-weight:600}.log-entry{word-break:break-word;padding:1px 0;animation:.2s slideIn}.log-entry.print{color:var(--text-bright)}.log-entry.print:before{content:"❯ ";color:var(--green)}.log-entry.error{color:var(--red)}.log-entry.error:before{content:"✗ "}.log-entry.info{color:var(--text-muted);font-style:italic}.log-entry.info:before{content:"○ ";color:var(--cyan)}@keyframes slideIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.statusbar{background:var(--bg-elevated);border-top:1px solid var(--border);height:24px;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 12px;font-size:11px;display:flex}.statusbar-right{align-items:center;gap:6px;display:flex}.indicator{border-radius:50%;flex-shrink:0;width:7px;height:7px}.indicator.loading{background:var(--yellow);animation:1.2s infinite pulse}.indicator.ready{background:var(--green)}.indicator.error{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}@media (width<=768px){.workspace{flex-direction:column}.divider{width:100%;height:1px}.pane{min-height:200px}}
