html,body{width:100%;height:100%}input::-ms-clear{display:none}input::-ms-reveal{display:none}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:#0000;font-family:sans-serif;line-height:1.15}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}address{font-style:normal;line-height:inherit;margin-bottom:1em}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{text-align:left;caption-side:bottom;padding-top:.75em;padding-bottom:.3em}input,button,select,optgroup,textarea{color:inherit;font-size:inherit;font-family:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{resize:vertical;overflow:auto}fieldset{border:0;min-width:0;margin:0;padding:0}legend{width:100%;max-width:100%;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal;margin-bottom:.5em;padding:0;display:block}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{color:#172033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--page-bg:#f4f6f8;--surface:#fff;--border:#e5e7eb;--text:#172033;--muted:#64748b;--primary:#2563eb;background:#f4f6f8;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{background:var(--page-bg);min-height:100vh}button,input{font:inherit}.page-heading{margin-bottom:20px}.page-heading h1{color:var(--text);letter-spacing:0;margin:0;font-size:24px;line-height:1.35}.page-heading p{color:var(--muted);margin:6px 0 0;font-size:14px}.page-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.surface{border:1px solid var(--border);background:var(--surface);border-radius:8px}@media (width<=767px){.page-heading h1{font-size:21px}.page-toolbar{flex-direction:column;align-items:stretch}}.icp-footer{color:#64748b;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;min-height:44px;padding:12px 20px;font-size:12px;display:flex}.icp-footer a{color:inherit;text-decoration:none}.icp-footer a:hover{color:#2563eb;text-decoration:underline}.icp-footer-records,.public-security-record{align-items:center;display:inline-flex}.icp-footer-records{flex-wrap:wrap;justify-content:center;gap:12px}.icp-footer>span:first-child,.icp-footer a{white-space:nowrap;flex:none}.public-security-record{gap:5px}.public-security-record img{object-fit:contain;flex:none;width:18px;height:20px}@media (width<=520px){.icp-footer{flex-direction:column;gap:4px}.icp-footer-records{flex-wrap:wrap;gap:4px 12px}}.change-password-modal .ant-input-affix-wrapper{width:100%}.privilege-code-modal .ant-modal-body{padding-top:8px}.storage-usage{color:#475569;border-right:1px solid #e5e7eb;align-items:center;gap:10px;width:230px;height:44px;padding:4px 14px 4px 0;display:flex}.storage-usage-icon{color:#0f766e;flex:none;font-size:19px}.storage-usage-content{flex:1;min-width:0}.storage-usage-values{white-space:nowrap;justify-content:space-between;align-items:center;gap:12px;font-size:12px;line-height:18px;display:flex}.storage-usage-values strong{color:#172033;font-weight:600}.storage-usage-progress{line-height:1;display:block}.storage-usage-progress .ant-progress-inner{display:block}.storage-usage-loading{background:linear-gradient(90deg,#eef1f5 25%,#f8fafc 50%,#eef1f5 75%) 0 0/200% 100%;border-radius:4px;width:176px;height:20px;animation:1.4s ease-in-out infinite storage-loading}.storage-usage-unavailable{white-space:nowrap;font-size:12px}.storage-usage-error,.storage-usage-error .storage-usage-icon{color:#94a3b8}@keyframes storage-loading{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=900px){.storage-usage{width:180px}.storage-usage-values{gap:6px}}@media (width<=620px){.storage-usage{border-right:0;width:auto;padding-right:10px}.storage-usage-content,.storage-usage-loading,.storage-usage-unavailable{display:none}}@media (prefers-reduced-motion:reduce){.storage-usage-loading{animation:none}}.admin-shell{min-height:100vh}.admin-sider{height:100vh;top:0;overflow:auto;box-shadow:1px 0 #ffffff0f;position:sticky!important}.brand{color:#fff;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;width:100%;height:64px;padding:0 18px;display:flex}.brand-mark{color:#172033;background:#fbbf24;border-radius:6px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:18px;font-weight:800;display:grid}.brand-name{letter-spacing:0;white-space:nowrap;font-size:16px;font-weight:700;overflow:hidden}.admin-header{z-index:10;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;height:64px;display:flex;position:sticky;top:0;padding:0 24px!important}.account-menu{color:#172033;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:5px 7px;display:flex}.admin-header-actions{align-items:center;gap:12px;min-width:0;display:flex}.account-menu:hover{background:#f3f4f6}.account-copy{align-items:center;gap:6px;display:flex}.account-copy .ant-tag{color:#64748b;background:#f1f5f9;margin:0}.admin-content{flex:1;min-width:0;padding:24px}.admin-footer{border-top:1px solid #e5e7eb;background:#fff!important;padding:0!important}@media (width<=767px){.admin-header{padding:0 12px!important}.admin-content{padding:16px 12px}.account-copy .ant-tag{display:none}}@media (width<=620px){.admin-header-actions{gap:2px}.account-copy{display:none}}.recent-task-overview{margin-bottom:20px;overflow:hidden}.recent-task-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:14px 18px;display:flex}.recent-task-header h2{color:#172033;letter-spacing:0;margin:0;font-size:17px}.recent-task-header p{color:#64748b;margin:4px 0 0;font-size:12px}.recent-task-loading,.recent-task-empty{margin:24px}.recent-task-item{border-bottom:1px solid #edf0f3;grid-template-columns:minmax(280px,.9fr) minmax(360px,1.4fr);gap:24px;min-width:0;padding:18px;display:grid}.recent-task-item:last-child{border-bottom:0}.recent-task-copy,.lecture-progress-area{min-width:0}.recent-task-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recent-task-title strong{color:#172033;font-size:14px}.recent-task-title .ant-tag{margin:0}.recent-task-meta{color:#7c8799;flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px;font-size:12px;display:flex}.recent-task-meta i{background:#d7dde5;width:1px;height:12px;margin:0 3px}.recent-task-progress{margin-top:12px}.recent-task-progress .ant-progress{max-width:420px;margin:0}.recent-task-counts{color:#64748b;flex-wrap:wrap;gap:6px 18px;margin-top:6px;font-size:12px;display:flex}.recent-task-counts strong{color:#334155}.recent-task-counts .has-pending,.recent-task-counts .has-pending strong{color:#b45309}.recent-task-error{color:#b42318;margin-top:12px;font-size:12px;display:block}.lecture-progress-heading{color:#475569;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px;font-size:12px;display:flex}.lecture-progress-legend{color:#7c8799;white-space:nowrap;align-items:center;gap:5px;display:flex}.lecture-progress-legend i{border-radius:2px;width:8px;height:8px;margin-left:5px}.lecture-progress-strip{flex-wrap:wrap;gap:5px;display:flex}.lecture-progress-cell{cursor:default;border:1px solid #0000;border-radius:5px;flex:0 0 30px;place-items:center;width:30px;height:30px;font-size:11px;font-weight:650;display:grid}.lecture-progress-cell.is-complete,.lecture-progress-legend .is-complete{color:#fff;background:#137960}.lecture-progress-cell.is-partial,.lecture-progress-legend .is-partial{color:#7c4a03;background:#fef3c7;border-color:#f2c66d}.lecture-progress-cell.is-empty,.lecture-progress-legend .is-empty{color:#7c8799;background:#f1f3f5;border-color:#d8dee6}@media (width<=960px){.recent-task-item{grid-template-columns:1fr;gap:16px}}@media (width<=520px){.recent-task-header{align-items:flex-start}.recent-task-item{padding:16px 14px}.lecture-progress-heading{flex-direction:column;align-items:flex-start}}.dashboard-intro{background:#fff;border:1px solid #dbe3ec;border-left:4px solid #2563eb;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;min-height:112px;margin-bottom:20px;padding:22px 24px;display:flex}.dashboard-eyebrow{color:#2563eb;font-size:13px;font-weight:600}.dashboard-intro h1{color:#172033;letter-spacing:0;margin:3px 0 2px;font-size:25px}.dashboard-quote{color:#64748b;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-size:14px;display:flex}.dashboard-quote cite{color:#94a3b8;white-space:nowrap;font-size:13px;font-style:normal}.recent-section{overflow:hidden}.recent-section>header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;min-height:72px;padding:14px 18px;display:flex}.recent-section h2{color:#172033;letter-spacing:0;margin:0;font-size:17px}.recent-section p{color:#64748b;margin:4px 0 0;font-size:12px}.recent-section>.ant-skeleton,.recent-section>.ant-empty{margin:24px}@media (width<=600px){.dashboard-intro{flex-direction:column;align-items:flex-start}}.upload-radio-group{width:100%;display:grid}.upload-radio-group.three-options{grid-template-columns:repeat(3,minmax(0,1fr))}.upload-radio-group .ant-radio-button-wrapper{text-align:center;min-width:0}@media (width<=600px){.upload-radio-group.three-options{grid-template-columns:repeat(3,minmax(0,1fr))}}.file-search-form{border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;grid-template-columns:minmax(200px,1.6fr) minmax(260px,2fr) repeat(2,minmax(120px,1fr)) auto;align-items:end;gap:12px;margin-bottom:12px;padding:14px 0 16px;display:grid}.file-search-form .ant-form-item{min-width:0;margin-bottom:0}.file-search-form .ant-picker,.file-search-form .ant-select{width:100%}.file-search-actions{min-width:max-content}.file-action-toolbar{justify-content:flex-end}@media (width<=1200px){.file-search-form{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.file-search-form{grid-template-columns:1fr}}.login-page{background:#fff;grid-template-columns:minmax(420px,1.05fr) minmax(420px,.95fr);min-height:100vh;display:grid}.login-brand-panel{color:#fff;background:#172033;flex-direction:column;justify-content:space-between;min-height:100vh;padding:40px clamp(40px,7vw,104px);display:flex;position:relative;overflow:hidden}.login-brand-panel:after{content:"";pointer-events:none;opacity:.13;background-image:linear-gradient(#ffffff38 1px,#0000 1px),linear-gradient(90deg,#ffffff38 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.login-brand,.workspace-visual,.login-brand-caption{z-index:1;position:relative}.login-brand{align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex}.login-brand-mark{color:#172033;background:#fbbf24;border-radius:6px;place-items:center;width:38px;height:38px;font-size:20px;font-weight:800;display:grid}.workspace-visual{aspect-ratio:1.45;background:#f8fafc;border:1px solid #ffffff2e;border-radius:8px;width:min(100%,560px);transform:perspective(900px)rotateY(-5deg)rotateX(2deg);box-shadow:0 28px 70px #00000047}.visual-bar{background:#fff;border-bottom:1px solid #e5e7eb;align-items:center;gap:7px;height:9%;padding-left:4%;display:flex}.visual-bar i{background:#cbd5e1;border-radius:50%;width:7px;height:7px}.visual-bar i:first-child{background:#ef4444}.visual-bar i:nth-child(2){background:#f59e0b}.visual-bar i:nth-child(3){background:#22c55e}.visual-body{height:91%;display:flex}.visual-nav{background:#253147;width:20%}.visual-content{flex:1;padding:7%}.visual-metrics{grid-template-columns:repeat(3,1fr);gap:4%;display:grid}.visual-metrics b{background:#fff;border:1px solid #e5e7eb;border-top:4px solid #2563eb;border-radius:4px;height:52px}.visual-metrics b:nth-child(2){border-top-color:#16a34a}.visual-metrics b:nth-child(3){border-top-color:#d97706}.visual-table{background:#fff;border:1px solid #e5e7eb;border-radius:4px;margin-top:7%;padding:2% 5%}.visual-table span{border-bottom:1px solid #e5e7eb;height:34px;display:block}.visual-table span:last-child{border-bottom:0}.login-brand-caption{color:#cbd5e1;margin:0;font-size:14px}.login-form-panel{background:#fff;place-items:center;min-width:0;min-height:100vh;padding:48px;display:grid}.login-form-wrap{width:100%;min-width:0;max-width:400px}.login-heading{align-items:flex-start;gap:14px;margin-bottom:32px;display:flex}.login-heading>.anticon{color:#2563eb;margin-top:4px;font-size:26px}.login-heading h1{color:#172033;letter-spacing:0;margin:0;font-size:28px;line-height:1.3}.login-heading p{color:#64748b;margin:8px 0 0;font-size:14px}.login-alert{margin-bottom:20px}.login-form-wrap .ant-btn{height:44px;margin-top:4px}.login-footer{color:#94a3b8;margin:28px 0 0;padding:0}@media (width<=860px){.login-page{grid-template-columns:1fr}.login-brand-panel{min-height:210px;padding:26px 28px}.workspace-visual{display:none}.login-form-panel{min-height:calc(100vh - 210px);padding:40px 24px}}.teaching-difficulty-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;display:grid}.teaching-difficulty-options .ant-radio-button-wrapper{text-align:center;border-inline-start-width:1px;border-radius:6px}.teaching-difficulty-options .ant-radio-button-wrapper:before{display:none}.teaching-task-date-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=600px){.teaching-task-date-row{grid-template-columns:1fr;gap:0}}.task-progress-chart-scroll{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;width:100%;overflow:auto hidden}.task-progress-legend{color:#64748b;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:8px;font-size:12px;display:flex}.task-progress-legend span{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.task-progress-legend i{flex:none;display:inline-block}.legend-box{border-radius:3px;width:12px;height:12px}.legend-box.is-complete{background:#137960}.legend-box.is-incomplete{background:#f2f1ed;border:1px solid #cbd5e1}.legend-line{border-radius:4px;width:14px;height:7px}.legend-line.is-complete{background:#137960}.legend-line.is-partial{background:#9edbc8}.legend-line.is-not-started{background:#d3d0c8}.teaching-progress-modal .ant-modal-body{min-width:0}.progress-task-name{color:#64748b;margin-bottom:18px;font-size:13px}.task-progress-overview{align-items:center;gap:14px;min-height:88px;margin-bottom:18px;display:flex}.task-progress-overview .ant-progress-text{color:#111827;font-size:17px;font-weight:650}.task-progress-metric{background:#f5f6f8;border-radius:8px;flex-direction:column;justify-content:center;width:112px;min-height:72px;padding:11px 14px;display:flex}.task-progress-metric span{color:#657087;margin-bottom:4px;font-size:12px}.task-progress-metric strong{color:#111827;font-size:20px;line-height:1.2}@media (width<=680px){.task-progress-overview{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.task-progress-overview .ant-progress{grid-column:1/-1}.task-progress-metric{width:auto;min-width:0;padding-inline:10px}.task-progress-metric strong{font-size:17px}}.teaching-task-toolbar{justify-content:flex-end}.assign-roles-modal .ant-select,.create-user-modal .ant-select{width:100%}
