:root{color:#18263d;font-synthesis:none;background:#eef2f5;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:960px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{background:#fff;grid-template-columns:46% 54%;min-height:100vh;display:grid}.brand-panel{color:#fff;background:#17243b;flex-direction:column;justify-content:space-between;min-height:100vh;padding:58px 64px;display:flex;position:relative;overflow:hidden}.brand-panel:after{content:"";opacity:.12;pointer-events:none;background-image:linear-gradient(#fff 1px,#0000 1px),linear-gradient(90deg,#fff 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0}.brand-panel>*{z-index:1;position:relative}.eyebrow,.section-index{color:#8798af;letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.brand-panel h1{letter-spacing:-.045em;margin:0;font:600 68px/1 STSong,SimSun,serif}.brand-copy{color:#c9d2df;max-width:440px;margin:24px 0 0;font-size:19px;line-height:1.8}.record-mark{align-items:end;gap:16px;display:flex}.record-mark strong{font:500 52px/1 STSong,SimSun,serif}.record-mark span{color:#8798af;letter-spacing:.18em;padding-bottom:5px;font-size:11px}.login-panel{place-items:center;padding:64px;display:grid}form{width:min(390px,100%)}form h2{margin:16px 0 8px;font:600 38px/1.25 STSong,SimSun,serif}.muted{color:#69758a;margin:0;line-height:1.7}label{color:#43506a;gap:9px;margin-top:28px;font-size:14px;font-weight:600;display:grid}input{color:#17243b;background:#fff;border:1px solid #cfd6e1;border-radius:3px;outline:none;width:100%;padding:13px 14px;transition:border-color .15s,box-shadow .15s}input:focus{border-color:#2f5e8e;box-shadow:0 0 0 3px #2f5e8e20}.primary{color:#fff;background:#2f5e8e;border:0;border-radius:3px;width:100%;margin-top:28px;padding:14px;font-weight:700}.primary:hover{background:#244c76}.primary:disabled{cursor:wait;opacity:.6}.error{color:#a23b3b;margin:18px 0 -10px;font-size:14px}.text-button{color:#2f5e8e;background:0 0;border:0;padding:4px 0}.text-button:hover{text-decoration:underline}.loading{color:#69758a;place-items:center;min-height:100vh;display:grid}.workspace-shell{background:#eef2f5;grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.workspace-sidebar{color:#dbe4ec;background:#16243a;flex-direction:column;height:100vh;padding:34px 22px 24px;display:flex;position:sticky;top:0}.sidebar-brand{border-bottom:1px solid #ffffff18;padding:0 12px 30px}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand strong{color:#fff;letter-spacing:-.04em;font-size:24px}.sidebar-brand span{color:#8092a8;letter-spacing:.18em;margin-top:8px;font-size:9px;font-weight:700}.workspace-sidebar nav{flex:1;padding-top:28px}.workspace-sidebar nav>p{color:#71849b;letter-spacing:.14em;margin:0 12px 12px;font-size:10px;font-weight:700}.workspace-sidebar nav button,.nav-pending{color:#aebccc;text-align:left;background:0 0;border:0;border-radius:7px;justify-content:space-between;align-items:center;width:100%;min-height:44px;padding:0 12px;font-size:14px;display:flex}.workspace-sidebar nav button:before,.nav-pending:before{content:"";background:#50647d;border-radius:50%;width:5px;height:5px;margin-right:11px}.workspace-sidebar nav button span,.nav-pending span{flex:1}.workspace-sidebar nav button:hover{color:#fff;background:#ffffff0b}.workspace-sidebar nav button.active{color:#fff;background:#2d5c80;box-shadow:inset 3px 0 #75b6b0}.workspace-sidebar nav button.active:before{background:#9bd0ca}.nav-pending{opacity:.58;cursor:default}.nav-pending small{color:#95a5b7;background:#ffffff0b;border-radius:999px;padding:2px 6px;font-size:9px}.sidebar-account{border-top:1px solid #ffffff18;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:20px 6px 0;display:grid}.account-avatar{color:#17324b;background:#9bd0ca;border-radius:9px;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.sidebar-account strong,.sidebar-account div span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-account strong{color:#f5f8fb;font-size:13px}.sidebar-account div span{color:#8294a9;margin-top:3px;font-size:11px}.sidebar-account .text-button{color:#9cafc1;min-height:36px;padding:0 4px;font-size:12px}.workspace-content{min-width:0;padding:0 48px 72px}.workspace-topbar{border-bottom:1px solid #ced8e1;justify-content:space-between;align-items:center;height:112px;display:flex}.workspace-topbar p{color:#7890a7;letter-spacing:.16em;margin:0 0 8px;font-size:10px;font-weight:800}.workspace-topbar h1{color:#17263d;letter-spacing:-.04em;margin:0;font-size:30px;line-height:1.2}.workspace-topbar>span{color:#5d6f84;background:#f8fafc;border:1px solid #d2dce5;border-radius:999px;padding:7px 11px;font-size:12px}.workspace-error{margin:18px 0 0}.module-placeholder{background:#fff;border:1px solid #d5dee7;border-radius:12px;margin-top:28px;padding:32px}.module-placeholder h2{margin:0 0 10px}.module-placeholder p{color:#718096;margin:0}.module-loading{color:#718096;margin-top:32px}.group-submissions{gap:18px;margin-top:28px;display:grid}.group-summary{align-items:center;gap:12px;display:flex}.group-summary>span{color:#245f57;background:#dff0ea;border-radius:6px;padding:7px 10px;font-weight:800}.group-summary p{color:#718096;margin:0;font-size:13px}.group-assignment{background:#fff;border:1px solid #d5dee7;border-radius:12px;overflow:hidden}.group-assignment>header{border-bottom:1px solid #e0e6ec;justify-content:space-between;align-items:center;padding:24px 26px;display:flex}.group-assignment>header span{color:#2f668f;font-size:11px;font-weight:800}.group-assignment>header h2{margin:6px 0 0;font-size:21px}.group-assignment>header strong{color:#52667d;font-size:13px}.group-assignment table{border-collapse:collapse;width:100%}.group-assignment th,.group-assignment td{text-align:left;border-bottom:1px solid #edf1f4;padding:14px 26px}.group-assignment th{color:#7a899a;letter-spacing:.05em;background:#f8fafc;font-size:11px}.group-assignment td{color:#36485f;font-size:13px}.member-state{border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-block}.member-state.done{color:#226153;background:#dff0ea}.member-state.missing{color:#8a5b1c;background:#f6ead6}.submission-status{gap:22px;padding:28px 0 72px;display:grid}.submission-overview{background:#fff;border:1px solid #d5dee7;border-radius:12px;justify-content:space-between;align-items:end;gap:28px;padding:24px 26px;display:flex}.submission-overview label{width:min(360px,100%);margin:0}.submission-overview div{text-align:right;grid-template-columns:auto auto;align-items:baseline;gap:4px 14px;display:grid}.submission-overview div span,.submission-overview div small{color:#718096;font-size:12px}.submission-overview div strong{color:#183d60;font-size:25px}.submission-overview div small{grid-column:1/-1}.submission-groups{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.assignment-manager{gap:54px;padding:38px 0 80px;display:grid}.assignment-form-card,.assignment-list,.student-tasks section{background:#fff;border:1px solid #d8dee8;padding:34px}.assignment-form-card h2,.assignment-list h2,.student-tasks h3{margin:10px 0 24px;font:600 30px STSong,SimSun,serif}.assignment-form{width:100%}.assignment-title{margin-bottom:22px!important}.form-row{grid-template-columns:1fr 1fr 1.35fr;gap:22px;display:grid}.assignment-form label{margin-top:0}.assignment-note{display:block;margin-top:22px!important}.assignment-note textarea{color:#17243b;resize:vertical;background:#fff;border:1px solid #cfd6e1;border-radius:3px;width:100%;min-height:84px;padding:13px 14px}.assignment-note textarea:focus{border-color:#2f5e8e;outline:0;box-shadow:0 0 0 3px #2f5e8e20}select{color:#17243b;background:#fff;border:1px solid #cfd6e1;border-radius:3px;width:100%;padding:13px 14px}fieldset{border:0;border-top:1px solid #d8dee8;margin:30px 0 0;padding:24px 0 0}legend{padding:0 18px 0 0;font-weight:700}legend span{color:#69758a;margin-left:8px;font-size:12px}.roster-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.student-option{border:1px solid #e0e5ed;grid-template-columns:18px 1fr;align-items:start;gap:10px;padding:12px;font-weight:500}.student-option input{width:16px;margin:2px 0 0}.student-option small{color:#8792a4;margin-top:4px;font-weight:400;display:block}.form-actions{justify-content:flex-end;gap:12px;display:flex}.assignment-save{width:auto;min-width:140px}.secondary{color:#43506a;background:#fff;border:1px solid #cfd6e1;border-radius:3px;margin-top:28px;padding:13px 22px}.success{color:#29705a;font-size:14px}.list-heading{justify-content:space-between;align-items:start;display:flex}.list-heading>span{color:#69758a;font-size:13px}.task-line{border-top:1px solid #d8dee8;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;display:flex}.task-line strong,.task-line span{display:block}.task-line strong{margin-bottom:7px;font:600 20px STSong,SimSun,serif}.task-line span{color:#69758a;font-size:12px}.task-note{color:#43536a;white-space:pre-wrap;grid-column:1/-1;max-width:680px;margin:0;font-size:13px;line-height:1.65}.task-line-main>div{align-items:center;gap:10px;display:flex}.task-line-main .admin-task-state{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.admin-task-state.draft{color:#72561c;background:#fff3cf}.admin-task-state.published{color:#1f654e;background:#dff3ea}.admin-task-state.trashed{color:#69758a;background:#e9edf2}.admin-task-state.closed{color:#7a4650;background:#f4e5e7}.task-meta{text-align:right;align-items:center;gap:22px;display:flex}.task-actions{gap:8px;display:flex}.task-actions button{color:#2f5e8e;background:#fff;border:1px solid #cfd6e1;border-radius:3px;padding:7px 11px}.assignment-tabs{border-bottom:1px solid #d8dee8;gap:24px;display:flex}.assignment-tabs button{color:#708096;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 2px}.assignment-tabs button[aria-selected=true]{color:#163d63;border-color:#2f668f;font-weight:700}.task-actions .danger{color:#9b3f3f;border-color:#e0c3c3}.empty{color:#8792a4}.student-tasks{grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:20px;margin-top:28px;display:grid}.student-tasks section{border:1px solid #d5dee7;border-radius:12px;min-height:390px;padding:28px;box-shadow:0 16px 44px #2338500a}.student-tasks .current-tasks{border-top:4px solid #2f668f}.student-section-heading{justify-content:space-between;align-items:start;margin-bottom:22px;display:flex}.student-section-heading h3{letter-spacing:-.03em;margin:8px 0 0;font:700 25px/1.3 Microsoft YaHei,sans-serif}.student-section-heading>span{color:#607087;background:#edf2f6;border-radius:999px;padding:6px 10px;font-size:12px}.student-task-list{gap:14px;display:grid}.student-task-card{background:#f8fafc;border:1px solid #d9e1e9;border-radius:9px;grid-template-columns:minmax(0,1fr) auto;gap:14px 22px;padding:22px;display:grid;position:relative}.student-task-head{align-items:start;gap:16px;display:flex}.student-task-head h4{margin:10px 0 0;font-size:22px;line-height:1.2}.task-state{border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;display:inline-block}.task-state.submitted{color:#226153;background:#dff0ea}.task-state.pending{color:#8a5b1c;background:#f6ead6}.student-deadline{color:#53647a;place-self:end;margin:0;font-size:13px}.submission-panel{background:#fff;border:1px solid #dce4eb;border-radius:7px;grid-column:1;align-items:center;gap:12px;min-width:0;padding:13px 14px;display:flex}.submission-panel p{color:#718096;margin:0;font-size:13px}.submission-panel strong,.submission-panel span{min-width:0;display:block}.submission-panel strong{color:#24354e;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.submission-panel div>span{color:#718096;margin-top:4px;font-size:12px}.archive-mark{color:#2f668f;letter-spacing:.08em;background:#e5eef5;border-radius:4px;flex:none;padding:6px 7px;font-size:9px;font-weight:800}.upload-button{color:#fff;cursor:pointer;background:#2f668f;border:1px solid #2f668f;border-radius:5px;grid-column:2;place-self:center end;margin:0;padding:10px 16px;display:inline-block}.upload-button:hover{background:#244f70}.upload-button:focus-within{outline-offset:3px;outline:3px solid #5f87b1}.upload-button.disabled{cursor:wait;opacity:.6}.upload-button input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.upload-error{grid-column:1/-1;align-self:center;color:#a23b3b!important}.compact .student-task-card{padding:18px;display:block}.compact .student-deadline{margin-top:12px}.compact .submission-panel{margin-top:14px}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #5f87b1}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
