@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Source+Code+Pro:wght@500;600&display=swap";.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}}.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}}@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}}.courses-page{gap:22px;display:grid}.courses-shell{gap:20px;display:grid}.courses-shell.has-detail{grid-template-columns:minmax(310px,.62fr) minmax(620px,1.38fr);align-items:start}.course-catalog{min-width:0}.catalog-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:20px;display:flex}.catalog-head h2{letter-spacing:-.05em;margin:0;font-size:1.32rem}.catalog-count{color:var(--muted);margin:5px 0 0;font-size:.72rem}.create-course{gap:7px;min-width:min(100%,330px);display:grid}.create-course label,.sort-field span{color:#526078;font-size:.7rem;font-weight:800}.create-course>div{gap:7px;display:flex}.create-course input{border:1px solid var(--line);min-width:0;color:var(--ink);border-radius:9px;flex:1;padding:10px 11px}.catalog-tools{flex-wrap:wrap;align-items:center;gap:12px;padding:17px 0 2px;display:flex}.search-field{min-width:210px;color:var(--muted);border:1px solid var(--line);border-radius:9px;flex:1;align-items:center;gap:8px;padding:0 11px;display:flex}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:10px 0}.catalog-filters{flex-wrap:wrap;gap:4px;display:flex}.catalog-filters button{color:var(--muted);background:#f5f7fb;border:0;border-radius:999px;padding:8px 11px;font-size:.7rem;font-weight:800}.catalog-filters button.filter-active{color:#285ed4;background:#eaf0ff}.sort-field{align-items:center;gap:7px;display:flex}.sort-field select{min-width:155px}.course-cards{gap:10px;margin-top:14px;display:grid}.course-card{border:1px solid var(--line);background:#fff;border-radius:12px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.course-card:hover{border-color:#b9c9e8;box-shadow:0 10px 25px #172b4d0b}.course-card-main{text-align:left;cursor:pointer;background:#fff;border:0;width:100%;padding:15px 16px 11px}.course-card-title{align-items:center;gap:7px;display:flex}.course-status{border-radius:999px;padding:4px 8px;font-size:.63rem;font-weight:800}.status-draft{color:#657188;background:#eff1f4}.status-published{color:#168567;background:#e5f7f0}.status-archived{color:#785d9a;background:#f1eaff}.course-warning{color:#b07815;display:flex}.course-card h3{letter-spacing:-.025em;color:var(--ink);margin:11px 0 5px;font-size:.97rem}.course-card p{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.72rem;overflow:hidden}.course-card-stats{color:#6d7890;flex-wrap:wrap;gap:10px;margin-top:12px;font-size:.64rem;display:flex}.course-card-stats span{align-items:center;gap:4px;display:flex}.course-validation-note{color:#a96f0e;background:#fff8ea;border-top:1px solid #f4e5c5;padding:8px 16px;font-size:.68rem}.course-card-actions{border-top:1px solid #f0f2f6;justify-content:flex-end;gap:4px;padding:5px 9px;display:flex}.course-card-actions .ghost{min-height:28px;padding:0 8px;font-size:.68rem}.catalog-empty{color:var(--muted);text-align:center;place-items:center;gap:7px;padding:50px 15px;font-size:.76rem;display:grid}.catalog-empty strong{color:var(--ink);font-size:.88rem}.course-pagination{color:var(--muted);justify-content:center;align-items:center;gap:14px;margin-top:18px;font-size:.72rem;display:flex}.course-workspace{min-width:0;padding:0;position:sticky;top:22px;overflow:hidden}.workspace-mobile-title{display:none}.course-workspace-grid{grid-template-columns:255px minmax(0,1fr);min-height:650px;display:grid}.course-tree{border-right:1px solid var(--line);background:#fbfcff;padding:18px 10px}.tree-node{text-align:left;color:#526078;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:7px;width:100%;min-height:34px;padding:7px 8px;font-size:.73rem;font-weight:700;display:flex}.tree-node span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tree-node small{color:#8e99aa;font-size:.62rem;font-weight:700}.tree-node:hover{background:#f0f4fb}.tree-selected{color:#285ed4!important;background:#eaf0ff!important}.tree-course{margin-bottom:12px;font-size:.78rem;font-weight:800}.tree-course small{font-size:.59rem}.tree-row{align-items:center;gap:2px;display:flex}.tree-disclosure{color:#8792a5;cursor:pointer;background:0 0;border:0;place-items:center;width:22px;height:26px;display:grid}.tree-module{padding-left:4px}.tree-children{padding:3px 0 8px 23px}.tree-lesson-branch{gap:1px;display:grid}.tree-lesson{font-weight:700}.tree-task{color:#718096;padding-left:24px;font-size:.68rem;font-weight:600}.tree-ok{color:#168567;flex:none}.tree-muted{color:#b17c22;flex:none}.course-tree+.node-editor{min-width:0}.node-editor{min-width:0;padding:24px}.node-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px;padding-bottom:19px;display:flex}.node-header h2{letter-spacing:-.05em;margin:0;font-size:1.35rem}.node-subtitle{color:var(--muted);margin:5px 0 0;font-size:.71rem}.node-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.node-actions button{min-height:34px;padding:0 9px;font-size:.68rem}.autosave-status{color:var(--muted);margin:7px 0 0;font-size:.67rem}.autosave-status[data-state=saving]{color:#2c62dc}.autosave-status[data-state=error]{color:#b34d3d}.autosave-status[data-state=saved]{color:#168567}.editor-fields{grid-template-columns:1fr 1fr;gap:14px;display:grid}.editor-fields label,.add-node-card label{color:#526078;gap:7px;font-size:.72rem;font-weight:800;display:grid}.editor-fields input,.editor-fields select,.editor-fields textarea,.add-node-card input,.add-node-card select,.add-node-card textarea,.quick-add-module input{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:9px;padding:10px;font-size:.77rem}.editor-fields textarea{resize:vertical;min-height:100px}.editor-fields .wide-field{grid-column:1/-1}.markdown-editor{line-height:1.5;min-height:270px!important;font-family:Source Code Pro,monospace!important}.task-statement{min-height:150px!important}.code-input{min-height:190px!important;font-family:Source Code Pro,monospace!important}.assignment-editor{background:#f7f9ff;border:1px solid #e4ebf9;border-radius:11px;gap:14px;margin-top:20px;padding:16px;display:grid}.assignment-editor h3{margin:0;font-size:.91rem}.assignment-editor p:not(.eyebrow){color:var(--muted);margin:5px 0 0;font-size:.7rem}.group-checkboxes{flex-wrap:wrap;gap:9px;display:flex}.group-checkboxes label{border:1px solid var(--line);color:#526078;background:#fff;border-radius:8px;align-items:center;gap:6px;padding:8px 10px;font-size:.72rem;display:flex}.group-checkboxes small{color:var(--muted);font-size:.62rem}.check-line{align-items:center;gap:7px;display:flex!important}.check-line input{accent-color:var(--blue);width:auto!important}.publish-checklist{background:#fffaf0;border:1px solid #f2dfbb;border-radius:11px;margin-top:20px;padding:16px}.publish-checklist.checklist-valid{background:#f5fcf9;border-color:#c9ecdf}.checklist-title{justify-content:space-between;gap:12px;display:flex}.checklist-title h3{margin:0;font-size:.92rem}.checklist-icon{color:#b07815}.success-icon{color:#168567}.checklist-items{gap:8px;margin-top:13px;display:grid}.checklist-item{color:#526078;align-items:center;gap:7px;font-size:.71rem;display:flex}.checklist-errors,.checklist-warnings{margin:13px 0 0;padding-left:18px;font-size:.68rem;line-height:1.5}.checklist-errors{color:#a94e3f}.checklist-warnings{color:#a96f0e}.add-node-card{background:#f8faff;border:1px dashed #bdcbe3;border-radius:11px;gap:11px;margin-top:22px;padding:15px;display:grid}.add-node-card>div:first-child{gap:4px;display:grid}.add-node-card strong{color:var(--ink);font-size:.8rem}.add-node-card span{color:var(--muted);font-size:.67rem}.add-node-card>.secondary{justify-self:start}.form-grid{grid-template-columns:1fr 1fr;gap:11px;display:grid}.add-node-card textarea{resize:vertical;min-height:75px}.quick-add-module{border-top:1px solid var(--line);gap:8px;padding:14px 20px;display:flex}.quick-add-module input{flex:1}.node-editor-empty{min-height:400px;color:var(--muted);align-content:center;place-items:center;gap:8px;font-size:.77rem;display:grid}.node-editor-empty strong{color:var(--ink)}.workspace-mobile-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px}.course-preview-modal{width:min(720px,100%);max-height:88vh;overflow:auto}.preview-label{color:#285ed4;align-items:center;gap:6px;font-size:.7rem;font-weight:800;display:flex}.course-preview-modal h2{font-size:1.45rem}.student-preview-task{gap:12px;display:grid}.preview-statement{white-space:pre-wrap;color:#526078;font-size:.82rem;line-height:1.6}.preview-example,.preview-code{background:#f7f9fc;border:1px solid #e6ebf3;border-radius:9px;padding:11px}.preview-example strong,.preview-code div{color:#526078;font-size:.7rem}.preview-example pre,.preview-code pre{white-space:pre-wrap;margin:8px 0 0;font:500 .75rem/1.55 Source Code Pro,monospace}.preview-hint{color:#526078;background:#f2f6ff;border-left:3px solid #7ba5ff;padding:9px 12px;font-size:.74rem}.preview-hint p{margin:5px 0 0}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=920px){.courses-shell.has-detail{grid-template-columns:1fr}.course-workspace{position:static}.course-catalog{order:0}.course-workspace{order:1}.course-workspace-grid{grid-template-columns:230px minmax(0,1fr)}}@media (width>=921px){.courses-shell.has-detail{grid-template-columns:1fr}}@media (width<=700px){.catalog-head{display:grid}.create-course{min-width:0}.create-course>div{display:grid}.create-course button{width:100%}.catalog-tools{align-items:stretch;display:grid}.search-field{min-width:0}.catalog-filters{flex-wrap:nowrap;overflow:auto}.sort-field{justify-content:space-between}.sort-field select{flex:1}.course-workspace{border-radius:12px}.workspace-mobile-title{display:flex}.course-workspace-grid{min-height:0;display:block}.course-tree{border-right:0;border-bottom:1px solid var(--line);max-height:260px;padding:12px;overflow:auto}.node-editor{padding:18px 15px}.node-header{display:grid}.node-actions{justify-content:flex-start}.node-actions button{flex:1}.editor-fields,.form-grid{grid-template-columns:1fr}.editor-fields .wide-field{grid-column:auto}.assignment-editor{padding:13px}.group-checkboxes{display:grid}.group-checkboxes label{justify-content:space-between}.quick-add-module{padding:12px;display:grid}.quick-add-module button{width:100%}.course-card-stats{gap:7px}.course-card-main{padding:13px}.course-preview-modal{padding:23px}.course-preview-modal .modal-close{top:10px;right:10px}}.lesson-block-editor{border-top:1px solid var(--line);gap:14px;margin-top:20px;padding-top:18px;display:grid}.block-editor-head,.block-toolbar,.block-card-head,.revision-history-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.block-editor-head h3{margin:0;font-size:1rem}.block-toolbar{align-items:stretch}.block-add{align-items:center;gap:8px;display:flex}.block-add select{min-width:180px}.block-list{gap:10px;display:grid}.lesson-block-card{border:1px solid var(--line);background:var(--surface,#fff);border-radius:12px;gap:12px;padding:12px;display:grid}.lesson-block-card.is-dirty{border-color:var(--accent,#4f46e5)}.block-card-head{font-weight:600}.block-card-actions{gap:5px;display:flex}.icon-button{border:1px solid var(--line);width:32px;height:32px;color:inherit;cursor:pointer;background:0 0;border-radius:8px;place-items:center;padding:0;display:inline-grid}.icon-button:hover{background:var(--surface-muted,#f4f4f5)}.block-type-label{align-items:center;gap:7px;display:inline-flex}.block-fields{gap:10px;display:grid}.block-fields textarea{resize:vertical;min-height:86px}.block-fields .inline-fields{grid-template-columns:1fr 120px;gap:10px;display:grid}.block-inline-preview{border-top:1px dashed var(--line);padding-top:10px}.block-inline-preview small{color:var(--muted);margin-bottom:6px;display:block}.block-preview{gap:10px;display:grid}.content-code-block{color:#e2e8f0;background:#101827;border-radius:9px;margin:0;padding:12px;font:500 .84rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}.content-code-head{color:#94a3b8;justify-content:space-between;margin-bottom:6px;font-size:.78rem;display:flex}.content-callout{border-left:4px solid var(--accent,#4f46e5);background:color-mix(in srgb,var(--accent,#4f46e5) 8%,transparent);border-radius:0 9px 9px 0;padding:12px}.content-callout.warning{border-color:#f59e0b}.content-callout.tip{border-color:#10b981}.content-media{gap:6px;display:grid}.content-media img{border-radius:8px;max-width:100%}.content-media figcaption{color:var(--muted);font-size:.82rem}.content-divider{border:0;border-top:1px solid var(--line);margin:8px 0}.content-check{background:var(--surface-muted,#f8fafc);border-radius:9px;gap:7px;padding:12px;display:grid}.content-check ul{margin:0;padding-left:20px}.template-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.template-toolbar select{min-width:210px}.save-template{border:1px dashed var(--line);border-radius:10px;gap:8px;padding:12px;display:grid}.save-template summary{cursor:pointer;font-weight:600}.revision-history{gap:12px;display:grid}.revision-history-list{gap:8px;max-height:390px;display:grid;overflow:auto}.revision-row{border:1px solid var(--line);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.revision-row small{color:var(--muted);display:block}.preview-block-button{align-items:center;gap:6px;display:inline-flex}.autosave-status{color:var(--muted);font-size:.82rem}.autosave-status.saving{color:#b45309}.autosave-status.saved{color:#047857}.autosave-status.error{color:#b91c1c}@media (width<=700px){.block-add{grid-template-columns:1fr auto;width:100%;display:grid}.block-add select{min-width:0}.block-fields .inline-fields{grid-template-columns:1fr}.revision-row{flex-direction:column;align-items:flex-start}.revision-row button{width:100%}.template-toolbar{display:grid}.template-toolbar select{width:100%;min-width:0}.lesson-block-card{padding:10px}}.inline-python-playground{border:1px solid var(--line);background:var(--surface-muted,#f8fafc);border-radius:12px;gap:12px;padding:16px;display:grid}.inline-python-playground label{gap:6px;display:grid}.inline-python-playground textarea:not(.code-editor){min-height:64px}.interactive-block{gap:14px;display:grid}.interactive-block h2{margin:0}.interactive-options{gap:9px;display:grid}.interactive-options label{border:1px solid var(--line);cursor:pointer;border-radius:9px;align-items:center;gap:8px;padding:10px;display:flex}.interactive-options label:has(input:checked){border-color:var(--accent,#4f46e5);background:color-mix(in srgb,var(--accent,#4f46e5) 8%,transparent)}.compact-dialog{width:min(520px,100vw - 32px);padding:28px}.compact-dialog form{gap:16px;display:grid}.compact-dialog label{gap:7px;display:grid}.compact-dialog textarea{min-height:110px}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.tree-course-row{align-items:center;display:flex}.tree-course-row>.tree-node,.tree-row>.tree-node{flex:1}.legacy-content{border:1px dashed var(--line,#d8dee9);border-radius:12px;margin:18px 0;padding:14px}.legacy-content summary{cursor:pointer;font-weight:600}.legacy-content textarea{width:100%;min-height:120px;margin:12px 0}.task-reference-editor{background:#f3f9ff;border-radius:10px;padding:12px}.content-task-reference{background:#f5faff;border:1px solid #b9d5f3;border-radius:14px;margin:16px 0;padding:18px}.content-task-reference h3{margin:8px 0}.preview-readonly-note{color:var(--muted,#667085);margin:-8px 0 14px;display:block}.course-preview-modal{max-height:calc(100vh - 32px);overflow:auto}.dialog-help{color:var(--muted);margin:-8px 0 4px;font-size:.76rem;line-height:1.5}.field-help{color:var(--muted);font-size:.66rem;font-weight:500}.lesson-create-dialog,.task-editor-dialog{max-height:calc(100vh - 32px);overflow:auto}.lesson-type-choices{border:0;min-width:0;margin:0;padding:0}.lesson-type-choices legend{color:#526078;margin-bottom:8px;font-size:.72rem;font-weight:800}.choice-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.choice-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;align-items:flex-start;gap:9px;padding:11px;color:#526078!important;font-weight:500!important;display:flex!important}.choice-card input{accent-color:var(--blue);margin-top:3px}.choice-card svg{color:#6d7d99;flex:none}.choice-card span{gap:3px;display:grid}.choice-card strong{color:var(--ink);font-size:.75rem}.choice-card small{color:var(--muted);font-size:.64rem;font-weight:500}.choice-card.is-selected{background:#f1f5ff;border-color:#89aaf2;box-shadow:0 0 0 2px #dce7ff}.task-extra-fields{border:1px solid var(--line);border-radius:10px;padding:11px}.task-extra-fields summary{cursor:pointer;color:#526078;font-size:.74rem;font-weight:800}.task-extra-content{gap:11px;margin-top:12px;display:grid}.task-extra-content label{gap:7px;display:grid}.task-extra-content textarea{min-height:80px}.lesson-status-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;display:flex}.lesson-status-pill{color:#657188;cursor:pointer;background:#f1f3f6;border:0;border-radius:999px;align-items:center;gap:5px;padding:6px 9px;font-size:.66rem;font-weight:800;display:inline-flex}.lesson-status-pill.is-ready{color:#168567;background:#e6f7f0}.lesson-status-pill:hover{filter:brightness(.98)}.lesson-section{border:1px solid var(--line);background:#fff;border-radius:12px;margin-top:14px;overflow:hidden}.lesson-section>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:14px 15px;list-style:none;display:flex}.lesson-section>summary::-webkit-details-marker{display:none}.lesson-section>summary>span:first-child{gap:3px;display:grid}.lesson-section>summary strong{color:var(--ink);font-size:.82rem}.lesson-section>summary small{color:var(--muted);font-size:.67rem;font-weight:500}.section-state{color:#6a7891;white-space:nowrap;background:#f3f5f8;border-radius:999px;padding:5px 8px;font-size:.66rem;font-weight:800}.lesson-section[open]>summary{border-bottom:1px solid var(--line);background:#fbfcff}.lesson-section-body{padding:0 15px 15px}.lesson-section-body>.lesson-block-editor{border-top:0;margin-top:0;padding-top:15px}.legacy-preview{white-space:pre-wrap;color:#526078;background:#f7f9fc;border:1px solid #e6ebf3;border-radius:9px;max-height:200px;padding:11px;font:.72rem/1.5 Source Code Pro,monospace;overflow:auto}.section-toolbar{justify-content:space-between;align-items:center;gap:10px;padding-top:15px;display:flex}.section-toolbar p{margin:0}.section-description{color:var(--muted);margin:6px 0;font-size:.71rem;line-height:1.5}.empty-section-title{color:var(--ink);font-size:.78rem;font-weight:800}.section-empty{color:var(--muted);text-align:center;border:1px dashed #bdcbe3;border-radius:10px;place-items:center;gap:7px;margin-top:12px;padding:24px 12px;display:grid}.section-empty p{margin:0;font-size:.71rem}.task-summary-list{gap:9px;margin-top:13px;display:grid}.task-summary-card{border:1px solid var(--line);background:#fbfcff;border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px;display:flex}.task-summary-main{gap:9px;min-width:0;display:flex}.task-summary-main>div{min-width:0}.task-number{color:#285ed4;background:#eaf0ff;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;font-size:.7rem;font-weight:800;display:grid}.task-summary-main strong{color:var(--ink);font-size:.77rem}.task-summary-main p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:.68rem;line-height:1.4;display:-webkit-box;overflow:hidden}.task-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.task-card-actions .ghost{min-height:29px;padding:0 7px;font-size:.66rem}.task-detail-summary{border:1px solid var(--line);background:#fbfcff;border-radius:11px;gap:8px;margin-top:16px;padding:16px;display:grid}.task-detail-summary strong{font-size:.9rem}.task-detail-summary p{color:#526078;margin:0;font-size:.76rem;line-height:1.5}.add-lesson-prompt{grid-template-columns:auto 1fr auto;align-items:center;margin-top:22px}.add-lesson-prompt>div{gap:4px;display:grid}.add-lesson-prompt>svg{color:#285ed4}.module-tip{color:var(--muted);margin-top:12px;font-size:.69rem}.block-expand{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:0;display:flex}.block-expand>span{gap:3px;min-width:0;display:grid}.block-expand strong{color:var(--ink);font-size:.75rem}.block-expand small{color:var(--muted);font-size:.63rem;font-weight:500}.block-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:4px;display:flex}.lesson-block-card-head{align-items:center;gap:7px;display:flex}.lesson-block-card:not(.is-expanded) .block-inline-preview{display:none}.lesson-block-card.is-expanded{box-shadow:0 4px 14px #172b4d0b}.block-field{gap:8px;display:grid}.block-field textarea{resize:vertical;min-height:100px}.task-reference-summary{color:#285ed4;background:#f5faff;border:1px solid #b9d5f3;border-radius:10px;align-items:flex-start;gap:10px;padding:12px;display:flex}.task-reference-summary>div{gap:4px;display:grid}.task-reference-summary strong{color:var(--ink);font-size:.76rem}.task-reference-summary p{color:#526078;margin:0;font-size:.7rem;line-height:1.45}.task-reference-summary small{color:var(--muted);font-size:.64rem}.block-empty{color:var(--muted);text-align:center;border:1px dashed #bdcbe3;border-radius:10px;place-items:center;gap:5px;padding:24px;display:grid}.block-empty strong{color:var(--ink);font-size:.77rem}.block-empty span{font-size:.69rem}.template-section{border:1px dashed var(--line);border-radius:10px;padding:11px}.template-section summary{cursor:pointer;color:#526078;font-size:.75rem;font-weight:800}.template-section-body{gap:11px;margin-top:12px;display:grid}.template-only-panel{gap:13px;display:grid}.template-list{gap:8px;display:grid}.template-list-item{border:1px solid var(--line);border-radius:9px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px;display:flex}.template-list-item strong{font-size:.75rem}.template-list-item p{color:var(--muted);margin:3px 0 0;font-size:.67rem}.template-list-item>span{color:#6d7890;white-space:nowrap;font-size:.62rem}@media (width<=700px){.choice-grid{grid-template-columns:1fr}.add-lesson-prompt{grid-template-columns:auto 1fr}.add-lesson-prompt button{grid-column:1/-1;width:100%}.section-toolbar{align-items:stretch;display:grid}.section-toolbar button{width:100%}.task-summary-card{display:grid}.task-card-actions{justify-content:flex-start}.task-card-actions .ghost{flex:1}.lesson-section-body{padding:0 11px 11px}.lesson-status-row{flex-direction:column;align-items:flex-start}.lesson-status-pill{white-space:normal;text-align:left}.block-card-actions{margin-left:auto}.block-expand{order:1}.lesson-block-card-head>.drag-handle{order:0}.lesson-block-card-head>.block-position{order:2}.block-card-actions{order:3}.task-editor-dialog,.lesson-create-dialog{width:calc(100vw - 16px);padding:21px 16px}.template-list-item{display:grid}.template-list-item>span{justify-self:start}}.materials-page{gap:20px;display:grid}.materials-catalog{gap:16px;display:grid}.materials-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:16px;display:flex}.materials-toolbar .search-field{flex:1;min-width:240px}.material-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.material-card{border:1px solid var(--line);background:#fff;border-radius:13px;overflow:hidden}.material-card-head{justify-content:space-between;align-items:center;gap:8px;padding:13px 15px 0;display:flex}.material-type{color:#526078;align-items:center;gap:5px;font-size:.68rem;font-weight:800;display:inline-flex}.material-type.lecture{color:#4b66a8}.material-type.practice{color:#8f5a25}.material-card-main{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:10px 15px 14px;display:block}.material-card-main h2{letter-spacing:-.03em;color:var(--ink);margin:0 0 5px;font-size:1rem}.material-card-main p{color:var(--muted);margin:0;font-size:.71rem}.material-audience-list{color:#526078;gap:5px;margin-top:13px;font-size:.68rem;display:grid}.material-audience-list span{align-items:center;gap:5px;display:flex}.material-card-actions{border-top:1px solid #f0f2f6;justify-content:flex-end;gap:5px;padding:8px 10px;display:flex}.material-card-actions button{min-height:30px;font-size:.68rem}.material-create-dialog{width:min(720px,100%);max-height:90vh;overflow:auto}.audience-picker,.material-audience-panel{background:#f8faff;border:1px solid #e1e8f3;border-radius:12px;gap:11px;padding:15px;display:grid}.audience-picker legend{color:var(--ink);align-items:center;gap:6px;font-size:.8rem;font-weight:800;display:flex}.audience-picker>p{margin:0}.audience-group{border-top:1px solid #e5ebf4;padding-top:10px}.audience-group:first-of-type{border-top:0;padding-top:0}.audience-group-title{color:var(--ink);align-items:center;gap:7px;font-size:.74rem;font-weight:800;display:flex}.audience-group-title input{accent-color:var(--blue)}.audience-group-title small{color:var(--muted);margin-left:auto;font-size:.64rem;font-weight:600}.audience-options{color:#526078;flex-wrap:wrap;align-items:center;gap:12px;padding:9px 0 0 25px;font-size:.7rem;display:flex}.audience-options label,.subgroup-options label{align-items:center;gap:5px;display:flex}.audience-options input,.subgroup-options input{accent-color:var(--blue)}.subgroup-options{flex-wrap:wrap;gap:8px;width:100%;padding-top:5px;display:flex}.material-workspace{padding:0;overflow:hidden}.material-workspace-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;display:flex}.material-workspace-head h2{letter-spacing:-.05em;margin:7px 0 4px;font-size:1.35rem}.material-status-line{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.material-version{color:var(--muted);font-size:.67rem}.material-audience-panel{grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr);margin:20px 22px 0}.material-audience-panel h3{margin:0;font-size:.92rem}.material-audience-panel p:not(.eyebrow){color:var(--muted);margin:5px 0 0;font-size:.7rem}.audience-editor{gap:10px;display:grid}.material-workspace>.node-editor{padding:20px 22px}.material-workspace .node-header{margin-top:0}.material-workspace .node-actions .danger,.material-workspace .lesson-status-row{display:none}@media (width<=800px){.material-cards{grid-template-columns:1fr}.material-workspace-head{padding:16px;display:grid}.material-workspace-head .header-actions{flex-wrap:wrap;justify-content:flex-start}.material-workspace-head .header-actions button{flex:1}.material-audience-panel{grid-template-columns:1fr;margin:14px 15px 0;padding:13px}.material-workspace>.node-editor{padding:16px 15px}.materials-toolbar{align-items:stretch;display:grid}.materials-toolbar .search-field{min-width:0}.material-create-dialog{border-radius:0;max-height:100vh}.material-audience-panel .audience-options{padding-left:23px}}: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}}.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-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{color:#8b96a9;flex:none;font-size:.62rem}.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.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>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}.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-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-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}}@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}button,a,input,select,textarea{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}.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.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:#93a0b4;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)}.page-header{margin-bottom:28px}.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}@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.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}}@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}}
