@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;600&display=swap";.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}:root{color:#ccc;font-synthesis:none;--titlebar:#181818;--activity:#181818;--sidebar:#181818;--editor:#1f1f1f;--bg:#181818;--panel:#181818;--surface:#252526;--surface-hover:#2a2d2e;--surface-active:#37373d;--border:#2b2b2b;--muted:#8b8b8b;--text:#ccc;--bright:#f0f0f0;--blue:#0078d4;--blue-light:#3794ff;--green:#89d185;--orange:#cca700;--canvas:#101114;--surface-raised:#202227;--ink:#e6e8ec;--ink-muted:#999fa9;--accent:#2f81f7;--accent-contrast:#fff;--success:#3fb950;--warning:#d29922;--danger:#f85149;--focus:#58a6ff;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--shadow-md:0 16px 48px #0000006b;background:#181818;font-family:Noto Sans SC,sans-serif}.theme-light{color:#1f1f1f;--bg:#fff;--titlebar:#f3f3f3;--activity:#f3f3f3;--sidebar:#f8f8f8;--editor:#fff;--panel:#f8f8f8;--surface:#fff;--surface-hover:#eaeaea;--surface-active:#d4d4d4;--border:#d4d4d4;--muted:#6a6a6a;--text:#333;--bright:#1f1f1f;--canvas:#f6f8fa;--surface-raised:#f0f0f0;--ink:#1f2328;--ink-muted:#57606a;--accent-contrast:#fff;--shadow-md:0 16px 48px #0000001f;background:#fff}.theme-light input[type=checkbox]{background:#fff;border-color:#b0b0b0}.theme-light input[type=checkbox]:checked{background:#007acc;border-color:#007acc}.theme-light *{scrollbar-color:silver transparent}.theme-light ::-webkit-scrollbar-thumb{background:#c4c4c4}.theme-light ::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.theme-light .topbar{color:#333}.theme-light .activity-bar button{color:#6a6a6a}.theme-light .activity-bar button:hover{color:#1f1f1f}input[type=checkbox]{appearance:none;cursor:pointer;background:#2a2a2a;border:1px solid #5a5a5a;border-radius:3px;flex-shrink:0;place-content:center;width:14px;height:14px;margin:0;transition:background .12s,border-color .12s;display:inline-grid}input[type=checkbox]:before{content:"";clip-path:polygon(14% 44%,0 60%,50% 100%,100% 16%,86% 0,43% 62%);background:#fff;width:8px;height:8px;transition:transform .12s;transform:scale(0)}input[type=checkbox]:checked{background:#007acc;border-color:#007acc}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:disabled{opacity:.5;cursor:default}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#3a3a3a transparent;overscroll-behavior:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#424242 padding-box content-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#5a5a5a padding-box content-box}::-webkit-scrollbar-corner{background:0 0}body{background:var(--editor);min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}:where(button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--focus);outline-offset:2px}@keyframes spin{to{transform:rotate(360deg)}}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);min-height:34px;padding:0 var(--space-3);border:1px solid #0000;font-weight:500;display:inline-flex}.ui-button--primary{background:var(--accent);color:var(--accent-contrast)}.ui-button--primary:hover:not(:disabled){background:#4393fa}.ui-button--secondary{color:var(--ink);background:0 0;border-color:#41454d}.ui-button--secondary:hover:not(:disabled){background:#ffffff0d}.app-gate{background:var(--canvas);min-height:100vh;color:var(--ink);padding:var(--space-6);place-items:center;display:grid}.feedback-state{align-items:center;gap:var(--space-3);width:min(100%,520px);color:var(--ink);padding:var(--space-4);grid-template-columns:28px minmax(0,1fr) auto;display:grid}.feedback-state--compact{padding:var(--space-2) 0}.feedback-state__icon{color:var(--ink-muted);place-items:center;display:grid}.feedback-state__copy strong{font-size:13px;display:block}.feedback-state__copy p{color:var(--ink-muted);margin:3px 0 0;font-size:12px;line-height:1.5}.auth-shell{min-height:100vh;padding:var(--space-6);color:var(--ink);background:radial-gradient(1100px 640px at 82% -8%,#3f6fff29,#0000 62%),radial-gradient(900px 620px at 8% 108%,#7a4dff21,#0000 62%),linear-gradient(160deg,#04060f 0%,#081027 48%,#0d1733 100%);place-items:center;display:grid;position:relative;overflow:hidden}.auth-constellation{z-index:0;pointer-events:none;opacity:.92;background:url(/kernelatlas/starfield-bg.svg) 50%/cover no-repeat;animation:1.4s both auth-bg-in;position:fixed;inset:0}@keyframes auth-bg-in{0%{opacity:0;transform:scale(1.04)}to{opacity:.92;transform:scale(1)}}.auth-panel{z-index:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#161c30c7,#0c101ed6);border:1px solid #7aa0ff33;border-radius:16px;width:min(100%,420px);animation:.5s both auth-card-in;position:relative;overflow:hidden;box-shadow:0 24px 80px #0000008c,inset 0 1px #ffffff12}@supports ((-webkit-backdrop-filter:blur(16px))){.auth-panel{-webkit-backdrop-filter:blur(16px)}}@keyframes auth-card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.auth-brand{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;padding:30px 24px 6px;display:flex}.auth-brand-mark{color:#a9c8ff;background:radial-gradient(circle at 32% 28%,#2b4a9e,#131c3c 70%);border:1px solid #8cafff59;border-radius:50%;place-items:center;width:52px;height:52px;animation:3.6s ease-in-out infinite auth-mark-pulse;display:grid;box-shadow:0 0 26px #5a8cff59,inset 0 0 14px #8cafff2e}@keyframes auth-mark-pulse{50%{box-shadow:0 0 40px #6ea0ff80,inset 0 0 18px #8cafff40}}.auth-brand-name{flex-direction:column;align-items:center;gap:3px;display:flex}.auth-brand-name strong{letter-spacing:3px;color:#eaf2ff;font-size:24px}.auth-brand-name span{color:#7f97c9;letter-spacing:3px;font-size:12px}.auth-brand-tagline{color:#8fa3c9;margin:2px 0 0;font-size:12px;line-height:1.7}.auth-header{color:#8cbfff;border-bottom:1px solid #7aa0ff1f;align-items:center;gap:10px;padding:20px 24px 12px;display:flex}.auth-header strong{font-size:15px}.auth-body{gap:var(--space-3);flex-direction:column;padding:14px 24px 24px;display:flex}.auth-status{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:13px;display:flex}.auth-note{border-radius:var(--radius-md);color:var(--ink-muted);background:#2f81f71a;border:1px solid #3f80ff40;padding:10px;font-size:12px;line-height:1.6}.auth-field{gap:var(--space-1);flex-direction:column;display:flex}.auth-field span{color:var(--ink-muted);font-size:12px}.auth-field input{width:100%;color:var(--ink);background:#080b148c;border:1px solid #7a92be42;border-radius:8px;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s,background .15s}.auth-field input::placeholder{color:#5a6478}.auth-field input:focus{border-color:var(--accent);background:#0a0e1ab8;outline:none;box-shadow:0 0 0 3px #2f81f738,0 0 18px #2f81f72e}.auth-error{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);color:#ff9b95;background:#f8514914;border:1px solid #f8514966;padding:10px;font-size:13px;display:flex}.auth-success{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);color:#7ee787;background:#3fb95014;border:1px solid #3fb95066;padding:10px;font-size:13px;display:flex}.auth-submit{width:100%;margin-top:var(--space-1);color:#fff;background:linear-gradient(#3d8bff,#2f6ef0);border:1px solid #8cafff59;min-height:40px;transition:filter .15s,box-shadow .15s;box-shadow:0 6px 20px #2f6ef059}.auth-submit:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 8px 26px #2f6ef080}.auth-submit:disabled{box-shadow:none}.auth-field--code .code-row{gap:var(--space-2);display:flex}.auth-field--code .code-row input{flex:1;min-width:0}.send-code-btn{white-space:nowrap;min-height:38px;color:var(--ink);background:#ffffff0f;border-color:#7a92be59;flex-shrink:0;font-size:12px}.send-code-btn:hover:not(:disabled){background:#ffffff1f}.send-code-btn:disabled{opacity:.55;cursor:not-allowed}.auth-switch{margin-top:var(--space-1);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;width:100%;padding:4px;font-size:12px}.auth-switch:hover{color:var(--accent);text-decoration:underline}.app-shell{background:var(--editor);grid-template-rows:35px minmax(0,1fr) 22px;height:100vh;display:grid}.icon-button{width:30px;height:30px;color:inherit;background:0 0;border:0;place-items:center;display:grid}.icon-button:hover{background:#ffffff12}.topbar{background:var(--titlebar);border-bottom:1px solid var(--border);color:#c8c8c8;-webkit-user-select:none;user-select:none;grid-template-columns:minmax(340px,1fr) minmax(280px,620px) minmax(250px,1fr);align-items:center;min-width:0;display:grid}.brand-block,.top-actions,.command-center,.app-menu,.chapter-picker,.sync-state{align-items:center;display:flex}.brand-block{gap:8px;min-width:0;padding-left:10px}.brand-mark{color:#75beff;place-items:center;width:22px;height:22px;display:grid}.brand-block strong{color:#e7e7e7;white-space:nowrap;font-size:12px;font-weight:500}.app-menu{gap:1px;margin-left:8px}.app-menu button{color:#bdbdbd;background:0 0;border:0;height:28px;padding:0 7px;font-size:12px}.app-menu button:hover{background:#ffffff12}.command-center{color:#a7a7a7;background:#242424;border:1px solid #3c3c3c;border-radius:5px;justify-self:center;gap:6px;width:min(100%,620px);height:24px;padding:0 9px;font-size:12px}.command-center:hover{background:#292929;border-color:#505050}.command-center b{white-space:nowrap;text-overflow:ellipsis;color:#c6c6c6;min-width:0;font-weight:400;overflow:hidden}.chapter-picker{min-width:0;position:relative}.chapter-picker select{appearance:none;color:#dedede;cursor:pointer;background:0 0;border:0;outline:0;max-width:230px;padding:0 17px 0 0;font-size:12px}.chapter-picker option{color:#ddd;background:#252526}.chapter-picker svg{pointer-events:none;position:absolute;right:1px}.top-actions{justify-content:flex-end;gap:8px;padding-right:8px}.sync-state{color:#a7a7a7;gap:5px;font-size:12px}.avatar{color:#ddd;background:0 0;border:1px solid #666;place-items:center;width:23px;height:23px;font:500 12px IBM Plex Mono;display:grid}.avatar:hover{background:#ffffff12}.mobile-menu{display:none}.workspace{grid-template-columns:48px 250px minmax(0,1fr);min-height:0;display:grid}.workspace.mentor-closed{grid-template-columns:48px 250px minmax(0,1fr)}.workspace.mentor-closed .mission-rail.closed+.code-workbench{grid-column:span 2}.activity-bar{background:var(--activity);border-right:1px solid var(--border);flex-direction:column;justify-content:space-between;display:flex}.activity-bar>div{display:grid}.activity-bar button{color:#858585;background:0 0;border:0;border-left:2px solid #0000;place-items:center;width:47px;height:48px;display:grid;position:relative}.activity-bar button:hover{color:#d7d7d7}.activity-bar button.active{color:#f2f2f2;border-left-color:#007acc}.activity-bar button.secondary.active{color:#f2f2f2;border-left-color:#c586c0}.activity-badge{color:#fff;background:#007acc;border-radius:8px;place-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;display:grid;position:absolute;bottom:5px;right:5px}.mission-rail{background:var(--sidebar);border-right:1px solid var(--border);min-width:0;color:var(--text);flex-direction:column;display:flex;overflow-y:auto}.mission-rail.closed{display:none}.mission-rail.closed+.code-workbench,.mission-rail.closed+.learning-workspace{grid-column:span 2}.rail-heading{justify-content:space-between;align-items:center;min-height:35px;padding:0 8px 0 18px;display:flex}.rail-heading b{color:#bbb;text-transform:uppercase;font-size:12px;font-weight:400}.explorer-project,.explorer-section{color:#ddd;align-items:center;gap:3px;min-height:24px;padding:0 8px;display:flex}.explorer-project{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.explorer-project strong,.explorer-section span{text-transform:uppercase;font-size:12px;font-weight:600}.explorer-project small,.explorer-section small{color:#858585;margin-left:auto;font-size:12px}.explorer-section{margin-top:3px}.chapter-strip{border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:2px;padding:6px 8px;display:grid}.chapter-strip button{color:#9d9d9d;background:0 0;border:1px solid #0000;place-items:center;height:23px;font:500 12px IBM Plex Mono;display:grid}.chapter-strip button:hover{background:var(--surface-hover);color:#ddd}.chapter-strip button.active{color:#fff;background:#093e5c;border-color:#3d6f8f}.unit-list{padding:2px 0 7px}.kernel-files{padding:2px 0 8px}.kernel-files button{color:#aaa;text-align:left;background:0 0;border:0;grid-template-columns:18px 1fr 16px;align-items:center;gap:4px;width:100%;height:27px;padding:0 10px 0 29px;font-size:12px;display:grid}.kernel-files button:hover,.kernel-files button.active{background:var(--surface-hover);color:#eee}.kernel-files button.active{box-shadow:inset 2px 0 #007acc}.kernel-files svg{color:#e37933}.kernel-files em{color:#cca700;font-style:normal}.unit-row{color:#9d9d9d;text-align:left;background:0 0;border:0;grid-template-columns:22px minmax(0,1fr) 16px;align-items:center;gap:5px;width:100%;min-height:38px;padding:3px 8px 3px 18px;display:grid}.unit-row:hover{background:var(--surface-hover)}.unit-row.active{color:#fff;background:#37373d}.unit-row>span{color:#c586c0;font:500 12px IBM Plex Mono}.unit-row.done>span{color:var(--green)}.unit-row b,.unit-row small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.unit-row b{color:inherit;font-size:12px;font-weight:400}.unit-row small{color:#777;font-size:12px}.mission-brief{padding:5px 18px 12px 30px}.mission-brief p{color:#a7a7a7;margin:0;font-size:12px;line-height:1.65}.criteria{gap:6px;margin-top:10px;display:grid}.criteria span{color:#969696;align-items:center;gap:6px;font-size:12px;display:flex}.criteria svg{color:var(--blue-light)}.rail-footer{border-top:1px solid var(--border);color:#8f8f8f;align-items:center;gap:7px;min-height:31px;margin-top:auto;padding:0 12px;font-size:12px;display:flex}.activity-pane{color:#aaa;min-height:0;padding:8px 10px}.activity-pane h3{color:#ddd;margin:9px 0;font-size:12px;font-weight:500}.activity-pane>small{color:#777;margin:7px 1px;font-size:12px;display:block}.search-pane>label{background:#242424;border:1px solid #3c3c3c;align-items:center;gap:6px;height:27px;padding:0 7px;display:flex}.search-pane>label:focus-within{border-color:#007acc}.search-pane input{color:#ddd;background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:12px}.search-results{margin:0 -10px}.search-results>button{color:#c586c0;text-align:left;background:0 0;border:0;align-items:center;gap:7px;width:100%;min-height:43px;padding:5px 10px 5px 16px;display:flex}.search-results>button:hover{background:var(--surface-hover)}.search-results b,.search-results small{color:#bbb;font-size:12px;font-weight:400;display:block}.search-results small{color:#707070;font:400 12px IBM Plex Mono}.search-group-label{color:#888;letter-spacing:.3px;border-top:1px solid #2a2a2a;align-items:center;gap:5px;margin:8px -10px 2px;padding:2px 10px;font-size:12px;font-weight:600;display:flex}.search-group-label:first-child{border-top:0;margin-top:4px}.search-empty{color:#666;padding:4px 10px;font-size:12px;font-style:italic}.search-results.concept-results>button{color:#81a1c1}.source-summary{align-items:center;gap:8px;padding:5px;display:flex}.source-summary b,.source-summary small{font-size:12px;display:block}.source-summary small{color:#777}.change-row{color:#bbb;text-align:left;background:0 0;border:0;grid-template-columns:18px 1fr auto;align-items:center;width:calc(100% + 20px);height:27px;margin-left:-10px;padding:0 10px 0 20px;font-size:12px;display:grid}.change-row:hover{background:var(--surface-hover)}.change-row em{color:#cca700;font-style:normal}.change-row small{color:#777;font-size:12px}.pane-note{color:#707070;margin:16px 7px;font-size:12px;line-height:1.6}.progress-overview{padding:5px 3px 12px}.progress-overview>span,.progress-overview>b{font-size:12px}.progress-overview>b{float:right;color:#fff}.progress-overview>i{clear:both;background:#333;height:3px;margin-top:8px;display:block}.progress-overview>i em{background:#007acc;height:100%;display:block}.chapter-progress-list{margin:0 -10px}.chapter-progress-list button{color:#aaa;text-align:left;background:0 0;border:0;grid-template-columns:33px 1fr 28px;align-items:center;gap:5px;width:100%;min-height:43px;padding:4px 10px 4px 15px;display:grid}.chapter-progress-list button:hover{background:var(--surface-hover)}.chapter-progress-list button>span{color:#75beff;font:500 12px IBM Plex Mono}.chapter-progress-list b,.chapter-progress-list small{font-size:12px;font-weight:400;display:block}.chapter-progress-list small{color:#707070;font-size:12px}.chapter-progress-list em{color:#888;text-align:right;font:400 12px IBM Plex Mono}.pane-label{color:#888;text-transform:uppercase;margin:4px 0 7px;font-size:12px;display:block}.run-pane code{overflow-wrap:anywhere;color:#4ec9b0;background:#111;border:1px solid #333;padding:8px;font:400 12px/1.5 IBM Plex Mono;display:block}.sidebar-command{color:#fff;background:#0e639c;border:0;justify-content:center;align-items:center;gap:6px;width:100%;height:29px;margin-top:9px;font-size:12px;display:flex}.sidebar-command:hover{background:#17b}.run-config{grid-template-columns:1fr auto;gap:8px;margin-top:14px;font-size:12px;display:grid}.run-config span{align-items:center;gap:5px;display:flex}.run-config b{color:#ddd;font-weight:400}.account-pane{text-align:center}.account-avatar{color:#ddd;border:1px solid #777;border-radius:50%;place-items:center;width:52px;height:52px;margin:12px auto 5px;font:500 13px IBM Plex Mono;display:grid}.account-pane p{color:#777;font-size:12px}.account-pane>div:last-child{border-top:1px solid var(--border);text-align:left;grid-template-columns:1fr auto;gap:8px;margin-top:18px;padding:10px;font-size:12px;display:grid}.settings-pane .segmented{border:1px solid #3c3c3c;grid-template-columns:1fr 1fr;margin-bottom:18px;display:grid}.segmented button{color:#999;background:0 0;border:0;height:27px;font-size:12px}.segmented button.active{color:#fff;background:#094771}.settings-pane>label{color:#aaa;border-bottom:1px solid #252525;justify-content:space-between;align-items:center;min-height:29px;font-size:12px;display:flex}.settings-pane input{accent-color:#007acc}.code-workbench{background:var(--editor);grid-template-rows:35px 24px 35px minmax(220px,1fr) 174px;min-width:0;min-height:0;display:grid}.code-workbench.panel-closed{grid-template-rows:35px 24px 35px minmax(220px,1fr)}.source-workbench-layout.embedded{display:contents}.source-workbench-layout.standalone{grid-template-rows:35px 24px 35px minmax(220px,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.source-crumb{align-items:center;min-width:0;display:inline-flex}.file-tabs{border-bottom:1px solid var(--border);background:#181818;align-items:stretch;min-width:0;display:flex}.file-tab{border:0;border-right:1px solid var(--border);color:#9d9d9d;background:#181818;align-items:center;gap:7px;min-width:118px;max-width:170px;padding:0 10px;font-size:12px;display:flex}.file-tab.active{background:var(--editor);color:#fff;border-top:1px solid #007acc}.file-tab svg:first-child{color:#e37933}.file-tab i{background:#cca700;border-radius:50%;width:6px;height:6px;margin-left:auto}.code-location{white-space:nowrap;text-overflow:ellipsis;color:#666;min-width:0;margin:auto 10px auto auto;font:400 12px IBM Plex Mono;overflow:hidden}.breadcrumbs{white-space:nowrap;color:#858585;align-items:center;gap:1px;min-width:0;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.breadcrumbs b{color:#bababa;font-weight:400}.breadcrumbs em{text-overflow:ellipsis;color:#777;min-width:0;font-style:normal;overflow:hidden}.editor-toolbar{border-top:1px solid #252525;border-bottom:1px solid var(--border);color:#aaa;justify-content:flex-end;align-items:center;gap:5px;padding:0 8px;display:flex}.anchor-status{align-items:center;gap:6px;margin-right:auto;font-size:12px;display:flex}.anchor-status svg{color:#4ec9b0}.anchor-status span{color:#707070}.primary-button,.secondary-button,.run-button{color:#c8c8c8;background:0 0;border:0;align-items:center;gap:5px;height:24px;padding:0 8px;font-size:12px;display:flex}.primary-button:hover,.secondary-button:hover{background:var(--surface-hover)}.primary-button{color:#75beff}.mode-switch{border:1px solid #3c3c3c;height:24px;display:flex}.mode-switch button{color:#888;background:0 0;border:0;align-items:center;gap:4px;height:22px;padding:0 7px;font-size:12px;display:flex}.mode-switch button.active{color:#fff;background:#094771}.editor{background:var(--editor);color:#d4d4d4;flex-direction:column;min-height:0;display:flex;overflow:hidden}.editor-topline{z-index:2;color:#666;background:#1f1f1ff2;flex:0 0 20px;justify-content:space-between;align-items:center;padding:0 12px;font:500 12px IBM Plex Mono;display:flex;position:relative}.monaco-host{flex:auto;min-height:0;position:relative}.monaco-line-selected,.monaco-glyph-selected{background:#ffdc641f!important}.code-line{border-left:2px solid #0000;grid-template-columns:54px minmax(650px,1fr);align-items:center;min-width:max-content;height:21px;display:grid}.code-line:hover{background:#ffffff08}.code-line.selected{background:#04395e80;border-left-color:#007acc}.code-line>button{color:#858585;text-align:right;background:0 0;border:0;height:21px;padding:0 12px 0 0;font:400 10px IBM Plex Mono}.code-line.selected>button{color:#c6e4f7}.code-line code{white-space:pre;font:400 11px/1 IBM Plex Mono,monospace}.kw{color:#c586c0}.type{color:#4ec9b0}.danger{color:#f44747}.comment{color:#6a9955}.graph-sidebar .graph-counts{border:1px solid #333;grid-template-columns:repeat(3,1fr);margin:12px 0 18px;display:grid}.graph-counts span{color:#777;text-align:center;padding:8px 3px;font-size:12px}.graph-counts span+span{border-left:1px solid #333}.graph-counts b{color:#ddd;margin-top:3px;font:500 12px IBM Plex Mono;display:block}.graph-legend{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px;display:grid}.graph-legend span{color:#aaa;align-items:center;gap:6px;font-size:12px;display:flex}.graph-legend span:before{content:"";background:currentColor;width:13px;height:2px}.graph-legend .composed_of{color:#4ec9b0}.graph-legend .prerequisite_of{color:#dcdcaa}.graph-legend .related_to{color:#75beff}.graph-legend .exemplifies{color:#c586c0}.graph-workbench{background:var(--editor);color:#ccc;grid-template-rows:50px minmax(0,1fr);grid-template-columns:minmax(0,1fr) 260px;min-width:0;min-height:0;display:grid}.graph-workbench>header{border-bottom:1px solid var(--border);background:#181818;grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.graph-workbench>header>div{color:#75beff;align-items:center;gap:9px;display:flex}.graph-workbench>header b,.graph-workbench>header small{font-size:12px;display:block}.graph-workbench>header small{color:#777;margin-top:2px;font-size:12px}.graph-workbench>header>span{color:#777;font:400 12px IBM Plex Mono}.graph-canvas{background-image:linear-gradient(#262626 1px,#0000 1px),linear-gradient(90deg,#262626 1px,#0000 1px);background-size:24px 24px;min-width:0;min-height:0;position:relative;overflow:hidden}.vis-canvas{width:100%;height:100%;position:absolute;inset:0}.vis-canvas canvas{outline:none}.vis-canvas .vis-tooltip{color:#ddd;border:1px solid #444;border-radius:4px;max-width:280px;padding:6px 8px;font-size:12px;background:#252526!important}.concept-detail{border-left:1px solid var(--border);background:var(--sidebar);min-width:0;padding:18px 16px;overflow-y:auto}.concept-detail h2{color:#fff;letter-spacing:0;margin:5px 0 9px;font-size:15px}.concept-detail>p{color:#aaa;margin:0 0 8px;font-size:12px;line-height:1.65}.concept-detail>small{color:#75beff;font:400 12px IBM Plex Mono}.evidence-list{margin-top:24px}.evidence-list blockquote{background:#202020;border:0;border-left:2px solid #4ec9b0;margin:8px 0;padding:8px 9px}.evidence-list blockquote p{color:#bbb;margin:0;font-size:12px;line-height:1.6}.evidence-list cite{color:#777;margin-top:5px;font:400 12px IBM Plex Mono;display:block}.empty-evidence{color:#666!important}.graph-workbench.embedded{grid-template-columns:minmax(0,1fr);height:100%;min-height:0}.graph-workbench.embedded .concept-detail.overlay{border-left:0;border:1px solid var(--border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:5;background:#18181bf0;border-radius:6px;width:240px;max-width:60%;padding:14px 12px;position:absolute;top:8px;bottom:8px;right:8px;box-shadow:-4px 0 16px #00000073}.tb-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);z-index:7;background:#121216f5;border-radius:8px;flex-direction:column;width:46%;min-width:320px;max-width:560px;display:flex;position:absolute;top:8px;bottom:8px;left:8px;overflow:hidden;box-shadow:4px 0 20px #00000080}.tb-overlay-head{border-bottom:1px solid var(--border);background:#181818;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.tb-overlay-head>div{color:#facc15;align-items:center;gap:8px;font-size:12px;display:flex}.tb-overlay-head b{color:#ddd}.tb-overlay-head small{color:#777}.tb-overlay-body{flex:1;padding:8px 6px;overflow-y:auto}.tb-block{border-left:3px solid #0000;border-radius:4px;gap:8px;padding:4px 8px;transition:background .15s;display:flex}.tb-block.hl{background:#facc1521;border-left-color:#facc15}.tb-lineno{color:#555;text-align:right;-webkit-user-select:none;user-select:none;flex-shrink:0;min-width:28px;padding-top:2px;font:400 10px IBM Plex Mono,monospace}.tb-block.hl .tb-lineno{color:#facc15;font-weight:600}.tb-block-md{color:#ccc;flex:1;min-width:0;font-size:12.5px;line-height:1.7}.tb-block-md p{margin:2px 0}.tb-block-md li{margin:1px 0}.tb-block-md pre{background:#1a1a1e;border-radius:4px;padding:8px;overflow-x:auto}.tb-block-md code{font-size:12px}.tb-block.hl .tb-block-md{color:#fde68a}.graph-detail-toggle{z-index:6;color:#a5b4fc;border:1px solid var(--border);cursor:pointer;background:#1e1e27e6;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .15s,border-color .15s;display:inline-flex;position:absolute;top:8px;right:8px}.graph-detail-toggle:hover{background:#1c1c2a;border-color:#4f46e5}.graph-empty{color:#777;flex-direction:column;grid-column:auto;justify-content:center;align-items:center;gap:8px;display:flex}.graph-empty h2,.graph-empty p{letter-spacing:0;margin:0}.graph-empty h2{color:#ccc;font-size:14px}.graph-empty p{font-size:12px}.spin{animation:1s linear infinite spin}.verification-dock{background:var(--panel);border-top:1px solid var(--border);color:#ccc;min-height:0}.dock-tabs{align-items:stretch;height:35px;padding-left:10px;display:flex}.dock-tabs button{color:#8d8d8d;text-transform:uppercase;background:0 0;border:0;align-items:center;gap:5px;padding:0 8px;font-size:12px;display:flex;position:relative}.dock-tabs button:hover{color:#ddd}.dock-tabs button.active{color:#fff}.dock-tabs button.active:after{content:"";background:#007acc;height:1px;position:absolute;bottom:0;left:8px;right:8px}.dock-tabs button i{background:#333;border-radius:7px;min-width:15px;padding:1px 3px;font-size:10px;font-style:normal}.panel-actions{color:#888;align-items:center;gap:12px;margin-left:auto;padding-right:10px;display:flex}.panel-actions button{color:#888;background:0 0;border:0;place-items:center;width:22px;height:22px;display:grid}.panel-actions button:hover{background:var(--surface-hover);color:#ddd}.terminal-output{justify-content:space-between;align-items:flex-start;height:calc(100% - 35px);padding:9px 14px;font-family:IBM Plex Mono,monospace;display:flex}.terminal-copy span{color:#ccc;font-size:12px}.terminal-copy .terminal-prompt{color:#4ec9b0}.terminal-copy p{color:#858585;margin:9px 0 0;font-size:12px}.terminal-copy p.running{color:#dcdcaa}.terminal-copy p.passed{color:var(--green)}.run-button{color:#fff;background:#0e639c;flex:none}.run-button:hover{background:#17b}.panel-empty,.test-panel{color:#858585;align-items:center;gap:8px;height:calc(100% - 35px);padding:12px 15px;font-size:12px;display:flex}.panel-empty svg{color:var(--green)}.panel-log{color:#a7a7a7;padding:10px 14px;font:400 12px/1.8 IBM Plex Mono}.panel-log span{color:#75beff}.test-panel{align-items:flex-start}.test-panel svg{color:#c586c0}.test-panel b,.test-panel span{font-size:12px;font-weight:400;display:block}.test-panel span{color:#707070;margin-top:4px}.mentor-panel{background:var(--sidebar);border-left:1px solid var(--border);grid-template-rows:35px 62px minmax(180px,1fr) 35px auto;min-width:0;min-height:0;display:grid;overflow:hidden}.mentor-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 10px 0 13px;display:flex}.mentor-heading b{color:#ccc;text-transform:uppercase;font-size:12px;font-weight:500;display:block}.mentor-heading span{color:#727272;align-items:center;gap:4px;font-size:12px;display:flex}.mentor-heading span i{background:#89d185;border-radius:50%;width:5px;height:5px}.mentor-title-actions{color:#888;gap:10px;display:flex}.mentor-title-actions button{color:#888;background:0 0;border:0;place-items:center;width:22px;height:22px;display:grid}.mentor-title-actions button:hover{background:var(--surface-hover);color:#ddd}.reasoning-meter{border-bottom:1px solid var(--border);background:#1c1c1c;padding:9px 13px}.reasoning-meter>div:first-child{color:#999;justify-content:space-between;font-size:12px;display:flex}.reasoning-meter b{color:#ddd;font:500 12px IBM Plex Mono}.meter{background:#333;height:2px;margin:7px 0 5px}.meter i{background:#007acc;height:100%;display:block}.reasoning-meter small{color:#696969;font-size:12px}.conversation{min-height:0;padding:10px 12px 18px;overflow-y:auto}.checkpoint-line{color:#666;align-items:center;gap:7px;margin-bottom:12px;font-size:12px;display:flex}.checkpoint-line:before,.checkpoint-line:after{content:"";background:#2c2c2c;flex:1;height:1px}.message{margin-bottom:14px}.message>span{color:#777;margin-bottom:4px;font-size:12px;display:block}.message p{color:#c3c3c3;background:#202020;border:1px solid #333;border-left:2px solid #007acc;margin:0;padding:8px 9px;font-size:12px;line-height:1.65}.message.learner>span{text-align:right}.message.learner p{background:#252525;border-left:1px solid #333;border-right:2px solid #6a9955}.message-actions{margin-top:4px}.message-actions button{color:#75beff;background:0 0;border:0;align-items:center;gap:4px;font-size:12px;display:flex}.hint-control{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 12px;display:flex}.hint-control>div{color:#cca700;align-items:center;gap:5px;font-size:12px;display:flex}.hint-control button{color:#75beff;background:0 0;border:0;font-size:12px}.answer-box{background:#1f1f1f;border:1px solid #3c3c3c;margin:8px}.answer-box:focus-within{border-color:#007acc}.evidence-chips{flex-wrap:wrap;gap:4px;min-height:27px;padding:5px 6px 0;display:flex}.evidence-chips>span{color:#d7ecfa;background:#094771;align-items:center;gap:2px;height:18px;padding-left:5px;font:500 12px IBM Plex Mono;display:flex}.evidence-chips button{width:17px;height:18px;color:inherit;background:0 0;border:0;place-items:center;display:grid}.answer-box textarea{resize:none;color:#ddd;background:0 0;border:0;outline:0;width:100%;height:68px;padding:7px 8px;font-size:12px;line-height:1.5}.answer-actions{color:#666;justify-content:space-between;align-items:center;padding:4px 5px 5px 8px;font:400 12px IBM Plex Mono;display:flex}.send-button{color:#fff;background:#0e639c;border:0;place-items:center;width:26px;height:24px;display:grid}.next-button{color:#fff;background:#2e7d32;border:0;align-items:center;gap:4px;height:24px;padding:0 7px;font-size:12px;display:flex}.statusbar{color:#fff;-webkit-user-select:none;user-select:none;background:#007acc;justify-content:space-between;align-items:center;font-size:12px;display:flex;overflow:hidden}.statusbar>div{align-items:center;height:100%;display:flex}.statusbar span{white-space:nowrap;align-items:center;gap:4px;height:100%;padding:0 7px;display:flex}.statusbar span:hover{background:#ffffff18}.mobile-tabs{display:none}.compact-editor .code-line{height:18px}.compact-editor .code-line>button{height:18px;font-size:12px}.compact-editor .code-line code{font-size:12px}@media (width<=1180px){.workspace{grid-template-columns:44px 220px minmax(430px,1fr) 300px}.workspace.mentor-closed{grid-template-columns:44px 220px minmax(430px,1fr)}.activity-bar button{width:43px}.topbar{grid-template-columns:minmax(250px,1fr) minmax(260px,500px) minmax(180px,1fr)}.app-menu button:nth-child(3),.app-menu button:nth-child(4){display:none}}@media (width<=820px){body{overflow:hidden}.app-shell{grid-template-rows:35px minmax(0,1fr) 22px 48px}.topbar{grid-template-columns:minmax(0,1fr) auto}.command-center,.sync-state,.app-menu{display:none}.mobile-menu{display:grid}.workspace{display:block}.activity-bar{display:none}.mission-rail,.code-workbench,.mentor-panel{border:0;width:100%;height:100%;display:none}.mission-rail.mobile-active{display:flex}.code-workbench.mobile-active{grid-template-rows:35px 24px 35px minmax(220px,1fr) 145px;display:grid}.code-workbench.mobile-active.panel-closed{grid-template-rows:35px 24px 35px minmax(220px,1fr)}.mentor-panel.mobile-active{grid-template-rows:35px 62px minmax(180px,1fr) 35px auto;display:grid}.graph-workbench{grid-template-rows:45px minmax(300px,1fr) minmax(160px,36%);grid-template-columns:1fr;width:100%;height:100%}.graph-workbench>header{grid-column:1}.concept-detail{border-top:1px solid var(--border);border-left:0}.mission-rail.closed.mobile-active{display:flex}.rail-close,.code-location,.anchor-status span,.statusbar>div:last-child span:not(:last-child){display:none}.mobile-tabs{border-top:1px solid var(--border);background:#181818;grid-template-columns:repeat(3,1fr);display:grid}.mobile-tabs button{color:#858585;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:12px;display:flex}.mobile-tabs button.active{color:#fff;box-shadow:inset 0 2px #007acc}}@media (width<=480px){.brand-block{padding-left:3px}.top-actions{padding-right:5px}.breadcrumbs em{display:none}.primary-button,.secondary-button{padding:0 5px}.terminal-output{padding:8px}.terminal-copy{min-width:0}.terminal-copy>span:not(.terminal-prompt){white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:210px;display:inline-block;overflow:hidden}}@media (width<=760px){.manage-shell{height:100dvh!important;min-height:100dvh!important}.manage-topbar{gap:10px;min-height:48px;height:auto!important;padding:8px 12px!important}.manage-topbar>div:first-child span,.manage-topbar>div:last-child>span{display:none}.manage-body{min-height:0;flex-direction:column!important}.manage-sidebar{border-bottom:1px solid var(--border);overflow-x:auto;border-right:0!important;flex-direction:row!important;width:100%!important;padding:0!important}.manage-sidebar>div{display:none}.manage-sidebar>button{white-space:nowrap;flex:none;min-height:44px;width:auto!important;padding:8px 12px!important}.manage-sidebar>button[style*=border-right]{border-right:0!important;border-bottom:2px solid var(--accent)!important}.manage-content{padding:16px 12px 32px!important}.manage-content input,.manage-content select{min-width:0;max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.teacher-gate{background:var(--canvas);height:100vh;color:var(--ink-muted);justify-content:center;align-items:center;gap:10px;display:flex}.teacher-shell{background:var(--canvas);height:100vh;color:var(--ink);grid-template-rows:42px minmax(0,1fr) 22px;display:grid;overflow:hidden}.teacher-topbar{border-bottom:1px solid var(--border);background:#18191d;justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 10px;display:flex}.teacher-topbar>div,.teacher-course-state{align-items:center;gap:9px;min-width:0;display:flex}.teacher-topbar strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.teacher-topbar span{color:var(--ink-muted);font-size:12px}.teacher-icon{width:28px;height:28px;color:var(--ink-muted);background:0 0;border:0;place-items:center;display:grid}.teacher-icon:hover{color:var(--ink);background:#ffffff0d}.teacher-course-state>span{border-radius:var(--radius-sm);border:1px solid #343840;padding:3px 7px}.teacher-course-state .state-running{color:var(--warning)}.teacher-course-state .state-done{color:var(--success)}.teacher-course-state .state-failed{color:var(--danger)}.teacher-locked-banner{color:#ffd97a;background:#3a2e0a;border-bottom:1px solid #b8860b55;align-items:center;gap:9px;padding:7px 12px;font-size:12px;line-height:1.5;display:flex}.teacher-locked-banner b{color:#ffe9a0}.teacher-build-progress{border-bottom:1px solid var(--border);background:#14161b;align-items:center;gap:10px;padding:5px 10px;display:flex}.teacher-build-progress-track{background:#2a2e36;border-radius:2px;flex:1;height:4px;overflow:hidden}.teacher-build-progress-track i{background:linear-gradient(90deg,#4f46e5,#818cf8);border-radius:2px;height:100%;transition:width .4s;display:block}.teacher-build-progress-track.indeterminate i{background:linear-gradient(90deg,#4f46e5,#818cf8,#4f46e5) 0 0/200% 100%;width:100%;animation:1.2s linear infinite teacher-progress-slide}@keyframes teacher-progress-slide{0%{background-position:0 0}to{background-position:-200% 0}}.teacher-build-progress span{color:#9aa3af;white-space:nowrap;font-size:12px}.teacher-build-progress .teacher-build-stat{color:#818cf8}.review-chat-overlay{z-index:1000;background:#00000080;justify-content:flex-end;display:flex;position:fixed;inset:0}.review-chat-panel{border-left:1px solid var(--border);background:#15161a;flex-direction:column;width:480px;max-width:92vw;height:100vh;display:flex;box-shadow:-8px 0 24px #0006}.review-chat-head{border-bottom:1px solid var(--border);background:#1a1c22;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.review-chat-head strong{color:#a5b4fc;align-items:center;gap:7px;font-size:13px;display:flex}.review-chat-close{color:#9aa3af;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px}.review-chat-close:hover{color:var(--ink);background:#ffffff14}.review-chat-messages{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;overflow-y:auto}.review-chat-msg{flex-direction:column;gap:5px;max-width:92%;display:flex}.review-chat-msg--user{align-self:flex-end;align-items:flex-end}.review-chat-msg--assistant{align-self:flex-start}.review-chat-msg-head{color:#6b7280;align-items:center;gap:5px;font-size:12px;display:flex}.review-chat-msg--user .review-chat-msg-head{flex-direction:row-reverse}.review-chat-bubble{white-space:pre-wrap;word-break:break-word;border-radius:10px;padding:9px 12px;font-size:13px;line-height:1.55}.review-chat-msg--user .review-chat-bubble{color:#fff;background:#4f46e5;border-bottom-right-radius:3px}.review-chat-msg--assistant .review-chat-bubble{color:var(--ink);background:#23252c;border-bottom-left-radius:3px}.review-chat-proposed{background:#3fb95012;border:1px solid #3fb95055;border-radius:8px;margin-top:6px;padding:9px 11px}.review-chat-proposed-info{color:#7ee787;margin-bottom:7px;font-size:12px}.review-chat-apply-btn{width:100%}.review-chat-error{color:#ff9b95;background:#f8514914;border-top:1px solid #f8514933;padding:8px 14px;font-size:12px}.review-chat-input-row{border-top:1px solid var(--border);background:#1a1c22;gap:8px;padding:10px 12px;display:flex}.review-chat-input{resize:none;color:var(--ink);background:#15161a;border:1px solid #3a3e46;border-radius:8px;outline:none;flex:1;padding:8px 10px;font-family:inherit;font-size:13px}.review-chat-input:focus{border-color:#4f46e5}.review-chat-panel.qa-panel{width:560px}.qa-concept-bar{border-bottom:1px solid var(--border);background:#1a1c22;flex-direction:column;gap:6px;padding:8px 12px;display:flex}.qa-concept-toggle{color:#a5b4fc;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-size:12.5px;display:flex}.qa-concept-toggle b.qa-concept-count{color:#fff;background:#4f46e5;border-radius:8px;padding:0 6px;font-size:11px}.qa-caret{color:#6b7280;margin-left:auto;font-style:normal;transition:transform .15s}.qa-caret.open{transform:rotate(180deg)}.qa-concept-selected{flex-wrap:wrap;gap:5px;display:flex}.qa-chip{color:var(--ink);cursor:pointer;background:#23252c;border:1px solid #3a3e46;border-radius:999px;align-items:center;gap:4px;max-width:100%;padding:2.5px 9px;font-size:12px;display:inline-flex}.qa-chip:hover{border-color:#4f46e5}.qa-chip.active{color:#fff;background:#4f46e5;border-color:#4f46e5}.qa-concept-picker{flex-direction:column;gap:6px;display:flex}.qa-concept-search{color:#6b7280;border:1px solid #3a3e46;border-radius:7px;align-items:center;gap:6px;padding:4px 8px;display:flex}.qa-concept-search input{color:var(--ink);background:0 0;border:0;outline:none;flex:1;font-size:12px}.qa-concept-list{flex-wrap:wrap;align-content:flex-start;gap:5px;max-height:118px;display:flex;overflow-y:auto}.qa-concept-empty{color:var(--ink-muted);font-size:12px}.qa-coverage-row{color:#9aa3af;justify-content:space-between;align-items:center;gap:8px;font-size:11.5px;display:flex}.qa-filter-toggle{color:#9aa3af;cursor:pointer;background:0 0;border:1px solid #3a3e46;border-radius:6px;padding:2px 8px;font-size:11px}.qa-filter-toggle.active{color:#5eead4;background:#0d94883a;border-color:#0d9488}.qa-chip.covered{border-color:#2f5f43}.qa-chip.covered:after{content:"已覆盖";color:#34d399;margin-left:3px;font-size:10px}.qa-covered-dot{background:#34d399;border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}.qa-quick-row{background:#1a1c22;padding:6px 12px 0}.qa-quick-btn{padding:5px 10px;font-size:12px}.qa-proposed-cards{flex-direction:column;gap:6px;max-height:260px;margin-bottom:8px;display:flex;overflow-y:auto}.qa-proposed-card{background:#1b1d23;border:1px solid #3a3e46;border-radius:7px;padding:6px 9px}.qa-proposed-card-head{color:#9aa3af;gap:8px;margin-bottom:3px;font-size:11.5px;display:flex}.qa-proposed-card-head b{color:var(--ink);white-space:nowrap}.qa-proposed-card p{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.teacher-ai-edit-question{margin-bottom:8px;padding:4px 10px;font-size:12px}.teacher-layout{grid-template-columns:44px 230px minmax(420px,1fr) minmax(330px,390px);min-height:0;display:grid}.teacher-activity{border-right:1px solid var(--border);background:#17181b;flex-direction:column;display:flex}.teacher-activity button{color:#777e89;background:0 0;border:0;border-left:2px solid #0000;place-items:center;width:43px;height:45px;display:grid;position:relative}.teacher-activity button:hover,.teacher-activity button.active{color:var(--ink)}.teacher-activity button.active{border-left-color:var(--accent)}.teacher-explorer{border-right:1px solid var(--border);background:#1b1c20;flex-direction:column;min-width:0;display:flex;overflow:hidden}.teacher-pane-title{color:#bcc1c9;text-transform:uppercase;justify-content:space-between;align-items:center;min-height:34px;padding:0 10px 0 14px;font-size:12px;display:flex}.teacher-pane-title small{color:var(--ink-muted);font-size:12px}.teacher-chapters{border-bottom:1px solid var(--border);flex:0 auto;max-height:42%;overflow:auto}.teacher-chapters button{color:#999fa8;text-align:left;background:0 0;border:0;grid-template-columns:14px 36px minmax(0,1fr) 8px;align-items:center;gap:3px;width:100%;min-height:36px;padding:3px 10px;display:grid;position:relative}.teacher-chapters button:hover,.teacher-chapters button.active{color:var(--ink);background:#ffffff0a}.teacher-chapters button.active{box-shadow:inset 2px 0 var(--accent)}.teacher-chapters span{color:#7eb7f5;font:12px IBM Plex Mono}.teacher-chapters b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;overflow:hidden}.teacher-chapters i{border:1px solid #555b65;border-radius:50%;width:6px;height:6px}.teacher-chapters i.complete{border-color:var(--success);background:var(--success)}.teacher-chapters i.partial{background:#d19a66;border-color:#d19a66}.teacher-files{min-height:0;padding-bottom:12px;overflow:auto}.teacher-files button{color:#9fa5af;text-align:left;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;align-items:center;gap:6px;width:100%;height:28px;padding:0 12px 0 18px;font-size:12px;display:flex;overflow:hidden}.teacher-files button:hover,.teacher-files button.active{color:var(--ink);background:#ffffff0a}.teacher-files svg{color:#d98b45;flex:none}.teacher-replace-materials{color:#aeb5c0;cursor:pointer;background:#22252a;border:1px solid #3b414b;justify-content:center;align-items:center;gap:5px;min-height:32px;margin:auto 10px 10px;font-size:12px;display:flex}.teacher-sandbox{background:#191b20;border:1px solid #333842;border-radius:7px;flex-direction:column;gap:6px;margin:0 10px 10px;padding:8px 10px;display:flex}.teacher-sandbox-dot{border-radius:50%;width:7px;height:7px}.teacher-sandbox-dot.ready{background:#34d399}.teacher-sandbox-dot.partial{background:#f59e0b}.teacher-sandbox-dot.off{background:#6b7280}.teacher-sandbox-image{color:#9aa3af;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.teacher-sandbox-image b{color:var(--ink);font-weight:600}.teacher-sandbox-runtime{color:#8b93a0;flex-direction:column;gap:2px;font-size:11.5px;display:flex}.teacher-sandbox-runtime .ok{color:#34d399}.teacher-sandbox-runtime .building{color:#818cf8;align-items:center;gap:4px;display:inline-flex}.teacher-sandbox-runtime .fail{color:#f87171;cursor:help}.teacher-sandbox-form{gap:5px;display:flex}.teacher-sandbox-form input[type=text],.teacher-sandbox-form input:not([type]){min-width:0;height:26px;color:var(--ink);background:#14161b;border:1px solid #3b414b;border-radius:4px;flex:1;padding:0 7px;font-size:11.5px}.teacher-sandbox-form .ui-button{white-space:nowrap;min-height:26px;padding:0 8px;font-size:11.5px}.teacher-sandbox-actions{gap:5px;display:flex}.teacher-sandbox-actions .ui-button{min-height:24px;padding:0 8px;font-size:11.5px}.teacher-sandbox-files{color:#6f7784;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.repo-sandbox-chip{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:11px;display:inline-flex}.repo-sandbox-chip.default{color:#9aa3af;background:#1d2026;border-color:#3b414b}.repo-sandbox-chip.custom{color:#818cf8;background:#4f46e51a;border-color:#4f46e580}.debug-panel{background:var(--canvas);flex-direction:column;height:100%;min-height:0;display:flex}.debug-toolbar{border-bottom:1px solid var(--border);background:#14161b;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.debug-toolbar>svg{color:#818cf8;flex-shrink:0}.debug-toolbar select{max-width:240px;height:26px;color:var(--ink);background:#14161b;border:1px solid #3b414b;border-radius:4px;padding:0 6px;font-size:11.5px}.debug-toolbar .ui-button{gap:4px;min-height:26px;padding:0 9px;font-size:11.5px}.debug-sep{background:#2e333c;width:1px;height:18px;margin:0 3px}.debug-state{color:#9aa3af;white-space:nowrap;margin-left:auto;font-size:11.5px}.debug-body{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;display:grid}.debug-left{border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.debug-left-head{background:#17191f;border-bottom:1px solid #23262d;align-items:center;gap:6px;padding:5px 8px;display:flex}.debug-left-head select{min-width:0;height:26px;color:var(--ink);background:#14161b;border:1px solid #3b414b;border-radius:4px;flex:1;padding:0 6px;font-size:11.5px}.debug-left-head .ui-button{min-height:24px;padding:0 8px;font-size:11.5px}.debug-dirty{color:#f59e0b;white-space:nowrap;font-size:11px}.debug-dirty.hidden{visibility:hidden}.debug-editor{flex:1;min-height:0}.debug-empty{color:var(--ink-muted);padding:24px;font-size:12px;line-height:1.8}.debug-current-line{border-left:2px solid #f59e0b;background:#f59e0b2e!important}.debug-current-arrow{border-left:3px solid #f59e0b;margin-left:2px}.debug-bp-glyph:before{content:"●";color:#ef4444;margin-left:4px;font-size:13px;line-height:20px}.debug-right{flex-direction:column;min-height:0;display:flex}.debug-vars{background:#17191f;border-bottom:1px solid #23262d;flex-direction:column;gap:3px;max-height:150px;padding:7px 10px;font:11.5px/1.5 IBM Plex Mono,monospace;display:flex;overflow:auto}.debug-vars b{color:#9aa3af;font-size:11px;font-weight:600}.debug-vars span{color:var(--ink)}.debug-vars span i{color:#818cf8;font-style:normal}.debug-vars .muted{color:#5b636e}.debug-eval{background:#14161b;border-bottom:1px solid #23262d;align-items:center;gap:6px;padding:6px 10px;display:flex}.debug-eval input{min-width:0;height:26px;color:var(--ink);background:#14161b;border:1px solid #3b414b;border-radius:4px;flex:1;padding:0 7px;font:11.5px IBM Plex Mono,monospace}.debug-eval .ui-button{min-height:26px;padding:0 9px;font-size:11.5px}.debug-eval code{color:#34d399;text-overflow:ellipsis;white-space:nowrap;max-width:40%;font-size:11.5px;overflow:hidden}.debug-console{color:#c9d1d9;white-space:pre-wrap;word-break:break-all;background:#0d0f13;flex:1;margin:0;padding:8px 10px;font:11.5px/1.6 IBM Plex Mono,monospace;overflow:auto}.debug-console-head{color:#5b636e;align-items:center;gap:5px;margin-bottom:4px;display:inline-flex}.debug-note{border-top:1px solid var(--border);color:#f87171;background:#2d1f1f;padding:6px 10px;font-size:11.5px}.teacher-upload{flex-direction:column;gap:10px;padding:8px 12px;display:flex;overflow:auto}.teacher-upload label{color:var(--ink-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.teacher-upload input{border-radius:var(--radius-sm);min-width:0;color:var(--ink);background:#121316;border:1px solid #363a42;padding:7px;font-size:12px}.teacher-upload label small{color:#747b86;font-size:12px}.teacher-upload-mode{border:1px solid #363a42;grid-template-columns:1fr 1fr;display:grid}.teacher-upload-mode button{color:#858c97;cursor:pointer;background:#17191d;border:0;min-height:30px;font-size:12px}.teacher-upload-mode button.active{color:#fff;box-shadow:inset 0 -2px var(--accent);background:#2a3039}.teacher-editor{background:#151619;grid-template-rows:34px minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.teacher-editor.source-mode{display:block}.teacher-editor.source-mode .source-workbench-layout{height:100%}.teacher-markdown-view{grid-row:1/-1;grid-template-rows:34px 35px minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid;overflow:hidden}.teacher-markdown-toolbar{border-bottom:1px solid var(--border);background:#18191d;justify-content:flex-end;align-items:center;gap:7px;padding:0 9px;display:flex}.teacher-markdown-view .teacher-markdown-preview{overscroll-behavior:contain;max-width:none;padding:20px clamp(20px,5vw,64px) 60px;overflow:hidden auto}.teacher-markdown-view .teacher-markdown-preview>*{max-width:100%;margin-left:auto;margin-right:auto}.teacher-markdown-view .teacher-markdown-preview pre{white-space:pre-wrap;word-break:break-word;overflow:visible}.teacher-markdown-view .teacher-markdown-preview table{table-layout:fixed;word-break:break-word;width:100%;display:table;overflow:visible}.teacher-markdown-view .teacher-markdown-preview img{max-width:100%}.teacher-tabs{border-bottom:1px solid var(--border);background:#1b1c20;align-items:stretch;min-width:0;display:flex}.teacher-tabs button{border:0;border-right:1px solid var(--border);color:#8d939d;background:0 0;border-top:1px solid #0000;align-items:center;gap:5px;padding:0 12px;font-size:12px;display:flex}.teacher-tabs button.active{border-top-color:var(--accent);color:var(--ink);background:#151619}.teacher-tabs>span{text-overflow:ellipsis;white-space:nowrap;color:#6f7580;align-self:center;min-width:0;margin-left:auto;padding:0 12px;font-size:12px;overflow:hidden}.teacher-lines{padding:8px 0 40px;font:11px/19px IBM Plex Mono,monospace;overflow:auto}.teacher-lines>div{grid-template-columns:48px minmax(max-content,1fr);min-height:19px;display:grid}.teacher-lines>div:hover{background:#ffffff08}.teacher-lines button{color:#646a73;text-align:right;font:inherit;background:0 0;border:0;border-right:1px solid #282b31;padding-right:10px}.teacher-lines button:hover{color:#82baff;background:#2f81f716}.teacher-lines code{white-space:pre;color:#c9cdd4;padding-left:12px;display:block}.teacher-graph-view{padding:18px;overflow:auto}.teacher-graph-view header{justify-content:space-between;margin-bottom:12px;display:flex}.teacher-graph-view header span{color:var(--ink-muted);font-size:12px}.teacher-graph-view>div{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;display:grid}.teacher-graph-view>div button{border-radius:var(--radius-md);min-height:70px;color:var(--ink);text-align:left;background:#1d1f24;border:1px solid #30343b;grid-template-columns:20px 1fr;align-content:center;gap:3px 6px;padding:10px;display:grid}.teacher-graph-view>div button:hover{border-color:var(--accent)}.teacher-graph-view>div button span{color:var(--ink-muted);grid-column:2;font-size:12px;line-height:1.5}.teacher-inspector{border-left:1px solid var(--border);background:#1c1d21;min-width:0;min-height:0;overflow:auto}.teacher-inspector-tabs{z-index:2;border-bottom:1px solid var(--border);background:#1c1d21;grid-template-columns:1fr;height:35px;display:grid;position:sticky;top:0}.teacher-inspector-tabs button{color:var(--ink-muted);letter-spacing:.5px;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;font-size:12px}.teacher-inspector-tabs button:hover{color:var(--ink)}.teacher-inspector-tabs button.active{border-bottom-color:var(--accent);color:var(--ink)}.teacher-chapter-checklist{background:#17181b;border:1px solid #343840;grid-template-columns:1fr 1fr 1fr;gap:5px;margin:9px 10px 0;padding:8px;display:grid}.teacher-chapter-checklist b{color:#b9bec7;grid-column:1/-1;font-size:12px}.teacher-chapter-checklist span{color:#747b86;white-space:nowrap;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex}.teacher-chapter-checklist span.done{color:var(--success)}.teacher-chapter-checklist i{border:1px solid #555b65;border-radius:50%;width:9px;height:9px}.teacher-notice{border-radius:var(--radius-sm);border:1px solid #3a3e46;align-items:flex-start;gap:6px;margin:8px 10px 0;padding:8px;font-size:12px;line-height:1.5;display:flex}.teacher-notice.success{color:#8bd497;background:#3fb9500d;border-color:#3fb95055}.teacher-notice.error{color:#ff9b95;background:#f851490d;border-color:#f8514955}.teacher-form,.teacher-question-editor{flex-direction:column;gap:11px;padding:12px;display:flex}.teacher-form label,.teacher-question-editor label{color:#a7adb6;flex-direction:column;gap:4px;font-size:12px;display:flex}.teacher-form input,.teacher-form select,.teacher-form textarea,.teacher-question-editor input,.teacher-question-editor select,.teacher-question-editor textarea,.teacher-version{border-radius:var(--radius-sm);width:100%;min-width:0;color:var(--ink);resize:vertical;background:#141518;border:1px solid #373b43;padding:7px 8px;font-size:12px}.teacher-form small,.teacher-question-editor small{color:#747b86;line-height:1.5}.teacher-form-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.teacher-section-heading{align-items:center;gap:8px;display:flex}.teacher-section-heading b,.teacher-section-heading span{display:block}.teacher-section-heading span{color:var(--ink-muted);margin-top:2px;font-size:12px}.teacher-question-actions{gap:6px;display:flex}.teacher-question-actions>button{white-space:nowrap;flex:1;gap:4px;padding:0 8px;font-size:12px}.teacher-question-actions>button svg{flex-shrink:0}.teacher-question-nav{gap:3px;display:flex;overflow-x:auto}.teacher-question-nav button{min-width:34px;height:27px;color:var(--ink-muted);white-space:nowrap;background:0 0;border:1px solid #343840;font-size:12px}.teacher-question-nav button.active{border-color:var(--accent);color:var(--ink);background:#2f81f719}.teacher-question-nav button.danger{color:#db7772;margin-left:auto}.teacher-difficulty-row{align-items:center;gap:4px;margin:2px 0 4px;display:flex}.teacher-difficulty-label{color:var(--ink-muted);margin-right:2px;font-size:12px}.teacher-difficulty-btn{color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #343840;border-radius:3px;padding:3px 8px;font-size:12px}.teacher-difficulty-btn:hover:not(:disabled){border-color:#555}.teacher-difficulty-btn:disabled{opacity:.5;cursor:not-allowed}.teacher-difficulty-btn.diff-easy.active{color:#93c5fd;background:#3b82f626;border-color:#3b82f6}.teacher-difficulty-btn.diff-normal.active{color:#fcd34d;background:#f59e0b26;border-color:#f59e0b}.teacher-difficulty-btn.diff-hard.active{color:#fca5a5;background:#ef444426;border-color:#ef4444}.teacher-subheading{border-top:1px solid #2b2e34;justify-content:space-between;align-items:center;padding-top:4px;display:flex}.teacher-subheading b{font-size:12px}.teacher-subheading span{color:var(--ink-muted);font-size:12px}.teacher-evidence-list{flex-direction:column;gap:4px;display:flex}.teacher-evidence-list>div{background:#17181b;border:1px solid #343840;padding:6px 28px 6px 7px;position:relative}.teacher-evidence-list span,.teacher-evidence-list code{text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.teacher-evidence-list span{color:#82baff}.teacher-evidence-list code{color:var(--ink-muted);margin-top:3px}.teacher-evidence-list button{color:var(--danger);background:0 0;border:0;position:absolute;top:5px;right:4px}.teacher-rubric{border:1px solid #32363d;border-left:2px solid var(--accent);background:#18191d;flex-direction:column;gap:5px;padding:7px;display:flex}.teacher-rubric>div{grid-template-columns:1fr 58px 58px;align-items:center;gap:5px;display:grid}.teacher-rubric>div label{flex-direction:row;align-items:center}.teacher-rubric>div label input{width:auto}.teacher-normalize{color:#8cb4ff;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-left:auto;font-size:12px;display:inline-flex}.learning-mode-tabs{background:#303238;border-bottom:1px solid #303238;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:1px;display:grid}.learning-mode-tabs button{color:#858994;cursor:pointer;background:#1c1d21;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;height:42px;display:flex}.learning-mode-tabs button span{white-space:nowrap;font-size:12px}.learning-mode-tabs button:hover{color:#ddd;background:#24262b}.learning-mode-tabs button.active{box-shadow:inset 0 -2px var(--accent);color:#fff;background:#25272c}.learning-tutor-summary h3{color:#ddd;margin:5px 0 10px;font-size:13px}.assessment-sidebar h3{color:#ddd;margin:5px 0 14px;font-size:13px}.assessment-meta{background:#333;border:1px solid #333;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:16px;display:grid}.assessment-meta span{color:#888;text-align:center;background:#1d1e22;flex-direction:column;gap:3px;padding:8px 5px;font-size:12px;display:flex}.assessment-meta b{color:#ddd;font-size:14px}.assessment-question-nav{flex-direction:column;gap:2px;display:flex}.assessment-question-nav button{color:#aaa;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:22px 1fr;align-items:start;gap:7px;padding:7px;display:grid}.assessment-question-nav button span{color:#aaa;background:#292b30;place-items:center;width:20px;height:20px;font-size:12px;display:grid}.assessment-question-nav button b{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;font-weight:500;line-height:1.5;display:-webkit-box;overflow:hidden}.assessment-question-nav button.active{color:#fff;background:#24262b;border-color:#454b58}.assessment-question-nav button.active span{background:var(--accent);color:#fff}.assessment-workbench{background:#141518;min-width:0;padding:26px clamp(18px,4vw,52px) 40px;overflow:auto}.assessment-workbench>header{border-bottom:1px solid #303238;justify-content:space-between;align-items:center;max-width:860px;margin:0 auto 22px;padding-bottom:15px;display:flex}.assessment-workbench>header span{color:#858b98;font-size:12px}.assessment-workbench>header h2{color:#eee;letter-spacing:0;margin:5px 0 0;font-size:19px}.assessment-workbench>header em{color:#aaa;font-size:12px;font-style:normal}.assessment-prompt,.assessment-response,.assessment-result{max-width:860px;margin:0 auto}.assessment-prompt{padding:22px 0 20px}.assessment-prompt>span{color:#72a7ff;font-size:12px}.assessment-prompt h3{color:#f0f0f0;letter-spacing:0;margin:9px 0 18px;font-size:17px;line-height:1.7}.assessment-scope{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.assessment-scope b{color:#8d939f;margin-right:4px;font-size:12px}.assessment-scope code{color:#b7c7e8;background:#1c1e22;border:1px solid #34373e;padding:4px 7px;font-size:12px}.assessment-response{border-top:1px solid #303238;padding-top:18px}.assessment-evidence-heading{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.assessment-evidence-heading>div{flex-direction:column;gap:3px;display:flex}.assessment-evidence-heading b{color:#ddd;font-size:12px}.assessment-evidence-heading span{color:#777;font-size:12px}.assessment-response .evidence-chips{min-height:29px;margin-bottom:9px}.assessment-response .evidence-chips small{color:#666;font-size:12px}.assessment-response textarea{box-sizing:border-box;resize:vertical;color:#e4e4e4;width:100%;min-height:170px;font:inherit;background:#1b1c20;border:1px solid #383b43;border-radius:2px;outline:none;padding:12px;line-height:1.65}.assessment-response textarea:focus{border-color:#528bff}.assessment-submit{justify-content:space-between;align-items:center;margin-top:9px;display:flex}.assessment-submit>span{color:#777;font-size:12px}.assessment-result{background:#1b1c20;border:1px solid #41444c;border-left:3px solid #d19a66;margin-top:18px}.assessment-result.passed{border-left-color:#4ec9b0}.assessment-result>div{color:#d19a66;align-items:center;gap:10px;padding:13px;display:flex}.assessment-result.passed>div{color:#4ec9b0}.assessment-result>div span{flex-direction:column;flex:1;gap:3px;display:flex}.assessment-result>div b{color:#eee;font-size:13px}.assessment-result>div small{color:#888;font-size:12px}.assessment-result>div strong{font-size:22px}.assessment-result p{color:#aab6cf;border-top:1px solid #303238;gap:9px;margin:0;padding:12px;font-size:12px;line-height:1.6;display:flex}.assessment-result p span{flex-direction:column;gap:2px;display:flex}.assessment-result p b{color:#ddd;font-size:12px}.assessment-error{font-size:12px;color:#f48771!important}.assessment-empty{color:#666;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:60vh;display:flex}.assessment-empty b{color:#bbb;font-size:14px}.assessment-empty span{max-width:360px;font-size:12px;line-height:1.6}@media (width<=760px){.assessment-workbench{padding:18px 14px 80px}.assessment-workbench>header h2{font-size:16px}.assessment-prompt h3{font-size:15px}.assessment-submit{align-items:flex-end;gap:8px}}.teacher-remove,.teacher-add{color:var(--ink-muted);background:0 0;border:0;align-self:flex-start;align-items:center;gap:4px;font-size:12px;display:flex}.teacher-remove:hover{color:var(--danger)}.teacher-add:hover{color:var(--accent)}.teacher-empty{color:var(--ink-muted);text-align:center;margin:auto;padding:22px;font-size:12px;line-height:1.6}.teacher-status{color:#fff;background:#1966aa;align-items:center;gap:14px;padding:0 8px;font-size:12px;display:flex}.teacher-status span{align-items:center;gap:4px;display:flex}@media (width<=1050px){.teacher-layout{grid-template-columns:42px 205px minmax(360px,1fr) 330px}.teacher-topbar>div:first-child>span{display:none}}@media (width<=800px){.teacher-shell{grid-template-rows:auto auto 22px;height:auto;min-height:100dvh;overflow:auto}.teacher-topbar{flex-wrap:wrap;min-height:48px;padding:7px 10px}.teacher-course-state{width:100%;overflow-x:auto}.teacher-layout{grid-template-rows:240px minmax(480px,60vh) auto;grid-template-columns:42px minmax(0,1fr);display:grid}.teacher-activity{grid-row:1/4}.teacher-explorer{border-bottom:1px solid var(--border);grid-column:2}.teacher-editor{grid-column:2}.teacher-inspector{border-left:0;border-top:1px solid var(--border);grid-column:2;min-height:600px}}.repo-tree-wrap{background:var(--sidebar);flex:1;min-height:0;overflow:auto}.repo-tree{background:0 0;padding:2px 0 8px}.repo-node{width:100%;min-height:20px;color:var(--text);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:0;align-items:center;gap:4px;padding:0 8px 0 0;font:11.5px/20px system-ui,sans-serif;display:flex}.repo-node span{text-overflow:ellipsis;overflow:hidden}.repo-node svg{color:var(--muted);flex-shrink:0}.repo-node:hover{background:var(--surface-hover)}.repo-node.dir{font-weight:500}.repo-node.active{background:var(--surface-active);color:var(--bright)}.repo-node.active svg{color:var(--blue-light)}.repo-empty{color:var(--muted);font-size:12px;font-style:italic}.repo-loading{color:var(--muted);padding:6px 8px;font-size:12px}.repo-switch-row{align-items:center;gap:6px;padding:0 8px 6px;display:flex}.repo-select{border:1px solid var(--border);background:var(--surface);min-width:0;height:24px;color:var(--text);border-radius:4px;flex:1;padding:0 6px;font-size:12px}.repo-clone-box{gap:4px;padding:0 8px 6px;display:flex}.repo-clone-input{border:1px solid var(--border);background:var(--surface);min-width:0;height:24px;color:var(--text);border-radius:4px;padding:0 6px;font-size:12px}.repo-clone-input.repo-clone-name{flex:0 0 78px}.repo-clone-input:first-of-type{flex:1}.repo-clone-btn{align-items:center;gap:4px;height:24px;padding:0 8px;font-size:12px;display:inline-flex}.code-workbench.repo-file-view{grid-template-rows:35px 24px 35px minmax(0,1fr);position:relative}.repo-file-toast{z-index:5;pointer-events:none;background:#2d2d2d;border:1px solid #444;border-radius:4px;padding:4px 10px;font-size:12px;position:absolute;top:38px;right:12px}.md-view{color:#d4d4d4;max-width:900px;padding:14px 24px 48px;font-size:13px;line-height:1.7}.md-view h1,.md-view h2,.md-view h3,.md-view h4{color:#fff;margin:20px 0 10px;font-weight:600;line-height:1.3}.md-view h1{border-bottom:1px solid #333;padding-bottom:6px;font-size:22px}.md-view h2{border-bottom:1px solid #2a2a2a;padding-bottom:5px;font-size:18px}.md-view h3{font-size:15px}.md-view h4{color:#ccc;font-size:13px}.md-view p{margin:8px 0}.md-view a{color:#3794ff;text-decoration:none}.md-view a:hover{text-decoration:underline}.md-view ul,.md-view ol{margin:8px 0;padding-left:26px}.md-view li{margin:3px 0}.md-view code{color:#ce9178;background:#2a2a2a;border-radius:3px;padding:1px 5px;font-family:IBM Plex Mono,monospace;font-size:12px}.md-view pre{overscroll-behavior:auto;background:#1e1e1e;border:1px solid #333;border-radius:5px;margin:10px 0;padding:12px 14px;overflow:auto}.md-view pre code{color:#d4d4d4;background:0 0;padding:0;font-size:12px}.md-view blockquote{color:#aaa;background:#202020;border-left:3px solid #4ec9b0;margin:8px 0;padding:6px 14px}.md-view table{border-collapse:collapse;overscroll-behavior:auto;margin:10px 0;display:block;overflow-x:auto}.md-view th,.md-view td{text-align:left;border:1px solid #444;padding:5px 10px}.md-view th{color:#ddd;background:#2a2a2a}.md-view img{border-radius:4px;max-width:100%}.md-view hr{border:0;border-top:1px solid #333;margin:14px 0}.md-view strong{color:#fff}.md-view del{color:#888}.learning-workspace{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.phase-bar{background:var(--sidebar);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:8px 16px;display:flex;position:relative}.phase-track{flex:1;min-width:0;height:32px;display:flex}.phase-segment{color:#9ca3af;cursor:pointer;clip-path:polygon(0 0,calc(100% - 11px) 0,100% 50%,calc(100% - 11px) 100%,0 100%,11px 50%);background:#2a2a3a;border:0;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;margin-left:-11px;padding:0 18px 0 22px;font-size:12px;transition:background .15s,color .15s;display:inline-flex;position:relative}.phase-segment:first-child{clip-path:polygon(0 0,calc(100% - 11px) 0,100% 50%,calc(100% - 11px) 100%,0 100%);margin-left:0;padding-left:14px}.phase-segment:last-child{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,11px 50%)}.phase-seg-num{color:#ccc;background:#ffffff1a;border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;font-size:12px;display:inline-grid}.phase-seg-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.phase-segment.clickable:hover{color:#e5e7eb;background:#3a3a4e}.phase-segment.done{color:#bbf7d0;background:#166534}.phase-segment.done .phase-seg-num{color:#fff;background:#ffffff2e}.phase-segment.current{color:#fff;cursor:default;background:#4f46e5;font-weight:600}.phase-segment.current .phase-seg-num{color:#fff;background:#ffffff40}.phase-segment.locked{color:#4b5563;cursor:not-allowed;opacity:.7;background:#1f1f29}.phase-toast{z-index:50;color:#fecaca;background:#7f1d1d;border:1px solid #991b1b;border-radius:6px;align-items:center;gap:10px;padding:8px 14px;font-size:12px;animation:.15s ease-out toast-in;display:inline-flex;position:absolute;top:44px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.phase-toast button{color:#fecaca;cursor:pointer;background:0 0;border:0;padding:0;font-size:16px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.phase-swap-btn{color:#a5b4fc;cursor:pointer;background:0 0;border:1px solid #2a2a3a;border-radius:4px;flex-shrink:0;align-items:center;gap:4px;padding:5px 10px;font-size:12px;display:inline-flex}.phase-swap-btn:hover{background:#1c1c2a;border-color:#4f46e5}.dual-panel-grid{background:var(--bg);flex:1;grid-template-columns:1fr 6px 1fr;min-height:0;display:grid}.dual-panel{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.panel-divider{cursor:col-resize;background:var(--border);flex-shrink:0;width:6px;transition:background .15s;position:relative}.panel-divider:after{content:"";background:#555;border-radius:1px;width:2px;height:28px;transition:background .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.panel-divider:hover,.panel-divider.dragging{background:#4f46e5}.panel-divider:hover:after,.panel-divider.dragging:after{background:#a5b4fc;height:40px}.dual-panel-head{background:var(--sidebar);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.panel-type-select{color:#a5b4fc;cursor:pointer;background:#11111b;border:1px solid #2a2a3a;border-radius:4px;outline:none;flex:1;height:26px;padding:0 8px;font-size:12px}.panel-type-select:hover{border-color:#4f46e5}.dual-panel-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.panel-empty-state{color:#6b7280;text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:30px;display:flex}.panel-empty-state b{color:#ddd;font-size:15px}.panel-empty-state p{margin:0;font-size:13px}.panel-empty-state small{color:#555;max-width:280px;font-size:12px;line-height:1.5}.panel-error small{color:#fca5a5}.panel-textbook{flex-direction:column;height:100%;display:flex}.panel-textbook-head{background:var(--sidebar);border-bottom:1px solid var(--border);color:#ddd;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-size:12px;display:flex}.panel-textbook-body{flex:1;padding:18px 24px;overflow:auto}.panel-textbook-body .md-view{max-width:780px}.panel-repo{flex-direction:column;height:100%;display:flex}.panel-repo-head{background:var(--sidebar);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.panel-repo-tree{flex:1;padding:4px 0;overflow:auto}.panel-repo .code-workbench{flex:1;min-height:0}.panel-tutor{background:#1b1c20;flex-direction:column;height:100%;display:flex}.panel-tutor-head{color:#ddd;background:#1b1c20;border-bottom:1px solid #2b2e34;flex-shrink:0;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.phase-advance-btn{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:4px;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.phase-advance-btn:hover{background:#4338ca}.phase-tag-current{color:#facc15;background:#facc151f;border:1px solid #facc154d;border-radius:3px;margin-left:auto;padding:2px 8px;font-size:12px}.panel-tutor-body{flex:1;min-height:0;padding:14px;overflow:auto}.tutor-msg-row{margin-bottom:10px}.tutor-role-bot,.tutor-role-me{margin-bottom:2px;font-size:12px;display:block}.tutor-role-bot{color:#facc15}.tutor-role-me{color:#888}.tutor-bubble-bot,.tutor-bubble-me{word-break:break-word;border-radius:6px;padding:8px 10px;font-size:13px;line-height:1.55}.tutor-bubble-me{white-space:pre-wrap}.tutor-bubble-bot{color:#e5e7eb;background:#2a2d35}.tutor-bubble-me{color:#ddd;background:#373b43}.tutor-bubble-bot p{margin:0 0 6px}.tutor-bubble-bot p:last-child{margin-bottom:0}.tutor-bubble-bot ul,.tutor-bubble-bot ol{margin:4px 0 6px;padding-left:20px}.tutor-bubble-bot li{margin:2px 0}.tutor-bubble-bot h1,.tutor-bubble-bot h2,.tutor-bubble-bot h3{margin:8px 0 4px;font-size:14px}.tutor-bubble-bot code{background:#0000004d;border-radius:3px;padding:1px 4px;font-size:12px}.tutor-bubble-bot pre{background:#0000004d;border-radius:4px;margin:4px 0;padding:8px;overflow-x:auto}.tutor-bubble-bot pre code{background:0 0;padding:0}.tutor-thinking{color:#888;align-items:center;gap:4px;font-size:12px;display:inline-flex}.panel-tutor-input{border-top:1px solid #2b2e34;flex-direction:column;flex-shrink:0;gap:6px;padding:10px;display:flex}.panel-tutor-input textarea{color:#ddd;resize:none;background:#0f1014;border:1px solid #373b43;border-radius:6px;outline:none;width:100%;padding:8px;font-family:inherit;font-size:13px}.panel-tutor-input textarea:focus{border-color:#4f46e5}.panel-tutor-input .primary-button{align-self:flex-end;padding:6px 16px}.tutor-socratic-hint{color:#facc15;align-items:center;gap:4px;padding:2px 0;font-size:12px;display:flex}.tutor-qbar{background:#161719;border-bottom:1px solid #2b2e34;flex-direction:column;flex-shrink:0;gap:6px;padding:6px 10px;display:flex}.tutor-scorebar{color:#9ca3af;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.tutor-scorebar .assess-done{color:#86efac;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.score-chip{color:#9ca3af;white-space:nowrap;background:#1b1c20;border:1px solid #2b2e34;border-radius:10px;align-items:center;gap:3px;padding:2px 8px;display:inline-flex}.score-chip b{color:#e5e7eb;font-weight:600}.score-chip .score-met{color:#86efac}.score-chip.score-need{color:#fcd34d;background:#f59e0b1a;border-color:#f59e0b59}.score-chip.score-need b{color:#f59e0b}.score-chip.diff-easy{border-color:#3b82f666}.score-chip.diff-easy b{color:#93c5fd}.score-chip.diff-normal,.score-chip.diff-medium{border-color:#f59e0b66}.score-chip.diff-normal b,.score-chip.diff-medium b{color:#fcd34d}.score-chip.diff-hard{border-color:#ef444466}.score-chip.diff-hard b{color:#fca5a5}.score-progress{background:#0f1014;border:1px solid #2b2e34;border-radius:4px;flex:1;min-width:80px;height:8px;position:relative;overflow:visible}.score-progress-fill{background:linear-gradient(90deg,#4f46e5,#818cf8);border-radius:3px;transition:width .3s;position:absolute;top:0;bottom:0;left:0}.score-progress-mark{background:#f59e0b;width:2px;position:absolute;top:-2px;bottom:-2px;box-shadow:0 0 4px #f59e0b99}.assess-hint,.assess-error{color:#9ca3af;margin:0;font-size:12px}.assess-error{color:#fca5a5}.assess-qnav{flex-wrap:wrap;gap:4px;display:flex}.assess-qtab{color:#9ca3af;cursor:pointer;background:#1b1c20;border:1px solid #373b43;border-radius:4px;justify-content:center;align-items:center;width:26px;height:24px;font-size:12px;display:inline-flex}.assess-qtab:hover{border-color:#4f46e5}.assess-qtab.current{color:#fff;background:#4f46e5;border-color:#4f46e5}.assess-qtab.passed{color:#bbf7d0;background:#166534;border-color:#166534}.assess-qtab .qtab-diff{opacity:.8;margin-left:1px;font-size:12px}.assess-qtab.diff-easy{color:#93c5fd;border-color:#3b82f6}.assess-qtab.diff-normal,.assess-qtab.diff-medium{color:#fcd34d;border-color:#f59e0b}.assess-qtab.diff-hard{color:#fca5a5;border-color:#ef4444}.assess-qtab.diff-easy.current{color:#fff;background:#3b82f6;border-color:#3b82f6}.assess-qtab.diff-normal.current,.assess-qtab.diff-medium.current{color:#fff;background:#f59e0b;border-color:#f59e0b}.assess-qtab.diff-hard.current{color:#fff;background:#ef4444;border-color:#ef4444}.repo-back-btn{height:24px;padding:0 10px;font-size:12px;margin-left:auto!important}.flip-x{transform:scaleX(-1)}.edit-stage{background:var(--bg);flex-direction:column;height:100%;min-height:0;display:flex}.edit-stage-head{border-bottom:1px solid var(--border);background:var(--sidebar);flex-shrink:0}.edit-stage-title{color:#ddd;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.edit-stage-title b{font-size:13px}.edit-stage-tag{color:#6b7280;margin-left:6px;font-size:12px}.edit-stage-notice{color:#fde68a;background:#facc1514;border:1px solid #facc1559;border-radius:4px;align-items:flex-start;gap:8px;margin:0 12px 8px;padding:8px 10px;font-size:12px;line-height:1.6;display:flex}.edit-stage-notice b{color:#facc15}.edit-stage-notice code{background:#0f1014;border-radius:3px;padding:1px 4px;font-size:12px}.edit-stage-notice span{flex:1}.edit-open-repo-btn{flex-shrink:0;height:24px;padding:0 10px;font-size:12px}.edit-stage-dod{padding:0 12px 6px}.dod-toggle{color:#facc15;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:2px 0;font-size:12px;display:inline-flex}.dod-toggle:hover{text-decoration:underline}.edit-stage-dod-body{color:#c4b5fd;background:#161719;border:1px solid #2b2e34;border-radius:4px;max-height:180px;margin-top:4px;padding:8px 10px;font-size:12px;line-height:1.5;overflow-y:auto}.edit-stage-dod-body code{background:#0f1014;border-radius:3px;padding:1px 4px;font-size:12px}.edit-stage-actions{flex-wrap:wrap;align-items:center;gap:8px;padding:6px 12px 8px;display:flex}.edit-verify-btn{padding:5px 14px;font-size:12px}.edit-stage-hint{color:#6b7280;font-size:12px}.edit-stage-hint code{background:#0f1014;border-radius:3px;padding:1px 4px}.edit-result-badge{border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.edit-result-badge.passed{color:#86efac;background:#22c55e26}.edit-result-badge.failed{color:#fca5a5;background:#ef444426}.edit-stage-body{flex:1;min-height:0}.repo-explorer{background:var(--bg);flex-direction:column;height:100%;min-height:0;display:flex}.repo-explorer-code{flex-direction:column;flex:1;min-height:0;display:flex}.repo-explorer-code-head{background:var(--sidebar);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;display:flex}.repo-explorer-title{color:#ddd;white-space:nowrap;font-size:12px;font-weight:600}.repo-explorer-file{color:#888;white-space:nowrap;text-overflow:ellipsis;max-width:200px;margin-right:auto;font-family:IBM Plex Mono,monospace;font-size:12px;overflow:hidden}.repo-explorer-actions{align-items:center;gap:4px;display:flex}.repo-explorer-actions button{align-items:center;gap:3px;height:24px;padding:0 8px;font-size:12px;display:inline-flex}.repo-explorer-toast{flex-shrink:0;padding:4px 10px;font-size:12px}.repo-explorer-toast.ok{color:#86efac;background:#22c55e14}.repo-explorer-toast.err{color:#fca5a5;background:#ef444414}.repo-explorer-split{flex:1;min-height:0;display:flex}.repo-explorer-tree{border-right:1px solid var(--border);background:var(--sidebar);flex-shrink:0;width:160px;min-width:120px;max-width:220px;overflow:auto}.repo-explorer-editor{flex:1;min-width:0;position:relative}.repo-explorer-editor .monaco-host{position:absolute;inset:0}.repo-explorer-empty{color:#6b7280;flex-direction:column;justify-content:center;align-items:center;gap:6px;height:100%;display:flex}.repo-explorer-empty p{margin:0;font-size:13px}.repo-explorer-empty small{color:#555;font-size:12px}.repo-explorer-resizer{cursor:row-resize;background:var(--border);flex-shrink:0;height:6px;position:relative}.repo-explorer-resizer:after{content:"";background:#555;border-radius:2px;width:36px;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.repo-explorer-resizer:hover:after,.repo-explorer-resizer.dragging:after{background:#8ab4f8}.repo-explorer-resizer.dragging{background:#2a3a5a}.repo-explorer-terminal{background:#0f1014;flex-shrink:0;min-height:120px}.repo-explorer-output{flex-direction:column;height:100%;min-height:0;display:flex}.repo-explorer-output-head{color:#6b7280;background:#1c1d22;border-bottom:1px solid #2b2e34;flex-shrink:0;align-items:center;gap:6px;padding:3px 8px;display:flex}.repo-explorer-output-head small{color:#6b7280;font-size:12px}.repo-explorer-output-head .edit-result-badge{margin-left:auto}.repo-explorer-output-pre{color:#d1d5db;white-space:pre-wrap;word-break:break-word;flex:1;min-height:0;margin:0;padding:8px;font-family:IBM Plex Mono,monospace;font-size:12px;line-height:1.5;overflow-y:auto}.repo-explorer-output-cmd{color:#86efac;font-weight:600}.repo-explorer-output-placeholder{color:#6b7280}.browse-chapter-list{border-bottom:1px solid var(--border);flex-direction:column;padding:4px 0;display:flex}.browse-chapter-item{color:#bbb;cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:4px;padding:6px 14px;font-size:12px;display:flex}.browse-chapter-item:hover{color:#fff;background:#1f2026}.browse-chapter-item.active{color:#fff;background:#4f46e526;border-left:2px solid #4f46e5;padding-left:12px}.browse-chapter-item .rotated{transform:rotate(90deg)}.browse-chapter-item span{color:#6b7280;flex-shrink:0;font-family:IBM Plex Mono,monospace;font-size:12px}.browse-chapter-item b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:500;overflow:hidden}
