.student-course-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.student-course-card{background:#fff;border:1px solid #e1e7f0;border-radius:14px;flex-direction:column;gap:12px;padding:20px;transition:transform .15s,box-shadow .15s;display:flex}.student-course-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px #172b4d12}.student-course-card-top{color:#2f6bff;justify-content:space-between;align-items:center;display:flex}.student-course-card h2{letter-spacing:-.045em;margin:0;font-size:1.12rem}.student-course-card p{color:#6f7b91;min-height:38px;margin:0;font-size:.78rem;line-height:1.55}.course-progress{gap:7px;margin-top:auto;display:grid}.course-progress>div:first-child{color:#6f7b91;justify-content:space-between;font-size:.7rem;display:flex}.course-progress strong{color:#172033}.progress-track{background:#e9edf4;border-radius:8px;height:7px;overflow:hidden}.progress-track i{background:#2f6bff;border-radius:8px;height:100%;display:block}.student-course-meta{color:#6f7b91;justify-content:space-between;gap:8px;font-size:.68rem;display:flex}.student-course-meta span{align-items:center;gap:4px;display:flex}.student-course-layout{grid-template-columns:290px minmax(0,1fr);align-items:start;gap:20px;display:grid}.student-tree{padding:15px;position:sticky;top:20px}.student-tree-head{color:#2d62d4;align-items:center;gap:8px;padding:5px 7px 14px;font-size:.82rem;display:flex}.tree-module{border-top:1px solid #edf0f5;padding:13px 0 0}.tree-module h2{color:#526078;margin:0 7px 8px;font-size:.76rem}.tree-lesson,.tree-task{text-align:left;color:#526078;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.tree-lesson{padding:9px 7px;font-size:.75rem;font-weight:800}.tree-lesson>span,.tree-task>span{align-items:center;gap:6px;display:flex}.tree-lesson small{color:#8a94a5;font-size:.62rem;font-weight:600}.tree-lesson:hover,.tree-lesson.selected,.tree-task:hover,.tree-task.selected{color:#285ed4;background:#eef3ff}.tree-lesson.locked{color:#9aa4b3}.tree-task{padding:7px 7px 7px 26px;font-size:.7rem}.student-workspace{gap:16px;min-width:0;display:grid}.course-description{color:#6f7b91;max-width:620px;margin:9px 0 0;font-size:.78rem}.course-progress-pill{color:#285ed4;background:#edf2ff;border-radius:10px;align-items:center;gap:10px;padding:10px 13px;display:flex}.course-progress-pill strong{font-size:1.2rem}.course-progress-pill span{color:#526078;font-size:.68rem}.lesson-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.lesson-heading .due{align-items:center;gap:4px;display:flex}.lesson-content{min-height:300px}.lesson-content h2{margin:0 0 18px;font-size:1.4rem}.student-task{max-width:none}.student-task>p{white-space:pre-wrap}.reviewer-comment{color:#526078;background:#f2f6ff;border-left:3px solid #7ba5ff;padding:10px 13px;font-size:.76rem}.reviewer-comment strong{color:#315fc6}.reviewer-comment p{margin:5px 0 0;line-height:1.5}.locked-lesson,.unavailable-course{color:#6f7b91;place-items:start;gap:9px;display:grid}.locked-lesson h2,.unavailable-course h2{color:#172033;margin:0}.locked-lesson p,.unavailable-course p{margin:0;font-size:.8rem}.locked-lesson svg,.unavailable-course svg{color:#8a94a5}.empty-state{place-items:center;gap:7px;display:grid}.empty-state svg{color:#2f6bff}.empty-state p{margin:0}.runner-actions .runner-save:disabled{opacity:.55}@media (width<=1050px){.student-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-course-layout{grid-template-columns:1fr}.student-tree{position:static}}@media (width<=600px){.student-course-grid{grid-template-columns:1fr}.course-progress-pill{justify-content:center;width:100%}.student-course-meta{flex-wrap:wrap}.tree-lesson{padding:11px 7px}.lesson-content,.student-task{padding:18px}}.student-course-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));max-width:1120px}@media (width<=1050px){.student-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.student-course-grid{grid-template-columns:1fr}}.sidebar nav a.active{color:#fff;background:#29466f}.quick-actions{gap:9px;display:grid}.quick-actions a{justify-content:flex-start}.pagination{color:#6f7b91;justify-content:center;align-items:center;gap:16px;padding:18px 0 2px;font-size:.75rem;display:flex}.pagination button{min-height:35px}.attendance-tools{color:#6f7b91;justify-content:space-between;align-items:center;margin:14px 0;font-size:.75rem;display:flex}.entity-row{border-top:1px solid #edf0f5;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.entity-row strong{font-size:.82rem;display:block}.entity-row small{color:#6f7b91;margin-top:3px;font-size:.7rem;display:block}.row-actions{align-items:center;gap:2px;display:flex}.settings-form{gap:14px;display:grid}.settings-form h2,.panel>h2{letter-spacing:-.045em;margin:0 0 5px;font-size:1.1rem}.settings-form label{color:#526078;gap:7px;font-size:.76rem;font-weight:800;display:grid}.settings-form input,.editor-form input,.editor-form select,.editor-form textarea{color:#172033;border:1px solid #e1e7f0;border-radius:8px;padding:9px}.settings-form button{justify-self:start}.reset-form{background:#f7f9ff;border-radius:9px;padding:12px}.reset-form strong{font-size:.76rem}.review-detail{gap:12px;width:100%;display:grid}.review-code-grid{grid-template-columns:2fr 1fr 1fr;gap:9px;display:grid}.review-code-grid small{color:#6f7b91;margin-bottom:4px;font-size:.68rem;display:block}.review-code-grid pre{max-width:none;min-height:62px;margin:0;overflow:auto}.review-detail textarea{resize:vertical;border:1px solid #e1e7f0;border-radius:8px;width:100%;min-height:70px;padding:9px}.empty-state{text-align:center;color:#6f7b91;padding:22px;font-size:.8rem}.check-line{color:#6f7b91;align-items:center;gap:7px;font-size:.75rem;display:flex}.check-line input{accent-color:#2f6bff}.editor-form{background:#f8faff;border-radius:9px;padding:12px}.editor-lesson{display:block}.editor-lesson>.row-actions{justify-content:flex-end;margin-top:8px}.task-chip{color:#526078;background:#f2f5fa;border-radius:6px;align-items:center;gap:4px;width:max-content;max-width:100%;margin-top:4px;padding:4px 6px;font-size:.7rem;display:flex}.task-chip button{min-height:22px;padding:0 5px;font-size:.65rem}.add-form{border:1px dashed #c2ccdd;border-radius:8px;padding:11px}.add-form textarea{min-height:55px}.modal h2{margin:0}.import-label{cursor:pointer;width:max-content}.import-preview{background:#fbfcff;border:1px solid #e1e7f0;border-radius:9px;margin-top:10px;padding:12px;font-size:.74rem;line-height:1.8}.invalid-row{color:#b34d3d}.code-list{color:#176e56;background:#f2faf6;border-radius:9px;gap:5px;margin-top:10px;padding:12px;font-size:.78rem;display:grid}.code-list code{background:#fff;border-radius:5px;padding:3px 6px;font-family:Source Code Pro,monospace}.form-success,.form-error{margin:0 0 12px}.header-actions form{margin:0}.lesson-row .task-form{width:100%}*{box-sizing:border-box}body{color:#172033;background:#f4f7fb;min-width:320px;margin:0;font-family:Manrope,Inter,system-ui,sans-serif}button{cursor:pointer}a{color:inherit;text-decoration:none}.inline-form{flex-wrap:wrap;align-items:center;gap:9px;margin:14px 0;display:flex}.inline-form input,.course-nav input{color:#172033;border:1px solid #e1e7f0;border-radius:9px;flex:1;min-width:160px;padding:10px 12px}.course-nav form{gap:9px;margin-bottom:18px;display:grid}.content-card{border-top:1px solid #e1e7f0;padding:18px 0}.content-card h3{margin:0;font-size:1rem}.runner-save{color:#aebfdc}.review-card pre{white-space:pre-wrap;background:#f4f6fa;border-radius:7px;max-width:550px;padding:9px;font-size:.72rem}.editor-input{border:1px solid #e1e7f0;border-radius:8px;margin-bottom:8px;padding:9px;font-size:1.2rem;font-weight:800;display:block}.editor-title textarea,.lesson-form textarea,.task-form textarea{resize:vertical;border:1px solid #e1e7f0;border-radius:8px;width:100%;min-height:70px;padding:9px;display:block}.assignment-box{background:#f5f8ff;border-radius:9px;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0;padding:12px;font-size:.75rem;display:flex}.assignment-box label{align-items:center;gap:5px;display:flex}.lesson-form,.task-form{gap:8px;margin:12px 0;display:grid}.lesson-form input,.lesson-form select,.task-form input{border:1px solid #e1e7f0;border-radius:8px;padding:9px}.content-heading{justify-content:space-between;align-items:center;display:flex}.markdown-preview{background:#fbfcfe;border:1px solid #e1e7f0;border-radius:8px;padding:12px;font-size:.82rem;line-height:1.5}.markdown-preview img{max-width:100%;height:auto}.markdown-preview p{margin:5px 0}.form-success{color:#168567;font-size:.8rem}.breadcrumbs{color:#8b95a6;align-items:center;gap:9px;margin-bottom:16px;font-size:.72rem;display:flex}.page-description{color:var(--muted);max-width:640px;margin:8px 0 0;font-size:.8rem;line-height:1.55}.state-card{min-height:120px;color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:22px;font-size:.8rem;display:flex}.state-card strong{color:var(--ink);font-size:.84rem}.state-card p{margin:6px 0 12px;line-height:1.5}.state-card.empty-state{text-align:center;gap:5px;display:grid}.error-state{color:#b34d3d;background:#fff8f6;border:1px solid #f2d7d2;border-radius:12px;justify-content:flex-start;margin-bottom:16px}.error-state svg{flex:none}.error-state .secondary{margin-top:3px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{z-index:50;color:#fff;background:#172b4d;border-radius:11px;align-items:center;gap:9px;max-width:min(420px,100vw - 32px);padding:13px 15px;font-size:.78rem;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 15px 40px #172b4d2e}.toast-success svg{color:#8ce2c1}.toast-error svg{color:#ffb8a8}.toast button{color:#cdd9ef;background:0 0;border:0;place-items:center;margin-left:auto;display:grid}.confirm-dialog{gap:11px}.confirm-dialog p{color:var(--muted);margin:0;font-size:.82rem;line-height:1.55}.danger{color:#fff;background:#b34d3d;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 15px;font-size:.84rem;font-weight:800;display:inline-flex}.danger:hover{background:#9f4032}.danger-icon{color:#b34d3d!important}.field-label{color:#526078;gap:7px;font-size:.75rem;font-weight:800;display:grid}.student-form{grid-template-columns:1.4fr 1fr 1fr auto;align-items:end;gap:12px;display:grid}.student-form label,.selection-grid label,.filter-panel label{color:#526078;gap:7px;font-size:.75rem;font-weight:800;display:grid}.student-form input,.student-form select,.selection-grid select,.filter-panel select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:9px;padding:11px 12px}.group-panels h2{margin:0}.subgroup-pill{color:#2b61d6;background:#eef3ff;border-radius:999px;margin:8px 5px 0 0;padding:4px 8px;font-size:.65rem;font-weight:800;display:inline-flex}.selection-grid{grid-template-columns:1fr 2fr;gap:14px;margin-bottom:18px;display:grid}.attendance-list{border-top:1px solid var(--line);margin:4px 0 18px;display:grid}.attendance-number{color:#2b61d6;background:#eaf0ff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:.72rem;font-weight:800;display:grid}.attendance-row{grid-template-columns:35px 1fr auto 22px;padding:13px 0}.attendance-row input{grid-area:1/4}.present-label{color:var(--green);font-size:.7rem}.absent-label{color:#b34d3d;font-size:.7rem}.filter-panel{margin-bottom:16px}.filter-panel .filters{grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin:0;display:grid}.review-card-expanded{align-items:stretch}.review-meta{align-items:center;gap:12px;display:flex}.table-tools h2{letter-spacing:-.04em;margin:0;font-size:1rem}.table-tools .eyebrow{margin:0 0 3px}.table-tools{align-items:end}.table-wrap table td,.table-wrap table th{vertical-align:middle}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #8ab0ff}@media (width<=900px){.student-form{grid-template-columns:1fr 1fr}.student-form button{grid-column:1/-1}.selection-grid,.filter-panel .filters,.course-layout{grid-template-columns:1fr}.course-nav{display:block}.course-nav form{grid-template-columns:1fr auto;align-items:end}.course-nav form .field-label{grid-column:1/-1}.review-actions{flex-wrap:wrap}.review-actions button{flex:150px}}@media (width<=600px){.breadcrumbs{margin-bottom:10px}.toast{bottom:16px;right:16px}.student-form{grid-template-columns:1fr}.student-form button{grid-column:auto}.group-panels{grid-template-columns:1fr}.table-tools{align-items:stretch;gap:12px;display:grid}.table-tools .filters{grid-template-columns:1fr;display:grid}.header-actions{width:100%}.course-nav form{grid-template-columns:1fr}.course-nav form button{width:100%}.editor-title{gap:15px;display:grid}.assignment-box{align-items:start;display:grid}.review-code-grid{grid-template-columns:1fr}.review-meta{flex-direction:column;align-items:flex-start;gap:6px}.review-template-form{grid-template-columns:1fr}.review-template-form button{width:100%}.review-comment-tools{flex-direction:column;align-items:stretch}.review-comment-tools select{width:100%}}.review-status{border:1px solid #0000}.review-status.rejected,.badge.rejected{color:#b34d3d;background:#fff0ee}.field-error{color:#b34d3d;margin:0;font-size:.74rem;line-height:1.45}.review-actions .danger{min-height:42px}.review-actions button:disabled{opacity:.55;cursor:not-allowed}.scope-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.scope-group-card{gap:18px;display:grid}.scope-card-title{align-items:flex-start;gap:12px;display:flex}.scope-icon{color:#2f6bff;background:#edf2ff;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.scope-card-title h2{color:var(--ink);letter-spacing:-.03em;margin:0;font-size:1rem}.scope-card-title p{color:var(--muted);margin:4px 0 0;font-size:.73rem}.scope-subgroups{border-top:1px solid var(--line);flex-wrap:wrap;gap:7px;padding-top:14px;display:flex}.scope-subgroups .subgroup-pill{align-items:center;gap:5px;margin:0;display:inline-flex}.scope-muted{color:var(--muted);font-size:.72rem}.review-templates-panel{gap:12px;margin-bottom:16px;display:grid}.review-templates-panel .panel-heading{margin-bottom:0}.review-template-form{grid-template-columns:minmax(180px,.8fr) minmax(280px,1.6fr) auto;align-items:end;gap:10px;display:grid}.review-template-form label{color:var(--muted);gap:7px;font-size:.75rem;font-weight:800;display:grid}.review-template-form input,.review-template-form textarea{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:9px;padding:10px 12px;font-weight:500}.review-template-form textarea{resize:vertical;min-height:42px}.review-template-list{flex-wrap:wrap;gap:8px;display:flex}.review-template-chip{border:1px solid var(--line);color:var(--ink);background:#f8faff;border-radius:999px;align-items:center;gap:8px;padding:4px 6px 4px 11px;font-size:.72rem;display:flex}.review-template-chip button{min-height:28px;padding:0 8px;font-size:.68rem}.review-comment-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.review-comment-tools select{border:1px solid var(--line);color:var(--ink);background:#f8faff;border-radius:8px;padding:7px 9px;font-size:.72rem;font-weight:700}.review-comment-tools span{color:var(--muted);font-size:.68rem;font-weight:500}@media (width<=600px){.scope-grid{grid-template-columns:1fr}}.gradebook-filters{margin-bottom:16px}.gradebook-filters .filters{grid-template-columns:minmax(260px,1.5fr) repeat(2,minmax(190px,1fr))}.gradebook-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.gradebook-summary>div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:6px;padding:15px 17px;display:grid}.gradebook-summary span{color:var(--muted);font-size:.71rem;font-weight:700}.gradebook-summary strong{color:var(--ink);letter-spacing:-.04em;font-size:1.25rem}.gradebook-panel{padding:0;overflow:hidden}.gradebook-hint{border-bottom:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:14px;padding:14px 17px;font-size:.71rem;line-height:1.45;display:flex}.gradebook-legend{white-space:nowrap;align-items:center;gap:6px;display:flex}.gradebook-legend i{border-radius:50%;width:8px;height:8px;display:inline-block}.gradebook-legend i.is-approved{background:#47b58b}.gradebook-legend i.is-revision{background:#d59a2e}.gradebook-legend i.is-pending{background:#6a8bea}.gradebook-table-wrap{width:100%;overflow:auto}.gradebook-table{border-collapse:separate;border-spacing:0;min-width:980px}.gradebook-table th,.gradebook-table td{vertical-align:middle;white-space:nowrap;border-bottom:1px solid #edf1f7;padding:11px 10px;font-size:.72rem}.gradebook-table thead th{z-index:2;color:#71809a;text-transform:uppercase;letter-spacing:.08em;text-align:left;background:#f8faff;font-size:.64rem;position:sticky;top:0}.gradebook-table tbody tr:hover{background:#fbfcff}.gradebook-student-col{z-index:1;text-align:left;background:#fff;min-width:180px;position:sticky;left:0}.gradebook-table thead .gradebook-student-col{z-index:4;background:#f8faff}.gradebook-group-col{color:#66758e;min-width:125px}.gradebook-task-col{min-width:138px;max-width:190px}.gradebook-task-col a{color:var(--ink);text-transform:none;letter-spacing:0;gap:5px;display:grid}.gradebook-task-col a:hover{color:#2f6bff}.gradebook-task-col span{text-overflow:ellipsis;max-width:170px;overflow:hidden}.gradebook-task-col small,.gradebook-student-col small,.gradebook-total-col small{color:var(--muted);text-transform:none;letter-spacing:0;font-size:.63rem;font-weight:500;display:block}.gradebook-student-col a{color:var(--ink);text-transform:none;letter-spacing:0;gap:4px;display:grid}.gradebook-student-col a:hover strong{color:#2f6bff}.gradebook-total-col{min-width:95px}.gradebook-cell{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:5px;min-width:78px;min-height:30px;padding:5px 7px;display:inline-flex}.gradebook-cell strong{color:var(--ink);font-size:.74rem}.gradebook-cell strong em{color:var(--muted);font-size:.63rem;font-style:normal;font-weight:600}.gradebook-cell small{font-size:.63rem;font-weight:800}.gradebook-cell svg{color:#597198;flex:none}.gradebook-cell.is-approved{background:#eaf8f1;border-color:#d4f0e3}.gradebook-cell.is-approved small,.gradebook-cell.is-approved strong{color:#1e8765}.gradebook-cell.is-pending{background:#edf3ff;border-color:#dce7ff}.gradebook-cell.is-pending small{color:#406fd6}.gradebook-cell.is-revision{background:#fff6e6;border-color:#f9e7bf}.gradebook-cell.is-revision small{color:#a16b16}.gradebook-cell.is-rejected{background:#fff0ee;border-color:#f6d8d3}.gradebook-cell.is-rejected small{color:#b34d3d}.gradebook-cell.is-not-started{background:#f5f7fb;border-color:#e9edf4}.gradebook-cell.is-not-started small{color:#8b97aa}.gradebook-cell-empty{color:#a3adbd}.gradebook-late{color:#9a6714;background:#fff0d0;border-radius:50%;place-items:center;width:14px;height:14px;font-size:.58rem;font-style:normal;font-weight:900;display:grid}.gradebook-progress{grid-template-columns:minmax(50px,1fr) auto;align-items:center;gap:7px;min-width:82px;display:grid}.gradebook-progress>span{background:#e8edf5;border-radius:999px;height:5px;overflow:hidden}.gradebook-progress>span i{border-radius:inherit;background:#477cff;height:100%;display:block}.gradebook-progress strong{color:var(--ink);font-size:.68rem}@media (width<=900px){.gradebook-filters .filters{grid-template-columns:1fr 1fr}.gradebook-filters .filters label:first-child{grid-column:1/-1}.gradebook-hint{flex-direction:column;align-items:flex-start;gap:8px}.gradebook-legend{white-space:normal}.gradebook-student-col{min-width:160px}}@media (width<=600px){.gradebook-filters .filters{grid-template-columns:1fr}.gradebook-filters .filters label:first-child{grid-column:auto}.gradebook-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gradebook-summary>div{padding:12px}.gradebook-table{min-width:860px}.gradebook-table th,.gradebook-table td{padding:9px 8px}}.integrity-review-panel{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.integrity-toggle{color:#315fc6;background:#f7f9fd;justify-content:flex-start;width:100%;min-height:38px;padding:8px 10px}.integrity-toggle svg:last-child{margin-left:auto;transition:transform .15s}.integrity-toggle[aria-expanded=true] svg:last-child{transform:rotate(180deg)}.integrity-detail{background:#fbfcff;border:1px solid #e5ebf5;border-radius:11px;gap:12px;margin-top:10px;padding:14px;display:grid}.integrity-metrics{flex-wrap:wrap;gap:8px;display:flex}.integrity-metrics span{color:#64728a;background:#f0f4fb;border-radius:7px;padding:6px 8px;font-size:.7rem}.integrity-metrics strong{color:var(--ink)}.integrity-reasons{color:#53617a;gap:5px;margin:0;padding-left:18px;font-size:.74rem;line-height:1.45;display:grid}.integrity-timeline{gap:5px;max-height:160px;padding-right:4px;display:grid;overflow:auto}.integrity-timeline span{color:#596880;justify-content:space-between;gap:10px;font-size:.7rem;display:flex}.integrity-timeline small{color:#8a95a8}.integrity-disclaimer{color:#7a879b;margin:0;font-size:.7rem;line-height:1.45}.integrity-badge{align-items:center;gap:4px;display:inline-flex}.integrity-normal{color:#1b805f;background:#e7f7ef}.integrity-signals{color:#a96f0e;background:#fff2dc}.integrity-review{color:#b34d3d;background:#ffe7e3}.review-score-field{max-width:220px;margin:14px 0 8px}.review-score-field input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:9px;padding:10px 12px}.review-score-field small{color:var(--muted);font-size:.68rem;font-weight:500}.score-badge{color:#2b61d6;background:#eaf0ff}.review-rubric{background:#f8faff;border:1px solid #dbe5f5;border-radius:11px;gap:8px;margin:14px 0;padding:13px;display:grid}.review-rubric-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.review-rubric-heading div{gap:3px;display:grid}.review-rubric-heading strong{color:var(--ink);font-size:.77rem}.review-rubric-heading small{color:var(--muted);font-size:.66rem;font-weight:500}.review-rubric-heading>strong{color:#285ed4;white-space:nowrap}.review-rubric-row{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:minmax(0,1fr) 76px auto;align-items:center;gap:7px;padding:10px;display:grid}.review-rubric-row span{gap:3px;min-width:0;display:grid}.review-rubric-row strong{color:var(--ink);font-size:.72rem}.review-rubric-row small{color:var(--muted);font-size:.64rem;line-height:1.35}.review-rubric-row input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;border-radius:7px;padding:8px}.review-rubric-row em{color:var(--muted);font-size:.68rem;font-style:normal}:root{--ink:#172033;--muted:#6f7b91;--navy:#172b4d;--blue:#2f6bff;--line:#e1e7f0;--panel:#fff;--green:#168567}.auth-page{background:#fff;grid-template-columns:minmax(380px,1.12fr) minmax(420px,.88fr);min-height:100vh;display:grid}.auth-intro{background:var(--navy);color:#f7faff;flex-direction:column;justify-content:space-between;min-height:100vh;padding:48px clamp(34px,7vw,112px);display:flex;position:relative;overflow:hidden}.auth-intro:after{content:"";border:1px solid #bdd3ff29;border-radius:50%;width:440px;height:440px;position:absolute;bottom:-190px;right:-220px;box-shadow:0 0 0 70px #bdd3ff0a,0 0 0 140px #bdd3ff06}.brand{z-index:1;align-items:center;gap:10px;font-size:1.05rem;font-weight:800;display:flex;position:relative}.brand-mark{background:var(--blue);color:#fff;border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.auth-intro h1{letter-spacing:-.065em;max-width:660px;margin:.5rem 0 1.2rem;font-size:clamp(2.5rem,5vw,4.7rem);line-height:1.04}.eyebrow{text-transform:uppercase;letter-spacing:.11em;color:var(--muted);margin:0 0 .55rem;font-size:.7rem;font-weight:800}.auth-intro .eyebrow{color:#94b4ef}.intro-copy{color:#c0ceea;max-width:480px;font-size:1.05rem;line-height:1.7}.intro-stat{z-index:1;align-items:center;gap:16px;display:flex;position:relative}.intro-stat strong{color:#82a9ff;letter-spacing:-.06em;font-size:3.2rem}.intro-stat span{color:#c0ceea;font-size:.85rem;line-height:1.4}.auth-card{place-items:center;padding:44px;display:grid}.auth-card-inner{width:100%;max-width:388px}.auth-card h2{letter-spacing:-.05em;margin:0 0 2rem;font-size:2rem}.role-switch{background:#f0f3f8;border-radius:12px;grid-template-columns:1fr 1fr;margin-bottom:28px;padding:4px;display:grid}.role-switch button{color:var(--muted);background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:11px 8px;font-size:.84rem;font-weight:700;display:flex}.role-switch .selected{color:var(--ink);background:#fff;box-shadow:0 2px 8px #182c5510}.auth-card form{gap:17px;display:grid}.auth-card label,.modal label{color:#4b5870;gap:8px;font-size:.82rem;font-weight:700;display:grid}.auth-card input,.modal input,.modal select{border:1px solid var(--line);color:var(--ink);border-radius:10px;outline:none;padding:13px 14px}.auth-card input:focus,.modal input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2f6bff16}.primary,.secondary,.ghost{border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 15px;font-size:.84rem;font-weight:800;display:inline-flex}.primary{background:var(--blue);color:#fff;box-shadow:0 5px 13px #2f6bff2b}.primary:hover{background:#245de5}.secondary{color:#2659cb;background:#edf2ff}.ghost{color:#53617a;background:0 0}.ghost:hover{background:#f1f4f8}.auth-submit{width:100%;margin-top:6px}.auth-hint{color:var(--muted);margin:17px 0 0;font-size:.76rem;line-height:1.55}.form-error{color:#b34d3d;margin:0;font-size:.8rem}.app-shell{min-height:100vh;display:flex}.sidebar{color:#d6e0f3;z-index:5;background:#152746;flex-direction:column;width:245px;padding:28px 16px;display:flex;position:fixed;inset:0 auto 0 0}.side-brand{color:#fff;margin-bottom:38px;padding:0 11px}.side-top{align-items:center;display:flex}.close-menu,.mobile-menu{display:none}.sidebar nav{gap:5px;display:grid}.sidebar nav a{color:#aebfdc;border-radius:9px;align-items:center;gap:12px;padding:11px 12px;font-size:.86rem;font-weight:700;display:flex}.sidebar nav a:hover,.sidebar nav .nav-active{color:#fff;background:#29466f}.side-bottom{margin-top:auto}.profile{align-items:center;gap:10px;padding:13px 10px;display:flex}.profile strong{color:#fff;font-size:.78rem;display:block}.profile small{color:#aebfdc;font-size:.67rem}.avatar{color:#245bd8;background:#dce7ff;border-radius:50%;flex:none;place-items:center;width:35px;height:35px;font-size:.72rem;font-weight:800;display:grid}.avatar.coral{color:#c6533d;background:#ffe3df}.avatar.blue{color:#2d63da;background:#e5edff}.sign-out{color:#aebfdc;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:12px 10px;font-size:.82rem;font-weight:700;display:flex}.workspace{width:calc(100% - 245px);max-width:1600px;margin-left:245px;padding:42px clamp(26px,4.6vw,76px)}.page-header{justify-content:space-between;align-items:end;gap:22px;margin-bottom:32px;display:flex}.page-header h1{letter-spacing:-.06em;margin:0;font-size:clamp(1.85rem,3.4vw,2.7rem);line-height:1.05}.header-actions{gap:9px;display:flex}.metrics{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px;display:grid}.metric{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;min-height:138px;padding:21px;display:flex}.metric strong{letter-spacing:-.07em;font-size:2rem}.metric span{color:#516078;margin-top:7px;font-size:.78rem}.metric small{color:var(--muted);margin-top:auto;font-size:.7rem}.metric .positive{color:var(--green)}.two-col{grid-template-columns:1.18fr .82fr;gap:22px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:14px;padding:24px}.panel-heading{justify-content:space-between;align-items:start;gap:15px;margin-bottom:20px;display:flex}.panel-heading h2,.editor h2,.modal h2,.attendance h2,.review-card h2,.student-progress h2{letter-spacing:-.045em;margin:0;font-size:1.2rem}.panel-heading a{color:#2b61d6;align-items:center;gap:3px;font-size:.76rem;font-weight:800;display:flex}.lesson-list{display:grid}.lesson-row{border-top:1px solid #edf0f5;align-items:center;gap:12px;padding:12px 0;display:flex}.lesson-index{color:#2c62dc;background:#eef3ff;border-radius:8px;flex:none;place-items:center;width:30px;height:30px;font-size:.75rem;font-weight:800;display:grid}.lesson-index.locked{color:#8f98a7;background:#f2f3f5}.lesson-row div{flex:1;gap:3px;display:grid}.lesson-row strong,.editor-lessons strong{font-size:.82rem}.lesson-row small,.editor-lessons small{color:var(--muted);font-size:.69rem}.badge{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:.67rem;font-weight:800}.badge.success{color:#168567;background:#e5f7f0}.badge.muted{color:#758095;background:#eff1f4}.badge.warning{color:#a96f0e;background:#fff2dc}.attention-item{border-top:1px solid #edf0f5;align-items:center;gap:11px;padding:15px 0;display:flex}.attention-item div{flex:1}.attention-item strong{font-size:.82rem;display:block}.attention-item small{color:var(--muted);font-size:.68rem}.table-panel{padding:0;overflow:hidden}.table-tools{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.tabs{gap:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:8px 11px;font-size:.76rem;font-weight:800}.tabs .tab-active{color:#285ed4;background:#eaf0ff}.table-wrap{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%}th{text-transform:uppercase;letter-spacing:.07em;color:#7c8799;white-space:nowrap;background:#f9fafc;padding:13px 20px;font-size:.65rem}td{color:#526078;white-space:nowrap;border-top:1px solid #edf0f5;padding:15px 20px;font-size:.78rem}td strong{color:var(--ink);font-size:.8rem;display:block}td small{color:var(--muted);margin-top:3px;font-size:.68rem;display:block}td code{color:#34425c;background:#f2f5fa;border-radius:5px;padding:5px 7px;font-family:Source Code Pro,monospace;font-size:.7rem}.progress-cell{color:#50607a;align-items:center;gap:9px;font-size:.75rem;display:flex}.progress-cell>span{background:#e9edf4;border-radius:10px;width:83px;height:6px;display:block;overflow:hidden}.progress-cell i{background:var(--blue);border-radius:10px;height:100%;display:block}.modal-backdrop{z-index:20;background:#14284774;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;gap:16px;width:min(440px,100%);padding:30px;display:grid;position:relative;box-shadow:0 24px 70px #1428473c}.modal-close{color:var(--muted);background:0 0;border:0;position:absolute;top:13px;right:13px}.course-layout{grid-template-columns:280px 1fr;gap:22px;display:grid}.course-nav h2{letter-spacing:-.05em;margin:0 0 20px;font-size:1.28rem}.module-tree{gap:4px;display:grid}.module-item{text-align:left;color:#536078;background:0 0;border:0;border-radius:8px;justify-content:space-between;gap:7px;padding:11px;font-size:.78rem;font-weight:700;display:flex}.module-item span{color:#929dad;font-size:.65rem;font-weight:600}.module-item.selected{color:#265fd7;background:#eaf0ff}.add-line{color:#2e65d9;background:0 0;border:0;align-items:center;gap:5px;padding:18px 10px 0;font-size:.75rem;font-weight:800;display:flex}.editor-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:start;padding-bottom:18px;display:flex}.publish-toggle{border:0}.editor-lessons{display:grid}.editor-lessons article{border-bottom:1px solid #edf0f5;align-items:center;gap:12px;padding:17px 0;display:flex}.editor-lessons article div{flex:1;gap:4px;display:grid}.add-lesson{color:#315fc5;background:#f9fbff;border:1px dashed #aebbd2;border-radius:9px;justify-content:center;gap:6px;width:100%;margin-top:18px;padding:11px;font-size:.78rem;font-weight:800;display:flex}.lesson-note{color:#52627d;background:#f3f7ff;border-radius:9px;gap:9px;margin-top:20px;padding:13px;font-size:.74rem;line-height:1.5;display:flex}.review-stack{gap:12px;display:grid}.review-card{border:1px solid var(--line);background:#fff;border-radius:13px;justify-content:space-between;align-items:center;gap:18px;padding:20px;display:flex}.review-main{align-items:center;gap:13px;display:flex}.review-main h2{font-size:.96rem}.review-main p:not(.eyebrow){color:var(--muted);margin:5px 0 0;font-size:.76rem}.review-actions{gap:8px;display:flex}.attendance{max-width:760px}.attendance-info{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;padding-bottom:17px;display:flex}select{border:1px solid var(--line);color:#425069;background:#fff;border-radius:8px;padding:9px;font-size:.76rem}.attendance-row{border-bottom:1px solid #edf0f5;grid-template-columns:38px 1fr auto 18px 105px;align-items:center;gap:11px;padding:14px 0;font-size:.8rem;display:grid}.attendance-row span:nth-of-type(2){color:var(--muted);font-size:.7rem}.attendance-row input{accent-color:var(--blue);width:16px;height:16px}.attendance-row i{color:var(--green);font-size:.7rem;font-style:normal;font-weight:700}.filters{gap:10px;margin:-10px 0 22px;display:flex}.student-layout{grid-template-columns:minmax(280px,.78fr) minmax(400px,1.22fr);align-items:start;gap:22px;display:grid}.task-panel{border:1px solid var(--line);background:#fff;border-radius:14px;padding:25px}.task-top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.due{color:var(--muted);font-size:.73rem;font-weight:700}.task-panel h2{letter-spacing:-.05em;margin:0 0 12px;font-size:1.35rem}.task-panel>p{color:#4f5e77;margin-bottom:24px;font-size:.84rem;line-height:1.7}.task-panel code,.example code{background:#f2f5fa;border-radius:4px;padding:1px 4px;font-family:Source Code Pro,monospace;font-size:.78rem}.example{background:#f7f9fc;border:1px solid #e9edf4;border-radius:10px;margin-bottom:15px;padding:14px;font-size:.76rem}.example strong{margin-bottom:10px;font-size:.73rem;display:block}.example div{color:var(--muted);border-top:1px solid #e8edf4;justify-content:space-between;padding:7px 0;display:flex}.hint{color:#4f5e77;background:#f2f6ff;border-left:3px solid #7ba5ff;padding:11px 13px;font-size:.76rem}.hint strong{color:#315fc6}.hint p{margin:6px 0 0;line-height:1.5}.submission-state{color:#5d6c83;gap:9px;margin-top:18px;font-size:.72rem;line-height:1.5;display:flex}.submission-state svg{color:#315fc6;flex:none}.runner{color:#dce6f8;background:#18233a;border:1px solid #263652;border-radius:14px;padding:16px;box-shadow:0 15px 35px #18233a17}.runner-head{justify-content:space-between;align-items:center;padding:2px 4px 13px;display:flex}.runner-head .eyebrow{color:#8498bc;margin-bottom:3px}.runner-head strong{font-size:.8rem}.offline-note{color:#9cb0d3;background:#253652;border-radius:6px;padding:5px 7px;font-size:.65rem}.code-label,.io-label{color:#9db1d3;align-items:center;gap:5px;margin:0 4px 7px;font-family:Source Code Pro,monospace;font-size:.68rem;display:flex}.code-editor{resize:vertical;color:#e8f0ff;background:#111a2c;border:1px solid #2b3b58;border-radius:9px;outline:none;width:100%;min-height:260px;padding:15px;font:500 .83rem/1.65 Source Code Pro,monospace;display:block}.code-editor:focus{border-color:#527df1}.io-grid{grid-template-columns:.6fr 1.4fr;gap:12px;margin-top:14px;display:grid}.io-grid label{color:#9db1d3;gap:7px;font-size:.68rem;display:grid}.io-grid textarea{resize:vertical;color:#e8f0ff;background:#111a2c;border:1px solid #2b3b58;border-radius:8px;width:100%;height:86px;padding:9px;font:500 .75rem Source Code Pro,monospace}.console{color:#b5d9c8;white-space:pre-wrap;background:#0e1524;border:1px solid #2b3b58;border-radius:8px;min-height:86px;margin:0;padding:10px;font:500 .75rem/1.5 Source Code Pro,monospace}.runner-actions{justify-content:flex-end;gap:9px;padding-top:14px;display:flex}.runner .secondary{color:#dbe8ff;background:#253a60}.student-progress{border:1px solid var(--line);background:#fff;border-radius:14px;margin-top:24px;padding:22px}.student-progress h2{margin-bottom:16px;font-size:1.2rem}.progress-overall{align-items:center;gap:12px;display:flex}.progress-overall>span{color:var(--muted);font-size:.75rem}.mobile-menu{z-index:4;border:1px solid var(--line);width:39px;height:39px;color:var(--navy);background:#fff;border-radius:8px;position:fixed;top:15px;left:15px}@media (width<=1050px){.metrics{grid-template-columns:repeat(2,1fr)}.student-layout,.two-col,.course-layout{grid-template-columns:1fr}.course-nav{display:none}}@media (width<=760px){.auth-page{grid-template-columns:1fr}.auth-intro{min-height:auto;padding:30px}.auth-intro>div:nth-child(2){margin:58px 0 36px}.auth-intro h1{font-size:2.55rem}.auth-card{padding:34px 23px}.sidebar{transition:transform .2s;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:12px 0 36px #15274640}.workspace{width:100%;margin:0;padding:70px 17px 28px}.mobile-menu,.close-menu{place-items:center;display:grid}.close-menu{color:#fff;background:0 0;border:0;margin-left:auto}.page-header{flex-direction:column;align-items:start;margin-bottom:24px}.header-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.header-actions button{padding:0 8px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{min-height:121px;padding:15px}.metric strong{font-size:1.65rem}.panel{padding:17px}.table-tools{padding:12px}.table-tools .ghost{font-size:0}.table-tools .ghost svg{margin:0}.review-card{flex-direction:column;align-items:start}.review-actions{width:100%}.review-actions button{flex:1}.attendance-info{flex-direction:column;align-items:start}.attendance-row{grid-template-columns:36px 1fr 18px;gap:8px}.attendance-row span:nth-of-type(2),.attendance-row i{grid-column:2}.attendance-row input{grid-area:1/3}.filters{grid-template-columns:1fr;display:grid}.task-panel{padding:18px}.io-grid{grid-template-columns:1fr}.runner{padding:11px}.code-editor{min-height:215px}.progress-overall{flex-direction:column;align-items:start}.auth-card h2{font-size:1.7rem}.sidebar nav{margin-top:5px}}.runner-head strong{margin-left:6px}.student-app .sidebar,.student-app .workspace{transition:width .2s,margin-left .2s,transform .2s}.student-app .sidebar{width:245px}.student-app .workspace{width:calc(100% - 245px);max-width:none;margin-left:245px}.student-app.student-sidebar-collapsed .sidebar{width:76px;padding-inline:12px}.student-app.student-sidebar-collapsed .workspace{width:calc(100% - 76px);margin-left:76px}.student-app .brand-name,.student-app .nav-label,.student-app .profile-copy{white-space:nowrap;overflow:hidden}.student-app.student-sidebar-collapsed .brand-name,.student-app.student-sidebar-collapsed .nav-label,.student-app.student-sidebar-collapsed .profile-copy{display:none}.student-app.student-sidebar-collapsed .side-top{justify-content:center}.student-app.student-sidebar-collapsed .side-brand{padding:0}.student-app.student-sidebar-collapsed .side-bottom{align-items:center}.student-app.student-sidebar-collapsed .profile{justify-content:center}.student-app.student-sidebar-collapsed .sign-out{justify-content:center;padding-inline:0}.sidebar-collapse{color:#9fb4da;background:0 0;border:0;border-radius:7px;place-items:center;padding:7px;display:grid}.sidebar-collapse:hover,.sidebar-collapse:focus-visible{color:#fff;outline-offset:2px;background:#ffffff18;outline:2px solid #80a8ff}.student-app.student-sidebar-collapsed .sidebar-collapse{display:grid}.student-sidebar-overlay{display:none}.student-course-page{min-height:calc(100vh - 55px)}.student-course-page .student-lesson-header{max-width:1440px;margin-inline:auto}.student-lesson-header{justify-content:space-between;align-items:end;gap:22px;margin-bottom:24px;display:flex}.student-lesson-header-main{min-width:0}.student-lesson-header-main h1{letter-spacing:-.06em;margin:4px 0 7px;font-size:clamp(1.7rem,3vw,2.8rem)}.student-back-link{color:#55709b;align-items:center;gap:6px;margin-bottom:17px;font-size:.76rem;font-weight:800;display:inline-flex}.student-back-link:focus-visible,.student-outline button:focus-visible,.student-outline-toggle:focus-visible{outline-offset:2px;outline:3px solid #86a9ff}.student-lesson-due{color:#6f7b91;align-items:center;gap:6px;margin:0;font-size:.74rem;display:flex}.student-lesson-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.student-outline-toggle{align-items:center;gap:7px;display:inline-flex}.student-course-body{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:22px;display:grid}.student-course-body.is-lecture.without-outline,.student-course-body.is-practice{display:block}.student-course-main{min-width:0}.student-outline-backdrop{display:none}.student-outline{border:1px solid var(--line);background:#fff;border-radius:15px;overflow:hidden;box-shadow:0 14px 32px #1527460d}.student-outline-docked{max-height:calc(100vh - 36px);position:sticky;top:18px}.student-outline-drawer{z-index:20;border-width:0 0 0 1px;border-radius:0;width:min(360px,92vw);position:fixed;top:0;bottom:0;right:0;box-shadow:-16px 0 38px #15274626}.student-outline-header{border-bottom:1px solid #e8edf4;justify-content:space-between;align-items:center;min-height:58px;padding:14px 15px;display:flex}.student-outline-title{color:#315fc6;align-items:center;gap:8px;display:inline-flex}.student-outline-close,.student-outline-hide{color:#687995;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:6px;display:inline-flex}.student-outline-close:hover,.student-outline-hide:hover{color:#315fc6;background:#f0f4fb}.student-outline-scroll{max-height:calc(100vh - 120px);padding:13px 10px;overflow:auto}.student-outline-module+.student-outline-module{margin-top:16px}.student-outline-module h2{color:#687995;letter-spacing:.07em;text-transform:uppercase;margin:0 7px 6px;font-size:.68rem}.student-outline-lesson,.student-outline-task{text-align:left;color:#526078;background:0 0;border:0;border-radius:9px;width:100%}.student-outline-lesson{justify-content:space-between;align-items:center;gap:8px;padding:10px 8px;font-weight:800;display:flex}.student-outline-lesson:hover,.student-outline-task:hover{background:#f5f8ff}.student-outline-lesson.selected{color:#315fc6;background:#edf3ff}.student-outline-lesson.locked{color:#8b96a9}.student-outline-lesson.locked small{color:#b17c30}.student-outline-label{align-items:center;gap:7px;min-width:0;display:flex}.student-outline-label>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-outline-lesson small{text-overflow:ellipsis;white-space:nowrap;color:#8b96a9;flex:none;max-width:112px;font-size:.62rem;overflow:hidden}.student-outline-task{padding:7px 8px 7px 28px;font-size:.73rem;display:block}.student-outline-task span{align-items:center;gap:5px;display:flex}.student-outline-task small{color:#8b96a9;margin:3px 0 0 18px;font-size:.62rem;display:block}.student-lesson-status{white-space:nowrap;align-items:center;gap:3px;font-size:.62rem;font-weight:700;display:inline-flex}.student-lesson-status.completed{color:#2a9271}.student-lesson-status.pending{color:#af7720}.student-lesson-status.revision{color:#bc5948}.student-lesson-status.rejected{color:#b34d3d}.student-lesson-status.draft,.student-lesson-status.progress{color:#55709b}.student-outline-task.selected{color:#315fc6;background:#e8f0ff;font-weight:800}.student-outline-check{color:#8490a3;align-items:center;gap:5px;padding:7px 8px 7px 28px;font-size:.7rem;display:flex}.student-outline-check svg{color:#7e91b0}.student-outline-hide{justify-content:center;width:calc(100% - 20px);margin:0 10px 10px;padding:9px}.student-lecture-view{min-height:58vh;padding:clamp(24px,5vw,54px)}.student-lecture-view>.markdown-renderer{max-width:860px;margin-inline:auto}.student-lecture-view>h2{letter-spacing:-.05em;margin:18px 0 25px;font-size:clamp(1.5rem,3vw,2.25rem)}.student-lecture-view>.student-content-block{margin-top:18px}.student-lecture-block{scroll-margin-top:24px}.lecture-toc{background:#f8faff;border:1px solid #e4eaf3;border-radius:12px;gap:7px;margin:12px 0 24px;padding:14px 16px;display:grid}.lecture-toc strong{color:#526078;font-size:.75rem}.lecture-toc a{color:#315fc6;font-size:.8rem;font-weight:700;text-decoration:none}.lecture-toc a:hover,.lecture-toc a:focus-visible{text-decoration:underline}.student-lecture-completion{background:#f8faff;border:1px solid #dfe7f3;border-radius:14px;gap:14px;margin-top:28px;padding:18px;display:grid}.student-lecture-completion.is-completed{background:#f1fbf7;border-color:#b8e3d3}.student-completion-copy{align-items:flex-start;gap:10px;display:flex}.student-completion-icon{color:#315fc6;display:inline-flex}.is-completed .student-completion-icon{color:#2a9271}.student-completion-copy strong{color:#1d2b44;display:block}.student-completion-copy p{color:#71809a;margin:4px 0 0;font-size:.8rem;line-height:1.5}.student-lecture-completion>button{justify-self:start;min-height:42px}.student-next-step{color:#315fc6;align-items:center;gap:8px;padding-top:4px;font-size:.78rem;display:flex}.student-next-step span{color:#71809a}.student-next-step-card{background:#f4f8ff;border:1px solid #d7e3fb;border-radius:14px;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;padding:16px 18px;display:flex}.student-next-step-card>div{gap:3px;display:grid}.student-next-step-card strong{color:#1d2b44}.student-next-step-card button{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.student-course-resume{background:#f4f8ff;border-radius:8px;padding:9px 11px;color:#55709b!important;min-height:0!important;margin:0!important;font-size:.74rem!important}.student-course-resume strong{color:#315fc6}.student-workspace-navigation{justify-content:space-between;gap:10px;margin-bottom:12px;display:flex}.student-workspace-navigation button{min-height:38px}.student-progress-summary{color:#71809a;flex-wrap:wrap;gap:8px;margin-top:7px;font-size:.62rem;display:flex}.student-progress-summary span{background:#f2f5fa;border-radius:6px;padding:3px 6px}.student-progress-summary strong{color:#2a4270}.lesson-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-practice-shell{min-width:0}.student-practice-layout{grid-template-columns:minmax(300px,.9fr) minmax(470px,1.1fr);align-items:start;gap:20px;display:grid}.practice-task-column{min-width:0}.practice-task-column h2{letter-spacing:-.05em;margin:17px 0 11px;font-size:clamp(1.35rem,2vw,1.9rem)}.practice-task-column .task-statement{color:#4f5e77;margin-bottom:21px;line-height:1.7}.practice-task-column>.markdown-renderer{max-width:860px}.practice-materials{gap:12px;display:grid}.practice-runner-column{min-width:0;position:sticky;top:18px}.practice-runner-column .runner{min-height:520px}.practice-tabs{display:none}@media (width<=1100px){.student-practice-layout{grid-template-columns:minmax(280px,.85fr) minmax(390px,1.15fr)}.student-course-body{grid-template-columns:265px minmax(0,1fr);gap:15px}}@media (width<=900px){.student-outline-backdrop{z-index:19;background:#0d1d3866;border:0;display:block;position:fixed;inset:0}.student-practice-layout{grid-template-columns:1fr}.practice-tabs{border:1px solid var(--line);background:#eaf0f8;border-radius:10px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:13px;padding:4px;display:grid}.practice-tabs button{color:#687995;background:0 0;border:0;border-radius:7px;padding:10px;font-weight:800}.practice-tabs button.active{color:#315fc6;background:#fff;box-shadow:0 2px 8px #15274614}.student-practice-layout[data-active-tab=task] .practice-runner-column,.student-practice-layout[data-active-tab=runner] .practice-task-column{display:none}.practice-runner-column{position:static}.student-course-body:not(.is-practice){grid-template-columns:1fr}.student-outline-docked{z-index:20;width:min(320px,100vw - 32px);max-height:calc(100vh - 92px);position:fixed;top:76px;left:16px}.student-outline-docked .student-outline-scroll{max-height:calc(100vh - 210px)}.student-course-body.is-lecture{display:block}.student-course-body.is-lecture .student-course-main{width:100%}}@media (width<=760px){.student-app .sidebar{width:245px}.student-app .workspace,.student-app.student-sidebar-collapsed .workspace{width:100%;margin-left:0;padding-top:70px}.student-app.student-sidebar-collapsed .sidebar{width:245px;padding-inline:24px;transform:translate(-100%)}.student-app.student-sidebar-collapsed .sidebar.open{transform:translate(0)}.student-app.student-sidebar-collapsed .brand-name,.student-app.student-sidebar-collapsed .nav-label,.student-app.student-sidebar-collapsed .profile-copy{display:block}.student-app.student-sidebar-collapsed .side-top{justify-content:space-between}.student-app.student-sidebar-collapsed .side-brand{padding:initial}.student-app.student-sidebar-collapsed .side-bottom{align-items:initial}.student-app.student-sidebar-collapsed .profile{justify-content:initial}.student-app.student-sidebar-collapsed .sign-out{justify-content:initial;padding-inline:0}.student-app .sidebar-collapse{display:none}.student-sidebar-overlay{z-index:4;background:#0d1d3870;border:0;display:block;position:fixed;inset:0}.student-lesson-header{flex-direction:column;align-items:flex-start;gap:14px}.student-lesson-header-actions{justify-content:space-between;width:100%}.student-lesson-header-actions .course-progress-pill{max-width:100%}.student-course-body{display:block}.student-outline-drawer{width:100%;max-width:360px}.student-lecture-view{padding:22px 18px}.student-lecture-view>.markdown-renderer{max-width:none}.student-practice-layout{gap:12px}.practice-task-column,.practice-runner-column .runner{padding:17px}.practice-runner-column .runner{min-height:0}.runner-actions{flex-wrap:wrap}.runner-actions button{flex:130px}.student-workspace-navigation{width:100%}.student-workspace-navigation button{flex:1 1 0;padding-inline:8px;font-size:.74rem}.student-next-step-card{flex-direction:column;align-items:flex-start}.student-next-step-card button,.student-lecture-completion>button{justify-content:center;width:100%}.student-progress-summary{width:100%}.student-mobile-action-bar{z-index:2;background:#18233af2;border-top:1px solid #2b3b58;margin:0 -17px;padding:8px 17px;position:sticky;bottom:0}}.console-error{color:#ffb1a7;border-color:#6b3941;margin-top:7px}.runner-local-restore{color:#9ec0ff;background:0 0;border:0;padding:6px 4px;font-size:.72rem;text-decoration:underline}.runner-elapsed{color:#8498bc;margin-top:8px;font-size:.68rem;display:block}.student-mobile-action-bar{display:block}@media (prefers-reduced-motion:reduce){.student-app .sidebar,.student-app .workspace{transition:none}}:root{--ui-bg:#f4f7fb;--ui-surface:#fff;--ui-surface-muted:#f8faff;--ui-text:#17233b;--ui-text-muted:#687790;--ui-border:#dfe6f0;--ui-primary:#2f6bff;--ui-primary-soft:#eaf1ff;--ui-success:#188866;--ui-success-soft:#e6f7f0;--ui-warning:#a66b0e;--ui-warning-soft:#fff3dc;--ui-danger:#ba5040;--ui-danger-soft:#fff0ed;--ui-radius-sm:8px;--ui-radius-md:12px;--ui-radius-lg:16px;--ui-shadow-sm:0 2px 12px #1931570d;--ui-shadow-md:0 18px 50px #1931571c;--ui-focus:0 0 0 3px #2f6bff3d}body{background:var(--ui-bg);color:var(--ui-text)}button,input,select,textarea{font:inherit;min-height:44px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:var(--ui-focus);outline:0}.ui-button,.primary,.secondary,.ghost,.danger,.app-sidebar .nav-group-items a{min-height:44px}.skip-link{z-index:200;border-radius:var(--ui-radius-sm);background:var(--ui-text);color:#fff;box-shadow:var(--ui-shadow-md);padding:10px 14px;font-size:.78rem;font-weight:800;transition:transform .15s;position:fixed;top:10px;left:10px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.app-shell{background:var(--ui-bg)}.app-shell .app-sidebar{background:var(--ui-surface);width:260px;color:var(--ui-text);border-right:1px solid var(--ui-border);padding:24px 14px;transition:width .2s,transform .2s;box-shadow:2px 0 18px #19315708}.app-shell .workspace{background:var(--ui-bg);width:calc(100% - 260px);max-width:none;margin-left:260px;padding:34px clamp(20px,4vw,64px) 56px;transition:margin-left .2s,width .2s}.app-shell .workspace>*{width:100%;max-width:1440px;margin-inline:auto}.app-shell .workspace:focus{outline:none}.app-shell.sidebar-collapsed .app-sidebar{width:76px;padding-inline:10px}.app-shell.sidebar-collapsed .workspace{width:calc(100% - 76px);margin-left:76px}.app-sidebar .side-brand{color:var(--ui-text);margin-bottom:28px;padding-inline:9px}.app-sidebar .side-top{min-height:44px}.app-sidebar .brand-mark{flex:none}.sidebar-collapse{color:var(--ui-text-muted);border-radius:var(--ui-radius-sm);background:0 0;border:0;place-items:center;min-width:44px;margin-left:auto;display:grid}.sidebar-collapse:hover,.sidebar-collapse:focus-visible{background:var(--ui-primary-soft);color:var(--ui-primary)}.close-menu{color:var(--ui-text-muted)}.app-nav{gap:20px;display:grid;overflow-y:auto}.nav-group{gap:7px;display:grid}.nav-group-label{color:#74839a;letter-spacing:.1em;text-transform:uppercase;margin:0 10px;font-size:.64rem;font-weight:800}.nav-group-items{gap:3px;display:grid}.app-sidebar .nav-group-items a{border-radius:var(--ui-radius-sm);min-height:44px;color:var(--ui-text-muted);padding:10px 12px}.app-sidebar .nav-group-items a:hover{color:var(--ui-text);background:#f1f5fb}.app-sidebar .nav-group-items a.nav-active{background:var(--ui-primary-soft);color:#245ddd}.app-sidebar .nav-group-items a svg{flex:none}.app-shell.sidebar-collapsed .brand-name,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .profile-copy,.app-shell.sidebar-collapsed .nav-group-label{display:none}.app-shell.sidebar-collapsed .side-brand,.app-shell.sidebar-collapsed .side-top,.app-shell.sidebar-collapsed .profile,.app-shell.sidebar-collapsed .sign-out{justify-content:center}.app-shell.sidebar-collapsed .side-brand{padding-inline:0}.app-shell.sidebar-collapsed .sidebar-collapse{margin-left:0}.app-sidebar .profile strong{color:var(--ui-text)}.app-sidebar .profile small{color:var(--ui-text-muted)}.app-sidebar .sign-out{color:var(--ui-text-muted);border-radius:var(--ui-radius-sm);min-height:44px}.app-sidebar .sign-out:hover{color:var(--ui-text);background:#f1f5fb}.breadcrumbs{color:#91a0b4;margin-bottom:22px}.breadcrumbs strong{color:var(--ui-text-muted)}.breadcrumbs strong[aria-current=page]{color:var(--ui-text)}.page-header{margin-bottom:28px}.page-header-copy{min-width:0}.page-header h1{color:var(--ui-text)}.page-description{color:var(--ui-text-muted)}.panel,.metric,.review-card,.task-panel,.student-progress,.student-course-card,.course-nav,.editor,.attendance{border-color:var(--ui-border);box-shadow:var(--ui-shadow-sm);border-radius:var(--ui-radius-lg)}.primary,.ui-button-primary{background:var(--ui-primary);min-height:44px}.secondary,.ui-button-secondary{background:var(--ui-primary-soft);color:#255cd0;min-height:44px}.ghost,.ui-button-ghost,.danger,.ui-button-danger{min-height:44px}.student-course-card{transition:transform .15s,box-shadow .15s}.student-course-card:hover{box-shadow:var(--ui-shadow-md);transform:translateY(-2px)}.student-course-cta{color:var(--ui-primary);align-items:center;gap:7px;margin-top:18px;font-size:.78rem;font-weight:800;display:inline-flex}.student-course-skeleton{background:linear-gradient(100deg,#fff 30%,#f0f4fb 45%,#fff 60%) 0 0/200% 100%;min-height:250px;animation:1.4s ease-in-out infinite ui-shimmer;overflow:hidden}.student-course-skeleton span{background:#e8edf5;border-radius:5px;width:72%;height:13px;display:block}.student-course-skeleton span:nth-child(2){width:90%;height:26px}.student-course-skeleton span:nth-child(3){width:100%}.student-course-skeleton span:nth-child(4){width:55%;margin-top:auto}.auth-page{background:var(--ui-bg)}.auth-intro{background:#152b50}.auth-intro-copy{z-index:1;position:relative}.auth-benefits{color:#c8d6ef;gap:9px;font-size:.8rem;display:grid}.auth-card{background:var(--ui-surface)}.auth-card-inner{max-width:420px}.auth-card input{background:#fbfcff;min-height:48px}.auth-card .form-error{border-radius:var(--ui-radius-sm);background:var(--ui-danger-soft);border:1px solid #f1d5d0;padding:11px 12px}.auth-card .auth-hint{margin-top:13px}.ui-dialog-overlay{z-index:100;background:#10224273;animation:.15s ui-fade;position:fixed;inset:0}.ui-dialog-content{z-index:101;background:var(--ui-surface);border-radius:var(--ui-radius-lg);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:var(--ui-shadow-md);padding:28px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.ui-dialog-title{letter-spacing:-.03em;margin:0;padding-right:28px;font-size:1.2rem}.ui-dialog-description{color:var(--ui-text-muted);margin:8px 0 0;font-size:.82rem;line-height:1.5}.ui-dialog-close{border-radius:var(--ui-radius-sm);min-width:44px;color:var(--ui-text-muted);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:14px;right:14px}.ui-dialog-close:hover{background:var(--ui-surface-muted);color:var(--ui-text)}.ui-dialog-content .modal{box-shadow:none;width:auto;padding:0}.ui-button{border-radius:var(--ui-radius-sm);cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:800;display:inline-flex}.ui-button:disabled,.primary:disabled,.secondary:disabled,.ghost:disabled,.danger:disabled{opacity:.55;cursor:not-allowed}.ui-badge{border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:.68rem;font-weight:800;display:inline-flex}.ui-badge-success{color:var(--ui-success);background:var(--ui-success-soft)}.ui-badge-warning{color:var(--ui-warning);background:var(--ui-warning-soft)}.ui-badge-danger{color:var(--ui-danger);background:var(--ui-danger-soft)}.ui-badge-info{color:#255cd0;background:var(--ui-primary-soft)}.ui-badge-neutral{color:var(--ui-text-muted);background:#eef2f7}.ui-surface{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);box-shadow:var(--ui-shadow-sm)}.ui-progress-wrap{align-items:center;gap:10px;display:flex}.ui-progress{background:#e7edf7;border-radius:999px;flex:1;height:8px;overflow:hidden}.ui-progress span{border-radius:inherit;background:var(--ui-primary);height:100%;display:block}.ui-progress-label{color:var(--ui-text-muted);font-size:.75rem;font-weight:800}.ui-field{color:var(--ui-text-muted);gap:7px;font-size:.76rem;font-weight:800;display:grid}.ui-field small{color:#91a0b4;font-size:.68rem;font-weight:600}.ui-field-error{color:var(--ui-danger)!important}.app-sidebar-overlay{display:none}.route-loading,.route-error{place-items:center;min-height:55vh;padding:24px;display:grid}.route-loading p,.route-error .panel{margin:0}.route-loading p{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface);color:var(--ui-text-muted);box-shadow:var(--ui-shadow-sm);align-items:center;gap:10px;padding:16px 18px;display:inline-flex}.route-loading p:before{content:"";border:2px solid #c9d6ec;border-top-color:var(--ui-primary);border-radius:50%;width:16px;height:16px;animation:.9s linear infinite spin}.route-error .panel{max-width:520px}@keyframes ui-fade{0%{opacity:0}to{opacity:1}}@keyframes ui-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=760px){.app-shell .app-sidebar{width:270px;transform:translate(-100%);box-shadow:14px 0 36px #1022422e}.app-shell .app-sidebar.open{transform:translate(0)}.app-shell .workspace,.app-shell.sidebar-collapsed .workspace{width:100%;margin-left:0;padding:70px 16px 36px}.app-shell .workspace>*{max-width:none}.app-shell.sidebar-collapsed .app-sidebar{width:270px;padding-inline:14px}.app-shell.sidebar-collapsed .app-sidebar .brand-name,.app-shell.sidebar-collapsed .app-sidebar .nav-label,.app-shell.sidebar-collapsed .app-sidebar .profile-copy,.app-shell.sidebar-collapsed .app-sidebar .nav-group-label{display:block}.app-shell.sidebar-collapsed .sidebar-collapse{display:none}.app-sidebar-overlay{z-index:4;background:#10224273;border:0;display:block;position:fixed;inset:0}.ui-dialog-content{width:calc(100vw - 20px);max-height:calc(100vh - 20px);padding:22px 18px}.auth-page{flex-direction:column;min-height:100vh;display:flex}.auth-card{order:1;align-items:start;min-height:62vh;padding:34px 20px}.auth-intro{order:2;min-height:38vh;padding:28px 20px}.auth-intro .auth-intro-copy{margin:24px 0 0}.auth-intro h1{font-size:2.15rem}.intro-copy{font-size:.9rem}.page-header{gap:16px}.page-header-copy,.page-header .header-actions{width:100%}}@media (width<=390px){.page-header h1{font-size:1.75rem}.header-actions{grid-template-columns:1fr;display:grid}.metrics{grid-template-columns:1fr}.panel,.task-panel{padding:16px}.table-wrap{overflow:visible}.table-wrap table,.table-wrap tbody,.table-wrap tr,.table-wrap td{width:100%;display:block}.table-wrap thead{display:none}.table-wrap tbody{gap:10px;display:grid}.table-wrap tr{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);background:var(--ui-surface);box-shadow:var(--ui-shadow-sm);padding:13px}.table-wrap td{white-space:normal;text-align:right;border:0;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.table-wrap td:first-child{text-align:left;border-bottom:1px solid var(--ui-border);margin-bottom:5px;padding-bottom:9px;display:block}.table-wrap td:nth-child(2):before{content:"Группа"}.table-wrap td:nth-child(3):before{content:"Подгруппа"}.table-wrap td:nth-child(4):before{content:"Статус"}.table-wrap td:nth-child(5):before{content:"Действия"}.table-wrap td:before{color:var(--ui-text-muted);text-align:left;font-size:.68rem;font-weight:800}.table-wrap td button{min-height:40px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-5:20px;--ui-space-6:24px;--ui-space-7:32px;--ui-control-height:44px;--ui-page-max:1320px;--ui-content-gutter:clamp(20px, 3.2vw, 52px)}.teacher-app .workspace{padding:30px var(--ui-content-gutter) 64px}.workspace-toolbar{z-index:12;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:relative}.workspace-toolbar .breadcrumbs{min-width:0;margin-bottom:20px}.notification-center{flex:none;position:relative}.notification-trigger{border:1px solid var(--ui-border);background:var(--ui-surface);width:42px;height:42px;color:var(--ui-text-muted);cursor:pointer;border-radius:12px;place-items:center;display:grid;position:relative}.notification-trigger:hover,.notification-trigger[aria-expanded=true]{color:#2f6bff;background:#f1f5ff;border-color:#b8ceff}.notification-count{border:2px solid var(--ui-bg);color:#fff;text-align:center;background:#2f6bff;border-radius:999px;min-width:19px;height:19px;padding:0 5px;font-size:10px;font-weight:850;line-height:15px;position:absolute;top:-5px;right:-5px}.notification-panel{border:1px solid var(--ui-border);background:var(--ui-surface);border-radius:16px;width:min(390px,100vw - 32px);position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 18px 45px #182d5329}.notification-panel-head{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.notification-panel-head>div{gap:3px;display:grid}.notification-panel-head strong{color:var(--ui-text);font-size:.82rem}.notification-panel-head span{color:var(--ui-text-muted);font-size:.68rem}.notification-read-all{color:#2f6bff;cursor:pointer;background:0 0;border:0;font-size:.68rem;font-weight:800}.notification-read-all:disabled{color:var(--ui-text-muted);cursor:default}.notification-list{max-height:min(430px,100vh - 160px);display:grid;overflow-y:auto}.notification-item{color:inherit;grid-template-columns:8px minmax(0,1fr);gap:10px;padding:13px 16px;text-decoration:none;display:grid}.notification-item:hover,.notification-item:focus-visible{background:#f6f8fc}.notification-item.is-unread{background:#f4f7ff}.notification-dot{background:#aeb8c8;border-radius:50%;width:7px;height:7px;margin-top:6px}.notification-dot-submission{background:#2f6bff}.notification-dot-review{background:#39a978}.notification-dot-deadline{background:#d99328}.notification-dot-system{background:#8c6de8}.notification-copy{gap:4px;min-width:0;display:grid}.notification-copy strong{color:var(--ui-text);font-size:.74rem}.notification-copy span{color:var(--ui-text-muted);overflow-wrap:anywhere;font-size:.7rem;line-height:1.4}.notification-copy small{color:#9aa6b7;font-size:.62rem}.notification-empty{color:var(--ui-text-muted);text-align:center;margin:0;padding:24px 16px;font-size:.74rem}.teacher-app .breadcrumbs{margin-bottom:20px;font-size:.7rem}.teacher-app .page-header{align-items:end;gap:var(--ui-space-6);margin-bottom:28px}.teacher-app .page-header h1{overflow-wrap:anywhere;max-width:820px;font-size:clamp(2rem,3.8vw,3.2rem);line-height:1.04}.teacher-app .page-description{max-width:700px;line-height:1.6}.teacher-app .header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center}.teacher-app .header-actions .primary,.teacher-app .header-actions .secondary,.teacher-app .header-actions .ghost{white-space:nowrap}.teacher-app .panel,.teacher-app .metric,.teacher-app .review-card,.teacher-app .course-nav,.teacher-app .editor,.teacher-app .attendance,.teacher-app .task-panel{padding:var(--ui-space-6)}.teacher-app .panel-heading,.teacher-app .table-tools,.teacher-app .editor-title{gap:var(--ui-space-4)}.teacher-app .metrics{gap:var(--ui-space-4);margin-bottom:var(--ui-space-6)}.teacher-app .metric{min-height:132px}.teacher-app input,.teacher-app select,.teacher-app textarea,.teacher-app .editor-input{min-height:var(--ui-control-height);border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);color:var(--ui-text);background:#fff;transition:border-color .15s,box-shadow .15s,background-color .15s}.teacher-app input,.teacher-app select{padding:0 12px}.teacher-app textarea{padding:12px;line-height:1.55}.teacher-app input:hover,.teacher-app select:hover,.teacher-app textarea:hover{border-color:#b9c9df}.teacher-app input:disabled,.teacher-app select:disabled,.teacher-app textarea:disabled{cursor:not-allowed;color:#91a0b4;background:#f4f7fb}.teacher-app .student-form,.teacher-app .selection-grid,.teacher-app .filter-panel .filters{gap:var(--ui-space-4)}.teacher-app .student-form label,.teacher-app .selection-grid label,.teacher-app .filter-panel label,.teacher-app .settings-form label,.teacher-app .simple-course-fields label,.teacher-app .lesson-basics-grid label{line-height:1.3}.teacher-app .table-panel{padding:0}.teacher-app .table-tools{padding:18px var(--ui-space-6);background:#fbfcff}.teacher-app th{padding-block:14px}.teacher-app td{min-height:58px}.teacher-app .course-workspace-page .course-workspace-grid{border:1px solid var(--ui-border);border-radius:var(--ui-radius-lg);background:var(--ui-surface);box-shadow:var(--ui-shadow-sm);grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:0;overflow:hidden}.teacher-app .course-workspace-page .course-tree{border-right:1px solid var(--ui-border);background:#f8faff;min-height:680px}.teacher-app .course-workspace-page .simple-course-editor{padding:clamp(22px,3vw,36px)}.teacher-app .course-workspace-page .simple-editor-heading{align-items:center;padding-bottom:22px}.teacher-app .course-workspace-page .simple-editor-heading h2{overflow-wrap:anywhere;max-width:760px;font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.15}.teacher-app .course-workspace-page .simple-course-fields,.teacher-app .course-workspace-page .lesson-basics-grid{gap:var(--ui-space-5)}.teacher-app .course-workspace-page .course-audience-simple{background:#f8fbff;border-color:#d9e4f3;padding:20px}.teacher-app .course-workspace-page .audience-group,.teacher-app .course-workspace-page .simple-task-row,.teacher-app .course-workspace-page .markdown-pane,.teacher-app .course-workspace-page .preview-pane{box-shadow:none;border-color:#dfe7f2}.teacher-app .course-workspace-page .markdown-split-editor{gap:var(--ui-space-5);min-height:560px}.teacher-app .course-workspace-page .markdown-pane,.teacher-app .course-workspace-page .preview-pane{padding:var(--ui-space-4);background:#fbfcff}.teacher-app .course-workspace-page .markdown-pane textarea{background:#fff;border-color:#cfdbea;min-height:470px}.teacher-app .course-workspace-page .preview-pane{background:#fff}@media (width<=1100px){.teacher-app .workspace{padding-inline:24px}.teacher-app .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.teacher-app .workspace{padding:76px 16px 40px}.teacher-app .page-header{flex-direction:column;align-items:start}.teacher-app .page-header .header-actions{justify-content:stretch;width:100%}.teacher-app .header-actions>*{flex:180px}.teacher-app .metrics{grid-template-columns:1fr}.teacher-app .panel,.teacher-app .metric,.teacher-app .review-card,.teacher-app .course-nav,.teacher-app .editor,.teacher-app .attendance,.teacher-app .task-panel{padding:18px}.teacher-app .course-workspace-page .course-workspace-grid{box-shadow:none;border:0;border-radius:0;display:block;overflow:visible}.teacher-app .course-workspace-page .course-tree{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);min-height:0;max-height:320px}.teacher-app .course-workspace-page .simple-course-editor{border:1px solid var(--ui-border);border-radius:var(--ui-radius-md);margin-top:16px;padding:18px}}@media (width<=390px){.teacher-app .workspace{padding-inline:12px}.teacher-app .header-actions>*{flex-basis:100%}}@media (prefers-reduced-motion:reduce){.teacher-app *,.teacher-app :before,.teacher-app :after{transition:none!important}}.admin-app{--admin-accent:#5b57d6;--admin-accent-soft:#eeedff;--admin-ink:#20233c}.admin-app .app-sidebar{background:#fbfaff;border-right-color:#e5e4f5;box-shadow:8px 0 28px #2e28660b}.admin-app .brand-mark{background:var(--admin-accent);box-shadow:0 5px 12px #5b57d638}.admin-app .sidebar-role,.admin-app .nav-group-label{color:#7774a1}.admin-app .nav-group-items a:hover,.admin-app .nav-group-items a:focus-visible{color:var(--admin-ink);background:#faf9ff;border-color:#dfdef5}.admin-app .nav-group-items a.nav-active{background:var(--admin-accent-soft);color:var(--admin-accent);border-color:#d8d6fb}.admin-app .nav-group-items a.nav-active:before{background:var(--admin-accent)}.admin-app .sidebar-collapse:hover,.admin-app .sidebar-collapse:focus-visible{background:var(--admin-accent-soft);color:var(--admin-accent);border-color:#d8d6fb}.admin-app .profile{background:#f8f7ff;border-color:#e8e6f8}.admin-app .workspace{background:#f7f8fc}.admin-app .page-header h1{color:var(--admin-ink)}.admin-intro{color:#4b4d6e;background:linear-gradient(90deg,#f7f6ff 0%,#fbfbff 100%);border:1px solid #dfdef5;border-radius:14px;align-items:flex-start;gap:13px;margin:0 0 22px;padding:15px 17px;display:flex}.admin-intro-icon{background:var(--admin-accent-soft);width:38px;height:38px;color:var(--admin-accent);border-radius:11px;flex:none;place-items:center;display:grid}.admin-intro strong{color:var(--admin-ink);font-size:.82rem;display:block}.admin-intro p{color:#6f7190;max-width:760px;margin:4px 0 0;font-size:.74rem;line-height:1.55}.admin-metrics .metric{border-top:2px solid #d8d6fb}.admin-metrics .metric strong{color:var(--admin-ink)}.admin-dashboard-grid{align-items:stretch}.admin-quick-links{gap:8px;display:grid}.admin-quick-links a{color:#4a4d70;border:1px solid #e7e7f2;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 12px;font-size:.76rem;font-weight:800;transition:border-color .16s,background-color .16s,color .16s;display:flex}.admin-quick-links a span{align-items:center;gap:9px;display:flex}.admin-quick-links a svg{color:var(--admin-accent)}.admin-quick-links a:hover,.admin-quick-links a:focus-visible{color:var(--admin-accent);background:#faf9ff;border-color:#cfcdf6}.admin-scope-card{background:#fbfbff}.admin-scope-card h2{color:var(--admin-ink);margin:0 0 10px;font-size:1.02rem}.admin-scope-card ul{color:#686b89;gap:8px;margin:0;padding-left:18px;font-size:.76rem;line-height:1.5;display:grid}@media (width<=760px){.admin-intro{margin-bottom:16px}.admin-dashboard-grid{grid-template-columns:1fr}}.app-shell.sidebar-collapsed .app-sidebar .side-top{grid-template-columns:1fr;justify-items:center;gap:6px;min-height:0;padding-bottom:14px;display:grid}.app-shell.sidebar-collapsed .app-sidebar .side-brand{justify-content:center;width:100%;margin:0}.app-shell.sidebar-collapsed .app-sidebar .sidebar-collapse{width:36px;min-width:36px;min-height:36px;margin:0}.app-shell.sidebar-collapsed .app-sidebar .nav-group-items a{min-width:44px}@media (width<=760px){.app-shell.sidebar-collapsed .app-sidebar.open .side-top{justify-content:space-between;align-items:center;gap:8px;padding-bottom:16px;display:flex}.app-shell.sidebar-collapsed .app-sidebar.open .side-brand{justify-content:flex-start;width:auto}}:root{--ui-sidebar-width:272px;--ui-sidebar-collapsed-width:76px;--ui-sidebar-active-border:#d8e5ff;--ui-sidebar-active-rail:#2f6bff}.teacher-app .app-sidebar{width:var(--ui-sidebar-width);background:var(--ui-surface);border-right-color:#e5ebf3;padding:18px 14px 16px;box-shadow:8px 0 28px #19315709}.teacher-app .workspace{width:calc(100% - var(--ui-sidebar-width));margin-left:var(--ui-sidebar-width)}.teacher-app .side-top{border-bottom:1px solid #edf1f6;min-height:48px;padding:0 4px 16px}.teacher-app .side-brand{align-items:center;gap:10px;min-width:0;margin:0;padding:0}.teacher-app .brand-mark{border-radius:12px;width:38px;height:38px;box-shadow:0 5px 12px #2f6bff33}.side-brand-copy{gap:2px;min-width:0;display:grid}.teacher-app .brand-name{font-size:.98rem;line-height:1.1}.sidebar-role{color:#8a98ad;white-space:nowrap;font-size:.64rem;font-weight:700;line-height:1.2}.teacher-app .sidebar-collapse{color:#73839a;border:1px solid #0000;min-width:40px;min-height:40px;margin-left:auto}.teacher-app .sidebar-collapse:hover,.teacher-app .sidebar-collapse:focus-visible{border-color:var(--ui-sidebar-active-border);background:var(--ui-primary-soft);color:var(--ui-primary)}.teacher-app .app-nav{gap:18px;padding:22px 0 18px}.teacher-app .nav-group{gap:8px}.teacher-app .nav-group+.nav-group{border-top:1px solid #edf1f6;padding-top:18px}.teacher-app .nav-group-label{color:#8391a5;letter-spacing:.01em;text-transform:none;margin:0 12px;font-size:.66rem;line-height:1.2}.teacher-app .nav-group-items{gap:4px}.teacher-app .nav-group-items a{color:#66758c;border:1px solid #0000;border-radius:10px;gap:12px;min-height:46px;padding:10px 12px;font-size:.79rem;font-weight:800;transition:background-color .16s,border-color .16s,color .16s,transform .16s;position:relative}.teacher-app .nav-group-items a:before{content:"";background:0 0;border-radius:0 4px 4px 0;width:3px;transition:background-color .16s;position:absolute;top:10px;bottom:10px;left:-1px}.teacher-app .nav-group-items a:hover{color:var(--ui-text);background:#f8faff;border-color:#e5ecf6;transform:translate(1px)}.teacher-app .nav-group-items a:focus-visible{border-color:var(--ui-sidebar-active-border);background:#f8faff}.teacher-app .nav-group-items a.nav-active{border-color:var(--ui-sidebar-active-border);background:var(--ui-primary-soft);color:#245ddd;box-shadow:inset 0 1px #ffffff8c}.teacher-app .nav-group-items a.nav-active:before{background:var(--ui-sidebar-active-rail)}.teacher-app .side-bottom{border-top:1px solid #edf1f6;padding-top:14px}.teacher-app .profile{background:#f9fbfe;border:1px solid #edf1f6;border-radius:12px;min-width:0;margin-bottom:7px;padding:10px}.teacher-app .profile-copy{min-width:0}.teacher-app .profile strong,.teacher-app .profile small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teacher-app .profile strong{font-size:.74rem}.teacher-app .profile small{margin-top:3px;font-size:.64rem}.teacher-app .sign-out{border:1px solid #0000;border-radius:10px;min-height:42px;padding:9px 10px;font-size:.76rem}.teacher-app .sign-out:hover,.teacher-app .sign-out:focus-visible{color:var(--ui-text);background:#f8faff;border-color:#e5ecf6}.teacher-app.sidebar-collapsed .app-sidebar{width:var(--ui-sidebar-collapsed-width);padding-inline:10px}.teacher-app.sidebar-collapsed .workspace{width:calc(100% - var(--ui-sidebar-collapsed-width));margin-left:var(--ui-sidebar-collapsed-width)}.teacher-app.sidebar-collapsed .side-top{padding-inline:0}.teacher-app.sidebar-collapsed .side-brand{justify-content:center}.teacher-app.sidebar-collapsed .side-brand-copy,.student-app.sidebar-collapsed .side-brand-copy{display:none}.student-app.sidebar-collapsed .side-brand{justify-content:center}.teacher-app.sidebar-collapsed .sidebar-collapse{margin-left:0}.teacher-app.sidebar-collapsed .nav-group-items a{justify-content:center;padding-inline:0}.teacher-app.sidebar-collapsed .nav-group-items a:before{left:0}.teacher-app.sidebar-collapsed .profile{background:0 0;border-color:#0000;justify-content:center;padding-inline:0}.teacher-app.sidebar-collapsed .sign-out{justify-content:center;padding-inline:0}@media (width<=760px){.app-shell .app-sidebar:not(.open){overflow:hidden}.teacher-app .app-sidebar,.student-app .app-sidebar{width:288px;padding:18px 14px 16px}.teacher-app .workspace,.teacher-app.sidebar-collapsed .workspace{width:100%;margin-left:0}.teacher-app.sidebar-collapsed .app-sidebar,.student-app.sidebar-collapsed .app-sidebar{width:288px;padding-inline:14px}.teacher-app.sidebar-collapsed .side-brand,.student-app.sidebar-collapsed .side-brand{justify-content:flex-start}.teacher-app.sidebar-collapsed .side-brand-copy,.student-app.sidebar-collapsed .side-brand-copy{display:grid}.student-app.sidebar-collapsed .side-brand{justify-content:flex-start}.teacher-app.sidebar-collapsed .nav-group-items a,.student-app.sidebar-collapsed .nav-group-items a{justify-content:flex-start;padding-inline:12px}.teacher-app.sidebar-collapsed .profile,.student-app.sidebar-collapsed .profile{background:#f9fbfe;border-color:#edf1f6;justify-content:flex-start;padding-inline:10px}.teacher-app.sidebar-collapsed .sign-out,.student-app.sidebar-collapsed .sign-out{justify-content:flex-start;padding-inline:10px}.teacher-app .workspace-toolbar{padding-left:68px;padding-right:16px}.student-app .workspace-toolbar{padding-inline:0}.workspace-toolbar .breadcrumbs{margin-bottom:14px}.notification-panel{position:fixed;top:64px;right:16px}}.student-app{--student-bg:#f5f7fb;--student-surface:#fff;--student-ink:#18263f;--student-muted:#6e7d95;--student-line:#dfe7f2;--student-blue:#2f6bff;--student-blue-soft:#edf3ff;--student-green:#16886a;--student-green-soft:#e8f8f1;--student-amber:#a66d17;--student-amber-soft:#fff4df;--student-shadow:0 12px 34px #1f375e12;background:var(--student-bg)}.student-app .workspace{background:var(--student-bg)}@media (width>=901px){.student-app .workspace.workspace-immersive{width:calc(100% - 260px);max-width:none;margin-left:260px;padding:0 0 56px}.student-app.sidebar-collapsed .workspace.workspace-immersive{width:calc(100% - 76px);margin-left:76px}.student-app .workspace.workspace-immersive>*{width:100%;max-width:none;margin-inline:0}.student-app .workspace.workspace-immersive>.breadcrumbs{margin-bottom:10px;padding:22px clamp(24px,4vw,64px) 0}.student-course-workspace .student-lesson-header{max-width:none;margin:0;padding:20px clamp(24px,4vw,64px) 24px}.student-course-workspace .student-workspace-navigation{margin:0;padding:12px clamp(24px,4vw,64px)}.student-course-workspace .student-course-body,.student-course-workspace .student-course-main,.student-course-workspace .student-practice-workspace{width:100%;max-width:none}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(0,1fr) minmax(360px,42vw);align-items:stretch;gap:0;width:100%;min-height:100vh}.student-course-workspace.is-practice .practice-task-column{border:0;border-right:1px solid var(--student-line);min-height:100vh;box-shadow:none;border-radius:0;padding:clamp(32px,4vw,68px) clamp(28px,5vw,84px)}.student-course-workspace.is-practice .practice-runner-column{align-self:start;height:100vh;min-height:100vh;position:sticky;top:0;overflow:hidden}.student-course-workspace.is-practice .practice-runner-column .runner{height:100%;min-height:100vh;max-height:100vh;box-shadow:none;border:0;border-radius:0;padding:clamp(22px,2.4vw,38px) clamp(20px,2.7vw,44px);position:relative;top:auto;overflow:hidden auto}.student-course-workspace.is-practice .practice-runner-column .runner-head{z-index:2;background:#18233a;margin:-2px -2px 0;position:sticky;top:-1px}.student-course-workspace.is-practice .practice-runner-column .student-mobile-action-bar{z-index:2;background:linear-gradient(#18233a00,#18233a 24%);margin-inline:-2px;padding:10px 2px 2px;position:sticky;bottom:0}}.student-app .breadcrumbs{color:#8b99ad;letter-spacing:.01em;font-size:.72rem}.student-app .page-header{margin-bottom:24px}.student-app .page-header h1{letter-spacing:-.065em;max-width:680px;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.02}.student-app .page-description{max-width:620px;font-size:.88rem;line-height:1.65}.student-learning-overview{background:linear-gradient(110deg,#f0f5ff 0%,#fff 72%);border:1px solid #d9e5f4;border-radius:18px;justify-content:space-between;align-items:center;gap:28px;max-width:1120px;margin:0 0 22px;padding:22px 24px;display:flex;box-shadow:0 8px 22px #2552970d}.student-learning-overview-copy{align-items:flex-start;gap:14px;min-width:0;display:flex}.student-overview-mark{width:36px;height:36px;color:var(--student-blue);background:#dce8ff;border-radius:11px;flex:0 0 36px;place-items:center;display:grid}.student-overview-kicker{color:var(--student-blue);letter-spacing:.04em;margin:0 0 5px;font-size:.68rem;font-weight:850}.student-learning-overview h2{color:var(--student-ink);letter-spacing:-.035em;margin:0;font-size:1.08rem}.student-learning-overview-copy p:last-child{max-width:580px;color:var(--student-muted);margin:5px 0 0;font-size:.78rem;line-height:1.55}.student-learning-overview-stats{border-left:1px solid #d9e5f4;flex:none;gap:24px;padding-left:24px;display:flex}.student-learning-overview-stats div{gap:2px;display:grid}.student-learning-overview-stats strong{color:var(--student-ink);letter-spacing:-.04em;font-size:1.25rem}.student-learning-overview-stats span{color:var(--student-muted);white-space:nowrap;font-size:.68rem}.student-course-grid{gap:18px;max-width:1120px}.student-resume-banner{max-width:1120px;color:var(--student-ink);background:#edf4ff;border:1px solid #c9daf8;border-radius:15px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;margin:0 0 19px;padding:14px 16px;transition:border-color .18s,background .18s,transform .18s;display:grid;box-shadow:0 7px 22px #2f6bff0f}.student-resume-banner:hover{background:#e8f1ff;border-color:#9fbcf0;transform:translateY(-1px)}.student-resume-banner:focus-visible{border-color:var(--student-blue);box-shadow:0 0 0 4px #2f6bff2e}.student-resume-banner-icon{color:#fff;background:var(--student-blue);border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.student-resume-banner-copy{gap:2px;min-width:0;display:grid}.student-resume-banner-copy small{color:var(--student-blue);font-size:.63rem;font-weight:850}.student-resume-banner-copy strong,.student-resume-banner-copy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-resume-banner-copy strong{font-size:.84rem}.student-resume-banner-copy>span{color:#6e82a4;font-size:.68rem}.student-resume-banner-action{color:var(--student-blue);white-space:nowrap;align-items:center;gap:6px;font-size:.7rem;font-weight:850;display:inline-flex}.student-course-card{border:1px solid var(--student-line);background:var(--student-surface);border-radius:18px;min-height:310px;padding:23px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative;box-shadow:0 7px 24px #1e3a640b}.student-course-card:hover{box-shadow:var(--student-shadow);border-color:#b9cdf3;transform:translateY(-3px)}.student-course-card:focus-visible{border-color:var(--student-blue);box-shadow:0 0 0 4px #2f6bff33, var(--student-shadow)}.student-course-card-top{min-height:28px}.student-course-status{color:var(--student-muted);align-items:center;gap:7px;font-size:.67rem;font-weight:850;display:inline-flex}.student-course-status i{background:#aeb9c8;border-radius:999px;width:7px;height:7px;display:block}.student-course-status.is-active{color:var(--student-blue)}.student-course-status.is-active i{background:var(--student-blue);box-shadow:0 0 0 4px #e5edff}.student-course-status.is-finished{color:var(--student-green)}.student-course-status.is-finished i{background:var(--student-green);box-shadow:0 0 0 4px #e5f7f0}.student-course-card-arrow{width:32px;height:32px;color:var(--student-blue);background:var(--student-blue-soft);border-radius:10px;place-items:center;display:grid}.student-course-card-title{margin:17px 0 24px}.student-course-card h2{color:var(--student-ink);font-size:1.22rem;line-height:1.14}.student-course-card p{color:var(--student-muted);line-height:1.6}.course-progress{border-top:1px solid #edf1f7;gap:8px;padding-top:15px}.student-course-progress-label{color:var(--student-muted);font-size:.7rem}.student-course-progress-label strong{color:var(--student-ink)}.progress-track{background:#edf1f7;height:8px}.progress-track i{background:linear-gradient(90deg,#2f6bff,#6f96ff)}.student-course-meta{justify-content:initial;color:var(--student-muted);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-top:18px;font-size:.67rem;display:grid}.student-course-meta span{min-width:0}.student-course-meta svg{color:#8ba2c5;flex:none}.student-course-deadline{color:var(--student-amber)!important}.student-course-deadline svg{color:var(--student-amber)}.student-course-cta{color:var(--student-blue);margin-top:auto;padding-top:18px;font-size:.76rem;font-weight:850}.student-course-cta svg:last-child{margin-left:auto;transition:transform .18s}.student-course-card:hover .student-course-cta svg:last-child{transform:translate(3px)}.student-lesson-header{border-bottom:1px solid #dfe7f2;align-items:flex-end;margin-bottom:26px;padding-bottom:22px}.student-lesson-header-topline,.student-lesson-type-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-lesson-header-topline{gap:14px}.student-course-context{color:#8290a8;align-items:center;gap:6px;font-size:.72rem;font-weight:750;display:inline-flex}.student-course-context svg{color:#91a8cc}.student-lesson-type-row{margin-top:19px}.student-lesson-type{border-radius:999px;align-items:center;min-height:25px;padding:0 9px;font-size:.65rem;font-weight:850;display:inline-flex}.student-lesson-type.is-lecture{color:var(--student-green);background:var(--student-green-soft)}.student-lesson-type.is-practice{color:var(--student-amber);background:var(--student-amber-soft)}.student-step-indicator{color:#7e8ea9;margin:0;font-size:.7rem;font-weight:750}.student-lesson-header-main h1{max-width:800px;color:var(--student-ink);margin:9px 0;font-size:clamp(2rem,4vw,3.35rem);line-height:1.03}.student-back-link{color:#607695;margin-bottom:0}.student-lesson-due{color:#7c8ba2}.student-lesson-header-actions{align-items:flex-end}.student-outline-toggle{min-height:44px;color:var(--student-blue);background:var(--student-blue-soft);border:1px solid #cddcf6;border-radius:11px}.course-progress-pill{background:#fff;border:1px solid #d6e3fb;border-radius:13px;min-width:230px;box-shadow:0 5px 18px #1f375e0d}.course-progress-pill strong{color:var(--student-blue);font-size:1.55rem}.course-progress-pill span{color:#7788a2;line-height:1.45}.student-progress-summary{gap:5px;margin-top:8px}.student-progress-summary span{background:#fafcff;border:1px solid #e3eaf5;border-radius:7px;gap:1px;min-width:57px;padding:5px 7px;display:grid}.student-progress-summary small{color:#91a0b4;font-size:.58rem}.student-progress-summary strong{color:#3c537b;font-size:.68rem}.student-outline{border-color:var(--student-line);border-radius:16px;box-shadow:0 9px 28px #1f375e0f}.student-outline-backdrop.is-drawer{z-index:19;background:#0d1d3861;border:0;display:block;position:fixed;inset:0}.student-outline-header{background:#fbfcff}.student-outline-title{color:var(--student-blue)}.student-outline-module h2{color:#8290a8;letter-spacing:.08em}.student-outline-lesson,.student-outline-task{min-height:44px}.student-outline-lesson.selected{box-shadow:inset 3px 0 0 var(--student-blue)}.student-outline-task.selected{box-shadow:inset 3px 0 #7d9fff}.student-workspace-navigation{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin:0 0 14px;display:grid}.student-adjacent-lesson{color:#627592;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;min-width:0;min-height:52px;padding:7px 11px;display:flex}.student-adjacent-lesson-next{text-align:right;justify-content:flex-end}.student-adjacent-lesson:not(:disabled):hover{color:var(--student-blue);background:#fbfcff;border-color:#d7e3f7}.student-adjacent-lesson:disabled{opacity:.45;cursor:default}.student-adjacent-lesson>span:last-child,.student-adjacent-lesson>span:first-child{flex:none;font-size:1.1rem}.student-adjacent-lesson span:not([aria-hidden]){gap:2px;min-width:0;display:grid}.student-adjacent-lesson small{color:#97a4b7;font-size:.61rem;font-weight:800}.student-adjacent-lesson strong{color:#405575;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:800;overflow:hidden}.student-navigation-position{color:#8796ac;text-align:center;min-width:54px;font-size:.68rem;font-weight:850}.student-lecture-view{border:1px solid var(--student-line);min-height:0;box-shadow:var(--student-shadow);border-radius:18px;padding:clamp(28px,5vw,64px) clamp(20px,7vw,92px)}.student-lecture-view>.markdown-renderer,.student-lecture-view>.student-content-block,.student-lecture-view>.student-lecture-completion,.student-lecture-view>.lecture-toc,.student-lecture-view>.lesson-heading,.student-lecture-view>h2{max-width:860px;margin-inline:auto}.student-lecture-view>h2{margin-top:18px}.student-lecture-reading{max-width:860px;margin-inline:auto}.student-lecture-reading>.markdown-renderer{max-width:none}.student-lecture-reading>.student-lecture-block{margin-top:22px}.student-lecture-view .markdown-renderer{color:#30425f;font-size:.96rem;line-height:1.78}.student-lecture-view .markdown-renderer h1,.student-lecture-view .markdown-renderer h2,.student-lecture-view .markdown-renderer h3{color:var(--student-ink);line-height:1.2}.student-lecture-view .markdown-renderer h2{margin-top:2.1em}.student-lecture-view .markdown-renderer blockquote{background:#f4f7ff;border-left-color:#86a9ff}.student-next-step-card{background:#f5f8ff;border-color:#cfe0ff;max-width:860px;margin-inline:auto}.student-practice-layout{gap:18px}.practice-task-column,.practice-runner-column .runner{border-radius:18px}.practice-task-column{border-color:var(--student-line);box-shadow:var(--student-shadow);padding:clamp(22px,3vw,36px)}.practice-task-column h2{color:var(--student-ink);font-size:clamp(1.55rem,2.5vw,2.2rem)}.practice-task-column .task-statement{color:#30425f;font-size:.93rem;line-height:1.76}.practice-task-column .markdown-renderer{line-height:1.7}.practice-task-context{color:#7c8ba2;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.practice-task-context .due{white-space:nowrap;align-items:center;gap:5px;font-size:.69rem;font-weight:750;display:inline-flex}.practice-section{min-width:0}.practice-section>h3{color:var(--student-ink);letter-spacing:-.02em;margin:0 0 12px;font-size:.93rem}.practice-condition{border-bottom:1px solid #edf1f7;padding-bottom:22px}.practice-condition .task-statement{max-width:760px;margin:0}.practice-condition .task-statement>:first-child,.practice-lesson-content>:first-child,.practice-hint .markdown-renderer>:first-child{margin-top:0}.practice-condition .task-statement>:last-child,.practice-lesson-content>:last-child,.practice-hint .markdown-renderer>:last-child{margin-bottom:0}.practice-materials{border:0;gap:14px;margin-top:0;padding:24px 0 4px;display:grid}.practice-materials>h3{margin-bottom:0}.practice-lesson-content{margin-top:0}.practice-material-blocks{gap:14px;display:grid}.practice-examples{background:#fbfcff;border:1px solid #e3eaf4;border-radius:13px;gap:11px;margin-top:22px;padding:17px;display:grid}.practice-examples>h3{margin-bottom:0}.practice-example-list{gap:8px;display:grid}.practice-example-row{border-top:1px solid #e7edf5;grid-template-columns:minmax(110px,.35fr) minmax(0,1fr);align-items:start;gap:12px;padding:9px 0;display:grid}.practice-example-row:first-child{border-top:0}.practice-example-row>span{color:#7486a2;font-size:.7rem;font-weight:800}.practice-example-row pre{color:#263956;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;margin:0;font:500 .76rem/1.55 Source Code Pro,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;overflow:auto}.practice-example-row code{font:inherit}.practice-hint{background:#f3f7ff;border:1px solid #d5e1fb;border-left:3px solid #79a2ff;border-radius:12px;gap:6px;margin-top:20px;padding:15px 17px;display:grid}.practice-hint>h3{color:#315fc6;margin-bottom:0}.practice-hint .markdown-renderer p:first-child{margin-top:0}.practice-hint .markdown-renderer p:last-child{margin-bottom:0}.practice-submission-summary{background:#fbfcff;border:1px solid #e4eaf3;border-radius:13px;gap:10px;margin-top:22px;padding:17px;display:grid}.practice-submission-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.practice-submission-heading h3{margin:0}.practice-submission-summary .submission-state{border-top:0;margin:0;padding:0}.practice-submission-summary .reviewer-comment{margin-top:2px}@media (width>=601px){.practice-task-context{display:none}}.practice-runner-column .runner{border:1px solid #2b3d60;top:18px;box-shadow:0 14px 36px #0e1b3433}.student-app .runner-head strong{color:#f1f5ff;font-size:.86rem}.student-app .runner-head .eyebrow{letter-spacing:.12em;font-size:.61rem}.student-app .runner .code-editor,.student-app .runner .io-grid textarea,.student-app .runner .console{border-color:#31466b}.student-app .runner .code-editor:focus,.student-app .runner .io-grid textarea:focus{border-color:#7fa4ff;box-shadow:0 0 0 3px #648eff2e}.student-app .runner-actions{gap:7px}.student-app .runner-actions button{min-height:42px}.student-app .runner-actions .primary{box-shadow:0 7px 18px #2f6bff4d}.student-app .interactive-block{border-color:#dfe7f2;border-radius:15px;margin-top:22px;padding:18px;box-shadow:0 7px 22px #1f375e0b}.student-app .interactive-options label{color:#425572;border-color:#dfe7f2;min-height:44px}.student-app .interactive-options label:hover{background:#f7f9ff;border-color:#8eaff5}.student-app .interactive-options label:has(input:focus-visible){background:#f7f9ff;border-color:#8eaff5}.student-app .example,.student-app .hint,.student-app .reviewer-comment{border-radius:12px}.submission-state{color:#72839c;border-top:1px solid #edf1f7;flex-wrap:wrap;align-items:center;gap:8px;padding-top:16px;font-size:.72rem;display:flex}@media (width<=900px){.student-learning-overview{flex-direction:column;align-items:flex-start}.student-learning-overview-stats{border-top:1px solid #d9e5f4;border-left:0;width:100%;padding:14px 0 0}.student-lesson-header,.student-lesson-header-actions{align-items:stretch}.student-lesson-header-actions .course-progress-pill{flex:1}.student-workspace-navigation{gap:5px}.student-adjacent-lesson{padding-inline:6px}}@media (width<=600px){.student-app .page-header h1{font-size:2.15rem}.student-learning-overview{border-radius:15px;padding:18px}.student-learning-overview h2{font-size:1rem}.student-learning-overview-copy p:last-child{font-size:.74rem}.student-learning-overview-stats{gap:18px}.student-resume-banner{grid-template-columns:auto minmax(0,1fr);gap:10px}.student-resume-banner-action{grid-column:2;justify-self:start}.student-course-card{border-radius:16px;min-height:0;padding:20px}.student-course-card-title{margin:15px 0 20px}.student-course-meta{grid-template-columns:1fr}.student-lesson-header{margin-bottom:16px;padding-bottom:17px}.student-lesson-header-main h1{font-size:2rem}.student-lesson-header-actions{grid-template-columns:1fr;display:grid}.student-outline-toggle,.course-progress-pill{width:100%}.student-workspace-navigation{grid-template-columns:1fr auto 1fr}.student-adjacent-lesson{min-height:46px}.student-adjacent-lesson strong{max-width:100px}.student-adjacent-lesson small{font-size:.56rem}.student-lecture-view{border-radius:15px;padding:22px 17px 28px}.practice-task-column{padding:20px 17px}.practice-task-context{margin-bottom:13px;display:flex}.student-course-page.is-practice .student-lesson-type,.student-course-page.is-practice .student-lesson-due{display:none}.practice-condition{padding-bottom:18px}.practice-materials{padding-top:20px}.practice-example-row{grid-template-columns:1fr;gap:5px}.practice-examples,.practice-hint,.practice-submission-summary{padding:14px}.practice-submission-heading{flex-direction:column;align-items:flex-start;gap:8px}}@media (prefers-reduced-motion:reduce){.student-course-card,.student-course-cta svg:last-child{transition:none}}.student-course-workspace .student-lecture-view{min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.student-lecture-document{background:#fff;border:1px solid #dce6f3;border-radius:22px;width:min(100%,1120px);margin-inline:auto;padding:clamp(28px,4vw,56px) clamp(24px,5vw,68px) clamp(34px,5vw,68px);box-shadow:0 16px 40px #1f375e12}.student-lecture-document>.lesson-heading{max-width:900px;margin:0 auto 22px}.student-lecture-document>h2{max-width:900px;color:var(--student-ink);letter-spacing:-.055em;margin:0 auto 22px;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.1}.student-lecture-document .lecture-toc{background:0 0;border:0;border-bottom:1px solid #e7edf5;border-radius:0;flex-wrap:wrap;align-items:center;gap:8px 10px;max-width:900px;margin:0 auto 30px;padding:0 0 18px;display:flex}.student-lecture-document .lecture-toc strong{color:#8290a8;letter-spacing:.03em;margin-right:5px;font-size:.65rem}.student-lecture-document .lecture-toc a{color:#49658e;background:#f8faff;border:1px solid #dce6f4;border-radius:8px;padding:7px 10px;font-size:.7rem;font-weight:800;text-decoration:none}.student-lecture-document .lecture-toc a:hover,.student-lecture-document .lecture-toc a:focus-visible{color:var(--student-blue);background:#edf3ff;border-color:#b8ccef;text-decoration:none}.student-lecture-document .student-lecture-reading,.student-lecture-document>.student-lecture-completion{width:min(100%,900px);margin-inline:auto}.student-lecture-document .student-lecture-reading>.markdown-renderer{color:#30425f;font-size:.98rem;line-height:1.8}.student-lecture-document .student-lecture-reading>.markdown-renderer>:first-child{margin-top:0}.student-lecture-document .student-lecture-reading>.markdown-renderer>:last-child{margin-bottom:0}.student-lecture-document .student-lecture-block{margin-top:26px}.student-lecture-document .student-lecture-block>.interactive-block{box-shadow:none;margin-top:0}.student-course-workspace.is-practice .practice-task-column>h2{margin-top:0}@media (width>=901px){.student-course-workspace .student-lesson-header{padding-top:10px;padding-bottom:17px}.student-course-workspace .student-lesson-type-row{margin-top:10px}.student-course-workspace .student-lesson-header-main h1{margin-top:7px;margin-bottom:6px;font-size:clamp(2.1rem,3.3vw,3.15rem)}.student-course-workspace .student-course-body.is-lecture{padding:12px clamp(24px,4vw,64px) 0}.student-course-workspace.is-practice .practice-task-column{background:#fff}}@media (width<=900px){.student-lecture-document{border-radius:16px;padding:24px 18px 30px}.student-lecture-document .lecture-toc{align-items:stretch;gap:7px;margin-bottom:24px;padding-bottom:16px;display:grid}.student-lecture-document .lecture-toc strong{margin:0}.student-lecture-document .lecture-toc a{display:block}}.course-progress-pill small{color:#7788a2;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px;font-size:.62rem;font-weight:750;display:block}@media (width>=1280px){.student-course-workspace.is-lecture .student-course-body.is-lecture{grid-template-columns:272px minmax(0,1fr);gap:28px;padding-inline:clamp(28px,4vw,72px)}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(0,1.06fr) minmax(460px,.94fr)}.student-course-workspace.is-practice .practice-task-column{padding:clamp(40px,5vw,80px)}}@media (width>=901px) and (width<=1279px){.student-course-workspace .student-lesson-header{gap:16px;min-height:0;padding:18px clamp(24px,4vw,48px)}.student-course-workspace .student-lesson-header-main h1{font-size:clamp(2rem,5vw,2.75rem)}.student-course-workspace .course-progress-pill{min-width:auto;padding:10px 13px}.student-course-workspace .course-progress-pill>div>span,.student-course-workspace .course-progress-pill .student-progress-summary{display:none}.student-course-workspace .course-progress-pill strong{font-size:1.3rem}.student-course-workspace .student-course-body.is-lecture{padding:20px clamp(24px,6vw,72px) 0;display:block}.student-course-workspace .student-lecture-document{width:min(100%,820px);margin-inline:auto}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{background:0 0;min-height:0;display:block}.student-course-workspace.is-practice .practice-task-column{border:0;border-radius:20px;min-height:0;padding:clamp(30px,5vw,56px);box-shadow:0 12px 32px #19305614}.student-course-workspace.is-practice .practice-runner-column{border-radius:20px;height:auto;min-height:0;margin:20px clamp(24px,6vw,72px) 0;position:static;overflow:visible}.student-course-workspace.is-practice .practice-runner-column .runner{border-radius:20px;height:auto;min-height:560px;max-height:none;overflow:visible}.student-course-workspace.is-practice .practice-tabs{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100% - clamp(48px,12vw,144px),480px);margin:20px auto 0;display:grid}.student-course-workspace.is-practice .student-practice-layout[data-active-tab=task] .practice-runner-column,.student-course-workspace.is-practice .student-practice-layout[data-active-tab=runner] .practice-task-column{display:none}}@media (width<=1279px){.student-course-workspace .student-workspace-navigation{padding-inline:clamp(20px,4vw,48px)}.student-course-workspace .student-lesson-header-actions{align-items:flex-end}}@media (width>=901px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(360px, var(--task-pane,40%)) 10px minmax(520px, 1fr);height:calc(100dvh - 132px);min-height:calc(100dvh - 132px);overflow:hidden}.student-course-workspace.is-practice .practice-task-column{height:100%;min-height:0;box-shadow:none;border-radius:0;overflow:auto}.student-course-workspace.is-practice .practice-runner-column{border-radius:0;height:100%;min-height:0;position:static;overflow:hidden}.student-course-workspace.is-practice .practice-runner-column .ide-runner{grid-template-rows:auto minmax(280px, 1fr) 10px var(--console-height,220px) auto auto;border:0;border-radius:0;height:100%;min-height:0;max-height:none;padding:18px 20px 14px;display:grid;overflow:hidden}.panel-resizer{appearance:none;z-index:2;background:0 0;border:0;padding:0;position:relative}.panel-resizer:before{content:"";background:#bdcbe0;border-radius:999px;transition:background .15s,box-shadow .15s;position:absolute}.panel-resizer:hover:before,.panel-resizer:focus-visible:before{background:#4b7cff;box-shadow:0 0 0 3px #4b7cff2e}.panel-resizer:focus-visible{outline:none}.panel-resizer.horizontal{cursor:col-resize}.panel-resizer.horizontal:before{inset:0 3px}.panel-resizer.vertical{cursor:row-resize}.panel-resizer.vertical:before{inset:3px 0}.editor-zone{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.monaco-editor-shell,.monaco-editor-host{height:100%;min-height:0}.monaco-editor-host{border:1px solid #31466b;border-radius:9px;overflow:hidden}.runner-console-zone{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.runner-console-tabs{border-bottom:1px solid #31466b;align-items:center;gap:4px;display:flex}.runner-console-tabs button{color:#9db1d3;background:0 0;border:0;padding:7px 10px;font-size:.7rem;font-weight:800}.runner-console-tabs button[aria-selected=true]{color:#fff;border-bottom:2px solid #7fa4ff}.runner-console-tabs .has-errors{color:#ffb1a7}.runner-console-content{min-height:0}.runner-console-content .console,.console-input-label textarea{box-sizing:border-box;border-radius:0 0 8px 8px;width:100%;height:100%;min-height:0;margin:0}.console-input-label{color:#9db1d3;gap:5px;height:100%;padding-top:6px;font-size:.68rem;display:grid}.console-input-label textarea{resize:none;color:#e8f0ff;background:#111a2c;border:1px solid #31466b;padding:10px;font:.78rem/1.5 ui-monospace,monospace}.runner-status{color:#9db1d3;align-items:center;gap:8px;font-size:.65rem;display:flex}.runner-example-check{color:#a9c2ff;background:0 0;border:0;justify-self:start;align-items:center;gap:6px;padding:8px 2px 0;font-size:.72rem;font-weight:800;display:inline-flex}}@media (width<=900px){.panel-resizer{display:none}.student-course-workspace.is-practice .practice-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.ide-runner .editor-zone,.ide-runner .runner-console-zone{margin-top:12px}.ide-runner .runner-console-tabs{gap:4px;display:flex}.ide-runner .runner-console-tabs button{color:#aabbd8;background:#18233a;border:1px solid #31466b;border-radius:7px;flex:1;padding:8px;font-size:.7rem}.ide-runner .runner-console-tabs button[aria-selected=true]{color:#fff;border-color:#7fa4ff}.ide-runner .console-input-label{color:#9db1d3;gap:6px;margin-top:8px;font-size:.7rem;display:grid}.ide-runner .console-input-label textarea{box-sizing:border-box;color:#e8f0ff;background:#111a2c;border:1px solid #31466b;border-radius:8px;width:100%;min-height:112px;padding:10px}.ide-runner .console{min-height:112px;margin-top:8px}.ide-runner .runner-example-check{color:#a9c2ff;background:0 0;border:0;padding:10px 0 0;font-weight:800}}.student-course-workspace{--workspace-canvas:#f6f8fc;--workspace-paper:#fff;--workspace-ink:#16233b;--workspace-muted:#64748b;--workspace-line:#dce5f1;--workspace-blue:#2f6bff;--workspace-blue-soft:#edf3ff;--workspace-green:#167a62;--workspace-amber:#a96612;--workspace-ide:#111b2e;--workspace-ide-panel:#0c1526;--workspace-ide-line:#2c4268;color:var(--workspace-ink);background:var(--workspace-canvas)}.student-course-workspace .student-lesson-header{border-bottom:1px solid var(--workspace-line);background:color-mix(in srgb, var(--workspace-paper) 88%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;margin:0;padding:22px clamp(24px,4vw,64px) 18px;display:grid}.student-course-workspace .student-lesson-header-main h1{max-width:780px;color:var(--workspace-ink);letter-spacing:-.055em;margin:8px 0 6px;font-size:clamp(1.9rem,3vw,3rem);line-height:1.05}.student-course-workspace .student-step-indicator,.student-course-workspace .student-lesson-due{color:var(--workspace-muted)}.student-course-workspace .student-lesson-header-actions{gap:10px}.student-course-workspace .student-outline-toggle{color:#235ad5;background:var(--workspace-blue-soft);min-height:42px;box-shadow:none;border:1px solid #cbdcf8;border-radius:10px;padding-inline:13px}.student-course-workspace .course-progress-pill{background:var(--workspace-paper);min-width:244px;box-shadow:none;border:1px solid #dce6f5;border-radius:13px;padding:11px 13px}.student-course-workspace .course-progress-pill strong{color:var(--workspace-blue)}.student-course-workspace .student-course-body{min-width:0}.student-course-workspace .student-workspace-navigation{border-bottom:1px solid var(--workspace-line);background:var(--workspace-paper);min-height:54px;margin:0;padding:8px clamp(24px,4vw,64px)}.student-course-workspace .student-adjacent-lesson{border-radius:8px;min-height:38px;padding:5px 8px}.student-course-workspace .student-adjacent-lesson small{font-size:.6rem}.student-course-workspace .student-adjacent-lesson strong{font-size:.69rem}.student-course-workspace .student-navigation-position{color:#8a99af}.student-course-workspace.is-lecture .student-course-body{max-width:1400px;margin-inline:auto;padding:26px clamp(24px,4vw,64px) 72px}.student-course-workspace.is-lecture .student-course-main{min-width:0}.student-course-workspace .student-lecture-view{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.student-course-workspace .student-lecture-document{border:1px solid var(--workspace-line);background:var(--workspace-paper);border-radius:18px;width:min(100%,920px);margin-inline:auto;padding:clamp(34px,5vw,66px) clamp(24px,7vw,92px) clamp(42px,6vw,82px);box-shadow:0 18px 44px #21375b0f}.student-course-workspace .student-lecture-document>.lesson-heading,.student-course-workspace .student-lecture-document>h2,.student-course-workspace .student-lecture-document .student-lecture-reading,.student-course-workspace .student-lecture-document>.student-lecture-completion{width:min(100%,720px);margin-inline:auto}.student-course-workspace .student-lecture-document>.lesson-heading{margin-bottom:22px}.student-course-workspace .student-lecture-document>h2{letter-spacing:-.05em;margin-top:0;margin-bottom:28px;font-size:clamp(1.85rem,3vw,2.5rem);line-height:1.1}.student-course-workspace .student-lecture-document .lecture-toc{background:#f8faff;border:1px solid #e4ebf5;border-radius:12px;width:min(100%,720px);margin:0 auto 32px;padding:16px 18px}.student-course-workspace .student-lecture-document .lecture-toc strong{color:#506887;margin-bottom:8px;font-size:.72rem;display:block}.student-course-workspace .student-lecture-document .lecture-toc a{color:#315fc6;background:0 0;border:0;border-radius:0;padding:5px 0;font-size:.79rem;display:block}.student-course-workspace .student-lecture-reading>.markdown-renderer{color:#334561;font-size:1rem;line-height:1.82}.student-course-workspace .student-lecture-reading>.markdown-renderer h2,.student-course-workspace .student-lecture-reading>.markdown-renderer h3{color:var(--workspace-ink);margin-top:2.25em;line-height:1.18}.student-course-workspace .student-lecture-reading>.markdown-renderer h2{font-size:1.6rem}.student-course-workspace .student-lecture-reading>.markdown-renderer h3{font-size:1.17rem}.student-course-workspace .student-lecture-block{margin-top:28px}.student-course-workspace .student-lecture-completion{border-radius:13px;margin-top:34px}.student-course-workspace .student-outline-docked{border-radius:14px;top:20px;box-shadow:0 12px 30px #21375b12}.student-course-workspace.is-practice .student-course-main,.student-course-workspace.is-practice .student-practice-shell{width:100%}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{background:var(--workspace-paper);width:100%;min-width:0;display:grid}.student-course-workspace.is-practice .practice-task-column{background:var(--workspace-paper);min-width:0;box-shadow:none;border:0;border-radius:0}.student-course-workspace.is-practice .practice-task-column>h2,.student-course-workspace.is-practice .practice-task-column>.practice-section{width:min(100%,760px);margin-right:auto}.student-course-workspace .practice-task-column h2{color:var(--workspace-ink);margin:0 0 24px}.student-course-workspace .practice-section>h3{color:#263a57}.student-course-workspace .practice-materials{padding-top:28px}.student-course-workspace .practice-examples{background:#f8faff;border-color:#e2eaf4}.student-course-workspace .practice-hint{background:#f2f6ff;border-color:#cbdcff}.student-course-workspace .practice-submission-summary{background:#fbfcff;border-color:#e1e8f2}.student-course-workspace .ide-runner{background:var(--workspace-ide);box-shadow:none;border:0;border-radius:0}.student-course-workspace .runner-head{border-bottom:1px solid var(--workspace-ide-line);padding-bottom:14px}.student-course-workspace .runner-head strong{color:#f2f6ff}.student-course-workspace .runner-status{color:#aebfdb}.student-course-workspace .runner-console-tabs{border-bottom-color:var(--workspace-ide-line)}.student-course-workspace .runner-console-tabs button{min-height:36px}.student-course-workspace .runner-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.student-course-workspace .runner-actions button{min-height:40px}.student-course-workspace .runner-actions .primary{box-shadow:none}.student-course-workspace .runner-example-check{margin-top:4px}@media (width>=1100px){.student-course-workspace.is-practice .editor-zone{grid-template-rows:minmax(0,1fr)}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(360px, var(--task-pane,40%)) 8px minmax(520px, 1fr);height:calc(100dvh - 162px);min-height:560px;overflow:hidden}.student-course-workspace.is-practice .practice-task-column{height:100%;padding:clamp(32px,4vw,64px) clamp(30px,5vw,84px) 56px;overflow-y:auto}.student-course-workspace.is-practice .practice-runner-column{height:100%;min-height:0;position:static;overflow:hidden}.student-course-workspace.is-practice .practice-runner-column .ide-runner{grid-template-rows:auto minmax(220px, 1fr) 8px minmax(150px, var(--console-height,220px)) auto auto;height:100%;min-height:0;padding:20px 22px 16px;display:grid;overflow:hidden}.student-course-workspace .editor-zone,.student-course-workspace .runner-console-zone,.student-course-workspace .monaco-editor-shell,.student-course-workspace .monaco-editor-host{height:100%;min-height:0}.student-course-workspace .monaco-editor-shell{min-width:0;position:relative}.student-course-workspace .monaco-editor-loading-state,.student-course-workspace .monaco-editor-loading{border:1px solid var(--workspace-ide-line);color:#d6e3fa;text-align:center;background:linear-gradient(145deg,#172541,#101a2d);border-radius:9px;place-content:center;gap:6px;min-height:180px;padding:24px;font-size:.78rem;font-weight:800;display:grid}.student-course-workspace .monaco-editor-loading-state{z-index:2;box-sizing:border-box;position:absolute;inset:0}.student-course-workspace .monaco-editor-loading-state small,.student-course-workspace .monaco-editor-loading small{color:#879bc0;font-size:.68rem;font-weight:500}.student-course-workspace .monaco-editor-shell.is-ready .monaco-editor-loading-state{display:none}.student-course-workspace .runner-console-content{min-height:0}.student-course-workspace .runner-console-content .console,.student-course-workspace .console-input-label,.student-course-workspace .console-input-label textarea{height:100%;min-height:0}.student-course-workspace .panel-resizer.horizontal{cursor:col-resize;display:block}.student-course-workspace .panel-resizer.vertical{cursor:row-resize;width:100%;display:block}}@media (width>=901px) and (width<=1099px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{background:0 0;padding:0 clamp(24px,5vw,56px) 44px;display:block}.student-course-workspace.is-practice .practice-task-column,.student-course-workspace.is-practice .practice-runner-column{display:none}.student-course-workspace.is-practice .student-practice-layout[data-active-tab=task] .practice-task-column,.student-course-workspace.is-practice .student-practice-layout[data-active-tab=code] .practice-runner-column,.student-course-workspace.is-practice .student-practice-layout[data-active-tab=console] .practice-runner-column{display:block}.student-course-workspace.is-practice .practice-task-column{border:1px solid var(--workspace-line);border-radius:16px;padding:32px 36px}.student-course-workspace.is-practice .practice-runner-column{margin-top:0}.student-course-workspace.is-practice .ide-runner{border-radius:16px;min-height:620px;padding:24px}.student-course-workspace.is-practice .practice-tabs{border:1px solid var(--workspace-line);background:#edf3fb;border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;width:min(100% - 48px,560px);margin:18px auto 14px;padding:4px;display:grid}.student-course-workspace.is-practice .practice-tabs button{color:#6b7d98;background:0 0;border:0;border-radius:10px;min-height:44px;font-size:.78rem;font-weight:800}.student-course-workspace.is-practice .practice-tabs button.active{color:#245bd7;background:#fff;box-shadow:0 3px 12px #2b4f891a}}@media (width<=900px){.student-course-workspace .student-lesson-header{grid-template-columns:1fr;gap:16px;padding:18px 16px 14px}.student-course-workspace .student-lesson-header-main h1{font-size:clamp(1.75rem,9vw,2.25rem)}.student-course-workspace .student-lesson-header-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.student-course-workspace .course-progress-pill{min-width:0}.student-course-workspace .student-outline-toggle{justify-content:center;width:100%}.student-course-workspace .student-workspace-navigation{padding:6px 12px}.student-course-workspace .student-adjacent-lesson small{display:none}.student-course-workspace .student-adjacent-lesson strong{max-width:105px}.student-course-workspace.is-lecture .student-course-body{padding:18px 14px 42px}.student-course-workspace .student-lecture-document{border-radius:14px;padding:26px 18px 34px}.student-course-workspace .student-lecture-document .lecture-toc{padding:13px 14px}.student-course-workspace .student-lecture-reading>.markdown-renderer{font-size:.96rem;line-height:1.74}.student-course-workspace.is-practice .practice-tabs{border:0;border-bottom:1px solid var(--workspace-line);background:var(--workspace-paper);border-radius:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin:0;padding:7px 12px;display:grid}.student-course-workspace .practice-tabs button{border-radius:8px;min-height:40px;padding:8px 4px;font-size:.72rem}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{background:var(--workspace-paper);display:block}.student-course-workspace.is-practice .practice-task-column,.student-course-workspace.is-practice .practice-runner-column{display:none}.student-course-workspace.is-practice .student-practice-layout[data-active-tab=task] .practice-task-column,.student-course-workspace.is-practice .student-practice-layout[data-active-tab=code] .practice-runner-column,.student-course-workspace.is-practice .student-practice-layout[data-active-tab=console] .practice-runner-column{display:block}.student-course-workspace.is-practice .practice-task-column{padding:26px 17px 42px}.student-course-workspace.is-practice .practice-runner-column{margin:0}.student-course-workspace.is-practice .ide-runner{border-radius:0;min-height:calc(100dvh - 242px);padding:16px 14px 12px}.student-course-workspace .ide-runner[data-mobile-view=code] .runner-console-zone,.student-course-workspace .ide-runner[data-mobile-view=code] .panel-resizer,.student-course-workspace .ide-runner[data-mobile-view=console] .editor-zone{display:none}.student-course-workspace .ide-runner[data-mobile-view=console]{grid-template-rows:auto minmax(260px,1fr) auto auto}.student-course-workspace .ide-runner[data-mobile-view=console] .runner-console-zone{min-height:260px}.student-course-workspace .runner-actions{flex-wrap:wrap;justify-content:stretch}.student-course-workspace .runner-actions button{flex:132px}.student-course-workspace .student-mobile-action-bar{padding:10px 14px max(12px, env(safe-area-inset-bottom));margin:6px -14px -12px}}.student-course-workspace.is-practice .practice-task-column{color:var(--workspace-ink)}.student-course-workspace .practice-task-context{margin-bottom:18px}.student-course-workspace .practice-task-name{color:#3b5272;margin:0 0 16px;font-size:.92rem;font-weight:800;line-height:1.35}.student-course-workspace .practice-condition{padding-bottom:18px}.student-course-workspace .practice-condition .task-statement{color:#40536e;font-size:.86rem;line-height:1.65}.student-course-workspace .practice-condition .task-statement ul,.student-course-workspace .practice-condition .task-statement ol{padding-left:20px}.student-course-workspace .practice-disclosure{border-top:1px solid #e5ecf5;margin-top:14px}.student-course-workspace .practice-disclosure summary{color:#395274;cursor:pointer;justify-content:space-between;align-items:center;min-height:46px;font-size:.82rem;font-weight:800;list-style:none;display:flex}.student-course-workspace .practice-disclosure summary::-webkit-details-marker{display:none}.student-course-workspace .practice-disclosure summary>span{align-items:center;gap:8px;display:inline-flex}.student-course-workspace .practice-disclosure summary>svg{transition:transform .18s}.student-course-workspace .practice-disclosure[open] summary>svg{transform:rotate(180deg)}.student-course-workspace .practice-disclosure summary:focus-visible{outline-offset:-3px;border-radius:8px;outline:3px solid #2f6bff3d}.student-course-workspace .practice-disclosure-content{color:#52637a;padding:2px 0 18px;font-size:.82rem;line-height:1.65}.student-course-workspace .practice-disclosure-content>.markdown-renderer>:first-child{margin-top:0}.student-course-workspace .practice-disclosure-content>.markdown-renderer>:last-child{margin-bottom:0}.student-course-workspace .practice-material-blocks{gap:12px;margin-top:12px}.student-course-workspace .practice-lesson-material{border-top:1px solid #e5ecf5;margin-top:18px;padding-top:22px}.student-course-workspace .practice-material-title{color:#395274;align-items:center;gap:7px;margin:0 0 14px;font-size:.82rem;display:flex}.student-course-workspace .practice-material-title svg{color:#5d83d7}.student-course-workspace .practice-lesson-material .practice-lesson-content{color:#52637a;font-size:.86rem;line-height:1.7}.student-course-workspace .practice-lesson-material .practice-lesson-content>:first-child{margin-top:0}.student-course-workspace .practice-lesson-material .practice-lesson-content>:last-child{margin-bottom:0}.student-course-workspace .practice-lesson-material .practice-material-blocks{margin-top:20px}.student-course-workspace .practice-examples{background:#f8faff;border-radius:10px;gap:7px;margin-top:16px;padding:13px 14px}.student-course-workspace .practice-examples h3{margin-bottom:2px;font-size:.76rem}.student-course-workspace .practice-example-row{grid-template-columns:84px minmax(0,1fr);gap:8px}.student-course-workspace .practice-example-row span{color:#73839b;font-size:.67rem}.student-course-workspace .practice-example-row pre{color:#263e61;min-width:0;font-size:.72rem}.student-course-workspace .practice-hint{border-top-color:#d9e4fa}.student-course-workspace .practice-hint summary{color:#315fc6}.student-course-workspace .practice-submission-summary{box-shadow:none;border-radius:10px;gap:7px;margin-top:16px;padding:13px 14px;display:grid}.student-course-workspace .practice-submission-heading h3{margin:0;font-size:.78rem}.student-course-workspace .reviewer-comment .reviewer-role{color:#6f7f95;margin-top:3px;font-size:.7rem;font-weight:700;display:block}.student-course-workspace .submission-state{color:#71819a;font-size:.69rem}@media (width>=1100px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(280px, var(--task-pane)) 12px minmax(520px, 1fr);box-sizing:border-box;width:calc(100% - clamp(14px,1.5vw,28px));max-width:calc(100% - clamp(14px,1.5vw,28px));height:calc(100dvh - 156px);min-height:600px;margin-right:clamp(14px,1.5vw,28px);overflow:hidden}.student-course-workspace.is-practice .practice-task-column{padding:26px 24px 40px}.student-course-workspace.is-practice .practice-task-column>h2,.student-course-workspace.is-practice .practice-task-column>.practice-section,.student-course-workspace.is-practice .practice-task-column>.practice-disclosure{width:100%;max-width:none}.student-course-workspace.is-practice .practice-runner-column .ide-runner{grid-template-rows:auto minmax(260px,1fr) 8px minmax(180px,33%) auto auto;min-width:0;padding:16px 18px 14px}.student-course-workspace.is-practice .practice-runner-column,.student-course-workspace.is-practice .editor-zone,.student-course-workspace.is-practice .monaco-editor-shell,.student-course-workspace.is-practice .monaco-editor-host{min-width:0;max-width:100%}.student-course-workspace.is-practice .panel-resizer.horizontal{cursor:col-resize;background:#f5f8fd;place-items:center;width:12px;min-width:12px;display:grid}.student-course-workspace.is-practice .panel-resizer.horizontal:before{background:#aebed6;width:3px;height:48px;position:static}.student-course-workspace.is-practice .panel-resizer.horizontal:after{content:"";background:#4b7cff;border-radius:50%;width:7px;height:7px;margin-top:-28px;box-shadow:0 0 0 3px #edf3ff}.student-course-workspace .runner-head{justify-content:space-between;align-items:center;min-height:30px;padding-bottom:10px;display:flex}.student-course-workspace .runner-head .eyebrow{display:none}.student-course-workspace .runner-head strong:before{content:"solution.py  ·  ";color:#9fb4d7;font-size:.72rem;font-weight:700}.student-course-workspace .editor-zone{margin-top:8px}.student-course-workspace .code-label{display:none}.student-course-workspace .runner-console-zone{padding-top:6px}.student-course-workspace .runner-console-content{min-height:0}.student-course-workspace .console-input-label{min-height:0;padding-top:4px}.student-course-workspace .console-input-label textarea{min-height:0}.student-course-workspace .runner-actions{padding-top:10px}.student-course-workspace .runner-actions .ghost{color:#b7c6e0}.student-course-workspace .runner-example-check{padding:4px 0 0}.student-course-workspace .runner-save,.student-course-workspace .runner-local-restore,.student-course-workspace .runner-elapsed,.student-course-workspace .ide-runner>.runner-save{font-size:.68rem}}@media (width<=1099px){.student-course-workspace .practice-disclosure-content{font-size:.86rem}.student-course-workspace .practice-task-name{font-size:1rem}}@media (prefers-reduced-motion:reduce){.student-course-workspace *,.student-course-workspace :before,.student-course-workspace :after{scroll-behavior:auto!important;transition:none!important}}:root{--student-flow-bg:#f4f7fb;--student-flow-paper:#fff;--student-flow-ink:#17263f;--student-flow-body:#3f526e;--student-flow-muted:#72839d;--student-flow-line:#dbe5f1;--student-flow-blue:#2f6bff;--student-flow-blue-soft:#edf3ff;--student-flow-green:#14795f;--student-flow-green-soft:#e8f7f0;--student-flow-amber:#a76611;--student-flow-amber-soft:#fff4df;--student-flow-red:#b04a45;--student-flow-red-soft:#fff0ef;--student-flow-radius-sm:10px;--student-flow-radius-md:16px;--student-flow-radius-lg:22px;--student-flow-shadow:0 18px 55px #27406814;--student-flow-focus:0 0 0 4px #2f6bff33}.student-app{background:var(--student-flow-bg);color:var(--student-flow-ink);overflow-x:hidden}.student-app .app-sidebar{width:248px;color:var(--student-flow-ink);background:#fbfdff;border-right:1px solid #dce5f0;padding:22px 14px 18px;box-shadow:6px 0 30px #233f6709}.student-app .side-brand{color:var(--student-flow-ink);margin-bottom:30px}.student-app .side-brand-copy{gap:2px}.student-app .brand-name{letter-spacing:-.02em;font-size:.98rem}.student-app .sidebar-role{color:#8a9bb3;font-size:.63rem}.student-app .app-nav{gap:20px}.student-app .nav-group{gap:7px}.student-app .nav-group-label{color:#99a8bc;letter-spacing:.1em;padding:0 12px;font-size:.62rem}.student-app .nav-group-items{gap:3px}.student-app .nav-group-items a{border-radius:var(--student-flow-radius-sm);color:#61738f;min-height:46px;padding:10px 12px;font-size:.8rem;position:relative}.student-app .nav-group-items a:hover{color:var(--student-flow-ink);background:#f0f5fc}.student-app .nav-group-items a.nav-active{color:#245bd7;background:var(--student-flow-blue-soft);box-shadow:inset 3px 0 0 var(--student-flow-blue)}.student-app .nav-group-items a.nav-active svg{color:var(--student-flow-blue)}.student-app .profile{border-top:1px solid #e5ebf3;padding:12px 9px}.student-app .profile strong{color:var(--student-flow-ink);font-size:.74rem}.student-app .profile small{color:#8a9bb3}.student-app .sign-out{color:#6d7f99;border-radius:var(--student-flow-radius-sm)}.student-app .sign-out:hover{color:var(--student-flow-ink);background:#f0f5fc}.student-app .sidebar-collapse:focus-visible,.student-app .nav-group-items a:focus-visible,.student-app .sign-out:focus-visible{box-shadow:var(--student-flow-focus);outline:none}.student-app .workspace.workspace-immersive{background:var(--student-flow-bg);width:calc(100% - 248px);margin-left:248px;padding:0 0 52px}.student-app.sidebar-collapsed .app-sidebar{width:76px}.student-app.sidebar-collapsed .workspace.workspace-immersive{width:calc(100% - 76px);margin-left:76px}.student-app .workspace.workspace-immersive>.breadcrumbs{max-width:none;margin:0;padding:18px clamp(28px,5vw,76px) 0}.student-app.student-catalog-route .workspace>.page-header,.student-app.student-catalog-route .workspace>.student-learning-overview,.student-app.student-catalog-route .workspace>.student-resume-banner,.student-app.student-catalog-route .workspace>.student-course-grid{max-width:1180px;margin-inline:auto}.student-app.student-catalog-route .page-header{border-bottom:1px solid var(--student-flow-line);align-items:end;margin:32px auto 28px;padding-bottom:24px}.student-app.student-catalog-route .page-header h1{max-width:820px;color:var(--student-flow-ink);letter-spacing:-.065em;font-size:clamp(2.2rem,4vw,3.55rem)}.student-app.student-catalog-route .page-description{max-width:650px;color:var(--student-flow-muted)}.student-app.student-catalog-route .student-learning-overview{border:1px solid var(--student-flow-line);border-radius:var(--student-flow-radius-md);background:var(--student-flow-paper);box-shadow:none;margin-bottom:20px;padding:18px 20px}.student-app.student-catalog-route .student-learning-overview h2{font-size:1.14rem}.student-app.student-catalog-route .student-resume-banner{border-radius:var(--student-flow-radius-md);box-shadow:none;background:#f0f5ff;margin-bottom:24px}.student-app.student-catalog-route .student-course-grid{gap:20px}.student-app.student-catalog-route .student-course-card{border:1px solid var(--student-flow-line);border-radius:var(--student-flow-radius-lg);min-height:320px;padding:24px;box-shadow:0 8px 24px #20385e0b}.student-app.student-catalog-route .student-course-card:hover{box-shadow:var(--student-flow-shadow);border-color:#b9cdf0;transform:translateY(-2px)}.student-app.student-catalog-route .student-course-card:focus-visible{box-shadow:var(--student-flow-focus), var(--student-flow-shadow);outline:none}.student-app.student-catalog-route .student-course-card h2{font-size:1.38rem;line-height:1.12}.student-app.student-catalog-route .student-course-card p{min-height:48px;color:var(--student-flow-muted);font-size:.8rem}.student-app.student-catalog-route .student-course-card .course-progress{border-top:1px solid #edf1f6;padding-top:16px}.student-app.student-catalog-route .student-course-card .student-course-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.student-app.student-catalog-route .student-course-card .student-course-cta{padding-top:20px;font-size:.8rem}.student-course-workspace{--workspace-canvas:var(--student-flow-bg);--workspace-paper:var(--student-flow-paper);--workspace-ink:var(--student-flow-ink);--workspace-muted:var(--student-flow-muted);--workspace-line:var(--student-flow-line);background:var(--student-flow-bg)}.student-course-workspace .student-lesson-header{border-bottom:1px solid var(--student-flow-line);background:var(--student-flow-paper);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;padding:24px clamp(28px,5vw,76px) 22px}.student-course-workspace .student-lesson-header-main{min-width:0}.student-course-workspace .student-lesson-header-main h1{max-width:980px;color:var(--student-flow-ink);letter-spacing:-.075em;overflow-wrap:anywhere;margin:11px 0 8px;font-size:clamp(2.05rem,3.5vw,3.35rem);line-height:1.02}.student-course-workspace .student-lesson-header-topline{gap:12px}.student-course-workspace .student-back-link{color:#45648f;font-size:.76rem}.student-course-workspace .student-course-context{color:var(--student-flow-muted)}.student-course-workspace .student-lesson-type-row{margin-top:16px}.student-course-workspace .student-step-indicator{color:#607796;font-size:.72rem}.student-course-workspace .student-lesson-due{color:var(--student-flow-muted);font-size:.72rem}.student-course-workspace .student-lesson-header-actions{align-items:end;gap:12px}.student-course-workspace .student-outline-toggle{background:var(--student-flow-blue-soft);color:#245bd7;border:1px solid #c8d9f7;border-radius:11px;min-height:44px}.student-course-workspace .student-outline-toggle:focus-visible{box-shadow:var(--student-flow-focus);outline:none}.student-course-workspace .course-progress-pill{border:1px solid var(--student-flow-line);min-width:270px;box-shadow:none;background:#fbfdff;border-radius:14px;padding:13px 15px 12px}.student-course-workspace .course-progress-pill-head{justify-content:space-between;align-items:end;gap:12px;display:flex}.student-course-workspace .course-progress-pill-head>div{gap:1px;display:grid}.student-course-workspace .course-progress-pill-head small{color:#8a9bb2;letter-spacing:.08em;text-transform:uppercase;font-size:.59rem;font-weight:800}.student-course-workspace .course-progress-pill-head strong{color:var(--student-flow-blue);letter-spacing:-.05em;font-size:1.65rem;line-height:1}.student-course-workspace .course-progress-pill-head>span{color:#8292a9;white-space:nowrap;font-size:.63rem}.student-course-workspace .course-progress-track{background:#e7edf6;border-radius:999px;height:5px;margin:11px 0 9px;overflow:hidden}.student-course-workspace .course-progress-track i{border-radius:inherit;background:var(--student-flow-blue);height:100%;transition:width .25s;display:block}.student-course-workspace .course-progress-pill .student-progress-summary{margin-top:0}.student-course-workspace .course-progress-pill .student-progress-summary span{background:#f1f5fb;padding:5px 7px}.student-course-workspace .course-progress-pill .student-progress-summary small{font-size:.56rem}.student-course-workspace .course-progress-pill .student-progress-summary strong{color:#395577;font-size:.68rem}.student-course-workspace .course-progress-pill .progress-stat-lessons strong{color:var(--student-flow-green)}.student-course-workspace .course-progress-pill .progress-stat-practice strong{color:var(--student-flow-blue)}.student-course-workspace .course-progress-pill .progress-stat-checks strong{color:var(--student-flow-amber)}.student-course-workspace .course-progress-pill .progress-stat.is-complete strong{color:var(--student-flow-green)}.student-course-workspace .student-workspace-navigation{border-bottom:1px solid var(--student-flow-line);background:#f9fbfe;min-height:60px;padding:8px clamp(28px,5vw,76px)}.student-course-workspace .student-adjacent-lesson{border-radius:10px;min-height:44px}.student-course-workspace .student-adjacent-lesson:not(:disabled):hover{background:#eef4ff}.student-course-workspace .student-adjacent-lesson strong{color:#456181;font-size:.72rem}.student-course-workspace .student-navigation-position{color:#8394ac;font-size:.7rem}.student-course-workspace.is-lecture .student-course-body{box-sizing:border-box;grid-template-columns:minmax(240px,286px) minmax(0,1fr);align-items:start;gap:clamp(20px,2.4vw,36px);width:100%;max-width:none;margin:0;padding:28px clamp(24px,3.5vw,64px) 72px;display:grid}.student-course-workspace.is-lecture .student-course-body.without-outline{display:block}.student-course-workspace.is-lecture .student-course-main{flex-direction:column;align-items:stretch;min-width:0;display:flex}.student-course-workspace.is-lecture .student-course-body.without-outline .student-course-main{align-items:center}.student-course-workspace.is-lecture .student-course-body.without-outline .student-workspace-navigation{align-self:stretch}.student-course-workspace.is-lecture .student-outline-docked{border:1px solid var(--student-flow-line);border-radius:var(--student-flow-radius-md);background:#fbfdff;width:100%;max-height:calc(100dvh - 48px);position:sticky;top:24px;box-shadow:0 8px 24px #2740680b}.student-course-workspace.is-lecture .student-outline-header{background:#f8fbff;padding:16px 15px}.student-course-workspace.is-lecture .student-outline-scroll{padding:10px}.student-course-workspace.is-lecture .student-outline-module{padding-bottom:14px}.student-course-workspace.is-lecture .student-outline-module h2{color:#8a9ab0;letter-spacing:.1em;margin:10px 8px 7px;font-size:.6rem}.student-course-workspace.is-lecture .student-outline-lesson,.student-course-workspace.is-lecture .student-outline-task{border-radius:9px}.student-course-workspace.is-lecture .student-outline-lesson{flex-direction:column;align-items:flex-start;gap:5px}.student-course-workspace.is-lecture .student-outline-lesson .student-outline-label{width:100%}.student-course-workspace.is-lecture .student-outline-lesson.selected,.student-course-workspace.is-lecture .student-outline-task.selected{box-shadow:inset 3px 0 0 var(--student-flow-blue);background:#edf3ff}.student-course-workspace.is-lecture .student-outline-lesson small,.student-course-workspace.is-lecture .student-outline-task small{color:#7890af;text-align:right;white-space:normal;text-overflow:clip;max-width:132px;font-size:.61rem;line-height:1.25;overflow:visible}.student-course-workspace.is-lecture .student-outline-lesson small{text-align:left;margin-left:20px}.student-course-workspace.is-lecture .student-outline-label>span:last-child{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.student-course-workspace.is-lecture .student-course-main>.student-workspace-navigation{margin-inline:0}.student-course-workspace.is-lecture .student-lecture-view{width:100%}.student-course-workspace.is-lecture .student-lecture-document{box-sizing:border-box;border:1px solid var(--student-flow-line);border-radius:var(--student-flow-radius-lg);background:var(--student-flow-paper);width:min(100%,1120px);box-shadow:var(--student-flow-shadow);margin-inline:auto;padding:clamp(38px,5vw,76px) clamp(28px,6vw,96px) 56px}.student-course-workspace.is-lecture .student-lecture-document>.lesson-heading,.student-course-workspace.is-lecture .student-lecture-document>h2,.student-course-workspace.is-lecture .student-lecture-document .student-lecture-reading,.student-course-workspace.is-lecture .student-lecture-document>.student-lecture-completion,.student-course-workspace.is-lecture .student-lecture-document .lecture-toc{width:min(100%,860px)}.student-course-workspace.is-lecture .student-lecture-document>h2{margin-top:10px;margin-bottom:26px;font-size:clamp(2rem,3vw,3.05rem);line-height:1.02}.student-course-workspace.is-lecture .student-lecture-document .lecture-toc{background:#f8fbff;border:1px solid #e1e9f4;border-radius:12px;margin:0 0 36px;padding:15px 17px}.student-course-workspace.is-lecture .student-lecture-document .lecture-toc a{color:#315fc6;padding:6px 0}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer{color:var(--student-flow-body);font-size:1.04rem;line-height:1.84}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer h2{color:var(--student-flow-ink);letter-spacing:-.04em;margin-top:2.1em;font-size:1.72rem}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer h3{color:var(--student-flow-ink);margin-top:1.8em;font-size:1.22rem}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer p,.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer ul,.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer ol{max-width:78ch}.student-course-workspace.is-lecture .student-lecture-block{margin-top:34px}.student-course-workspace.is-lecture .student-lecture-completion{border-radius:var(--student-flow-radius-md);box-shadow:none;background:#f1fbf6;border:1px solid #cde8dc;margin-top:48px}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout,.student-course-workspace.is-practice .practice-task-column{background:var(--student-flow-paper)}.student-course-workspace.is-practice .practice-task-column h2{letter-spacing:-.055em}.student-course-workspace.is-practice .practice-condition .task-statement{color:var(--student-flow-body);font-size:.96rem;line-height:1.76}.student-course-workspace.is-practice .practice-disclosure summary{color:#415b7c;min-height:50px}.student-course-workspace.is-practice .practice-examples{background:#f8fbff;border-color:#e0e8f2}.student-course-workspace.is-practice .practice-hint{background:#f3f7ff;border-color:#d1def6}.student-course-workspace.is-practice .practice-submission-summary{background:#fbfdff;border-color:#dce6f1}.student-course-workspace.is-practice .practice-runner-column .ide-runner{box-shadow:inset 1px 0 #294064}@media (width<=1100px) and (width>=901px){.student-course-workspace.is-lecture .student-course-body{padding-inline:24px;display:block}.student-course-workspace.is-lecture .student-outline-drawer{z-index:20;width:min(360px,100vw - 32px);position:fixed;top:76px;bottom:16px;right:16px}.student-course-workspace.is-lecture .student-course-body{gap:22px}.student-course-workspace.is-lecture .student-lecture-document{padding-inline:42px}.student-course-workspace .student-lesson-header,.student-course-workspace .student-workspace-navigation{padding-inline:24px}}@media (width<=900px){.student-app .workspace.workspace-immersive,.student-app.sidebar-collapsed .workspace.workspace-immersive{width:100%;margin-left:0;padding-top:0;padding-bottom:32px}.student-app .workspace.workspace-immersive>.breadcrumbs{padding:14px 16px 0}.student-app.student-catalog-route .workspace{padding-inline:16px}.student-app.student-catalog-route .page-header{margin-top:22px}.student-app.student-catalog-route .student-learning-overview{flex-direction:column;align-items:flex-start;gap:16px}.student-app.student-catalog-route .student-learning-overview-stats{border-top:1px solid var(--student-flow-line);border-left:0;width:100%;padding:12px 0 0}.student-app.student-catalog-route .student-course-card{min-height:0}.student-course-workspace .student-lesson-header{grid-template-columns:1fr;gap:16px;padding:20px 16px 18px}.student-course-workspace .student-lesson-header-main h1{font-size:clamp(2rem,10vw,2.7rem)}.student-course-workspace .student-lesson-header-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;display:grid}.student-course-workspace .course-progress-pill{min-width:0}.student-course-workspace .student-workspace-navigation{padding:7px 12px}.student-course-workspace.is-lecture .student-course-body{padding:16px 12px 42px;display:block}.student-course-workspace.is-lecture .student-outline-docked{z-index:20;width:min(320px,100vw - 32px);max-height:calc(100dvh - 92px);position:fixed;top:76px;left:16px}.student-course-workspace.is-lecture .student-lecture-document{border-radius:var(--student-flow-radius-md);padding:30px 20px 38px}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer{font-size:.98rem}}@media (width<=600px){.student-app.student-catalog-route .page-header{align-items:flex-start}.student-app.student-catalog-route .page-header h1{font-size:2.35rem}.student-app.student-catalog-route .student-resume-banner{grid-template-columns:auto minmax(0,1fr)}.student-app.student-catalog-route .student-resume-banner-action{grid-column:2;justify-self:start}.student-course-workspace .student-lesson-header-actions{grid-template-columns:1fr}.student-course-workspace .student-outline-toggle{width:100%}.student-course-workspace .course-progress-pill{justify-content:flex-start}.student-course-workspace .student-adjacent-lesson strong{white-space:normal;max-width:120px;line-height:1.3}.student-course-workspace.is-lecture .student-course-body{padding-inline:8px}.student-course-workspace.is-lecture .student-lecture-document{padding:26px 17px 34px}.student-course-workspace.is-lecture .student-lecture-document>h2{font-size:2rem}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer{line-height:1.72}.student-course-workspace.is-lecture .student-lecture-reading>.markdown-renderer table{max-width:100%;display:block;overflow-x:auto}}@media (prefers-reduced-motion:reduce){.student-app *,.student-app :before,.student-app :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width>=901px) and (width<=1279px){.student-course-workspace.is-lecture .student-course-body{width:100%;max-width:none;padding:22px clamp(24px,4vw,56px) 56px;display:block}.student-course-workspace.is-lecture .student-course-main{align-items:center;width:100%}.student-course-workspace.is-lecture .student-outline-drawer{z-index:20;width:min(360px,100vw - 32px);max-height:none;position:fixed;top:76px;bottom:16px;right:16px}.student-course-workspace.is-lecture .student-lecture-document{width:min(100%,1040px)}}.student-course-workspace .course-progress-pill{align-items:stretch;gap:0;display:grid}.student-course-workspace .course-progress-track{width:100%}@media (width>=901px){.student-course-workspace .student-lesson-header-actions{flex-wrap:nowrap;min-width:0;display:flex}.student-course-workspace .student-outline-toggle{white-space:nowrap;flex:none}.student-course-workspace .course-progress-pill{width:min(320px,34vw);min-width:270px}}.student-course-workspace{background:var(--student-flow-bg);width:100%;min-width:0}.student-course-workspace .student-lesson-header,.student-course-workspace .student-workspace-navigation{box-sizing:border-box;width:100%;max-width:none}.student-course-workspace .student-lesson-header{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(22px,3vw,54px);padding:26px clamp(28px,5vw,84px) 24px}.student-course-workspace .student-lesson-header-main h1{text-wrap:balance;max-width:min(980px,100%)}.student-course-workspace .student-lesson-header-actions{justify-content:flex-end;align-items:center}.student-course-workspace .course-progress-pill{width:min(304px,25vw);min-width:248px}.student-course-workspace .student-workspace-navigation{background:color-mix(in srgb, var(--student-flow-bg) 76%, white);min-height:58px;padding:8px clamp(28px,5vw,84px)}.student-course-workspace .student-course-body{box-sizing:border-box;min-width:0}@media (width>=1100px){.student-course-workspace.is-lecture .student-course-body{grid-template-columns:minmax(252px,286px) minmax(0,1fr);align-items:start;gap:clamp(30px,3.2vw,54px);width:100%;padding:28px clamp(28px,5vw,84px) 92px;display:grid}.student-course-workspace.is-lecture .student-course-body.without-outline{padding-inline:clamp(28px,5vw,84px);display:block}.student-course-workspace.is-lecture .student-course-main{flex-direction:column;align-items:stretch;min-width:0;display:flex}.student-course-workspace.is-lecture .student-course-body.without-outline .student-course-main{width:100%}.student-course-workspace.is-lecture .student-outline-docked{box-sizing:border-box;border:0;border-right:1px solid var(--student-flow-line);width:100%;max-height:calc(100dvh - 48px);box-shadow:none;background:0 0;border-radius:0;position:sticky;top:24px}.student-course-workspace.is-lecture .student-outline-header{border-bottom:1px solid var(--student-flow-line);background:0 0;min-height:50px;padding:0 20px 14px 0}.student-course-workspace.is-lecture .student-outline-scroll{max-height:calc(100dvh - 112px);padding:18px 20px 22px 0}.student-course-workspace.is-lecture .student-outline-module h2{color:#8a9bb2;margin-inline:8px}.student-course-workspace.is-lecture .student-outline-lesson,.student-course-workspace.is-lecture .student-outline-task{border-radius:8px}.student-course-workspace.is-lecture .student-outline-lesson.selected,.student-course-workspace.is-lecture .student-outline-task.selected{box-shadow:inset 3px 0 0 var(--student-flow-blue)}.student-course-workspace.is-lecture .student-lecture-view{background:var(--student-flow-paper);width:100%;min-width:0}.student-course-workspace.is-lecture .student-lecture-document{width:100%;max-width:1220px;box-shadow:none;box-sizing:border-box;background:0 0;border:0;border-radius:0;margin:0 auto;padding:clamp(44px,5vw,76px) clamp(28px,6vw,96px) 72px}.student-course-workspace.is-lecture .student-lecture-document>.lesson-heading,.student-course-workspace.is-lecture .student-lecture-document>h2,.student-course-workspace.is-lecture .student-lecture-document .student-lecture-reading,.student-course-workspace.is-lecture .student-lecture-document>.student-lecture-completion,.student-course-workspace.is-lecture .student-lecture-document .lecture-toc{width:min(100%,900px);margin-inline:auto}.student-course-workspace.is-lecture .student-lecture-document>h2{margin-top:12px;margin-bottom:30px;font-size:clamp(2.1rem,3vw,3.15rem)}.student-course-workspace.is-lecture .student-lecture-document .lecture-toc{background:#f8fbff;border-color:#e4ebf4;border-radius:10px;margin-bottom:38px;padding:14px 16px}.student-course-workspace.is-lecture .student-lecture-completion{margin-top:54px}.student-course-workspace.is-practice .student-course-body{width:100%;padding:0 0 72px;display:block}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(340px, var(--task-pane,40%)) 12px minmax(520px, 1fr);gap:0;width:100%;max-width:none;height:calc(100dvh - 154px);min-height:calc(100dvh - 154px);margin:0;overflow:hidden}.student-course-workspace.is-practice .practice-task-column{background:var(--student-flow-paper);min-width:0;min-height:0;box-shadow:none;border:0;border-radius:0;padding:38px clamp(28px,4vw,64px) 54px;overflow-y:auto}.student-course-workspace.is-practice .practice-runner-column{border-left:1px solid #d1dceb;min-width:0;height:100%;min-height:0;position:static;overflow:hidden}.student-course-workspace.is-practice .practice-runner-column .ide-runner{width:100%;min-width:0;height:100%;min-height:0;max-height:none;box-shadow:none;border-radius:0}}@media (width>=901px) and (width<=1099px){.student-course-workspace.is-lecture .student-course-body{padding:22px 24px 64px;display:block}.student-course-workspace.is-lecture .student-course-main{width:100%}.student-course-workspace.is-lecture .student-outline-drawer{z-index:20;border-radius:18px 0 0 18px;width:min(380px,100vw - 24px);max-height:none;position:fixed;top:18px;bottom:0;right:0}.student-course-workspace.is-lecture .student-lecture-view{background:var(--student-flow-paper)}.student-course-workspace.is-lecture .student-lecture-document{width:100%;max-width:1180px;box-shadow:none;border:0;border-radius:0;padding-inline:clamp(32px,7vw,88px)}}@media (width<=900px){.student-course-workspace .student-lesson-header{grid-template-columns:1fr;gap:18px;padding:20px 16px 18px}.student-course-workspace .student-lesson-header-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;display:grid}.student-course-workspace .course-progress-pill{width:auto;min-width:0}.student-course-workspace .student-workspace-navigation{padding:8px 12px}.student-course-workspace.is-lecture .student-course-body{padding:0 0 40px;display:block}.student-course-workspace.is-lecture .student-outline-drawer{z-index:20;border-radius:18px 0 0 18px;width:min(360px,100vw - 16px);max-height:none;position:fixed;top:12px;bottom:0;right:0}.student-course-workspace.is-lecture .student-lecture-view{background:var(--student-flow-paper);min-height:0}.student-course-workspace.is-lecture .student-lecture-document{width:100%;max-width:none;box-shadow:none;border:0;border-radius:0;padding:34px 18px 44px}.student-course-workspace.is-lecture .student-lecture-document>.lesson-heading,.student-course-workspace.is-lecture .student-lecture-document>h2,.student-course-workspace.is-lecture .student-lecture-document .student-lecture-reading,.student-course-workspace.is-lecture .student-lecture-document>.student-lecture-completion,.student-course-workspace.is-lecture .student-lecture-document .lecture-toc{width:100%}.student-course-workspace.is-lecture .student-lecture-document>h2{font-size:clamp(1.9rem,8vw,2.45rem)}.student-course-workspace.is-practice .student-course-body{padding:0 0 32px}.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{width:100%;height:auto;min-height:0;display:block;overflow:visible}.student-course-workspace.is-practice .practice-task-column{min-height:0;padding:28px 17px 44px;overflow:visible}.student-course-workspace.is-practice .practice-runner-column{border-left:0;height:auto;min-height:0;overflow:visible}.student-course-workspace.is-practice .practice-runner-column .ide-runner{border-radius:0;height:auto;min-height:calc(100dvh - 220px)}}@media (width<=600px){.student-course-workspace .student-lesson-header-topline{padding-left:52px}.student-course-workspace .student-lesson-header-actions{grid-template-columns:1fr}.student-course-workspace .student-outline-toggle{justify-content:center;width:100%}.student-course-workspace .course-progress-pill-head>span{white-space:normal;text-align:right}.student-course-workspace .student-lecture-document{padding-inline:17px}}@media (width<=760px){.student-app .workspace.workspace-immersive>.breadcrumbs{padding-left:68px;padding-right:16px}}.student-course-workspace .sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.student-course-workspace .interactive-block{background:#fff;border:1px solid #dbe6f2;border-radius:16px;gap:18px;margin:32px 0 0;padding:clamp(18px,3vw,26px);display:grid;box-shadow:0 8px 24px #1d375e0d}.student-course-workspace .interactive-block-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.student-course-workspace .interactive-block-type{color:#8a9ab0;font-size:.68rem;font-weight:700}.student-course-workspace .interactive-prompt{color:var(--student-flow-ink);font-size:.94rem;font-weight:700;line-height:1.55}.student-course-workspace .interactive-prompt .markdown-renderer>:first-child{margin-top:0}.student-course-workspace .interactive-prompt .markdown-renderer>:last-child{margin-bottom:0}.student-course-workspace .interactive-options{border:0;gap:10px;margin:0;padding:0;display:grid}.student-course-workspace .interactive-option{color:#425673;cursor:pointer;background:#fbfdff;border:1px solid #dce6f2;border-radius:11px;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:12px;min-height:52px;padding:13px 15px;font-size:.84rem;font-weight:700;transition:border-color .15s,background-color .15s,box-shadow .15s;display:grid;position:relative}.student-course-workspace .interactive-option:hover{background:#f5f8ff;border-color:#9dbaf1;box-shadow:0 0 0 3px #2f6bff1a}.student-course-workspace .interactive-option:has(input:focus-visible){background:#f5f8ff;border-color:#9dbaf1;box-shadow:0 0 0 3px #2f6bff1a}.student-course-workspace .interactive-option:has(input:checked){color:#245bd7;background:#eef4ff;border-color:#79a2f4;box-shadow:inset 3px 0 #2f6bff}.student-course-workspace .interactive-option input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;min-width:1px!important;min-height:1px!important}.student-course-workspace .interactive-option-control{background:#fff;border:2px solid #aab9cd;border-radius:50%;width:18px;height:18px;box-shadow:inset 0 0 0 3px #fff}.student-course-workspace .interactive-option input[type=checkbox]+.interactive-option-control{border-radius:5px}.student-course-workspace .interactive-option:has(input:checked) .interactive-option-control{background:#2f6bff;border-color:#2f6bff}.student-course-workspace .interactive-option-copy{overflow-wrap:anywhere;min-width:0}.student-course-workspace .interactive-answer{color:#536783;gap:7px;font-size:.72rem;font-weight:800;display:grid}.student-course-workspace .interactive-answer input{min-height:48px;color:var(--student-flow-ink);border:1px solid #dce6f2;border-radius:10px;padding:0 13px}.student-course-workspace .interactive-block-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.student-course-workspace .interactive-block-actions .primary{min-width:150px}.student-course-workspace .interactive-attempts{color:#8494aa;font-size:.7rem;font-weight:700}.student-course-workspace .interactive-result{border-radius:10px;gap:4px;padding:13px 15px;font-size:.77rem;line-height:1.5;display:grid}.student-course-workspace .interactive-result.is-correct{color:#17795f;background:#effaf5;border:1px solid #cce9dd}.student-course-workspace .interactive-result.is-incorrect{color:#a74b42;background:#fff7f5;border:1px solid #f0d6d2}.student-course-workspace .interactive-result strong{font-size:.8rem}.student-course-workspace .interactive-result .markdown-renderer{color:#51647e}.student-course-workspace .panel-resizer{z-index:3;touch-action:none;background:0 0;border:0;margin:0;padding:0;position:relative;min-width:0!important;min-height:0!important}.student-course-workspace .panel-resizer.vertical{cursor:row-resize;width:100%;height:8px}.student-course-workspace .panel-resizer.horizontal{cursor:col-resize;width:12px;height:100%}.student-course-workspace .panel-resizer:before{content:"";background:#8fa5c4;border-radius:999px;transition:background-color .15s,box-shadow .15s;position:absolute}.student-course-workspace .panel-resizer.vertical:before{inset:3px 22%}.student-course-workspace .panel-resizer.horizontal:before{inset:22% 4px}.student-course-workspace .panel-resizer:hover:before,.student-course-workspace .panel-resizer:focus-visible:before{background:#4b7cff;box-shadow:0 0 0 3px #4b7cff2e}.student-course-workspace .panel-resizer:focus-visible{outline:none}.student-course-workspace .runner-file{flex-wrap:wrap;align-items:baseline;gap:8px;display:inline-flex}.student-course-workspace .runner-file .eyebrow{margin:0}.student-course-workspace .runner-file strong{color:#f1f5ff;font-size:.8rem}.student-course-workspace .runner-head strong:before{content:none!important}.student-course-workspace .runner-language{color:#aec1df;font-size:.72rem;font-weight:800}.student-course-workspace .runner-status span{white-space:nowrap}.student-course-workspace .runner-status .is-ready{color:#9fe0c8}.student-course-workspace .runner-status .is-warning{color:#ffd39b}.student-course-workspace .runner-status .is-running{color:#c4d5ff}.student-course-workspace .runner-status .editor-ready-metric{color:#8398bd;font-variant-numeric:tabular-nums}@media (width<=600px){.student-course-workspace .interactive-block{margin-top:24px;padding:16px}.student-course-workspace .interactive-block-header{flex-direction:column;align-items:flex-start;gap:6px}.student-course-workspace .interactive-block-actions{grid-template-columns:1fr;display:grid}.student-course-workspace .interactive-block-actions .primary{width:100%}.student-course-workspace .runner-status{flex-direction:column;align-items:flex-start;gap:3px}}@media (width>=1100px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(320px, var(--task-pane,40%)) 12px minmax(0, 1fr);padding-right:clamp(12px,1.4vw,24px)}.student-course-workspace.is-practice .practice-runner-column{border-right:1px solid #253a5f;border-radius:0 12px 12px 0;margin-right:clamp(12px,1.4vw,24px)}.student-course-workspace.is-practice .practice-runner-column .ide-runner{border-radius:0 12px 12px 0;padding:18px 20px 16px}.student-course-workspace .panel-resizer.vertical{box-sizing:border-box;align-self:center;width:100%;height:8px;max-height:8px;display:block;min-height:8px!important}.student-course-workspace .panel-resizer.vertical:before{inset:3px 18%}}@media (width>=761px){.app-shell.sidebar-collapsed .app-sidebar .side-top{grid-template-columns:1fr;justify-items:center;gap:8px;min-height:100px;padding:0 0 12px;display:grid}.app-shell.sidebar-collapsed .app-sidebar .side-brand,.app-shell.sidebar-collapsed .app-sidebar .sidebar-collapse{width:44px;min-width:44px;min-height:44px;margin:0}.app-shell.sidebar-collapsed .app-sidebar .side-brand{place-items:center;display:grid}.app-shell.sidebar-collapsed .app-sidebar .sidebar-collapse{padding:0}}.student-course-workspace .runner-head{min-width:0}.student-course-workspace .runner-status{flex-wrap:wrap;justify-content:flex-end;min-width:0}.student-course-workspace .runner-status span{overflow-wrap:anywhere;max-width:100%}.student-course-workspace .ide-runner[data-run-state=success] .runner-status .offline-note{color:#9fe0c8}.student-course-workspace .ide-runner[data-run-state=error] .runner-status .offline-note{color:#ffb1a7}.student-course-workspace .ide-runner[data-run-state=stopped] .runner-status .offline-note{color:#ffd39b}.student-course-workspace .runner-console-content[role=tabpanel]:focus-visible{outline-offset:-2px;outline:2px solid #7fa4ff}.student-course-workspace .interactive-option:has(input:disabled){cursor:default;opacity:.82}.student-course-workspace .student-lecture-document{border-color:#e4ebf4;box-shadow:0 8px 24px #20385e09}.student-course-workspace .course-progress-pill-head>span{white-space:normal;text-align:right}.student-course-workspace .student-lesson-header-actions,.student-course-workspace .student-workspace-navigation>*{min-width:0}.student-course-workspace .student-adjacent-lesson strong{overflow-wrap:anywhere;max-width:min(28vw,260px)}@media (width<=1099px){.student-course-workspace .student-outline-drawer{border-width:0 1px 0 0;left:0;right:auto;box-shadow:16px 0 38px #15274629}}@media (width<=760px){.student-course-workspace .runner-status{justify-content:flex-start}.student-course-workspace .runner-head{align-items:flex-start;gap:10px}.student-app .app-sidebar,.student-app.sidebar-collapsed .app-sidebar{width:288px;padding:18px 14px 16px}.student-app.sidebar-collapsed .side-brand{justify-content:flex-start}.student-app.sidebar-collapsed .side-brand-copy{display:grid}.student-app.sidebar-collapsed .nav-group-items a{justify-content:flex-start;padding-inline:12px}.student-app.sidebar-collapsed .profile{background:#f9fbfe;border-color:#e5ebf3;justify-content:flex-start;padding-inline:10px}.student-app.sidebar-collapsed .sign-out{justify-content:flex-start;padding-inline:10px}}@media (width>=1100px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{height:var(--practice-height,calc(100dvh - 128px));align-items:start;min-height:360px;overflow:visible}.student-course-workspace.is-practice .practice-task-column{overscroll-behavior:contain;scrollbar-gutter:stable;height:100%;min-height:0;overflow:hidden auto}.student-course-workspace.is-practice .practice-runner-column{align-self:start;height:100%;min-height:0;position:sticky;top:0;overflow:visible}.student-course-workspace.is-practice .practice-runner-column .ide-runner{grid-template-rows:auto minmax(clamp(180px, 30vh, 320px), 1fr) 8px minmax(clamp(140px, 18vh, 220px), var(--console-height,220px)) auto auto;height:100%;min-height:0;max-height:none;overflow:hidden}.student-course-workspace.is-practice .runner-height-resizer{z-index:5;cursor:ns-resize;touch-action:none;background:0 0;border:0;border-radius:999px;place-items:center;width:auto;height:16px;min-height:0;padding:0;display:grid;position:absolute;bottom:-8px;left:24px;right:24px}.student-course-workspace.is-practice .runner-height-resizer:before{content:"";background:#8fa5c4;border-radius:999px;width:min(220px,38%);height:5px;transition:background .15s,box-shadow .15s}.student-course-workspace.is-practice .runner-height-resizer:hover:before,.student-course-workspace.is-practice .runner-height-resizer:focus-visible:before{background:#6f8fbd;box-shadow:0 0 0 4px #6f8fbd29}.student-course-workspace.is-practice .runner-height-resizer:focus-visible{outline-offset:2px;outline:2px solid #4f7fff}.student-course-workspace.is-practice .panel-resizer.horizontal{background:#f8faff;border-inline:1px solid #e2eaf5;place-items:center;width:20px;min-width:20px;height:100%;transition:background-color .15s,border-color .15s;display:grid}.student-course-workspace.is-practice .panel-resizer.horizontal:before{background:#b7c7dd;border-radius:999px;width:4px;height:72px;transition:background-color .15s,box-shadow .15s;position:static;box-shadow:0 0 0 4px #b7c7dd29}.student-course-workspace.is-practice .panel-resizer.horizontal:after{content:"";opacity:.9;background:radial-gradient(circle,#5f82bd 1.5px,#0000 2px) 50%/7px 9px repeat-y;border-radius:999px;width:7px;height:42px;transition:opacity .15s,transform .15s;position:absolute}.student-course-workspace.is-practice .panel-resizer.horizontal:hover,.student-course-workspace.is-practice .panel-resizer.horizontal:focus-visible{background:#eef4ff;border-color:#cbdcff}.student-course-workspace.is-practice .panel-resizer.horizontal:hover:before,.student-course-workspace.is-practice .panel-resizer.horizontal:focus-visible:before{background:#6f8fbd;box-shadow:0 0 0 5px #6f8fbd2e}.student-course-workspace.is-practice .panel-resizer.horizontal:hover:after,.student-course-workspace.is-practice .panel-resizer.horizontal:focus-visible:after{opacity:1;transform:scale(1.08)}.student-course-workspace.is-practice .panel-resizer.horizontal:focus-visible{outline-offset:-2px;outline:2px solid #4f7fff}}@media (width<=1099px){.student-course-workspace.is-practice .runner-height-resizer{display:none}}@media (prefers-reduced-motion:reduce){.student-course-workspace.is-practice .runner-height-resizer,.student-course-workspace.is-practice .runner-height-resizer:before,.student-course-workspace.is-practice .panel-resizer.horizontal,.student-course-workspace.is-practice .panel-resizer.horizontal:before,.student-course-workspace.is-practice .panel-resizer.horizontal:after{transition:none!important}}.student-course-workspace .student-rubric-result{background:#f7faff;border:1px solid #dbe7f5;border-radius:9px;gap:7px;margin-top:10px;padding:11px 12px;display:grid}.student-course-workspace .student-rubric-result>strong{color:#315fc6;font-size:.73rem}.student-course-workspace .student-rubric-result>div{color:#526078;border-top:1px solid #e8eef7;justify-content:space-between;gap:12px;padding-top:6px;font-size:.69rem;display:flex}.student-course-workspace .student-rubric-result b{color:#285ed4;white-space:nowrap}.practice-history-toggle{border:1px solid var(--student-border,#dbe4f0);background:var(--student-surface-subtle,#f7f9fc);color:var(--student-text,#24324a);font:inherit;cursor:pointer;border-radius:.65rem;align-items:center;gap:.45rem;margin-top:1rem;padding:.55rem .7rem;font-size:.78rem;font-weight:700;display:inline-flex}.practice-history-toggle:hover{border-color:var(--student-accent,#4f7cff);color:var(--student-accent,#4f7cff)}.practice-history-toggle>span{color:#49648c;text-align:center;background:#e8eefb;border-radius:999px;min-width:1.35rem;padding:.1rem .35rem;font-size:.7rem}.practice-history-toggle svg:last-child{transition:transform .18s}.practice-history-toggle svg:last-child.is-open{transform:rotate(180deg)}.practice-attempt-history{gap:.55rem;margin-top:.65rem;display:grid}.practice-attempt-row{border:1px solid var(--student-border,#dbe4f0);background:#fff;border-radius:.7rem;grid-template-columns:1fr auto;gap:.25rem .75rem;padding:.7rem .8rem;display:grid}.practice-attempt-row>div:first-child{gap:.15rem;display:grid}.practice-attempt-row strong{font-size:.78rem}.practice-attempt-row small{color:#7b8ba3;font-size:.7rem}.practice-attempt-result{align-items:center;gap:.45rem;display:inline-flex}.practice-attempt-result b{color:#31476b;font-size:.78rem}.practice-attempt-row p{color:#536681;border-top:1px solid #edf1f6;grid-column:1/-1;margin:.25rem 0 0;padding-top:.45rem;font-size:.75rem;line-height:1.45}.practice-history-state{color:#7b8ba3;align-items:center;gap:.4rem;margin:.25rem 0 0;font-size:.75rem;display:inline-flex}@media (width<=640px){.practice-attempt-row{grid-template-columns:1fr}.practice-attempt-result{justify-content:space-between}}:root{--ui-motion-fast:.14s;--ui-motion-base:.18s;--ui-ease-standard:cubic-bezier(.2, .8, .2, 1);--ui-z-sidebar:40;--ui-z-mobile-menu:45;--ui-z-overlay:35;--ui-z-toast:80;--ui-text-strong:#172842;--ui-text-body:#40536f;--ui-text-subtle:#71809a;--ui-border-strong:#cbd8e9;--ui-focus-ring:0 0 0 3px #2f6bff38}.calendar-presets{flex-wrap:wrap;gap:8px;display:flex}.calendar-presets button{min-height:38px}.calendar-filter-panel{grid-template-columns:minmax(250px,.85fr) minmax(0,1.5fr);gap:18px;margin-bottom:18px;display:grid}.calendar-date-fields,.calendar-select-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.calendar-select-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-filter-panel label{color:var(--muted);gap:7px;font-size:.72rem;font-weight:800;display:grid}.calendar-filter-panel input,.calendar-filter-panel select{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);font:inherit;background:#fff;border-radius:9px;padding:9px 11px;font-size:.78rem}.calendar-timeline{gap:22px;display:grid}.calendar-day{grid-template-columns:180px minmax(0,1fr);align-items:start;gap:22px;display:grid}.calendar-day-heading{color:#53617a;align-items:center;gap:8px;padding:11px 2px;font-size:.78rem;display:flex}.calendar-day-heading svg{color:#477cff}.calendar-day-heading span{color:#9aa5b7;font-size:.68rem;font-weight:600}.calendar-day-events{gap:10px;display:grid}.calendar-event{border:1px solid var(--line);background:#fff;border-radius:13px;grid-template-columns:38px minmax(0,1fr) auto;align-items:start;gap:12px;padding:15px 16px;transition:border-color .15s,box-shadow .15s;display:grid}.calendar-event:hover{border-color:#b9cdfb;box-shadow:0 7px 22px #20478c12}.calendar-event-icon{color:#3d6fdc;background:#eef3ff;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.calendar-event-due .calendar-event-icon{color:#a87014;background:#fff4df}.calendar-event-publish .calendar-event-icon{color:#7b56b4;background:#f3ecff}.calendar-event-main{min-width:0}.calendar-event-top{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:5px;display:flex}.calendar-event-kind{color:#66758e;text-transform:uppercase;letter-spacing:.06em;font-size:.67rem;font-weight:800}.calendar-event time{color:#526078;align-items:center;gap:5px;font-size:.72rem;font-weight:700;display:inline-flex}.calendar-event h2{color:var(--ink);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:.95rem}.calendar-event-context{color:var(--muted);flex-wrap:wrap;gap:14px;margin:7px 0 0;font-size:.72rem;line-height:1.45;display:flex}.calendar-event-context span{align-items:center;gap:5px;display:inline-flex}.calendar-event-link{color:#6680b2;border-radius:8px;place-items:center;width:34px;height:34px;display:grid}.calendar-event-link:hover{color:#2f6bff;background:#eef3ff}.teacher-schedule-panel{margin-top:16px}.dashboard-schedule-list{gap:2px;display:grid}.dashboard-schedule-item{color:var(--ink);border-top:1px solid #edf1f7;grid-template-columns:32px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:10px 0;display:grid}.dashboard-schedule-item:first-child{border-top:0}.dashboard-schedule-item>span:nth-child(2){gap:3px;min-width:0;display:grid}.dashboard-schedule-item strong{overflow-wrap:anywhere;font-size:.77rem}.dashboard-schedule-item small{color:var(--muted);font-size:.66rem;line-height:1.35}.dashboard-schedule-item>svg{color:#8795aa}.dashboard-schedule-dot{color:#477cff;background:#edf3ff;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.dashboard-schedule-due{color:#ac7418;background:#fff3df}.dashboard-schedule-publish{color:#7954b2;background:#f3ecff}@media (width<=900px){.calendar-filter-panel{grid-template-columns:1fr}.calendar-day{grid-template-columns:1fr;gap:4px}.calendar-day-heading{padding-bottom:2px}.calendar-select-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=600px){.calendar-presets{width:100%}.calendar-presets button{flex:130px}.calendar-date-fields,.calendar-select-fields{grid-template-columns:1fr}.calendar-event{grid-template-columns:34px minmax(0,1fr) auto;padding:13px}.calendar-event-context{gap:4px;display:grid}.calendar-event h2{font-size:.88rem}}html{background:var(--ui-bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-width:320px}body{min-width:320px;color:var(--ui-text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-x:clip}button,a,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,a,input,select,textarea,summary{min-width:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-offset:2px;box-shadow:var(--ui-focus-ring);outline:3px solid #2f6bff6b}button:disabled,select:disabled,input:disabled,textarea:disabled{cursor:not-allowed}.app-shell{min-width:0;min-height:100dvh}.app-shell .workspace{min-width:0;scroll-padding-top:24px;overflow-x:clip}.app-shell .workspace>*,.page-header,.page-header-copy,.header-actions,.panel,.metric,.review-card,.course-workspace,.course-workspace-grid,.course-tree,.node-editor,.simple-course-editor{min-width:0}.page-header{align-items:flex-start}.page-header-copy h1,.page-header-copy p,.page-description,.panel-heading,.editor-title,.node-header,.simple-editor-heading,.simple-section-heading,.section-heading-inline{overflow-wrap:anywhere}.page-header h1,.panel h1,.panel h2,.panel h3,.review-card h2,.metric strong,.course-card h3,.student-course-card h2{color:var(--ui-text-strong,var(--ui-text))}.page-description,.section-description,.field-help,.state-card p,.panel small,.panel td,.panel .helper-text{color:var(--ui-text-body,var(--ui-text-muted))}.header-actions,.review-actions,.node-actions,.editor-context-actions,.runner-actions{flex-wrap:wrap;max-width:100%}.header-actions>*,.review-actions>*,.node-actions>*,.editor-context-actions>*{max-width:100%}.app-sidebar{z-index:var(--ui-z-sidebar);overscroll-behavior:contain}.app-sidebar .side-top,.app-sidebar .side-brand,.app-sidebar .profile,.app-sidebar .nav-group-items a{min-width:0}.app-sidebar .side-brand-copy,.app-sidebar .profile-copy,.app-sidebar .nav-label{text-overflow:ellipsis;overflow:hidden}.app-sidebar .nav-group-items a,.app-sidebar .sign-out,.sidebar-collapse,.close-menu{transition:background-color var(--ui-motion-fast) var(--ui-ease-standard), border-color var(--ui-motion-fast) var(--ui-ease-standard), color var(--ui-motion-fast) var(--ui-ease-standard), transform var(--ui-motion-fast) var(--ui-ease-standard)}.app-sidebar .nav-group-items a:active,.app-sidebar .sign-out:active,.sidebar-collapse:active,.close-menu:active,.primary:active,.secondary:active,.ghost:active,.danger:active{transform:translateY(1px)}.app-sidebar-overlay{z-index:var(--ui-z-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f1e3a75}.mobile-menu{z-index:var(--ui-z-mobile-menu);border-radius:12px;width:44px;height:44px;min-height:44px;box-shadow:0 8px 22px #1931571f}.teacher-app .app-sidebar .nav-group-items a,.admin-app .app-sidebar .nav-group-items a,.student-app .app-sidebar .nav-group-items a{overflow-wrap:anywhere}.teacher-app input,.teacher-app select,.teacher-app textarea,.admin-app input,.admin-app select,.admin-app textarea,.course-workspace-page input,.course-workspace-page select,.course-workspace-page textarea{max-width:100%}.teacher-app input[aria-invalid=true],.teacher-app select[aria-invalid=true],.teacher-app textarea[aria-invalid=true],.admin-app input[aria-invalid=true],.admin-app select[aria-invalid=true],.admin-app textarea[aria-invalid=true]{border-color:var(--ui-danger);background:var(--ui-danger-soft)}.teacher-app input::placeholder,.teacher-app textarea::placeholder,.admin-app input::placeholder,.admin-app textarea::placeholder{color:#8b99ae;opacity:1}.teacher-app label,.admin-app label,.course-workspace-page label{overflow-wrap:anywhere}.teacher-app details>summary,.admin-app details>summary,.course-workspace-page details>summary,.student-app details>summary{border-radius:var(--ui-radius-sm)}.teacher-app details>summary:hover,.admin-app details>summary:hover,.course-workspace-page details>summary:hover,.student-app details>summary:hover{background:#ebf2ff8c}.state-card{border-radius:var(--ui-radius-md);min-width:0;line-height:1.5}.error-state,.route-error .panel{overflow-wrap:anywhere}.toast{z-index:var(--ui-z-toast);right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom))}.modal-backdrop,.ui-dialog-overlay{overscroll-behavior:contain}.modal,.ui-dialog-content{overscroll-behavior:contain;max-height:min(760px,100dvh - 32px)}.table-wrap{overscroll-behavior-inline:contain;scrollbar-width:thin;min-width:0}.table-wrap table{min-width:560px}.course-card p{white-space:normal;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;min-height:2.8em;display:-webkit-box;overflow:hidden}.student-resume-banner-copy strong,.student-resume-banner-copy>span{white-space:normal;overflow-wrap:anywhere;overflow:visible}.student-course-card-title p,.student-course-card-meta,.student-course-card .student-course-resume,.student-course-card .student-course-cta{overflow-wrap:anywhere}.student-course-card .student-course-cta{min-height:44px}.student-course-workspace .student-lesson-header,.student-course-workspace .student-course-main,.student-course-workspace .student-lecture-document,.student-course-workspace .practice-task-column,.student-course-workspace .practice-runner-column{min-width:0}.student-course-workspace .student-lesson-header h1,.student-course-workspace .student-course-context,.student-course-workspace .student-adjacent-lesson strong{overflow-wrap:anywhere}.student-course-workspace .student-adjacent-lesson{min-width:0}.student-course-workspace .student-adjacent-lesson strong,.student-course-workspace .student-adjacent-lesson small{white-space:normal}.student-course-workspace .course-progress-pill{max-width:100%}.student-course-workspace .student-outline,.student-course-workspace .student-outline-scroll,.student-course-workspace .practice-task-column,.student-course-workspace .practice-runner-column{scrollbar-width:thin;scrollbar-color:#b9c9df transparent}@media (pointer:coarse){.app-sidebar .nav-group-items a,.app-sidebar .sign-out,.sidebar-collapse,.close-menu,.mobile-menu,.primary,.secondary,.ghost,.danger,.ui-button{min-height:44px}.icon-button,.modal-close,.ui-dialog-close{min-width:44px;min-height:44px}}@media (width<=900px){.page-header h1{max-width:none}.header-actions,.editor-context-actions,.simple-editor-heading,.simple-section-heading,.section-heading-inline{width:100%}.student-learning-overview{flex-direction:column;align-items:flex-start}.student-learning-overview-stats{border-top:1px solid #d9e5f4;border-left:0;width:100%;padding:14px 0 0}}@media (width<=600px){html{scroll-behavior:auto}.app-shell .workspace{padding-inline:14px}.page-header h1{font-size:clamp(1.75rem,9vw,2.35rem)}.header-actions>*,.editor-context-actions>*,.review-actions>*{width:100%}.student-resume-banner{grid-template-columns:auto minmax(0,1fr)}.student-resume-banner-action{grid-column:2;justify-self:start}.table-wrap table{min-width:0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.teacher-app .scope-group-courses,.teacher-app .scope-subgroups{gap:9px;display:grid}.teacher-app .scope-group-courses{border-top:1px solid var(--teacher-line-soft);margin-top:18px;padding-top:15px}.teacher-app .scope-label{color:var(--teacher-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.66rem;font-weight:850}.teacher-app .scope-course-list{flex-wrap:wrap;gap:6px;display:flex}.teacher-app .scope-course-list span{color:#3a5e99;overflow-wrap:anywhere;background:#f7faff;border:1px solid #dce7fa;border-radius:8px;max-width:100%;padding:6px 9px;font-size:.7rem;font-weight:750}.teacher-app .scope-course-link{color:#315fa6;overflow-wrap:anywhere;background:#f7faff;border:1px solid #dce7fa;border-radius:8px;align-items:center;gap:5px;max-width:100%;padding:6px 9px;font-size:.7rem;font-weight:750;line-height:1.3;text-decoration:none;display:inline-flex}.teacher-app .scope-course-link:hover{color:#2459c5;background:#eef4ff;border-color:#b8cdf4}.teacher-app .scope-course-link svg{flex:none}.teacher-app .scope-subgroup-courses{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.teacher-app .scope-subgroup-courses .scope-course-link{padding:4px 7px;font-size:.65rem}.teacher-app .scope-subgroups{border-top:1px solid var(--teacher-line-soft);margin-top:18px;padding-top:15px}.teacher-app .scope-subgroup-grid{gap:8px;display:grid}.teacher-app .scope-subgroup-card{background:#fbfdff;border:1px solid #e0e8f4;border-radius:11px;gap:10px;padding:11px 12px;display:grid}.teacher-app .scope-subgroup-card>div:first-child{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.teacher-app .scope-subgroup-card strong{color:var(--teacher-ink);font-size:.78rem}.teacher-app .scope-subgroup-card small{color:var(--teacher-body);font-size:.68rem}.teacher-app .scope-subgroup-actions{flex-wrap:wrap;gap:4px;display:flex}.teacher-app .scope-subgroup-actions .ghost,.teacher-app .scope-group-actions .ghost,.teacher-app .scope-group-actions .secondary{min-height:38px;padding-inline:10px;font-size:.7rem}.teacher-app .scope-group-actions{border-top:1px solid var(--teacher-line-soft);flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:15px;display:flex}.teacher-app .scope-group-actions a{text-decoration:none}.teacher-app .teacher-roster-filters{grid-template-columns:minmax(220px,1.35fr) repeat(4,minmax(130px,1fr))}.teacher-app .scope-progress-cell{align-items:center;gap:8px;min-width:106px;display:flex}.teacher-app .scope-progress-cell>span{background:#e7edf6;border-radius:999px;width:62px;height:6px;display:block;overflow:hidden}.teacher-app .scope-progress-cell i{border-radius:inherit;background:var(--teacher-accent);height:100%;display:block}.teacher-app .scope-progress-cell strong{color:var(--teacher-ink);font-variant-numeric:tabular-nums;font-size:.72rem}.teacher-app .scope-activity-cell{color:var(--teacher-body);white-space:nowrap;align-items:center;gap:5px;font-size:.7rem;display:inline-flex}.teacher-app .scope-row-actions{flex-wrap:wrap;gap:5px;display:flex}.teacher-app .scope-row-actions .ghost{min-height:38px;padding-inline:9px;font-size:.7rem;text-decoration:none}.teacher-app .scope-pending-count{color:#a96b09;background:#fff0d7;border-radius:999px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.62rem;display:inline-grid}.teacher-app .review-heading-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teacher-app .review-subgroup{color:#46699f;background:#f0f5ff;border-radius:999px;padding:4px 7px;font-size:.64rem;font-weight:800}.teacher-app .review-quick-links{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.teacher-app .review-quick-links .ghost{min-height:36px;padding-inline:9px;font-size:.69rem;text-decoration:none}.teacher-app .review-card.is-new{border-color:#9dbaff;box-shadow:0 11px 30px #2f6bff1f}.teacher-app .review-card.is-new .review-detail{position:relative}.teacher-app .review-new-banner{color:#2f66dc;letter-spacing:.02em;align-items:center;gap:7px;font-size:.7rem;font-weight:850;display:flex}.teacher-app .review-mark-seen{min-height:32px;margin-left:auto;padding:0 10px;font-size:.68rem}.teacher-app .review-new-dot{background:#2f6bff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #e5edff}.teacher-app .new-badge{color:#2d62d6;background:#e4edff}.teacher-app .review-filter-student{align-self:end;min-height:42px;font-size:.72rem}@media (width<=1240px){.teacher-app .teacher-roster-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.teacher-app .teacher-roster-filters label:first-child{grid-column:1/-1}}@media (width<=760px){.teacher-app .teacher-roster-filters{grid-template-columns:1fr}.teacher-app .teacher-roster-filters label:first-child{grid-column:auto}.teacher-app .scope-group-actions{flex-direction:column;align-items:stretch}.teacher-app .scope-group-actions>*{width:100%}.teacher-app .scope-subgroup-card>div:first-child{flex-direction:column;align-items:flex-start;gap:4px}.teacher-app .scope-row-actions{justify-content:flex-start}.teacher-app .scope-activity-cell{white-space:normal;text-align:left}.teacher-app .teacher-scope-table .table-wrap table{min-width:720px}}@media (width<=600px){.teacher-app .teacher-scope-table .table-wrap td:nth-child(2):before{content:"Группа"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(3):before{content:"Подгруппа"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(4):before{content:"Прогресс"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(5):before{content:"Активность"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(6):before{content:"Статус"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(7):before{content:"Действия"}}.admin-app{--admin-surface:#fff;--admin-surface-soft:#f8f8ff;--admin-line:#e2e4f0;--admin-muted:#6e748b;--admin-accent-strong:#4d49c7;--admin-danger:#b94b56}.admin-app .workspace{background:#f6f7fb;padding:34px clamp(22px,4vw,64px) 72px}.admin-app .workspace>*{width:min(100%,1240px);margin-inline:auto}.admin-app .page-header{border-bottom:1px solid var(--admin-line);gap:24px;margin-bottom:24px;padding-bottom:22px}.admin-app .page-header-copy{max-width:760px}.admin-app .page-header .eyebrow{color:#817db2;letter-spacing:.14em}.admin-app .page-header h1{letter-spacing:-.045em;font-size:clamp(2rem,3.4vw,3rem)}.admin-app .page-description{max-width:680px;color:var(--admin-muted);line-height:1.6}.admin-app .header-actions{align-items:flex-end;gap:9px}.admin-app .header-actions>a{white-space:normal;min-height:44px}.admin-app .admin-intro{background:var(--admin-surface);border:1px solid #dcdcf0;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;margin-bottom:18px;padding:18px 20px;display:grid;box-shadow:0 8px 26px #2526530b}.admin-app .admin-intro-icon{background:var(--admin-accent-soft);width:40px;height:40px;color:var(--admin-accent-strong);border-radius:12px;place-items:center;display:grid}.admin-app .admin-intro strong{color:var(--admin-ink);font-size:.9rem}.admin-app .admin-intro p{max-width:760px;color:var(--admin-muted);margin:4px 0 0;font-size:.78rem;line-height:1.6}.admin-app .admin-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.admin-app .admin-metrics .metric{border:1px solid var(--admin-line);background:var(--admin-surface);border-top:3px solid #d1cffb;border-radius:14px;min-height:132px;padding:18px 18px 16px;box-shadow:0 7px 22px #25265309}.admin-app .admin-metrics .metric strong{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:clamp(1.75rem,3vw,2.35rem)}.admin-app .admin-metrics .metric span{color:#414661;margin-top:6px;font-size:.78rem;font-weight:800}.admin-app .admin-metrics .metric small{color:var(--admin-muted);margin-top:auto;font-size:.7rem;line-height:1.45}.admin-app .admin-dashboard-grid{gap:14px;margin-bottom:14px}.admin-app .admin-dashboard-grid>.panel{border:1px solid var(--admin-line);background:var(--admin-surface);border-radius:16px;min-height:0;padding:20px;box-shadow:0 7px 22px #25265309}.admin-app .panel-heading{align-items:flex-start;gap:14px}.admin-app .panel-heading h2{letter-spacing:-.025em}.admin-app .panel-heading>a{white-space:normal;flex:none}.admin-app .attention-item{border-color:#eef0f5;gap:14px;padding:14px 0}.admin-app .attention-item>div{min-width:0}.admin-app .attention-item strong,.admin-app .attention-item small{overflow-wrap:anywhere}.admin-app .attention-item small{color:var(--admin-muted);line-height:1.45}.admin-app .attention-item .badge{flex:none}.admin-app .admin-quick-links a{border-color:var(--admin-line);background:#fcfcff;min-height:48px}.admin-app .admin-quick-links a:focus-visible{outline-color:#4d49c766;box-shadow:0 0 0 3px #4d49c729}.admin-app .admin-scope-card{background:var(--admin-surface-soft)}.admin-app .panel.admin-management-card{border:1px solid var(--admin-line);background:var(--admin-surface);border-radius:16px;margin-top:16px;padding:22px;box-shadow:0 7px 22px #25265309}.admin-app .admin-management-card .panel-heading small{max-width:420px;color:var(--admin-muted);line-height:1.5}.admin-app .admin-create-form,.admin-app .admin-assignment-form{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:12px;margin:18px 0 20px;display:grid}.admin-app .admin-create-form label{color:#4a4e67;gap:6px;font-size:.72rem;font-weight:800;display:grid}.admin-app .admin-create-form input{width:100%}.admin-app .admin-create-form .primary,.admin-app .admin-assignment-form .primary{white-space:normal;min-height:44px}.admin-app .admin-assignment-form{grid-template-columns:repeat(4,minmax(0,1fr)) auto}.admin-app .admin-assignment-form label{display:contents}.admin-app .admin-assignment-form select{min-width:0}.admin-app .admin-management-card .table-wrap{border-top:1px solid #eef0f5}.admin-app .admin-management-card table{min-width:680px}.admin-app .admin-management-card th{color:#858aa0;letter-spacing:.08em;text-transform:uppercase;font-size:.66rem}.admin-app .admin-management-card td{vertical-align:middle}.admin-app .admin-management-card tbody tr:last-child td{border-bottom:0}.admin-app .filters,.admin-app .selection-grid,.admin-app .student-form{gap:14px}.admin-app .filter-panel,.admin-app .attendance,.admin-app .table-panel{border:1px solid var(--admin-line);background:var(--admin-surface);border-radius:16px;box-shadow:0 7px 22px #25265309}.admin-app .review-card{border-color:var(--admin-line);border-radius:16px;box-shadow:0 7px 22px #25265309}.admin-app .review-card-expanded .review-detail{gap:18px}.admin-app .review-code-grid pre{max-height:240px;overflow:auto}.admin-app .review-actions{gap:8px}.admin-app .review-actions button{min-height:44px}.admin-app .attendance-row{min-height:58px}.admin-app .progress-cell{min-width:120px}@media (width<=1100px){.admin-app .admin-metrics,.admin-app .admin-create-form,.admin-app .admin-assignment-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-app .admin-create-form .primary,.admin-app .admin-assignment-form .primary{grid-column:1/-1;justify-self:start}}@media (width<=760px){.admin-app .workspace{padding:22px 16px 48px}.admin-app .page-header{gap:16px;margin-bottom:18px;padding-bottom:18px}.admin-app .page-header h1{font-size:clamp(1.8rem,8vw,2.35rem)}.admin-app .header-actions{align-items:stretch;width:100%}.admin-app .header-actions>*{flex:180px;justify-content:center}.admin-app .admin-intro{padding:16px}.admin-app .admin-dashboard-grid{grid-template-columns:1fr}.admin-app .admin-dashboard-grid>.panel{padding:17px}.admin-app .admin-create-form,.admin-app .admin-assignment-form{grid-template-columns:1fr}.admin-app .admin-create-form .primary,.admin-app .admin-assignment-form .primary{grid-column:auto;width:100%}.admin-app .admin-management-card{padding:17px}.admin-app .admin-management-card .panel-heading{display:grid}.admin-app .admin-management-card .panel-heading small{max-width:none}.admin-app .table-wrap{margin-inline:-2px}}@media (width<=520px){.admin-app .admin-metrics{grid-template-columns:1fr}.admin-app .admin-metrics .metric{min-height:112px}.admin-app .header-actions>*{flex-basis:100%;width:100%}}@media (width>=1100px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{grid-template-columns:minmax(300px, var(--task-pane,420px)) 18px minmax(540px, 1fr);height:var(--practice-height,calc(100dvh - 144px));align-items:stretch;min-height:560px;max-height:1400px;padding-right:clamp(16px,2vw,32px)}.student-course-workspace.is-practice .practice-task-column{scrollbar-gutter:stable both-edges;min-width:300px;height:100%;padding-inline:clamp(28px,3.4vw,64px);overflow:hidden auto}.student-course-workspace.is-practice .practice-runner-column{min-width:540px;height:100%;margin-right:0;overflow:visible}.student-course-workspace.is-practice .practice-runner-column .ide-runner{height:100%;min-height:0;max-height:none}.student-course-workspace.is-practice .panel-resizer.horizontal{cursor:col-resize;background:linear-gradient(90deg,#f7faff,#eef4fb,#f7faff);border-inline:1px solid #dce5f1;width:18px;min-width:18px;min-height:100%}.student-course-workspace.is-practice .panel-resizer.horizontal:before{background:#a9bdd7;border-radius:999px;width:4px;height:84px;inset:auto;box-shadow:0 0 0 4px #819dc21f}.student-course-workspace.is-practice .panel-resizer.horizontal:after{opacity:.74;height:48px}.student-course-workspace.is-practice .panel-resizer.horizontal:hover,.student-course-workspace.is-practice .panel-resizer.horizontal:focus-visible{background:#edf4ff;border-color:#c5d8f3}.student-course-workspace.is-practice .runner-height-resizer{cursor:ns-resize;height:22px;bottom:-11px;left:24px;right:24px}.student-course-workspace.is-practice .runner-height-resizer:before{background:#9bb4d3;width:min(260px,42%);height:5px;box-shadow:0 0 0 4px #819dc21f}}@media (width>=761px) and (width<=1099px){.student-course-workspace.is-practice .student-practice-layout.full-bleed-layout{min-height:560px}}@media (prefers-reduced-motion:reduce){.admin-app *,.student-course-workspace.is-practice .panel-resizer.horizontal,.student-course-workspace.is-practice .panel-resizer.horizontal:before,.student-course-workspace.is-practice .panel-resizer.horizontal:after,.student-course-workspace.is-practice .runner-height-resizer,.student-course-workspace.is-practice .runner-height-resizer:before{transition-duration:.01ms!important}}.teacher-app{--teacher-accent:#2f6bff;--teacher-accent-strong:#2059df;--teacher-accent-soft:#edf3ff;--teacher-ink:#172842;--teacher-body:#526580;--teacher-muted:#8291a8;--teacher-line:#dfe7f2;--teacher-line-soft:#edf1f6;--teacher-surface:#fff;--teacher-surface-soft:#f8fbff;--teacher-shadow:0 12px 34px #1931570e}.teacher-app .workspace{background:linear-gradient(#f6f8fc 0%,#f4f7fb 58%,#f6f8fc 100%);padding:34px clamp(20px,4vw,64px) 72px}.teacher-app .workspace>*{width:min(100%,1360px)}.teacher-app .page-header{border-bottom:1px solid var(--teacher-line);margin-bottom:26px;padding-bottom:22px}.teacher-app .page-header-copy{max-width:780px}.teacher-app .page-header .eyebrow,.teacher-app .panel .eyebrow{color:#7489a8;letter-spacing:.14em}.teacher-app .page-header h1{letter-spacing:-.05em;font-size:clamp(2.1rem,4vw,3.3rem)}.teacher-app .page-description{max-width:720px;color:var(--teacher-body);line-height:1.65}.teacher-app .header-actions{align-items:center;gap:9px}.teacher-app .header-actions>*{min-height:44px}.teacher-app .header-actions .primary{box-shadow:0 8px 18px #2f6bff2e}.teacher-app .metrics.teacher-dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.teacher-app .teacher-dashboard-metrics .metric{border:1px solid var(--teacher-line);background:var(--teacher-surface);min-height:136px;box-shadow:var(--teacher-shadow);border-top:3px solid #cbdcff;border-radius:16px;padding:20px}.teacher-app .teacher-dashboard-metrics .metric:nth-child(2n){border-top-color:#b9e5d5}.teacher-app .teacher-dashboard-metrics .metric:nth-child(3n){border-top-color:#f1d79f}.teacher-app .teacher-dashboard-metrics .metric strong{color:var(--teacher-ink);font-variant-numeric:tabular-nums;letter-spacing:-.045em;font-size:clamp(1.8rem,3vw,2.5rem)}.teacher-app .teacher-dashboard-metrics .metric span{color:#354866;margin-top:6px;font-size:.8rem;font-weight:800}.teacher-app .teacher-dashboard-metrics .metric small{color:var(--teacher-muted);align-items:center;gap:5px;margin-top:auto;font-size:.72rem;line-height:1.45;display:inline-flex}.teacher-app .teacher-dashboard-metrics .metric a{color:var(--teacher-accent);font-weight:800}.teacher-app .teacher-dashboard-grid{gap:14px;margin-bottom:14px}.teacher-app .teacher-dashboard-grid-primary,.teacher-app .teacher-dashboard-grid-secondary{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr)}.teacher-app .teacher-dashboard-panel{border:1px solid var(--teacher-line);background:var(--teacher-surface);min-height:0;box-shadow:var(--teacher-shadow);border-radius:16px;padding:21px}.teacher-app .teacher-dashboard-panel .panel-heading{align-items:flex-start;min-height:42px}.teacher-app .teacher-dashboard-panel .panel-heading h2{color:var(--teacher-ink);letter-spacing:-.03em;margin-top:2px}.teacher-app .teacher-dashboard-panel .panel-heading>svg{flex:none;margin-top:3px}.teacher-app .teacher-dashboard-panel .panel-heading>a{white-space:normal;flex:none}.teacher-app .attention-item{border-color:var(--teacher-line-soft);gap:14px;padding:15px 0}.teacher-app .attention-item>div{min-width:0}.teacher-app .attention-item strong,.teacher-app .attention-item small{overflow-wrap:anywhere}.teacher-app .attention-item strong{color:#283d5b;line-height:1.4}.teacher-app .attention-item small{color:var(--teacher-body);line-height:1.5}.teacher-app .attention-item .badge{flex:none}.teacher-app a.dashboard-risk-item{color:inherit;border-radius:10px;margin-inline:-10px;padding-inline:10px;text-decoration:none;transition:background .15s,border-color .15s}.teacher-app a.dashboard-risk-item:hover{background:#f7f9ff;border-color:#dbe6ff}.teacher-app a.dashboard-risk-item:focus-visible{outline-offset:2px;outline:3px solid #2f6bff33}.teacher-app .teacher-quick-panel .quick-actions{gap:9px}.teacher-app .teacher-quick-panel .quick-actions a{border-color:var(--teacher-line);background:var(--teacher-surface-soft);min-height:48px}.teacher-app .teacher-quick-panel .quick-actions a:hover{background:var(--teacher-accent-soft);border-color:#bfd2f3}.teacher-app .scope-grid.teacher-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.teacher-app .teacher-scope-card{border:1px solid var(--teacher-line);background:var(--teacher-surface);min-height:170px;box-shadow:var(--teacher-shadow);border-radius:16px;padding:21px}.teacher-app .teacher-scope-card .scope-card-title{align-items:flex-start;gap:12px}.teacher-app .teacher-scope-card .scope-card-title h2{overflow-wrap:anywhere;letter-spacing:-.025em}.teacher-app .teacher-scope-card .scope-card-title p{color:var(--teacher-body)}.teacher-app .teacher-scope-card .scope-icon{background:var(--teacher-accent-soft);width:38px;height:38px;color:var(--teacher-accent);border-radius:12px}.teacher-app .teacher-scope-card .scope-subgroups{border-top:1px solid var(--teacher-line-soft);gap:7px;padding-top:16px}.teacher-app .teacher-scope-card .subgroup-pill{color:#3766bd;background:#f3f7ff;border:1px solid #d7e4fb;min-height:30px}.teacher-app .teacher-roster-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.teacher-app .teacher-roster-summary>div{border:1px solid var(--teacher-line);background:var(--teacher-surface);border-radius:14px;gap:7px;min-height:98px;padding:16px 18px;display:grid;box-shadow:0 8px 24px #1931570a}.teacher-app .teacher-roster-summary span{color:var(--teacher-body);font-size:.72rem;font-weight:800}.teacher-app .teacher-roster-summary strong{color:var(--teacher-ink);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:1.65rem}.teacher-app .teacher-roster-summary strong.is-positive{color:#188866}.teacher-app .teacher-roster-summary strong.is-muted{color:#7b8ba2}.teacher-app .teacher-scope-table .teacher-roster-toolbar{border-bottom:1px solid var(--teacher-line-soft);justify-content:space-between;align-items:flex-end;gap:20px;padding:21px;display:flex}.teacher-app .teacher-roster-toolbar h2{color:var(--teacher-ink);letter-spacing:-.03em;margin:0}.teacher-app .teacher-roster-count{color:var(--teacher-body);margin:5px 0 0;font-size:.75rem}.teacher-app .teacher-roster-filters{grid-template-columns:minmax(220px,1.4fr) minmax(150px,1fr) minmax(130px,.8fr);gap:10px;min-width:min(100%,610px);display:grid}.teacher-app .teacher-roster-filters label{color:var(--teacher-body);gap:6px;font-size:.7rem;font-weight:800;display:grid}.teacher-app .teacher-roster-filters input,.teacher-app .teacher-roster-filters select{width:100%;min-height:42px}.teacher-app .teacher-scope-table>.table-wrap{border:0}.teacher-app .teacher-scope-table,.teacher-app .filter-panel,.teacher-app .attendance,.teacher-app .table-panel,.teacher-app .settings-form,.teacher-app .admin-management-card{border:1px solid var(--teacher-line);background:var(--teacher-surface);box-shadow:var(--teacher-shadow);border-radius:16px}.teacher-app .teacher-scope-table{padding:0;overflow:hidden}.teacher-app .table-wrap{scrollbar-color:#b8c8df transparent}.teacher-app .table-wrap table{min-width:640px}.teacher-app .table-wrap th{color:#7c8ca4;letter-spacing:.1em;text-transform:uppercase;background:#fbfcff;font-size:.66rem}.teacher-app .table-wrap td{color:var(--teacher-body);border-color:var(--teacher-line-soft);vertical-align:middle}.teacher-app .table-wrap td strong{color:#2b3d59}.teacher-app .table-wrap tbody tr:hover{background:#fbfdff}.teacher-app .filter-panel{padding:16px 18px}.teacher-app .filter-panel .filters,.teacher-app .attendance .selection-grid{align-items:end}.teacher-app .filter-panel label,.teacher-app .attendance label,.teacher-app .settings-form label,.teacher-app .admin-create-form label{color:#536681;gap:7px;font-size:.73rem;font-weight:800;display:grid}.teacher-app .filter-panel select,.teacher-app .attendance select,.teacher-app .settings-form input,.teacher-app .settings-form select,.teacher-app .settings-form textarea{width:100%}.teacher-app .attendance{padding:21px}.teacher-app .attendance-tools{border:1px solid var(--teacher-line-soft);background:var(--teacher-surface-soft);border-radius:12px;margin-top:18px;padding:12px 14px}.teacher-app .attendance-tools>span{color:var(--teacher-body);font-size:.75rem;font-weight:800}.teacher-app .attendance-list{border:1px solid var(--teacher-line-soft);border-radius:12px;margin-top:12px;overflow:hidden}.teacher-app .attendance-row{border-color:var(--teacher-line-soft);min-height:60px;padding:10px 14px}.teacher-app .attendance-row:hover{background:#fbfdff}.teacher-app .review-stack{gap:14px}.teacher-app .review-card{border:1px solid var(--teacher-line);background:var(--teacher-surface);box-shadow:var(--teacher-shadow);border-radius:16px;padding:0;overflow:hidden}.teacher-app .review-card-expanded .review-detail{gap:18px;padding:21px}.teacher-app .review-main{align-items:flex-start;gap:12px}.teacher-app .review-main h2{overflow-wrap:anywhere;letter-spacing:-.025em}.teacher-app .review-main p{color:var(--teacher-body);overflow-wrap:anywhere;line-height:1.5}.teacher-app .review-code-grid{gap:10px}.teacher-app .review-code-grid>div{min-width:0}.teacher-app .review-code-grid pre{color:#2a3e5f;background:#f8faff;border:1px solid #d9e3f0;border-radius:10px;max-height:250px;overflow:auto}.teacher-app .review-meta{gap:7px;padding-top:4px}.teacher-app .review-actions{justify-content:flex-end;gap:8px;padding-top:2px}.teacher-app .review-actions button{min-height:44px}.teacher-app .settings-form{padding:21px}.teacher-app .settings-form h2,.teacher-app .admin-management-card h2{letter-spacing:-.03em;margin-bottom:16px}.teacher-app .settings-form .primary,.teacher-app .settings-form .secondary{justify-self:start;margin-top:4px}.teacher-app .admin-management-card{padding:21px}.teacher-app .admin-management-card .panel-heading{align-items:flex-start}.teacher-app .admin-management-card .panel-heading small{max-width:460px;color:var(--teacher-body);line-height:1.55}.teacher-app .admin-management-card .table-wrap{border-top:1px solid var(--teacher-line-soft);margin-top:18px}.teacher-app .course-workspace-page .course-workspace-grid{border-color:var(--teacher-line);box-shadow:var(--teacher-shadow);border-radius:18px}.teacher-app .course-workspace-page .course-tree{border-color:var(--teacher-line);background:#f8fbff}.teacher-app .course-workspace-page .simple-course-editor{background:var(--teacher-surface)}.teacher-app .course-workspace-page .simple-editor-heading{border-bottom-color:var(--teacher-line-soft);gap:18px}.teacher-app .course-workspace-page .simple-editor-heading .primary{box-shadow:0 8px 18px #2f6bff29}.teacher-app .course-workspace-page .lesson-content-section,.teacher-app .course-workspace-page .simple-tasks{border-top:1px solid var(--teacher-line-soft);margin-top:26px;padding-top:24px}.teacher-app .course-workspace-page .markdown-pane,.teacher-app .course-workspace-page .preview-pane{border-radius:13px;min-width:0}.teacher-app .course-workspace-page .markdown-pane textarea{resize:vertical}.teacher-app .course-workspace-page .simple-task-row{background:#fbfcff;border-radius:12px;gap:14px;padding:16px}@media (width<=1100px){.teacher-app .metrics.teacher-dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-app .teacher-dashboard-grid-primary,.teacher-app .teacher-dashboard-grid-secondary,.teacher-app .scope-grid.teacher-scope-grid{grid-template-columns:1fr}.teacher-app .teacher-roster-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-app .teacher-scope-table .teacher-roster-toolbar{flex-direction:column;align-items:stretch}.teacher-app .teacher-roster-filters{min-width:0}.teacher-app .course-workspace-page .course-workspace-grid{grid-template-columns:minmax(210px,230px) minmax(0,1fr)}}@media (width<=760px){.teacher-app .workspace{padding:76px 16px 48px}.teacher-app .page-header{gap:17px;margin-bottom:20px;padding-bottom:18px}.teacher-app .page-header h1{font-size:clamp(1.9rem,9vw,2.55rem)}.teacher-app .header-actions{justify-content:stretch;align-items:stretch;width:100%}.teacher-app .header-actions>*{white-space:normal;flex:180px;justify-content:center}.teacher-app .metrics.teacher-dashboard-metrics{grid-template-columns:1fr;gap:10px}.teacher-app .teacher-dashboard-metrics .metric{min-height:112px}.teacher-app .teacher-dashboard-panel,.teacher-app .attendance,.teacher-app .settings-form,.teacher-app .admin-management-card{padding:17px}.teacher-app .teacher-dashboard-grid{gap:10px;margin-bottom:10px}.teacher-app .review-card-expanded .review-detail{padding:17px}.teacher-app .review-code-grid{grid-template-columns:1fr}.teacher-app .review-actions{grid-template-columns:1fr;display:grid}.teacher-app .review-actions button{width:100%}.teacher-app .filter-panel{padding:14px}.teacher-app .filter-panel .filters,.teacher-app .attendance .selection-grid{grid-template-columns:1fr}.teacher-app .course-workspace-page .course-workspace-grid{box-shadow:none;border:0;border-radius:0;display:block}.teacher-app .course-workspace-page .course-tree{border:1px solid var(--teacher-line);border-radius:14px;max-height:360px}.teacher-app .course-workspace-page .simple-course-editor{margin-top:12px;padding:18px 0}.teacher-app .course-workspace-page .simple-editor-heading{align-items:flex-start}.teacher-app .course-workspace-page .simple-editor-heading .primary{width:100%}.teacher-app .course-workspace-page .markdown-split-editor{min-height:0}.teacher-app .course-workspace-page .markdown-pane textarea{min-height:360px}}@media (width<=520px){.teacher-app .workspace{padding-inline:12px}.teacher-app .header-actions>*{flex:100%;width:100%}.teacher-app .panel-heading{gap:10px}.teacher-app .panel-heading>a{font-size:.72rem}.teacher-app .teacher-scope-card{padding:17px}.teacher-app .teacher-roster-summary{gap:9px}.teacher-app .teacher-roster-summary>div{min-height:86px;padding:14px}.teacher-app .teacher-scope-table .teacher-roster-toolbar{padding:17px}.teacher-app .teacher-roster-filters{grid-template-columns:1fr}}@media (width<=600px){.teacher-app .teacher-roster-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-app .teacher-roster-summary strong{font-size:1.45rem}.teacher-app .teacher-scope-table .table-wrap{padding:0 12px 12px}.teacher-app .teacher-scope-table .table-wrap table,.teacher-app .teacher-scope-table .table-wrap tbody,.teacher-app .teacher-scope-table .table-wrap tr,.teacher-app .teacher-scope-table .table-wrap td{width:100%;min-width:0;display:block}.teacher-app .teacher-scope-table .table-wrap table{border-collapse:separate}.teacher-app .teacher-scope-table .table-wrap thead{display:none}.teacher-app .teacher-scope-table .table-wrap tbody{gap:9px;display:grid}.teacher-app .teacher-scope-table .table-wrap tr{border:1px solid var(--teacher-line);background:var(--teacher-surface);border-radius:12px;padding:13px 14px}.teacher-app .teacher-scope-table .table-wrap td{text-align:right;border:0;justify-content:space-between;align-items:baseline;gap:12px;min-height:0;padding:5px 0;display:flex}.teacher-app .teacher-scope-table .table-wrap td:first-child{border-bottom:1px solid var(--teacher-line-soft);text-align:left;margin-bottom:4px;padding-bottom:9px;display:block}.teacher-app .teacher-scope-table .table-wrap td:nth-child(2):before{content:"Группа"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(3):before{content:"Подгруппа"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(4):before{content:"Прогресс"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(5):before{content:"Активность"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(6):before{content:"Статус"}.teacher-app .teacher-scope-table .table-wrap td:nth-child(7):before{content:"Действия"}.teacher-app .teacher-scope-table .table-wrap td:before{color:var(--teacher-muted);text-align:left;font-size:.68rem;font-weight:800}}@media (prefers-reduced-motion:reduce){.teacher-app .teacher-dashboard-panel,.teacher-app .teacher-scope-card,.teacher-app .review-card,.teacher-app .quick-actions a{transition:none!important}}.teacher-app .teacher-profile-dialog{width:min(760px,100vw - 32px);padding:0;overflow:hidden}.teacher-app .teacher-profile-dialog>.ui-dialog-title{border-bottom:1px solid var(--teacher-line-soft);letter-spacing:-.02em;margin:0;padding:24px 28px 18px;font-size:1rem}.teacher-app .teacher-profile-dialog>.ui-dialog-close{top:19px;right:22px}.teacher-app .teacher-student-profile{scrollbar-color:#b9c8dc transparent;max-height:min(720px,100vh - 132px);padding:24px 28px 28px;overflow:auto}.teacher-app .teacher-profile-identity{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;display:grid}.teacher-app .teacher-profile-avatar{color:#2f6bff;background:#edf4ff;border:1px solid #cfe0ff;border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.teacher-app .teacher-profile-identity h2{color:var(--teacher-ink);letter-spacing:-.035em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.1rem,2vw,1.35rem)}.teacher-app .teacher-profile-identity p{color:var(--teacher-body);margin:4px 0 0;font-size:.78rem}.teacher-app .teacher-profile-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:22px;display:grid}.teacher-app .teacher-profile-stats>div{border:1px solid var(--teacher-line);background:var(--teacher-surface-soft);border-radius:12px;gap:5px;min-height:94px;padding:13px 14px;display:grid}.teacher-app .teacher-profile-stats span,.teacher-app .teacher-profile-stats small{color:var(--teacher-muted);font-size:.67rem;font-weight:800}.teacher-app .teacher-profile-stats strong{color:var(--teacher-ink);letter-spacing:-.04em;font-size:1.32rem}.teacher-app .teacher-profile-stats small{font-weight:600;line-height:1.35}.teacher-app .teacher-profile-statuses{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px;display:grid}.teacher-app .teacher-profile-statuses>div{color:var(--teacher-body);background:#fbfcff;border-radius:10px;align-items:center;gap:7px;padding:10px 12px;font-size:.73rem;display:flex}.teacher-app .teacher-profile-statuses>div:first-child svg{color:#2fa979}.teacher-app .teacher-profile-statuses>div:nth-child(2) svg{color:#d58a20}.teacher-app .teacher-profile-statuses>div:nth-child(3) svg{color:#d55f5f}.teacher-app .teacher-profile-statuses strong{color:var(--teacher-ink);margin-left:auto}.teacher-app .teacher-profile-submissions{margin-top:24px}.teacher-app .teacher-profile-section-heading{border-bottom:1px solid var(--teacher-line-soft);color:var(--teacher-muted);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.teacher-app .teacher-profile-section-heading .eyebrow{margin:0 0 3px}.teacher-app .teacher-profile-section-heading h3{color:var(--teacher-ink);letter-spacing:-.025em;margin:0;font-size:1rem}.teacher-app .teacher-profile-submission-list{gap:9px;margin-top:12px;display:grid}.teacher-app .teacher-profile-submission{border:1px solid var(--teacher-line);background:var(--teacher-surface);border-radius:12px;padding:13px 14px}.teacher-app .teacher-profile-submission-main{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.teacher-app .teacher-profile-submission-main strong{color:var(--teacher-ink);overflow-wrap:anywhere;font-size:.82rem}.teacher-app .teacher-profile-submission-main p{color:var(--teacher-body);margin:4px 0 0;font-size:.71rem;line-height:1.4}.teacher-app .teacher-profile-submission-meta{color:var(--teacher-muted);flex-wrap:wrap;gap:8px 13px;margin-top:8px;font-size:.68rem;display:flex}.teacher-app .teacher-profile-comment{color:#3f5880;background:#f2f6ff;border-left:3px solid #8db1ff;border-radius:0 8px 8px 0;align-items:flex-start;gap:8px;margin-top:11px;padding:10px 11px;display:flex}.teacher-app .teacher-profile-comment svg{color:#4f80ee;flex:none;margin-top:2px}.teacher-app .teacher-profile-comment p{overflow-wrap:anywhere;margin:0;font-size:.73rem;line-height:1.5}.teacher-app .teacher-profile-empty{border:1px dashed var(--teacher-line);color:var(--teacher-muted);text-align:center;border-radius:10px;margin:14px 0 0;padding:17px;font-size:.78rem}.teacher-app .teacher-profile-loading,.teacher-app .teacher-profile-error{min-height:180px;color:var(--teacher-body);text-align:center;place-items:center;gap:10px;padding:26px;display:grid}.teacher-app .teacher-profile-error strong{color:var(--teacher-ink)}.teacher-app .teacher-profile-error p{max-width:380px;margin:0;font-size:.78rem;line-height:1.5}.teacher-app .teacher-profile-trigger{color:#2f6bff;white-space:nowrap;min-height:36px;padding:7px 11px;font-size:.72rem;font-weight:800}@media (width<=760px){.teacher-app .teacher-profile-dialog{width:calc(100vw - 20px)}.teacher-app .teacher-profile-dialog>.ui-dialog-title{padding:20px 48px 16px 18px}.teacher-app .teacher-student-profile{max-height:calc(100vh - 102px);padding:18px}.teacher-app .teacher-profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.teacher-app .teacher-profile-identity{grid-template-columns:auto minmax(0,1fr)}.teacher-app .teacher-profile-identity>.badge{grid-column:2;justify-self:start}.teacher-app .teacher-profile-statuses{grid-template-columns:1fr}.teacher-app .teacher-profile-submission-main{display:grid}.teacher-app .teacher-profile-submission-main>.badge{justify-self:start}}.teacher-app .teacher-profile-courses,.teacher-app .teacher-profile-attendance{margin-top:24px}.teacher-app .teacher-profile-course-list,.teacher-app .teacher-profile-attendance-list{gap:8px;margin-top:12px;display:grid}.teacher-app .teacher-profile-course,.teacher-app .teacher-profile-attendance-row{border:1px solid var(--teacher-line);background:var(--teacher-surface);border-radius:11px;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.teacher-app .teacher-profile-course>div:first-child,.teacher-app .teacher-profile-attendance-row>div{gap:4px;min-width:0;display:grid}.teacher-app .teacher-profile-course strong,.teacher-app .teacher-profile-attendance-row strong{color:var(--teacher-ink);overflow-wrap:anywhere;font-size:.77rem}.teacher-app .teacher-profile-course span,.teacher-app .teacher-profile-attendance-row span{color:var(--teacher-muted);font-size:.68rem;line-height:1.4}.teacher-app .teacher-profile-course-progress{flex:0 0 120px;align-items:center;gap:8px;display:flex}.teacher-app .teacher-profile-course-progress>span{background:#e7edf6;border-radius:999px;width:78px;height:6px;display:block;overflow:hidden}.teacher-app .teacher-profile-course-progress i{border-radius:inherit;background:var(--teacher-accent);height:100%;display:block}.teacher-app .teacher-profile-course-progress strong{color:var(--teacher-accent-strong);font-size:.7rem}.teacher-app .teacher-profile-submission-links{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.teacher-app .teacher-profile-submission-links .ghost{min-height:34px;color:var(--teacher-accent-strong);padding-inline:9px;font-size:.67rem;text-decoration:none}.teacher-app .teacher-profile-pagination{color:var(--teacher-muted);justify-content:space-between;align-items:center;gap:12px;margin-top:13px;font-size:.7rem;display:flex}.teacher-app .teacher-profile-pagination .ghost{min-height:34px;padding-inline:10px}.teacher-app .teacher-profile-attendance-row>.badge{flex:none}@media (width<=520px){.teacher-app .teacher-profile-course,.teacher-app .teacher-profile-attendance-row{flex-direction:column;align-items:flex-start}.teacher-app .teacher-profile-course-progress{flex-basis:auto;width:100%}.teacher-app .teacher-profile-course-progress>span{flex:1;width:auto}.teacher-app .teacher-profile-pagination{text-align:center;flex-direction:column;align-items:stretch}.teacher-app .teacher-profile-pagination .ghost{width:100%}}
