/* A focused IDE work area; deliberately isolated from legacy .code-shell rules. */
.ide38-page{--ide-bg:#0d1420;--ide-panel:#121e2d;--ide-panel2:#162336;--ide-border:#2b3a50;--ide-text:#dce7fa;--ide-muted:#99adc9;--ide-highlight:#1a344e;--ide-accent:#54b6ff;color:var(--ide-text)}
.ide38-page *{box-sizing:border-box}
.ide38-titlebar{display:flex;gap:18px;align-items:center;justify-content:space-between;margin:0 0 14px;flex-wrap:wrap}
.ide38-titlebar h1{font-size:29px!important;font-weight:760!important;color:var(--ink)!important;margin:2px 0 4px!important}
.ide38-kicker{letter-spacing:.13em;font-weight:800;font-size:10px;color:var(--muted)}
.ide38-titlebar p{margin:0!important;color:var(--muted);font-size:12px}
.ide38-title-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ide38-btn{appearance:none;display:inline-flex;gap:7px;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:10px 13px;border-radius:8px;border:1px solid var(--line);background:var(--ui-surface);color:var(--ink);cursor:pointer;min-height:37px}
.ide38-btn:hover{filter:brightness(.94)}.ide38-btn:focus-visible,.ide38-page button:focus-visible,.ide38-page input:focus-visible,.ide38-page select:focus-visible{outline:2px solid #65b9ff;outline-offset:2px}
.ide38-primary{background:#236de5!important;color:white!important;border-color:#236de5!important}
.ide38-btn:disabled{opacity:.45;cursor:not-allowed}.ide38-btn kbd{font-size:10px;font-weight:500;color:#d6e7ff;border:1px solid #ffffff50;border-radius:4px;padding:1px 4px}
.ide38-shell{background:var(--ide-bg);border:1px solid var(--ide-border);border-radius:12px;overflow:hidden;display:grid;grid-template-columns:47px 220px minmax(0,1fr);min-height:680px;box-shadow:0 16px 45px rgba(8,18,40,.10)}
.ide38-activity{display:flex;flex-direction:column;align-items:center;padding:9px 0;background:#101b2a;border-right:1px solid var(--ide-border);gap:5px}
.ide38-activity button{border:0;cursor:pointer;color:#a3b5d1;background:transparent;border-left:2px solid transparent;width:44px;height:40px;font-size:24px;font-weight:300}
.ide38-activity button.active,.ide38-activity button:hover{color:#7ec9ff;border-left-color:#56aeff;background:#182b44}
.ide38-sidebar{background:var(--ide-panel);border-right:1px solid var(--ide-border);min-width:0;padding:13px 8px}
.ide38-sidepanel[hidden]{display:none}.ide38-sidehead{padding:6px 10px 12px;display:flex;align-items:center;justify-content:space-between;color:#b4c6e0;font-size:10px;letter-spacing:.12em}
.ide38-sidehead button{font-size:19px;color:#a9c3e4;background:transparent;border:0;cursor:pointer}
.ide38-filetree{display:grid;gap:1px}.ide38-file{font:12px/1.3 Consolas,monospace;text-align:left;padding:10px 11px;border:0;border-radius:5px;cursor:pointer;background:transparent;color:#bdcce2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ide38-file:hover,.ide38-file.active{background:var(--ide-highlight);color:#f1f8ff}
.ide38-sidebar-note{font-size:11px;line-height:1.5;color:#93a6c1;margin:14px 10px}
.ide38-extension{border-top:1px solid var(--ide-border);padding:14px 10px;display:grid;gap:6px;font-size:12px}
.ide38-extension small{font-size:11px;color:var(--ide-muted)}.ide38-extension label{display:flex;gap:7px;align-items:center;color:#d0ddec;font-size:11px}
.ide38-setting{padding:12px 9px;display:flex;flex-direction:column;gap:7px;font-size:12px;color:#dae8fa}
.ide38-setting select{color:#e6f0ff;background:#233248;border:1px solid #43536b;border-radius:6px;padding:7px;max-width:100%}
.ide38-main{display:flex;flex-direction:column;min-width:0;min-height:680px}
.ide38-tabs{display:flex;min-height:37px;background:#111c2b;border-bottom:1px solid var(--ide-border);overflow-x:auto}
.ide38-tab{padding:10px 17px;white-space:nowrap;border:0;border-right:1px solid var(--ide-border);border-top:2px solid transparent;font:12px Consolas,monospace;color:#91a6c5;background:transparent;cursor:pointer}
.ide38-tab.active{background:#172638;border-top-color:#62b9ff;color:#f0f6ff}
.ide38-editor-box{flex:1;min-height:350px;position:relative;background:var(--ide-bg)}
.ide38-monaco{position:absolute;inset:0;display:none;z-index:1}.ide38-monaco.active{display:block}
.ide38-fallback{display:flex;position:absolute;inset:0;min-height:350px;background:#0f1927;overflow:hidden}
.ide38-fallback[hidden]{display:none}.ide38-fallback-numbers{min-width:48px;color:#7185a4;font:14px/24px Consolas,monospace;text-align:right;white-space:pre;padding:17px 11px 17px 2px;background:#111d2d;border-right:1px solid var(--ide-border);overflow:hidden}
.ide38-fallback-textarea{width:100%;flex:1;border:0;outline:0;resize:none;background:#101b29;color:#e2eefe;font:14px/24px Consolas,monospace;padding:17px 13px;white-space:pre;tab-size:4}
.ide38-terminal-panel{height:245px;display:flex;flex-direction:column;border-top:1px solid #334761;background:#0b1420;min-height:150px}
.ide38-terminal-bar{height:38px;min-height:38px;border-bottom:1px solid #2b3b51;display:flex;align-items:center;gap:15px;padding-right:15px;font-size:11px;color:#a3b9d4}
.ide38-term-tab{height:100%;display:flex;align-items:center;padding:0 17px;border-bottom:2px solid #66bfff;color:#e5eeff;font-weight:750;letter-spacing:.045em}
.ide38-terminal-bar #run-status{margin-left:auto;color:#a6b8cc}
.ide38-terminal-bar button{background:transparent;border:0;color:#a5b8d0;cursor:pointer;font-size:11px}
.ide38-terminal-body{flex:1;min-height:0;padding:10px 18px;overflow:auto;color:#d8e9f8;font:13px/1.65 Consolas,'Cascadia Code',monospace;cursor:text}
.ide38-terminal-log{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;margin:0;color:inherit;font:inherit}
.ide38-terminal-input{display:flex;align-items:center;gap:9px;margin:0}.ide38-terminal-input[hidden]{display:none}
.ide38-prompt-mark{color:#5ddbaf}
.ide38-terminal-input input{flex:1;min-width:0;background:transparent;border:0;border-bottom:1px solid #4e779a;outline:none;color:#edfaff;font:13px/1.8 Consolas,monospace;padding:2px}
.ide38-terminal-input input::placeholder{color:#7891ae}
.ide38-terminal-input button{background:none;border:0;color:#79c4fe;font-size:18px;cursor:pointer}
.ide38-terminal-note{font-size:10px;line-height:1.4;color:#8eabc9;border-top:1px solid #24364b;padding:5px 15px}
.ide38-terminal-note a{color:#9cdbff!important}
.ide38-statusbar{min-height:25px;background:#1d5a9f;color:#f7fbff;display:flex;align-items:center;gap:18px;padding:3px 12px;font-size:10px;flex-wrap:wrap}
.ide38-statusbar span:nth-child(2){margin-left:auto}.ide38-statusbar button{color:white;background:none;border:0;font-size:10px;cursor:pointer}
.ide38-footnote{font-size:12px;line-height:1.65;color:var(--muted);padding:14px 2px 28px}
.ide38-footnote code{border-radius:3px;background:var(--ui-subtle);padding:2px 4px}
@media(max-width:1100px){.ide38-shell{grid-template-columns:43px 165px minmax(0,1fr)}.ide38-title-actions{gap:5px}.ide38-btn{padding:9px}.ide38-terminal-panel{height:205px}}
@media(max-width:760px){.ide38-shell{grid-template-columns:39px minmax(0,1fr);min-height:620px}.ide38-sidebar{display:none}.ide38-main{min-height:620px}.ide38-activity{grid-row:1}.ide38-editor-box{min-height:320px}.ide38-terminal-panel{height:220px}.ide38-titlebar{align-items:flex-start}.ide38-title-actions{justify-content:flex-start}.ide38-btn kbd{display:none}}
@media(prefers-reduced-motion:reduce){.ide38-page *{scroll-behavior:auto!important;transition:none!important}}

/* Terminal integrated in assigned lessons, too. */
.lesson-terminal-shell{border:1px solid #2b405a;background:#091222;border-radius:10px;overflow:hidden}
.lesson-terminal-shell .terminal{margin:0;border:0;border-radius:0;min-height:180px;max-height:360px}
.lesson-terminal-input{display:flex;align-items:center;gap:9px;padding:8px 14px;background:#091222;color:#6fdaac}
.lesson-terminal-input[hidden]{display:none}
.lesson-terminal-input input{flex:1;background:transparent;border:0;border-bottom:1px solid #557393;color:#e6f5ff;outline:0;font:13px Consolas,monospace;padding:5px}
.lesson-terminal-input button{color:#a0d9ff;background:transparent;border:0;cursor:pointer}

/* Override global form styles that otherwise make the editor white on mobile. */
html[data-theme="light"] body .portal-main .ide38-page .ide38-fallback-textarea,
html[data-theme="dark"] body .portal-main .ide38-page .ide38-fallback-textarea{background:#101b29!important;color:#e2eefe!important;border:0!important;border-radius:0!important;box-shadow:none!important}
html[data-theme="light"] body .portal-main .ide38-page .ide38-fallback-numbers,
html[data-theme="dark"] body .portal-main .ide38-page .ide38-fallback-numbers{background:#111d2d!important;color:#7185a4!important}
@media(max-width:760px){.ide38-shell{grid-template-columns:minmax(0,1fr)}.ide38-activity{display:none}.ide38-sidebar{display:none}.ide38-tabs{max-width:100%}.ide38-editor-box{min-width:0}.ide38-statusbar{gap:8px}.ide38-statusbar span:nth-child(2){margin-left:0}}
@media(max-width:480px){.topbar .brand small{display:none}.topbar .brand{min-width:0!important}.topbar .container.toprow{padding-left:9px!important;padding-right:9px!important;gap:5px!important}.topbar .nav-actions{gap:3px!important;flex-shrink:0}.topbar .nav-actions .btn{padding:7px!important;font-size:10px!important}.ide38-title-actions{gap:5px}.ide38-btn{font-size:11px;padding:8px}.ide38-shell{border-radius:8px}}

/* V3.9: a consistent dark workbench without legacy white form backgrounds. */
.ide39-file-actions{display:flex;gap:1px}.ide39-file-actions button{padding:2px 5px;border-radius:4px}
.ide39-help{margin:13px 0 25px;color:var(--muted);font-size:12px;line-height:1.6}
.ide39-help summary{cursor:pointer;font-weight:600}.ide39-help p{max-width:790px}
.ide38-shell .ide38-editor-box,.ide38-shell .ide38-fallback{background:#0f1927!important}
.ide38-shell .ide38-terminal-panel{background:#0b1420!important;color:#d8e9f8!important}
.ide38-shell .ide38-terminal-body,.ide38-shell .ide38-terminal-log{background:transparent!important;color:#d8e9f8!important}
html body .portal-main .ide38-page .ide38-terminal-input input{background:transparent!important;color:#edfaff!important;border:0!important;border-bottom:1px solid #4e779a!important;border-radius:0!important;box-shadow:none!important}

.ide38-footnote{padding:12px 0 18px!important;margin:0;color:var(--muted);font-size:12px}.ide38-footnote summary{font-weight:650;cursor:pointer}.ide38-footnote p{max-width:780px;line-height:1.6}
