:root{--text:#d4d4d4;--text-h:#f5f5f5;--text-dim:#8d8d8d;--bg:#1e1e1e;--bg-soft:#252526;--border:#2e3036;--accent:#72b7ff;--shadow:#00000059 0 12px 32px;--sans:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font:16px/1.4 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#111}*{box-sizing:border-box}body{background:#111;margin:0}#root{min-height:100svh}h1,h2,h3,p{margin:0}.classrooms-app button{cursor:pointer!important;transition:all .15s ease-in-out!important}.classrooms-app button:not(:disabled):hover{filter:brightness(1.15)!important;transform:translateY(-1px)!important}.classrooms-app button:not(:disabled):active{transform:translateY(0)!important}.classrooms-app button:disabled{cursor:not-allowed!important}.chat-messages-container{--scrollbar-thumb:#30363d;--scrollbar-track:#0b1220;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}@supports not (scrollbar-color:auto){.chat-messages-container::-webkit-scrollbar{width:6px;height:6px}.chat-messages-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.chat-messages-container::-webkit-scrollbar-track{background:var(--scrollbar-track)}}@keyframes chat-pulse-online{0%{transform:scale(.95);box-shadow:0 0 #10b98166}70%{transform:scale(1);box-shadow:0 0 0 4px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}.chat-online-badge{background-color:#10b981;border-radius:50%;width:8px;height:8px;animation:2s infinite chat-pulse-online;display:inline-block;box-shadow:0 0 #10b981b3}@keyframes chat-message-slide{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-message-item{animation:.2s ease-out forwards chat-message-slide}.chat-threads-container{--scrollbar-thumb:#30363d;--scrollbar-track:#0b1220;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}@supports not (scrollbar-color:auto){.chat-threads-container::-webkit-scrollbar{width:4px;height:4px}.chat-threads-container::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:2px}.chat-threads-container::-webkit-scrollbar-track{background:var(--scrollbar-track)}}.landing{max-width:960px;min-height:100vh;margin:0 auto;padding:2rem;display:grid}.hero{border:1px solid var(--border);background:var(--bg-soft);box-shadow:var(--shadow);border-radius:14px;gap:1rem;padding:2rem;display:grid}.tag{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.marker{color:var(--text-dim);font-size:.72rem;display:inline-block}.hero h1{margin:0;font-size:clamp(1.8rem,4vw,2.8rem)}.cta{color:#fff;cursor:pointer;background:#1857c4;border:1px solid #4d8cff;border-radius:8px;width:fit-content;padding:.7rem 1rem}.ideShell{color:#d4d4d4;background:#1e1e1e;grid-template-rows:48px 1fr;min-height:100vh;display:grid}.windowTopbar{background:#181818;border-bottom:1px solid #2d2d2d;grid-template-columns:100px 1fr auto;align-items:center;gap:.75rem;padding:0 .9rem;display:grid}.dotGroup{gap:.4rem;display:flex}.dotGroup span{background:#404040;border-radius:999px;width:11px;height:11px}.titlePath{color:#bcbcbc;border:1px solid #2f2f2f;border-radius:6px;padding:.3rem .8rem}.homeBtn{color:#d4d4d4;cursor:pointer;background:#252526;border:1px solid #444;border-radius:7px;padding:.4rem .8rem}.workbench{grid-template-columns:56px 300px 1fr;min-height:0;display:grid}.workbench.sidebarHidden{grid-template-columns:56px 1fr}.activityBar{background:#181818;border-right:1px solid #2a2a2a;align-content:start;padding-top:.4rem;display:grid}.activityBar button{color:#9e9e9e;cursor:pointer;background:0 0;border:0;border-left:2px solid #0000;padding:.8rem 0;font-size:1.1rem}.activityBar button.active{color:#fff;background:#222;border-left-color:#3f8cff}.sidebar{background:#1a1a1a;border-right:1px solid #2a2a2a;grid-template-rows:auto auto 1fr;min-height:0;display:grid}.sidebarHidden .sidebar{display:none}.sidebarHeader{letter-spacing:.05em;color:#a0a0a0;border-bottom:1px solid #272727;justify-content:space-between;padding:.85rem;font-size:.76rem;display:flex}.fileActions{border-bottom:1px solid #272727;gap:.35rem;padding:.5rem;display:flex}.fileActions button{color:#d4d4d4;cursor:pointer;background:#252526;border:1px solid #3e3e3e;border-radius:6px;padding:.35rem .5rem;font-size:.75rem}.fileActions button:disabled{opacity:.5;cursor:not-allowed}.treeRoot,.treeRoot ul{margin:0;padding:.3rem;list-style:none}.treeRoot{overflow:auto}.treeNode{color:#c7c7c7;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:.35rem;width:100%;padding:.38rem .4rem;display:flex}.treeNode:hover,.treeNode.active{background:#2b2d30}.unsavedFileName{color:#ff6b6b}.editorWorkspace{grid-template-rows:42px 1fr 260px;min-width:0;min-height:0;display:grid}.tabBar{background:#181818;border-bottom:1px solid #2a2a2a;justify-content:space-between;align-items:stretch;display:flex}.tabsRow{min-width:0;display:flex;overflow:auto}.editorTab{color:#9f9f9f;cursor:pointer;white-space:nowrap;background:#181818;border:0;border-right:1px solid #2a2a2a;align-items:center;gap:.55rem;padding:0 .8rem;display:inline-flex}.editorTab.active{color:#fff;background:#1e1e1e}.saveButton{color:#fff7e6;background:#7a4a00;border:1px solid #f0b429;font-weight:700}.closeTab{color:#a8a8a8;font-size:1rem;line-height:1}.closeTab:hover{color:#fff}.runtimeBadge{color:#8fb8ff;text-transform:uppercase;letter-spacing:.05em;align-items:center;padding:0 .9rem;font-size:.78rem;display:inline-flex}.lspInlineStatus{color:#9fc0ff;white-space:nowrap;border-left:1px solid #2a2a2a;align-items:center;padding:0 .9rem;font-size:.75rem;display:inline-flex}.gitPanel{gap:.6rem;padding:.75rem;display:grid;overflow:auto}.gitOutput{color:#ddd;background:#111;border:1px solid #333;max-height:180px;margin:0;padding:.6rem;overflow:auto}.editorPane{background:#1e1e1e;min-height:0}.emptyEditor{color:#9d9d9d;place-items:center;height:100%;display:grid}.bottomPanel{border-top:1px solid #2a2a2a;grid-template-rows:38px 1fr;min-height:0;display:grid}.bottomTabs{background:#181818;border-bottom:1px solid #2a2a2a;display:flex}.bottomTabs button{color:#a8a8a8;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;padding:0 1rem;font-size:.78rem}.bottomTabs button.active{color:#fff;box-shadow:inset 0 -2px #3f8cff}.terminalBlock{grid-template-rows:auto 1fr;min-height:0;display:grid}.runRow{background:#1a1a1a;border-bottom:1px solid #2a2a2a;gap:.5rem;padding:.5rem;display:flex}.runRow input{color:#d4d4d4;background:#111;border:1px solid #414141;border-radius:6px;flex:1;min-width:0;padding:.4rem .55rem}.runRow button{color:#fff;cursor:pointer;background:#1857c4;border:1px solid #4d8cff;border-radius:6px;padding:.35rem .7rem}.connectionBanner{border-bottom:1px solid #2a2a2a;flex-wrap:wrap;gap:.75rem;padding:.35rem .55rem;font-size:.78rem;display:flex}.connectionBanner.connecting,.connectionBanner.retrying{color:#ffd98a}.connectionBanner.connected{color:#8ee9b6}.connectionBanner.error{color:#ff9b9b}.connectionBanner button{color:inherit;cursor:pointer;background:0 0;border:1px solid #4d8cff;border-radius:6px;padding:.1rem .45rem}.terminalHost{background:#111318;min-height:0;overflow:hidden}.plainTerminalCursor{vertical-align:-.15em;background:#d4d4d4;width:8px;height:1.05em;margin-left:1px;animation:1s step-end infinite plainTerminalCursorBlink;display:inline-block}@keyframes plainTerminalCursorBlink{50%{opacity:0}}.bottomPanel iframe{background:#fff;border:0;width:100%;height:100%}.projectManagerOverlay{z-index:90;background:#0000008c;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.projectManagerModal{background:#1b1b1c;border:1px solid #35353a;border-radius:14px;gap:.85rem;width:min(860px,100%);max-height:min(88vh,920px);padding:1rem;display:grid;overflow:auto;box-shadow:0 20px 60px #00000073}.projectManagerHeader{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.projectManagerHeader h2{margin:.2rem 0}.projectManagerHeader p{color:#b6b6b6;margin:0}.projectManagerList h3{margin:0 0 .6rem}.projectList{gap:.75rem;display:grid}.projectCard{text-align:left;color:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:.75rem;gap:.25rem;padding:.9rem 1rem;display:grid}.projectCard:hover{background:#ffffff14}.projectCard span{opacity:.75;font-size:.85rem}.contextMenu{z-index:30;background:#1f1f1f;border:1px solid #3a3a3a;border-radius:8px;gap:.2rem;min-width:160px;padding:.3rem;display:grid;position:fixed;box-shadow:0 8px 20px #00000073}.contextMenu button{color:#d4d4d4;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.4rem .5rem}.contextMenu button:hover{background:#2d2d2d}.projectSetupOverlay{z-index:400;background:#010409d1;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.projectSetupCard{background:#161b22;border:1px solid #30363d;border-radius:12px;width:min(520px,100%);padding:1.25rem;box-shadow:0 16px 48px #0009}.projectSetupRow{align-items:center;gap:.9rem;display:flex}.projectSetupSpinner{border:3px solid #58a6ff40;border-top-color:#58a6ff;border-radius:999px;flex-shrink:0;width:24px;height:24px;animation:.85s linear infinite projectSetupSpin}@keyframes projectSetupSpin{to{transform:rotate(360deg)}}@media (width<=980px){.workbench,.workbench.sidebarHidden{grid-template-columns:48px 1fr}.sidebar{display:none}.editorWorkspace{grid-template-rows:42px 1fr 220px}.projectManagerModal{padding:.9rem}.contextMenu{background:#1f232d;border:1px solid #ffffff29;border-radius:.65rem;min-width:170px;padding:.35rem;box-shadow:0 18px 40px #00000059}.contextMenu button{color:#f3f4f6;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:.45rem;width:100%;padding:.55rem .65rem;display:block}.contextMenu button:hover{background:#ffffff14}.contextMenu button.danger{color:#ff8b8b}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 #38bdf800}50%{box-shadow:0 0 12px 4px #38bdf826}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.codeCanvas{overscroll-behavior:none;touch-action:none;color:#c9d1d9;background:#080b10;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.codeCanvasToolbar{background:#0d1117;border-bottom:1px solid #21262d;flex-wrap:wrap;align-items:center;gap:10px;min-height:42px;padding:6px 10px;display:flex}.codeCanvasTitle{white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-weight:800;display:inline-flex}.codeCanvasGlyph{color:#58a6ff;font-size:16px}.codeCanvasLevel{color:#6e7681;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700}.codeCanvasToolbar input{color:#e6edf3;background:#010409;border:1px solid #30363d;border-radius:8px;outline:none;flex:1;min-width:150px;max-width:420px;padding:6px 9px;font:12px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.codeCanvasToolbar input:focus{border-color:#58a6ff;box-shadow:0 0 0 2px #58a6ff1f}.codeCanvasControls{background:#161b22;border:1px solid #30363d;border-radius:8px;align-items:center;margin-left:auto;display:inline-flex;overflow:hidden}.codeCanvasControls button{color:#c9d1d9;cursor:pointer;background:0 0;border:0;border-right:1px solid #30363d;min-width:30px;height:29px;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace}.codeCanvasControls button:hover{color:#58a6ff;background:#21262d}.codeCanvasControls button.fit{text-transform:uppercase;border-right:0;width:42px;font-size:10px}.codeCanvasControls span{text-align:center;color:#8b949e;min-width:48px;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.codeCanvasViewport{overscroll-behavior:none;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:hidden}.codeCanvasViewport:active{cursor:grabbing}.codeCanvasGrid{opacity:.38;background-image:radial-gradient(circle,#30363d 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0}.codeCanvasWorld{--canvas-card-width:480px;--canvas-card-height:420px;grid-template-columns:repeat(3, var(--canvas-card-width));grid-auto-rows:var(--canvas-card-height);transform-origin:0 0;will-change:transform;gap:28px;width:max-content;padding:8px;display:grid;position:absolute;top:0;left:0}.codeCanvasGroup{width:var(--canvas-card-width);height:var(--canvas-card-height);contain:layout paint;background:#0d1117f5;border:1px solid #30363d;border-radius:16px;overflow:hidden;box-shadow:0 14px 42px #00000052}.codeCanvasGroup>header{color:#e6edf3;background:#161b22;border-bottom:1px solid #21262d;align-items:center;gap:8px;height:38px;padding:0 12px;font-size:12px;display:flex}.codeCanvasGroup>header strong{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.codeCanvasGroup>header>span:last-child{color:#6e7681;font-size:10px}.folderMark{color:#d29922;font-size:17px}.codeCanvasOverview{box-sizing:border-box;flex-direction:column;justify-content:center;height:calc(100% - 38px);padding:16px;display:flex}.overviewCount{color:#e6edf3;font-size:52px;font-weight:900;line-height:1}.overviewLanguages{flex-wrap:wrap;gap:5px;margin-top:12px;display:flex}.overviewLanguages span{background:#0d1117;border:1px solid;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:800}.overviewPaths{color:#6e7681;text-overflow:ellipsis;white-space:nowrap;margin-top:12px;font:11px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.codeCanvasFiles{box-sizing:border-box;overscroll-behavior:contain;scrollbar-width:thin;align-content:start;gap:9px;height:calc(100% - 38px);padding:10px;display:grid;overflow:auto}.codeCanvasFiles.columns-1{grid-template-columns:minmax(0,1fr)}.codeCanvasFiles.columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.codeCanvasFiles.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.codeCanvasSingleFile{flex-direction:column;display:flex}.codeCanvasFilePager{z-index:3;background:#0d1117f5;border-bottom:1px solid #21262d;grid-template-columns:28px 1fr 28px;align-items:center;gap:6px;margin:-10px -10px 0;padding:6px 10px;display:grid;position:sticky;top:-10px}.codeCanvasFilePager span{color:#8b949e;text-align:center;font:700 9px ui-monospace,SFMono-Regular,Menlo,monospace}.codeCanvasFilePager button{color:#c9d1d9;cursor:pointer;background:#161b22;border:1px solid #30363d;border-radius:6px;height:24px;font:800 15px ui-monospace,SFMono-Regular,Menlo,monospace}.codeCanvasFilePager button:hover{color:#58a6ff;border-color:#58a6ff}.codeCanvasFile{border:1px solid #21262d;border-left:3px solid var(--language-color);background:#010409;border-radius:10px;overflow:hidden}.codeCanvasWorld.level-code .codeCanvasFile{overflow:visible}.codeCanvasFile.active{border-color:#58a6ff;box-shadow:0 0 0 2px #58a6ff2b}.fileHeader{color:#c9d1d9;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:7px;width:100%;padding:8px 9px 5px;display:flex}.fileHeader:hover strong{color:#58a6ff}.fileHeader strong{text-overflow:ellipsis;white-space:nowrap;flex:1;font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.fileHeader>span:last-child{color:var(--language-color);font-size:9px;font-weight:800}.fileDot{background:var(--language-color);width:7px;height:7px;box-shadow:0 0 8px var(--language-color);border-radius:50%}.fileMeta{color:#484f58;text-overflow:ellipsis;white-space:nowrap;padding:0 9px 7px 23px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.fileSummary{color:#6e7681;background:#0d1117;border-top:1px solid #161b22;flex-direction:column;max-height:46px;padding:6px 10px 8px;font:9px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;display:flex;overflow:hidden}.fileSummary span{text-overflow:ellipsis;white-space:pre;overflow:hidden}.codeCanvasFile pre{color:#8b949e;white-space:pre;background:#080b10;border-top:1px solid #161b22;max-height:420px;margin:0;padding:10px 12px 13px;font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.codeCanvasWorld.level-code .codeCanvasFile pre{color:#c9d1d9;max-height:none;font-size:9px;overflow:visible}.codeCanvasEmpty{color:#8b949e;background:#0d1117;border:1px dashed #30363d;border-radius:14px;min-width:360px;padding:28px;font-size:13px}.codeCanvasHint{color:#6e7681;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#0d1117e0;border:1px solid #30363dcc;border-radius:7px;padding:5px 8px;font-size:10px;position:absolute;bottom:9px;right:10px}.codeCanvas.compact .codeCanvasToolbar{padding:7px 9px}.codeCanvas.compact .codeCanvasLevel{display:none}.codeCanvas.compact .codeCanvasWorld{--canvas-card-width:430px;grid-template-columns:repeat(2, var(--canvas-card-width))}.codeCanvas.compact .codeCanvasHint{display:none}@media (width<=700px){.codeCanvasTitle{width:100%}.codeCanvasToolbar input{order:2;max-width:none}.codeCanvasControls{order:2}}
