:root{--ui-canvas:#f7f7f5;--ui-surface:#fff;--ui-surface-warm:#fffdf9;--ui-sidebar:#f2f3f5;--ui-text:#20242b;--ui-text-2:#626873;--ui-text-muted:#626873;--ui-border:#e1e4e8;--ui-border-strong:#d4d8de;--ui-action:#2d68d2;--ui-action-hover:#2458b4;--ui-action-soft:#edf4ff;--ui-ink:#20242b;--ui-success:#3f7c59;--ui-success-soft:#f1f8f4;--ui-warning:#8b6a2b;--ui-warning-soft:#fff8ea;--ui-danger:#985042;--ui-danger-soft:#fff4f2;--ui-room:#141210;--ui-room-2:#1c1916;--ui-room-3:#26221d;--ui-room-rule:#332e27;--ui-room-ink:#ede7dc;--ui-room-ink-2:#a9a092;--ui-room-ink-3:#8a8174;--ui-room-accent:#e8692c;--ui-font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--ui-font-display:var(--ui-font);--ui-font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, ui-monospace, monospace;--ui-sidebar-width:228px;--ui-topbar-height:64px;--ui-page-gutter:30px;--ui-radius-control:9px;--ui-radius-card:18px;--ui-shadow-soft:0 1px 2px #141e3208, 0 8px 24px #141e3206}
.review-workspace{color:var(--ui-text);padding:20px 24px}.review-heading,.review-total,.review-file-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.review-heading{margin-bottom:16px}.review-heading h1{margin:6px 0;font-size:22px}.review-heading a{color:var(--ui-action);font-size:13px}.review-columns{grid-template-columns:160px minmax(280px,1fr) 334px;gap:20px;min-height:650px;display:grid}.review-columns h2{margin:12px 0;font-size:15px}.review-navigation{border-right:1px solid var(--ui-border);padding-right:16px}.review-navigation p{font-size:12px}.review-versions{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.review-versions a{border:1px solid var(--ui-border);color:var(--ui-text);padding:8px 12px;text-decoration:none}.review-versions [aria-current]{border-color:var(--ui-action);background:var(--ui-action-soft)}.review-navigation>button{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;margin-bottom:8px;padding:12px 8px;display:block}.review-navigation>button span,.review-navigation small{margin-top:8px;font-size:12px;display:block}.review-navigation>button.selected{background:var(--ui-action-soft);border-left:3px solid var(--ui-action)}.review-center{flex-direction:column;gap:12px;min-width:0;display:flex}.review-comparison{background:var(--ui-warning-soft);overflow-wrap:anywhere;padding:12px;font-size:12px;line-height:1.8}.review-comparison button{color:var(--ui-action);cursor:pointer;background:0 0;border:0;margin-left:8px}.review-preview{background:var(--ui-sidebar);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-height:330px;padding:16px;display:flex}.review-preview>p{color:var(--ui-text-muted);font-size:13px}.review-preview video,.review-preview img{object-fit:contain;max-width:100%;max-height:430px}.review-preview iframe{background:#fff;border:0;width:100%;min-height:360px}.review-preview-name{overflow-wrap:anywhere}.review-scoring{border-left:1px solid var(--ui-border);padding-left:18px}.review-total strong{color:var(--ui-action);font-size:34px}.review-total small{color:var(--ui-text-muted);font-size:13px}.review-scoring fieldset{border:0;margin:0;padding:0}.review-criterion{border-bottom:1px solid var(--ui-border);padding:7px 0;font-size:12px}.review-criterion span{color:var(--ui-text-muted)}.review-score-controls{align-items:center;gap:5px;display:flex}.review-presets{gap:4px;margin-right:auto;display:flex}.review-score-controls button{border:1px solid var(--ui-border);background:var(--ui-surface);cursor:pointer;border-radius:4px;min-width:32px;min-height:32px}.review-score-controls button:hover:not(:disabled){background:var(--ui-action-soft);border-color:var(--ui-action)}.review-score-controls output{text-align:center;min-width:24px;font-weight:700}.review-score-controls button:disabled{cursor:default;color:var(--ui-text-muted)}.review-local-feedback,.review-overall-feedback{margin:10px 0;font-size:12px;display:block}.review-local-feedback textarea,.review-overall-feedback textarea{resize:vertical;border:1px solid var(--ui-border);width:100%;min-height:52px;font:inherit;background:var(--ui-surface);color:var(--ui-text);padding:8px;display:block}.review-decision{font-size:13px}.review-decision label{align-items:center;gap:6px;margin:8px 12px 4px 0;display:inline-flex}.review-decision .review-change-choice{margin:6px 0;display:flex}.review-submit{width:100%;margin-top:12px}.review-history{background:var(--ui-success-soft);margin-top:12px;padding:12px;font-size:12px;line-height:1.6}.review-label{background:var(--ui-warning-soft);padding:8px;font-size:12px}.review-label.passed{background:var(--ui-success-soft);color:var(--ui-success)}.review-label.changes_requested{background:var(--ui-danger-soft);color:var(--ui-danger)}@media (max-width:1200px){.review-columns{grid-template-columns:130px minmax(230px,1fr) 305px;gap:12px}.review-workspace{padding:16px}.review-scoring{padding-left:12px}.review-score-controls button{min-width:29px}}@media (max-width:950px){.review-columns{grid-template-columns:120px minmax(0,1fr)}.review-scoring{border:0;grid-column:1/-1;padding:0}.review-preview{min-height:300px}}@media (max-width:550px){.review-columns{display:block}.review-navigation{border:0}.review-navigation>button{width:auto;display:inline-block}.review-heading{align-items:flex-start}.review-preview{padding:8px}.review-scoring{margin-top:20px}}.review-workspace{padding:0}.review-heading h1{line-height:1.3}.review-criterion{padding:5px 0;line-height:1.2}.review-criterion>div:first-child{margin-bottom:4px}.review-scoring .sr-only{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.review-decision{line-height:1.3}.review-change-choice{min-height:22px}.review-center .review-local-feedback{margin-bottom:0}.review-preview video{width:100%}
.grades-page h1{margin:8px 0 12px;font-size:34px;line-height:1.15}.grades-page h2{font-size:20px}.grade-page-head{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.grade-page-head p{color:var(--ui-text-muted);margin:0}.grade-page-head a{color:var(--ui-action)}.grade-page-head a.primary{color:#fff;align-items:center;text-decoration:none;display:inline-flex}.grade-page-head form,.grade-course-picker{align-items:end;gap:10px;display:flex}.grades-page label{gap:6px;font-size:13px;display:grid}.grades-page input:not([type=checkbox]),.grades-page select{border:1px solid var(--ui-border);min-height:40px;color:var(--ui-text);min-width:0;max-width:100%;font:inherit;background:#fff;border-radius:6px;padding:10px 12px}.grade-course-picker{margin-bottom:20px}.grade-controls{flex-wrap:wrap;align-items:end;gap:16px;margin-bottom:12px;display:flex}.grade-controls>label:first-child{flex:1;min-width:200px}.grade-controls>span{padding-bottom:12px}.grade-student-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.grade-student{border:1px solid var(--ui-border);background:var(--ui-surface);border-radius:12px;min-width:0;padding:24px}.grade-student-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.grade-student-head h2{margin:0;font-size:20px}.grade-student-head p{color:var(--ui-text-muted);margin:6px 0;font-size:13px}.grade-student-head>strong{font-variant-numeric:tabular-nums;font-size:58px}.grade-student-head small{color:var(--ui-text-muted);margin-left:6px;font-size:12px;font-weight:400}.grade-student-parts{border-bottom:1px solid var(--ui-border);flex-wrap:wrap;gap:18px;padding:18px 0;display:flex}.grade-student-parts>div{overflow-wrap:anywhere;gap:6px;min-width:58px;max-width:100%;display:grid}.grade-student-parts span{color:var(--ui-text-muted);font-size:12px}.grade-student-parts b{font-size:18px}.grade-positive{color:var(--ui-success)}.grade-warning{color:var(--ui-warning)}.grade-student>details>summary{cursor:pointer;color:var(--ui-action);padding:8px 0;font-size:13px}.grade-hero{background:var(--ui-surface);border:1px solid var(--ui-border);grid-template-columns:1fr 1.2fr;gap:30px;margin-bottom:32px;padding:28px 36px;display:grid}.grade-hero>div:last-child{align-self:center}.grade-hero p{color:var(--ui-text-muted);font-size:14px}.grade-big-score{color:var(--ui-action);font-variant-numeric:tabular-nums;font-size:84px;font-weight:700;line-height:1.3}.grade-big-score small{color:var(--ui-text-muted);font-size:16px;font-weight:400}.grade-explanation{color:var(--ui-text-muted);overflow-wrap:anywhere;padding:16px 0;font-size:13px}.grade-part{border-top:1px solid var(--ui-border)}.grade-part>summary{cursor:pointer;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:13px;display:flex}.grade-part>summary strong{font-size:16px}.grade-part>summary b{color:var(--ui-action)}.grade-part-content{padding:0 0 18px;font-size:13px}.grade-source{border-bottom:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.grade-source>span{overflow-wrap:anywhere;flex:1}.grade-source a{color:var(--ui-action)}.grade-manual{border-top:1px solid var(--ui-border);grid-template-columns:120px 1fr;gap:10px;padding:16px 0;display:grid}.grade-manual button{grid-column:2}.grade-manual p{grid-column:1/-1;font-size:13px}.grade-scheme-layout{grid-template-columns:minmax(0,1fr) 320px;gap:32px;display:grid}.grade-scheme-total{justify-content:space-between;align-items:center;gap:16px;display:flex}.grade-scheme-total strong{font-size:14px}.grade-component-editor{border-top:1px solid var(--ui-border);padding:20px 0}.grade-component-fields{grid-template-columns:1fr 135px auto;align-items:end;gap:12px;margin-bottom:14px;display:grid}.grade-assignment-choices{border:0;margin:16px 0 0;padding:0}.grade-assignment-choices legend{margin-bottom:8px;font-size:13px}.grade-assignment-choices label{align-items:center;gap:8px;margin:8px 0;display:flex}.grade-component-editor>p{font-size:13px;line-height:1.7}.grade-policy{margin:22px 0 10px}.grade-live-preview{background:var(--ui-surface);border:1px solid var(--ui-border);align-self:start;padding:24px;position:sticky;top:20px}.grade-live-preview h2{margin-top:0}.grade-live-preview .grade-demo-toggle{align-items:center;margin:16px 0;font-size:12px;display:flex}.grade-preview-line{border-bottom:1px solid var(--ui-border);justify-content:space-between;gap:8px;padding:12px 0;font-size:13px;display:flex}.grade-preview-total{gap:6px;padding:20px 0;display:grid}.grade-preview-total span{overflow-wrap:anywhere;font-size:14px}.grade-preview-total strong{color:var(--ui-action);font-size:58px;line-height:1.2}.grade-preview-total small{color:var(--ui-text-muted);font-size:13px;font-weight:400}.grade-live-preview>p{font-size:13px;line-height:1.7}.grade-live-preview details{border-top:1px solid var(--ui-border);padding:12px 0;font-size:13px}.grade-live-preview summary{cursor:pointer}@media (min-width:1800px){.grade-student-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1150px){.grade-student-grid,.grade-scheme-layout{grid-template-columns:1fr}.grade-live-preview{position:static}.grade-page-head{flex-wrap:wrap;align-items:flex-start}}@media (max-width:650px){.grade-hero{grid-template-columns:1fr;padding:24px}.grade-big-score{font-size:64px}.grade-component-fields{grid-template-columns:1fr 100px}.grade-component-fields>button{grid-column:1/-1}.grade-student{padding:18px}.grade-page-head form,.grade-source{flex-wrap:wrap}.grades-page h1{font-size:30px}.grade-controls{grid-template-columns:1fr;display:grid}.grade-manual{grid-template-columns:1fr}.grade-manual button{grid-column:auto}}
.attendance-page textarea{border:1px solid var(--ui-border);width:100%;font:inherit;resize:vertical;background:var(--ui-surface);color:var(--ui-text);border-radius:6px;padding:10px 12px}.attendance-settings,.attendance-create,.attendance-management,.attendance-requests{border-top:1px solid var(--ui-border);margin:24px 0;padding:24px 0}.attendance-settings>summary,.attendance-event-history>summary{cursor:pointer;font-size:16px;font-weight:650}.attendance-settings>p,.attendance-create p{color:var(--ui-text-muted);font-size:13px}.attendance-policy-fields{grid-template-columns:repeat(5,minmax(100px,1fr));gap:14px;margin:20px 0;display:grid}.attendance-create>div{align-items:end;gap:16px;display:flex}.attendance-create>div>label{flex:1}.attendance-create details{margin-top:20px;font-size:13px}.attendance-create summary{cursor:pointer;color:var(--ui-action)}.attendance-management-head{justify-content:space-between;align-items:center;gap:20px;display:flex}.attendance-management-head label{min-width:280px}.attendance-session-summary{background:var(--ui-surface);border:1px solid var(--ui-border);justify-content:space-between;align-items:center;gap:20px;padding:22px;display:flex}.attendance-session-summary h3{margin:0 0 10px;font-size:18px}.attendance-session-summary p{color:var(--ui-text-muted);margin:6px 0;font-size:13px}.attendance-window-actions{align-items:end;gap:12px;display:flex}.attendance-window-actions input{max-width:130px}.attendance-roster-row,.attendance-row{border-bottom:1px solid var(--ui-border);grid-template-columns:minmax(180px,1fr) 100px minmax(180px,1fr);align-items:center;gap:20px;padding:18px 0;font-size:13px;display:grid}.attendance-roster-row small{color:var(--ui-text-muted);margin-top:5px;font-size:12px;display:block}.attendance-status{background:var(--ui-sidebar);color:var(--ui-text-muted);justify-content:center;align-items:center;max-width:max-content;padding:6px 10px;font-size:13px;display:inline-flex}.attendance-status.present{background:var(--ui-success-soft);color:var(--ui-success)}.attendance-status.open{background:var(--ui-action-soft);color:var(--ui-action)}.attendance-status.late{background:var(--ui-warning-soft);color:var(--ui-warning)}.attendance-status.absent{background:var(--ui-danger-soft);color:var(--ui-danger)}.attendance-status.leave{background:var(--ui-action-soft);color:var(--ui-action)}.attendance-approval{border-top:1px solid var(--ui-border);padding:20px 0}.attendance-approval>div:first-child{justify-content:space-between;align-items:center;gap:20px;display:flex}.attendance-approval>div:first-child span{color:var(--ui-text-muted);font-size:13px}.attendance-approval p{font-size:14px}.attendance-approval textarea{max-width:700px}.attendance-approval .assignment-button-row{margin-top:12px}.attendance-event-history{border-top:1px solid var(--ui-border);padding:20px 0;font-size:13px}.attendance-event-history p{color:var(--ui-text-muted);margin:12px 0}.attendance-checkin{background:var(--ui-surface);border:1px solid var(--ui-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin:20px 0;padding:26px;display:flex}.attendance-checkin h2{margin:8px 0 12px}.attendance-checkin p{color:var(--ui-text-muted);margin:6px 0;font-size:13px}.attendance-checkin-action{justify-items:center;gap:12px;min-width:140px;display:grid}.attendance-checkin-action button{width:100%;min-height:44px}.attendance-checkin-action a{color:var(--ui-action);font-size:13px}.attendance-message{flex-basis:100%}.attendance-score{align-items:center;gap:40px;padding:20px 0 30px;display:flex}.attendance-score>div{gap:8px;display:grid}.attendance-score strong{color:var(--ui-action);overflow-wrap:anywhere;font-size:58px;line-height:1.2}.attendance-score small{color:var(--ui-text-muted);font-size:14px;font-weight:400}.attendance-score p{color:var(--ui-text-muted);font-size:14px;line-height:1.8}.attendance-score a{color:var(--ui-action)}.attendance-history-item{border-top:1px solid var(--ui-border);padding:14px 0}.attendance-row{border:0;padding:12px 0}.attendance-row h3{margin:0 0 8px;font-size:16px}.attendance-row p,.attendance-history-item>p{color:var(--ui-text-muted);margin:4px 0;font-size:12px}.attendance-request{margin:12px 0;font-size:13px}.attendance-request>summary{cursor:pointer;color:var(--ui-action)}.attendance-request>div{grid-template-columns:180px minmax(200px,1fr) auto;align-items:end;gap:16px;margin-top:14px;display:grid}.attendance-request-result{color:var(--ui-text-muted);background:var(--ui-surface);padding:12px;font-size:13px}.attendance-roll-counts{flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0 12px;font-size:13px;display:flex}.attendance-roll-help{color:var(--ui-text-muted);font-size:12px}.attendance-roll-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.attendance-roll-student{text-align:left;border:1px solid var(--ui-border);background:var(--ui-surface);font:inherit;cursor:pointer;color:var(--ui-text);border-radius:13px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:14px;display:grid}.attendance-roll-student:disabled{cursor:default;opacity:1}.attendance-roll-student:not(:disabled):hover{border-color:var(--ui-action);box-shadow:var(--ui-shadow-soft)}.attendance-roll-student.absent{background:var(--ui-danger-soft);border-color:color-mix(in srgb,var(--ui-danger) 25%,var(--ui-border))}.attendance-roll-student.leave{background:var(--ui-action-soft)}.attendance-roll-student.late{background:var(--ui-warning-soft)}.attendance-roll-student.modified{box-shadow:inset 0 0 0 1px var(--ui-action)}.attendance-roll-person strong{font-size:14px}.attendance-roll-person small{color:var(--ui-text-muted);margin-top:4px;font-size:11px;display:block}.attendance-roll-source{color:var(--ui-text-muted);grid-column:1/-1;font-size:11px}.attendance-roll-student .attendance-status{border-radius:6px;padding:4px 7px;font-size:12px}.attendance-optional-checkin{border:1px solid var(--ui-border);border-radius:13px;margin-top:20px;padding:18px;font-size:13px}.attendance-optional-checkin summary{cursor:pointer}.attendance-optional-checkin label{gap:6px;margin-right:12px;display:inline-grid}.attendance-optional-checkin input{max-width:130px}.attendance-switch-backdrop{z-index:100;background:#141e3240;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.attendance-switch-dialog{border:1px solid var(--ui-border);background:var(--ui-surface);max-width:520px;box-shadow:var(--ui-shadow-soft);border-radius:18px;padding:24px}.attendance-switch-dialog h3{margin:0 0 12px}.attendance-switch-dialog p{color:var(--ui-text-muted);font-size:14px}@media (max-width:1100px){.attendance-roll-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-policy-fields{grid-template-columns:repeat(3,1fr)}.attendance-request>div{grid-template-columns:1fr}.attendance-create>div{flex-wrap:wrap}.attendance-create>div>label{min-width:230px}.attendance-window-actions{flex-wrap:wrap}}@media (max-width:720px){.attendance-roll-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-roll-student{gap:6px;padding:12px}.attendance-window-actions{align-items:stretch}.attendance-roll-person strong{font-size:13px}.attendance-roll-person small{font-size:10px}.attendance-roll-counts{gap:8px}.attendance-management-head>div>p{font-size:13px}}@media (max-width:700px){.attendance-policy-fields{grid-template-columns:repeat(2,1fr)}.attendance-management-head,.attendance-session-summary,.attendance-score{flex-direction:column;align-items:flex-start}.attendance-management-head label{width:100%;min-width:0}.attendance-roster-row,.attendance-row{grid-template-columns:1fr auto;gap:12px}.attendance-row>span:last-child,.attendance-roster-row>span:last-child{color:var(--ui-text-muted);grid-column:1/-1}.attendance-checkin{padding:20px}.attendance-checkin-action{grid-template-columns:1fr 1fr;width:100%}.attendance-checkin-action a{grid-column:1/-1}.attendance-approval>div:first-child{flex-direction:column;align-items:flex-start;gap:6px}.attendance-score strong{font-size:48px}}
.ui-shell{grid-template-columns:var(--ui-sidebar-width) minmax(0, 1fr);background:var(--ui-canvas);min-height:100vh;color:var(--ui-text);font-family:var(--ui-font);display:grid}.ui-shell__sidebar{background:var(--ui-sidebar);border-right:1px solid var(--ui-border);min-width:0;padding:20px 12px}.ui-shell__body{grid-template-rows:var(--ui-topbar-height) minmax(0, 1fr);min-width:0;display:grid}.ui-shell__topbar{background:var(--ui-surface);border-bottom:1px solid var(--ui-border);min-width:0;padding:0 var(--ui-page-gutter);align-items:center;gap:16px;display:flex}.ui-shell__main{min-width:0;padding:26px var(--ui-page-gutter) 44px}.shell-brand{align-items:center;gap:10px;padding:2px 10px 28px;font-size:16px;font-weight:720;display:flex}.shell-brand__mark,.login-mark{border-radius:var(--ui-radius-control);background:var(--ui-text);color:#fff;flex:none;place-items:center;width:32px;height:32px;font-size:13px;display:inline-grid}.shell-brand small{color:var(--ui-text-muted);margin-top:2px;font-size:11px;font-weight:500;display:block}.shell-nav{gap:4px;display:grid}.shell-nav__link{min-height:43px;color:var(--ui-text-muted);border-radius:10px;align-items:center;padding:0 12px;font-size:14px;display:flex}.shell-nav__link:hover{background:var(--ui-sidebar);color:var(--ui-text)}.shell-nav__link.active{color:var(--ui-action);background:var(--ui-action-soft);font-weight:680}.topbar-course{color:var(--ui-text-muted);font-size:13px}.topbar-course span{color:var(--ui-border);padding:0 8px}.topbar-spacer{flex:1}.topbar-user{font-size:13px;font-weight:650}.ui-button{border:1px solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface);min-height:38px;color:var(--ui-text);cursor:pointer;padding:0 14px;font-weight:650}.ui-button:hover{background:var(--ui-sidebar)}.ui-button.primary{border-color:var(--ui-action);background:var(--ui-action);color:#fff}.ui-button.primary:hover{background:var(--ui-action-hover)}.ui-button.quiet{color:var(--ui-text-muted);background:0 0;border-color:#0000}.ui-button:disabled{opacity:.55;cursor:not-allowed}.ui-input{border:1px solid var(--ui-border);border-radius:var(--ui-radius-control);background:var(--ui-surface);width:100%;min-height:43px;padding:0 12px}.ui-input:disabled{background:var(--ui-sidebar)}.eyebrow{color:var(--ui-action);letter-spacing:.06em;font-size:12px;font-weight:700}.muted,.page-heading p{color:var(--ui-text-muted)}.page-container{max-width:1480px;margin:0 auto}.page-heading h1{letter-spacing:-.03em;margin:8px 0 6px;font-size:34px;line-height:1.12}.page-heading p{margin:0 0 26px;font-size:14px}.empty-state{border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);background:var(--ui-surface);min-height:160px;box-shadow:var(--ui-shadow-soft);align-items:center;gap:14px;padding:24px;display:flex}.empty-state p{color:var(--ui-text-muted);margin:4px 0 0;font-size:13px}.status-dot{background:var(--ui-warning);border-radius:50%;flex:none;width:10px;height:10px}.notice{border-radius:var(--ui-radius-control);padding:11px 13px;font-size:13px}.notice.warning{color:var(--ui-warning);background:var(--ui-warning-soft)}.notice.danger{color:var(--ui-danger);background:var(--ui-danger-soft)}.login-page{background:linear-gradient(180deg, var(--ui-canvas), var(--ui-sidebar));min-height:100vh;padding:30px}.login-brand{align-items:center;gap:10px;font-size:16px;font-weight:720;display:flex}.login-panel{border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);background:var(--ui-surface);max-width:440px;box-shadow:var(--ui-shadow-soft);margin:min(12vh,110px) auto 0;padding:32px}.login-panel h1{letter-spacing:-.03em;margin:8px 0;font-size:32px}.login-panel>p{font-size:14px}.login-form{gap:10px;margin-top:24px;display:grid}.login-form label{font-size:13px;font-weight:650}.login-form .ui-button{margin-top:10px}.login-help{color:var(--ui-text-muted);margin:24px 0 0;font-size:12px!important}.route-feedback{max-width:620px;color:var(--ui-text-muted);margin:18vh auto;padding:24px}.route-feedback h1{color:var(--ui-text)}@media (max-width:720px){.ui-shell{display:block}.ui-shell__sidebar{border-right:0;border-bottom:1px solid var(--ui-border);padding:10px 12px}.shell-brand{padding:0 2px 10px}.shell-nav{white-space:nowrap;display:flex;overflow-x:auto}.shell-nav__link{flex:none;min-height:36px}.ui-shell__body{display:block}.ui-shell__topbar{min-height:var(--ui-topbar-height);padding:0 12px}.ui-shell__main{padding:18px 12px 80px}.topbar-user{display:none}.page-heading h1{font-size:28px}.login-page{padding:18px 12px}.login-panel{margin-top:8vh;padding:22px}}
.assignment-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.assignment-toolbar h1{margin:0;font-size:30px}.assignment-grid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:22px;display:grid}.assignment-card{background:var(--ui-surface);border:1px solid var(--ui-border);border-radius:var(--ui-radius-card);margin-bottom:18px;padding:24px}.assignment-card h2{margin:0 0 18px;font-size:18px}.assignment-field{gap:7px;margin-bottom:18px;display:grid}.assignment-field label{font-size:13px;font-weight:650}.assignment-field textarea{resize:vertical;min-height:120px;padding:12px}.assignment-two{grid-template-columns:1fr 1fr;gap:16px;display:grid}.deliverable-head{align-items:center;gap:12px;margin-bottom:18px;display:flex}.deliverable-letter{background:var(--ui-action-soft);width:32px;height:32px;color:var(--ui-action);border-radius:9px;place-items:center;font-weight:700;display:grid}.deliverable-head strong{flex:1}.deliverable-actions{gap:4px;display:flex}.mime-options{flex-wrap:wrap;gap:12px;margin:12px 0;display:flex}.mime-options label{align-items:center;gap:5px;font-size:13px;display:flex}.assignment-list{gap:14px;display:grid}.assignment-list a{border:1px solid var(--ui-border);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;padding:22px;display:flex}.assignment-list h2{margin:0 0 7px;font-size:19px}.assignment-list p{color:var(--ui-text-muted);margin:0;font-size:13px}.assignment-status{background:var(--ui-action-soft);color:var(--ui-action);border-radius:20px;padding:5px 10px;font-size:12px}.assignment-description{white-space:pre-wrap;line-height:1.7}.assignment-poster{object-fit:contain;border-radius:12px;width:100%;height:auto;max-height:360px}.assignment-button-row{flex-wrap:wrap;gap:10px;display:flex}.assignment-error{color:var(--ui-danger);background:var(--ui-danger-soft);border-radius:9px;margin:12px 0;padding:12px}.assignment-success{color:var(--ui-success);font-size:13px}.assignment-def-info{justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13px;display:flex}.assignment-file-panel{border-top:1px solid var(--ui-border);margin-top:14px;padding-top:14px}@media (max-width:900px){.assignment-grid,.assignment-two{grid-template-columns:1fr}.assignment-card{padding:18px}.assignment-toolbar{flex-wrap:wrap;align-items:flex-start}}
.ui-shell--teacher{--bg:#f5f5f7;--sidebar:#f2f2f4;--surface:#fff;--surface-2:#fafafa;--text:#1d1d1f;--secondary:#6e6e73;--tertiary:#8e8e93;--line:#3c3c4329;--line-strong:#3c3c4342;--blue:#2767d8;--blue-soft:#eef3ff;--green:#3f7c59;--green-soft:#f1f8f4;--amber:#8b6b28;--amber-soft:#fff8e8;--red:#b56a57;--red-soft:#fff4f2;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--sidebar-w:232px;--topbar-h:64px;--page-x:32px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Inter,sans-serif}.ui-shell--teacher,.ui-shell--teacher *{box-sizing:border-box}.ui-shell--teacher{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.48;overflow:hidden}.ui-shell--teacher button,.ui-shell--teacher input,.ui-shell--teacher select,.ui-shell--teacher textarea{font:inherit;color:inherit}.ui-shell--teacher button{cursor:pointer}.ui-shell--teacher{grid-template-columns:var(--sidebar-w) 1fr;height:100%;display:grid}.ui-shell--teacher .sidebar{background:var(--sidebar);border-right:1px solid var(--line);flex-direction:column;min-width:0;padding:18px 12px 14px;display:flex}.ui-shell--teacher .brand{align-items:center;gap:10px;padding:2px 10px 22px;display:flex}.ui-shell--teacher .brandmark{background:var(--text);color:#fff;border-radius:9px;place-items:center;width:32px;height:32px;font-size:13px;font-weight:750;display:grid}.ui-shell--teacher .brandcopy b{font-size:16px;line-height:1.1;display:block}.ui-shell--teacher .brandcopy span{color:var(--secondary);margin-top:3px;font-size:11px;display:block}.ui-shell--teacher .nav{gap:4px;display:grid}.ui-shell--teacher .navbtn{color:#3a3a3c;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;height:44px;padding:0 11px;font-size:15px;display:flex}.ui-shell--teacher .navbtn:hover{background:#00000009}.ui-shell--teacher .navbtn.on{background:#0001;font-weight:650}.ui-shell--teacher .navbtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;flex:0 0 18px;width:18px;height:18px}.ui-shell--teacher .navbtn.on svg{color:var(--blue)}.ui-shell--teacher .navsep{background:var(--line);height:1px;margin:12px 10px}.ui-shell--teacher .sidefoot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:14px 9px 2px;display:flex}.ui-shell--teacher .avatar{background:#dedee3;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.ui-shell--teacher .userinfo b{font-size:13px;display:block}.ui-shell--teacher .userinfo span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--teacher .main{grid-template-rows:var(--topbar-h) 1fr;min-width:0;display:grid}.ui-shell--teacher .topbar{height:var(--topbar-h);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);padding:0 var(--page-x);z-index:10;background:#ffffffe0;align-items:center;gap:10px;display:flex;position:relative}.ui-shell--teacher .breadcrumb{color:var(--secondary);font-size:14px}.ui-shell--teacher .breadcrumb b{color:var(--text);font-weight:650}.ui-shell--teacher .grow{flex:1}.ui-shell--teacher .btn{height:38px;color:var(--text);background:#7676801f;border:0;border-radius:9px;padding:0 14px;font-size:13px;font-weight:600}.ui-shell--teacher .btn:hover{background:#7676802e}.ui-shell--teacher .btn.primary,.ui-shell--teacher .btn.blue{background:var(--blue);color:#fff}.ui-shell--teacher .btn.plain{color:var(--blue);background:0 0;padding:0 6px}.ui-shell--teacher .btn.danger{background:var(--red-soft);color:var(--red)}.ui-shell--teacher .content{min-height:0;padding:26px var(--page-x) 48px;overflow:auto}.ui-shell--teacher .page{width:min(1500px,100%);margin:0 auto;display:none}.ui-shell--teacher .page.on{display:block}.ui-shell--teacher .pagehead{align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.ui-shell--teacher .pagehead h1{letter-spacing:-.035em;margin:0;font-size:34px;font-weight:750;line-height:1.08}.ui-shell--teacher .pagehead p{color:var(--secondary);margin:8px 0 0;font-size:14px}.ui-shell--teacher .pagehead .meta{color:var(--secondary);margin-left:auto;font-size:13px}.ui-shell--teacher .section{margin-top:24px}.ui-shell--teacher .section:first-child{margin-top:0}.ui-shell--teacher .sectionhead{align-items:baseline;gap:9px;margin:0 2px 10px;display:flex}.ui-shell--teacher .sectionhead h2{margin:0;font-size:18px;font-weight:680}.ui-shell--teacher .sectionhead span{color:var(--secondary);font-size:12px}.ui-shell--teacher .sectionhead .right{margin-left:auto}.ui-shell--teacher .group{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;overflow:hidden}.ui-shell--teacher .row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:64px;padding:11px 16px;display:flex}.ui-shell--teacher .row:last-child{border-bottom:0}.ui-shell--teacher .row:hover{background:#00000004}.ui-shell--teacher .rowicon{background:#efeff2;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.ui-shell--teacher .rowmain{min-width:0}.ui-shell--teacher .rowmain b{font-size:15px;font-weight:650;display:block}.ui-shell--teacher .rowmain span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--teacher .rowside{text-align:right;margin-left:auto}.ui-shell--teacher .rowside b{font-size:15px;font-weight:650;display:block}.ui-shell--teacher .rowside span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--teacher .status{color:var(--secondary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.ui-shell--teacher .dot{background:var(--tertiary);border-radius:50%;width:7px;height:7px}.ui-shell--teacher .dot.info{background:var(--blue)}.ui-shell--teacher .dot.ok{background:var(--green)}.ui-shell--teacher .dot.warn{background:#c18b00}.ui-shell--teacher .dot.bad{background:var(--red)}.ui-shell--teacher .object{border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.ui-shell--teacher .input,.ui-shell--teacher .select{border:1px solid var(--line-strong);background:#fff;border-radius:9px;outline:none;height:40px;padding:0 11px;font-size:14px}.ui-shell--teacher .textarea{border:1px solid var(--line-strong);resize:vertical;background:#fff;border-radius:9px;outline:none;width:100%;min-height:120px;padding:10px 11px;font-size:14px;line-height:1.55}.ui-shell--teacher .input:focus,.ui-shell--teacher .select:focus,.ui-shell--teacher .textarea:focus{box-shadow:0 0 0 3px var(--blue-soft);border-color:#2767d88c}.ui-shell--teacher .segmented{background:#7676801f;border-radius:9px;gap:2px;padding:3px;display:flex}.ui-shell--teacher .segmented button{height:30px;color:var(--secondary);background:0 0;border:0;border-radius:7px;padding:0 11px;font-size:12px}.ui-shell--teacher .segmented button.on{color:var(--text);background:#fff;box-shadow:0 1px 2px #00000014}.ui-shell--teacher .search{border:1px solid var(--line-strong);background:#fff;border-radius:9px;outline:none;width:240px;height:38px;padding:0 11px;font-size:14px}.ui-shell--teacher .search:focus{box-shadow:0 0 0 3px var(--blue-soft);border-color:#2767d88c}.ui-shell--teacher .pill{height:28px;color:var(--secondary);background:#f1f1f3;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.ui-shell--teacher .pill.info{background:var(--blue-soft);color:#4e63a6}.ui-shell--teacher .pill.ok{background:var(--green-soft);color:var(--green)}.ui-shell--teacher .pill.warn{background:var(--amber-soft);color:var(--amber)}.ui-shell--teacher .pill.bad{background:var(--red-soft);color:var(--red)}.ui-shell--teacher .dashgrid{grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:22px;display:grid}.ui-shell--teacher .bigTask{letter-spacing:-.06em;font-size:56px;font-weight:750;line-height:.9}.ui-shell--teacher .bigTask+.tasklabel{margin-top:9px;font-size:15px}.ui-shell--teacher .taskmeta{color:var(--secondary);margin-top:5px;font-size:13px}.ui-shell--teacher .week{background:var(--line);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.ui-shell--teacher .day{background:#fff;min-height:92px;padding:10px}.ui-shell--teacher .day .dow{color:var(--secondary);font-size:11px}.ui-shell--teacher .day .date{margin-top:2px;font-size:18px;font-weight:650}.ui-shell--teacher .day .evt{color:var(--secondary);margin-top:11px;font-size:11px;line-height:1.35}.ui-shell--teacher .day.today{background:#f5f8ff}.ui-shell--teacher .day.today .date{color:var(--blue)}.ui-shell--teacher .assignmentTop{grid-template-columns:minmax(0,1fr) 270px;gap:18px;display:grid}.ui-shell--teacher .assignmentInfo{padding:20px}.ui-shell--teacher .assignmentInfo h1{letter-spacing:-.03em;margin:5px 0 0;font-size:30px}.ui-shell--teacher .assignmentInfo .sub{color:var(--secondary);margin-top:7px;font-size:13px}.ui-shell--teacher .assignmentThumb{align-items:center;gap:12px;padding:12px;display:flex}.ui-shell--teacher .thumb{background:#c9b5ee;border-radius:10px;flex:none;width:96px;height:96px;position:relative;overflow:hidden}.ui-shell--teacher .thumb:before{content:"FLOW";letter-spacing:-.07em;font-size:22px;font-weight:750;position:absolute;top:16px;left:9px}.ui-shell--teacher .thumb:after{content:"IN SILENCE";letter-spacing:.08em;font-size:9px;font-weight:650;position:absolute;bottom:14px;left:10px}.ui-shell--teacher .assignmentGrid{grid-template-columns:240px minmax(0,1fr);gap:18px;margin-top:18px;display:grid}.ui-shell--teacher .summaryBox{padding:16px}.ui-shell--teacher .summaryBox h3{margin:0 0 10px;font-size:15px}.ui-shell--teacher .statrow{border-bottom:1px solid var(--line);align-items:center;padding:9px 0;display:flex}.ui-shell--teacher .statrow:last-child{border-bottom:0}.ui-shell--teacher .statrow span{color:var(--secondary);font-size:13px}.ui-shell--teacher .statrow b{margin-left:auto;font-size:20px}.ui-shell--teacher .tablewrap{overflow:auto}.ui-shell--teacher .table{border-collapse:collapse;width:100%}.ui-shell--teacher .table th{height:44px;color:var(--secondary);text-align:left;border-bottom:1px solid var(--line);background:#fafafa;padding:0 12px;font-size:12px;font-weight:650}.ui-shell--teacher .table td{border-bottom:1px solid var(--line);height:64px;padding:0 12px;font-size:14px}.ui-shell--teacher .table tr:hover td{background:#fbfbfc}.ui-shell--teacher .studentCell{align-items:center;gap:10px;display:flex}.ui-shell--teacher .studentCell b{font-size:14px}.ui-shell--teacher .studentCell span{color:var(--secondary);margin-top:2px;font-size:12px;display:block}.ui-shell--teacher .reviewShell{height:calc(100vh - var(--topbar-h) - 120px);border:1px solid var(--line);background:#fff;border-radius:16px;grid-template-columns:230px minmax(0,1fr) 400px;min-height:620px;display:grid;overflow:hidden}.ui-shell--teacher .queue{border-right:1px solid var(--line);background:#fafafa;overflow:auto}.ui-shell--teacher .queueTitle{color:var(--secondary);padding:15px 14px 9px;font-size:13px}.ui-shell--teacher .queueItem{border-radius:8px;align-items:center;gap:9px;margin:2px 7px;padding:10px 11px;display:flex}.ui-shell--teacher .queueItem.on{background:var(--blue-soft)}.ui-shell--teacher .queueItem:hover{background:#00000006}.ui-shell--teacher .queueItem b{font-size:13px}.ui-shell--teacher .queueItem span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--teacher .viewer{grid-template-rows:48px 1fr 46px;min-width:0;display:grid}.ui-shell--teacher .viewerbar{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:0 14px;display:flex}.ui-shell--teacher .viewerbar b{font-size:14px}.ui-shell--teacher .canvas{background:#ededed;place-items:center;min-height:0;padding:20px;display:grid;overflow:auto}.ui-shell--teacher .art{aspect-ratio:16/10;border:1px solid var(--line);background:#fff;grid-template-columns:1fr 1fr;width:min(78%,760px);display:grid;box-shadow:0 18px 40px #0000001a}.ui-shell--teacher .artL{background:#101010;position:relative}.ui-shell--teacher .artL:before{content:"FLOW";color:#fff;letter-spacing:-.06em;font-size:clamp(34px,5vw,72px);font-weight:750;position:absolute;top:16%;left:8%}.ui-shell--teacher .artL:after{content:"IN SILENCE";color:#ddd;letter-spacing:.12em;font-size:clamp(16px,2vw,28px);font-weight:600;position:absolute;bottom:14%;left:9%}.ui-shell--teacher .artR{background:#f0eee8;position:relative}.ui-shell--teacher .artR:after{content:"";background:repeating-linear-gradient(165deg,#1d1d1f 0 2px,#0000 2px 11px);height:38%;position:absolute;top:32%;left:14%;right:14%}.ui-shell--teacher .viewerfoot{border-top:1px solid var(--line);color:var(--secondary);justify-content:center;align-items:center;font-size:12px;display:flex}.ui-shell--teacher .inspector{border-left:1px solid var(--line);overflow:auto}.ui-shell--teacher .inspecthead{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.ui-shell--teacher .inspecthead b{font-size:14px}.ui-shell--teacher .inspecthead span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--teacher .inspectbody{flex-direction:column;gap:14px;height:100%;padding:14px 16px;display:flex}.ui-shell--teacher .inspecttitle{align-items:center;margin-bottom:8px;font-size:13px;font-weight:650;display:flex}.ui-shell--teacher .inspecttitle .total{letter-spacing:-.05em;margin-left:auto;font-size:38px;line-height:1}.ui-shell--teacher .rubrow{border-bottom:1px solid var(--line);grid-template-columns:82px 1fr 118px;align-items:center;gap:10px;padding:8px 0;display:grid}.ui-shell--teacher .rubrow label{font-size:12px}.ui-shell--teacher .presets{gap:6px;display:flex}.ui-shell--teacher .presets button{border:1px solid var(--line);height:36px;color:var(--secondary);background:#fff;border-radius:8px;flex:1;font-size:11px}.ui-shell--teacher .presets button.on{background:var(--text);color:#fff;border-color:var(--text)}.ui-shell--teacher .stepper{grid-template-columns:34px 46px 34px;gap:4px;display:grid}.ui-shell--teacher .stepper button{border:1px solid var(--line);background:#fff;border-radius:8px;height:36px;font-size:16px}.ui-shell--teacher .stepper b{border:1px solid var(--line);border-radius:8px;place-items:center;height:36px;font-size:15px;font-weight:700;display:grid}.ui-shell--teacher .quick{grid-template-columns:repeat(5,1fr);gap:5px;margin-top:8px;display:grid}.ui-shell--teacher .quick button{color:#555;background:#f1f1f3;border:0;border-radius:7px;height:28px;font-size:11px}.ui-shell--teacher .decision{grid-template-columns:1fr 1.2fr;gap:10px;margin-top:12px;display:grid}.ui-shell--teacher .editorSplit{grid-template-columns:minmax(0,1fr) 360px;gap:18px;display:grid}.ui-shell--teacher .formSection{margin-bottom:14px}.ui-shell--teacher .formTitle{color:var(--secondary);margin:0 2px 8px;font-size:13px;font-weight:650}.ui-shell--teacher .formGroup{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.ui-shell--teacher .formRow{border-bottom:1px solid var(--line);padding:14px 16px}.ui-shell--teacher .formRow:last-child{border-bottom:0}.ui-shell--teacher .formRow label{color:var(--secondary);margin-bottom:7px;font-size:12px;display:block}.ui-shell--teacher .grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ui-shell--teacher .sheetUpload{border:1px dashed var(--line-strong);height:160px;color:var(--secondary);background:#fafafa;border-radius:10px;place-items:center;font-size:13px;display:grid}.ui-shell--teacher .deliverable{border-bottom:1px solid var(--line);padding:12px 14px}.ui-shell--teacher .deliverable:last-child{border-bottom:0}.ui-shell--teacher .deliverhead{align-items:center;gap:8px;margin-bottom:10px;display:flex}.ui-shell--teacher .deliverletter{background:var(--text);color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-size:11px;font-weight:650;display:grid}.ui-shell--teacher .previewbox{border:1px solid var(--line);background:#fff;border-radius:16px;position:sticky;top:0;overflow:hidden}.ui-shell--teacher .previewhead{border-bottom:1px solid var(--line);padding:13px 15px;font-size:13px;font-weight:650}.ui-shell--teacher .previewbody{padding:16px}.ui-shell--teacher .previewposter{background:#c9b5ee;border-radius:10px;height:180px;position:relative;overflow:hidden}.ui-shell--teacher .previewposter:before{content:"动态海报作业";font-size:26px;font-weight:700;position:absolute;top:22px;left:18px}.ui-shell--teacher .schemeLeft{gap:12px;display:grid}.ui-shell--teacher .weightRow{border-bottom:1px solid var(--line);grid-template-columns:1fr 110px;align-items:center;gap:12px;padding:14px 16px;display:grid}.ui-shell--teacher .weightRow:last-child{border-bottom:0}.ui-shell--teacher .weightRow b{font-size:15px}.ui-shell--teacher .weightRow span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--teacher .weightbox{border:1px solid var(--line);border-radius:9px;grid-template-columns:1fr 28px;align-items:center;height:40px;display:grid}.ui-shell--teacher .weightbox input{text-align:right;background:0 0;border:0;outline:0;width:100%;height:100%;font-size:16px;font-weight:650}.ui-shell--teacher .weightbox em{color:var(--secondary);font-size:12px;font-style:normal}.ui-shell--teacher .exampleCard{padding:22px}.ui-shell--teacher .exampleCard h2{margin:0;font-size:21px}.ui-shell--teacher .exampleCard p{color:var(--secondary);margin:6px 0 0;font-size:13px}.ui-shell--teacher .calcrow{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:14px 0;display:grid}.ui-shell--teacher .calcrow b{font-size:14px}.ui-shell--teacher .calcrow span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--teacher .calcrow strong{font-size:20px}.ui-shell--teacher .finalcalc{border-top:1px solid var(--line);align-items:end;margin-top:20px;padding-top:18px;display:flex}.ui-shell--teacher .finalcalc span{color:var(--secondary);font-size:13px}.ui-shell--teacher .finalcalc b{letter-spacing:-.07em;margin-left:auto;font-size:72px;line-height:.85}.ui-shell--teacher .studentGrid{grid-template-columns:repeat(auto-fit,minmax(316px,1fr));gap:16px;display:grid}.ui-shell--teacher .studentCard{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:16px;padding:18px 18px 16px;transition:all .18s;position:relative;overflow:hidden}.ui-shell--teacher .studentCard:hover{border-color:#3c3c433d;transform:translateY(-1px);box-shadow:0 10px 28px #0000000d}.ui-shell--teacher .studentCard:before{content:"";background:#d6d8df;height:4px;position:absolute;top:0;left:0;right:0}.ui-shell--teacher .studentCard.band-a{background:linear-gradient(#fff 0%,#f8fcf9 100%)}.ui-shell--teacher .studentCard.band-a:before{background:#4f8e67}.ui-shell--teacher .studentCard.band-b{background:linear-gradient(#fff 0%,#fafbff 100%)}.ui-shell--teacher .studentCard.band-b:before{background:#5671c0}.ui-shell--teacher .studentCard.band-c{background:linear-gradient(#fff 0%,#fffdf7 100%)}.ui-shell--teacher .studentCard.band-c:before{background:#a77d1c}.ui-shell--teacher .studentCard.band-d{background:linear-gradient(#fff 0%,#fff9f7 100%)}.ui-shell--teacher .studentCard.band-d:before{background:#b86554}.ui-shell--teacher .studentHead{align-items:center;gap:12px;display:flex}.ui-shell--teacher .studentAvatar{background:#ececf0;border-radius:50%;place-items:center;width:46px;height:46px;font-size:14px;font-weight:650;display:grid}.ui-shell--teacher .studentId{min-width:0}.ui-shell--teacher .studentId b{font-size:24px;line-height:1.05;display:block}.ui-shell--teacher .studentId span{color:var(--secondary);margin-top:6px;font-size:14px;display:block}.ui-shell--teacher .studentState{white-space:nowrap;margin-left:auto}.ui-shell--teacher .scoreRow{grid-template-columns:1fr auto;align-items:end;gap:12px;margin-top:18px;display:grid}.ui-shell--teacher .scoreLabel{color:var(--secondary);font-size:12px}.ui-shell--teacher .score{letter-spacing:-.065em;font-size:70px;font-weight:760;line-height:.85}.ui-shell--teacher .score small{color:var(--secondary);letter-spacing:0;margin-left:4px;font-size:17px;font-weight:500}.ui-shell--teacher .score.a{color:#3f7c59}.ui-shell--teacher .score.b{color:#4e63a6}.ui-shell--teacher .score.c{color:#9c7315}.ui-shell--teacher .score.d{color:#aa5e4d}.ui-shell--teacher .metrics{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#ffffff73;border-radius:12px;grid-template-columns:repeat(4,1fr);margin-top:16px;display:grid;overflow:hidden}.ui-shell--teacher .metric{padding:11px 10px}.ui-shell--teacher .metric+.metric{border-left:1px solid var(--line)}.ui-shell--teacher .metric span{color:var(--secondary);font-size:11px;display:block}.ui-shell--teacher .metric b{margin-top:7px;font-size:24px;line-height:1;display:block}.ui-shell--teacher .studentFoot{color:var(--secondary);align-items:center;gap:10px;margin-top:12px;font-size:12px;display:flex}.ui-shell--teacher .studentFoot .weightText{color:var(--secondary);font-size:12px}.ui-shell--teacher .studentFoot .cardLink{color:var(--blue);margin-left:auto;font-size:12px;font-weight:650;text-decoration:none}.ui-shell--teacher .gradebookTop{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.ui-shell--teacher .gradeStat{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px 18px}.ui-shell--teacher .gradeStat span{color:var(--secondary);font-size:12px;display:block}.ui-shell--teacher .gradeStat b{letter-spacing:-.05em;margin-top:10px;font-size:34px;line-height:1;display:block}.ui-shell--teacher .gradeStat p{color:var(--secondary);margin:7px 0 0;font-size:12px}.ui-shell--teacher .gradebookControls{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-bottom:16px;display:grid}.ui-shell--teacher .filterCluster{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ui-shell--teacher .bandFilters{flex-wrap:wrap;gap:8px;display:flex}.ui-shell--teacher .bandChip{border:1px solid var(--line);height:32px;color:var(--secondary);background:#fff;border-radius:999px;padding:0 12px;font-size:12px}.ui-shell--teacher .bandChip.on{color:var(--blue);background:#f3f6fd;border-color:#2767d840}.ui-shell--teacher .resultPill{border:1px solid var(--line);height:32px;color:var(--secondary);background:#fff;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.ui-shell--teacher .gradebookBoard{min-height:560px}.ui-shell--teacher .emptyHint{border:1px dashed var(--line-strong);text-align:center;color:var(--secondary);background:#fff;border-radius:16px;padding:30px;font-size:14px}@media (max-width:1280px){.ui-shell--teacher .studentGrid,.ui-shell--teacher .gradebookTop{grid-template-columns:repeat(2,1fr)}.ui-shell--teacher .gradebookControls,.ui-shell--teacher .dashgrid{grid-template-columns:1fr}.ui-shell--teacher .reviewShell{grid-template-columns:210px minmax(0,1fr) 360px}.ui-shell--teacher .schemeGrid,.ui-shell--teacher .editorSplit{grid-template-columns:1fr}.ui-shell--teacher .previewbox{position:static}}@media (max-width:980px){.ui-shell--teacher{--sidebar-w:76px;--page-x:20px}.ui-shell--teacher .brandcopy,.ui-shell--teacher .navbtn span,.ui-shell--teacher .userinfo{display:none}.ui-shell--teacher .brand{justify-content:center;padding-left:0;padding-right:0}.ui-shell--teacher .navbtn{justify-content:center;padding:0}.ui-shell--teacher .assignmentGrid,.ui-shell--teacher .assignmentTop{grid-template-columns:1fr}.ui-shell--teacher .reviewShell{grid-template-columns:minmax(0,1fr) 340px}.ui-shell--teacher .queue{display:none}}@media (max-width:720px){.ui-shell--teacher{height:auto;display:block;overflow:auto}.ui-shell--teacher .sidebar{display:none}.ui-shell--teacher .main{display:block}.ui-shell--teacher .topbar{position:sticky;top:0}.ui-shell--teacher .content{padding:18px 12px 80px}.ui-shell--teacher .pagehead h1{font-size:28px}.ui-shell--teacher .pagehead .meta{display:none}.ui-shell--teacher .studentGrid{grid-template-columns:1fr}.ui-shell--teacher .week{grid-template-columns:repeat(2,1fr)}.ui-shell--teacher .reviewShell{height:auto;display:block}.ui-shell--teacher .inspector{border-left:0;border-top:1px solid var(--line)}.ui-shell--teacher .viewer{min-height:520px}.ui-shell--teacher .grid2{grid-template-columns:1fr}.ui-shell--teacher .quick{grid-template-columns:repeat(2,1fr)}}.ui-shell--teacher .page{width:100%;max-width:none;min-height:calc(100vh - var(--topbar-h) - 52px)}.ui-shell--teacher .content{padding-bottom:28px}.ui-shell--teacher #dashboard.on{grid-template-rows:auto minmax(0,1fr);display:grid}.ui-shell--teacher #dashboard .dashgrid{min-height:calc(100vh - var(--topbar-h) - 132px);align-items:stretch}.ui-shell--teacher #dashboard .dashcol{flex-direction:column;min-height:0;display:flex}.ui-shell--teacher #dashboard .dashcol>.section:last-child{margin-top:24px}.ui-shell--teacher #dashboard .dashside{flex-direction:column;min-height:0;display:flex}.ui-shell--teacher #dashboard .dashside>.section:last-child{margin-top:24px}.ui-shell--teacher .heroBanner{border:1px solid var(--line);background:linear-gradient(135deg,#fff 0%,#f8f9fc 58%,#eef3fb 100%);border-radius:20px;grid-template-columns:minmax(0,1.25fr) 360px;gap:18px;margin-bottom:22px;padding:24px 26px;display:grid;position:relative;overflow:hidden}.ui-shell--teacher .heroBanner:before{content:"";background:radial-gradient(circle,#2767d824 0%,#2767d800 68%);border-radius:50%;width:280px;height:280px;position:absolute;top:-80px;right:-80px}.ui-shell--teacher .heroBanner:after{content:"";background:radial-gradient(circle,#00000009 0%,#0000 72%);border-radius:50%;width:240px;height:240px;position:absolute;bottom:-110px;left:42%}.ui-shell--teacher .heroCopy{z-index:1;position:relative}.ui-shell--teacher .heroEyebrow{background:var(--blue-soft);height:28px;color:var(--blue);border-radius:999px;align-items:center;padding:0 11px;font-size:12px;font-weight:650;display:inline-flex}.ui-shell--teacher .heroCopy h2{letter-spacing:-.04em;margin:14px 0 0;font-size:32px;font-weight:760;line-height:1.06}.ui-shell--teacher .heroCopy p{max-width:620px;color:var(--secondary);margin:10px 0 0;font-size:14px}.ui-shell--teacher .heroStats{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.ui-shell--teacher .heroStat{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffd6;border:1px solid #3c3c431f;border-radius:13px;min-width:112px;padding:12px 14px}.ui-shell--teacher .heroStat b{letter-spacing:-.04em;font-size:24px;line-height:.95;display:block}.ui-shell--teacher .heroStat span{color:var(--secondary);margin-top:6px;font-size:12px;display:block}.ui-shell--teacher .heroVisual{z-index:1;place-items:center;min-height:190px;display:grid;position:relative}.ui-shell--teacher .heroDevice{background:linear-gradient(#fff 0%,#f3f4f8 100%);border:1px solid #3c3c431f;border-radius:22px;width:300px;height:188px;padding:14px;position:relative;box-shadow:0 14px 34px #00000014}.ui-shell--teacher .heroDevice .toolbarMini{align-items:center;gap:6px;height:12px;display:flex}.ui-shell--teacher .heroDevice .toolbarMini i{background:#d3d5dc;border-radius:50%;width:6px;height:6px;display:block}.ui-shell--teacher .heroCanvas{background:linear-gradient(135deg,#d8c6f0 0%,#f4eff9 100%);border-radius:16px;height:132px;margin-top:14px;position:relative;overflow:hidden}.ui-shell--teacher .heroCanvas .posterMini{background:#fff;border:1px solid #3c3c431f;border-radius:12px;grid-template-columns:1fr 1fr;width:172px;height:98px;display:grid;position:absolute;top:16px;left:18px;overflow:hidden;box-shadow:0 12px 26px #00000014}.ui-shell--teacher .posterMini .left{background:#101010;position:relative}.ui-shell--teacher .posterMini .left:before{content:"FLOW";color:#fff;letter-spacing:-.06em;font-size:28px;font-weight:760;position:absolute;top:14px;left:10px}.ui-shell--teacher .posterMini .left:after{content:"IN SILENCE";color:#ddd;letter-spacing:.12em;font-size:9px;font-weight:650;position:absolute;bottom:14px;left:12px}.ui-shell--teacher .posterMini .right{background:#f2eee6;position:relative}.ui-shell--teacher .posterMini .right:after{content:"";background:repeating-linear-gradient(165deg,#1d1d1f 0 2px,#0000 2px 10px);position:absolute;inset:28px 14px 22px}.ui-shell--teacher .heroFloat{background:#ffffffeb;border:1px solid #3c3c431a;border-radius:12px;padding:10px 12px;position:absolute;right:18px;box-shadow:0 8px 18px #0000000f}.ui-shell--teacher .heroFloat.one{top:22px}.ui-shell--teacher .heroFloat.two{bottom:18px}.ui-shell--teacher .heroFloat b{font-size:16px;line-height:1;display:block}.ui-shell--teacher .heroFloat span{color:var(--secondary);margin-top:4px;font-size:11px;display:block}.ui-shell--teacher .reviewInspectorBlock{flex-direction:column;gap:14px;display:flex}.ui-shell--teacher .feedbackBlock{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding-top:2px;display:flex}.ui-shell--teacher .feedbackBlock .textarea{resize:none;min-height:180px;max-height:220px}.ui-shell--teacher .decision .btn{height:48px;font-size:15px;font-weight:650}.ui-shell--teacher .rubricBlock{padding-bottom:2px}.ui-shell--teacher #scheme .pagehead{margin-bottom:18px}.ui-shell--teacher .schemeTopStrip{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.ui-shell--teacher .schemeStatChip{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px 18px}.ui-shell--teacher .schemeStatChip.blueTint{background:linear-gradient(#fff 0%,#f7faff 100%)}.ui-shell--teacher .schemeStatChip.sandTint{background:linear-gradient(#fffdf8 0%,#fff9ed 100%)}.ui-shell--teacher .schemeStatChip span{color:var(--secondary);font-size:12px;display:block}.ui-shell--teacher .schemeStatChip b{letter-spacing:-.04em;margin-top:8px;font-size:28px;line-height:1;display:block}.ui-shell--teacher .schemeGrid{grid-template-columns:minmax(0,1fr) 470px;gap:20px;display:grid}.ui-shell--teacher .schemeAside{gap:14px;display:grid}.ui-shell--teacher .weightEditor{overflow:hidden}.ui-shell--teacher .weightToolbar{align-items:center;gap:8px;display:flex}.ui-shell--teacher .weightRowEditable{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 160px 36px;align-items:center;gap:12px;padding:14px 16px;display:grid}.ui-shell--teacher .weightRowEditable:last-of-type{border-bottom:1px solid var(--line)}.ui-shell--teacher .weightMeta strong{font-size:15px;display:block}.ui-shell--teacher .weightMeta span{color:var(--secondary);margin-top:4px;font-size:12px;display:block}.ui-shell--teacher .removeItem{border:1px solid var(--line);background:#fff;border-radius:9px;width:36px;height:36px;font-size:20px;line-height:1}.ui-shell--teacher .addRowWrap{background:#fbfbfc;padding:12px 16px}.ui-shell--teacher .addWeightRow{width:100%;height:40px;color:var(--blue);background:#f7faff;border:1px dashed #2767d859;border-radius:10px;font-size:13px;font-weight:650}.ui-shell--teacher .totalBadge{height:30px;color:var(--secondary);background:#f3f4f7;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:inline-flex}.ui-shell--teacher .totalBadge.good{color:var(--green);background:#eef8f1}.ui-shell--teacher .totalBadge.warn{color:var(--amber);background:#fff7eb}.ui-shell--teacher .exampleCard{background:linear-gradient(#fff 0%,#fbfcff 100%);border-color:#2767d81a;padding:22px}.ui-shell--teacher .exampleCard .exampleList{border-top:1px solid var(--line);margin-top:18px}.ui-shell--teacher .schemeNoteCard{background:linear-gradient(#fffdf8 0%,#fffaf0 100%);border:1px solid #8b6b2824;padding:18px 20px}.ui-shell--teacher .schemeNoteCard h3{margin:0;font-size:16px}.ui-shell--teacher .schemeNoteCard p{color:var(--secondary);margin:8px 0 0;font-size:13px;line-height:1.55}.ui-shell--teacher .schemeRuleList{gap:10px;margin-top:14px;display:grid}.ui-shell--teacher .schemeRuleItem{background:#ffffffa6;border:1px solid #3c3c431a;border-radius:12px;padding:12px 14px}.ui-shell--teacher .schemeRuleItem b{font-size:13px;display:block}.ui-shell--teacher .schemeRuleItem span{color:var(--secondary);margin-top:4px;font-size:12px;display:block}@media (max-width:1200px){.ui-shell--teacher .schemeTopStrip,.ui-shell--teacher .schemeGrid{grid-template-columns:1fr}}@media (max-width:1100px){.ui-shell--teacher .heroBanner{grid-template-columns:1fr}.ui-shell--teacher .heroVisual{min-height:160px}}.ui-shell--teacher .coursePulse{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.ui-shell--teacher .pulseCell{min-width:0;padding:16px 17px}.ui-shell--teacher .pulseCell+.pulseCell{border-left:1px solid var(--line)}.ui-shell--teacher .pulseCell span{color:var(--secondary);font-size:12px;display:block}.ui-shell--teacher .pulseCell b{letter-spacing:-.04em;margin-top:5px;font-size:26px;display:block}.ui-shell--teacher .pulseTrack{background:#ececef;border-radius:999px;height:5px;margin-top:10px;overflow:hidden}.ui-shell--teacher .pulseTrack i{background:var(--text);border-radius:999px;height:100%;display:block}.ui-shell--teacher .attentionList{border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;overflow:hidden}.ui-shell--teacher .attentionRow{border-bottom:1px solid var(--line);grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:62px;padding:11px 15px;display:grid}.ui-shell--teacher .attentionRow:last-child{border-bottom:0}.ui-shell--teacher .attentionRow:hover{background:#00000004}.ui-shell--teacher .attentionMark{background:var(--amber);border-radius:50%;width:8px;height:8px}.ui-shell--teacher .attentionMark.red{background:var(--red)}.ui-shell--teacher .attentionMark.blue{background:var(--blue)}.ui-shell--teacher .attentionRow b{font-size:14px;display:block}.ui-shell--teacher .attentionRow span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--teacher .attentionRow button{white-space:nowrap}.ui-shell--teacher #assignment-detail.on{grid-template-rows:auto minmax(0,1fr);display:grid}.ui-shell--teacher #assignment-detail .assignmentGrid{min-height:calc(100vh - var(--topbar-h) - 216px);align-items:stretch}.ui-shell--teacher #assignment-detail .summaryBox{height:100%}.ui-shell--teacher #assignment-detail .assignmentGrid>.group{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.ui-shell--teacher #assignment-detail .tablewrap{min-height:0;overflow:auto}.ui-shell--teacher #review.on{grid-template-rows:auto minmax(0,1fr);display:grid}.ui-shell--teacher #review .reviewShell{height:auto;min-height:0}.ui-shell--teacher #review .inspector{grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.ui-shell--teacher #review .inspectbody{flex-direction:column;min-height:0;padding:14px 16px 12px;display:flex;overflow:hidden}.ui-shell--teacher #review #rubric{flex:none}.ui-shell--teacher #review .feedbackFill{border-top:1px solid var(--line);flex-direction:column;flex:1;min-height:0;margin-top:10px;padding-top:12px;display:flex}.ui-shell--teacher #review .feedbackFill .textarea{resize:none;flex:1;min-height:130px}.ui-shell--teacher #review .feedbackFill .quick{flex:none}.ui-shell--teacher #review .feedbackFill .decision{flex:none;margin-top:10px}.ui-shell--teacher #review .canvas{padding:14px}.ui-shell--teacher #review .art{width:min(88%,920px)}.ui-shell--teacher #review .quick{grid-template-columns:repeat(4,minmax(0,1fr))}.ui-shell--teacher #new-assignment.on{grid-template-rows:auto minmax(0,1fr);display:grid}.ui-shell--teacher #new-assignment .editorSplit{min-height:calc(100vh - var(--topbar-h) - 128px);align-items:start}.ui-shell--teacher #new-assignment .previewbox{min-height:620px}.ui-shell--teacher #new-assignment .previewbody{flex-direction:column;min-height:570px;display:flex}.ui-shell--teacher #new-assignment .previewbody>div:last-child{margin-top:auto!important}.ui-shell--teacher #scheme.on{grid-template-rows:auto minmax(0,1fr);display:grid}.ui-shell--teacher #scheme .schemeGrid{min-height:calc(100vh - var(--topbar-h) - 132px);align-items:start}.ui-shell--teacher #scheme .schemeLeft{align-content:start}.ui-shell--teacher #scheme .exampleCard{flex-direction:column;display:flex}.ui-shell--teacher #scheme .finalcalc{margin-top:18px}.ui-shell--teacher #gradebook.on{display:block}.ui-shell--teacher #gradebook .studentGrid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}@media (min-width:1700px){.ui-shell--teacher{--page-x:40px}.ui-shell--teacher #dashboard .dashgrid{grid-template-columns:minmax(0,1.55fr) minmax(390px,.45fr);gap:26px}.ui-shell--teacher #review .reviewShell{grid-template-columns:250px minmax(0,1fr) 450px}.ui-shell--teacher #assignment-detail .assignmentGrid{grid-template-columns:270px minmax(0,1fr)}.ui-shell--teacher #new-assignment .editorSplit{grid-template-columns:minmax(0,1fr) 420px}.ui-shell--teacher #scheme .schemeGrid{grid-template-columns:minmax(0,.9fr) 560px}}@media (max-width:1280px){.ui-shell--teacher #dashboard .dashcol>.section:last-child,.ui-shell--teacher #dashboard .dashside>.section:last-child{margin-top:24px}.ui-shell--teacher .coursePulse{grid-template-columns:repeat(2,1fr)}.ui-shell--teacher .pulseCell:nth-child(3){border-left:0;border-top:1px solid var(--line)}.ui-shell--teacher .pulseCell:nth-child(4){border-top:1px solid var(--line)}}@media (max-width:720px){.ui-shell--teacher .coursePulse{grid-template-columns:1fr}.ui-shell--teacher .pulseCell+.pulseCell{border-left:0;border-top:1px solid var(--line)}.ui-shell--teacher #review .inspectbody{overflow:visible}.ui-shell--teacher .feedbackFill{min-height:380px}}
.ui-shell--student{--bg:#f5f6f8;--sidebar:#f1f2f4;--surface:#fff;--surface2:#f8f9fb;--text:#1d1d1f;--secondary:#6e6e73;--tertiary:#8e8e93;--line:#3c3c4326;--line2:#3c3c4317;--blue:#356fd3;--blue-soft:#f2f6fd;--blue-border:#356fd324;--green:#3f7c59;--green-strong:#36734f;--green-soft:#f3f8f5;--green-border:#3f7c5924;--amber:#8a6925;--amber-soft:#fff9ee;--amber-border:#8a692524;--red:#a85f52;--red-soft:#fff6f4;--red-border:#a85f5224;--purple:#7b61a8;--r-sm:8px;--r-md:12px;--r-lg:16px;--sidebar-w:220px;--topbar-h:64px;--page-x:32px;--font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Inter,sans-serif}.ui-shell--student,.ui-shell--student *{box-sizing:border-box}.ui-shell--student{height:100%;font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;background:linear-gradient(#f7f8fa 0%,#f5f6f8 44%,#f3f5f7 100%);margin:0;font-size:15px;line-height:1.48;overflow:hidden}.ui-shell--student button,.ui-shell--student input,.ui-shell--student select,.ui-shell--student textarea{font:inherit;color:inherit}.ui-shell--student button{cursor:pointer}.ui-shell--student{grid-template-columns:var(--sidebar-w) 1fr;height:100%;display:grid}.ui-shell--student .sidebar{background:var(--sidebar);border-right:1px solid var(--line);flex-direction:column;padding:18px 12px 14px;display:flex}.ui-shell--student .brand{align-items:center;gap:10px;padding:2px 10px 22px;display:flex}.ui-shell--student .brandmark{background:var(--text);color:#fff;border-radius:9px;place-items:center;width:32px;height:32px;font-size:13px;font-weight:750;display:grid}.ui-shell--student .brandcopy b{font-size:16px;line-height:1.1;display:block}.ui-shell--student .brandcopy span{color:var(--secondary);margin-top:3px;font-size:11px;display:block}.ui-shell--student .nav{gap:4px;display:grid}.ui-shell--student .navbtn{color:#3a3a3c;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;height:44px;padding:0 11px;font-size:15px;display:flex}.ui-shell--student .navbtn:hover{background:#00000009}.ui-shell--student .navbtn.on{background:var(--blue-soft);color:var(--text);font-weight:650}.ui-shell--student .navbtn svg{stroke:currentColor;fill:none;stroke-width:1.8px;flex:0 0 18px;width:18px;height:18px}.ui-shell--student .navbtn.on svg{color:var(--blue)}.ui-shell--student .navsep{background:var(--line);height:1px;margin:12px 10px}.ui-shell--student .sidefoot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:14px 9px 2px;display:flex}.ui-shell--student .avatar{background:#dedee3;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.ui-shell--student .userinfo b{font-size:13px;display:block}.ui-shell--student .userinfo span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--student .main{grid-template-rows:var(--topbar-h) 1fr;min-width:0;display:grid}.ui-shell--student .topbar{height:var(--topbar-h);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(150%);backdrop-filter:blur(18px)saturate(150%);padding:0 var(--page-x);z-index:10;background:#ffffffe0;align-items:center;gap:10px;display:flex;position:relative}.ui-shell--student .breadcrumb{color:var(--secondary);font-size:14px}.ui-shell--student .breadcrumb b{color:var(--text);font-weight:650}.ui-shell--student .grow{flex:1}.ui-shell--student .courseTag{border:1px solid var(--line);color:var(--secondary);background:#fff;border-radius:999px;padding:7px 11px;font-size:12px}.ui-shell--student .topAction{background:var(--blue);color:#fff;border:0;border-radius:8px;height:36px;padding:0 13px;font-size:13px;font-weight:650}.ui-shell--student .content{min-height:0;padding:26px var(--page-x) 48px;overflow:auto}.ui-shell--student .page{width:min(1480px,100%);margin:0 auto;display:none}.ui-shell--student .page.on{display:block}.ui-shell--student .pagehead{align-items:flex-end;gap:18px;margin-bottom:22px;display:flex}.ui-shell--student .pagehead h1{letter-spacing:-.035em;margin:0;font-size:34px;font-weight:750;line-height:1.08}.ui-shell--student .pagehead p{color:var(--secondary);margin:8px 0 0;font-size:14px}.ui-shell--student .pagehead .meta{color:var(--secondary);margin-left:auto;font-size:13px}.ui-shell--student .section{margin-top:24px}.ui-shell--student .section:first-child{margin-top:0}.ui-shell--student .sectionhead{align-items:baseline;gap:9px;margin:0 2px 10px;display:flex}.ui-shell--student .sectionhead h2{margin:0;font-size:18px;font-weight:680}.ui-shell--student .sectionhead span{color:var(--secondary);font-size:12px}.ui-shell--student .sectionhead .right{margin-left:auto}.ui-shell--student .group{background:linear-gradient(#fff 0%,#fbfcff 100%);border:1px solid #2767d81a;border-radius:16px;overflow:hidden}.ui-shell--student .row{border-bottom:1px solid var(--line);align-items:center;gap:12px;min-height:64px;padding:11px 16px;display:flex}.ui-shell--student .row:last-child{border-bottom:0}.ui-shell--student .row:hover{background:#f8fbff}.ui-shell--student .rowicon{background:#efeff2;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:grid}.ui-shell--student .rowmain{min-width:0}.ui-shell--student .rowmain b{font-size:15px;font-weight:650;display:block}.ui-shell--student .rowmain span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--student .rowside{text-align:right;margin-left:auto}.ui-shell--student .rowside b{font-size:15px;font-weight:650;display:block}.ui-shell--student .rowside span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--student .pill{height:28px;color:var(--secondary);background:#f1f2f4;border:1px solid #0000;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.ui-shell--student .pill.info{background:var(--blue-soft);color:var(--blue);border-color:var(--blue-border)}.ui-shell--student .pill.ok{background:var(--green-soft);color:var(--green);border-color:var(--green-border)}.ui-shell--student .pill.warn{background:var(--amber-soft);color:var(--amber);border-color:var(--amber-border)}.ui-shell--student .pill.bad{background:var(--red-soft);color:var(--red);border-color:var(--red-border)}.ui-shell--student .btn{background:#f1f1f3;border:0;border-radius:9px;height:38px;padding:0 14px;font-size:13px;font-weight:600}.ui-shell--student .btn.primary{background:var(--blue);color:#fff}.ui-shell--student .btn.danger{background:var(--red-soft);color:var(--red)}.ui-shell--student .btn.plain{color:var(--blue);background:0 0;padding:0 6px}.ui-shell--student .input,.ui-shell--student .select{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;height:40px;padding:0 11px;font-size:14px}.ui-shell--student .textarea{border:1px solid var(--line);resize:vertical;background:#fff;border-radius:9px;outline:none;width:100%;min-height:112px;padding:10px 11px;font-size:14px;line-height:1.55}.ui-shell--student .input:focus,.ui-shell--student .select:focus,.ui-shell--student .textarea:focus{box-shadow:0 0 0 3px var(--blue-soft);border-color:#2767d88c}.ui-shell--student .homeGrid{grid-template-columns:minmax(0,1.42fr) minmax(360px,.68fr);align-items:start;gap:18px;display:grid}.ui-shell--student .homeBanner{border:1px solid var(--blue-border);background:linear-gradient(135deg,#fff 0%,#fbfcff 55%,var(--blue-soft) 100%);border-radius:20px;grid-template-columns:minmax(0,1fr) 300px;gap:24px;min-height:270px;padding:24px 26px;display:grid;position:relative;overflow:hidden}.ui-shell--student .homeBanner:after{content:"";background:radial-gradient(circle,#356fd31a 0%,#356fd300 70%);border-radius:50%;width:250px;height:250px;position:absolute;top:-70px;right:-70px}.ui-shell--student .bannerCopy{z-index:1;position:relative}.ui-shell--student .bannerEyebrow{background:var(--blue-soft);height:28px;color:var(--blue);border-radius:999px;align-items:center;padding:0 11px;font-size:12px;font-weight:650;display:inline-flex}.ui-shell--student .bannerCopy h2{letter-spacing:-.04em;margin:14px 0 0;font-size:30px;line-height:1.08}.ui-shell--student .bannerCopy p{color:var(--secondary);margin:9px 0 0;font-size:14px}.ui-shell--student .deliverList{gap:8px;margin-top:20px;display:grid}.ui-shell--student .deliverLine{align-items:center;gap:8px;font-size:13px;display:flex}.ui-shell--student .check{border:1px solid #c8c8cc;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;display:grid}.ui-shell--student .check.done{background:var(--text);color:#fff;border-color:var(--text)}.ui-shell--student .bannerAction{margin-top:20px}.ui-shell--student .poster{z-index:1;background:#c8b5ee;border-radius:16px;min-height:210px;position:relative;overflow:hidden;box-shadow:0 12px 30px #3c2a5a1a}.ui-shell--student .poster:before{content:"FLOW";letter-spacing:-.07em;font-size:52px;font-weight:800;position:absolute;top:36px;left:20px}.ui-shell--student .poster:after{content:"IN SILENCE";letter-spacing:.12em;color:#342a50;font-size:18px;font-weight:650;position:absolute;bottom:34px;left:22px}.ui-shell--student .homeSide{align-content:start;gap:16px;display:grid}.ui-shell--student .scoreMini{background:linear-gradient(180deg,#fff 0%,var(--green-soft) 100%);border:1px solid var(--green-border);border-radius:18px;flex-direction:column;min-height:296px;padding:20px 20px 18px;display:flex}.ui-shell--student .scoreMiniTop{align-items:center;display:flex}.ui-shell--student .scoreMiniTop h3{margin:0;font-size:18px;line-height:1.1}.ui-shell--student .scoreMiniTop span{color:var(--green);margin-left:auto;font-size:13px;font-weight:650}.ui-shell--student .scoreMiniValue{letter-spacing:-.07em;color:var(--green);margin-top:18px;font-size:76px;font-weight:800;line-height:.82}.ui-shell--student .scoreMiniValue small{color:var(--secondary);letter-spacing:0;margin-left:5px;font-size:21px;font-weight:500}.ui-shell--student .scoreMiniRows{border-top:1px solid #3c3c431a;gap:9px;margin-top:20px;padding-top:14px;display:grid}.ui-shell--student .scoreMiniRow{color:var(--secondary);align-items:center;font-size:13px;display:flex}.ui-shell--student .scoreMiniRow b{color:var(--text);margin-left:auto;font-size:15px}.ui-shell--student .scoreMiniFoot{border-top:1px solid #3c3c431a;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;display:flex}.ui-shell--student .scoreMiniHint{color:var(--secondary);font-size:12px}.ui-shell--student .classCard{border:1px solid var(--line);background:linear-gradient(#fff 0%,#fbfcff 100%);border-radius:16px;flex-direction:column;min-height:190px;padding:18px;display:flex}.ui-shell--student .classCard .time{letter-spacing:-.04em;margin-top:8px;font-size:28px;font-weight:700}.ui-shell--student .classCard .label{color:var(--secondary);font-size:12px}.ui-shell--student .classCard b{margin-top:12px;font-size:14px;display:block}.ui-shell--student .classCard span{color:var(--secondary);margin-top:4px;font-size:12px;display:block}.ui-shell--student .classSignRow{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding-top:15px;display:flex}.ui-shell--student .signStatus{min-width:0;color:var(--secondary);font-size:12px}.ui-shell--student .signStatus b{color:var(--text);margin:0;font-size:12px;display:inline}.ui-shell--student .signButton{background:var(--blue);color:#fff;border:0;border-radius:9px;min-width:92px;height:38px;margin-left:auto;font-size:13px;font-weight:650}.ui-shell--student .signButton:hover{filter:brightness(.97)}.ui-shell--student .signButton.signed{background:var(--green-soft);color:var(--green);border:1px solid var(--green-border)}.ui-shell--student .signButton:disabled{cursor:default;filter:none}.ui-shell--student .signDot{background:var(--blue);border-radius:50%;flex:none;width:8px;height:8px}.ui-shell--student .signDot.signed{background:var(--green)}.ui-shell--student .noticeList{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.ui-shell--student .noticeRow{border-bottom:1px solid var(--line);align-items:center;gap:11px;min-height:66px;padding:12px 15px;display:flex}.ui-shell--student .noticeRow:last-child{border-bottom:0}.ui-shell--student .noticeDot{background:var(--blue);border-radius:50%;flex:none;width:8px;height:8px}.ui-shell--student .noticeDot.warn{background:#c18b00}.ui-shell--student .noticeDot.ok{background:var(--green)}.ui-shell--student .noticeRow b{font-size:14px;display:block}.ui-shell--student .noticeRow span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--student .homeWeekly{margin-top:24px}.ui-shell--student .weekTimeline{background:var(--line);border:1px solid var(--line);border-radius:16px;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.ui-shell--student .weekDay{background:#fff;flex-direction:column;min-height:126px;padding:13px 14px;display:flex}.ui-shell--student .weekDay.today{background:linear-gradient(#f4f8ff 0%,#eef4ff 100%)}.ui-shell--student .weekDow{color:var(--secondary);font-size:11px}.ui-shell--student .weekDate{margin-top:4px;font-size:22px;font-weight:700;line-height:1}.ui-shell--student .weekDay.today .weekDate{color:var(--blue)}.ui-shell--student .weekEvent{color:var(--secondary);margin-top:auto;padding-top:16px;font-size:12px;line-height:1.4}.ui-shell--student .weekEvent b{color:var(--text);margin-bottom:3px;font-size:12px;display:block}.ui-shell--student .weekEvent .weekTag{height:24px;color:var(--secondary);background:#f3f4f7;border-radius:999px;align-items:center;margin-bottom:6px;padding:0 8px;font-size:10px;display:inline-flex}.ui-shell--student .weekEvent .weekTag.blue{background:var(--blue-soft);color:var(--blue)}.ui-shell--student .weekEvent .weekTag.warn{background:var(--amber-soft);color:var(--amber)}.ui-shell--student .homeBottomGrid{grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:16px;margin-top:18px;display:grid}.ui-shell--student .recentFeedbackCard,.ui-shell--student .courseProgressCard{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.ui-shell--student .recentFeedbackCard{background:linear-gradient(180deg,#fff 0%,var(--amber-soft) 100%);border-color:var(--amber-border)}.ui-shell--student .courseProgressCard{background:linear-gradient(180deg,#fff 0%,var(--blue-soft) 100%);border-color:var(--blue-border)}.ui-shell--student .homeCardHead{border-bottom:1px solid var(--line);align-items:center;height:52px;padding:0 16px;display:flex}.ui-shell--student .homeCardHead h3{margin:0;font-size:16px}.ui-shell--student .homeCardHead span{color:var(--secondary);margin-left:8px;font-size:12px}.ui-shell--student .homeCardHead button{margin-left:auto}.ui-shell--student .homeFeedbackRow{border-bottom:1px solid var(--line2);cursor:pointer;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:70px;padding:12px 16px;display:grid}.ui-shell--student .homeFeedbackRow:last-child{border-bottom:0}.ui-shell--student .homeFeedbackRow:hover{background:#fffaf2}.ui-shell--student .feedbackMark{background:var(--amber);border-radius:50%;width:8px;height:8px}.ui-shell--student .feedbackMark.green{background:var(--green)}.ui-shell--student .feedbackMark.blue{background:var(--blue)}.ui-shell--student .homeFeedbackRow b{font-size:14px;display:block}.ui-shell--student .homeFeedbackRow p{color:var(--secondary);white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;font-size:12px;overflow:hidden}.ui-shell--student .homeFeedbackRow time{color:var(--secondary);white-space:nowrap;font-size:11px}.ui-shell--student .progressBody{gap:14px;padding:14px 16px 16px;display:grid}.ui-shell--student .progressItem{grid-template-columns:1fr auto;align-items:end;gap:10px;display:grid}.ui-shell--student .progressItem span{color:var(--secondary);font-size:12px}.ui-shell--student .progressItem b{font-size:20px;line-height:1}.ui-shell--student .progressLine{background:#eceef2;border-radius:999px;grid-column:1/-1;height:7px;overflow:hidden}.ui-shell--student .progressLine i{background:var(--text);border-radius:999px;height:100%;display:block}.ui-shell--student .progressLine i.blue{background:var(--blue)}.ui-shell--student .progressLine i.green{background:var(--green)}.ui-shell--student .progressLine i.amber{background:#b9881f}.ui-shell--student .progressFoot{border-top:1px solid var(--line);color:var(--secondary);align-items:center;margin-top:2px;padding-top:13px;font-size:12px;display:flex}.ui-shell--student .progressFoot b{color:var(--text);margin-left:auto;font-size:14px}.ui-shell--student .assignmentSummary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.ui-shell--student .summaryCard{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px 18px}.ui-shell--student .summaryCard span{color:var(--secondary);font-size:12px;display:block}.ui-shell--student .summaryCard b{letter-spacing:-.04em;margin-top:10px;font-size:32px;line-height:1;display:block}.ui-shell--student .assignmentToolbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.ui-shell--student .segmented{background:#7676801f;border-radius:9px;gap:2px;padding:3px;display:flex}.ui-shell--student .segmented button{height:30px;color:var(--secondary);background:0 0;border:0;border-radius:7px;padding:0 10px;font-size:12px}.ui-shell--student .segmented button.on{color:var(--text);background:#fff;box-shadow:0 1px 2px #00000014}.ui-shell--student .search{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;width:240px;height:38px;padding:0 11px;font-size:14px}.ui-shell--student .assignmentGrid{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px;display:grid}.ui-shell--student .assignmentCard{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:16px;padding:18px;position:relative;overflow:hidden}.ui-shell--student .assignmentCard:before{content:"";background:#d7d9de;height:3px;position:absolute;top:0;left:0;right:0}.ui-shell--student .assignmentCard.state-todo{background:linear-gradient(180deg,#fff 0%,var(--blue-soft) 100%);border-color:var(--blue-border)}.ui-shell--student .assignmentCard.state-todo:before,.ui-shell--student .assignmentCard.state-review:before{background:var(--blue)}.ui-shell--student .assignmentCard.state-review{background:linear-gradient(#fff 0%,#f7f9fd 100%);border-color:#356fd31a}.ui-shell--student .assignmentCard.state-modify{background:linear-gradient(180deg,#fff 0%,var(--red-soft) 100%);border-color:var(--red-border)}.ui-shell--student .assignmentCard.state-modify:before{background:var(--red)}.ui-shell--student .assignmentCard.state-done{background:linear-gradient(180deg,#fff 0%,var(--green-soft) 100%);border-color:var(--green-border)}.ui-shell--student .assignmentCard.state-done:before{background:var(--green)}.ui-shell--student .assignmentCard:hover{border-color:#3c3c4340;box-shadow:0 8px 22px #0000000a}.ui-shell--student .assignmentCardTop{align-items:flex-start;gap:10px;display:flex}.ui-shell--student .assignmentCard h3{margin:0;font-size:18px}.ui-shell--student .assignmentCard .date{color:var(--secondary);margin-top:5px;font-size:12px}.ui-shell--student .assignmentState{margin-left:auto}.ui-shell--student .assignmentDesc{color:var(--secondary);margin-top:14px;font-size:13px;line-height:1.6}.ui-shell--student .assignmentProgress{color:var(--secondary);align-items:center;gap:8px;margin-top:16px;font-size:12px;display:flex}.ui-shell--student .progressTrack{background:#ececef;border-radius:999px;flex:1;height:7px;overflow:hidden}.ui-shell--student .progressTrack i{background:var(--blue);border-radius:999px;height:100%;display:block}.ui-shell--student .assignmentFoot{border-top:1px solid var(--line);align-items:center;margin-top:16px;padding-top:13px;display:flex}.ui-shell--student .assignmentFoot span{color:var(--secondary);font-size:12px}.ui-shell--student .assignmentFoot a{color:var(--blue);margin-left:auto;font-size:12px;font-weight:650}.ui-shell--student .submitLayout{grid-template-columns:minmax(0,1.08fr) minmax(390px,.92fr);gap:18px;display:grid}.ui-shell--student .sheetCard{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.ui-shell--student .sheetHead{border-bottom:1px solid var(--line);align-items:center;height:52px;padding:0 16px;display:flex}.ui-shell--student .sheetHead h3{margin:0;font-size:16px}.ui-shell--student .sheetHead span{color:var(--secondary);margin-left:auto;font-size:12px}.ui-shell--student .sheetVisual{background:linear-gradient(135deg,#d4c0f4 0%,#efe8fb 100%);min-height:650px;position:relative;overflow:hidden}.ui-shell--student .sheetVisual:before{content:"动态海报作业";letter-spacing:-.04em;font-size:44px;font-weight:750;position:absolute;top:8%;left:8%}.ui-shell--student .sheetVisual:after{content:"作业说明图";color:#5d536c;font-size:18px;position:absolute;bottom:8%;left:8%}.ui-shell--student .submitPanel{align-content:start;gap:12px;display:grid}.ui-shell--student .progressCard{border:1px solid var(--line);background:#fff;border-radius:16px;padding:16px}.ui-shell--student .progressTop{align-items:center;display:flex}.ui-shell--student .progressTop b{font-size:15px}.ui-shell--student .progressTop span{color:var(--secondary);margin-left:auto;font-size:13px}.ui-shell--student .deliverCard{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.ui-shell--student .deliverHead{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:13px 15px;display:flex}.ui-shell--student .deliverLetter{background:var(--text);color:#fff;border-radius:8px;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.ui-shell--student .deliverHead b{font-size:14px}.ui-shell--student .deliverHead span{color:var(--secondary);margin-top:2px;font-size:11px;display:block}.ui-shell--student .deliverBody{padding:14px}.ui-shell--student .uploadBox{border:1px dashed var(--line);text-align:center;height:180px;color:var(--secondary);background:#fafafa;border-radius:10px;place-items:center;font-size:12px;display:grid;position:relative;overflow:hidden}.ui-shell--student .uploadBox video,.ui-shell--student .uploadBox iframe{background:#111;border:0;width:100%;height:100%;position:absolute;inset:0}.ui-shell--student .uploadBox iframe{background:#fff}.ui-shell--student .uploadActions{gap:8px;margin-top:10px;display:flex}.ui-shell--student .fileInput{display:none}.ui-shell--student .smallMeta{color:var(--secondary);margin-left:auto;font-size:11px}.ui-shell--student .modifyNote{background:var(--amber-soft);color:var(--amber);border-radius:10px;padding:11px 12px;font-size:12px;line-height:1.55}.ui-shell--student .submitButtons{grid-template-columns:1fr 1.2fr;gap:9px;margin-top:2px;display:grid}.ui-shell--student .progressCard{background:linear-gradient(180deg,#fff 0%,var(--blue-soft) 100%)!important;border-color:var(--blue-border)!important}.ui-shell--student .deliverCard.completed{background:linear-gradient(180deg,#fff 0%,var(--green-soft) 100%);border-color:var(--green-border)}.ui-shell--student .deliverCard.completed .deliverHead{background:#3f7c5906}.ui-shell--student .deliverCard.incomplete{background:linear-gradient(#fff 0%,#fbfbfc 100%)}.ui-shell--student .modifyNote{border:1px solid var(--red-border);background:var(--red-soft)!important;color:var(--red)!important}.ui-shell--student .heroGrid{grid-template-columns:390px minmax(0,1fr);gap:16px;display:grid}.ui-shell--student .scoreHero{background:linear-gradient(180deg,#fff 0%,var(--green-soft) 68%,#eef6f1 100%);border:1px solid var(--green-border);border-radius:18px;flex-direction:column;min-height:506px;padding:22px;display:flex;position:relative;overflow:hidden}.ui-shell--student .scoreHero:before{content:"";background:radial-gradient(circle,#3f7c5921 0%,#3f7c5900 72%);border-radius:50%;width:170px;height:170px;position:absolute;top:-42px;right:-42px}.ui-shell--student .scoreHero .eyebrow{color:var(--secondary);font-size:12px}.ui-shell--student .scoreBig{letter-spacing:-.075em;color:var(--green);margin-top:18px;font-size:92px;font-weight:800;line-height:.82}.ui-shell--student .scoreBig small{color:var(--secondary);letter-spacing:0;margin-left:5px;font-size:20px;font-weight:500}.ui-shell--student .scoreState{color:var(--green);align-items:center;gap:7px;margin-top:14px;font-size:13px;font-weight:650;display:flex}.ui-shell--student .scoreState i{background:var(--green);border-radius:50%;width:8px;height:8px}.ui-shell--student .scoreMiniGrid{z-index:1;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid;position:relative}.ui-shell--student .scoreMiniCard{background:#ffffffc2;border:1px solid #3c3c4314;border-radius:12px;min-height:78px;padding:12px}.ui-shell--student .scoreMiniCard span{color:var(--secondary);font-size:11px;display:block}.ui-shell--student .scoreMiniCard b{margin-top:10px;font-size:26px;line-height:1;display:block}.ui-shell--student .scoreInsights{z-index:1;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid;position:relative}.ui-shell--student .scoreInsight{background:#ffffff9e;border:1px solid #3c3c4314;border-radius:12px;padding:12px}.ui-shell--student .scoreInsight span{color:var(--secondary);font-size:11px;display:block}.ui-shell--student .scoreInsight b{margin-top:8px;font-size:18px;display:block}.ui-shell--student .scoreFoot{z-index:1;border-top:1px solid #3c3c431a;margin-top:16px;padding-top:14px;position:relative}.ui-shell--student .scoreCompare{justify-content:space-between;align-items:center;display:flex}.ui-shell--student .scoreCompareLabel{color:var(--secondary);font-size:12px}.ui-shell--student .scoreCompareValue{font-size:14px;font-weight:650}.ui-shell--student .scoreBar{background:#3c3c4317;border-radius:999px;height:8px;margin-top:10px;overflow:hidden}.ui-shell--student .scoreBar i{background:linear-gradient(90deg,#4f8e67 0%,#66a07a 100%);border-radius:999px;width:91%;height:100%;display:block}.ui-shell--student .scoreNote{color:var(--secondary);border-top:1px solid #3c3c431a;margin-top:14px;padding:14px 14px 0;font-size:12px;line-height:1.55}.ui-shell--student .composition{background:linear-gradient(180deg,#fff 0%,var(--blue-soft) 100%);border:1px solid var(--blue-border);border-radius:18px;overflow:hidden}.ui-shell--student .compHead{border-bottom:1px solid var(--line);background:#2767d809;align-items:center;height:54px;padding:0 18px;display:flex}.ui-shell--student .compHead h2{margin:0;font-size:17px}.ui-shell--student .compHead span{color:var(--secondary);margin-left:8px;font-size:12px}.ui-shell--student .compGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;display:grid}.ui-shell--student .compCard{background:#fff;border:1px solid #3c3c431a;border-radius:16px;flex-direction:column;min-height:148px;padding:16px;display:flex}.ui-shell--student .compTop{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.ui-shell--student .compName b{font-size:17px;display:block}.ui-shell--student .compName span{color:var(--secondary);margin-top:4px;font-size:12px;display:block}.ui-shell--student .compWeight{height:30px;color:var(--blue);background:#2767d812;border-radius:999px;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.ui-shell--student .compStats{grid-template-columns:1fr 1fr;gap:10px;margin-top:16px;display:grid}.ui-shell--student .compMini{background:#f8f9fc;border-radius:12px;padding:11px 12px}.ui-shell--student .compMini span{color:var(--secondary);font-size:11px;display:block}.ui-shell--student .compMini b{margin-top:6px;font-size:22px;line-height:1;display:block}.ui-shell--student .compResult{border-top:1px solid #3c3c431a;justify-content:space-between;align-items:end;margin-top:auto;padding-top:14px;display:flex}.ui-shell--student .compResult span{color:var(--secondary);font-size:12px}.ui-shell--student .compResult b{letter-spacing:-.05em;color:var(--green);font-size:34px;line-height:.9}.ui-shell--student .gradeGroup{background:linear-gradient(#fff 0%,#fbfcff 100%);border:1px solid #2767d81c;border-radius:16px;overflow:hidden}.ui-shell--student .gradeGroupHead{border-bottom:1px solid var(--line);background:#2767d809;align-items:center;gap:12px;min-height:64px;padding:12px 16px;display:flex}.ui-shell--student .gradeGroupHead b{font-size:16px}.ui-shell--student .gradeGroupHead span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--student .gradeGroupHead strong{margin-left:auto;font-size:24px}.ui-shell--student .gradeRow{border-bottom:1px solid var(--line2);cursor:pointer;grid-template-columns:minmax(0,1fr) 80px 120px;align-items:center;gap:12px;min-height:62px;padding:10px 16px 10px 66px;display:grid}.ui-shell--student .gradeRow:last-child{border-bottom:0}.ui-shell--student .gradeRow:hover{background:#f8fbff}.ui-shell--student .gradeRow b{font-size:14px}.ui-shell--student .gradeRow span{color:var(--secondary);margin-top:3px;font-size:12px;display:block}.ui-shell--student .gradeScore{text-align:right;font-size:22px;font-weight:750}.ui-shell--student .lowerGrade{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:16px;margin-top:24px;display:grid}.ui-shell--student .feedbackPanel,.ui-shell--student .attendancePanel{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.ui-shell--student .feedbackPanel{border-color:var(--amber-border);background:linear-gradient(#fff 0%,#fffdf9 100%)}.ui-shell--student .attendancePanel{border-color:var(--green-border);background:linear-gradient(#fff 0%,#f7fbf8 100%)}.ui-shell--student .panelHead{border-bottom:1px solid var(--line);background:#00000004;align-items:center;height:52px;padding:0 16px;display:flex}.ui-shell--student .panelHead h2{margin:0;font-size:16px}.ui-shell--student .panelHead span{color:var(--secondary);margin-left:8px;font-size:12px}.ui-shell--student .feedbackRow{border-bottom:1px solid var(--line2);cursor:pointer;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px 16px;display:grid}.ui-shell--student .feedbackRow:last-child{border-bottom:0}.ui-shell--student .feedbackRow:hover{background:#fffaf2}.ui-shell--student .feedbackRow b{font-size:14px;display:block}.ui-shell--student .feedbackRow p{color:var(--secondary);white-space:nowrap;text-overflow:ellipsis;margin:4px 0 0;font-size:12px;overflow:hidden}.ui-shell--student .feedbackRow time{color:var(--secondary);font-size:11px}.ui-shell--student .attendanceBody{padding:18px}.ui-shell--student .attScore{align-items:end;gap:8px;display:flex}.ui-shell--student .attScore b{letter-spacing:-.055em;font-size:54px;line-height:.85}.ui-shell--student .attScore span{color:var(--secondary);padding-bottom:6px;font-size:13px}.ui-shell--student .attBar{background:#ececef;border-radius:999px;height:8px;margin-top:15px;overflow:hidden}.ui-shell--student .attBar i{background:var(--green);width:94%;height:100%;display:block}.ui-shell--student .attMeta{color:var(--secondary);gap:14px;margin-top:12px;font-size:12px;display:flex}.ui-shell--student .attNote{background:var(--amber-soft);color:var(--amber);border-radius:10px;margin-top:14px;padding:11px 12px;font-size:12px}.ui-shell--student .attendanceHero{grid-template-columns:340px minmax(0,1fr);gap:16px;display:grid}.ui-shell--student .attMain{background:linear-gradient(180deg,#fff 0%,var(--green-soft) 100%);border:1px solid var(--green-border);border-radius:18px;padding:22px}.ui-shell--student .attMain .big{letter-spacing:-.07em;color:var(--green);margin-top:14px;font-size:84px;font-weight:800;line-height:.86}.ui-shell--student .attMain .big small{color:var(--secondary);letter-spacing:0;margin-left:4px;font-size:19px;font-weight:500}.ui-shell--student .attStats{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.ui-shell--student .attStat{background:#ffffffb8;border:1px solid #3c3c4314;border-radius:12px;padding:12px}.ui-shell--student .attStat span{color:var(--secondary);font-size:11px;display:block}.ui-shell--student .attStat b{margin-top:8px;font-size:24px;display:block}.ui-shell--student .attTimeline{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden}.ui-shell--student .attRow{border-bottom:1px solid var(--line);grid-template-columns:120px minmax(0,1fr) 120px;align-items:center;gap:12px;min-height:64px;padding:11px 16px;display:grid}.ui-shell--student .attRow:last-child{border-bottom:0}.ui-shell--student .attRow:hover{background:#fbfbfc}.ui-shell--student .attDate b{font-size:14px}.ui-shell--student .attDate span{color:var(--secondary);margin-top:3px;font-size:11px;display:block}.ui-shell--student .attCourse b{font-size:14px}.ui-shell--student .attCourse span{color:var(--secondary);margin-top:3px;font-size:11px;display:block}.ui-shell--student .attStatus{text-align:right}.ui-shell--student .workGrid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.ui-shell--student .workCard{border:1px solid var(--line);background:#fff;border-radius:16px;overflow:hidden}.ui-shell--student .workThumb{height:190px;position:relative;overflow:hidden}.ui-shell--student .workThumb.a{background:linear-gradient(135deg,#cbb9ee,#f0e9fb)}.ui-shell--student .workThumb.b{background:linear-gradient(135deg,#d8e7f5,#f8fbff)}.ui-shell--student .workThumb.c{background:linear-gradient(135deg,#f3d9c8,#fff6ee)}.ui-shell--student .workThumb.d{background:linear-gradient(135deg,#d3e8da,#f4fbf6)}.ui-shell--student .workThumb:before{content:"";border:1px solid #0000001f;border-radius:12px;position:absolute;inset:18px}.ui-shell--student .workThumb.a:after{content:"FLOW / SILENCE";letter-spacing:-.04em;font-size:24px;font-weight:800;position:absolute;bottom:34px;left:32px}.ui-shell--student .workThumb.b:after{content:"TYPE MOTION";font-size:24px;font-weight:800;position:absolute;top:34px;left:32px}.ui-shell--student .workThumb.c:after{content:"POSTER STUDY";font-size:22px;font-weight:800;position:absolute;bottom:34px;left:32px}.ui-shell--student .workThumb.d:after{content:"WEB MOTION";font-size:22px;font-weight:800;position:absolute;top:34px;left:32px}.ui-shell--student .workBody{padding:14px 16px 16px}.ui-shell--student .workBody h3{margin:0;font-size:15px}.ui-shell--student .workBody p{color:var(--secondary);margin:5px 0 0;font-size:12px}.ui-shell--student .workMeta{color:var(--secondary);align-items:center;margin-top:12px;font-size:11px;display:flex}.ui-shell--student .workMeta span:last-child{margin-left:auto}.ui-shell--student .workCard{border-color:var(--line);background:#fff}.ui-shell--student .workBody{background:linear-gradient(#fff 0%,#fbfbfc 100%)}.ui-shell--student .drawer{background:linear-gradient(180deg,#fff,var(--blue-soft));border-left:1px solid var(--line);z-index:30;grid-template-rows:auto 1fr auto;width:460px;transition:all .22s;display:grid;position:fixed;top:0;bottom:0;right:0;transform:translate(102%);box-shadow:-22px 0 50px #0000001f}.ui-shell--student .drawer.show{transform:translate(0)}.ui-shell--student .drawerHead{border-bottom:1px solid var(--line);align-items:center;gap:10px;height:72px;padding:0 18px;display:flex}.ui-shell--student .drawerHead h3{margin:0;font-size:16px}.ui-shell--student .drawerHead span{color:var(--secondary);margin-top:3px;font-size:11px;display:block}.ui-shell--student .close{background:#f1f1f3;border:0;border-radius:8px;width:34px;height:34px;margin-left:auto;font-size:18px}.ui-shell--student .drawerBody{padding:18px;overflow:auto}.ui-shell--student .drawerScore{align-items:end;gap:8px;display:flex}.ui-shell--student .drawerScore b{letter-spacing:-.065em;font-size:64px;line-height:.84}.ui-shell--student .drawerScore span{color:var(--secondary);padding-bottom:7px;font-size:13px}.ui-shell--student .rubric{border-top:1px solid var(--line);margin-top:18px}.ui-shell--student .rubricRow{border-bottom:1px solid var(--line2);grid-template-columns:1fr auto;align-items:center;min-height:48px;display:grid}.ui-shell--student .rubricRow span{color:var(--secondary);font-size:13px}.ui-shell--student .rubricRow b{font-size:15px}.ui-shell--student .feedbackBox{background:linear-gradient(180deg,#fff,var(--amber-soft));border:1px solid var(--amber-border);border-radius:12px;margin-top:18px;padding:14px;font-size:13px;line-height:1.65}.ui-shell--student .history{margin-top:18px}.ui-shell--student .historyItem{border-bottom:1px solid var(--line2);gap:10px;padding:10px 0;display:flex}.ui-shell--student .historyDot{background:var(--blue);border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.ui-shell--student .historyItem b{font-size:13px}.ui-shell--student .historyItem span{color:var(--secondary);margin-top:3px;font-size:11px;display:block}.ui-shell--student .drawerFoot{border-top:1px solid var(--line);gap:8px;padding:12px 16px;display:flex}.ui-shell--student .backdrop{opacity:0;pointer-events:none;z-index:20;background:#00000026;transition:all .2s;position:fixed;inset:0}.ui-shell--student .backdrop.show{opacity:1;pointer-events:auto}.ui-shell--student .mobileNav{display:none}@media (max-width:1200px){.ui-shell--student .homeGrid{grid-template-columns:1fr}.ui-shell--student .homeSide{grid-template-columns:1fr 1fr}.ui-shell--student .submitLayout,.ui-shell--student .heroGrid,.ui-shell--student .attendanceHero{grid-template-columns:1fr}}@media (max-width:980px){.ui-shell--student{--sidebar-w:76px;--page-x:20px}.ui-shell--student .brandcopy,.ui-shell--student .navbtn span,.ui-shell--student .userinfo{display:none}.ui-shell--student .brand{justify-content:center;padding-left:0;padding-right:0}.ui-shell--student .navbtn{justify-content:center;padding:0}.ui-shell--student .assignmentSummary{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.ui-shell--student{padding-bottom:62px;overflow:auto}.ui-shell--student .homeBottomGrid{grid-template-columns:1fr}.ui-shell--student{height:auto;display:block}.ui-shell--student .sidebar{display:none}.ui-shell--student .main{display:block}.ui-shell--student .topbar{z-index:10;padding:0 12px;position:sticky;top:0}.ui-shell--student .content{padding:18px 12px 80px}.ui-shell--student .pagehead h1{font-size:28px}.ui-shell--student .pagehead .meta{display:none}.ui-shell--student .homeBanner{grid-template-columns:1fr}.ui-shell--student .poster{order:-1;min-height:180px}.ui-shell--student .homeSide{grid-template-columns:1fr}.ui-shell--student .assignmentSummary{grid-template-columns:1fr 1fr}.ui-shell--student .assignmentToolbar{flex-wrap:wrap}.ui-shell--student .search{width:100%}.ui-shell--student .compGrid,.ui-shell--student .lowerGrade{grid-template-columns:1fr}.ui-shell--student .scoreMiniGrid{grid-template-columns:repeat(3,1fr)}.ui-shell--student .gradeRow{grid-template-columns:1fr 60px;padding-left:16px}.ui-shell--student .gradeRow>div:last-child{display:none}.ui-shell--student .attStats{grid-template-columns:repeat(3,1fr)}.ui-shell--student .attRow{grid-template-columns:100px 1fr}.ui-shell--student .attStatus{text-align:left;grid-column:2}.ui-shell--student .drawer{width:100%}.ui-shell--student .mobileNav{border-top:1px solid var(--line);z-index:15;background:#fff;grid-template-columns:repeat(4,1fr);height:58px;display:grid;position:fixed;bottom:0;left:0;right:0}.ui-shell--student .mobileNav button{color:var(--secondary);background:0 0;border:0;font-size:10px}.ui-shell--student .mobileNav button.on{color:var(--text);font-weight:700}}
