*{scrollbar-color:#343842 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar,::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2a2e36;border-radius:6px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#3a3f49;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}[data-separator]:not([data-separator=disabled]){position:relative;z-index:8;box-sizing:border-box;background:transparent}[data-separator]:not([data-separator=disabled]):before{content:"";position:absolute;border-radius:2px;background:var(--gj-accent);opacity:0;pointer-events:none;transform-origin:center;box-shadow:0 0 14px rgba(124,196,255,.35);transition:opacity .12s ease,transform .16s cubic-bezier(.22,1,.36,1)}[data-separator]:not([data-separator=disabled])[aria-orientation=vertical]:before{top:14px;bottom:14px;left:50%;width:2px;margin-left:-1px;transform:scaleY(.4)}[data-separator]:not([data-separator=disabled])[aria-orientation=horizontal]:before{left:14px;right:14px;top:50%;height:2px;margin-top:-1px;transform:scaleX(.4)}[data-separator=active]:not([data-separator=disabled]),[data-separator=hover]:not([data-separator=disabled]){z-index:50}[data-separator=active]:not([data-separator=disabled]):before,[data-separator=hover]:not([data-separator=disabled]):before{opacity:1;transform:none}.ide-dock-root{flex:1 1;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:transparent;position:relative}.ide-pane-hold{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.ide-dock-leaf{flex-direction:column;height:100%;box-sizing:border-box;background:var(--gj-panel);border:1px solid var(--gj-border);border-radius:var(--gj-radius);box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 12px 32px rgba(0,0,0,.35)}.ide-dock-body,.ide-dock-leaf{position:relative;display:flex;min-height:0;min-width:0;overflow:hidden}.ide-dock-body,.ide-dock-pane{flex:1 1;flex-direction:column}.ide-dock-pane{min-height:0;min-width:0;display:flex;overflow:hidden}.ide-dock-pane[hidden]{display:none}.ide-dock-pane>*{flex:1 1;min-height:0;min-width:0}.ide-tabbar{position:relative;z-index:6;flex-shrink:0;display:flex;align-items:stretch;height:36px;padding:0 6px;background:var(--gj-panel-2);border-bottom:1px solid var(--gj-border);overflow:hidden}.ide-tabbar[data-drop-over=true]{background:#15212f}.ide-tabbar-spacer{flex:1 1;min-width:8px}.ide-tab-slot{display:flex;align-items:stretch;height:100%}.ide-tab-insert{flex-shrink:0;width:2px;align-self:stretch;margin:7px 0;border-radius:1px;background:var(--gj-accent);box-shadow:0 0 8px rgba(124,196,255,.5);pointer-events:none}.ide-tab{position:relative;display:inline-flex;align-items:center;gap:4px;box-sizing:border-box;height:100%;padding:0 6px 0 10px;border:none;border-radius:0;background:transparent;color:var(--gj-text-3);font:inherit;font-size:12.5px;font-weight:500;line-height:1;cursor:-webkit-grab;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;white-space:nowrap;transition:color .12s ease}.ide-tab:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:transparent;transition:background .15s ease}.ide-tab:hover{color:var(--gj-text-2)}.ide-tab[data-active=true]{color:var(--gj-text)}.ide-tab[data-active=true]:after{background:var(--gj-accent)}.ide-tab[data-dragging=true]{opacity:.35}.ide-tab-overlay{height:32px;padding:0 12px;cursor:-webkit-grabbing;cursor:grabbing;background:var(--gj-panel-2);border:1px solid var(--gj-border-strong);border-radius:var(--gj-radius-sm);color:var(--gj-text);font-family:var(--gj-font-ui);font-size:12.5px;font-weight:500;opacity:.9;box-shadow:0 12px 28px rgba(0,0,0,.55)}.ide-tab-overlay:after{display:none}.ide-tab-label{pointer-events:none}.ide-tab-close{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:5px;background:transparent;color:var(--gj-text-3);font-size:14px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.ide-tab:hover .ide-tab-close{opacity:1}.ide-tab-close:hover{color:var(--gj-text);background:var(--gj-hover)}.ide-tab-add{position:relative;display:flex;align-items:center;align-self:center;padding:0 2px}.ide-tab-add-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--gj-text-3);font-size:15px;line-height:1;cursor:pointer}.ide-tab-add-btn:hover{color:var(--gj-text);background:var(--gj-hover)}.ide-tab-add-menu{position:fixed;z-index:50;margin:0;padding:4px;list-style:none;min-width:128px;background:var(--gj-panel-2);border:1px solid var(--gj-border-strong);border-radius:var(--gj-radius);box-shadow:0 16px 36px rgba(0,0,0,.55)}.ide-tab-add-item{display:block;width:100%;box-sizing:border-box;padding:7px 10px;border:none;border-radius:6px;background:transparent;color:var(--gj-text-2);font:inherit;font-size:12.5px;font-weight:500;text-align:left;cursor:pointer}.ide-tab-add-item:hover{background:var(--gj-hover);color:var(--gj-text)}.ide-drop-overlay{position:absolute;z-index:7;box-sizing:border-box;pointer-events:none;border-radius:var(--gj-radius);background:var(--gj-accent-soft);box-shadow:inset 0 0 0 2px rgba(124,196,255,.7);opacity:0;transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease,opacity .15s ease}.ide-drop-overlay[data-visible=true]{opacity:1}.ide-action-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:transparent;border:none;color:var(--gj-text-2);cursor:pointer;border-radius:6px;transition:color .12s ease,background .12s ease}.ide-action-btn:hover{color:var(--gj-text);background:var(--gj-hover)}.ide-action-btn:focus-visible{outline:2px solid var(--gj-accent);outline-offset:1px}.ide-page{height:100vh;height:100dvh;padding:12px 14px 14px;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;position:relative}.ide-topbar{display:flex;align-items:center;gap:14px;min-height:var(--gj-control-h);padding:0 2px}.ide-topbar-spacer{flex:1 1}.ide-brand{display:inline-flex;align-items:center;gap:8px;color:var(--gj-text);text-decoration:none;font-weight:650;font-size:15px;letter-spacing:-.01em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ide-brand-mark{flex:none;filter:drop-shadow(0 0 10px rgba(124,196,255,.35))}.ide-brand:hover .ide-brand-name{color:#fff}.ide-main-dock{display:flex;align-items:center;gap:8px}.ide-lang-segment{gap:2px;height:var(--gj-control-h);padding:3px;border-radius:9px;background:var(--gj-panel-2);border:1px solid var(--gj-border)}.ide-lang-option,.ide-lang-segment{display:inline-flex;align-items:center;box-sizing:border-box}.ide-lang-option{gap:6px;height:100%;padding:0 11px;border:none;border-radius:6px;background:transparent;color:var(--gj-text-3);font:inherit;font-size:12.5px;font-weight:550;cursor:pointer;transition:background .14s ease,color .14s ease}.ide-lang-option:hover:not(:disabled){color:var(--gj-text)}.ide-lang-option[aria-checked=true]{background:var(--gj-hover);color:var(--gj-text);box-shadow:0 0 0 1px var(--gj-border-strong) inset,0 1px 2px rgba(0,0,0,.4)}.ide-lang-option:disabled{cursor:not-allowed}.ide-lang-option:disabled:not([aria-checked=true]){opacity:.45}.ide-lang-option:focus-visible{outline:2px solid var(--gj-accent);outline-offset:1px}.ide-lang-dot{width:7px;height:7px;border-radius:50%;flex:none}.ide-status{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:550;color:var(--gj-text-3);white-space:nowrap;transition:background .2s ease,color .2s ease}.ide-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.ide-status[data-state=running]{color:var(--gj-run);background:rgba(34,197,94,.1)}.ide-status[data-state=running] .ide-status-dot{animation:ide-pulse 1.1s ease-in-out infinite}.ide-status[data-state=paused]{color:var(--gj-warn);background:var(--gj-warn-soft)}@keyframes ide-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.75)}}.ide-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;box-sizing:border-box;height:var(--gj-control-h);padding:0 12px;border:1px solid var(--gj-border-strong);border-radius:8px;background:var(--gj-panel-2);color:var(--gj-text-2);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .12s ease,background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .08s ease}.ide-btn:hover:not(:disabled){color:var(--gj-text);background:var(--gj-hover);border-color:#3a3f49}.ide-btn:active:not(:disabled){transform:translateY(1px)}.ide-btn:disabled{opacity:.6;cursor:default}.ide-btn:focus-visible{outline:2px solid var(--gj-accent);outline-offset:2px}.ide-kbd{display:inline-flex;align-items:center;height:18px;padding:0 5px;border-radius:4px;font-size:11px;font-weight:600;letter-spacing:.02em;opacity:.75}.ide-run-btn{min-width:92px;background:linear-gradient(180deg,#34d36f,var(--gj-run));box-shadow:0 0 0 1px rgba(34,197,94,.35),0 6px 18px rgba(34,197,94,.22)}.ide-run-btn,.ide-run-btn:hover:not(:disabled){border-color:transparent;color:var(--gj-run-ink)}.ide-run-btn:hover:not(:disabled){background:linear-gradient(180deg,#4ade80,var(--gj-run-hover));box-shadow:0 0 0 1px rgba(74,222,128,.5),0 8px 22px rgba(34,197,94,.32)}.ide-run-btn .ide-kbd{background:rgba(3,20,10,.16)}.ide-run-btn[data-mode=debug]{background:linear-gradient(180deg,#ffd25a,var(--gj-warn));color:#1f1500;box-shadow:0 0 0 1px rgba(251,191,36,.4),0 6px 18px rgba(251,191,36,.2)}.ide-run-btn[data-mode=debug]:hover:not(:disabled){color:#1f1500;background:linear-gradient(180deg,#ffdd7a,#fcc93a);box-shadow:0 0 0 1px rgba(251,191,36,.55),0 8px 22px rgba(251,191,36,.3)}.ide-run-btn[data-mode=debug] .ide-kbd{background:rgba(31,21,0,.14)}.ide-stop-btn{min-width:92px;border-color:rgba(248,113,113,.35);background:var(--gj-danger-soft);color:#fecaca}.ide-stop-btn:hover:not(:disabled){background:rgba(248,113,113,.24);border-color:rgba(248,113,113,.55);color:#fff}.ide-debug-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0;box-sizing:border-box;padding:10px 12px;border-bottom:1px solid var(--gj-border);background:linear-gradient(180deg,rgba(251,191,36,.07),transparent)}.ide-debug-group{gap:2px;padding:2px;background:var(--gj-panel-2);border:1px solid var(--gj-border-strong);border-radius:8px}.ide-debug-continue,.ide-debug-group{display:inline-flex;align-items:center;box-sizing:border-box;height:30px}.ide-debug-continue{gap:6px;padding:0 12px;border:none;border-radius:8px;background:linear-gradient(180deg,#34d36f,var(--gj-run));color:var(--gj-run-ink);font:inherit;font-size:12.5px;font-weight:650;cursor:pointer;box-shadow:0 4px 14px rgba(34,197,94,.22);transition:filter .12s ease}.ide-debug-continue:hover{filter:brightness(1.08)}.ide-debug-continue:focus-visible{outline:2px solid var(--gj-accent);outline-offset:2px}.ide-debug-continue .ide-kbd{background:rgba(3,20,10,.16)}.ide-share-btn[data-status=copied]{color:var(--gj-ok);border-color:rgba(74,222,128,.4)}.ide-share-icons{position:relative;display:block;width:13px;height:13px}.ide-share-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.86);transition:opacity .22s ease,transform .22s ease;pointer-events:none}.ide-share-icon[data-active=true]{opacity:1;transform:scale(1)}.ide-spinner{animation:ide-spin .7s linear infinite}@keyframes ide-spin{to{transform:rotate(1turn)}}.ide-panel{height:100%;display:flex;flex-direction:column;box-sizing:border-box;min-height:0;font-size:12.5px}.ide-section-header{align-items:center;padding:10px 14px 6px;font-size:10.5px;font-weight:650;letter-spacing:.08em;color:var(--gj-text-3);text-transform:uppercase;flex-shrink:0}.ide-frame,.ide-section-header{display:flex;justify-content:space-between}.ide-frame{align-items:baseline;gap:8px;width:calc(100% - 12px);margin:0 6px;box-sizing:border-box;text-align:left;padding:6px 10px;border:none;border-radius:7px;cursor:pointer;background:transparent;color:var(--gj-text-2);font-family:var(--gj-font-mono);font-size:12px;transition:background .12s ease,color .12s ease}.ide-frame:hover{background:var(--gj-hover);color:var(--gj-text)}.ide-frame[data-selected=true]{background:var(--gj-accent-soft);color:var(--gj-text);font-weight:600}.ide-frame-line{color:var(--gj-text-3);font-weight:400;font-size:11px}.ide-scope-name{padding:8px 14px 4px;font-size:10.5px;letter-spacing:.08em;color:var(--gj-accent);text-transform:uppercase;font-weight:650}.ide-var-row{display:flex;align-items:baseline;gap:8px;margin:0 6px;padding:4px 8px;border-radius:6px;min-width:0;font-family:var(--gj-font-mono);font-size:12px}.ide-var-row[data-expandable=true]{cursor:pointer}.ide-var-row[data-expandable=true]:hover{background:var(--gj-hover)}.ide-var-chevron{width:10px;color:var(--gj-text-3);flex-shrink:0;transition:transform .12s ease}.ide-var-chevron[data-open=true]{transform:rotate(90deg)}.ide-var-name{color:var(--gj-text);flex-shrink:0;max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide-var-type{color:var(--gj-text-3);font-size:11px;flex:1 1}.ide-var-type,.ide-var-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ide-var-value{color:#b9dcff;margin-left:auto;text-align:right;flex-shrink:0;max-width:55%}.ide-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center;color:var(--gj-text-3);min-height:0}.ide-empty-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--gj-panel-2);border:1px solid var(--gj-border);color:var(--gj-text-2)}.ide-empty-title{color:var(--gj-text);font-size:13px;font-weight:600}.ide-empty-body{max-width:260px;font-size:12.5px;line-height:1.5}.ide-empty-body code,.ide-empty-body kbd{font-family:var(--gj-font-mono);font-size:11.5px;padding:1px 5px;border-radius:4px;background:var(--gj-panel-2);border:1px solid var(--gj-border);color:var(--gj-text-2)}.ide-tests-summary{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--gj-border);font-size:12.5px;font-weight:600;color:var(--gj-text-2);flex-shrink:0}.ide-tests-summary[data-tone=error]{color:#fca5a5}.ide-tests-bar{flex:1 1;display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--gj-panel-2)}.ide-tests-bar>span{height:100%}.ide-test-row{margin:4px 6px;padding:8px 10px;border-radius:8px;background:transparent}.ide-test-row[data-status=errored],.ide-test-row[data-status=failed]{background:var(--gj-danger-soft)}.ide-test-head{display:flex;gap:10px;align-items:center}.ide-test-badge{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;flex-shrink:0;font-size:11px;font-weight:800;background:var(--gj-panel-2);color:var(--gj-text-3)}.ide-test-row[data-status=passed] .ide-test-badge{background:rgba(74,222,128,.16);color:var(--gj-ok)}.ide-test-row[data-status=errored] .ide-test-badge,.ide-test-row[data-status=failed] .ide-test-badge{background:rgba(248,113,113,.22);color:var(--gj-danger)}.ide-test-name{word-break:break-word;color:var(--gj-text);font-weight:500}.ide-test-detail{margin:6px 0 0 28px;color:#fca5a5;white-space:pre-wrap;font-family:var(--gj-font-mono);font-size:11.5px;line-height:1.55}.ide-terminal-wrap{position:relative;display:flex;flex-direction:column;height:100%;min-height:0}.ide-terminal-hint{position:absolute;inset:0;pointer-events:none}.ide-toast[data-sonner-toast]{--normal-bg:var(--gj-panel-2);--normal-border:var(--gj-border-strong);--normal-text:var(--gj-text);--success-bg:var(--gj-panel-2);--success-border:rgba(74,222,128,0.4);--success-text:var(--gj-text);--error-bg:var(--gj-panel-2);--error-border:rgba(248,113,113,0.45);--error-text:var(--gj-text)}.ide-page[data-loading=true]>:not(.ide-boot-overlay){filter:blur(7px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ide-boot-overlay{position:absolute;inset:0;z-index:50;display:grid;place-items:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ide-boot-spinner{width:28px;height:28px;border:2px solid var(--gj-border-strong);border-top-color:var(--gj-accent);border-radius:50%;animation:ide-spin .7s linear infinite}@media (max-width:760px){.ide-page{padding:10px;gap:10px}.ide-topbar{flex-wrap:wrap;row-gap:8px}.ide-btn-label,.ide-kbd,.ide-status,.ide-topbar-spacer{display:none}.ide-lang-segment{order:3;flex:1 0 100%}.ide-lang-option{flex:1 1;justify-content:center}.ide-main-dock{margin-left:auto}.ide-run-btn,.ide-stop-btn{min-width:0}}