: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)}}
