:root{--workspace-surface:#fff;--workspace-border:#e8e7e1;--workspace-text:#263246;--workspace-muted:#657080;--workspace-primary:#4863a8;--workspace-success:#317154;--workspace-warning:#925d22;--workspace-danger:#af4141;--workspace-blue-soft:#eef2fa;--workspace-purple-soft:#f1eef8;--workspace-green-soft:#edf5ef;--workspace-orange-soft:#fbf2e8;--workspace-font-sm:14px;--workspace-font-base:16px;--workspace-font-lg:20px;--workspace-font-title:28px;--workspace-font-display:36px;--workspace-space:8px;--workspace-radius:16px;--workspace-radius-lg:20px;--workspace-shadow:0 3px 16px #252d3a08}.student-ui{--student-bg:#f2f7fb;--student-sidebar:#0f1b3d;--student-sidebar-border:#23365c;--student-sidebar-text:#eaf0fa;--student-sidebar-muted:#aebbd0;--student-sidebar-icon:#d8e5f7;--student-sidebar-hover:#172a55;--student-sidebar-active:#1f4f8f;--student-sidebar-accent:#69a7ff;--student-surface:#fff;--student-text:#102a56;--student-muted:#60738d;--student-primary:#2f6feb;--student-primary-hover:#245fd0;--student-border:#d9e4ee;--student-shadow:0 5px 18px #102a560a;--learning-font-page-title:clamp(30px, 2.4vw, 38px);--learning-font-lesson-title:clamp(27px, 2.1vw, 34px);--learning-font-section-title:22px;--learning-font-task-title:clamp(24px, 2vw, 32px);--learning-font-body:16px;--learning-font-secondary:14px;--learning-font-caption:13px;--learning-font-navigation:15px;--learning-font-button:15px;--learning-font-code:16px;--learning-line-body:1.65;--learning-code-font:ui-monospace, "Cascadia Code", "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", "Noto Sans Mono CJK SC", monospace;background:var(--student-bg);color:var(--student-text);font:400 var(--learning-font-body)/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans CJK SC", "Microsoft YaHei UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}.student-ui *,.student-ui :before,.student-ui :after{box-sizing:border-box}.student-ui h1,.student-ui h2,.student-ui h3,.student-ui p{margin:0}.student-ui h1{font-size:var(--workspace-font-title);letter-spacing:-.035em;overflow-wrap:anywhere;font-weight:650;line-height:1.25}.student-ui h2{letter-spacing:-.02em;font-size:24px;font-weight:650;line-height:1.35}.student-ui h3{font-size:20px;font-weight:600;line-height:1.4}.student-ui strong{font-weight:600}.student-ui small{font-size:var(--workspace-font-sm)}.student-ui a{color:var(--student-primary);text-decoration:none}.student-ui a:hover{text-underline-offset:3px;text-decoration:underline}.student-ui button,.student-ui input,.student-ui textarea{font:inherit}.student-ui button{cursor:pointer}.student-ui :focus-visible{outline-offset:3px;outline:3px solid #6881bc}.student-ui :disabled{cursor:not-allowed;opacity:.6}.student-ui img,.student-ui svg{max-width:100%}.student-ui [hidden]{display:none!important}.student-ui form{margin:0}.student-visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.student-icon{vertical-align:middle;flex:none}.learning-type-page-title{font-size:var(--learning-font-page-title);line-height:1.18}.learning-type-lesson-title{font-size:var(--learning-font-lesson-title);line-height:1.2}.learning-type-section-title{font-size:var(--learning-font-section-title);line-height:1.3}.learning-type-task-title{font-size:var(--learning-font-task-title);line-height:1.22}.learning-type-body{font-size:var(--learning-font-body);line-height:var(--learning-line-body)}.learning-type-secondary{font-size:var(--learning-font-secondary);color:var(--student-muted);line-height:1.55}.learning-type-caption{font-size:var(--learning-font-caption);color:var(--student-muted);line-height:1.45}.learning-type-code{font:var(--learning-font-code)/1.7 var(--learning-code-font)}.learning-type-navigation{font-size:var(--learning-font-navigation);font-weight:600}.learning-type-button{font-size:var(--learning-font-button);font-weight:700}.student-ui:lang(zh),.student-ui :lang(zh){letter-spacing:normal}.spa-shell{grid-template-columns:236px minmax(0,1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.spa-sidebar{border-right:1px solid var(--student-sidebar-border);background:var(--student-sidebar);height:100dvh;color:var(--student-sidebar-text);z-index:30;flex-direction:column;align-self:start;gap:28px;padding:28px 18px 20px;display:flex;position:sticky;top:0;overflow-y:auto}.student-brand-row{border-bottom:1px solid var(--student-sidebar-border);align-items:center;gap:4px;padding-bottom:20px;display:flex}.student-ui .spa-logo{color:var(--student-sidebar-text);align-items:center;gap:10px;line-height:1.4;display:flex}.spa-logo strong{letter-spacing:-.04em;font-size:20px}.spa-logo small{color:var(--student-sidebar-muted);font-size:14px;display:block}.student-brand-mark{background:var(--student-sidebar-hover);width:36px;height:40px;color:var(--student-sidebar-icon);border-radius:12px;flex:none;place-items:center;display:grid}.student-brand-copy,.student-nav-label,.student-profile-copy,.student-logout-label,.student-sidebar-toggle__label{min-width:0}.student-sidebar-toggle{border:1px solid var(--student-sidebar-border);width:100%;min-height:44px;color:var(--student-sidebar-muted);text-align:left;font-size:var(--learning-font-navigation);background:0 0;border-radius:11px;align-items:center;gap:12px;padding:9px 12px;font-weight:650;display:flex}.student-sidebar-toggle:hover{background:var(--student-sidebar-hover);color:#fff;border-color:#3e5682}.spa-nav{gap:5px;display:grid}.student-ui .spa-nav a{min-height:46px;font-size:var(--learning-font-navigation);color:var(--student-sidebar-text);border:1px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:11px 12px;font-weight:550;display:flex}.student-ui .spa-nav a .student-icon{color:var(--student-sidebar-icon)}.student-ui .spa-nav a:hover{background:var(--student-sidebar-hover);color:#fff;text-decoration:none}.student-ui .spa-nav a.active{background:var(--student-sidebar-active);color:#fff;box-shadow:inset 3px 0 var(--student-sidebar-accent);border-color:#2d65a9;font-weight:650}.spa-student-profile{border-top:1px solid var(--student-sidebar-border);margin-top:auto;padding-top:20px}.student-profile-identity{align-items:center;gap:10px;min-width:0;display:flex}.student-profile-identity>div{min-width:0}.student-profile-identity strong{color:var(--student-sidebar-text);overflow-wrap:anywhere;display:block}.student-profile-identity small{color:var(--student-sidebar-muted);display:block}.student-avatar{width:40px;height:40px;color:var(--student-sidebar-icon);background:#233d70;border-radius:50%;flex:none;place-items:center;font-weight:650;display:grid}.spa-student-profile button{width:100%;color:var(--student-sidebar-muted);text-align:left;background:0 0;border:0;align-items:center;gap:12px;margin-top:18px;padding:8px 12px;font-size:14px;display:flex}.spa-student-profile button:hover{color:#fff}.spa-main{width:100%;min-width:0;max-width:1560px;margin:0 auto;padding:28px clamp(24px,3vw,52px) 48px}:is(.spa-main:has(.coding-lab),.spa-main:has(.interactive-lesson)){max-width:none}.spa-main>section+section{margin-top:28px}.student-topbar{border-bottom:1px solid var(--student-border);min-width:0;color:var(--student-muted);justify-content:flex-end;align-items:center;gap:20px;margin-bottom:28px;padding-bottom:16px;font-size:15px;display:flex}.student-topbar__utility{justify-content:flex-end;align-items:center;gap:14px;min-width:0;margin-left:auto;display:flex}.student-topbar__nav{overscroll-behavior-inline:contain;scrollbar-width:thin;align-items:center;gap:6px;min-width:0;display:flex;overflow-x:auto}.student-ui .student-topbar__nav a{color:var(--student-muted);white-space:nowrap;border-radius:9px;flex:none;padding:8px 11px;font-weight:600}.student-ui .student-topbar__nav a:hover{color:var(--student-text);background:#eaf2fc;text-decoration:none}.student-ui .student-topbar__nav a[aria-current=page]{color:var(--student-primary);background:#e4effc}.student-topbar__context{flex:none}.student-space-switcher{flex:none;align-items:center;gap:8px;font-size:13px;display:flex}.student-space-switcher select{border:1px solid var(--student-border);max-width:230px;min-height:38px;color:var(--student-text);background:#fff;border-radius:9px;padding:7px 30px 7px 10px}.student-menu-button,.student-menu-close,.student-sidebar-overlay{display:none}.student-skip-link{z-index:70;background:#fff;border-radius:8px;padding:12px;position:fixed;top:8px;left:16px;transform:translateY(-150%)}.student-skip-link:focus{transform:translateY(0)}@media (width>=1025px){.spa-shell.is-sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.spa-shell.is-sidebar-collapsed .spa-sidebar{gap:20px;padding-inline:12px;overflow-x:hidden}.spa-shell.is-sidebar-collapsed .student-brand-row,.spa-shell.is-sidebar-collapsed .spa-logo{justify-content:center}.spa-shell.is-sidebar-collapsed .student-brand-copy,.spa-shell.is-sidebar-collapsed .student-nav-label,.spa-shell.is-sidebar-collapsed .student-profile-copy,.spa-shell.is-sidebar-collapsed .student-logout-label,.spa-shell.is-sidebar-collapsed .student-sidebar-toggle__label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.spa-shell.is-sidebar-collapsed .student-sidebar-toggle,.spa-shell.is-sidebar-collapsed .spa-nav a,.spa-shell.is-sidebar-collapsed .spa-student-profile button{justify-content:center;gap:0;padding-inline:8px}.spa-shell.is-sidebar-collapsed .spa-nav a.active{box-shadow:inset 0 -3px var(--student-sidebar-accent)}.spa-shell.is-sidebar-collapsed .student-profile-identity{justify-content:center}.spa-shell.is-sidebar-collapsed .spa-student-profile button{width:44px;margin-inline:auto}.spa-shell.is-sidebar-collapsed .student-avatar{width:40px}}.spa-hero{border:1px solid var(--student-border);border-radius:var(--workspace-radius-lg);box-shadow:var(--student-shadow);background:linear-gradient(135deg,#fff 0%,#f6faff 100%);justify-content:space-between;align-items:center;gap:28px;padding:30px 32px;display:flex}.spa-hero>div{min-width:0}.spa-badge{color:var(--student-muted);margin-bottom:8px;font-size:15px;font-weight:500;display:block}.spa-hero h1{max-width:740px;font-size:clamp(28px,2.4vw,36px)}.spa-hero p{color:var(--student-muted);overflow-wrap:anywhere;margin-top:12px}.spa-hero .spa-actions{margin-top:24px}.student-hero-art{flex:0 0 200px;width:200px;height:auto}.student-dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.student-dashboard-column{align-content:start;gap:24px;min-width:0;display:grid}.spa-card,.spa-side-card,.student-error-card{border:1px solid var(--student-border);border-radius:var(--workspace-radius);background:var(--student-surface);min-width:0;box-shadow:var(--student-shadow);padding:24px}.spa-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.spa-card-head>h1,.spa-card-head>h2{overflow-wrap:anywhere;min-width:0}.spa-card-head>a,.spa-card-head>span{font-size:15px}.spa-card-head h2{align-items:baseline;gap:8px;display:flex}.student-section-count{color:var(--student-muted);background:#edf2f7;border-radius:7px;padding:2px 8px;font-size:15px;font-weight:500}.student-assignment-list{gap:16px;display:grid}.student-assignment-card{border-top:1px solid var(--student-border);grid-template-columns:36px minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding-top:18px;display:grid}.student-assignment-card:first-child{border-top:0;padding-top:0}.student-card-symbol,.student-file-symbol,.student-upload-symbol{background:var(--workspace-blue-soft);width:36px;height:40px;color:var(--student-primary);border-radius:10px;place-items:center;display:grid}.student-assignment-copy{overflow-wrap:anywhere;min-width:0}.student-assignment-copy h3{margin:4px 0 6px}.student-assignment-copy p{color:var(--student-muted);margin-top:4px;font-size:15px}.student-assignment-actions{flex-wrap:wrap;grid-column:2;justify-content:space-between;align-items:center;gap:10px;display:flex}.student-inline-action{align-items:center;min-height:36px;font-size:15px;font-weight:600;display:inline-flex}.student-saved-result{color:var(--student-muted);font-size:15px}.student-section-link{margin-top:20px;font-size:15px;font-weight:500;display:inline-block}.student-empty{color:var(--student-muted);padding:16px 0 8px}.student-empty>.student-icon{background:var(--workspace-blue-soft);width:44px;height:44px;color:var(--student-primary);border-radius:12px;padding:10px}.student-empty--success>.student-icon{background:var(--workspace-green-soft);color:var(--workspace-success)}.student-empty p{color:var(--student-text);margin-top:12px}.student-empty small{margin-top:6px;display:block}.student-dashboard-grid--hub{grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr)}.student-welcome--hub{padding-block:28px}.student-section-kicker{color:var(--student-muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px;font-size:13px;font-weight:600;display:block}.student-hub-list{gap:0;min-width:0;display:grid}.student-hub-item{border-top:1px solid var(--student-border);grid-template-columns:36px minmax(0,1fr) auto;align-items:start;gap:12px;min-width:0;padding:18px 0;display:grid}.student-hub-item:first-child{border-top:0;padding-top:0}.student-hub-item:last-child{padding-bottom:0}.student-hub-item-copy{overflow-wrap:anywhere;min-width:0}.student-hub-item-copy h3{margin:4px 0 7px;font-size:17px}.student-hub-context{color:var(--student-muted);margin-top:4px;font-size:13px;display:block}.student-hub-meta{color:var(--student-muted);flex-wrap:wrap;gap:6px 14px;font-size:14px;display:flex}.student-hub-meta span{align-items:center;gap:5px;display:inline-flex}.student-hub-meta .student-icon{width:16px;height:16px}.student-hub-item-actions{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:8px;max-width:180px;display:flex}.student-hub-item--compact{grid-template-columns:32px minmax(0,1fr);padding-block:14px}.student-hub-item--compact .student-card-symbol{width:32px;height:36px}.student-hub-item--compact .student-hub-item-actions{text-align:left;flex-flow:wrap;grid-column:2;justify-content:space-between;align-items:center;max-width:none}.student-history-page .spa-card-head p,.student-page-heading p{color:var(--student-muted);margin-top:8px}.student-calendar-sections{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:24px;margin-top:24px;display:grid}.student-calendar-sections .spa-card{padding:20px}.student-calendar-sections .student-hub-item--compact .student-hub-item-actions{grid-column:1/-1}.student-status-group{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.student-work-status{color:#596579;background:#f1f3f5;border-radius:8px;align-items:center;padding:4px 10px;font-size:15px;font-weight:500;line-height:1.4;display:inline-flex}.student-work-status.status-not_started,.student-work-status.status-submitted,.student-work-status.status-resubmitted,.student-work-status.status-in_review,.student-work-status.status-in_progress{color:var(--student-primary);background:#eaf2fc}.student-work-status.status-revision_requested{background:var(--workspace-orange-soft);color:var(--workspace-warning)}.student-work-status.status-accepted,.student-work-status.status-completed,.student-work-status.status-teacher_completed{background:var(--workspace-green-soft);color:var(--workspace-success)}.student-work-status.status-overdue{color:var(--workspace-danger);background:#faefed}.student-work-status.status-draft{background:var(--workspace-purple-soft);color:#69548b}.spa-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.student-ui .spa-primary,.student-ui .spa-secondary{text-align:center;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:10px 16px;font-size:15px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex}.student-ui .spa-primary{background:var(--student-primary);color:#fff;border-color:var(--student-primary)}.student-ui .spa-primary:hover:not(:disabled){background:var(--student-primary-hover);border-color:var(--student-primary-hover)}.student-ui .spa-secondary{color:var(--student-primary);background:#fff;border-color:#b9cce2}.student-ui .spa-secondary:hover:not(:disabled){background:#f4f8fc;border-color:#91add0}.student-work-back{margin-bottom:20px;font-size:15px;font-weight:500;display:inline-block}.student-work-list,.student-material-list{gap:16px;display:grid}.student-materials>.spa-card-head h1{margin-top:4px}.student-materials .student-work-card{grid-template-columns:40px minmax(0,1fr) auto;display:grid}.student-materials .student-work-card-actions{grid-column:auto}.student-work-card{border:1px solid var(--student-border);border-radius:12px;justify-content:space-between;align-items:center;gap:24px;min-width:0;padding:20px;display:flex}.student-work-card-copy{overflow-wrap:anywhere;min-width:0}.student-work-card-copy h2{font-size:22px}.student-work-card-copy>p:not(.student-work-subject){margin-top:8px}.student-work-card-copy>p:not([class]){-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.student-work-subject{color:var(--student-primary);margin-bottom:6px;font-size:15px;font-weight:500;display:block}.student-work-meta,.student-work-empty{color:var(--student-muted);font-size:15px}.student-work-card-actions{flex-direction:column;flex:none;align-items:flex-end;gap:12px;max-width:220px;display:flex}.student-work-card-actions .student-status-group{justify-content:flex-end}.student-work-detail>.spa-card-head{margin-bottom:12px}.student-work-detail>.student-work-meta{margin-bottom:24px}.student-work-instructions{border:1px solid var(--student-border);background:#f7faff;border-radius:12px;padding:20px}.student-work-instructions p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}.student-work-review{color:#725124;white-space:pre-wrap;overflow-wrap:anywhere;background:#fbf6ed;border:1px solid #eadfcb;border-radius:12px;padding:16px}.student-work-review--prominent{margin-top:24px;padding:20px}.student-work-review p{margin-top:12px}.student-work-review small{margin-top:12px;display:block}.student-work-notice,.student-work-message{background:var(--workspace-green-soft);color:#375d4a;overflow-wrap:anywhere;border:1px solid #dde7e0;border-radius:12px;padding:16px;margin-top:24px!important}.student-work-message{color:#315887;background:#eaf2fc;border-color:#c7d9ef}.student-work-editor{border-top:1px solid var(--student-border);margin-top:28px;padding-top:24px}.student-work-editor>.student-work-meta{margin-top:8px}.student-work-editor textarea{resize:vertical;width:100%;min-height:180px;color:var(--student-text);background:#fff;border:1px solid #ccd2da;border-radius:12px;margin:16px 0 24px;padding:16px;line-height:1.55;display:block}.student-work-editor textarea::placeholder{color:#717986}.student-work-editor>.spa-actions{margin-top:24px}.student-work-editor--withdraw p{color:var(--student-muted);margin:12px 0 16px}.student-work-upload>h2{margin-bottom:16px}.student-upload-card{border-radius:var(--workspace-radius);text-align:center;background:#f8fafb;border:1px dashed #a9b7c5;flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.student-upload-card.is-dragging{border:1px solid var(--student-primary);background:#edf3fa}.student-upload-card[aria-busy=true]{opacity:.65}.student-upload-symbol{background:#eaf0f7;width:44px;height:44px;margin-bottom:4px}.student-upload-choice{color:var(--student-muted);cursor:pointer;border-radius:4px}.student-upload-choice>span{color:var(--student-primary);text-underline-offset:3px;font-weight:500;text-decoration:underline}.student-upload-choice:has(input:focus-visible){outline-offset:4px;outline:3px solid #6881bc}.student-upload-choice:has(input:disabled){cursor:not-allowed}.student-upload-card p{max-width:650px;color:var(--student-muted);overflow-wrap:anywhere;margin-top:8px;font-size:15px}.student-work-files{gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.student-work-files li{border:1px solid var(--student-border);background:#fff;border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:16px;display:grid}.student-file-copy{min-width:0}.student-file-copy strong{overflow-wrap:anywhere;font-size:16px;display:block}.student-file-copy small{color:var(--student-muted);margin-top:4px;display:block}.student-file-actions{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.student-file-actions a,.student-work-remove{align-items:center;min-height:36px;font-size:15px;font-weight:500;display:inline-flex}.student-work-remove{color:var(--workspace-danger);background:0 0;border:0;padding:0}.student-work-remove:hover{text-underline-offset:3px;text-decoration:underline}.student-work-history{border-top:1px solid var(--student-border);gap:16px;margin-top:32px;padding-top:24px;display:grid}.student-work-history>article{border:1px solid var(--student-border);border-radius:var(--workspace-radius);min-width:0;padding:20px}.student-attempt-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.student-work-history article>p{margin-top:12px}.student-work-history article>p:not(.student-work-review){color:var(--student-muted);font-size:15px}.student-work-history pre{max-width:100%;font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:#f4f8fc;border-radius:10px;margin:16px 0;padding:16px}.student-history-filters{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.student-history-filters label{min-width:min(220px,100%);color:var(--student-muted);gap:6px;font-size:15px;font-weight:500;display:grid}.student-history-filters select{min-height:42px;color:var(--student-text);font:inherit;background:#fff;border:1px solid #ccd2da;border-radius:10px;padding:8px 36px 8px 12px}.student-activity-list{display:flow-root}.student-activity-card{clear:both;width:min(var(--student-activity-width,100%), 100%);max-width:100%}.student-activity-width-small{--student-activity-width:36%}.student-activity-width-medium{--student-activity-width:60%}.student-activity-width-large{--student-activity-width:84%}.student-activity-width-full{--student-activity-width:100%}.student-activity-align-left{margin-left:0;margin-right:auto}.student-activity-align-center{margin-left:auto;margin-right:auto}.student-activity-align-right{margin-left:auto;margin-right:0}.student-activity-display-wrap-left{float:left;margin-right:18px}.student-activity-display-wrap-right{float:right;margin-left:18px}.student-activity-height-small .student-video>div{aspect-ratio:21/9}.student-activity-height-medium .student-video>div{aspect-ratio:16/9}.student-activity-height-large .student-video>div{aspect-ratio:4/3}.student-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.student-course-card{grid-template-columns:40px minmax(0,1fr);align-items:start;gap:16px;display:grid}.student-course-card>.spa-primary{grid-column:2;justify-self:start}.student-course-card__copy{overflow-wrap:anywhere;min-width:0}.student-course-card__copy h2{margin-bottom:12px}.student-course-card__copy p{color:var(--student-muted);margin-top:6px}.student-course-completion{font-weight:600;color:#3f6a54!important}.student-course-empty{text-align:center;grid-column:1/-1}.student-course-empty>.student-icon{background:var(--workspace-blue-soft);width:44px;height:44px;color:var(--student-primary);border-radius:12px;margin:0 auto 12px;padding:10px}.student-course-empty p{max-width:620px;color:var(--student-muted);margin:10px auto 0}.student-course-summary{border:1px solid var(--student-border);text-align:center;background:#fff;border-radius:14px;flex:0 0 180px;justify-items:center;padding:20px;display:grid}.student-course-summary strong{font-size:34px;line-height:1}.student-course-summary span{color:var(--student-muted);margin-top:8px;font-size:14px}.student-module-list{gap:24px;margin-top:28px;display:grid}.student-module header>span{color:var(--student-primary);font-size:14px;font-weight:600}.student-module header h2{margin-top:3px}.student-module ol,.student-activity-list{margin:20px 0 0;padding:0;list-style:none}.student-module li{border-top:1px solid var(--student-border)}.student-module li:first-child{border-top:0}.student-ui .student-module li>a{color:var(--student-text);grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 0;display:grid}.student-ui .student-module li>a:hover{text-decoration:none}.student-module li>a>span:nth-child(2){overflow-wrap:anywhere;min-width:0}.student-module li strong,.student-module li small{display:block}.student-module li small{color:var(--student-muted);margin-top:3px}.student-lesson-number,.student-activity-position{color:#4e6f5e;background:#eef2ed;border-radius:50%;place-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:grid}.student-lesson-hero>.student-work-status{flex:none}.student-activity-list{counter-reset:activity}.student-activity-list>li{border-top:1px solid var(--student-border);grid-template-columns:34px 40px minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;padding:18px 0;display:grid}.student-activity-list>li:first-child{border-top:0;padding-top:0}.student-activity-list>li:last-child{padding-bottom:0}.student-activity-copy{overflow-wrap:anywhere;min-width:0}.student-activity-copy>span{color:var(--student-primary);font-size:14px;font-weight:600;display:block}.student-activity-copy h3{margin:3px 0}.student-activity-copy small{color:var(--student-muted);display:block}.student-activity-actions{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.student-video{grid-column:3/-1;width:min(100%,900px);margin:4px 0 0}.student-video>div{aspect-ratio:16/9;background:#101827;border-radius:16px;width:100%;position:relative;overflow:hidden}.student-video iframe{border:0;width:100%;height:100%;display:block}.student-video figcaption{color:var(--student-muted);margin-top:7px;font-size:14px}.student-video-progress{color:var(--student-muted);flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;font-size:14px;display:flex}.student-video-progress strong{color:#3f6a54;font-weight:600}.student-video-limited{color:var(--student-muted);margin:10px 0 0;font-size:14px}.student-video-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin:10px 0 0;padding:10px 12px;font-size:14px}.student-video-chapters{border:1px solid var(--student-border);background:#f8fafb;border-radius:12px;margin-top:16px;padding:14px 16px}.student-video-chapters h4{margin:0 0 8px;font-size:15px}.student-video-chapters ol{gap:4px;margin:0;padding:0;list-style:none;display:grid}.student-video-chapters button{width:100%;color:var(--student-text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:7px 0;display:grid}.student-video-chapters button:hover span{text-underline-offset:3px;text-decoration:underline}.student-video-chapters time{color:var(--student-primary);font-variant-numeric:tabular-nums;font-weight:600}.spa-api-status{color:var(--student-muted);margin-top:16px;font-size:14px}.spa-hero-card{border:1px solid var(--student-border);border-radius:var(--workspace-radius);background:#fff;flex:0 0 240px;padding:24px}.spa-hero-number{font-size:36px;font-weight:600}.spa-hero-label,.spa-hero-card p{color:var(--student-muted);font-size:14px}.spa-mini-line{background:#e7edf5;border-radius:4px;height:6px;margin:16px 0;overflow:hidden}.spa-mini-line span{background:var(--student-primary);height:100%;display:block}.spa-plan{gap:12px;display:grid}.student-ui .spa-plan-item{border:1px solid var(--student-border);color:var(--student-text);border-radius:12px;align-items:center;gap:16px;padding:16px;display:flex}.spa-plan-item>div{overflow-wrap:anywhere;min-width:0}.spa-plan-item p{color:var(--student-muted);margin-top:4px;font-size:14px}.spa-plan-item em{color:var(--student-primary);margin-left:auto;font-size:14px;font-style:normal}.spa-plan-icon,.spa-goal-icon{flex:none;font-size:24px}.spa-main-goals-grid,.spa-right-rail{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.spa-right-rail{margin-top:28px}.spa-goal{gap:16px;min-width:0;display:flex}.spa-goal p,.spa-side-card p{color:var(--student-muted);margin-top:8px}.spa-goal em{color:var(--student-muted);margin-top:8px;font-size:14px;display:block}.right-progress-ring{background:radial-gradient(circle at center, #fff 62%, transparent 63%), conic-gradient(var(--student-primary) var(--progress), #e2eaf3 0);text-align:center;border-radius:50%;place-content:center;width:112px;height:112px;margin:20px auto;display:grid}.right-progress-ring strong{font-size:28px}.right-progress-ring span{color:var(--student-muted);font-size:14px}.student-page{min-width:0}.student-panel{border:1px solid var(--student-border);border-radius:var(--workspace-radius);background:var(--student-surface);min-width:0;box-shadow:var(--workspace-shadow);margin-bottom:18px;padding:24px}.student-primary-link{color:#fff;background:var(--student-primary);border-radius:10px;padding:9px 13px;font-weight:700;text-decoration:none;display:inline-flex}.student-space-page{max-width:880px}.student-space-page .spa-card>p{color:var(--student-muted);margin-top:12px}.student-space-page .spa-secondary{margin-top:22px}.student-space-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px;display:grid}.student-ui .student-space-card{border:1px solid var(--student-border);color:var(--student-text);background:#fff;border-radius:12px;gap:5px;padding:18px;display:grid}.student-ui .student-space-card:hover{background:#f4f8fc;border-color:#91add0;text-decoration:none}.student-space-card span{color:var(--student-muted);font-size:14px}.progress-page{max-width:1120px}.progress-hero{color:#f7fff9;background:linear-gradient(135deg,#315d43,#547c61);border-radius:24px;gap:8px;margin-bottom:18px;padding:26px;display:grid}.progress-hero p,.progress-hero h1,.progress-hero strong,.progress-hero small{margin:0}.progress-hero small{color:#e2eee6}.progress-window{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.progress-window a{border:1px solid var(--student-border);color:var(--student-text);background:#fff;border-radius:999px;padding:9px 13px;text-decoration:none}.progress-window a.active{background:var(--student-primary);color:#fff}.progress-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.progress-facts{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.progress-facts span{background:var(--workspace-green-soft);border-radius:10px;padding:7px 10px}.progress-attention{border-left:4px solid #bd774d}.progress-lesson{border-top:1px solid var(--student-border);padding:14px 0}.progress-lesson ul,.student-panel>ul{gap:9px;padding-left:20px;display:grid}.progress-lesson li{padding-right:8px}.progress-status{color:var(--student-muted);display:block}.progress-status.status-needs_attention,.progress-status.status-overdue{color:#9b442f}.progress-event{border-top:1px solid var(--student-border);grid-template-columns:minmax(0,1fr) auto auto;gap:14px;padding:12px 0;display:grid}.progress-event time{color:var(--student-muted)}@media (width<=640px){.progress-course-grid{grid-template-columns:1fr}.progress-event{grid-template-columns:1fr;gap:4px}.progress-hero{padding:20px}}.right-mini-stats{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.right-mini-stats strong{margin-left:8px}.spa-repeat-list{gap:16px;margin-top:20px;display:grid}.spa-repeat-list a{justify-content:space-between;gap:8px;display:flex}.spa-teacher-note>a{margin-top:16px;display:inline-block}.student-error-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.student-error-card{width:100%;max-width:600px}.student-error-card p{color:var(--student-muted);margin:16px 0 24px}@media (width<=1100px){.student-dashboard-grid,.student-calendar-sections,.student-course-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=1024px){.spa-shell{grid-template-columns:minmax(0,1fr)}.spa-sidebar{visibility:hidden;width:min(300px,100vw - 48px);transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%);box-shadow:8px 0 32px #252d3a14}.spa-sidebar.is-open{visibility:visible;transform:translate(0)}.student-menu-button,.student-menu-close{border:1px solid var(--student-border);width:42px;height:42px;color:var(--student-text);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:8px;display:inline-flex}.student-sidebar-toggle{display:none}.student-menu-button{z-index:20;position:absolute;top:20px;left:24px}.student-menu-close{border-color:var(--student-sidebar-border);background:var(--student-sidebar-hover);width:36px;height:36px;color:var(--student-sidebar-icon);flex:0 0 36px;margin-left:auto}.student-sidebar-overlay{z-index:25;background:#26324633;border:0;width:100%;display:block;position:fixed;inset:0}.student-topbar{min-height:42px;margin-left:56px}.spa-main{padding-top:20px}.student-menu-open{overflow:hidden}}@media (width<=640px){.spa-main{padding:20px 16px 32px}.student-menu-button{left:16px}.student-topbar__context{display:none}.student-space-switcher{margin-left:auto}.student-space-switcher>span{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.student-space-switcher select{max-width:min(58vw,230px)}.student-space-list{grid-template-columns:1fr}.student-topbar__utility{width:100%}.student-topbar__nav{justify-content:flex-start;width:100%}.student-topbar{margin-bottom:20px}.spa-main>section+section{margin-top:20px}.spa-hero{align-items:flex-start;gap:16px;padding:24px}.student-hero-art{display:none}.spa-card,.spa-side-card{padding:20px}.student-dashboard-grid,.student-dashboard-column{gap:20px}.spa-card-head{margin-bottom:16px}.student-hub-item{grid-template-columns:32px minmax(0,1fr)}.student-hub-item .student-card-symbol{width:32px;height:36px}.student-hub-item-actions{text-align:left;flex-flow:wrap;grid-column:2;justify-content:space-between;align-items:center;width:100%;max-width:none}.student-work-card{flex-direction:column;align-items:stretch;gap:16px;padding:16px}.student-materials .student-work-card{grid-template-columns:40px minmax(0,1fr);display:grid}.student-materials .student-work-card-actions{grid-column:2;align-items:flex-start}.student-work-card-actions{flex-flow:wrap;justify-content:space-between;align-items:center;max-width:none}.student-work-card-actions .student-status-group{justify-content:flex-start}.student-work-files li{grid-template-columns:36px minmax(0,1fr);padding:12px}.student-file-actions{grid-column:2}.student-work-instructions,.student-work-review--prominent,.student-work-history>article{padding:16px}.student-upload-card{padding:20px 16px}.student-work-editor>.spa-actions{flex-direction:column;align-items:stretch}.student-work-editor>.spa-actions>button{width:100%}.spa-hero:has(.spa-hero-card){flex-direction:column}.spa-hero-card{flex-basis:auto;width:100%}.spa-main-goals-grid,.spa-right-rail{grid-template-columns:minmax(0,1fr)}.spa-plan-item{flex-wrap:wrap}.student-course-card{grid-template-columns:36px minmax(0,1fr)}.student-course-card>.spa-primary{width:100%}.student-course-summary{flex-basis:auto;width:100%}.student-ui .student-module li>a{grid-template-columns:32px minmax(0,1fr)}.student-module li>a>.student-work-status{grid-column:2;justify-self:start}.student-activity-list>li{grid-template-columns:32px 36px minmax(0,1fr);align-items:start}.student-activity-list>.student-activity-card{float:none;max-width:100%;margin-left:0;margin-right:0;width:100%!important}.student-activity-actions{grid-column:3;align-items:flex-start;width:100%}.student-video{grid-column:1/-1}.student-activity-actions .spa-primary{width:100%}}@media (prefers-reduced-motion:reduce){.spa-shell,.spa-sidebar{transition:none}}@media (forced-colors:active){.student-sidebar-toggle,.student-ui .spa-nav a,.spa-student-profile button{color:canvastext;forced-color-adjust:auto;border-color:canvastext}.student-ui .spa-nav a.active{color:highlighttext;background:highlight}}.student-next-lesson,.student-lesson-notices{margin-block:24px;padding:24px}.student-next-lesson h3{margin:0;font-size:22px}.student-next-lesson .spa-actions{flex-wrap:wrap;align-items:center;gap:16px;margin-top:18px}.student-lesson-notices ul{margin:0;padding:0;list-style:none}.student-lesson-notices li{border-top:1px solid var(--student-border);padding-block:14px}.student-lesson-notices p{overflow-wrap:anywhere}@media (width<=640px){.student-next-lesson,.student-lesson-notices{padding:18px}}
