/* VS Code-inspired workbench; exercise typography remains spacious. */
.welcome-shortcuts .prep-shortcut{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #343a45;color:#b6d6ff;padding:13px 0;font-size:14px;line-height:1.6}
.ide .panel,.ide dialog:not(#exercise-dialog){border-color:#3b4350;background:#252932}
.ide .panel h2,.ide .panel h3{color:#edf0f5}
.ide .panel p,.ide .panel li{color:#c5cede}
.ide .pill.soft{background:#2b3c53;border-color:#4b6485;color:#c8e0ff}
.ide .formula-card,.ide .graph-stage,.ide .session-summary{background:#252c37;border-color:#414e61;color:#e0e9f7}
.ide .progress-number,.ide .formula-display,.ide .modal-mark{color:#b7d6ff}
.ide .modal-mark{background:#293b55}
.ide .admin-table table,.ide .admin-table table tbody{background:#252932;color:#e0e9f7}
.ide .admin-table table thead{background:#303b4c;color:#edf0f5}
.ide .admin-table table tbody tr:nth-child(even){background:#2c3440}
.ide .attempt-detail{background:#252c37;border-color:#414e61}
.ide .admin-search{background:#191d24;border-color:#4a576c;color:#edf0f5}
/* Let grid/flex children shrink to their pane, including Firefox's intrinsic sizes. */
.ide .shell,.ide .explorer,.ide #tutor-pane,.ide #main,.ide #exercise-editor{min-width:0;min-height:0}
.ide .editor-tabs{min-width:0;flex-shrink:0}
.ide .editor-tabs button{min-width:0}
.ide #active-tab{flex:0 1 auto}
.ide .topbar,.ide .pane-heading,.ide .tutor-tools,.ide #chat-form,.ide .chat-disclosure,.ide #chat-status{flex-shrink:0}
.ide #exercise-dialog{box-sizing:border-box;min-width:0;max-inline-size:100%}
.ide .exercise-question,.ide .exercise-part,.ide .part-feedback{overflow-wrap:anywhere}
.ide .part-input{min-width:0;flex-wrap:wrap}
.ide .part-input input{min-width:0;width:100%}
.ide #tutor-pane{overflow-y:auto}
.ide #chat-messages{min-height:0;flex:1 0 120px}
.ide{--ink:#edf0f5;--muted:#b0b7c4;--purple:#a8c8ff;--line:#353a43;--surface:#252830;background:#1e2026;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:15px;display:grid;grid-template-columns:62px 268px minmax(340px,1fr) 350px;grid-template-rows:minmax(0,1fr) 27px;height:100dvh;overflow:hidden}
.ide [hidden]{display:none!important}.ide button,.ide input,.ide select,.ide textarea{font:inherit}.ide button{cursor:pointer}.ide :focus-visible{outline:2px solid #91c7ff;outline-offset:2px}.ide .sidebar{position:static;grid-column:1;grid-row:1;width:auto;height:auto;padding:12px 5px;background:#181a20;border-right:1px solid var(--line);overflow-y:auto}.ide .brand{font-size:0;display:block;margin:0 4px 26px}.ide .brand-icon{font-size:25px;width:42px;height:42px;background:#26364f;border-radius:8px}.ide .brand-dot,.ide .sidebar .workspace-label,.ide .sidebar-bottom,.ide .nav-item small,.ide .nav-item i{display:none}.ide .sidebar nav{display:flex;flex-direction:column;gap:10px}.ide .nav-item{font-size:0;min-height:46px;padding:10px;justify-content:center;border-radius:4px;border-left:2px solid transparent}.ide .nav-item span{font-size:25px;line-height:1;color:#b3bbc9}.ide .nav-item.active{background:#293342;border-left-color:#83b9ff}.ide .nav-item.active span{color:#cde2ff}.ide .nav-divider{margin:12px 4px}
.explorer{grid-column:2;grid-row:1;background:#22252c;border-right:1px solid var(--line);overflow:auto;display:flex;flex-direction:column;min-height:0}.pane-heading{height:49px;min-height:49px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;font-size:11px;letter-spacing:1.3px;font-weight:700;border-bottom:1px solid var(--line);color:#d3d9e3}.pane-heading button{color:#d3d9e3;font-size:24px;background:transparent;border:0}.explorer-route{padding:18px 14px 8px}.ide .track-bar{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.ide .track-label,.ide .route-note{display:none}.ide .segmented{grid-column:1/-1;display:flex;padding:3px;border:1px solid #444b59;background:#191c22;border-radius:5px}.ide .segmented button{flex:1;padding:6px;font-size:12px;border-radius:3px;color:#bcc5d4}.ide .segmented button.selected{background:#37465d;color:#fff;box-shadow:none}.ide .select-wrap{margin:0;min-width:0}.ide .select-wrap select{width:100%;min-width:0;font-size:12px;height:34px;padding:5px 18px 5px 8px;background-color:#292e38;border:1px solid #444b59;border-radius:4px;color:#e6ebf2}.tree-search{padding:9px 14px;color:#b6becc;font-size:11px}.tree-search input{height:34px;margin:6px 0 8px;font-size:12px!important;background:#191c22!important;border:1px solid #444b59!important;border-radius:4px!important;color:#eee}.tree-root{padding:10px 15px;background:#282d36;font-size:11px;font-weight:700;letter-spacing:.7px}#practice-tree{padding:8px 0;flex:1}#practice-tree summary{padding:8px 12px;font-size:13px;cursor:pointer;color:#d6dce5;display:list-item;list-style-position:inside}#practice-tree summary small{float:right;color:#9ba9bc;padding-top:2px}.folder-icon{color:#d9b279;margin-right:4px}.tree-topic{display:flex;gap:9px;text-align:left;width:100%;padding:7px 14px 7px 32px;font-size:12px!important;line-height:1.5;background:none;border:0;color:#c3ccda}.tree-topic span{color:#84bbf3;font-style:italic}.tree-topic:hover,#practice-tree summary:hover{background:#2c323e}.tree-topic.selected{background:#34445b;color:white;box-shadow:inset 2px 0 #8bbfff}.tree-empty{padding:18px;font-size:13px}.catalogue-link{font-size:12px;padding:17px;color:#a4c6f4;border-top:1px solid var(--line)}
.ide .shell{grid-column:3;grid-row:1;min-width:0;margin:0;display:flex;flex-direction:column;overflow:hidden}.ide .topbar{height:49px;min-height:49px;padding:0 20px;background:#22252c;border-bottom:1px solid var(--line);gap:10px}.ide .breadcrumb{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ide .top-actions{gap:12px}.ide .free-label{display:none}.ide .login-button{font-size:12px;white-space:nowrap}.ide .avatar{height:28px;width:28px;min-width:28px;font-size:11px;background:#38445b}.editor-tabs{display:flex;background:#181b21;min-height:41px;border-bottom:1px solid var(--line)}.editor-tabs button{border:0;border-right:1px solid var(--line);background:#22252c;color:#aeb8c8;padding:11px 16px;font-size:12px!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-tabs button.selected{background:#1e2026;border-top:2px solid #86baff;color:#edf2fc;padding-top:9px}#toggle-chat{margin-left:auto;flex-shrink:0}.ide #main{padding:28px;max-width:none;margin:0;width:100%;overflow:auto;flex:1;min-height:0}.ide #home-content,.ide #bottom-banner,.ide .main-footer{display:none!important}.ide .page-heading{margin-bottom:24px}.ide .page-heading h1{font-size:28px}.ide .page-heading p{font-size:15px}.ide .heading-symbol{display:none}.ide #workspace-welcome{max-width:580px;margin:30px auto 48px;padding:20px}.welcome-mark{font-size:72px;font-weight:800;letter-spacing:-6px;line-height:1.2;color:#8ba9d7}.welcome-mark span{color:#b5d8a0}.ide #workspace-welcome .eyebrow{font-size:10px;letter-spacing:1.8px;margin-top:26px;color:#a5b6d1}.ide #workspace-welcome h1{font-size:clamp(27px,3vw,42px);line-height:1.2;letter-spacing:-1.4px;font-weight:600;margin:12px 0 20px}.ide #workspace-welcome p{font-size:15px;line-height:1.8;color:#b6bfcd}.welcome-shortcuts{margin:30px 0;display:grid;gap:3px}.welcome-shortcuts button{display:flex;justify-content:space-between;gap:15px;background:transparent;border:0;border-bottom:1px solid #343a45;color:#b6d6ff;text-align:left;padding:13px 0;font-size:14px!important}.welcome-shortcuts span{color:#a2adbe;font-size:11px}.ide #workspace-welcome small{font-size:11px;color:#a2adbe}.ide #library-section .section-heading h2{font-size:22px}.ide .domain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.ide .domain-card{width:auto;min-width:0;margin:0;background:#252932;border:1px solid #3b4350;border-radius:6px;box-shadow:none}.ide .domain-card h3{font-size:18px}.ide .domain-card p{font-size:13px}.ide .section-heading p,.ide .card-bottom{font-size:12px}.ide .card-main{padding:20px}.ide .panel{background:#252932;border-color:#3b4350;border-radius:5px}
.ide #exercise-dialog{position:static;inset:auto;margin:0;padding:10px 0 24px;width:100%;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible;color:#edf0f5}.ide #exercise-dialog .close-modal{position:static;float:right;margin:0 0 12px 12px}.ide #exercise-dialog h2{font-size:27px;line-height:1.3;letter-spacing:-.6px;margin:24px 0}.ide .exercise-question{font-size:18px;line-height:1.8}.ide .exercise-part{padding:22px 0}.ide .exercise-part label{font-size:16px;line-height:1.8}.ide .exercise-part input{font-size:16px;background:#252c37;border-color:#505e73;border-radius:4px}.ide .answer-instruction{font-size:12px;line-height:1.7;color:#b1bdcf}.ide .primary{background:#3568a3;color:#fff;border:1px solid #6085b1;border-radius:4px;font-weight:600;padding:10px 16px;font-size:13px}.ide .primary:hover{background:#427ab7}.ide .pill{font-size:10px;letter-spacing:.6px}.ide #exercise-counter{font-size:11px}.ide .text-button,.ide .hint-button{color:#aacdff}.ide #exercise-plot{margin-top:20px}.ide .katex{font-size:1.15em}.ide .katex-display{overflow-x:auto;overflow-y:hidden}.ide .exercise-bottom{gap:10px;flex-wrap:wrap}
#tutor-pane{grid-column:4;grid-row:1;display:flex;flex-direction:column;min-height:0;background:#22252c;border-left:1px solid var(--line);overflow:hidden}.tutor-tools{padding:16px;border-bottom:1px solid var(--line)}.tutor-tools label{font-size:11px;color:#b6c0cf;margin-bottom:5px}.tutor-tools select{height:35px;background-color:#2c323c;border:1px solid #465060;color:#edf0f5;border-radius:5px;font-size:12px!important;margin:0 0 12px}.ide #chat-context{font-size:11px;color:#afc9e9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#chat-messages{flex:1;min-height:120px;overflow:auto;padding:22px 18px}.tutor-intro>span{font-size:29px;color:#b9d3f6}.tutor-intro h2{font-size:18px;margin:14px 0 10px;letter-spacing:-.3px}.tutor-intro p{font-size:13px;line-height:1.8;color:#b7c0ce}.suggestion{display:block;width:100%;text-align:left;background:#282e39;border:1px solid #414c5e;border-radius:5px;color:#cfddf2;font-size:12px!important;padding:10px 12px;margin:10px 0;line-height:1.6}.chat-message{padding:13px 0;margin-bottom:12px;font-size:14px;line-height:1.8;overflow-wrap:anywhere}.chat-message strong{display:block;font-size:11px;letter-spacing:.5px;margin-bottom:8px;color:#9fc5f9}.chat-message.user{background:#2c3441;border-radius:6px;padding:13px}.chat-message>div{white-space:pre-wrap}.ide #chat-form{margin:10px 12px 0;padding:12px;background:#191d24;border:1px solid #4a576c;border-radius:7px}.ide #chat-form label{font-size:11px;color:#bbc7d7}.ide #chat-input{border:0;box-shadow:none;background:transparent;color:#edf0f5;font-size:14px;resize:vertical;min-height:65px;max-height:150px;margin:8px 0;padding:0}.composer-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.composer-bottom span{font-size:9px;color:#b3bfd0}.ide #chat-send{font-size:11px;padding:6px 9px}.chat-disclosure{font-size:10px;line-height:1.6;margin:10px 16px 5px;color:#a6b1c2}#chat-status{font-size:11px;line-height:1.6;color:#c3d1e5;margin:5px 16px 13px}.ide-status{grid-column:1/-1;grid-row:2;background:#244a73;color:#e1edfc;display:flex;gap:24px;align-items:center;padding:0 14px;font-size:10px}.ide-status span:last-child{margin-left:auto}.ide.chat-hidden{grid-template-columns:62px 268px minmax(340px,1fr)}.chat-hidden #tutor-pane{display:none}.ide .skip:focus{z-index:1000}.ide dialog:not(#exercise-dialog){background:#242a35;color:#edf0f5}.ide #toast{z-index:1000}
@media(min-width:1101px){.ide #workspace-welcome:not([hidden])~#library-section{display:none}}
@media(max-width:1250px){.ide{grid-template-columns:52px 230px minmax(300px,1fr) 300px}.ide.chat-hidden{grid-template-columns:52px 230px minmax(300px,1fr)}.ide #main{padding:22px}.ide .brand{margin-left:0}.ide .brand-icon{width:37px;height:37px}.ide .topbar{padding:0 12px}.ide .breadcrumb{max-width:140px}}
@media(max-width:1000px){.ide{grid-template-columns:52px 220px minmax(0,1fr);grid-template-rows:minmax(0,1fr) 27px}.ide.chat-hidden{grid-template-columns:52px 220px minmax(0,1fr)}#tutor-pane{position:fixed;right:0;top:90px;bottom:27px;width:min(350px,calc(100vw - 52px));z-index:30;box-shadow:-12px 0 30px #0006}.ide:not(.chat-hidden) .shell{opacity:.65}.ide .domain-grid{grid-template-columns:1fr}.ide .nav-item{padding:10px 5px}}
@media(max-width:650px){.ide,.ide.chat-hidden{height:auto;min-height:100dvh;overflow:visible;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto minmax(500px,1fr) 27px}.ide .sidebar{grid-row:1/3;display:block;position:sticky;top:0;height:100dvh;width:46px;padding:10px 3px}.ide .sidebar nav{flex-direction:column}.ide .brand-icon{width:34px;height:34px}.explorer{grid-row:1;grid-column:2;max-height:310px}.pane-heading{min-height:38px;height:38px}.explorer-route{padding:10px 12px 0}.ide .track-bar{grid-template-columns:1fr 1fr 1fr}.ide .segmented{grid-column:auto}.ide .segmented button{font-size:10px}.tree-search{padding-bottom:0}.tree-search input{margin-bottom:0}#practice-tree{min-height:100px;overflow:auto}.catalogue-link{display:none}.ide .shell{grid-column:2;grid-row:2;min-height:500px;overflow:visible}.ide #main{overflow:visible;padding:18px}.ide .topbar{height:42px;min-height:42px}.ide .breadcrumb{font-size:10px}.ide .top-actions{gap:5px}.ide .editor-tabs button{padding:10px;font-size:11px!important}.ide #workspace-welcome{padding:0;margin:20px 0}.ide #workspace-welcome h1{font-size:29px}.welcome-shortcuts span{display:none}.ide-status{grid-row:3;position:sticky;bottom:0;z-index:40;font-size:9px;gap:12px}.ide-status span:last-child{display:none}.ide #exercise-dialog h2{font-size:23px}.ide .exercise-question{font-size:16px}.ide .exercise-part{grid-template-columns:24px minmax(0,1fr);gap:7px}.ide .exercise-part label{font-size:15px}.ide .exercise-top{flex-wrap:wrap;gap:10px}#tutor-pane{top:0;bottom:27px;width:calc(100vw - 46px)}.ide #library-section .section-heading{display:block}.ide .section-heading h2{font-size:20px}.ide .progress-stats{grid-template-columns:1fr}}
