html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}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]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}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{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}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{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}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{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[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}mark{padding:.2em;background-color:#feffe6}:root{--font-family-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;--font-family-code: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-size-caption: 13px;--font-size-body: 14px;--font-size-control: 15px;--font-size-content: 16px;--font-size-section: 18px;--font-size-subtitle: 20px;--font-size-title: 24px;--font-size-stat: 28px;--font-size-stat-lg: 32px;--font-size-display: 36px;--line-height-caption: 20px;--line-height-body: 22px;--line-height-control: 24px;--line-height-content: 28px;--line-height-section: 26px;--line-height-title: 32px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--table-cell-padding-y: 16px;--table-cell-padding-x: 20px;--table-row-height: 64px}:root{font-family:var(--font-family-ui);font-size:var(--font-size-body);line-height:var(--line-height-body);color:#172033;background:#f3f5f8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:1180px;background:#f3f5f8}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{--side-width: 244px;display:grid;grid-template-columns:var(--side-width) 1fr;min-height:100vh;transition:grid-template-columns .22s ease}.app-shell.collapsed{--side-width: 76px}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--side-width);display:flex;flex-direction:column;overflow:hidden;color:#dbe4f1;background:#111a2c;border-right:1px solid rgba(255,255,255,.06);transition:width .22s ease}.brand{height:72px;display:flex;align-items:center;gap:12px;padding:0 19px;border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap}.brand-mark{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:11px;color:#fff;font-size:19px;background:linear-gradient(145deg,#3b82f6,#1d4ed8);box-shadow:0 8px 24px #2563eb57}.brand-copy{display:flex;flex-direction:column;line-height:1.15}.brand-copy strong{color:#fff;font-size:var(--font-size-content);letter-spacing:.06em}.brand-copy small{margin-top:5px;color:#9eabc0;font-size:var(--font-size-caption);letter-spacing:.06em}.side-nav{flex:1;padding:12px 10px;overflow:auto}.nav-group{padding:20px 12px 7px;color:#64728a;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.15em}.nav-item{position:relative;width:100%;height:42px;display:flex;align-items:center;gap:12px;padding:0 12px;margin:3px 0;border:0;border-radius:9px;color:#9eabc0;background:transparent;text-align:left;white-space:nowrap;transition:all .16s ease}.nav-item .anticon{flex:0 0 20px;font-size:17px}.nav-item:hover{color:#fff;background:#ffffff0d}.nav-item.active{color:#fff;background:linear-gradient(90deg,#2563eb47,#2563eb1f)}.nav-item.active:before{content:"";position:absolute;left:-10px;width:3px;height:23px;border-radius:0 3px 3px 0;background:#4c8dff}.collapse-button{height:50px;display:flex;align-items:center;gap:12px;padding:0 22px;color:#76849b;border:0;border-top:1px solid rgba(255,255,255,.07);background:transparent;white-space:nowrap}.main-column{grid-column:2;min-width:0}.topbar{position:sticky;top:0;z-index:10;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#fffffff0;border-bottom:1px solid #e5e9f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-title{display:flex;align-items:center;gap:9px;font-size:var(--font-size-caption)}.topbar-title .crumb{color:#8b96a8}.topbar-title .divider{color:#ced4de}.topbar-title strong{font-weight:600}.topbar-actions{display:flex;align-items:center;gap:18px}.top-search{width:250px;height:36px;display:flex;align-items:center;gap:9px;padding:0 10px;color:#96a0b0;font-size:var(--font-size-caption);background:#f5f6f8;border:1px solid #eceff3;border-radius:8px}.top-search span:nth-child(2){flex:1}.top-search kbd{padding:2px 5px;color:#8b95a5;font-size:var(--font-size-caption);background:#fff;border:1px solid #dfe3e9;border-radius:4px}.icon-button{position:relative;width:35px;height:35px;border:0;border-radius:50%;background:#f4f6f8}.notification-dot{position:absolute;top:7px;right:8px;width:6px;height:6px;border:2px solid white;border-radius:50%;background:#ef4444}.bell{font-size:var(--font-size-section)}.profile{display:flex;align-items:center;gap:9px;padding-left:17px;border-left:1px solid #e7eaf0}.avatar{width:36px;height:36px;display:grid;place-items:center;color:#fff;font-size:var(--font-size-caption);border-radius:10px;background:linear-gradient(145deg,#394962,#1f2937)}.profile-copy{display:flex;flex-direction:column}.profile-copy strong{font-size:var(--font-size-caption)}.profile-copy span{margin-top:2px;color:#8b95a5;font-size:var(--font-size-caption)}.header-logout{height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 10px;color:#6f7b8d;font-size:var(--font-size-caption);border:1px solid #e1e5eb;border-radius:8px;background:#fff;transition:.16s}.header-logout:hover{color:#c04444;border-color:#e8b8b8;background:#fff7f7}.header-logout.password-entry:hover,.student-logout.password-entry:hover{color:#315ee8;border-color:#b9c9f0;background:#f7f9ff}.profile-trigger{cursor:pointer;padding:4px 8px;border:1px solid transparent;border-radius:10px;transition:.16s}.profile-trigger:hover{border-color:#dbe2ea;background:#f8fafc}.profile-caret{margin-left:2px;color:#a8b2bf;font-size:var(--font-size-caption)}.theme-dark .profile-trigger:hover{border-color:#33415a;background:#1b2536}.theme-dark .profile-caret{color:#7f8da1}.header-logout:disabled{cursor:wait;opacity:.6}.page-container{padding:28px 30px 42px}.page-container.content-page-container{padding-top:14px;padding-right:15px;padding-left:15px}.page-stack{display:flex;flex-direction:column;gap:22px;width:100%;max-width:min(2200px,96vw);margin:0 auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between}.eyebrow{display:block;margin-bottom:6px;color:#2563eb;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.22em}.page-heading h1{margin:0;color:#172033;font-size:var(--font-size-title);line-height:1.2;letter-spacing:-.02em}.page-heading p{margin:7px 0 0;color:#7a8596;font-size:var(--font-size-caption)}.heading-actions{display:flex;gap:10px}.heading-actions .ant-btn{height:38px;border-radius:8px}.course-strip{min-height:84px;display:flex;align-items:center;padding:14px 20px;background:#fff;border:1px solid #e5e9f0;border-radius:12px;box-shadow:0 3px 12px #17203309}.course-identity{display:flex;align-items:center;gap:12px}.course-symbol{width:43px;height:43px;display:grid;place-items:center;color:#fff;font-weight:700;border-radius:10px;background:linear-gradient(145deg,#2563eb,#1d4ed8)}.course-identity>div:last-child{display:flex;flex-direction:column}.course-identity>div:last-child>span{padding-left:11px;color:#9aa3b2;font-size:var(--font-size-caption)}.course-identity .ant-select-selector{padding-left:10px!important;font-size:var(--font-size-body);font-weight:700}.course-meta{display:flex;align-items:center;gap:10px;margin-left:18px;color:#8390a2;font-size:var(--font-size-caption)}.course-meta i{width:3px;height:3px;border-radius:50%;background:#b8c0cc}.mini-stats{display:flex;align-items:stretch;gap:0;margin-left:auto}.mini-stats div{min-width:78px;display:flex;flex-direction:column;align-items:center;padding:0 18px;border-left:1px solid #edf0f4}.mini-stats strong{color:#223047;font-size:var(--font-size-section)}.mini-stats span{color:#98a2b1;font-size:var(--font-size-caption)}.studio-grid{min-height:660px;display:grid;grid-template-columns:minmax(300px,370px) minmax(560px,1fr);background:#fff;border:1px solid #e3e7ee;border-radius:12px;overflow:hidden;box-shadow:0 4px 18px #131e310a}.panel-title{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid #e8ebf0}.panel-title>div{display:flex;flex-direction:column}.panel-title strong{font-size:var(--font-size-caption)}.panel-title span{margin-top:3px;color:#98a1af;font-size:var(--font-size-caption)}.panel-title button{width:27px;height:27px;display:grid;place-items:center;border:1px solid #e0e5ec;border-radius:7px;color:#4b5b73;background:#fff}.content-list-panel{min-width:0;display:flex;flex-direction:column;border-right:1px solid #e8ebf0}.list-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:13px 14px;border-bottom:1px solid #e8ebf0}.input-search{width:100%;height:36px;display:flex;align-items:center;gap:8px;padding:0 10px;color:#a2aab7;background:#fff;border:1px solid #e1e5eb;border-radius:8px;transition:border-color .15s,box-shadow .15s,color .15s}.input-search:hover{border-color:#cfd8e7}.input-search:focus-within{color:#2563eb;border-color:#91b3f5;box-shadow:0 0 0 3px #2563eb1a}.input-search input{width:100%;border:0;outline:0;color:#344158;font-size:var(--font-size-caption);background:transparent}.input-search input::placeholder{color:#aab3c0}.input-clear{flex:0 0 auto;width:18px;height:18px;display:grid;place-items:center;padding:0;color:#bcc4d0;font-size:var(--font-size-caption);border:0;border-radius:50%;background:transparent;cursor:pointer;transition:color .15s,background .15s}.input-clear:hover{color:#64748b;background:#f1f3f6}.input-clear .anticon{font-size:12px}.list-toolbar .ant-segmented{align-self:flex-start;font-size:var(--font-size-caption)}.list-summary{height:44px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 14px;background:#fbfcfd;border-bottom:1px solid #edf0f4}.list-summary strong{font-size:var(--font-size-caption)}.list-summary span{color:#98a1af;font-size:var(--font-size-caption);white-space:nowrap}.content-outline{flex:1;padding:8px 10px 16px;overflow:auto}.outline-group+.outline-group{margin-top:4px}.outline-group-head{display:flex;align-items:center;gap:8px;height:40px;padding:0 6px 0 4px;border-radius:8px}.outline-group-head:hover{background:#f7f9fc}.outline-toggle{width:22px;height:22px;display:grid;place-items:center;padding:0;color:#8b95a5;font-size:var(--font-size-caption);border:0;border-radius:5px;background:transparent}.outline-toggle:hover{color:#2563eb;background:#eef3ff}.outline-group-title{flex:1;min-width:0;display:flex;align-items:baseline;gap:9px}.outline-group-title strong{color:#27354a;font-size:var(--font-size-caption)}.outline-group-title small{color:#9aa3b1;font-size:var(--font-size-caption)}.outline-add{width:22px;height:22px;display:grid;place-items:center;padding:0;color:#95a0b0;font-size:var(--font-size-caption);border:1px solid transparent;border-radius:5px;background:transparent}.outline-add:hover{color:#2563eb;background:#fff;border-color:#dbe3ef}.outline-items{padding:2px 0 6px 18px}.outline-empty{margin:0 0 8px;padding:14px;color:#9aa3b1;font-size:var(--font-size-caption);text-align:center;border:1px dashed #e3e8f0;border-radius:9px}.content-card{position:relative;display:grid;grid-template-columns:14px 34px 1fr 24px;align-items:start;gap:8px;padding:12px 8px;margin-bottom:8px;border:1px solid #e9ecf1;border-radius:9px;background:#fff;transition:all .15s ease}.content-card:hover{border-color:#cfd8e7;box-shadow:0 4px 12px #1b2b460d}.content-card.selected{border-color:#9bbcf8;box-shadow:0 0 0 2px #2563eb14}.drag-handle{padding-top:9px;color:#c2c8d1}.type-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;font-size:var(--font-size-body)}.card-main{min-width:0}.card-title-row{display:flex;align-items:center;gap:7px}.type-label{font-size:var(--font-size-caption);font-weight:700;letter-spacing:.04em}.status-pill{padding:2px 6px;color:#64748b;font-size:var(--font-size-caption);border-radius:8px;background:#f1f5f9}.status-pill.published{color:#15803d;background:#ecfdf3}.card-main h3{margin:5px 0 4px;font-size:var(--font-size-caption);line-height:1.3}.card-main p{margin:0;overflow:hidden;color:#818b9b;font-size:var(--font-size-caption);line-height:1.55;white-space:nowrap;text-overflow:ellipsis}.card-meta{display:flex;gap:15px;margin-top:7px;color:#a0a8b5;font-size:var(--font-size-caption)}.card-meta span{display:flex;align-items:center;gap:4px}.more-button{width:27px;height:27px;color:#8893a4;border:0;border-radius:6px;background:transparent}.more-button:hover{background:#f1f3f6}.no-results{height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#a0a8b5}.no-results .anticon{margin-bottom:14px;font-size:24px}.no-results strong{color:#556175;font-size:var(--font-size-caption)}.no-results span{margin-top:5px;font-size:var(--font-size-caption)}.preview-panel{min-width:0;display:flex;flex-direction:column;background:#fff}.preview-header{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #e8ebf0}.preview-header>div{display:flex;flex-direction:column}.preview-header span{color:#9ba4b2;font-size:var(--font-size-caption)}.preview-header strong{font-size:var(--font-size-section);font-weight:700;letter-spacing:.2px}.preview-header .ant-btn{font-size:var(--font-size-caption);border-radius:6px}.preview-body{flex:1;padding:28px 25px;overflow:auto}.preview-inner{width:100%;max-width:880px;margin:0 auto}.preview-kicker{font-size:var(--font-size-caption);font-weight:700;letter-spacing:.12em}.preview-body h2{margin:8px 0 10px;color:#1d293d;font-size:var(--font-size-subtitle);line-height:1.35}.preview-body .lead{color:#68758a;font-size:var(--font-size-caption);line-height:1.7}.preview-divider{width:28px;height:2px;margin:22px 0;background:#2563eb}.preview-body>p:not(.lead){color:#4d5a6f;font-size:var(--font-size-caption);line-height:1.9}.formula{margin:20px 0;padding:19px;color:#1d4ed8;font-family:Georgia,serif;font-size:var(--font-size-title);text-align:center;background:#f5f8ff;border-radius:8px}.preview-body pre{margin-top:20px;padding:14px;overflow:auto;color:#dbeafe;font:10px/1.7 ui-monospace,SFMono-Regular,monospace;background:#172033;border-radius:8px}.test-box{display:flex;align-items:center;gap:10px;margin-top:20px;padding:12px;color:#15803d;background:#f0fdf4;border:1px solid #dcfce7;border-radius:8px}.test-box>div{display:flex;flex-direction:column}.test-box strong{font-size:var(--font-size-caption)}.test-box span{margin-top:2px;color:#659472;font-size:var(--font-size-caption)}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:25px}.tag-row span{padding:4px 8px;color:#66758b;font-size:var(--font-size-caption);background:#f3f5f8;border-radius:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.markdown-toolbar{min-height:36px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 8px;color:#667287;font-size:var(--font-size-caption);background:#f7f8fa;border:1px solid #d9d9d9;border-bottom:0;border-radius:6px 6px 0 0}.md-tool-button{width:27px;height:25px;display:grid;place-items:center;padding:0;color:#5b6879;font-size:var(--font-size-caption);line-height:1;border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer;transition:color .15s,background .15s,border-color .15s}.md-tool-button:hover{color:#2563eb;background:#fff;border-color:#dbe3ef}.md-tool-button:active{background:#eef3ff}.md-tool-button:disabled{color:#b9c1cc;cursor:not-allowed;background:transparent;border-color:transparent}.md-tool-button .anticon{font-size:12px}.md-toolbar-split{width:1px;height:14px;margin:0 5px;background:#e1e5ec}.markdown-input{width:100%;display:block;padding:11px 13px;color:#27354a;font:12px/1.75 ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;border:1px solid #d9d9d9;border-radius:0 0 6px 6px;outline:none;resize:vertical}.markdown-input:focus{border-color:#91b3f5;box-shadow:0 0 0 2px #2563eb14}.markdown-input::placeholder{color:#aeb6c2}.markdown-editor.disabled .markdown-input{color:#8b95a4;background:#f6f7f9}.markdown-footer{display:flex;align-items:center;justify-content:space-between;margin-top:6px;color:#9aa3b1;font-size:var(--font-size-caption)}.drawer-footer{display:flex;align-items:center;justify-content:space-between}.drawer-footer>span{color:#9aa3b1;font-size:var(--font-size-caption)}.drawer-footer>div{display:flex;gap:8px}.content-editor-page{width:100%;max-width:100%}.content-editor-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.content-editor-heading h1{margin:0;color:#172033;font-size:var(--font-size-title);line-height:1.2}.content-editor-heading p{margin:7px 0 0;color:#7a8596;font-size:var(--font-size-caption)}.editor-back{display:flex;align-items:center;gap:6px;margin:0 0 17px;padding:0;color:#748095;font-size:var(--font-size-caption);border:0;background:transparent}.editor-back:hover{color:#2563eb}.content-editor-actions{display:flex;align-items:center;gap:9px}.content-editor-actions>span{margin-right:6px;color:#9aa3b1;font-size:var(--font-size-caption)}.content-editor-actions .ant-btn{height:38px;border-radius:8px}.content-editor-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;gap:20px}.content-editor-form-panel,.content-editor-preview{background:#fff;border:1px solid #e3e7ee;border-radius:13px;box-shadow:0 4px 18px #131e310a}.content-editor-form-panel{padding:26px 28px 12px}.editor-section-title{display:flex;align-items:center;gap:11px;margin-bottom:21px;padding-bottom:15px;border-bottom:1px solid #edf0f4}.editor-section-title>span{width:30px;height:30px;display:grid;place-items:center;color:#2563eb;font-size:var(--font-size-caption);font-weight:700;background:#edf3ff;border-radius:8px}.editor-section-title>div{display:flex;flex-direction:column}.editor-section-title strong{color:#27354a;font-size:var(--font-size-caption)}.editor-section-title small{margin-top:3px;color:#98a2b1;font-size:var(--font-size-caption)}.editor-section-title.body-title{margin-top:8px}.content-editor-form-panel .ant-form-item-label>label{color:#526075;font-size:var(--font-size-caption);font-weight:600}.content-editor-preview{position:sticky;top:94px;overflow:hidden}.editor-preview-head{height:57px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#fafbfc;border-bottom:1px solid #e8ebf0}.editor-preview-head>span{color:#536176;font-size:var(--font-size-caption);font-weight:600}.editor-preview-head em{padding:3px 8px;color:#8a6670;font-size:var(--font-size-caption);font-style:normal;background:#f6edf0;border-radius:9px}.editor-preview-head em.published{color:#16815a;background:#eaf9f2}.editor-preview-body{min-height:570px;padding:31px 29px}.preview-type{display:flex;align-items:center;gap:6px;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.08em}.editor-preview-body h2{margin:10px 0 11px;color:#1d293d;font-size:var(--font-size-title);line-height:1.35}.preview-summary{margin:0;color:#68758a;font-size:var(--font-size-caption);line-height:1.75}.preview-copy{color:#4d5a6f;font-size:var(--font-size-caption);line-height:1.9;white-space:pre-wrap}.editor-preview-body pre{margin-top:20px;padding:15px;overflow:auto;color:#dbeafe;font:10px/1.75 ui-monospace,SFMono-Regular,monospace;background:#172033;border-radius:8px}.theme-dark .content-editor-heading h1{color:#edf3fb}.theme-dark .content-editor-heading p,.theme-dark .editor-back,.theme-dark .content-editor-actions>span{color:#8997aa}.theme-dark .content-editor-form-panel,.theme-dark .content-editor-preview{color:#d8e1ed;background:#151e2b;border-color:#2a3546;box-shadow:0 6px 20px #0003}.theme-dark .editor-section-title{border-color:#2a3546}.theme-dark .editor-section-title>span{color:#9bb6ff;background:#203154}.theme-dark .editor-section-title strong,.theme-dark .editor-preview-head>span{color:#e3eaf4}.theme-dark .editor-section-title small{color:#7f8da1}.theme-dark .editor-preview-head{background:#121a26;border-color:#2a3546}.theme-dark .editor-preview-body h2{color:#f0f4fa}.theme-dark .preview-summary,.theme-dark .preview-copy{color:#9aa8bb}.theme-dark .markdown-toolbar{color:#9caabe;background:#111926;border-color:#364256}.theme-dark .md-tool-button{color:#93a2b8}.theme-dark .md-tool-button:hover{color:#8ab0ff;background:#1a2434;border-color:#33415a}.theme-dark .md-tool-button:active{background:#1f2c40}.theme-dark .md-toolbar-split{background:#2b3749}.theme-dark .markdown-input{color:#dbe4f0;background:#0f1622;border-color:#364256}.theme-dark .markdown-input:focus{border-color:#4b6ba8;box-shadow:0 0 0 2px #5a8cf01f}.theme-dark .markdown-input::placeholder{color:#69768a}.theme-dark .markdown-footer{color:#78859a}.theme-dark .content-editor-form-panel .ant-form-item-label>label{color:#b9c5d5}@media(max-width:1400px){.content-editor-layout{gap:18px}.content-editor-form-panel{padding:23px 24px 10px}}@media(max-width:1200px){.content-editor-layout{grid-template-columns:minmax(0,1fr)}.content-editor-preview{position:static}}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric-card{position:relative;display:flex;flex-direction:column;padding:21px;overflow:hidden;background:#fff;border:1px solid #e5e9ef;border-radius:11px}.metric-accent{position:absolute;inset:0 auto 0 0;width:3px}.metric-card>span:nth-child(2){color:#7c8798;font-size:var(--font-size-caption)}.metric-card strong{margin-top:9px;font-size:var(--font-size-title)}.metric-card small{margin-top:3px;color:#98a1ae}.empty-panel{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9ca5b3;background:#fff;border:1px solid #e5e9ef;border-radius:12px}.empty-panel>.anticon{font-size:32px;color:#4e83e6}.empty-panel h3{margin:15px 0 6px;color:#354258;font-size:var(--font-size-control)}.empty-panel p{margin:0 0 16px;font-size:var(--font-size-caption)}.empty-panel a{color:#2563eb;font-size:var(--font-size-caption)}@media(max-width:1280px){.studio-grid{grid-template-columns:320px minmax(440px,1fr)}.mini-stats div{min-width:63px;padding:0 10px}.top-search{display:none}}.student-shell{min-height:100vh;color:#1c2940;background:#f5f7fb}.student-header{position:sticky;top:0;z-index:30;height:68px;display:grid;grid-template-columns:245px 1fr auto;align-items:center;padding:0 34px;background:#fffffff5;border-bottom:1px solid #e7ebf2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.student-brand{display:flex;align-items:center;gap:10px;padding:0;border:0;background:transparent;text-align:left}.student-brand>span{width:36px;height:36px;display:grid;place-items:center;color:#fff;border-radius:10px;background:linear-gradient(145deg,#3569ef,#2148c4);box-shadow:0 7px 16px #315ee838}.student-brand>div{display:flex;flex-direction:column}.student-brand strong{font-size:var(--font-size-control);letter-spacing:.06em}.student-brand small{margin-top:2px;color:#909aaa;font-size:var(--font-size-caption)}.student-nav{height:100%;display:flex;justify-content:center;gap:4px}.student-nav button{position:relative;height:100%;display:flex;align-items:center;gap:7px;padding:0 18px;color:#69768a;font-size:var(--font-size-caption);border:0;background:transparent}.student-nav button:hover{color:#315ee8}.student-nav button.active{color:#254fd3;font-weight:600}.student-nav button.active:after{content:"";position:absolute;inset:auto 17px 0;height:3px;border-radius:3px 3px 0 0;background:#315ee8}.student-tools{display:flex;align-items:center;gap:13px}.student-bell{position:relative;width:34px;height:34px;display:grid;place-items:center;color:#667389;border:1px solid #e7eaf0;border-radius:9px;background:#fff}.student-bell i{position:absolute;top:7px;right:7px;width:6px;height:6px;background:#ef4444;border:2px solid white;border-radius:50%}.student-profile{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;text-align:left}.student-avatar{width:34px;height:34px;display:grid;place-items:center;color:#fff;font-size:var(--font-size-caption);border-radius:10px;background:#263650}.student-profile>div{display:flex;flex-direction:column}.student-profile strong{font-size:var(--font-size-caption)}.student-profile small{margin-top:2px;color:#96a0ae;font-size:var(--font-size-caption);white-space:nowrap}.student-logout{height:34px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;color:#6c788a;font-size:var(--font-size-caption);border:1px solid #e1e6ee;border-radius:9px;background:#fff;transition:.16s}.student-logout:hover{color:#bf4848;border-color:#e5b3b3;background:#fff7f7}.student-logout:disabled{cursor:wait;opacity:.6}.student-main{min-height:calc(100vh - 68px)}.student-page{width:min(1180px,calc(100% - 64px));margin:0 auto;padding:30px 0 50px}.student-eyebrow{display:block;margin-bottom:7px;color:#315ee8;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.18em}.student-page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.student-page-heading h1{margin:0;font-size:27px;letter-spacing:-.02em}.student-page-heading p{margin:7px 0 0;color:#778396;font-size:var(--font-size-caption)}.student-heading-stat{display:flex;flex-direction:column;align-items:flex-end}.student-heading-stat strong{font-size:var(--font-size-title)}.student-heading-stat span{color:#909baa;font-size:var(--font-size-caption)}.welcome-banner{position:relative;min-height:230px;display:flex;align-items:center;padding:38px 44px;overflow:hidden;color:#fff;background:linear-gradient(118deg,#18294d,#274fb8 67%,#3b6bea);border-radius:18px;box-shadow:0 16px 40px #2747932e}.welcome-banner>div:first-child{position:relative;z-index:2}.welcome-banner .student-eyebrow{color:#9bb8ff}.welcome-banner h1{margin:0;font-size:29px}.welcome-banner p{max-width:590px;margin:10px 0 23px;color:#d4def6;font-size:var(--font-size-caption)}.welcome-actions{display:flex;gap:10px}.welcome-actions a,.welcome-actions button{height:38px;display:flex;align-items:center;gap:7px;padding:0 17px;border-radius:8px;font-size:var(--font-size-caption)}.welcome-actions a{color:#1f4bc4;font-weight:600;background:#fff}.welcome-actions button{color:#fff;border:1px solid rgba(255,255,255,.3);background:#ffffff14}.road-visual{position:absolute;inset:0 0 0 auto;width:43%;opacity:.8}.road-visual:before{content:"";position:absolute;width:420px;height:420px;right:-80px;top:-95px;border:1px solid rgba(255,255,255,.13);border-radius:50%}.road-line{position:absolute;width:400px;height:90px;right:-35px;border:2px solid rgba(255,255,255,.21);border-radius:50%;transform:rotate(-22deg)}.line-a{top:45px}.line-b{top:88px}.line-c{top:132px}.car{position:absolute;width:18px;height:9px;border-radius:3px;background:#fff;box-shadow:0 0 12px #fff;transform:rotate(-22deg)}.car-a{top:84px;right:160px}.car-b{top:154px;right:270px;background:#82f4e8}.sun{position:absolute;right:75px;top:30px;width:55px;height:55px;border-radius:50%;background:#ffffff14;box-shadow:0 0 45px #ffffff1f}.student-section-title{display:flex;align-items:flex-end;justify-content:space-between;margin:30px 0 15px}.student-section-title>div span,.panel-heading>div span{color:#315ee8;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.18em}.student-section-title h2{margin:4px 0 0;font-size:var(--font-size-section)}.student-section-title>a{color:#64738b;font-size:var(--font-size-caption)}.student-course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.student-course-card{overflow:hidden;background:#fff;border:1px solid #e6eaf1;border-radius:14px;box-shadow:0 4px 15px #1d2b460a;cursor:pointer;transition:transform .18s,box-shadow .18s}.student-course-card:hover{transform:translateY(-3px);box-shadow:0 12px 24px #1d2b4617}.course-cover{position:relative;height:96px;padding:14px 16px;overflow:hidden;color:#fff}.course-cover>span{position:relative;z-index:2;padding:3px 8px;font-size:var(--font-size-caption);border-radius:9px;background:#ffffff29}.course-cover>strong{position:absolute;right:18px;bottom:-9px;font-size:64px;opacity:.09}.cover-network i{position:absolute;width:5px;height:5px;border-radius:50%;background:#ffffff52}.cover-network i:nth-child(1){left:32%;top:34%}.cover-network i:nth-child(2){left:52%;top:24%}.cover-network i:nth-child(3){left:67%;top:58%}.cover-network i:nth-child(4){left:42%;top:72%}.cover-network i:nth-child(5){left:77%;top:29%}.course-card-body{padding:16px 17px}.course-card-meta{display:flex;justify-content:space-between;color:#9aa3b0;font-size:var(--font-size-caption)}.course-card-body h3{margin:7px 0 5px;font-size:var(--font-size-body)}.course-card-body>p{margin:0 0 14px;overflow:hidden;color:#728095;font-size:var(--font-size-caption);white-space:nowrap;text-overflow:ellipsis}.progress-label,.experiment-progress{display:flex;justify-content:space-between;color:#8a95a5;font-size:var(--font-size-caption)}.progress-label b,.experiment-progress b{color:#44526a}.course-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid #edf0f4}.course-card-foot span{color:#7f8b9e;font-size:var(--font-size-caption)}.course-card-foot button{display:flex;align-items:center;gap:4px;color:#315ee8;font-size:var(--font-size-caption);border:0;background:transparent}.student-bottom-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;margin-top:22px}.student-panel{padding:20px;background:#fff;border:1px solid #e6eaf1;border-radius:14px}.panel-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:13px}.panel-heading h3{margin:4px 0 0;font-size:var(--font-size-control)}.panel-heading a{color:#315ee8;font-size:var(--font-size-caption)}.task-row{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:12px;padding:11px 0;border-top:1px solid #eff1f5}.task-date{height:43px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#315ee8;background:#eef3ff;border-radius:8px}.task-date.soon{color:#dc5b31;background:#fff1eb}.task-date b,.task-date small{font-size:var(--font-size-caption)}.task-row>div strong{font-size:var(--font-size-caption)}.task-row>div p{margin:4px 0 0;color:#929dab;font-size:var(--font-size-caption)}.task-status{padding:4px 8px;color:#667389;font-size:var(--font-size-caption);background:#f2f4f7;border-radius:9px}.study-ring{display:flex;align-items:center;justify-content:space-around;padding-top:13px}.ring-value{display:flex;flex-direction:column}.ring-value strong{font-size:var(--font-size-title);color:#1d2836}.ring-value span{color:#929cab;font-size:var(--font-size-caption)}.study-numbers{display:flex;flex-direction:column;gap:13px}.study-numbers>div{display:flex;align-items:center;gap:8px;color:#5075da}.study-numbers span{display:flex;flex-direction:column;color:#929dab;font-size:var(--font-size-caption)}.study-numbers b{color:#435169;font-size:var(--font-size-caption)}.theme-dark .ring-value strong{color:#e7edf6}.theme-dark .ring-value span{color:#8b98ab}.theme-dark .study-numbers b{color:#c3cfdf}.student-filterbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding:12px;background:#fff;border:1px solid #e7eaf0;border-radius:11px}.student-filter-search{width:280px;height:35px;display:flex;align-items:center;gap:8px;padding:0 10px;color:#a1a9b6;border:1px solid #e2e6ec;border-radius:8px}.student-filter-search input{width:100%;border:0;outline:0;background:transparent;font-size:var(--font-size-caption)}.course-list-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.course-list-card{display:grid;grid-template-columns:145px 1fr;min-height:220px;overflow:hidden;background:#fff;border:1px solid #e5e9ef;border-radius:14px}.course-list-cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff}.course-list-cover .anticon{font-size:30px}.course-list-cover span{font-size:var(--font-size-caption)}.course-list-content{padding:22px}.course-list-content>span{color:#8c97a7;font-size:var(--font-size-caption)}.course-list-content h3{margin:7px 0;font-size:var(--font-size-content)}.course-list-content p{color:#7b8799;font-size:var(--font-size-caption)}.course-list-actions{display:flex;align-items:center;justify-content:space-between;margin-top:17px;padding-top:13px;border-top:1px solid #edf0f4}.course-list-actions>span{max-width:200px;overflow:hidden;color:#8792a3;font-size:var(--font-size-caption);white-space:nowrap;text-overflow:ellipsis}.course-list-actions a{padding:7px 11px;color:#fff;font-size:var(--font-size-caption);background:#315ee8;border-radius:7px}.learning-shell{display:grid;grid-template-columns:295px 1fr;min-height:calc(100vh - 68px);transition:grid-template-columns .2s}.learning-shell.outline-hidden{grid-template-columns:0 1fr}.learning-outline{min-width:0;overflow:hidden;background:#fff;border-right:1px solid #e3e7ed}.outline-course{width:295px;padding:18px 19px;border-bottom:1px solid #e7eaf0}.outline-course>button{padding:0;color:#7b8799;font-size:var(--font-size-caption);border:0;background:transparent}.outline-course>span{display:block;margin-top:16px;color:#8894a5;font-size:var(--font-size-caption)}.outline-course>strong{display:block;margin:4px 0 10px;font-size:var(--font-size-body)}.outline-course>div{display:flex;align-items:center;gap:10px}.outline-course .ant-progress{flex:1}.outline-course small{color:#8d98a7;font-size:var(--font-size-caption)}.outline-scroll{width:295px;max-height:calc(100vh - 177px);overflow:auto;padding:10px}.outline-chapter{margin-bottom:13px}.chapter-name{display:flex;justify-content:space-between;padding:9px 8px}.chapter-name strong{font-size:var(--font-size-caption)}.chapter-name span{color:#929cab;font-size:var(--font-size-caption)}.outline-chapter>button{width:100%;display:grid;grid-template-columns:22px 1fr;gap:4px;padding:9px 8px;color:#6f7c90;border:0;border-radius:8px;background:transparent;text-align:left}.outline-chapter>button.active{color:#244ecf;background:#edf3ff}.outline-chapter>button.done .lesson-state{color:#20a36c}.lesson-state{padding-top:8px}.lesson-state i{display:block;width:10px;height:10px;border:1.5px solid #c4cbd5;border-radius:50%}.outline-chapter button div{display:flex;flex-direction:column}.outline-chapter small{font-size:var(--font-size-caption);opacity:.75}.outline-chapter b{margin:3px 0;font-size:var(--font-size-caption)}.outline-chapter em{font-style:normal;font-size:var(--font-size-caption);opacity:.65}.learning-content{min-width:0;display:flex;flex-direction:column;background:#f7f8fb}.learning-toolbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fff;border-bottom:1px solid #e4e8ee}.learning-toolbar button{color:#718096;font-size:var(--font-size-caption);border:0;background:transparent}.learning-toolbar>div{display:flex;gap:8px;color:#8792a3;font-size:var(--font-size-caption)}.learning-toolbar .note-button{padding:7px 10px;border:1px solid #e0e4ea;border-radius:6px}.lesson-article{width:calc(100% - 64px);flex:1;margin:28px auto;padding:38px 48px;background:#fff;border:1px solid #e4e8ef;border-radius:13px;box-shadow:0 5px 18px #212e440a}.lesson-breadcrumb{color:#929cab;font-size:var(--font-size-caption)}.lesson-breadcrumb span{margin:0 7px}.lesson-title{display:flex;gap:15px;margin:21px 0 34px;padding-bottom:28px;border-bottom:1px solid #e9ecf1}.lesson-title>span{flex:0 0 42px;height:42px;display:grid;place-items:center;color:#315ee8;font-size:var(--font-size-section);background:#edf3ff;border-radius:10px}.lesson-title small{color:#315ee8;font-size:var(--font-size-caption)}.lesson-title h1{margin:5px 0 7px;font-size:var(--font-size-title)}.lesson-title p{margin:0;color:#718096;font-size:var(--font-size-caption)}.article-section{margin-top:32px}.article-section h2{display:flex;align-items:center;gap:9px;margin:0 0 15px;font-size:var(--font-size-control)}.article-section h2 span{color:#315ee8;font-size:var(--font-size-caption)}.article-section>p{color:#56657a;font-size:var(--font-size-caption);line-height:1.9}.article-section code{padding:2px 5px;color:#315ee8;background:#eef3ff;border-radius:4px}.objective-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:17px}.objective-grid>div{display:flex;gap:9px;padding:13px;color:#20a36c;background:#f3fbf7;border:1px solid #e0f1e7;border-radius:8px}.objective-grid span{display:flex;flex-direction:column}.objective-grid strong{color:#37465b;font-size:var(--font-size-caption)}.objective-grid small{margin-top:4px;color:#7b8d83;font-size:var(--font-size-caption);line-height:1.5}.code-block{overflow:hidden;background:#172033;border-radius:9px}.code-head{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:#91a0b8;font-size:var(--font-size-caption);background:#111827}.code-head button{color:#b9c6d8;border:0;background:transparent}.code-block pre{margin:0;padding:18px;color:#cbd5e1;font:10px/1.8 ui-monospace,monospace}.code-block i{color:#c084fc}.code-block b{color:#60a5fa}.code-block code>span{color:#64748b;background:transparent}.spec-table{width:100%;border-collapse:collapse;font-size:var(--font-size-caption)}.spec-table th,.spec-table td{padding:11px 12px;border:1px solid #e5e8ed;text-align:left}.spec-table th{color:#5b687b;background:#f6f8fa}.check-list{display:flex;flex-direction:column;gap:9px;padding:15px;background:#f8f9fb;border-radius:8px}.check-list label{color:#58667a;font-size:var(--font-size-caption)}.check-list input{margin-right:8px}.lesson-footer{position:sticky;bottom:0;z-index:6;margin-top:auto;height:66px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:0 32px;background:#fff;border-top:1px solid #e4e8ee}.lesson-footer>button{color:#6c798d;font-size:var(--font-size-caption);border:0;background:transparent;text-align:left}.lesson-footer>button:last-child{text-align:right}.lesson-footer>div{display:flex;gap:8px}.lesson-footer .complete-button,.lesson-footer a{display:inline-flex;align-items:center;gap:5px;padding:8px 12px;font-size:var(--font-size-caption);border-radius:7px}.lesson-footer .complete-button{color:#315ee8;border:1px solid #bdcaf2;background:#fff}.lesson-footer .complete-button.done{color:#15803d;border-color:#a7dfbd;background:#f0fdf4}.lesson-footer a{color:#fff;background:#315ee8}.experiment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.experiment-card{overflow:hidden;background:#fff;border:1px solid #e5e9ef;border-radius:14px}.experiment-top{position:relative;height:108px;display:flex;align-items:center;justify-content:center;color:#fff}.experiment-brand{position:absolute;left:15px;bottom:13px;display:inline-flex;align-items:flex-end;gap:9px}.experiment-brand>.anticon{position:static;font-size:34px;opacity:.7;line-height:1}.experiment-brand>.experiment-type-label{position:static;font-size:var(--font-size-caption);line-height:1;letter-spacing:.2px;opacity:.95;white-space:nowrap}.experiment-top i{position:absolute;right:14px;top:13px;padding:3px 7px;font-style:normal;font-size:var(--font-size-caption);background:#ffffff2b;border-radius:9px}.experiment-body{padding:19px}.experiment-body>small{color:#8e99a8;font-size:var(--font-size-caption)}.experiment-body h3{margin:7px 0;font-size:var(--font-size-section);font-weight:700;line-height:1.35;letter-spacing:.2px;color:#1d2836}.experiment-body p{min-height:34px;color:#748095;font-size:var(--font-size-caption);line-height:1.7}.experiment-body>button{width:100%;height:35px;margin-top:13px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #cbd6f7;border-radius:7px;background:#f7f9ff}.assignment-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.assignment-summary>div{display:flex;align-items:center;gap:13px;padding:17px;background:#fff;border:1px solid #e6eaf0;border-radius:11px}.assignment-summary .anticon{width:34px;height:34px;display:grid;place-items:center;color:#315ee8;background:#eef3ff;border-radius:8px}.assignment-summary span{display:flex;flex-direction:column}.assignment-summary strong{font-size:var(--font-size-section)}.assignment-summary small{color:#8c97a7;font-size:var(--font-size-caption)}.student-table-panel{overflow:hidden;background:#fff;border:1px solid #e5e9ef;border-radius:13px}.student-table-head{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #e7eaf0}.student-table-head strong{font-size:var(--font-size-caption)}.student-table-head>span{color:#8c97a6;font-size:var(--font-size-caption)}.student-table{width:100%;border-collapse:collapse;font-size:var(--font-size-caption)}.student-table th{padding:11px 17px;color:#8a95a5;font-weight:500;background:#fafbfc;text-align:left}.student-table td{padding:15px 17px;color:#667287;border-top:1px solid #edf0f3}.student-table td strong{color:#334158}.student-table td button{padding:6px 9px;color:#315ee8;border:1px solid #cbd5f5;border-radius:6px;background:#fff}.kind-pill,.assignment-status{padding:4px 8px;border-radius:9px;background:#f1f4f7}.assignment-status.soon{color:#c64e2e;background:#fff0ea}.assignment-status.done{color:#138058;background:#eaf9f2}.grade-hero{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding:24px 30px;color:#fff;background:linear-gradient(120deg,#192a4c,#315ee8);border-radius:15px}.grade-hero>div:first-child{display:flex;align-items:center;gap:14px}.grade-hero>div:first-child>.anticon{font-size:37px;color:#f5c969}.grade-hero span{display:flex;flex-direction:column}.grade-hero small{color:#c9d6f5;font-size:var(--font-size-caption)}.grade-hero strong{margin:2px 0;font-size:var(--font-size-stat-lg)}.grade-hero em{color:#a8f0d7;font-size:var(--font-size-caption);font-style:normal}.grade-hero>div:last-child{display:flex;gap:45px}.grade-hero>div:last-child span{align-items:center}.grade-hero b{font-size:var(--font-size-subtitle)}.grade-score{color:#315ee8;font-size:var(--font-size-content)}.grade-pending{color:#9aa3b1;font-size:var(--font-size-caption)}@media(max-width:1280px){.student-header{padding:0 22px;grid-template-columns:190px 1fr auto}.student-nav button{padding:0 11px}.student-page,.lesson-article{width:calc(100% - 44px)}}.code-block code{padding:0;color:inherit;background:transparent;border-radius:0}.trajectory-page{height:calc(100vh - 68px);min-height:680px;display:flex;flex-direction:column;overflow:hidden;background:#101621}.trajectory-header{height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;color:#e8edf6;background:#151d2a;border-bottom:1px solid #263142}.trajectory-header>div{display:flex;align-items:center;gap:10px}.trajectory-header>div:first-child>button{width:31px;height:31px;color:#aab5c6;border:1px solid #303b4c;border-radius:7px;background:#1b2533}.trajectory-icon{width:33px;height:33px;display:grid;place-items:center;color:#7ca7ff;background:#213151;border-radius:8px}.trajectory-header>div:first-child>div{display:flex;flex-direction:column}.trajectory-header small{color:#78869b;font-size:var(--font-size-caption)}.trajectory-header strong{margin-top:2px;font-size:var(--font-size-caption)}.trajectory-status span{display:flex;align-items:center;gap:6px;margin-right:9px;color:#8f9caf;font-size:var(--font-size-caption)}.trajectory-status i{width:6px;height:6px;background:#35d18a;border-radius:50%;box-shadow:0 0 7px #35d18a}.trajectory-status button{height:31px;padding:0 11px;color:#aeb9c9;font-size:var(--font-size-caption);border:1px solid #303b4c;border-radius:7px;background:#1b2533}.trajectory-status .submit-button{color:#fff;border-color:#3f6ee8;background:#315ee8}.workspace-grid{flex:1;min-height:0;display:grid;grid-template-columns:250px 6px minmax(360px,.9fr) 6px minmax(500px,1.25fr)}.guide-pane,.code-pane,.simulation-pane{min-width:0;min-height:0;display:flex;flex-direction:column}.guide-pane{color:#b5c0cf;background:#151d2a;border-right:1px solid #283244}.pane-head{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;border-bottom:1px solid #283244}.pane-head span{color:#e6ebf3;font-size:var(--font-size-caption);font-weight:600}.pane-head b{color:#74839a;font-size:var(--font-size-caption)}.step-track{height:3px;display:grid;grid-template-columns:repeat(4,1fr);gap:3px;background:#0f151f}.step-track i{background:#2b3544}.step-track i.done{background:#289d72}.step-track i.active{background:#4c7cf4}.guide-scroll{flex:1;overflow:auto;padding:20px 17px}.guide-kicker{color:#5f89f7;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.16em}.guide-scroll h2{margin:7px 0 8px;color:#f0f3f8;font-size:var(--font-size-content)}.guide-scroll>p{margin:0;color:#8e9caf;font-size:var(--font-size-caption);line-height:1.7}.guide-scroll h3{margin:22px 0 10px;color:#d9e0ea;font-size:var(--font-size-caption)}.guide-scroll ul{margin:0;padding-left:17px;color:#9aa8ba;font-size:var(--font-size-caption);line-height:2}.guide-scroll pre{padding:12px;overflow:auto;color:#8fb5ff;font:8px/1.7 ui-monospace,monospace;background:#0e141e;border:1px solid #273143;border-radius:7px}.guide-note{display:flex;gap:9px;margin-top:18px;padding:11px;color:#e9bd63;background:#2a261d;border:1px solid #44391f;border-radius:7px}.guide-note>span{display:flex;flex-direction:column;color:#aa9c7e;font-size:var(--font-size-caption);line-height:1.5}.guide-note b{margin-bottom:2px;color:#e1c377}.code-pane{background:#111823;border-right:1px solid #283244}.file-tabs{height:39px;display:flex;align-items:flex-end;background:#151d29;border-bottom:1px solid #283244}.file-tabs button{height:34px;padding:0 13px;color:#7e8ba0;font-size:var(--font-size-caption);border:0;border-right:1px solid #283244;background:transparent}.file-tabs button.active{color:#dce4ee;background:#111823;border-top:2px solid #4c7cf4}.editor-area{flex:1;min-height:200px;display:grid;grid-template-columns:35px 1fr;overflow:auto;padding:13px 0;background:#111823}.line-numbers{display:flex;flex-direction:column;align-items:flex-end;padding-right:10px;color:#435066;font:9px/1.82 ui-monospace,monospace;-webkit-user-select:none;user-select:none}.editor-area pre{margin:0;color:#c6d0df;font:9px/1.82 ui-monospace,monospace;white-space:pre-wrap}.editor-area code{color:inherit}.console-pane{height:180px;flex:0 0 180px;border-top:1px solid #283244;background:#0c121b}.console-head{height:33px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#c6cfdb;font-size:8px;border-bottom:1px solid #232d3d}.console-head button{color:#718098;font-size:8px;border:0;background:transparent}.console-output{height:145px;overflow:auto;padding:8px 12px;font:8px/1.55 ui-monospace,monospace}.console-output p{margin:0;color:#748399}.console-output p.success{color:#46d59b}.simulation-pane{background:#0a1119}.sim-toolbar{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:#dce3ed;background:#151d29;border-bottom:1px solid #283244}.sim-toolbar>div{display:flex;align-items:center;gap:9px}.sim-toolbar strong{font-size:10px}.sim-toolbar span{position:relative;padding-left:9px;color:#52d39d;font-size:8px}.sim-toolbar span:before{content:"";position:absolute;left:0;top:4px;width:5px;height:5px;background:#52d39d;border-radius:50%}.sim-toolbar button{width:29px;height:25px;color:#8997a9;border:1px solid #303b4c;border-radius:5px;background:#1b2533}.sim-toolbar .ant-select-selector{color:#aeb9c8!important;background:#1b2533!important;border-color:#303b4c!important}.sim-toolbar .ant-select-arrow{color:#8190a5}.simulation-stage{position:relative;flex:1;min-height:300px}.three-scene{position:absolute;inset:0;overflow:hidden}.three-scene canvas{display:block;width:100%;height:100%}.scene-badge{position:absolute;z-index:2;left:13px;top:13px;display:flex;align-items:center;gap:6px;padding:5px 8px;color:#8ca3bd;font-size:7px;letter-spacing:.12em;background:#070e16b8;border:1px solid rgba(122,150,181,.2);border-radius:5px;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.scene-badge span{width:5px;height:5px;background:#3bd499;border-radius:50%;box-shadow:0 0 6px #3bd499}.scene-tip{position:absolute;z-index:2;right:12px;bottom:10px;color:#71849a;font-size:7px}.telemetry-grid{height:69px;display:grid;grid-template-columns:repeat(4,1fr);background:#111923;border-top:1px solid #263142}.telemetry-grid>div{display:flex;flex-direction:column;justify-content:center;padding:0 13px;border-right:1px solid #263142}.telemetry-grid span{color:#69788e;font-size:7px}.telemetry-grid strong{margin-top:3px;color:#dce4ef;font-size:var(--font-size-body)}.telemetry-grid small{margin-left:3px;color:#74849a;font-size:7px}.sim-controls{height:54px;display:flex;align-items:center;gap:10px;padding:0 12px;background:#151d29;border-top:1px solid #263142}.sim-controls>button{height:32px;padding:0 11px;color:#9eabbc;font-size:8px;border:1px solid #303b4c;border-radius:6px;background:#1b2533}.speed-control{display:flex;align-items:center;gap:3px;margin-left:auto}.speed-control>span{margin-right:4px;color:#6f7e93;font-size:var(--font-size-caption)}.speed-control button{height:25px;padding:0 7px;color:#718097;font-size:7px;border:1px solid #2b3545;background:#121a25}.speed-control button:first-of-type{border-radius:5px 0 0 5px}.speed-control button:last-child{border-radius:0 5px 5px 0}.speed-control button.active{color:#9db8ff;border-color:#436bd2;background:#1d315a}.sim-controls .run-button{min-width:92px;color:#fff;border-color:#3e70ef;background:#315ee8}.sim-controls .run-button.running{border-color:#c55e43;background:#b94d34}@media(max-width:1280px){.workspace-grid{grid-template-columns:220px 6px minmax(330px,.82fr) 6px minmax(470px,1.18fr)}}.workspace-grid{grid-template-columns:290px 6px minmax(360px,.9fr) 6px minmax(500px,1.25fr)}.pane-head span,.pane-head b,.guide-kicker{font-size:var(--font-size-caption)}.guide-scroll h2{font-size:var(--font-size-subtitle);line-height:1.35}.guide-scroll>p{font-size:var(--font-size-caption);line-height:1.8}.guide-scroll h3{font-size:var(--font-size-caption)}.guide-scroll ul{font-size:var(--font-size-caption);line-height:1.9}.guide-scroll pre{font-size:var(--font-size-caption);line-height:1.7}.guide-note>span,.guide-note b{font-size:var(--font-size-caption)}.code-pane{--code-font-size: var(--font-size-caption)}.file-tabs{align-items:center}.file-tabs .file-tab{height:39px}.line-numbers,.editor-area pre{font-size:var(--code-font-size);line-height:1.75}.console-output{font-size:calc(var(--code-font-size) - 2px);line-height:1.55}.font-controls{display:flex;align-items:center;gap:4px;margin-left:auto;padding:0 8px}.file-tabs .font-controls button{width:27px;height:25px;padding:0;color:#a9b5c6;font-size:var(--font-size-caption);border:1px solid #344054;border-radius:5px;background:#1c2635}.file-tabs .font-controls button:hover:not(:disabled){color:#fff;border-color:#557fe9;background:#253657}.file-tabs .font-controls button:disabled{cursor:not-allowed;opacity:.35}.font-controls span{min-width:34px;color:#8e9caf;font-size:var(--font-size-caption);text-align:center}@media(max-width:1280px){.workspace-grid{grid-template-columns:250px 6px minmax(330px,.82fr) 6px minmax(470px,1.18fr)}}.trajectory-status{gap:8px}.trajectory-status .environment-status{margin-right:6px}.trajectory-status button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:66px;height:34px;padding:0 13px;font-size:var(--font-size-caption);font-weight:500;white-space:nowrap;transition:border-color .16s,background .16s,color .16s}.trajectory-status button:hover{color:#edf3ff;border-color:#52647d;background:#223047}.trajectory-status .save-button.saved{color:#64dfae;border-color:#2d765d;background:#19382f}.trajectory-status .save-button{gap:3px}.trajectory-status .submit-button{min-width:78px}.sim-toolbar{height:48px;padding:0 12px 0 14px}.sim-toolbar .sim-title,.sim-toolbar .sim-toolbar-actions{display:flex;align-items:center;gap:9px}.sim-toolbar .sim-title>strong{font-size:11px}.sim-toolbar .sim-title>span{position:relative;padding-left:10px;color:#52d39d;font-size:9px}.sim-toolbar .sim-title>span:before{content:"";position:absolute;left:0;top:50%;width:5px;height:5px;background:#52d39d;border-radius:50%;box-shadow:0 0 6px #52d39da6;transform:translateY(-50%)}.sim-toolbar .sim-toolbar-actions span{position:static;padding-left:0}.sim-toolbar .sim-toolbar-actions span:before{content:none}.sim-toolbar .camera-select{width:116px}.sim-toolbar .camera-select .ant-select-selector{height:30px!important;display:flex;align-items:center;padding:0 10px!important;color:#b9c5d5!important;background:#1b2533!important;border:1px solid #344054!important;border-radius:6px!important;box-shadow:none!important}.sim-toolbar .camera-select .ant-select-selection-item{padding:0!important;color:#b9c5d5!important;font-size:10px!important;line-height:28px!important}.sim-toolbar .camera-select .ant-select-arrow{position:absolute;top:50%;right:9px;height:12px;margin-top:-6px;padding:0;color:#7f8da2;display:flex;align-items:center;justify-content:center}.sim-toolbar .fullscreen-button{width:30px;height:30px;display:grid;place-items:center;padding:0;color:#9aa8ba;border:1px solid #344054;border-radius:6px;background:#1b2533;transition:border-color .16s,background .16s,color .16s}.sim-toolbar .fullscreen-button:hover{color:#e9eff8;border-color:#557fe9;background:#253657}.simulation-pane:fullscreen{width:100vw;height:100vh;background:#0a1119}.simulation-pane:fullscreen .simulation-stage{min-height:0}.editor-area{padding:0;overflow:hidden}.editor-area .line-numbers{padding-top:13px;overflow:hidden;font-size:var(--code-font-size);line-height:1.75}.editor-area textarea{width:100%;height:100%;min-width:0;padding:13px 14px 13px 0;resize:none;outline:none;color:#c6d0df;caret-color:#79a6ff;font:var(--code-font-size)/1.75 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre;tab-size:2;background:#111823;border:0}.editor-area textarea::selection{color:#fff;background:#315fa8}.editor-area:focus-within{box-shadow:inset 0 0 0 1px #4c7cf438}.console-output{overflow-y:scroll;overflow-x:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#53627a #111925}.console-output::-webkit-scrollbar{width:8px;height:8px}.console-output::-webkit-scrollbar-track{background:#111925;border-left:1px solid #202b3b}.console-output::-webkit-scrollbar-thumb{background:#53627a;border:2px solid #111925;border-radius:8px}.console-output::-webkit-scrollbar-thumb:hover{background:#71829d}.guide-scroll pre{scrollbar-width:thin;scrollbar-color:#526681 #101722}.guide-scroll pre::-webkit-scrollbar{width:8px;height:8px}.guide-scroll pre::-webkit-scrollbar-track{background:#101722;border-radius:0 0 7px 7px}.guide-scroll pre::-webkit-scrollbar-thumb{background:#526681;border:2px solid #101722;border-radius:8px}.guide-scroll pre::-webkit-scrollbar-thumb:hover{background:#7088a8}.guide-scroll pre::-webkit-scrollbar-corner{background:#101722}.student-theme-toggle{width:34px;height:34px;display:grid;place-items:center;color:#667389;font-size:var(--font-size-control);border:1px solid #e1e6ee;border-radius:9px;background:#fff;transition:color .18s,border-color .18s,background .18s,transform .18s}.student-theme-toggle:hover{color:#315ee8;border-color:#b8c8f4;background:#f3f6ff;transform:translateY(-1px)}.student-theme-toggle .theme-glyph{display:block;font:19px/1 Georgia,serif;transform:translateY(-1px)}.theme-dark{color:#dce5f2;background:#0d1420}.theme-dark .student-header{color:#dce5f2;background:#111827f7;border-bottom-color:#283345}.theme-dark .student-brand strong,.theme-dark .student-profile strong{color:#edf3fb}.theme-dark .student-nav button{color:#8f9db1}.theme-dark .student-nav button:hover,.theme-dark .student-nav button.active{color:#8aabff}.theme-dark .student-theme-toggle,.theme-dark .student-bell,.theme-dark .student-logout{color:#aab7c9;border-color:#303b4c;background:#1a2432}.theme-dark .student-logout.password-entry:hover{color:#9dbaff;border-color:#3e527b;background:#17243a}.theme-dark .student-logout:hover{color:#ffaaa4;border-color:#744747;background:#302126}.theme-dark .student-theme-toggle:hover{color:#ffd36e;border-color:#5f7089;background:#243144}.theme-dark .student-bell i{border-color:#1a2432}.theme-dark .student-main{background:#0d1420}.theme-dark .student-page-heading h1,.theme-dark .student-section-title h2,.theme-dark .panel-heading h3{color:#e7edf6}.theme-dark .student-page-heading p{color:#8795a9}.theme-dark .student-panel,.theme-dark .student-course-card,.theme-dark .course-list-card,.theme-dark .student-filterbar,.theme-dark .assignment-summary>div,.theme-dark .student-table-panel,.theme-dark .lesson-article,.theme-dark .lesson-footer{color:#d8e1ed;background:#151e2b;border-color:#2a3546}.theme-dark .task-row,.theme-dark .course-card-foot,.theme-dark .course-list-actions,.theme-dark .student-table td,.theme-dark .lesson-title,.theme-dark .lesson-footer{border-color:#283345}.theme-dark .student-filter-search{color:#8d9aab;border-color:#344052;background:#111925}.theme-dark .student-filter-search input{color:#dce5f2}.theme-dark .student-table th{color:#95a2b4;background:#111925}.theme-dark .student-table td strong,.theme-dark .course-list-content h3{color:#e2e9f3}.theme-dark .learning-shell{color:#d8e1ed;background:#0d1420}.theme-dark .learning-outline{color:#cbd5e1;background:#111925;border-right-color:#283345}.theme-dark .outline-course{border-bottom-color:#283345}.theme-dark .outline-course>button,.theme-dark .outline-course>span,.theme-dark .outline-course small{color:#8795a9}.theme-dark .outline-course>strong,.theme-dark .chapter-name strong{color:#e2e9f3}.theme-dark .chapter-name span{color:#7f8da1}.theme-dark .outline-chapter>button{color:#92a0b4}.theme-dark .outline-chapter>button:hover{color:#c9d8ee;background:#182334}.theme-dark .outline-chapter>button.active{color:#91afff;background:#1c2d4c}.theme-dark .lesson-state i{border-color:#526077}.theme-dark .learning-content{background:#0d1420}.theme-dark .learning-toolbar{color:#cbd5e1;background:#111925;border-bottom-color:#283345}.theme-dark .learning-toolbar button,.theme-dark .learning-toolbar>div{color:#8e9caf}.theme-dark .learning-toolbar .note-button{color:#aebbd0;border-color:#344154;background:#172231}.theme-dark .lesson-article{box-shadow:0 8px 28px #0000002e}.theme-dark .lesson-breadcrumb,.theme-dark .lesson-title p{color:#8795a9}.theme-dark .lesson-title h1,.theme-dark .article-section h2{color:#edf3fb}.theme-dark .lesson-title>span{color:#8eacff;background:#203154}.theme-dark .article-section>p{color:#a9b6c8}.theme-dark .article-section code{color:#a9c0ff;background:#253657}.theme-dark .objective-grid>div{color:#52d6a3;background:#17352e;border-color:#285646}.theme-dark .objective-grid strong{color:#dce7e2}.theme-dark .objective-grid small{color:#83a797}.theme-dark .spec-table th,.theme-dark .spec-table td{border-color:#3a4658}.theme-dark .spec-table th{color:#aebbd0;background:#111925}.theme-dark .spec-table td{color:#c1ccda;background:#151e2b}.theme-dark .check-list{background:#111925}.theme-dark .check-list label{color:#b1bdcc}.theme-dark .check-list input{accent-color:#4c7cf4}.theme-dark .lesson-footer>button{color:#8e9caf}.theme-dark .lesson-footer .complete-button{color:#9bb5ff;border-color:#435c95;background:#17243a}.theme-dark .lesson-footer .complete-button.done{color:#62d7a8;border-color:#31745c;background:#15352d}.theme-light .trajectory-page{color:#26344a;background:#eef2f7}.theme-light .trajectory-header{color:#27364d;background:#fff;border-bottom-color:#dfe5ee}.theme-light .trajectory-header>div:first-child>button,.theme-light .trajectory-status button{color:#58677c;border-color:#dce3ec;background:#f7f9fc}.theme-light .trajectory-header>div:first-child>button:hover,.theme-light .trajectory-status button:hover{color:#315ee8;border-color:#b9c8ed;background:#eef3ff}.theme-light .trajectory-header small,.theme-light .trajectory-status .environment-status{color:#7d899a}.theme-light .trajectory-icon{color:#2563eb;background:#edf3ff}body.theme-dark .ant-select .ant-select-selector{background:#1b2536!important;border-color:#33415a!important}body.theme-dark .ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#4a5f85!important}body.theme-dark .ant-select-focused .ant-select-selector{border-color:#557fe9!important;box-shadow:0 0 0 2px #557fe926!important}body.theme-dark .ant-select-selection-item{color:#dce5f2}body.theme-dark .ant-select-selection-placeholder{color:#7f8da1}body.theme-dark .ant-select-arrow,body.theme-dark .ant-select-clear{color:#7f8da1;background:transparent}body.theme-dark .ant-pagination-item{background:#1b2536;border-color:#33415a}body.theme-dark .ant-pagination-item a{color:#c3cfdf}body.theme-dark .ant-pagination-item-active{border-color:#557fe9;background:#22304a}body.theme-dark .ant-pagination-item-active a{color:#9dbaff}body.theme-dark .ant-pagination-prev button,body.theme-dark .ant-pagination-next button,body.theme-dark .ant-pagination-options .ant-select-selector{color:#c3cfdf}body.theme-dark .ant-pagination-total-text,body.theme-dark .ant-pagination-options-quick-jumper{color:#8b98ab}body.theme-dark .ant-segmented{color:#c3cfdf;background:#1b2536}body.theme-dark .ant-segmented-item{color:#a9b6c9}body.theme-dark .ant-segmented-item:hover:not(.ant-segmented-item-selected){color:#dce5f2;background:#243247}body.theme-dark .ant-segmented-item-selected{color:#9dbaff;background:#2a3b57;box-shadow:none}body.theme-dark .ant-segmented-thumb{background:#2a3b57}body.theme-dark .ant-segmented-item-disabled{color:#5c6a7d}body.theme-dark .ant-segmented-group{background:transparent}body.theme-dark .ant-select-dropdown{background:#1b2536;border:1px solid #33415a;box-shadow:0 8px 24px #00000059}body.theme-dark .ant-select-item{color:#dce5f2}body.theme-dark .ant-select-item-option-active:not(.ant-select-item-option-disabled){background:#243247}body.theme-dark .ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:#9dbaff;font-weight:600;background:#2a3b57}body.theme-dark .ant-select-item-option-disabled{color:#5c6a7d}body.theme-dark .ant-empty-description,body.theme-dark .ant-select-dropdown .ant-select-item-empty{color:#8b98ab}.theme-light .trajectory-status .save-button.saved{color:#15803d;border-color:#a7dfbd;background:#f0fdf4}.theme-light .trajectory-status .save-button.saved:hover{color:#116932;border-color:#8fd4ac;background:#e8fbf0}.theme-light .trajectory-status .stop-button{color:#b42318;border:1px solid #f2b8b5;background:#fef3f2}.theme-light .trajectory-status .stop-button:hover{color:#912018;border-color:#eaa9a6;background:#fde8e6}.theme-light .guide-pane{color:#526176;background:#f8fafc;border-right-color:#dfe5ed}.theme-light .pane-head,.theme-light .file-tabs,.theme-light .sim-toolbar{background:#f6f8fb;border-color:#dfe5ed}.theme-light .pane-head span,.theme-light .guide-scroll h2,.theme-light .guide-scroll h3{color:#26354a}.theme-light .pane-head b,.theme-light .guide-scroll>p,.theme-light .guide-scroll ul{color:#67768a}.theme-light .step-track{background:#e2e7ef}.theme-light .step-track i{background:#cbd3df}.theme-light .guide-scroll li.step-done{color:#15803d}.theme-light .guide-scroll li.step-active{color:#244fbf}.theme-light .guide-scroll li.step-selected{background:#315ee81f}.theme-light .step-track i.selected{outline-color:#315ee8}.theme-light .guide-scroll pre{color:#2859a7;background:#edf3fc;border-color:#d6e0ef;scrollbar-color:#8397b3 #e4ebf5}.theme-light .guide-scroll pre::-webkit-scrollbar-track,.theme-light .guide-scroll pre::-webkit-scrollbar-corner{background:#e4ebf5}.theme-light .guide-scroll pre::-webkit-scrollbar-thumb{background:#8397b3;border-color:#e4ebf5}.theme-light .guide-note{color:#9d6a12;background:#fff8e7;border-color:#efdeb1}.theme-light .guide-note>span{color:#826f49}.theme-light .code-pane{background:#fff;border-right-color:#dfe5ed}.theme-light .file-tabs .file-tab{color:#758298;border-color:#dfe5ed}.theme-light .file-tabs .file-tab.active{color:#244fbf;background:#fff}.theme-light .file-tabs .font-controls button{color:#526176;border-color:#d6deea;background:#fff}.theme-light .font-controls span{color:#748196}.theme-light .editor-area,.theme-light .editor-area textarea{color:#27364d;background:#fff}.theme-light .line-numbers{color:#a1adbc}.theme-light .console-pane,.theme-light .console-output{background:#f7f9fc;border-color:#dfe5ed}.theme-light .console-head{color:#45556c;border-color:#dfe5ed}.theme-light .console-output p{color:#66758a}.theme-light .console-output{scrollbar-color:#8a9bb2 #edf1f6}.theme-light .console-output::-webkit-scrollbar-track{background:#edf1f6;border-left-color:#dce3ec}.theme-light .console-output::-webkit-scrollbar-thumb{background:#8a9bb2;border-color:#edf1f6}.theme-light .code-run-controls{background:#f6f8fb;border-color:#dfe5ed}.theme-light .sim-controls>button{color:#526176;border-color:#d6deea;background:#fff}.theme-light .file-tree{background:#fff;border-right-color:#dfe5ed;border-bottom-color:#dfe5ed}.theme-light .file-tree-head{color:#748196}.theme-light .file-tree-title b{color:#33415a}.theme-light .file-tree-head em{color:#16815a;background:#eaf9f2}.theme-light .file-tree-list li.active{background:#eef3ff}.theme-light .file-tree-node{color:#3c4a5e}.theme-light .file-tree-node:hover{color:#244fbf}.theme-light .file-tree-node em{color:#748196;background:#f1f4f8}.theme-light .file-tree-actions button{color:#8894a6}.theme-light .file-tree-actions button:hover{color:#244fbf;background:#eef3ff}.theme-light .file-tree-empty{color:#98a2b1}.theme-light .file-tree-add{color:#244fbf;border-color:#c3cfe8}.theme-light .file-tree-add:hover{background:#f2f6ff}.theme-light .run-metric-strip{background:#f7f9fc;border-top-color:#dfe5ed}.theme-light .run-metric-title{color:#1c7a55}.theme-light .console-history{color:#526176;border-color:#d6deea;background:#fff}.theme-light .speed-control>span{color:#748196}.theme-light .speed-control button{color:#65748a;border-color:#d6deea;background:#fff}.theme-light .speed-control button.active{color:#244fbf;border-color:#8eaaf0;background:#eaf0ff}.theme-light .simulation-pane{background:#e9eef5}.theme-light .sim-toolbar{color:#26354a}.theme-light .sim-toolbar .camera-select .ant-select-selector,.theme-light .sim-toolbar .fullscreen-button{color:#526176!important;background:#fff!important;border-color:#d6deea!important}.theme-light .sim-toolbar .camera-select .ant-select-selection-item{color:#526176!important}.theme-light .telemetry-grid{background:#fff;border-color:#dfe5ed}.theme-light .telemetry-grid>div{border-color:#dfe5ed}.theme-light .telemetry-grid span{color:#7c899b}.theme-light .telemetry-grid strong{color:#26354a}.signal-workspace{flex:1;min-height:0;display:grid;grid-template-columns:290px 370px minmax(560px,1fr)}.signal-config-pane,.signal-sim-pane{min-width:0;min-height:0;display:flex;flex-direction:column}.signal-config-pane{color:#cbd5e1;background:#111823;border-right:1px solid #283244}.signal-panel-title{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#151d29;border-bottom:1px solid #283244}.signal-panel-title>div{display:flex;flex-direction:column}.signal-panel-title span{font-size:var(--font-size-caption);font-weight:700}.signal-panel-title small{margin-top:3px;color:#6f7f95;font-size:7px;letter-spacing:.16em}.signal-panel-title>b{padding:5px 9px;color:#68d9ae;font-size:var(--font-size-caption);background:#17352e;border:1px solid #295b4d;border-radius:12px}.signal-form{display:flex;flex-direction:column;gap:22px;padding:22px 19px;border-bottom:1px solid #283244}.signal-form label>span{display:flex;justify-content:space-between;margin-bottom:10px}.signal-form b{font-size:var(--font-size-caption)}.signal-form em{color:#87a8ff;font-size:var(--font-size-caption);font-style:normal}.signal-form input{width:100%;height:4px;accent-color:#4c7cf4;cursor:pointer}.phase-table{margin:17px;border:1px solid #283244;border-radius:9px;overflow:hidden}.phase-table>div{height:39px;display:grid;grid-template-columns:1fr 58px 40px;align-items:center;padding:0 11px;color:#8190a5;font-size:var(--font-size-caption);border-top:1px solid #232d3d}.phase-table>div:first-child{border-top:0}.phase-table .phase-table-head{height:31px;color:#66768c;background:#0d141e}.phase-table>div.active{color:#e8eef8;background:#1b2940;box-shadow:inset 3px 0 #4c7cf4}.phase-table span{display:flex;align-items:center;gap:7px}.phase-table b{font-size:var(--font-size-caption)}.phase-table em{font-style:normal;text-align:right}.phase-dot{width:6px;height:6px;border-radius:50%;background:#4c7cf4}.phase-dot.ew{background:#a78bfa}.phase-dot.yellow{background:#f5bf42}.green-text{color:#45d79d}.yellow-text{color:#f5bf42}.signal-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:0 17px 17px;background:#0d141e;border:1px solid #283244;border-radius:8px}.signal-summary span{display:flex;flex-direction:column;align-items:center;padding:11px 4px;color:#6f7f94;font-size:7px;border-right:1px solid #283244}.signal-summary span:last-child{border-right:0}.signal-summary b{margin-top:4px;color:#dce5f1;font-size:var(--font-size-caption)}.signal-controls{margin-top:auto}.signal-controls .run-button{margin-left:auto}.signal-sim-pane{background:#09131d}.phase-chip{padding:5px 9px;color:#8ea1b9;font-size:var(--font-size-caption);background:#1b2533;border:1px solid #303b4c;border-radius:6px}.signal-stage{flex:1;min-height:390px;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 45%,#172a35,#09131d 68%);overflow:hidden}.intersection-map{position:relative;width:min(620px,94%);aspect-ratio:1.35;overflow:hidden;background:#173128;border:1px solid #29423c;border-radius:14px;box-shadow:0 18px 50px #00000052}.intersection-map .road{position:absolute;background:#2a3441}.road-horizontal{left:0;right:0;top:36%;height:28%}.road-vertical{top:0;bottom:0;left:39%;width:22%}.lane-mark{position:absolute;z-index:1;opacity:.75}.h-one,.h-two{left:0;right:0;height:2px;background:repeating-linear-gradient(90deg,#d7c85f 0 22px,transparent 22px 43px)}.h-one{top:49%}.h-two{top:51%}.v-one,.v-two{top:0;bottom:0;width:2px;background:repeating-linear-gradient(0deg,#d7c85f 0 22px,transparent 22px 43px)}.v-one{left:49%}.v-two{left:51%}.stop-line{position:absolute;z-index:2;background:#e7edf5}.stop-n,.stop-s{width:9%;height:3px;left:41%}.stop-n{top:30%}.stop-s{bottom:30%;left:50%}.stop-w,.stop-e{width:3px;height:12%;top:38%}.stop-w{left:35%}.stop-e{right:35%;top:50%}.traffic-light{position:absolute;z-index:5;display:flex;gap:3px;padding:4px;background:#111827;border:1px solid #475569;border-radius:5px;box-shadow:0 3px 10px #00000059}.traffic-light i{width:7px;height:7px;border-radius:50%;background:#273142}.traffic-light i:nth-child(1).on{background:#ef4444;box-shadow:0 0 7px #ef4444}.traffic-light i:nth-child(2).on{background:#f5bf42;box-shadow:0 0 7px #f5bf42}.traffic-light i:nth-child(3).on{background:#31d790;box-shadow:0 0 7px #31d790}.traffic-light.north{left:35%;top:26%;transform:rotate(90deg)}.traffic-light.south{right:35%;bottom:26%;transform:rotate(90deg)}.traffic-light.west{left:31%;bottom:31%}.traffic-light.east{right:31%;top:31%}.sim-car{position:absolute;z-index:4;width:18px;height:9px;border-radius:3px;background:#70a3ff;box-shadow:0 0 8px #70a3ff73}.ns-car{left:53%;top:calc(30% - 13px - var(--index) * 14px);transform:rotate(90deg)}.ew-car{top:55%;left:calc(35% - 22px - var(--index) * 21px);background:#a78bfa}.signal-stage.running.ns-green .ns-car,.signal-stage.running.ns-yellow .ns-car{animation:drive-ns 4s linear calc((var(--index) - 1) * .72s) infinite}.signal-stage.running.ew-green .ew-car,.signal-stage.running.ew-yellow .ew-car{animation:drive-ew 4s linear calc((var(--index) - 1) * .72s) infinite}.phase-display{position:absolute;z-index:6;left:50%;top:50%;width:80px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#dbe5f2;background:#0a111be6;border:1px solid #3a4a60;border-radius:50%;box-shadow:0 8px 25px #00000061;transform:translate(-50%,-50%)}.phase-display small{color:#8fa0b5;font-size:7px}.phase-display strong{margin:1px 0;color:#65e1ae;font-size:27px;line-height:1}.phase-display span{font-size:var(--font-size-caption)}.signal-metrics{height:78px;display:grid;grid-template-columns:repeat(4,1fr);background:#111923;border-top:1px solid #263142}.signal-metrics>div{display:flex;flex-direction:column;justify-content:center;padding:0 15px;border-right:1px solid #263142}.signal-metrics span{color:#718096;font-size:var(--font-size-caption)}.signal-metrics strong{margin-top:4px;color:#e2e8f0;font-size:var(--font-size-section)}.signal-metrics small{margin-left:3px;color:#7f8ea2;font-size:7px}@keyframes drive-ns{0%{top:-20px}to{top:calc(100% + 20px)}}@keyframes drive-ew{0%{left:-24px}to{left:calc(100% + 24px)}}.theme-light .signal-config-pane{color:#334155;background:#fff;border-color:#dfe5ed}.theme-light .signal-panel-title{background:#f6f8fb;border-color:#dfe5ed}.theme-light .signal-panel-title small{color:#8794a6}.theme-light .signal-panel-title>b{color:#16815a;background:#eaf9f2;border-color:#bde8d4}.theme-light .signal-form,.theme-light .phase-table,.theme-light .phase-table>div,.theme-light .signal-summary,.theme-light .signal-summary span{border-color:#dfe5ed}.theme-light .phase-table .phase-table-head,.theme-light .signal-summary{color:#718096;background:#f6f8fb}.theme-light .phase-table>div.active{color:#26354a;background:#edf3ff}.theme-light .signal-summary b{color:#26354a}.theme-light .signal-controls{background:#f6f8fb;border-color:#dfe5ed}.theme-light .signal-sim-pane{background:#e9eef5}.theme-light .signal-metrics{background:#fff;border-color:#dfe5ed}.theme-light .signal-metrics>div{border-color:#dfe5ed}.theme-light .signal-metrics strong{color:#26354a}@media(max-width:1280px){.signal-workspace{grid-template-columns:250px 330px minmax(500px,1fr)}}.quality-page{height:calc(100vh - 68px);min-height:720px;display:flex;flex-direction:column;overflow:hidden;color:#dce5f1;background:#0d141e}.quality-header{height:58px;flex:0 0 58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:#151d2a;border-bottom:1px solid #283244}.quality-title,.quality-actions{display:flex;align-items:center;gap:10px}.quality-title>button{width:31px;height:31px;color:#9eacbf;border:1px solid #303b4c;border-radius:7px;background:#1b2533}.quality-title>span{width:33px;height:33px;display:grid;place-items:center;color:#78a6ff;background:#213151;border-radius:8px}.quality-title>div{display:flex;flex-direction:column}.quality-title small{color:#78869b;font-size:var(--font-size-caption)}.quality-title strong{margin-top:2px;font-size:var(--font-size-caption)}.quality-actions>em{display:flex;align-items:center;gap:6px;margin-right:5px;color:#8f9caf;font-size:var(--font-size-caption);font-style:normal}.quality-actions>em i{width:6px;height:6px;background:#35d18a;border-radius:50%;box-shadow:0 0 7px #35d18a}.quality-actions>em.running i{background:#f5b942;box-shadow:0 0 7px #f5b942;animation:pulse-dot .8s infinite alternate}.quality-actions button{height:31px;padding:0 12px;color:#aeb9c9;font-size:var(--font-size-caption);border:1px solid #303b4c;border-radius:7px;background:#1b2533}.quality-actions .quality-save{display:flex;align-items:center;gap:5px}.quality-actions .quality-save.saved{color:#58d9a5;border-color:#31745c}.quality-actions .quality-submit{color:#fff;border-color:#3f6ee8;background:#315ee8}.quality-workspace{flex:1;min-height:0;display:grid;grid-template-columns:270px minmax(690px,1fr) 250px}.quality-guide,.quality-strategy{min-height:0;display:flex;flex-direction:column;background:#151d2a}.quality-guide{border-right:1px solid #283244}.quality-strategy{border-left:1px solid #283244}.quality-guide-body{flex:1;overflow:auto;padding:22px 19px}.quality-guide-body h2{margin:8px 0 9px;color:#f0f3f8;font-size:var(--font-size-section);line-height:1.35}.quality-guide-body>p{margin:0;color:#8e9caf;font-size:var(--font-size-caption);line-height:1.75}.quality-guide-body h3,.strategy-body h3{margin:23px 0 11px;color:#dce4ef;font-size:var(--font-size-caption)}.quality-guide-body ol{margin:0;padding:0;list-style:none}.quality-guide-body li{position:relative;display:flex;gap:10px;padding:0 0 20px}.quality-guide-body li:not(:last-child):after{content:"";position:absolute;left:12px;top:27px;width:1px;height:calc(100% - 23px);background:#344054}.quality-guide-body li>b{position:relative;z-index:1;flex:0 0 25px;height:25px;display:grid;place-items:center;color:#7f8da2;font-size:var(--font-size-caption);border:1px solid #3a4658;border-radius:50%;background:#151d2a}.quality-guide-body li.active>b{color:#fff;border-color:#4c7cf4;background:#315ee8}.quality-guide-body li.done>b{color:#54d9a6;border-color:#31745c;background:#17352e}.quality-guide-body li>span{display:flex;flex-direction:column;color:#b8c3d1;font-size:var(--font-size-caption)}.quality-guide-body li small{margin-top:4px;color:#708097;font-size:var(--font-size-caption)}.quality-tip{display:flex;gap:9px;margin-top:7px;padding:12px;color:#e9bd63;background:#2a261d;border:1px solid #44391f;border-radius:8px}.quality-tip>span{display:flex;flex-direction:column;color:#ad9e7e;font-size:var(--font-size-caption);line-height:1.6}.quality-tip b{margin-bottom:2px;color:#e1c377}.quality-main{min-width:0;overflow:auto;padding:17px;background:#0d141e}.dataset-bar{min-height:62px;display:flex;align-items:center;justify-content:space-between;padding:10px 15px;background:#151d29;border:1px solid #283244;border-radius:10px}.dataset-bar>div:first-child{display:flex;align-items:center;gap:10px}.dataset-icon{width:34px;height:34px;display:grid;place-items:center;color:#74a5ff;background:#203253;border-radius:8px}.dataset-bar>div>div{display:flex;flex-direction:column}.dataset-bar strong{font-size:var(--font-size-caption)}.dataset-bar small{margin-top:3px;color:#74839a;font-size:var(--font-size-caption)}.dataset-meta{display:flex}.dataset-meta span{display:flex;flex-direction:column;padding:0 15px;color:#6f7f95;font-size:7px;border-left:1px solid #2b3544}.dataset-meta b{margin-bottom:3px;color:#dbe5f2;font-size:var(--font-size-caption)}.quality-score-row{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:11px;margin-top:11px}.quality-score,.dimension-card{min-height:112px;background:#151d29;border:1px solid #283244;border-radius:10px}.quality-score{display:flex;align-items:center;gap:15px;padding:14px}.score-ring{--score: 78;position:relative;flex:0 0 78px;height:78px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#4c7cf4 calc(var(--score) * 1%),#253143 0)}.score-ring:before{content:"";position:absolute;inset:7px;background:#151d29;border-radius:50%}.score-ring span{position:relative;display:flex;align-items:baseline}.score-ring strong{font-size:var(--font-size-title)}.score-ring small{color:#78879a;font-size:7px}.quality-score>div:last-child>small{color:#738298;font-size:var(--font-size-caption)}.quality-score h3{margin:4px 0;color:#e5ebf4;font-size:var(--font-size-body)}.quality-score p{margin:0;color:#77869a;font-size:var(--font-size-caption)}.dimension-card{padding:18px 14px}.dimension-card>span{display:flex;justify-content:space-between}.dimension-card b{font-size:var(--font-size-caption)}.dimension-card em{color:#dfe7f2;font-size:var(--font-size-body);font-style:normal}.dimension-card>div{height:5px;margin:15px 0 9px;overflow:hidden;background:#263142;border-radius:4px}.dimension-card>div i{display:block;height:100%;border-radius:4px}.dimension-card small{color:#6e7d91;font-size:7px}.quality-analysis-grid{display:grid;grid-template-columns:minmax(430px,1.65fr) minmax(240px,.8fr);gap:11px;margin-top:11px}.quality-chart-card,.issue-summary-card,.issue-table-card{background:#151d29;border:1px solid #283244;border-radius:10px}.quality-card-head{height:49px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid #283244}.quality-card-head>div:first-child{display:flex;flex-direction:column}.quality-card-head strong{font-size:var(--font-size-caption)}.quality-card-head small{margin-top:3px;color:#718096;font-size:7px}.quality-card-head>span,.quality-card-head>.anticon{color:#718096;font-size:8px}.speed-chart{position:relative;height:173px;display:grid;grid-template-columns:30px 1fr;padding:15px 16px 23px 9px}.chart-axis{display:flex;flex-direction:column;justify-content:space-between;color:#5f6f85;font-size:7px}.chart-bars{display:flex;align-items:flex-end;gap:8px;border-bottom:1px solid #344054;background:repeating-linear-gradient(to bottom,transparent 0 32px,#263142 33px)}.speed-column{position:relative;flex:1;height:100%;display:flex;align-items:flex-end;justify-content:center}.speed-column>i{width:58%;min-width:7px;background:linear-gradient(#729cff,#416bdf);border-radius:3px 3px 0 0}.speed-column>b{position:absolute;top:4px;width:5px;height:5px;background:#ff6b61;border:1px solid #ffb0aa;border-radius:50%;box-shadow:0 0 7px #f05d54}.speed-column>span{position:absolute;bottom:-16px;color:#627187;font-size:6px}.limit-line{position:absolute;left:39px;right:16px;top:15px;border-top:1px dashed rgba(241,91,80,.7)}.limit-line span{position:absolute;right:0;top:3px;color:#df7168;font-size:6px}.issue-summary-card{min-width:0}.issue-summary-card>.quality-card-head>.anticon{color:#f2ac46;font-size:15px}.issue-summary-card{position:relative}.issue-donut{position:absolute;left:17px;top:70px;width:92px;height:92px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#6f8cf6 0 40%,#f0a64c 40% 80%,#48cba0 80%)}.issue-donut.clean{background:conic-gradient(#48cba0 0 100%)}.issue-donut:before{content:"";position:absolute;inset:12px;background:#151d29;border-radius:50%}.issue-donut>div{position:relative;display:flex;flex-direction:column;align-items:center}.issue-donut strong{font-size:var(--font-size-subtitle)}.issue-donut span{color:#718096;font-size:7px}.issue-summary-card ul{margin:18px 12px 0 123px;padding:0;list-style:none}.issue-summary-card li{display:grid;grid-template-columns:7px 1fr 20px 29px;align-items:center;gap:5px;padding:7px 0;color:#8593a7;font-size:7px;border-bottom:1px solid #273142}.issue-summary-card li i{width:6px;height:6px;border-radius:50%}.issue-summary-card li i.missing{background:#6f8cf6}.issue-summary-card li i.outlier{background:#f0a64c}.issue-summary-card li i.duplicate{background:#48cba0}.issue-summary-card li b{color:#dbe3ee;font-size:var(--font-size-caption)}.issue-summary-card li em{font-style:normal;text-align:right}.issue-table-card{margin-top:11px;overflow:hidden}.issue-table-card .quality-card-head{height:48px}.issue-filters{display:flex!important;flex-direction:row!important;gap:3px}.issue-filters button{height:24px;padding:0 9px;color:#75849a;font-size:7px;border:1px solid transparent;border-radius:5px;background:transparent}.issue-filters button.active{color:#9db8ff;border-color:#3b5da5;background:#1e3155}.issue-table-card table{width:100%;border-collapse:collapse;font-size:var(--font-size-caption)}.issue-table-card th{padding:9px 11px;color:#637289;font-weight:500;background:#101721;text-align:left}.issue-table-card td{padding:9px 11px;color:#99a6b8;border-top:1px solid #252f3e}.issue-table-card code{color:#91b1ff;background:transparent}.issue-tag,.risk{padding:3px 6px;border-radius:8px}.issue-tag.缺失值{color:#91a8ff;background:#222f55}.issue-tag.异常值{color:#eab365;background:#3a2c1d}.issue-tag.重复值{color:#64d4ae;background:#18382f}.risk.高{color:#ff8178;background:#3c2224}.risk.中{color:#eab365;background:#3a2c1d}.risk.低{color:#64d4ae;background:#18382f}.strategy-body{flex:1;overflow:auto;padding:3px 14px 18px}.strategy-body h3{margin-top:17px}.strategy-body>button{width:100%;display:flex;flex-direction:column;gap:4px;margin-bottom:7px;padding:10px;color:#8795a8;text-align:left;border:1px solid #2b3544;border-radius:8px;background:#111923}.strategy-body>button>span{display:flex;align-items:center;gap:7px}.strategy-body button i{width:12px;height:12px;border:1px solid #46546a;border-radius:3px}.strategy-body button b{color:#abb7c7;font-size:var(--font-size-caption)}.strategy-body button small{padding-left:19px;color:#64738a;font-size:7px}.strategy-body button.selected{border-color:#3f65bc;background:#1a2b4a}.strategy-body button.selected i{position:relative;border-color:#4c7cf4;background:#4c7cf4}.strategy-body button.selected i:after{content:"✓";position:absolute;left:2px;top:-2px;color:#fff;font-size:var(--font-size-caption)}.strategy-body button.selected b{color:#dce6f4}.diagnose-panel{padding:12px;border-top:1px solid #283244}.diagnose-panel>button{height:33px;font-size:var(--font-size-caption);border-radius:6px}.reset-diagnose{width:68px;color:#8e9caf;border:1px solid #303b4c;background:#1b2533}.run-diagnose{width:calc(100% - 76px);margin-left:8px;color:#fff;border:1px solid #3f6ee8;background:#315ee8}.run-diagnose:disabled{opacity:.55}.diagnose-progress{margin-bottom:10px}.diagnose-progress>span{display:flex;justify-content:space-between;color:#9facbd;font-size:var(--font-size-caption)}.diagnose-progress em{color:#7ea3ff;font-style:normal}.diagnose-progress>div{height:4px;margin-top:7px;overflow:hidden;background:#263142;border-radius:4px}.diagnose-progress i{display:block;height:100%;background:#4c7cf4;transition:width .13s}.diagnose-complete{display:flex;gap:8px;margin-bottom:10px;padding:8px;color:#50d5a1;background:#15352d;border-radius:7px}.diagnose-complete>span{display:flex;flex-direction:column}.diagnose-complete b{font-size:var(--font-size-caption)}.diagnose-complete small{margin-top:2px;color:#74a38f;font-size:7px}@keyframes pulse-dot{to{opacity:.3}}@media(max-width:1300px){.quality-workspace{grid-template-columns:240px minmax(650px,1fr) 225px}.dataset-meta span{padding:0 9px}}.theme-light .quality-page,.theme-light .quality-main{color:#26354a;background:#eef2f7}.theme-light .quality-header,.theme-light .quality-guide,.theme-light .quality-strategy,.theme-light .dataset-bar,.theme-light .quality-score,.theme-light .dimension-card,.theme-light .quality-chart-card,.theme-light .issue-summary-card,.theme-light .issue-table-card{background:#fff;border-color:#dfe5ed}.theme-light .quality-title strong,.theme-light .quality-guide-body h2,.theme-light .quality-guide-body h3,.theme-light .strategy-body h3,.theme-light .quality-score h3,.theme-light .quality-card-head strong{color:#26354a}.theme-light .pane-head,.theme-light .quality-guide,.theme-light .quality-strategy,.theme-light .quality-card-head,.theme-light .diagnose-panel{border-color:#dfe5ed}.theme-light .score-ring:before,.theme-light .issue-donut:before{background:#fff}.theme-light .strategy-body>button{background:#f7f9fc;border-color:#dfe5ed}.theme-light .strategy-body>button.selected{background:#edf3ff;border-color:#9ab3ef}.theme-light .strategy-body button b{color:#46546a}.theme-light .issue-table-card th{background:#f6f8fb}.theme-light .issue-table-card td{color:#526075;border-color:#e7ebf1}.theme-light .quality-guide-body>p{color:#67768a}.theme-light .quality-guide-body li:not(:last-child):after{background:#dbe2ec}.theme-light .quality-guide-body li>b{color:#334155;border-color:#cdd7e5;background:#f2f5f9}.theme-light .quality-guide-body li.active>b{color:#fff;border-color:#315ee8;background:#315ee8}.theme-light .quality-guide-body li.done>b{color:#15803d;border-color:#a7dfbd;background:#f0fdf4}.theme-light .quality-guide-body li>span{color:#46546a}.theme-light .quality-guide-body li small{color:#8794a6}.theme-light .quality-tip{color:#41506a;background:#f6f8fb;border-color:#dfe5ed}.theme-light .quality-tip>span{color:#41506a}.theme-light .quality-tip b{color:#253347}.guide-drawer .ant-drawer-content,.guide-drawer .ant-drawer-header,.guide-drawer .ant-drawer-body{background:#fff}.guide-drawer .ant-drawer-header{border-bottom-color:#eaeef5}.guide-drawer .ant-drawer-title{color:#1d293d}body.theme-dark .guide-drawer .ant-drawer-content,body.theme-dark .guide-drawer .ant-drawer-header,body.theme-dark .guide-drawer .ant-drawer-body{background:#151e2b}body.theme-dark .guide-drawer .ant-drawer-header{border-bottom-color:#2a3546}body.theme-dark .guide-drawer .ant-drawer-title{color:#edf3fb}body.theme-dark .guide-drawer .ant-drawer-body{color:#a9b6c8}body.theme-dark .guide-drawer .ant-drawer-close{color:#8795a9}body.theme-dark .guide-drawer .ant-drawer-close:hover{color:#dbe4f0}.strategy-body button i{display:grid;place-items:center;flex:0 0 12px}.strategy-body button.selected i{position:static}.strategy-body button.selected i:after{position:static;display:block;color:#fff;font:700 8px/1 sans-serif;transform:translateY(-.25px)}.assignment-empty{padding:45px;color:#8b96a7;font-size:var(--font-size-caption);text-align:center}.assignment-detail-page{min-height:calc(100vh - 68px);color:#26354a;background:#f3f6fa}.assignment-detail-header{height:52px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 28px;background:#fff;border-bottom:1px solid #e3e8ef}.assignment-detail-header>button{width:max-content;display:flex;align-items:center;gap:6px;color:#6d7a8d;font-size:var(--font-size-caption);border:0;background:transparent}.assignment-detail-header>div{display:flex;align-items:center;gap:9px;color:#7f8b9d;font-size:var(--font-size-caption)}.assignment-detail-header i{width:3px;height:3px;border-radius:50%;background:#b8c0cb}.assignment-detail-header .assignment-save{justify-self:end;height:30px;padding:0 10px;border:1px solid #d8dee8;border-radius:7px;background:#fff}.assignment-detail-header .assignment-save.saved{color:#17845d;border-color:#aadcc8;background:#effbf6}.assignment-detail-layout{width:min(1180px,calc(100% - 52px));display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;margin:24px auto 45px}.assignment-task-main{min-width:0}.assignment-title-card{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:16px;padding:24px 27px;background:#fff;border:1px solid #e3e8ef;border-radius:14px}.assignment-kind-icon{width:50px;height:50px;display:grid;place-items:center;color:#315ee8;font-size:var(--font-size-title);background:#edf3ff;border-radius:12px}.assignment-kind-icon.code{color:#7c55c7;background:#f3effc}.assignment-kind-icon.report{color:#0e9488;background:#e9f8f5}.assignment-title-card .student-eyebrow{margin:0}.assignment-title-card h1{margin:5px 0;font-size:var(--font-size-title)}.assignment-title-card p{margin:0;color:#748095;font-size:var(--font-size-caption)}.assignment-time{display:flex;align-items:center;gap:6px;padding:7px 10px;color:#69778a;font-size:var(--font-size-caption);background:#f4f6f9;border-radius:7px}.quiz-sheet,.code-assignment,.report-editor{margin-top:14px}.quiz-progress{display:grid;grid-template-columns:1fr auto;align-items:center;padding:15px 18px;background:#fff;border:1px solid #e3e8ef;border-radius:11px}.quiz-progress span,.quiz-progress b{font-size:var(--font-size-caption)}.quiz-progress>div{grid-column:1/-1;height:5px;margin-top:10px;overflow:hidden;background:#e9edf3;border-radius:4px}.quiz-progress i{display:block;height:100%;background:#315ee8;border-radius:4px;transition:width .2s}.question-card{display:grid;grid-template-columns:42px 1fr;gap:14px;margin-top:11px;padding:20px;background:#fff;border:1px solid #e3e8ef;border-radius:11px}.question-number{width:34px;height:34px;display:grid;place-items:center;color:#315ee8;font-size:var(--font-size-caption);font-weight:700;background:#edf3ff;border-radius:8px}.question-card h3{margin:5px 0 14px;font-size:var(--font-size-caption)}.question-card label{min-height:36px;display:flex;align-items:center;gap:9px;margin:7px 0;padding:7px 11px;color:#617086;font-size:var(--font-size-caption);border:1px solid #e2e7ee;border-radius:7px;cursor:pointer}.question-card label:hover,.question-card label.selected{color:#254fcf;border-color:#9eb4ef;background:#f3f6ff}.question-card label input{display:none}.question-card label>span{width:20px;height:20px;display:grid;place-items:center;color:#79869a;font-size:var(--font-size-caption);border:1px solid #ccd3dd;border-radius:50%}.question-card label.selected>span{color:#fff;border-color:#315ee8;background:#315ee8}.assignment-submit-panel{height:max-content;padding:21px;background:#fff;border:1px solid #e3e8ef;border-radius:13px;position:sticky;top:92px}.assignment-submit-panel h3{margin:0 0 12px;font-size:var(--font-size-caption)}.assignment-submit-panel h3:nth-of-type(2){margin-top:24px}.assignment-rule{display:flex;justify-content:space-between;padding:10px 0;color:#7b8798;font-size:var(--font-size-caption);border-bottom:1px solid #edf0f4}.assignment-rule b{color:#3e4b5f}.assignment-submit-panel ul{margin:0;padding:0;list-style:none}.assignment-submit-panel li{display:flex;justify-content:space-between;padding:7px 0;color:#748195;font-size:var(--font-size-caption)}.assignment-submit-panel li b{color:#315ee8}.integrity-note{display:flex;gap:9px;margin-top:19px;padding:11px;color:#16825b;background:#effaf5;border-radius:8px}.integrity-note>span{display:flex;flex-direction:column}.integrity-note b{font-size:var(--font-size-caption)}.integrity-note small{margin-top:3px;color:#6c8d80;font-size:7px;line-height:1.5}.assignment-submit-button{width:100%;height:38px;margin-top:14px;color:#fff;font-size:var(--font-size-caption);font-weight:600;border:0;border-radius:8px;background:#315ee8;box-shadow:0 7px 16px #315ee833}.assignment-requirements{padding:20px 23px;background:#fff;border:1px solid #e3e8ef;border-radius:11px}.assignment-requirements h2{margin:0 0 12px;font-size:var(--font-size-caption)}.assignment-requirements ul{display:grid;grid-template-columns:1fr 1fr;gap:8px 25px;margin:0;padding-left:18px;color:#67758a;font-size:var(--font-size-caption);line-height:1.7}.assignment-code-editor{margin-top:11px;overflow:hidden;background:#111823;border:1px solid #28364a;border-radius:11px}.assignment-code-editor>div{height:39px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:#93a1b5;font-size:9px;background:#182230;border-bottom:1px solid #2b3545}.assignment-code-editor>div span,.assignment-code-editor>div button{display:flex;align-items:center;gap:6px}.assignment-code-editor>div button{height:27px;padding:0 9px;color:#a9c0ff;font-size:8px;border:1px solid #3c527c;border-radius:6px;background:#1e3155}.assignment-code-editor textarea{width:100%;height:335px;display:block;resize:vertical;padding:19px;color:#cbd5e1;font:11px/1.75 ui-monospace,SFMono-Regular,monospace;border:0;outline:0;background:#111823}.test-result{display:flex;align-items:center;gap:10px;margin-top:11px;padding:13px 16px;color:#7b8799;background:#fff;border:1px solid #e3e8ef;border-radius:9px}.test-result.passed{color:#159565;background:#effbf6;border-color:#bde8d5}.test-result>div{display:flex;flex-direction:column}.test-result b{font-size:var(--font-size-caption)}.test-result span{margin-top:3px;font-size:var(--font-size-caption)}.report-editor{padding:24px;background:#fff;border:1px solid #e3e8ef;border-radius:12px}.report-field{position:relative;margin-bottom:19px}.report-field label{display:block;margin-bottom:8px;font-size:var(--font-size-caption);font-weight:600}.report-field input,.report-field textarea{width:100%;padding:10px 12px;color:#344158;font-size:var(--font-size-caption);border:1px solid #dfe4eb;border-radius:7px;outline:0;background:#fff}.report-field textarea{height:285px;resize:vertical;line-height:1.8}.report-field input:focus,.report-field textarea:focus{border-color:#88a5ed;box-shadow:0 0 0 2px #315ee814}.report-field small{position:absolute;right:9px;bottom:8px;color:#a0a9b5;font-size:var(--font-size-caption)}.report-upload{display:flex;align-items:center;gap:11px;padding:15px;color:#315ee8;border:1px dashed #a9bbed;border-radius:9px;background:#f7f9ff;cursor:pointer}.report-upload input{display:none}.report-upload>.anticon{font-size:20px}.report-upload>span{display:flex;flex-direction:column}.report-upload b{font-size:var(--font-size-caption)}.report-upload small{margin-top:3px;color:#8491a3;font-size:var(--font-size-caption)}.assignment-result-page{width:min(1080px,calc(100% - 52px));margin:25px auto 48px}.result-hero{display:flex;align-items:center;gap:24px;padding:28px 34px;color:#fff;background:linear-gradient(120deg,#172747,#315ee8);border-radius:15px;box-shadow:0 14px 35px #2041912e}.result-score-ring{width:104px;height:104px;display:flex;align-items:baseline;justify-content:center;padding-top:29px;border:8px solid rgba(255,255,255,.22);border-top-color:#73e1b9;border-radius:50%}.result-score-ring strong{font-size:31px}.result-score-ring span{font-size:var(--font-size-caption);color:#ccd8f5}.result-hero .student-eyebrow{color:#9eb8ff}.result-hero h1{margin:4px 0 6px;font-size:var(--font-size-title)}.result-hero p{margin:0;color:#d2dcf4;font-size:var(--font-size-caption)}.result-tags{display:flex;gap:8px;margin-top:13px}.result-tags span{padding:5px 8px;font-size:var(--font-size-caption);background:#ffffff1a;border-radius:6px}.result-tags span:first-child{color:#9df0d2}.result-grid{display:grid;grid-template-columns:minmax(0,1.5fr) 340px;gap:16px;margin-top:16px}.result-card{overflow:hidden;background:#fff;border:1px solid #e3e8ef;border-radius:13px}.result-card-title{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #e7ebf0}.result-card-title h2{margin:0;font-size:var(--font-size-caption)}.result-card-title span{color:#18865f;font-size:var(--font-size-caption)}.answer-review{display:grid;grid-template-columns:27px 1fr;gap:10px;padding:15px 20px;border-bottom:1px solid #edf0f4}.answer-review>span{width:22px;height:22px;display:grid;place-items:center;color:#fff;font-size:var(--font-size-caption);background:#20a36c;border-radius:50%}.answer-review>span.wrong{background:#e76452}.answer-review h3{margin:2px 0 6px;font-size:var(--font-size-caption)}.answer-review p{margin:0 0 5px;color:#6e7b8e;font-size:var(--font-size-caption)}.answer-review small{color:#8b96a6;font-size:var(--font-size-caption)}.test-case-list{padding:8px 19px}.test-case-list>div{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:10px;padding:15px 0;color:#20a36c;border-bottom:1px solid #edf0f4}.test-case-list>span{display:flex;flex-direction:column}.test-case-list b{color:#435167;font-size:var(--font-size-caption)}.test-case-list small{margin-top:3px;color:#8b96a6;font-size:var(--font-size-caption)}.test-case-list em{padding:4px 8px;font-size:var(--font-size-caption);font-style:normal;background:#edf9f3;border-radius:9px}.result-feedback{padding-bottom:18px}.rubric-row{padding:13px 19px 0}.rubric-row>span{display:flex;justify-content:space-between;font-size:var(--font-size-caption)}.rubric-row small{color:#7e8a9c}.rubric-row>div{height:5px;margin-top:7px;overflow:hidden;background:#edf0f4;border-radius:4px}.rubric-row i{display:block;height:100%;background:#315ee8;border-radius:4px}.teacher-comment{margin:20px 18px 14px;padding:15px;color:#536177;background:#f6f8fb;border-radius:9px}.teacher-comment>span{color:#315ee8;font-size:var(--font-size-caption);font-weight:700}.teacher-comment p{margin:8px 0;color:#68768a;font-size:var(--font-size-caption);line-height:1.75}.teacher-comment small{color:#9ba4b1;font-size:7px}.result-feedback>button{height:32px;margin-left:18px;padding:0 12px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:7px;background:#fff}.theme-dark .assignment-detail-page{color:#dce5f2;background:#0d1420}.theme-dark .assignment-detail-header,.theme-dark .assignment-title-card,.theme-dark .quiz-progress,.theme-dark .question-card,.theme-dark .assignment-submit-panel,.theme-dark .assignment-requirements,.theme-dark .test-result,.theme-dark .report-editor,.theme-dark .result-card{background:#151e2b;border-color:#2a3546}.theme-dark .assignment-detail-header{border-bottom-color:#283345}.theme-dark .assignment-detail-header .assignment-save,.theme-dark .result-feedback>button{color:#9bb5ff;border-color:#3e527b;background:#17243a}.theme-dark .assignment-title-card h1,.theme-dark .question-card h3,.theme-dark .assignment-submit-panel h3,.theme-dark .assignment-requirements h2,.theme-dark .result-card-title h2,.theme-dark .answer-review h3,.theme-dark .test-case-list b{color:#edf3fb}.theme-dark .assignment-title-card p,.theme-dark .assignment-time,.theme-dark .assignment-rule,.theme-dark .question-card label,.theme-dark .answer-review p{color:#94a2b6}.theme-dark .assignment-time,.theme-dark .teacher-comment{background:#111925}.theme-dark .quiz-progress>div,.theme-dark .rubric-row>div{background:#273244}.theme-dark .question-card label{border-color:#344052}.theme-dark .question-card label:hover,.theme-dark .question-card label.selected{color:#adc1ff;border-color:#526da9;background:#1c2d4c}.theme-dark .assignment-rule,.theme-dark .result-card-title,.theme-dark .answer-review,.theme-dark .test-case-list>div{border-color:#283345}.theme-dark .assignment-rule b{color:#d7e0ec}.theme-dark .assignment-requirements ul{color:#9eacbf}.theme-dark .test-result.passed{background:#15352d;border-color:#2d634e}.theme-dark .report-field input,.theme-dark .report-field textarea{color:#d8e1ed;border-color:#344052;background:#111925}.theme-dark .report-upload{border-color:#405989;background:#17243a}.theme-dark .spec-table td{background:#151e2b}.theme-dark .teacher-comment p{color:#a3b0c2}@media(max-width:1280px){.assignment-detail-layout{grid-template-columns:minmax(0,1fr) 245px}.result-grid{grid-template-columns:minmax(0,1fr) 310px}}.theme-light{--soft-canvas: #eef2f0;--soft-surface: #f8faf8;--soft-raised: #fbfcfa;--soft-muted: #f2f5f3;--soft-border: #d9e1de;--soft-text: #334247;--soft-subtle: #718086;color:var(--soft-text);background:var(--soft-canvas)}.theme-light .student-main,.theme-light .learning-content,.theme-light .assignment-detail-page{background:var(--soft-canvas)}.theme-light .student-header{background:#f8faf8f5;border-bottom-color:var(--soft-border);box-shadow:0 1px #404e4806}.theme-light .student-brand strong,.theme-light .student-profile strong,.theme-light .student-page-heading h1,.theme-light .student-section-title h2,.theme-light .panel-heading h3{color:var(--soft-text)}.theme-light .student-nav button,.theme-light .student-page-heading p{color:var(--soft-subtle)}.theme-light .student-filter-search{color:#82908f;background:var(--soft-muted);border-color:var(--soft-border)}.theme-light .student-theme-toggle,.theme-light .student-bell{color:#657570;background:var(--soft-raised);border-color:var(--soft-border)}.theme-dark .experiment-card{background:#151e2b;border-color:#2a3546;box-shadow:0 6px 18px #00000040}.theme-dark .experiment-body h3{color:#f6f9fd}.theme-dark .experiment-body>small{color:#8b98ab}.theme-dark .experiment-body p{color:#98a6ba}.theme-dark .experiment-progress{color:#8b98ab}.theme-dark .experiment-progress b{color:#e4ebf5}.theme-dark .experiment-body>button{color:#9dbaff;border-color:#33415a;background:#1b2536}.theme-dark .experiment-body>button:hover{color:#c6d8ff;border-color:#4a5f85;background:#212d42}.theme-dark .experiment-return-tip{color:#f0b27a;background:#33261a}.theme-light .student-panel,.theme-light .student-course-card,.theme-light .course-list-card,.theme-light .student-filterbar,.theme-light .experiment-card,.theme-light .assignment-summary>div,.theme-light .student-table-panel{background:var(--soft-raised);border-color:var(--soft-border);box-shadow:0 4px 15px #31423b06}.theme-light .student-table th,.theme-light .list-summary{background:var(--soft-muted)}.theme-light .task-row,.theme-light .course-card-foot,.theme-light .course-list-actions,.theme-light .student-table td{border-color:#e2e8e5}.theme-light .learning-outline,.theme-light .learning-toolbar,.theme-light .lesson-article,.theme-light .lesson-footer{background:var(--soft-raised);border-color:var(--soft-border)}.theme-light .outline-course,.theme-light .lesson-title,.theme-light .lesson-footer{border-color:#e1e7e4}.theme-light .outline-chapter>button.active{color:#365da8;background:#e9eef8}.theme-light .learning-toolbar .note-button,.theme-light .lesson-footer .complete-button{background:var(--soft-surface);border-color:#d5deda}.theme-light .objective-grid>div{background:#eef7f2;border-color:#d7e9e0}.theme-light .check-list,.theme-light .spec-table th{background:var(--soft-muted)}.theme-light .assignment-detail-header,.theme-light .assignment-title-card,.theme-light .quiz-progress,.theme-light .question-card,.theme-light .assignment-submit-panel,.theme-light .assignment-requirements,.theme-light .test-result,.theme-light .report-editor,.theme-light .result-card{background:var(--soft-raised);border-color:var(--soft-border)}.theme-light .assignment-detail-header{border-bottom-color:var(--soft-border)}.theme-light .assignment-time,.theme-light .teacher-comment{background:var(--soft-muted)}.theme-light .question-card label{border-color:#dce3e0}.theme-light .question-card label:hover,.theme-light .question-card label.selected{background:#edf1f8;border-color:#aabadd}.theme-light .report-field input,.theme-light .report-field textarea{background:#fafbf9;border-color:#d7dfdc}.theme-light .report-upload{background:#f1f4f8;border-color:#afbdd5}.theme-light .trajectory-header,.theme-light .guide-pane,.theme-light .pane-head,.theme-light .file-tabs,.theme-light .code-pane,.theme-light .editor-area,.theme-light .editor-area textarea,.theme-light .console-pane,.theme-light .console-output,.theme-light .code-run-controls,.theme-light .telemetry-grid,.theme-light .signal-config-pane,.theme-light .signal-panel-title,.theme-light .phase-table .phase-table-head,.theme-light .signal-summary,.theme-light .signal-controls,.theme-light .signal-metrics{background:var(--soft-raised);border-color:var(--soft-border)}.theme-light .signal-sim-pane,.theme-light .simulation-pane{background:#e7ecea}.theme-light .quality-page,.theme-light .quality-main{background:var(--soft-canvas)}.theme-light .quality-header,.theme-light .quality-guide,.theme-light .quality-strategy,.theme-light .dataset-bar,.theme-light .quality-score,.theme-light .dimension-card,.theme-light .quality-chart-card,.theme-light .issue-summary-card,.theme-light .issue-table-card{background:var(--soft-raised);border-color:var(--soft-border)}.theme-light .score-ring:before,.theme-light .issue-donut:before{background:var(--soft-raised)}.theme-light .strategy-body>button,.theme-light .issue-table-card th{background:var(--soft-muted);border-color:var(--soft-border)}.theme-light .ant-segmented{background:#e8eeeb}.theme-light .ant-segmented-item-selected{background:var(--soft-raised)!important;box-shadow:0 1px 3px #36463f14!important}.teacher-module{gap:18px}.teacher-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.teacher-stat-grid article{display:flex;align-items:center;gap:13px;min-height:96px;padding:17px 18px;background:#fff;border:1px solid #e5e9ef;border-radius:11px;box-shadow:0 3px 12px #17203308}.teacher-stat-grid article>span{width:38px;height:38px;display:grid;place-items:center;color:#2563eb;font-size:var(--font-size-section);background:#edf3ff;border-radius:9px}.teacher-stat-grid article>span.green{color:#11845b;background:#eaf8f2}.teacher-stat-grid article>span.orange{color:#d86635;background:#fff1eb}.teacher-stat-grid article>span.purple{color:#7c3aed;background:#f3efff}.teacher-stat-grid article>div{display:grid;grid-template-columns:1fr auto;align-items:end;flex:1}.teacher-stat-grid small{grid-column:1/-1;color:#7d8899;font-size:var(--font-size-caption)}.teacher-stat-grid strong{margin-top:4px;color:#26354a;font-size:var(--font-size-title)}.teacher-stat-grid em{color:#9aa3b1;font-size:var(--font-size-caption);font-style:normal}.teacher-data-panel{overflow:hidden;background:#fff;border:1px solid #e4e8ee;border-radius:12px;box-shadow:0 4px 15px #17203309}.teacher-filterbar{height:61px;display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid #e7ebf0}.teacher-search{width:270px;height:34px;display:flex;align-items:center;gap:8px;padding:0 10px;color:#9aa4b2;border:1px solid #dfe4eb;border-radius:7px}.teacher-search input{width:100%;color:#3f4d61;font-size:var(--font-size-body);border:0;outline:0;background:transparent}.teacher-filterbar .ant-segmented{margin-left:auto;font-size:var(--font-size-caption)}.teacher-table{width:100%;border-collapse:collapse;font-size:var(--font-size-caption)}.teacher-table th{padding:11px 14px;color:#8792a3;font-weight:500;background:#f8f9fb;text-align:left}.teacher-table td{padding:14px;color:#667388;border-top:1px solid #edf0f4}.teacher-table td>strong{display:block;color:#344259;font-size:var(--font-size-caption)}.teacher-table td>small{display:block;margin-top:4px;color:#99a2af;font-size:var(--font-size-caption)}.teacher-table td>b{color:#415069}.teacher-type-tag{padding:4px 8px;color:#53657c;background:#f0f3f7;border-radius:9px}.teacher-status{padding:4px 8px;font-size:var(--font-size-caption);border-radius:9px;background:#f1f4f7}.teacher-status.已发布,.teacher-status.自动评测{color:#207759;background:#eaf8f2}.teacher-status.草稿,.teacher-status.待批改{color:#b66b22;background:#fff5e8}.teacher-status.已截止,.teacher-status.已批改{color:#617086;background:#eef1f5}.table-progress{width:90px}.table-progress>span{display:block;margin-bottom:5px;color:#778396;font-size:var(--font-size-caption)}.table-progress>span b{color:#315ee8}.table-progress>i{height:4px;display:block;overflow:hidden;background:#e8ecf2;border-radius:4px}.table-progress>i em{height:100%;display:block;background:#4f78e8;border-radius:4px}.row-actions{display:flex;align-items:center;gap:4px}.row-actions button{height:25px;padding:0 7px;color:#718096;font-size:var(--font-size-caption);border:1px solid #dfe4eb;border-radius:5px;background:#fff}.row-actions .text-action{color:#315ee8;border-color:#bdcaf0}.student-cell{display:flex;align-items:center;gap:9px}.student-cell>span{width:30px;height:30px;display:grid;place-items:center;color:#fff;font-size:var(--font-size-caption);background:linear-gradient(145deg,#5279df,#284aa7);border-radius:8px}.student-cell>div{display:flex;flex-direction:column}.student-cell strong{color:#344259;font-size:var(--font-size-caption)}.student-cell small{margin-top:3px;color:#929dab;font-size:var(--font-size-caption)}.late-tag{margin-left:6px;padding:2px 5px;color:#c64d3c;font-size:7px;font-style:normal;background:#fff0ed;border-radius:7px}.auto-score{color:#315ee8!important;font-size:var(--font-size-caption)}.review-button{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 10px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c6d2f1;border-radius:6px;background:#fff}.review-drawer{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.review-submission,.review-rubric{padding:18px;border:1px solid #e4e8ee;border-radius:10px}.review-submission>span{color:#315ee8;font-size:var(--font-size-caption);font-weight:700}.review-submission h3,.review-rubric h3{margin:7px 0 10px;font-size:var(--font-size-body)}.review-submission p{color:#6e7b8d;font-size:var(--font-size-caption);line-height:1.7}.review-submission pre{margin:15px 0;padding:13px;overflow:auto;color:#c9d5e6;font:9px/1.7 ui-monospace,monospace;background:#172033;border-radius:8px;white-space:pre-wrap}.review-submission>div{display:flex;justify-content:space-between;align-items:center;padding:12px;color:#6f7c8f;background:#f5f7fa;border-radius:7px}.review-submission>div strong{color:#315ee8;font-size:var(--font-size-subtitle)}.review-rubric>label{display:block;margin:16px 0}.review-rubric label>span{display:flex;justify-content:space-between;color:#67758a;font-size:var(--font-size-caption)}.review-rubric input[type=range]{width:100%;margin-top:8px;accent-color:#315ee8}.review-total{display:flex;align-items:baseline;justify-content:flex-end;padding:14px;color:#718096;background:#f5f7fa;border-radius:8px}.review-total strong{margin-left:auto;color:#315ee8;font-size:27px}.review-total small{font-size:var(--font-size-caption)}.review-rubric .comment-label textarea{width:100%;height:90px;margin-top:8px;padding:9px;color:#4b5a6f;font-size:var(--font-size-caption);line-height:1.7;border:1px solid #dfe4eb;border-radius:7px;resize:none}.student-progress{width:105px}.student-average{color:#315ee8!important;font-size:var(--font-size-caption)}.student-risk{padding:4px 8px;font-size:var(--font-size-caption);border-radius:9px}.student-risk.优秀{color:#6b3ac6;background:#f3efff}.student-risk.正常{color:#167557;background:#eaf8f2}.student-risk.需关注{color:#c05a30;background:#fff0ea}.student-profile-hero{display:flex;align-items:center;gap:14px;padding:20px;color:#fff;background:linear-gradient(125deg,#1c315a,#3567dd);border-radius:12px}.student-profile-hero>span{width:54px;height:54px;display:grid;place-items:center;font-size:var(--font-size-subtitle);background:#ffffff26;border-radius:13px}.student-profile-hero h2{margin:0;font-size:var(--font-size-section)}.student-profile-hero p{margin:4px 0 8px;color:#d4def4;font-size:var(--font-size-caption)}.student-profile-hero em{padding:3px 7px;font-size:var(--font-size-caption);font-style:normal;background:#ffffff24;border-radius:8px}.profile-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:13px 0}.profile-metrics>div{display:flex;flex-direction:column;padding:13px;background:#f6f8fb;border-radius:8px}.profile-metrics small{color:#8a95a5;font-size:var(--font-size-caption)}.profile-metrics strong{margin-top:5px;color:#35445b;font-size:var(--font-size-section)}.student-alert{color:#9a5a2e;background:#fff7eb;border-color:#f0debe}.student-alert b{font-size:var(--font-size-caption)}.student-alert p{margin:5px 0 0;font-size:var(--font-size-caption);line-height:1.6}@media(max-width:1280px){.teacher-table th,.teacher-table td{padding-left:9px;padding-right:9px}.teacher-stat-grid article{padding:14px}.teacher-filterbar{gap:7px}}.markdown-body{min-width:0;white-space:normal}.markdown-empty{margin:0;color:#9aa3b1;font-size:var(--font-size-caption)}.markdown-content{color:#4d5a6f;font-size:var(--font-size-caption);line-height:1.9;word-break:break-word}.markdown-content>:first-child{margin-top:0}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin:22px 0 12px;color:#1d293d;line-height:1.35}.markdown-content h1{font-size:var(--font-size-subtitle)}.markdown-content h2{font-size:var(--font-size-section)}.markdown-content h3{font-size:var(--font-size-control)}.markdown-content h4{font-size:var(--font-size-caption)}.markdown-content p{margin:0 0 12px}.markdown-content ul,.markdown-content ol{margin:0 0 12px;padding-left:22px}.markdown-content li{margin:4px 0}.markdown-content blockquote{margin:0 0 12px;padding:8px 14px;color:#5b6879;background:#f6f8fb;border-left:3px solid #9db8ea;border-radius:0 6px 6px 0}.markdown-content blockquote>:last-child{margin-bottom:0}.markdown-content a{color:#2563eb;text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content code{padding:2px 5px;color:#1d4ed8;font:11px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace;background:#eef3ff;border-radius:4px}.markdown-content hr{margin:20px 0;border:0;border-top:1px solid #e7ebf2}.markdown-content img{max-width:100%;border-radius:6px}.markdown-content table{width:100%;margin:0 0 14px;border-collapse:collapse;font-size:var(--font-size-caption)}.markdown-content th,.markdown-content td{padding:8px 10px;border:1px solid #e5e8ed;text-align:left}.markdown-content th{color:#5b687b;font-weight:600;background:#f6f8fa}.markdown-content .katex-display{margin:14px 0;overflow-x:auto;overflow-y:hidden}.markdown-content .katex{font-size:1.05em}.markdown-content .md-code{margin:0 0 14px;overflow:hidden;background:#172033;border-radius:9px}.markdown-content .md-code-head{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#91a0b8;font:9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;background:#111827}.markdown-content .md-code-head button{padding:0;color:#9fb0c8;font-size:var(--font-size-caption);border:0;background:transparent;cursor:pointer}.markdown-content .md-code-head button:hover{color:#dbe7f8}.markdown-content .md-code-head button.copied{color:#46d59b}.markdown-content .md-code-body{display:flex;align-items:flex-start;overflow-x:auto}.markdown-content .md-code-gutter{flex:0 0 auto;padding:12px 8px 12px 12px;color:#4b5b73;font:10px/1.75 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right;white-space:pre;-webkit-user-select:none;user-select:none}.markdown-content .md-code-pre{flex:1 1 auto;margin:0;padding:12px 14px 12px 6px;overflow:visible;background:transparent;border-radius:0}.markdown-content .md-code-pre code{padding:0;color:#cbd5e1;font:10px/1.75 ui-monospace,SFMono-Regular,Menlo,monospace;background:transparent;white-space:pre}.markdown-content .hljs-comment,.markdown-content .hljs-quote{color:#64748b;font-style:italic}.markdown-content .hljs-keyword,.markdown-content .hljs-selector-tag,.markdown-content .hljs-literal,.markdown-content .hljs-type,.markdown-content .hljs-doctag{color:#c084fc}.markdown-content .hljs-string,.markdown-content .hljs-title,.markdown-content .hljs-section,.markdown-content .hljs-attribute{color:#7ee0b8}.markdown-content .hljs-number,.markdown-content .hljs-symbol,.markdown-content .hljs-bullet,.markdown-content .hljs-regexp{color:#f0a97a}.markdown-content .hljs-built_in,.markdown-content .hljs-name,.markdown-content .hljs-selector-id,.markdown-content .hljs-selector-class{color:#60a5fa}.markdown-content .hljs-attr,.markdown-content .hljs-variable,.markdown-content .hljs-template-variable,.markdown-content .hljs-params{color:#e2b872}.markdown-content .hljs-meta,.markdown-content .hljs-tag{color:#93c5fd}.markdown-content .hljs-emphasis{font-style:italic}.markdown-content .hljs-strong{font-weight:600}.theme-dark .markdown-empty{color:#7d8a9c}.theme-dark .markdown-content{color:#a8b6c9}.theme-dark .markdown-content h1,.theme-dark .markdown-content h2,.theme-dark .markdown-content h3,.theme-dark .markdown-content h4{color:#eef3fa}.theme-dark .markdown-content code{color:#9dc0ff;background:#1b2534}.theme-dark .markdown-content blockquote{color:#9aa8bb;background:#141d29;border-left-color:#3f5b8f}.theme-dark .markdown-content a{color:#7aa7ff}.theme-dark .markdown-content hr{border-top-color:#2a3546}.theme-dark .markdown-content th,.theme-dark .markdown-content td{border-color:#2a3546}.theme-dark .markdown-content th{color:#c2cede;background:#182231}.theme-dark .markdown-content .md-code{background:#0f1622}.theme-dark .markdown-content .md-code-head{background:#0d141f}.latex-dialog-body{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:16px}.latex-editor-pane{min-width:0;display:flex;flex-direction:column;gap:10px}.latex-input{width:100%;padding:10px 12px;color:#27354a;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;border:1px solid #d9d9d9;border-radius:8px;outline:none;resize:vertical}.latex-input:focus{border-color:#91b3f5;box-shadow:0 0 0 2px #2563eb14}.latex-input::placeholder{color:#aeb6c2}.latex-preview-label{color:#9aa3b1;font-size:var(--font-size-caption);letter-spacing:.08em}.latex-preview{min-height:128px;display:flex;align-items:center;justify-content:center;padding:16px;overflow-x:auto;background:#f7f9fc;border:1px dashed #dfe5ee;border-radius:8px}.latex-preview .markdown-body{width:100%;text-align:center}.latex-preview .markdown-empty{text-align:center}.latex-symbol-pane{max-height:424px;overflow:auto;padding-right:4px}.latex-symbol-group+.latex-symbol-group{margin-top:14px}.latex-symbol-group strong{display:block;margin-bottom:7px;color:#526075;font-size:var(--font-size-caption)}.latex-symbol-grid{display:flex;flex-wrap:wrap;gap:6px}.latex-symbol{min-width:40px;height:28px;padding:0 9px;color:#4b5b73;font-size:var(--font-size-caption);border:1px solid #e3e8f0;border-radius:6px;background:#fbfcfe;cursor:pointer;transition:color .15s,background .15s,border-color .15s,box-shadow .15s}.latex-symbol:hover{color:#2563eb;background:#fff;border-color:#b9cdf3;box-shadow:0 2px 6px #2563eb1a}.latex-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid #eef1f5}.latex-dialog-foot>span{color:#9aa3b1;font-size:var(--font-size-caption)}.latex-dialog-foot>div{display:flex;gap:8px}.markdown-content .md-media{display:block;margin:16px 0}.markdown-content .md-media img,.markdown-content .md-media video{display:block;width:100%;max-width:100%;border-radius:8px;background:#0f1622}.markdown-content .md-media video{max-height:540px}.markdown-content .md-media-caption{display:block;margin-top:8px;color:#8b95a5;font-size:var(--font-size-caption);text-align:center}.markdown-content .md-media-missing{display:inline-block;padding:6px 10px;color:#b45309;font-size:var(--font-size-caption);background:#fffbeb;border:1px dashed #fcd34d;border-radius:6px}.theme-dark .markdown-content .md-media-caption{color:#7d8a9c}.theme-dark .markdown-content .md-media-missing{color:#fbbf24;background:#2a2313;border-color:#6b5518}.markdown-content .md-media-open{display:block;cursor:zoom-in}.markdown-content .md-attachment-missing,.markdown-content .md-attachment-pending{display:inline-block;margin:10px 0;color:#98a1af;font-size:var(--font-size-caption)}.markdown-content .md-attachment-card{display:flex;align-items:center;gap:12px;max-width:560px;margin:16px 0;padding:12px 14px;background:#f7f9fc;border:1px solid #e3e9f2;border-radius:10px}.markdown-content .md-attachment-icon{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:42px;height:48px;color:#315ee8;font-size:var(--font-size-caption);font-weight:700;letter-spacing:.2px;background:#eaf0ff;border:1px solid #c9d8fb;border-radius:7px}.markdown-content .md-attachment-icon[data-ext=PDF]{color:#c2410c;background:#fff1e8;border-color:#f8c9a8}.markdown-content .md-attachment-icon[data-ext=ZIP],.markdown-content .md-attachment-icon[data-ext=RAR]{color:#7c3aed;background:#f3edff;border-color:#d9c8ff}.markdown-content .md-attachment-icon[data-ext=PPT],.markdown-content .md-attachment-icon[data-ext=PPTX]{color:#c2410c;background:#fff3ed;border-color:#ffd0b8}.markdown-content .md-attachment-icon[data-ext=DOC],.markdown-content .md-attachment-icon[data-ext=DOCX]{color:#1d4ed8;background:#eef3ff;border-color:#c9d8fb}.markdown-content .md-attachment-icon[data-ext=XLS],.markdown-content .md-attachment-icon[data-ext=XLSX]{color:#15803d;background:#ecfdf3;border-color:#bfe8cf}.markdown-content .md-attachment-main{display:flex;flex:1;flex-direction:column;min-width:0;gap:3px}.markdown-content .md-attachment-name{overflow:hidden;color:#1d293d;font-size:var(--font-size-caption);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.markdown-content .md-attachment-meta{color:#98a1af;font-size:var(--font-size-caption)}.markdown-content .md-attachment-action{flex:0 0 auto;padding:5px 10px;color:#315ee8;font-size:var(--font-size-caption);white-space:nowrap;background:#fff;border:1px solid #c9d8fb;border-radius:6px}.markdown-content .md-attachment-action:hover{background:#edf3ff;text-decoration:none}.theme-dark .markdown-content .md-attachment-missing,.theme-dark .markdown-content .md-attachment-pending{color:#7d8a9c}.theme-dark .markdown-content .md-attachment-card{background:#ffffff0a;border-color:#96a3b747}.theme-dark .markdown-content .md-attachment-icon{color:#9bbcf8;background:#5078c82e;border-color:#7896dc59}.theme-dark .markdown-content .md-attachment-name{color:#e8eef8}.theme-dark .markdown-content .md-attachment-meta{color:#7d8a9c}.theme-dark .markdown-content .md-attachment-action{color:#9bbcf8;background:transparent;border-color:#7896dc73}.theme-dark .markdown-content .md-attachment-action:hover{background:#5078c82e}.media-dialog-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.media-form{display:flex;flex-direction:column;gap:12px}.media-field{display:flex;flex-direction:column;gap:6px}.media-field>span{color:#526075;font-size:var(--font-size-caption);font-weight:600}.media-field input{width:100%;height:34px;padding:0 11px;color:#27354a;font-size:var(--font-size-caption);background:#fff;border:1px solid #dfe4ec;border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.media-field input:focus{border-color:#91b3f5;box-shadow:0 0 0 3px #2563eb1a}.media-field input::placeholder{color:#aeb6c2}.media-hint{margin:2px 0 0;color:#9aa3b1;font-size:var(--font-size-caption);line-height:1.7}.media-preview{display:flex;flex-direction:column;gap:8px}.media-preview-label{color:#9aa3b1;font-size:var(--font-size-caption);letter-spacing:.08em}.media-preview-box{min-height:168px;display:flex;align-items:center;justify-content:center;padding:12px;overflow:auto;background:#f7f9fc;border:1px dashed #dfe5ee;border-radius:8px}.media-preview-box .markdown-body{width:100%}.media-preview-box .md-media{margin:0}.media-dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid #eef1f5}.media-dialog-foot>span{color:#9aa3b1;font-size:var(--font-size-caption)}.media-dialog-foot>div{display:flex;gap:8px}.media-file-input{display:none}.media-upload{display:flex;flex-direction:column;gap:8px}.media-upload-button{display:flex;align-items:center;gap:9px;width:100%;min-height:62px;padding:12px 14px;color:#4b5b73;font-size:var(--font-size-caption);text-align:left;border:1px dashed #cfd8e6;border-radius:8px;background:#fbfcfe;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.media-upload-button:hover:not(:disabled){color:#2563eb;border-color:#9bbcf8;background:#f5f8ff}.media-upload-button:disabled{cursor:progress;opacity:.75}.media-upload-button .anticon{font-size:17px}.media-progress{height:5px;overflow:hidden;background:#eef1f6;border-radius:3px}.media-progress>i{display:block;height:100%;background:linear-gradient(90deg,#4c7cf4,#2563eb);border-radius:3px;transition:width .2s}.media-progress-text{margin:0;color:#2563eb;font-size:var(--font-size-caption)}.media-done{margin:0;color:#15803d;font-size:var(--font-size-caption)}.media-error{margin:0;padding:8px 10px;color:#b91c1c;font-size:var(--font-size-caption);background:#fef2f2;border:1px solid #fecaca;border-radius:6px}.list-summary>span{margin-left:auto}.content-list-panel>.ant-spin-nested-loading{flex:1;min-height:0}.content-list-panel .ant-spin-container{height:100%;display:flex;flex-direction:column}.content-outline{min-height:0}.editor-load-error{padding:18px 20px;color:#b45309;font-size:var(--font-size-caption);background:#fffbeb;border:1px solid #fcd34d;border-radius:10px}.experiment-state{margin:22px auto;padding:16px 20px;max-width:760px;color:#5b6879;font-size:var(--font-size-caption);text-align:center;background:#fff;border:1px solid #e5e9ef;border-radius:10px}.experiment-state.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.experiment-state.warn{color:#b45309;background:#fffbeb;border-color:#fcd34d}.experiment-config-panel{padding:22px 24px 14px;background:#fff;border:1px solid #e3e7ee;border-radius:12px}.experiment-actions{display:flex;align-items:center;gap:9px;padding-top:14px;margin-top:6px;border-top:1px solid #eef1f5}.experiment-actions>span:first-child{margin-right:auto}.experiment-tag{padding:3px 9px;color:#64748b;font-size:var(--font-size-caption);background:#f1f5f9;border-radius:9px}.experiment-tag.published{color:#15803d;background:#ecfdf3}.rubric-total{height:32px;display:flex;align-items:center;padding:0 11px;color:#15803d;font-size:var(--font-size-caption);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px}.rubric-total.invalid{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.experiment-hint{margin-left:10px;color:#98a1af;font-size:var(--font-size-caption)}.experiment-task-panel{margin-top:18px}.experiment-workbench-quality{color:#dce5f1}.experiment-score-card.auto{border-left-color:#2563eb}.experiment-score-card .grade-pending{margin-left:8px;padding:2px 7px;color:#b45309;font-size:var(--font-size-caption);font-style:normal;background:#fef3c7;border-radius:5px}.evaluation-case-list{margin:10px 0 0;padding:0;list-style:none}.evaluation-case-list li{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:var(--font-size-caption);color:#64748b}.evaluation-case-list li i{width:14px;font-style:normal;color:#dc2626}.evaluation-case-list li.passed i{color:#16a34a}.evaluation-case-list li span{flex:1}.evaluation-case-list li b{color:#0f172a}.answer-diff{margin-top:10px;overflow:hidden;background:#0f172a;border-radius:9px}.answer-diff>header{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:#93a1b5;font-size:var(--font-size-caption);background:#111827}.answer-diff-modes{display:flex;gap:6px}.answer-diff-modes button{height:22px;padding:0 8px;color:#9aa8bd;font-size:var(--font-size-caption);border:1px solid #334155;border-radius:5px;background:#1e293b;cursor:pointer}.answer-diff-modes button.active{color:#fff;border-color:#3b82f6;background:#1d4ed8}.answer-diff-body{max-height:290px;overflow:auto;padding:8px 0;font:10px/1.75 ui-monospace,SFMono-Regular,Menlo,monospace}.answer-diff-row{display:grid;grid-template-columns:18px 1fr;align-items:baseline;padding:0 12px;color:#cbd5e1;white-space:pre-wrap}.answer-diff-row.removed{color:#fca5a5;background:#dc262624}.answer-diff-row.added{color:#86efac;background:#16a34a26}.answer-diff-sign{color:#64748b;-webkit-user-select:none;user-select:none}.answer-diff-row.removed .answer-diff-sign{color:#ef4444}.answer-diff-row.added .answer-diff-sign{color:#22c55e}.answer-diff-head,.answer-diff-split-row{display:grid;grid-template-columns:1fr 1fr;gap:1px}.answer-diff-head{margin-bottom:6px;color:#64748b;font-size:var(--font-size-caption)}.answer-diff-head span{padding:0 12px}.answer-diff-cell{padding:0 12px;color:#cbd5e1;white-space:pre-wrap;word-break:break-all}.answer-diff-cell.removed{color:#fca5a5;background:#dc262624}.answer-diff-cell.added{color:#86efac;background:#16a34a26}.answer-diff mark{padding:0 1px;color:#0f172a;background:#fbbf24;border-radius:2px}.answer-diff>footer{padding:6px 12px;color:#64748b;font-size:var(--font-size-caption);background:#111827}.evaluation-report{width:min(1080px,calc(100% - 52px));margin:20px auto 40px}.evaluation-hero .result-score-ring{position:relative}.evaluation-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:14px}.evaluation-score-item{padding:13px 15px;background:#fff;border:1px solid #e3e8ef;border-radius:10px}.evaluation-score-item>span{display:flex;justify-content:space-between;color:#61708a;font-size:var(--font-size-caption)}.evaluation-score-item b{color:#1f2c44}.evaluation-score-item>div{height:5px;margin-top:8px;overflow:hidden;background:#edf0f4;border-radius:4px}.evaluation-score-item i{display:block;height:100%;background:#20a36c;border-radius:4px}.evaluation-score-item i.low{background:#e0a33c}.evaluation-cases{margin-top:14px}.evaluation-case{border-bottom:1px solid #edf0f4}.evaluation-case:last-child{border-bottom:0}.evaluation-case>header{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:11px;padding:15px 20px;cursor:pointer}.evaluation-case>header>div{min-width:0}.evaluation-case h3{display:flex;align-items:center;gap:7px;margin:0 0 4px;font-size:var(--font-size-caption);color:#33415a}.evaluation-case h3 em{padding:2px 6px;color:#8a5a12;font-size:var(--font-size-caption);font-style:normal;background:#fdf0d8;border-radius:4px}.evaluation-case small{color:#8190a5;font-size:var(--font-size-caption)}.evaluation-case-icon{color:#e76452;font-size:var(--font-size-control)}.evaluation-case.passed .evaluation-case-icon{color:#20a36c}.evaluation-case-toggle{height:25px;padding:0 10px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:6px;background:#fff}.evaluation-case-note{color:#9aa5b5;font-size:var(--font-size-caption)}.evaluation-case-body{padding:0 20px 16px}.evaluation-case-io{display:grid;grid-template-columns:1fr 1fr;gap:10px}.evaluation-case-io>div{overflow:hidden;background:#f7f9fc;border:1px solid #e7ebf1;border-radius:8px}.evaluation-case-io span{display:block;padding:6px 11px;color:#7d8a9c;font-size:var(--font-size-caption);background:#eef2f7}.evaluation-case-io pre{margin:0;padding:10px 11px;overflow:auto;color:#3d4a60;font:10px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap}.theme-dark .evaluation-score-item,.theme-dark .evaluation-case-toggle{color:#c7d3ea;background:#151e2b;border-color:#2a3546}.theme-dark .evaluation-score-item b,.theme-dark .evaluation-case h3{color:#e6edf7}.theme-dark .evaluation-score-item>div{background:#273244}.theme-dark .evaluation-case{border-color:#283345}.theme-dark .evaluation-case-io>div{background:#111925;border-color:#283345}.theme-dark .evaluation-case-io span{background:#182231}.theme-dark .evaluation-case-io pre{color:#c5d1e2}.evaluation-report-link{height:27px;margin-top:10px;padding:0 11px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:7px;background:#fff}.evaluation-history{width:min(1080px,calc(100% - 52px));display:flex;gap:8px;flex-wrap:wrap;margin:18px auto 0}.evaluation-history button{height:27px;padding:0 11px;color:#5d6c85;font-size:var(--font-size-caption);border:1px solid #dbe2ea;border-radius:7px;background:#fff;cursor:pointer}.evaluation-history button.active{color:#fff;border-color:#315ee8;background:#315ee8}.evaluation-history-button{height:28px;display:flex;align-items:center;gap:6px;padding:0 10px;color:#41506a;font-size:var(--font-size-caption);border:1px solid #d8dee8;border-radius:7px;background:#fff}.evaluation-result-page .evaluation-report{margin-top:14px}.theme-dark .evaluation-history button,.theme-dark .evaluation-history-button,.theme-dark .evaluation-report-link{color:#9bb5ff;border-color:#3e527b;background:#17243a}.theme-dark .evaluation-history button.active{color:#fff;border-color:#315ee8;background:#315ee8}.grade-simulation{margin:14px 0;padding:12px 13px;background:#f4f8ff;border:1px solid #d9e4f8;border-radius:9px}.grade-simulation header{display:flex;align-items:center;gap:6px;color:#2f57c4;font-size:var(--font-size-caption);font-weight:600}.grade-simulation header small{margin-left:auto;color:#93a3b8;font-size:var(--font-size-caption);font-weight:400}.grade-simulation ul{margin:9px 0 0;padding:0;list-style:none}.grade-simulation li{display:flex;justify-content:space-between;padding:3px 0;color:#5d6c85;font-size:var(--font-size-caption)}.grade-simulation li b{color:#1f2c44}.grade-simulation p{margin:8px 0 0;color:#5d6c85;font-size:var(--font-size-caption)}.grade-simulation p em{margin-left:7px;padding:2px 6px;font-style:normal;background:#e3edff;border-radius:5px}.grade-simulation .grade-simulation-time{margin-top:6px;color:#93a3b8;font-size:var(--font-size-caption)}.grade-simulation-hint{display:block;margin-top:3px;color:#2f57c4;font-size:var(--font-size-caption)}.theme-dark .grade-simulation{background:#16233a;border-color:#2b3f63}.theme-dark .grade-simulation li b{color:#e6edf7}.evaluation-block{margin-top:6px;padding:16px 18px;background:#f8fafd;border:1px solid #e4eaf2;border-radius:11px}.evaluation-hint{margin:6px 0 0;color:#7b8798;font-size:var(--font-size-caption);line-height:1.7}.evaluation-hint.warn{padding:9px 11px;color:#9a6512;background:#fdf6e8;border-radius:7px}.evaluation-hint.ok{display:flex;align-items:center;gap:6px;padding:9px 11px;color:#18865f;background:#effaf5;border-radius:7px}.evaluation-cases-head{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}.evaluation-cases-head strong{font-size:var(--font-size-caption);color:#33415a}.evaluation-case{margin-top:8px;background:#fff;border:1px solid #e4eaf2;border-radius:9px}.evaluation-case>header{display:flex;align-items:center;gap:9px;padding:9px 11px}.evaluation-case-index{width:20px;height:20px;display:grid;place-items:center;color:#315ee8;font-size:var(--font-size-caption);font-weight:700;background:#edf3ff;border-radius:6px}.evaluation-case-body{padding:4px 13px 12px;border-top:1px solid #eef2f7}.evaluation-case-body .form-grid{margin-top:10px}.rubric-coverage{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.rubric-coverage>div{display:flex;align-items:center;gap:7px;padding:7px 11px;font-size:var(--font-size-caption);background:#fff;border:1px solid #e4eaf2;border-radius:8px}.rubric-coverage span{color:#61708a}.rubric-coverage b{color:#1f2c44}.rubric-coverage em{padding:2px 6px;font-style:normal;border-radius:5px}.rubric-coverage .ok em{color:#18865f;background:#e9f8f1}.rubric-coverage .bad em{color:#b45309;background:#fdf3e3}.theme-dark .evaluation-block{background:#131c2a;border-color:#26313f}.theme-dark .evaluation-case{background:#151e2b;border-color:#26313f}.theme-dark .evaluation-case-body{border-color:#222c3a}.theme-dark .rubric-coverage>div{background:#151e2b;border-color:#26313f}.theme-dark .rubric-coverage b{color:#e6edf7}.run-metric-strip{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:11px 18px;background:#0f1b2e;border-top:1px solid #1e2b40}.run-metric-strip .run-metric-title{display:flex;align-items:center;gap:6px;color:#7fd4b0;font-size:var(--font-size-caption);font-weight:600}.run-metric-strip>div{display:flex;flex-direction:column;gap:3px}.run-metric-strip small{color:#8296ae;font-size:var(--font-size-caption)}.run-metric-strip strong{color:#e8f0fa;font-size:var(--font-size-caption);font-weight:700}.run-metric-score{display:flex;flex-direction:column;gap:3px;margin-left:auto;text-align:right}.run-metric-score small{color:#8296ae;font-size:var(--font-size-caption)}.run-metric-score small b{margin:0 3px;color:#ffd479;font-size:var(--font-size-caption)}.run-metric-score em{color:#9fb0c6;font-size:var(--font-size-caption);font-style:normal}.console-head-actions{display:flex;align-items:center;gap:8px}.console-history{height:22px;padding:0 6px;color:#9fb0c6;font-size:8px;border:1px solid #2a3a52;border-radius:5px;background:#131f31}.console-divider{margin:6px 0 2px;padding-top:6px;color:#7fd4b0;font-size:8px;font-weight:600;border-top:1px dashed #26374f}.console-run-line{color:#c8d6e6}.console-run-line[data-error=true]{color:#f1928a}.stop-button{padding:7px 11px;color:#fff;font-size:var(--font-size-caption);border:0;border-radius:7px;background:#dc2626}.header-icon-button{width:30px;height:30px;display:grid;place-items:center;color:#5d6c85;font-size:var(--font-size-caption);border:1px solid #dbe2ea;border-radius:8px;background:#fff;cursor:pointer}.header-icon-button:hover{color:#315ee8;border-color:#b9c9f0}.experiment-score-card{display:grid;grid-template-columns:auto auto;align-items:center;gap:8px 16px;margin:12px 24px 0;padding:14px 18px;background:#fff;border:1px solid #e3e8ef;border-left:3px solid #20a36c;border-radius:11px}.experiment-score-card>span{display:flex;align-items:center;gap:6px;color:#1c8a63;font-size:var(--font-size-caption);font-weight:600}.experiment-score-card>strong{justify-self:end;color:#0f172a;font-size:var(--font-size-caption)}.experiment-score-card>strong{font-size:var(--font-size-caption)}.experiment-score-card>strong small{margin-left:3px;color:#8190a5;font-size:var(--font-size-caption);font-weight:400}.experiment-score-items{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.experiment-score-items em{padding:3px 8px;color:#41506a;font-size:var(--font-size-caption);font-style:normal;background:#f2f5f9;border-radius:6px}.experiment-return-tip{margin:8px 0 0;padding:8px 10px;color:#b45309;font-size:var(--font-size-caption);line-height:1.6;background:#fff7ed;border-radius:7px}.assignment-return-banner{margin:12px 0;padding:11px 14px;color:#9a6512;font-size:var(--font-size-caption);line-height:1.7;background:#fdf6e8;border:1px solid #f2e0bd;border-radius:9px}.grade-row-actions{display:flex;flex-wrap:wrap;gap:6px}.grade-row-actions button{height:25px;display:flex;align-items:center;gap:5px;padding:0 9px;color:#41506a;font-size:var(--font-size-caption);border:1px solid #dbe2ea;border-radius:6px;background:#fff;cursor:pointer}.grade-row-actions button:hover{color:#315ee8;border-color:#b9c9f0}.grade-score-form{display:flex;flex-direction:column;gap:12px}.grade-score-tip{display:flex;gap:8px;margin:0;padding:11px;color:#315ee8;font-size:var(--font-size-caption);line-height:1.7;background:#f2f6ff;border-radius:8px}.grade-score-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eef2f7}.grade-score-row label{display:flex;flex-direction:column;color:#33415a;font-size:var(--font-size-caption)}.grade-score-row label small{margin-top:2px;color:#93a3b8;font-size:var(--font-size-caption)}.grade-score-total{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;background:#f4f8ff;border-radius:8px}.grade-score-total span{color:#61708a;font-size:var(--font-size-caption)}.grade-score-total strong{color:#1f2c44;font-size:var(--font-size-content)}.grade-score-field{display:flex;flex-direction:column;gap:6px}.grade-score-field label{color:#33415a;font-size:var(--font-size-caption)}.grade-score-field label small{margin-left:6px;color:#d4694f;font-size:var(--font-size-caption)}.grade-score-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.grade-history-items{display:flex;flex-direction:column;gap:9px}.grade-history-item{padding:11px 13px;background:#f7f9fc;border:1px solid #e7ebf1;border-radius:9px}.grade-history-item header{display:flex;align-items:center;justify-content:space-between;color:#41506a;font-size:var(--font-size-caption)}.grade-history-item header b{color:#1f2c44}.grade-history-item header small{color:#93a3b8;font-size:var(--font-size-caption)}.grade-history-item p{margin:7px 0 0;color:#5d6c85;font-size:var(--font-size-caption);line-height:1.7}.grade-history-reason{margin-top:6px;color:#9a6512;font-size:var(--font-size-caption)}.grading-required{color:#d4694f;font-size:var(--font-size-caption)}.course-grade-panel{display:flex;flex-direction:column;gap:12px}.course-grade-selectors{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.course-grade-weight{display:flex;align-items:center;gap:8px;padding:6px 11px;color:#41506a;font-size:var(--font-size-caption);background:#f4f8ff;border-radius:7px}.course-grade-weight b{color:#1f2c44}.course-grade-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.course-grade-use{height:25px;padding:0 9px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:6px;background:#fff;cursor:pointer}.course-grade-suggest{display:inline-flex;align-items:baseline;gap:5px;color:#26344a;font-size:var(--font-size-caption);font-weight:600}.course-grade-suggest small{color:#8b96a7;font-size:var(--font-size-caption);font-weight:400}.course-grade-use{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 10px;line-height:1;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:6px;background:#fff;cursor:pointer}.course-grade-use{margin-left:8px;vertical-align:middle}.course-grade-use:hover{background:#eef3ff;border-color:#a9bcf0}body.theme-dark .course-grade-suggest{color:#e2eaf5}body.theme-dark .course-grade-suggest small{color:#93a3b8}body.theme-dark .course-grade-use,.theme-dark .header-icon-button,.theme-dark .grade-row-actions button,.theme-dark .course-grade-use{color:#9bb5ff;border-color:#3e527b;background:#17243a}.theme-dark .experiment-score-card>strong,.theme-dark .grade-score-total strong,.theme-dark .grade-history-item header b{color:#e6edf7}.theme-dark .experiment-score-items em{color:#c7d3ea;background:#1d2836}.theme-dark .grade-score-total,.theme-dark .course-grade-weight{background:#16233a}.theme-dark .grade-history-item{background:#131c2a;border-color:#26313f}.theme-dark .grade-score-tip{color:#9bb5ff;background:#16233a}.history-button{height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;color:#41506a;font-size:var(--font-size-caption);border:1px solid #d8dee8;border-radius:7px;background:#fff;cursor:pointer}.history-button:disabled{opacity:.5}.workspace-actions{display:flex;gap:9px;margin-bottom:10px}.workspace-actions-tip{margin:0 0 14px;color:#8b96a7;font-size:var(--font-size-caption);line-height:1.7}.workspace-version{margin-bottom:9px;padding:11px 13px;background:#f8fafd;border:1px solid #e4eaf2;border-radius:9px}.workspace-version.active{border-color:#9eb4ef;background:#f3f6ff}.workspace-version>header{display:flex;align-items:center;gap:9px;font-size:var(--font-size-caption)}.workspace-version>header b{color:#315ee8;font-size:var(--font-size-caption)}.workspace-version>header span{color:#33415a}.workspace-version>header small{margin-left:auto;color:#93a3b8;font-size:var(--font-size-caption)}.workspace-version>p{margin:6px 0 0;color:#7b8798;font-size:var(--font-size-caption)}.workspace-version-actions{display:flex;gap:8px;margin-top:9px}.workspace-version-actions button{height:25px;padding:0 9px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:6px;background:#fff;cursor:pointer}.workspace-version-actions button:disabled{opacity:.5;cursor:not-allowed}.workspace-version-files{margin-top:10px;border-top:1px dashed #dde4ee;padding-top:9px}.workspace-version-files>div{margin-bottom:8px}.workspace-version-files span{display:flex;align-items:center;gap:7px;color:#41506a;font-size:var(--font-size-caption);font-weight:600}.workspace-version-files span em{padding:1px 5px;color:#7b8798;font-size:var(--font-size-caption);font-style:normal;background:#eef2f7;border-radius:4px}.workspace-version-files pre{margin:5px 0 0;padding:8px 10px;max-height:160px;overflow:auto;color:#4b5a72;font:9px/1.7 ui-monospace,Menlo,monospace;white-space:pre-wrap;background:#fff;border:1px solid #e7ebf1;border-radius:7px}.theme-dark .history-button,.theme-dark .workspace-version-actions button{color:#9bb5ff;border-color:#3e527b;background:#17243a}.theme-dark .workspace-version{background:#131c2a;border-color:#26313f}.theme-dark .workspace-version.active{background:#17233a;border-color:#3c5793}.theme-dark .workspace-version>header span{color:#dbe4f0}.theme-dark .workspace-version-files pre{color:#c5d1e2;background:#111925;border-color:#283345}.file-tree{background:#111a27;border-bottom:1px solid #223047}.file-tree-head{display:flex;align-items:center;justify-content:space-between;gap:8px;height:34px;padding:0 10px;color:#93a1b5;font-size:var(--font-size-caption)}.file-tree-title{flex:1;min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden;white-space:nowrap}.file-tree-title b{font-weight:600;color:#b9c6d8}.file-tree-head em{padding:1px 6px;color:#7fd4b0;font-size:var(--font-size-caption);font-style:normal;background:#123024;border-radius:9px}.file-tree-tools{flex:0 0 auto;display:flex;align-items:center;gap:6px}.file-tree-tools .font-controls{margin-left:0;padding:0}.file-tree-list{margin:0;padding:0 6px 6px;list-style:none}.file-tree-list li{display:flex;align-items:center;gap:4px;border-radius:6px}.file-tree-list li.active{background:#1b2b45}.file-tree-node{flex:1;min-width:0;display:flex;align-items:center;gap:7px;height:26px;padding:0 8px;color:#c3d0e2;font-size:var(--font-size-caption);text-align:left;border:0;background:transparent;cursor:pointer}.file-tree-node:hover{color:#9bc0ff}.file-tree-node span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-tree-node em{padding:1px 5px;color:#8b9bb0;font-size:var(--font-size-caption);font-style:normal;background:#1e2b40;border-radius:4px}.file-tree-actions{display:flex;gap:2px;padding-right:6px;opacity:0}.file-tree-list li:hover .file-tree-actions{opacity:1}.file-tree-actions button{width:22px;height:22px;display:grid;place-items:center;color:#8b9bb0;font-size:var(--font-size-caption);border:0;border-radius:5px;background:transparent;cursor:pointer}.file-tree-actions button:hover{color:#fff;background:#2a3b57}.file-tree-empty{padding:8px;color:#6d7a8d;font-size:var(--font-size-caption)}.file-tree-add{width:calc(100% - 12px);height:27px;display:flex;align-items:center;justify-content:center;gap:6px;margin:0 6px 8px;color:#9bb5ff;font-size:var(--font-size-caption);border:1px dashed #34486b;border-radius:6px;background:transparent;cursor:pointer}.file-tree-add:hover{background:#16233a}.file-prompt p{margin:0 0 9px;color:#7b8798;font-size:var(--font-size-caption)}.local-draft-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 24px 0;padding:12px 16px;background:#fffbeb;border:1px solid #f5e2b0;border-radius:10px}.local-draft-banner>span{display:flex;flex-direction:column;gap:3px;color:#9a6512;font-size:var(--font-size-caption)}.local-draft-banner b{color:#8a5a12}.local-draft-banner small{color:#a8843f;font-size:var(--font-size-caption)}.local-draft-banner>div{display:flex;gap:8px}.local-draft-banner button{height:26px;padding:0 10px;font-size:var(--font-size-caption);border-radius:6px;cursor:pointer}.local-draft-banner .draft-restore{color:#fff;border:0;background:#d97706}.local-draft-banner .draft-restore:disabled{opacity:.5}.local-draft-banner .draft-discard{color:#8a5a12;border:1px solid #e6cf9a;background:#fff}.theme-dark .local-draft-banner{background:#2a2113;border-color:#4a3a1c}.code-pane .editor-area{grid-template-columns:1fr;padding:0;overflow:hidden}.code-editor{flex:1;min-height:0;overflow:hidden;background:#111823}.code-editor .cm-editor{height:100%}.code-editor .cm-editor.cm-focused{outline:none}.code-editor .cm-scroller{overflow:auto;font:var(--code-font-size, 12px)/1.75 ui-monospace,SFMono-Regular,Menlo,monospace}.code-editor .cm-gutters{color:#435066;background:#0e1520;border-right:1px solid #1e2a3c}.code-editor .cm-activeLineGutter{background:#16202f;color:#8fa4c0}.code-editor .cm-activeLine{background:#141d2b}.code-editor .cm-foldGutter span{color:#4a5a75}.code-editor .cm-tooltip{color:#c8d6e6;background:#131f31;border:1px solid #2a3a52;border-radius:7px}.code-editor .cm-tooltip-autocomplete ul li[aria-selected]{color:#fff;background:#1d4ed8}.code-editor .cm-panels{color:#c8d6e6;background:#131f31;border-color:#2a3a52}.code-editor .cm-searchMatch{background:#facc1547}.code-editor .cm-searchMatch.cm-searchMatch-selected{background:#facc1580}.code-editor .cm-selectionBackground{background:#3b82f64d!important}.cm-error-line{background:#dc26262e;box-shadow:inset 3px 0 #dc2626}.theme-light .code-editor .cm-gutters{color:#8b98a8;background:#fff;border-right-color:#eef1f6}.theme-light .code-editor .cm-activeLineGutter{background:transparent;color:#4b5b73;font-weight:600}.theme-light .code-editor .cm-activeLine{background:transparent}.theme-light .code-editor .cm-foldGutter span{color:#9aa6b5}.theme-light .code-editor .cm-tooltip{color:#27364d;background:#fff;border-color:#dfe5ed}.theme-light .code-editor .cm-tooltip-autocomplete ul li[aria-selected]{color:#fff;background:#315ee8}.theme-light .code-editor .cm-panels{color:#27364d;background:#f7f9fc;border-color:#dfe5ed}.theme-light .code-editor .cm-searchMatch{background:#facc1559}.theme-light .code-editor .cm-searchMatch.cm-searchMatch-selected{background:#facc1599}.theme-light .code-editor .cm-selectionBackground{background:#315ee82e!important}.theme-light .cm-error-line{background:#dc262614;box-shadow:inset 3px 0 #dc2626}.console-output p.has-location,.console-run-line.has-location{cursor:pointer;text-decoration:underline dotted}.editor-locked{padding:1px 6px;color:#f0b36b;font-size:var(--font-size-caption);font-weight:600;background:#3a2a16;border:1px solid #5a4322;border-radius:4px}.theme-light .editor-locked{color:#9a6512;background:#fff7e6;border-color:#f0d9a8}.task-filter-tip{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:9px 12px;color:#41506a;font-size:var(--font-size-caption);background:#f2f6ff;border:1px solid #d8e2fb;border-radius:8px}.task-filter-tip strong{color:#315ee8}.task-filter-tip button{height:24px;padding:0 9px;color:#41506a;font-size:var(--font-size-caption);border:1px solid #ccd7ea;border-radius:6px;background:#fff;cursor:pointer}.code-fullscreen-button{display:flex;align-items:center;gap:5px;height:24px;margin-right:8px;padding:0 9px;color:#9bb5ff;font-size:var(--font-size-caption);border:1px solid #34486b;border-radius:6px;background:transparent;cursor:pointer}.code-fullscreen-button:hover{background:#16233a}.code-pane:fullscreen,.code-pane.is-fullscreen{display:flex;flex-direction:row;background:#0f1622}.code-pane.is-fullscreen{position:fixed;inset:0;z-index:1200}.code-pane:fullscreen>.file-tree,.code-pane.is-fullscreen>.file-tree{width:240px;flex:0 0 240px;height:100%;overflow:auto;border-right:1px solid #223047;border-bottom:0}.code-pane:fullscreen>.editor-area,.code-pane.is-fullscreen>.editor-area{flex:1;min-width:0;height:100%}.code-pane:fullscreen>.console-pane,.code-pane.is-fullscreen>.console-pane{display:none}.code-pane:fullscreen>.sim-controls,.code-pane.is-fullscreen>.sim-controls{display:none}.theme-light .code-fullscreen-button{color:#315ee8;border-color:#c7d3f4}.code-pane:fullscreen .file-tree-tools .font-controls,.code-pane.is-fullscreen .file-tree-tools .font-controls{display:none}.code-pane:fullscreen .code-fullscreen-button,.code-pane.is-fullscreen .code-fullscreen-button{margin-right:0}.split-handle{position:relative;cursor:col-resize;touch-action:none;background:transparent}.split-handle:after{content:"";position:absolute;inset:0 2px;background:#38507a;border-radius:3px;opacity:0;transition:opacity .15s}.split-handle:hover:after,.split-handle.dragging:after{opacity:.85}.split-handle.dragging:after{background:#5b8cff}.theme-light .split-handle:after{background:#b9c6db}.theme-light .split-handle.dragging:after{background:#315ee8}.return-detail-link{display:flex;align-items:center;gap:5px;height:26px;padding:0 10px;color:#b4553a;font-size:var(--font-size-caption);border:1px solid #f0cfc4;border-radius:7px;background:#fdeee9;cursor:pointer}.return-detail-link:hover{background:#fbe2da}.theme-dark .return-detail-link{color:#f0a98c;border-color:#5a3a2e;background:#2c1d17}.return-notice-head{display:flex;align-items:flex-start;gap:8px;margin:0 0 14px;padding:11px 13px;color:#9a6512;font-size:var(--font-size-caption);line-height:1.7;background:#fffbeb;border:1px solid #f5e2b0;border-radius:9px}.return-notice-reason{padding:12px 14px;background:#f8fafc;border:1px solid #e7ebf0;border-radius:9px}.return-notice-reason span{color:#8b96a7;font-size:var(--font-size-caption)}.return-notice-reason p{margin:7px 0 0;color:#33415a;font-size:var(--font-size-caption);line-height:1.8;white-space:pre-wrap;word-break:break-word}.return-notice-tip{margin:12px 0 0;color:#9aa5b4;font-size:var(--font-size-caption)}.theme-dark .return-notice-head{color:#e1c377;background:#2a261d;border-color:#44391f}.theme-dark .return-notice-reason{background:#131c2a;border-color:#26313f}.theme-dark .return-notice-reason p{color:#dbe4f0}.return-notice-score{display:flex;align-items:baseline;gap:8px;margin:7px 0 0;color:#1c7a55;font-size:var(--font-size-subtitle);font-weight:700}.return-notice-score small{font-size:var(--font-size-caption);font-weight:400}.return-notice-score em{margin-left:auto;color:#8b96a7;font-size:var(--font-size-caption);font-style:normal;font-weight:400}.return-notice-items{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.return-notice-items em{padding:3px 8px;color:#41506a;font-size:var(--font-size-caption);font-style:normal;background:#fff;border:1px solid #e2e8f1;border-radius:6px}.return-notice-items b{color:#1c7a55}.theme-dark .return-notice-items em{color:#dbe4f0;background:#1a2536;border-color:#2b3a52}.signal-workspace.code-mode{grid-template-columns:250px minmax(420px,1.05fr) minmax(420px,1fr)}@media(max-width:1280px){.signal-workspace.code-mode{grid-template-columns:210px minmax(360px,1fr) minmax(360px,1fr)}}.quality-workspace.code-mode{grid-template-columns:240px minmax(430px,1.05fr) 250px}@media(max-width:1280px){.quality-workspace.code-mode{grid-template-columns:205px minmax(370px,1fr) 225px}}.experiment-grid-layout{align-items:stretch}.experiment-template-item{padding:11px 12px;border:1px solid #e8ecf3;border-radius:9px;background:#fff;cursor:pointer;transition:border-color .16s,background .16s,box-shadow .16s}.experiment-template-item+.experiment-template-item{margin-top:8px}.experiment-template-item:hover{border-color:#c7d6f7;background:#f8faff}.experiment-template-item.active{border-color:#9eb4ef;background:#f2f6ff;box-shadow:inset 3px 0 #315ee8}.experiment-template-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.experiment-template-head strong{min-width:0;overflow:hidden;color:#26344a;font-size:var(--font-size-caption);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.experiment-template-item.active .experiment-template-head strong{color:#1d3fa8}.experiment-template-meta{display:flex;align-items:center;gap:8px;margin-top:6px;color:#98a1af;font-size:var(--font-size-caption)}.experiment-template-meta i{width:3px;height:3px;background:#cfd6e2;border-radius:50%}.expected-hint{margin:6px 0 0;color:#8b96a7;font-size:var(--font-size-caption);line-height:1.8}.expected-hint code{padding:1px 5px;color:#315ee8;font-size:var(--font-size-caption);background:#f1f5ff;border-radius:4px}.expected-error{margin:6px 0 0;color:#c15b3d;font-size:var(--font-size-caption)}.trajectory-header{position:relative}.header-notice{position:absolute;left:50%;transform:translate(-50%);max-width:42%;overflow:hidden;color:#f0b36b;font-size:var(--font-size-caption);text-overflow:ellipsis;white-space:nowrap}.theme-light .header-notice{color:#b45309}.chart-empty{margin:8px 0 0;color:#8b96a7;font-size:var(--font-size-caption);text-align:center}.issue-empty td{padding:18px 12px;color:#8b96a7;font-size:var(--font-size-caption);text-align:center}.step-track i{cursor:pointer}.step-track i.locked{cursor:not-allowed;opacity:.5}.step-track i.selected{outline:2px solid #7aa2ff;outline-offset:1px}.guide-scroll li{cursor:pointer;border-radius:6px;transition:color .15s,background .15s}.guide-scroll li:hover{background:#7aa2ff1a}.guide-scroll li.step-done{color:#7fd0a8}.guide-scroll li.step-active{color:#a9c2ff;font-weight:600}.guide-scroll li.step-selected{background:#7aa2ff29}.guide-scroll li.step-locked{cursor:not-allowed;opacity:.6}.guide-scroll li.step-locked:hover{background:transparent}@keyframes step-focus-pulse{0%{box-shadow:0 0 0 3px #7aa2ffbf}to{box-shadow:0 0 0 3px #7aa2ff00}}.step-focus{animation:step-focus-pulse 1.2s ease-out}.template-link-hint,.assign-scope-tip{margin:8px 0 0;padding:9px 11px;color:#7b8798;font-size:var(--font-size-caption);line-height:1.7;background:#f7f9fc;border:1px solid #e6ebf2;border-radius:7px}.template-link-hint b,.assign-scope-tip b{color:#3c4a5e}.assign-scope-tip{margin:0 0 14px}.theme-dark .template-link-hint,.theme-dark .assign-scope-tip{color:#8b98ab;background:#1b2536;border-color:#33415a}.theme-dark .template-link-hint b,.theme-dark .assign-scope-tip b{color:#dce5f2}.pane-head,.file-tree-head{height:45px}.pane-head>span,.file-tree-title>b,.sim-toolbar .sim-title>strong{font-size:14px;font-weight:600;line-height:1.2}.pane-head>span,.file-tree-title>b,.sim-toolbar .sim-title>strong{color:#e6ebf3}.theme-light .pane-head>span,.theme-light .file-tree-title>b,.theme-light .sim-toolbar .sim-title>strong{color:#26354a}.theme-dark .pane-head>span,.theme-dark .file-tree-title>b,.theme-dark .sim-toolbar .sim-title>strong{color:#e6ebf3}.run-metric-strip .run-metric-score{order:-1;margin-left:0;margin-right:auto;text-align:left;padding-right:18px;border-right:1px solid rgba(140,155,175,.28)}.run-metric-strip .run-metric-score small{font-size:var(--font-size-caption)}.run-metric-strip .run-metric-score small b{font-size:var(--font-size-control)}.run-metric-strip .run-metric-score em{font-size:var(--font-size-caption);font-style:normal;line-height:1.4}.theme-light .run-metric-strip .run-metric-score small{color:#3f4d61}.theme-light .run-metric-strip .run-metric-score small b{color:#b45309}.theme-light .run-metric-strip .run-metric-score em{color:#5b6b80}.theme-dark .run-metric-strip .run-metric-score small{color:#a3b4c9}.theme-dark .run-metric-strip .run-metric-score em{color:#8296ae}.scene-tip{right:12px;bottom:10px;padding:4px 10px;color:#dbe6f5;font-size:11px;line-height:1.4;letter-spacing:.2px;background:#08101c94;border:1px solid rgba(150,170,195,.22);border-radius:7px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.theme-dark{scrollbar-color:#3a4759 #101722;scrollbar-width:thin}.theme-dark ::-webkit-scrollbar{width:10px;height:10px}.theme-dark ::-webkit-scrollbar-track{background:#101722}.theme-dark ::-webkit-scrollbar-corner{background:#101722}.theme-dark ::-webkit-scrollbar-thumb{background:#3a4759;border:2px solid #101722;border-radius:8px}.theme-dark ::-webkit-scrollbar-thumb:hover{background:#4f617a}.result-tags{align-items:center}.result-tags span{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-caption);line-height:1;height:26px;box-sizing:border-box;padding:0 10px}.grade-history-item{margin-bottom:14px;padding:14px 16px}.grade-history-item+.grade-history-item{margin-top:0}.grade-history-item>div:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}.grade-history-item>div:first-child>small{order:-1;min-width:116px;color:#93a3b8;font-size:var(--font-size-caption);font-variant-numeric:tabular-nums}.grade-history-item>div:first-child>strong{font-size:var(--font-size-control)}.grade-history-item>div:first-child>span{font-size:var(--font-size-caption)}.grade-history-item p{font-size:var(--font-size-caption)}.grade-history-reason{font-size:var(--font-size-caption);margin-top:8px}.grade-history-items{margin-top:8px;gap:7px}.grade-history-items em{font-size:var(--font-size-caption)}.test-result.failed{color:#c0442f;background:#fff6f3;border-color:#f3cfc6}.test-result.error{color:#b44332;background:#fff4f1;border-color:#efc3b8}.test-result .run-error{color:#b44332;font-weight:600}.run-output{display:grid;gap:8px;margin-top:11px}.run-output section{overflow:hidden;background:#fff;border:1px solid #e3e8ef;border-radius:9px}.run-output h3{margin:0;padding:9px 14px;color:#66758a;font-size:var(--font-size-caption);font-weight:600;background:#f7f9fc;border-bottom:1px solid #e9edf3}.run-output pre{max-height:260px;overflow:auto;margin:0;padding:12px 14px;color:#334155;font:11px/1.7 ui-monospace,SFMono-Regular,monospace;white-space:pre-wrap;word-break:break-all;background:#fff}.run-empty{padding:16px 19px;color:#8b96a6;font-size:var(--font-size-caption);line-height:1.7}.test-case-list>div.failed{color:#d25543}.test-case-list>div.failed em{color:#b44332;background:#fff0ec}.theme-dark .test-result.failed{background:#3a241f;border-color:#6b3b30}.theme-dark .test-result.error{background:#3a2420;border-color:#704136}.theme-dark .run-output section{background:#151e2b;border-color:#2a3546}.theme-dark .run-output h3{color:#94a2b6;background:#111925;border-color:#283345}.theme-dark .run-output pre{color:#d8e1ed;background:#111925}.theme-dark .test-case-list>div.failed{color:#f08a76}.theme-dark .test-case-list>div.failed em{color:#ffb4a4;background:#3a241f}.submitted-attachments{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 20px;border-top:1px solid #edf0f4}.submitted-attachments>b{color:#344259;font-size:var(--font-size-caption)}.submitted-attachments button{padding:5px 9px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:6px;background:#f7f9ff;cursor:pointer}.theme-dark .submitted-attachments{border-color:#283345}.theme-dark .submitted-attachments>b{color:#dbe5f2}.theme-dark .submitted-attachments button{color:#9bb5ff;border-color:#3e527b;background:#17243a}.submitted-report{margin:16px 20px;padding:16px 18px;color:#3f4d61;font-size:var(--font-size-body);line-height:1.9;letter-spacing:.1px;white-space:pre-wrap;word-break:break-word;background:#f7f9fc;border:1px solid #e7ebf1;border-radius:9px}.theme-dark .submitted-report{color:#d5dfec;background:#131c2a;border-color:#26313f}.submitted-attachments{padding:16px 20px;gap:10px}.submitted-attachments>b{font-size:var(--font-size-caption);font-weight:600}.submitted-attachments button{padding:6px 12px;font-size:var(--font-size-caption);border-radius:7px}.assignment-detail-header>div{font-size:var(--font-size-body);font-weight:600;color:#3f4d61}.assignment-detail-header>div span{font-size:var(--font-size-body)}.assignment-detail-header>button{font-size:var(--font-size-caption)}.assignment-result-page,.assignment-detail-layout{width:calc(100% - 52px)}.student-page{width:calc(100% - 64px)}.course-list-grid{grid-template-columns:repeat(3,1fr)}@media(max-width:1400px){.course-list-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.course-list-grid{grid-template-columns:1fr}}.experiment-search,.assignment-search{flex:0 0 280px;width:280px;height:35px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #e2e6ec;border-radius:8px}.experiment-search input,.assignment-search input{width:100%;min-width:0}.theme-dark .experiment-search,.theme-dark .assignment-search{border-color:#344052;background:#111925}.theme-light .experiment-search,.theme-light .assignment-search{background:var(--soft-muted);border-color:var(--soft-border)}.result-score-ring{position:relative;border:0;background:transparent}.result-score-ring:after{content:"";position:absolute;inset:0;z-index:0;border-radius:50%;background:conic-gradient(#73e1b9 calc(var(--score-percent, 0) * 1%),#ffffff38 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px))}.result-score-ring>strong,.result-score-ring>span{position:relative;z-index:1}.assignment-code-editor .code-editor{height:335px}.assignment-code-editor>.code-body{height:335px;display:flex;flex-direction:row;align-items:stretch;justify-content:flex-start;padding:0;border-top:1px solid #28364a}.assignment-code-editor .code-files{width:180px;flex:0 0 180px;padding:8px;overflow-y:auto;background:#111823;border-right:1px solid #28364a}.assignment-code-editor .code-files-title{display:block;margin:2px 4px 8px;color:#6f7f95;font-size:11px;letter-spacing:.4px}.assignment-code-editor .code-files button{width:100%;padding:7px 9px;color:#aab7c9;font-size:12px;text-align:left;border:0;border-radius:6px;background:transparent;cursor:pointer}.assignment-code-editor .code-files button.active{color:#c9d8ff;background:#1b2941}.assignment-code-editor .code-editor-wrap{flex:1;min-width:0;height:100%}.assignment-code-editor .code-editor-wrap .code-editor{height:100%}.assignment-code-shell{display:contents}.assignment-code-shell.is-fullscreen{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:#0d1420}.assignment-code-shell.is-fullscreen .assignment-code-editor{flex:1;min-height:0;display:flex;flex-direction:column;margin:0;border:0;border-radius:0;overflow:hidden}.assignment-code-shell.is-fullscreen .assignment-code-editor>div:first-child{flex:0 0 39px}.assignment-code-shell.is-fullscreen .assignment-code-editor>.code-body{flex:1;height:auto;min-height:0}.assignment-code-shell.is-fullscreen .code-editor-wrap,.assignment-code-shell.is-fullscreen .code-editor-wrap .code-editor{height:100%}.assignment-code-shell.is-fullscreen .code-run-panel{flex:0 0 200px;height:200px;display:flex;flex-direction:column;gap:8px;padding:10px 14px 12px;overflow-y:auto;background:#0f1622;border-top:1px solid #283345}.assignment-code-shell.is-fullscreen .code-run-panel .test-result{flex:0 0 auto;margin-top:0}.assignment-code-shell.is-fullscreen .code-run-panel .run-output{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;margin-top:0;overflow-y:auto}.assignment-code-shell.is-fullscreen .code-run-panel .run-output section{flex:0 0 auto}.assignment-code-shell.is-fullscreen .code-run-panel .run-output pre{max-height:none}.theme-light .assignment-code-shell.is-fullscreen{background:#f3f6fa}.theme-light .assignment-code-shell.is-fullscreen .code-run-panel{background:#f8fafc;border-top-color:#dfe5ed}.assignment-code-editor>div .code-fullscreen-btn{margin-right:8px}.assignment-code-editor>div .code-head-actions{height:auto;display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent}.assignment-code-editor>div .code-head-actions .code-fullscreen-btn{margin-right:0}.assignment-code-editor .code-editor-wrap,.assignment-code-editor .code-editor-wrap .code-editor,.assignment-code-editor .code-editor-wrap .cm-editor{width:100%}.assignment-code-editor .code-editor,.assignment-code-editor .cm-line,.assignment-code-editor .cm-content{overflow-wrap:normal!important;word-break:normal!important;white-space:pre!important}.assignment-code-editor .code-body span,.assignment-code-editor .cm-line span,.assignment-code-editor .cm-content span{display:inline!important;align-items:initial!important;gap:normal!important}.assignment-code-editor>div>span,.assignment-code-editor>.code-head-actions>span{display:flex;align-items:center;gap:6px}.assignment-code-editor .code-head-actions button{height:27px;padding:0 9px;color:#a9c0ff;font-size:11px;border:1px solid #3c527c;border-radius:6px;background:#1e3155;cursor:pointer}.assignment-code-editor .code-head-actions button:disabled{color:#5c6b82;border-color:#2b384d;background:#16202f;cursor:not-allowed}.assignment-code-editor .code-head-actions .code-font-size{color:#9fb0c6;font-size:11px}.assignment-code-editor .code-editor-wrap,.assignment-code-editor .code-files{background:#111823}.assignment-code-editor>.code-head-actions,.assignment-code-editor>div{background:#111823!important}.assignment-code-editor .code-editor-wrap .cm-gutters,.assignment-code-editor .code-editor-wrap .cm-activeLineGutter{background:#111823!important;border-right-color:#1e2a3c}.assignment-code-editor .code-editor-wrap .cm-activeLine{background:transparent!important}.assignment-code-editor .code-editor-wrap .cm-editor,.assignment-code-editor .code-editor-wrap .cm-scroller{background:#111823!important}.assignment-code-editor{background:#111823}.assignment-code-editor>div{background:#182230}.assignment-code-editor .code-files,.assignment-code-editor .code-editor-wrap{background:#111823}.theme-light .assignment-code-editor,.theme-light .assignment-code-editor>div,.theme-light .assignment-code-editor .code-files,.theme-light .assignment-code-editor .code-editor-wrap,.theme-light .assignment-code-editor .code-editor-wrap .cm-editor,.theme-light .assignment-code-editor .code-editor-wrap .cm-scroller,.theme-light .assignment-code-editor .code-editor-wrap .cm-gutters{background:#fff!important;border-color:#e3e8ef!important}.theme-light .assignment-code-editor{color:#27364d}.theme-light .assignment-code-editor .code-files button{color:#41506a}.theme-light .assignment-code-editor .code-files button.active{color:#315ee8;background:#eef3ff}.theme-light .assignment-code-editor .code-editor-wrap .cm-gutters{color:#a1adbc;border-right-color:#eef1f6!important}.theme-light .assignment-code-editor .code-head-actions button{color:#315ee8;border-color:#c7d3f4;background:#f4f7ff}.theme-light .assignment-code-editor .code-head-actions button:disabled{color:#aab4c2;border-color:#e2e8f0;background:#f7f9fc}.theme-light .assignment-code-editor .code-editor-wrap .cm-activeLine,.theme-light .assignment-code-editor .code-editor-wrap .cm-activeLineGutter{background:transparent!important}.theme-light .assignment-code-editor .code-editor-wrap .cm-gutters{background:#fff!important;color:#a1adbc!important;border-right:1px solid #eef1f6!important}.theme-light .assignment-code-editor .code-editor-wrap .cm-lineNumbers .cm-gutterElement{color:#a1adbc}.theme-light .assignment-code-editor .code-editor-wrap .cm-activeLineGutter{color:#4b5b73!important}.theme-light .file-tree-tools .font-controls button{width:27px;height:25px;display:grid;place-items:center;padding:0;color:#41506a;font-size:var(--font-size-caption);border:1px solid #d6deea;border-radius:5px;background:#fff;transition:color .16s,border-color .16s,background .16s}.theme-light .file-tree-tools .font-controls button:hover:not(:disabled){color:#244fbf;border-color:#9db4ee;background:#eef3ff}.theme-light .file-tree-tools .font-controls button:disabled{color:#aab4c2;border-color:#e4e9f0;background:#f7f9fc;cursor:not-allowed;opacity:1}.theme-light .file-tree-tools .font-controls span{color:#41506a;font-weight:500}.theme-light .code-fullscreen-button:hover{color:#244fbf;border-color:#9db4ee;background:#eef3ff}.theme-light .code-editor{background:#fff}.theme-light .code-pane:fullscreen,.theme-light .code-pane.is-fullscreen{background:#fff}.theme-light .code-pane:fullscreen>.file-tree,.theme-light .code-pane.is-fullscreen>.file-tree{border-right-color:#dfe5ed}.theme-light .console-head button{color:#526176}.theme-light .console-output p{color:#5b6b80}.theme-light .console-output p.success{color:#15803d}.theme-light .console-output p[data-error=true]{color:#b42318}.theme-light .console-output p.console-divider{color:#1c7a55;border-top-color:#dbe4ef}.theme-light .console-run-line{color:#5b6b80}.theme-light .console-run-line[data-error=true]{color:#b42318}.theme-light .run-metric-strip .run-metric-title{color:#1c7a55}.theme-light .run-metric-strip small{color:#61708a}.theme-light .run-metric-strip strong{color:#26354a}.theme-light .sim-toolbar .sim-title>span{color:#15803d}.theme-light .sim-toolbar .camera-select .ant-select-arrow{color:#748196}.theme-light .sim-toolbar .fullscreen-button:hover{color:#244fbf;border-color:#9db4ee;background:#eef3ff}.theme-light .telemetry-grid small{color:#7c899b}.theme-light .signal-form em{color:#315ee8}.theme-light .phase-table>div{color:#61708a}.theme-light .signal-summary span,.theme-light .signal-metrics span{color:#718096}.theme-light .signal-metrics small{color:#8794a6}.theme-light .dataset-meta span{color:#718096}.theme-light .dataset-meta b{color:#26354a}.theme-light .dataset-bar small,.theme-light .quality-card-head small{color:#748196}.theme-light .score-ring{background:conic-gradient(#4c7cf4 calc(var(--score) * 1%),#e8edf4 0)}.theme-light .dimension-card>div{background:#e8edf4}.theme-light .chart-bars{border-bottom-color:#dfe5ed;background:repeating-linear-gradient(to bottom,transparent 0 32px,#e8edf4 33px)}.theme-light .strategy-body button i{border-color:#c3ccd9}.theme-light .dimension-card em{color:#26354a}.theme-light .quality-score p,.theme-light .quality-score>div:last-child>small{color:#67768a}.theme-light .chart-axis,.theme-light .speed-column>span{color:#67768a}.theme-light .issue-summary-card li{color:#61708a;border-bottom-color:#e7ebf1}.theme-light .issue-summary-card li b{color:#26354a}.theme-light .issue-table-card code{color:#244fbf}.theme-light .issue-filters button{color:#61708a}.theme-light .issue-filters button.active{color:#244fbf;border-color:#9ab3ef;background:#eef3ff}.theme-light .strategy-body>button small{color:#67768a}.theme-light .reset-diagnose{color:#526176;border-color:#d6deea;background:#fff}.theme-light .diagnose-progress>span{color:#526176}.theme-light .diagnose-progress>div{background:#e8edf4}.theme-light .diagnose-complete{color:#15803d;background:#eefaf3}.theme-light .diagnose-complete small{color:#4d7c66}.theme-light .code-run-controls .run-button,.theme-light .sim-controls .run-button{color:#fff;border-color:#2a55d4;background:#315ee8}.theme-light .code-run-controls .run-button:hover,.theme-light .sim-controls .run-button:hover{background:#2a55d4}.theme-light .code-run-controls .run-button.running,.theme-light .sim-controls .run-button.running,.theme-light .code-run-controls .run-button:disabled{color:#fff;border-color:#b45309;background:#d97706}.theme-light .code-run-controls .run-button.running:before{border-color:#ffffff73;border-top-color:#fff}.code-editor .cm-panels{border:0;background:transparent}.code-editor .cm-panels-top{border-bottom:0}.code-editor .cm-search{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12px;color:#dbe5f2;background:#131f31;border-bottom:1px solid #24303f}.code-editor .cm-search .cm-textfield{height:28px;padding:0 10px;color:#dbe5f2;font-size:12px;background:#0f1a28;border:1px solid #2b3a4d;border-radius:6px;outline:none}.code-editor .cm-search .cm-textfield:focus{border-color:#3e70ef;box-shadow:0 0 0 2px #3e70ef38}.code-editor .cm-search .cm-button{height:28px;padding:0 10px;color:#a9c0ff;font-size:12px;background:#1e3155;border:1px solid #3c527c;border-radius:6px;background-image:none;cursor:pointer}.code-editor .cm-search .cm-button:hover{color:#fff;background:#2a55d4;border-color:#2a55d4}.code-editor .cm-search label{display:inline-flex;align-items:center;gap:5px;color:#9fb0c6;font-size:12px;white-space:nowrap}.code-editor .cm-search label input[type=checkbox]{accent-color:#315ee8}.code-editor .cm-search button[name=close]{margin-left:auto;width:24px;height:24px;color:#8fa0b8;font-size:14px;line-height:1;background:transparent;border:0;border-radius:6px;cursor:pointer}.code-editor .cm-search button[name=close]:hover{color:#fff;background:#2a3b57}.theme-light .code-editor .cm-search{color:#26354a;background:#f6f8fb;border-bottom-color:#dfe5ed}.theme-light .code-editor .cm-search .cm-textfield{color:#26354a;background:#fff;border-color:#d6deea}.theme-light .code-editor .cm-search .cm-button{color:#315ee8;background:#eef3ff;border-color:#c7d3f4}.theme-light .code-editor .cm-search .cm-button:hover{color:#fff;background:#315ee8;border-color:#315ee8}.theme-light .code-editor .cm-search label{color:#5b6b80}.theme-light .code-editor .cm-search button[name=close]{color:#7b8799}.theme-light .code-editor .cm-search button[name=close]:hover{color:#26354a;background:#e6ecf5}.report-field label{font-size:var(--font-size-caption);font-weight:600;color:#3f4d61}.report-field input,.report-field textarea{font-size:var(--font-size-body);line-height:1.9}.report-field small{font-size:var(--font-size-caption)}.assignment-submit-panel h3{font-size:var(--font-size-control);font-weight:700}.assignment-submit-panel li{font-size:var(--font-size-caption);line-height:2}.assignment-submit-panel li b{font-weight:600}.assignment-submit-panel p,.assignment-submit-panel .submit-note{font-size:var(--font-size-caption)}.assignment-submit-button{font-size:var(--font-size-control);height:42px}.assignment-submit-panel small{font-size:var(--font-size-caption)}body.theme-dark .report-field label{color:#d5dfec}body.theme-dark .report-field input,body.theme-dark .report-field textarea{color:#e2eaf5}.tasks-panel .task-status{font-size:var(--font-size-caption);font-weight:500}.tasks-panel .panel-heading a,.tasks-panel .task-date b,.tasks-panel .task-date small{font-size:var(--font-size-caption)}.tasks-panel .task-list li b,.tasks-panel .task-list li strong{font-size:var(--font-size-body)}.tasks-panel .task-list li small{font-size:var(--font-size-caption)}.study-panel .study-ring{padding:18px 6px 8px;gap:18px}.study-panel .ring-value strong{font-size:var(--font-size-display)}.study-panel .ring-value span{font-size:var(--font-size-caption)}.study-panel .study-numbers{gap:16px}.study-panel .study-numbers>div{gap:9px}.study-panel .study-numbers b{font-size:var(--font-size-title)}.study-panel .study-numbers span,.study-panel .study-numbers small{font-size:var(--font-size-caption)}.study-panel .study-numbers .anticon{font-size:16px}.assignment-requirements .requirements-text{margin:8px 0 0;color:#4b5a70;font-size:var(--font-size-body);line-height:1.85;white-space:pre-wrap;word-break:break-word}.theme-dark .assignment-requirements .requirements-text{color:#d5dfec}.assignment-code-editor.is-fullscreen~.code-run-panel{position:fixed;left:0;right:0;bottom:0;z-index:1001;max-height:240px;margin:0;overflow-y:auto;border-radius:0;border-top:1px solid #28364a}.assignment-code-editor.is-fullscreen>.code-body{padding-bottom:240px}.theme-light .assignment-code-editor.is-fullscreen~.code-run-panel{border-top-color:#dfe5ed}.code-run-panel .test-result b{font-size:var(--font-size-control);font-weight:700}.code-run-panel .test-result span{font-size:var(--font-size-caption);line-height:1.6}.code-run-panel .test-result .run-error,.code-run-panel .run-output h3{font-size:var(--font-size-caption)}.code-run-panel .run-output pre{font-size:var(--font-size-caption);line-height:1.75}.code-run-panel .run-empty{font-size:var(--font-size-caption);line-height:1.7}.code-run-panel .run-metric-strip small{font-size:var(--font-size-caption)}.code-run-panel .run-metric-strip strong{font-size:var(--font-size-control)}.code-run-panel .run-output-empty{margin:0;padding:14px 16px;color:#7b8799;font-size:var(--font-size-caption);line-height:1.7;background:#f7f9fc;border-top:1px solid #e7ebf1}body.theme-dark .code-run-panel .run-output-empty{color:#a3b4c9;background:#131c2a;border-top-color:#26313f}.assignment-history-entry{display:inline-flex;align-items:center;gap:5px}.assignment-history-hint{margin:0 0 14px;color:#7b8798;font-size:var(--font-size-caption);line-height:1.7}.assignment-history-state{padding:22px 12px;color:#8b96a7;font-size:var(--font-size-caption);text-align:center}.assignment-history-state p{margin:0 0 10px}.assignment-history-state button{height:28px;padding:0 12px;color:#315ee8;font-size:var(--font-size-caption);border:1px solid #c7d3f4;border-radius:6px;background:#fff;cursor:pointer}.assignment-history-list{display:flex;flex-direction:column;gap:8px}.assignment-history-item{width:100%;display:flex;flex-direction:column;gap:6px;padding:12px 14px;text-align:left;border:1px solid #e4eaf2;border-radius:9px;background:#f8fafd;cursor:pointer}.assignment-history-item:hover{border-color:#b9c8ef;background:#f3f6ff}.assignment-history-item.active{border-color:#9eb4ef;background:#f3f6ff}.assignment-history-title{display:flex;align-items:center;gap:8px;color:#33415a;font-size:var(--font-size-caption);font-weight:600}.assignment-history-late{padding:1px 6px;color:#b45309;font-size:var(--font-size-caption);font-style:normal;font-weight:500;border:1px solid #f3c98b;border-radius:4px;background:#fff7ea}.assignment-history-meta{color:#8491a3;font-size:var(--font-size-caption)}.assignment-history-preview{margin-top:16px;border-top:1px dashed #dde4ee;padding-top:13px}.assignment-history-preview>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;color:#33415a;font-size:var(--font-size-caption);font-weight:600}.assignment-history-preview>header small{color:#93a3b8;font-size:var(--font-size-caption);font-weight:400}.assignment-history-preview>pre{max-height:380px;margin:0;padding:12px 14px;overflow:auto;color:#4b5a72;font:10px/1.8 ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-word;background:#f7f9fc;border:1px solid #e7ebf1;border-radius:8px}.assignment-history-code{height:380px;overflow:hidden;background:#111823;border:1px solid #28364a;border-radius:8px}.assignment-history-code .code-editor{height:100%}.assignment-history-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px}.assignment-history-footer>span{margin-right:auto;color:#8491a3;font-size:var(--font-size-caption);line-height:1.5;text-align:left}.assignment-history-load{height:32px;padding:0 14px;color:#fff;font-size:var(--font-size-caption);border:1px solid #315ee8;border-radius:7px;background:#315ee8;cursor:pointer}.assignment-history-load:disabled{color:#9aa6b6;border-color:#dfe4eb;background:#eef1f6;cursor:not-allowed}.assignment-history-drawer .ant-drawer-content,.assignment-history-drawer .ant-drawer-header,.assignment-history-drawer .ant-drawer-body{background:#fff}.assignment-history-drawer .ant-drawer-title{color:#1d293d}.theme-dark .assignment-history-hint,.theme-dark .assignment-history-state,.theme-dark .assignment-history-meta,.theme-dark .assignment-history-footer>span{color:#94a2b6}.theme-dark .assignment-history-item{border-color:#26313f;background:#131c2a}.theme-dark .assignment-history-item:hover,.theme-dark .assignment-history-item.active{border-color:#3c5793;background:#17233a}.theme-dark .assignment-history-title,.theme-dark .assignment-history-preview>header{color:#dbe4f0}.theme-dark .assignment-history-preview{border-top-color:#2a3546}.theme-dark .assignment-history-preview>pre{color:#c5d1e2;border-color:#283345;background:#111925}.theme-dark .assignment-history-load{color:#dbe7ff;border-color:#3e527b;background:#26447e}.theme-dark .assignment-history-load:disabled{color:#5c6b82;border-color:#2b384d;background:#1a2432}.theme-dark .assignment-history-state button{color:#9bb5ff;border-color:#3e527b;background:#17243a}.theme-dark .assignment-history-drawer .ant-drawer-content,.theme-dark .assignment-history-drawer .ant-drawer-header,.theme-dark .assignment-history-drawer .ant-drawer-body{background:#151e2b}.theme-dark .assignment-history-drawer .ant-drawer-title{color:#edf3fb}.theme-dark .assignment-history-drawer .ant-drawer-close{color:#8795a9}.theme-light .assignment-history-code{background:#fff;border-color:#e3e8ef}.assignment-header-actions{display:flex;align-items:center;gap:8px;justify-self:end}.assignment-detail-header .assignment-history-entry{height:30px;padding:0 11px;color:#41506a;font-size:var(--font-size-caption);border:1px solid #d8dee8;border-radius:7px;background:#fff;cursor:pointer}.assignment-detail-header .assignment-history-entry:hover{color:#315ee8;border-color:#b9c9f0;background:#eef3ff}body.theme-dark .assignment-detail-header .assignment-history-entry{color:#dce5f2;border-color:#3a4759;background:#17243a}body.theme-dark .assignment-detail-header .assignment-history-entry:hover{color:#9bbcf8;border-color:#5b7fbf}.assignment-detail-header .assignment-save,.assignment-detail-header .assignment-history-entry{display:inline-flex;align-items:center;gap:6px;justify-content:center}.assignment-detail-header .assignment-save .anticon,.assignment-detail-header .assignment-history-entry .anticon{font-size:14px}.student-history-drawer .submitted-code-block,.assignment-result-page .submitted-code-block{margin-bottom:16px}.assignment-result-page .submitted-code-block h3{margin:0 0 8px;color:#41506a;font-size:13px;font-weight:600}.assignment-result-page .submitted-code-view{height:520px;overflow:hidden;border:1px solid #e3e8ef;border-radius:9px}.assignment-result-page .submitted-code-view .code-editor{height:100%}body.theme-dark .assignment-result-page .submitted-code-block h3{color:#dce5f2}body.theme-dark .assignment-result-page .submitted-code-view{border-color:#26313f}.assignment-result-page .submitted-code-block .cm-line span,.assignment-result-page .submitted-code-block .cm-content span,.assignment-result-page .submitted-code-block .code-editor span,.assignment-result-page .submitted-code-block .cm-editor span{display:inline!important;align-items:initial!important;gap:normal!important}.result-score-ring .ring-unscored{font-size:var(--font-size-subtitle);font-weight:700;letter-spacing:1px}.result-score-ring.is-unscored{align-items:center;justify-content:center;padding-top:0}.result-score-ring.is-unscored .ring-unscored{font-size:var(--font-size-section);font-weight:700;line-height:1;letter-spacing:.5px}.teacher-code-answer .teacher-code-view{max-height:60vh;overflow:hidden;border:1px solid #28364a;border-radius:9px;background:#111823}.teacher-code-answer .teacher-code-view .code-editor{height:100%}.answer-line.student-answer{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.answer-verdict{padding:1px 8px;font-size:var(--font-size-caption);font-style:normal;font-weight:600;border-radius:10px;white-space:nowrap}.answer-verdict.right{color:#17845d;background:#e8f8f1;border:1px solid #b9e6d3}.answer-verdict.wrong{color:#c0442f;background:#fdeeea;border:1px solid #f3cfc6}body.theme-dark .answer-verdict.right{color:#7ee2b8;background:#14342a;border-color:#2d634e}body.theme-dark .answer-verdict.wrong{color:#f3a294;background:#3a2420;border-color:#704136}.assignment-submit-panel li,.assignment-submit-panel .assignment-rule{font-size:var(--font-size-section);line-height:2.15}.assignment-submit-panel li b,.assignment-submit-panel .assignment-rule b,.assignment-submit-panel h3{font-size:var(--font-size-section)}.assignment-result-page .answer-review h3{font-size:var(--font-size-control);font-weight:600;line-height:1.6}.assignment-result-page .answer-review p{font-size:var(--font-size-body);line-height:1.8}.assignment-result-page .answer-review p b{font-size:var(--font-size-body);font-weight:600}.assignment-result-page .answer-review .anticon{font-size:20px}.experiment-actions>button{display:inline-flex;align-items:center;gap:7px}.experiment-actions>button .anticon{font-size:16px}body.theme-dark .ant-drawer-content,body.theme-dark .ant-drawer-header{background:#151e2b;border-color:#2a3546}body.theme-dark .ant-drawer-header{border-bottom:1px solid #2a3546}body.theme-dark .ant-drawer-title{color:#edf3fb}body.theme-dark .ant-drawer-body{background:#101b2c;color:#c7d2e2}body.theme-dark .ant-drawer-close{color:#8795a9}body.theme-dark .ant-drawer-close:hover{color:#dbe4f0}body.theme-dark .ant-drawer-body .workspace-actions-tip{color:#8fa3ba}body.theme-dark .ant-drawer-body .assignment-empty{color:#7f8fa4}.settings-group{margin-bottom:18px;padding:18px 20px;background:#fff;border:1px solid #eef1f5;border-radius:14px}.settings-group>header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.settings-group h2{margin:0;color:#2c3a4b;font-size:var(--font-size-control)}.settings-group>header>span,.settings-group-meta>span{color:#9aa4b0;font-size:var(--font-size-caption)}.settings-rows{display:flex;flex-direction:column}.settings-row{display:grid;grid-template-columns:minmax(240px,1fr) 140px 280px;align-items:center;gap:16px;padding:12px 10px;border-top:1px solid #f2f4f7;border-radius:8px}.settings-row:first-child{border-top:0}.settings-row.changed{background:#fffbf2}.settings-copy strong{display:block;color:#3a4757;font-size:var(--font-size-caption);font-weight:500}.settings-copy small{display:flex;align-items:center;gap:8px;margin-top:4px;color:#9aa4b0;font-size:var(--font-size-caption)}.settings-copy code{padding:1px 6px;color:#667388;background:#f4f6f9;border-radius:4px}.settings-copy em{font-style:normal}.settings-copy em.overridden{color:#b07d2b}.settings-default{display:flex;flex-direction:column;gap:2px}.settings-default span,.settings-current>span{color:#9aa4b0;font-size:var(--font-size-caption)}.settings-default b{color:#667388;font-size:var(--font-size-caption);font-weight:500}.settings-current{display:flex;align-items:center;gap:8px}.settings-current>span{flex:0 0 auto}body.theme-dark .settings-group{color:#d8e1ed;background:#151e2b;border-color:#2a3546}body.theme-dark .settings-group h2{color:#e7edf6}body.theme-dark .settings-group>header>span,body.theme-dark .settings-group-meta>span,body.theme-dark .settings-default span,body.theme-dark .settings-current>span{color:#8795a9}body.theme-dark .settings-row{border-top-color:#283345}body.theme-dark .settings-row.changed{background:#1e2633}body.theme-dark .settings-copy strong{color:#dbe4f1}body.theme-dark .settings-copy code{color:#9fb0c7;background:#1d2836}body.theme-dark .settings-default b{color:#9fb0c7}body.theme-dark .settings-current .review-button{color:#9bb5ff;border-color:#3e527b;background:#17243a}.trajectory-header>div:first-child{min-width:0;flex:1 1 auto}.trajectory-header>div:first-child>div.trajectory-title-line{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:baseline!important;gap:6px!important;min-width:0;overflow:hidden}.trajectory-header>div:first-child>div.trajectory-title-line>.trajectory-course-name,.trajectory-header>div:first-child>div.trajectory-title-line>.trajectory-title-sep{flex:0 0 auto;white-space:nowrap;font-size:var(--font-size-content);line-height:1.35;color:inherit}.trajectory-header>div:first-child>div.trajectory-title-line>.trajectory-course-name{font-weight:700}.trajectory-header>div:first-child>div.trajectory-title-line>strong{flex:0 1 auto;min-width:0;margin-top:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--font-size-content);line-height:1.35}.trajectory-title-line .trajectory-title-sep{font-size:inherit;color:#6b7a90}.trajectory-title-line strong{font-size:inherit}:is(.app-shell,.student-shell) :is(.page-heading,.student-page-heading,.content-editor-heading) h1{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);line-height:var(--line-height-title)}:is(.app-shell,.student-shell) :is(.page-heading,.student-page-heading,.content-editor-heading) p{font-size:var(--font-size-caption);line-height:var(--line-height-caption)}:is(.app-shell,.student-shell) :is(.nav-item,.student-nav a,.student-nav button){font-size:var(--font-size-control);line-height:var(--line-height-control)}:is(.app-shell,.student-shell) .nav-group{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);line-height:var(--line-height-caption)}:is(.app-shell,.student-shell) :is(.student-table,.teacher-table){font-size:var(--font-size-body);line-height:var(--line-height-body)}:is(.app-shell,.student-shell) :is(.student-table,.teacher-table) th{padding:12px var(--table-cell-padding-x);font-size:var(--font-size-body);font-weight:var(--font-weight-medium);line-height:var(--line-height-body)}:is(.app-shell,.student-shell) :is(.student-table,.teacher-table) td{height:var(--table-row-height);padding:var(--table-cell-padding-y) var(--table-cell-padding-x);font-size:var(--font-size-body);line-height:var(--line-height-body)}:is(.app-shell,.student-shell) :is(.student-table,.teacher-table) td>strong{font-size:var(--font-size-content);font-weight:var(--font-weight-semibold);line-height:var(--line-height-control)}:is(.app-shell,.student-shell) :is(.student-table,.teacher-table) td :is(small,.assignment-status){font-size:var(--font-size-caption);line-height:var(--line-height-caption)}:is(.app-shell,.student-shell) .student-table-panel{overflow-x:auto}:is(.app-shell,.student-shell) .student-table{min-width:960px}.markdown-content{font-size:var(--font-size-content);line-height:var(--line-height-content)}.markdown-content h1{font-size:var(--font-size-title)}.markdown-content h2{font-size:var(--font-size-subtitle)}.markdown-content h3{font-size:var(--font-size-section)}.markdown-content h4{font-size:var(--font-size-content)}.student-shell .quiz-sheet .question-card :is(h3,label){font-size:var(--font-size-content);line-height:var(--line-height-content)}:is(.student-table,.teacher-table,.grade-hero,.teacher-stat-grid,.assignment-summary){font-variant-numeric:tabular-nums}.notification-bell[data-v-d7beb07c]{position:relative}.bell-button[data-v-d7beb07c]{position:relative;display:grid;place-items:center;width:34px;height:34px;color:#6d7783;font-size:var(--font-size-control);border:1px solid rgba(44,71,80,.12);border-radius:9px;background:#ffffffb3;cursor:pointer}.bell-button[data-v-d7beb07c]:hover{color:#356f70;border-color:#79aaa5}.bell-badge[data-v-d7beb07c]{position:absolute;top:-6px;right:-6px;min-width:17px;padding:0 4px;color:#fff;font-size:var(--font-size-caption);font-style:normal;line-height:17px;text-align:center;border-radius:9px;background:#d0524a}.notification-list[data-v-d7beb07c]{margin:14px 0 0;padding:0;list-style:none}.notification-list li[data-v-d7beb07c]{padding:11px 12px;margin-bottom:8px;border:1px solid #e8ecea;border-radius:9px;cursor:pointer}.notification-list li.unread[data-v-d7beb07c]{background:#35716f0f;border-color:#35716f38}.notification-head[data-v-d7beb07c]{display:flex;align-items:center;gap:7px}.notification-head strong[data-v-d7beb07c]{flex:1;overflow:hidden;color:#2f3d48;font-size:var(--font-size-caption);text-overflow:ellipsis;white-space:nowrap}.notification-head time[data-v-d7beb07c]{color:#a7b0b6;font-size:var(--font-size-caption)}.notification-category[data-v-d7beb07c]{padding:1px 6px;color:#39726f;font-size:var(--font-size-caption);border-radius:5px;background:#35716f1a}.notification-list p[data-v-d7beb07c]{margin:6px 0 0;color:#7d8891;font-size:var(--font-size-caption);line-height:1.6}.notification-empty[data-v-d7beb07c]{color:#a7b0b6;font-size:var(--font-size-caption);text-align:center;cursor:default}.password-error[data-v-93e38387]{margin:0;color:#b84b43;font-size:var(--font-size-caption)}.nav-group[data-v-5712a2c0]{color:#a9b8cd;font-size:var(--font-size-body);font-weight:600;line-height:22px}.profile-copy[data-v-5712a2c0]{gap:2px}.profile-copy>strong[data-v-5712a2c0]{font-size:var(--font-size-control);line-height:22px}.profile-copy>span[data-v-5712a2c0]{font-size:var(--font-size-caption);line-height:20px}.nav-group[data-v-915a5a82]{color:#a9b8cd;font-size:var(--font-size-body);font-weight:600;line-height:22px}.admin-badge[data-v-915a5a82]{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;color:#2f6f6a;font-size:var(--font-size-caption);font-weight:600;background:#39726f1a;border-radius:8px}.student-nav>button[data-v-9a8e29cf]{font-size:var(--font-size-control)}.student-nav>button>.anticon[data-v-9a8e29cf]{font-size:16px}.student-profile>div[data-v-9a8e29cf]{display:flex;flex-direction:column;gap:2px}.student-profile strong[data-v-9a8e29cf]{font-size:var(--font-size-control);line-height:22px}.student-profile small[data-v-9a8e29cf]{font-size:var(--font-size-caption);line-height:20px}.markdown-body[data-v-a8de0039] .md-attachment-retry{cursor:pointer;text-decoration:underline;text-underline-offset:2px}.content-page[data-v-9015d7ac]{gap:11px;max-width:none}.course-strip[data-v-9015d7ac]{position:sticky;top:86px;z-index:9;flex-shrink:0;gap:24px;padding:16px 22px;background:#fff;border-color:#e0e8f5;border-radius:14px;box-shadow:0 3px 14px #2c4c8709}.course-overview[data-v-9015d7ac]{min-width:0;display:flex;flex-direction:column;gap:7px}.course-meta[data-v-9015d7ac]{gap:9px;margin-left:0;color:#7d8da5;font-size:var(--font-size-caption)}.mini-stats[data-v-9015d7ac]{flex-shrink:0;align-items:center;gap:14px}.mini-stats>div[data-v-9015d7ac]{min-width:66px;padding:0 12px;border:0}.mini-stats strong[data-v-9015d7ac]{font-size:var(--font-size-title);font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}.mini-stats span[data-v-9015d7ac]{margin-top:5px;color:#8d9ab0;font-size:var(--font-size-caption)}.stat-total strong[data-v-9015d7ac]{color:#356ce0}.stat-published strong[data-v-9015d7ac]{color:#2c9279}.stat-draft strong[data-v-9015d7ac]{color:#8c99ad}.content-panel-button.ant-btn[data-v-9015d7ac]{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 12px;font-size:var(--font-size-caption);font-weight:600;border-radius:8px}.content-panel-button.ant-btn[data-v-9015d7ac]:not(:disabled){color:#2563eb;background:#f0f5ff;border-color:#c4d6fc}.content-panel-button.ant-btn[data-v-9015d7ac]:not(:disabled):hover{color:#1d4ed8;background:#e3edff;border-color:#8eaff0}.content-panel-button[data-v-9015d7ac] span{color:inherit;font-size:inherit}.content-panel-button.ant-btn[data-v-9015d7ac]:focus-visible{outline:2px solid #2563eb;outline-offset:3px}.course-title-trigger[data-v-9015d7ac]{display:inline-flex;align-items:center;align-self:flex-start;gap:18px;max-width:100%;padding:4px 0;border:0;background:transparent;cursor:pointer;text-align:left}.course-title-text[data-v-9015d7ac]{overflow:hidden;color:#1e293b;font-size:var(--font-size-title);font-weight:700;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.course-switch-hint[data-v-9015d7ac]{display:inline-flex;flex-shrink:0;align-items:center;gap:7px;padding:6px 10px;border-radius:6px;color:#718096;background:#f5f7fa;font-size:var(--font-size-caption);font-weight:500;transition:background .18s,color .18s}.course-switch-hint[data-v-9015d7ac] .anticon{font-size:10px;transition:transform .18s}.course-title-trigger:hover .course-switch-hint[data-v-9015d7ac],.course-title-trigger.is-open .course-switch-hint[data-v-9015d7ac]{color:#2563eb;background:#edf3ff}.course-title-trigger.is-open .course-switch-hint[data-v-9015d7ac] .anticon{transform:rotate(180deg)}.course-title-trigger[data-v-9015d7ac]:focus-visible{outline:2px solid #8aaff5;outline-offset:5px;border-radius:5px}.course-title-trigger[data-v-9015d7ac]:disabled{cursor:default;opacity:.6}.studio-grid[data-v-9015d7ac]{grid-template-columns:minmax(320px,400px) minmax(440px,1fr)}.list-toolbar[data-v-9015d7ac]{gap:12px;padding:16px}.input-search[data-v-9015d7ac]{height:38px}.input-search input[data-v-9015d7ac]{min-width:0;font-size:var(--font-size-caption)}.list-toolbar .ant-segmented[data-v-9015d7ac]{align-self:stretch;font-size:var(--font-size-caption)}.filter-feedback[data-v-9015d7ac]{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#8390a2;font-size:var(--font-size-caption)}.filter-feedback button[data-v-9015d7ac],.outline-toggle-all[data-v-9015d7ac],.outline-empty button[data-v-9015d7ac]{padding:0;color:#2563eb;border:0;background:transparent}.filter-feedback button[data-v-9015d7ac]:hover,.outline-toggle-all[data-v-9015d7ac]:hover,.outline-empty button[data-v-9015d7ac]:hover{color:#1d4ed8;text-decoration:underline}.list-summary[data-v-9015d7ac]{height:auto;min-height:64px;padding:12px 16px}.outline-summary-copy[data-v-9015d7ac]{display:flex;flex-direction:column;gap:4px}.outline-summary-heading[data-v-9015d7ac]{display:flex;align-items:center;gap:12px}.outline-toggle-all[data-v-9015d7ac]{flex-shrink:0;font-size:var(--font-size-caption);line-height:22px}.outline-summary-copy strong[data-v-9015d7ac],.outline-summary-copy span[data-v-9015d7ac]{font-size:var(--font-size-caption)}.content-outline[data-v-9015d7ac]{padding:4px 12px 16px}.outline-group+.outline-group[data-v-9015d7ac]{margin-top:12px}.outline-group-head[data-v-9015d7ac]{height:auto;min-height:48px;gap:6px;padding:4px}.chapter-toggle[data-v-9015d7ac]{flex:1;min-width:0;display:flex;align-items:center;gap:7px;padding:8px 0;color:#27354a;text-align:left;border:0;border-radius:6px;background:transparent}.chapter-toggle[data-v-9015d7ac]:disabled{cursor:default}.chapter-toggle>.anticon[data-v-9015d7ac]{flex-shrink:0;color:#8b95a5;font-size:11px}.chapter-toggle strong[data-v-9015d7ac]{min-width:0;overflow:hidden;font-size:var(--font-size-content);line-height:24px;white-space:nowrap;text-overflow:ellipsis}.chapter-toggle small[data-v-9015d7ac]{flex-shrink:0;color:#8b95a5;font-size:var(--font-size-caption);white-space:nowrap}.chapter-add[data-v-9015d7ac]{flex-shrink:0;display:inline-flex;align-items:center;gap:3px;padding:5px 6px;color:#2563eb;font-size:var(--font-size-caption);border:1px solid #dce6fa;border-radius:6px;background:#f5f8ff}.chapter-add[data-v-9015d7ac]:hover{background:#eaf1ff;border-color:#b5ccf5}.outline-items[data-v-9015d7ac]{padding:2px 0 0}.outline-empty[data-v-9015d7ac]{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 12px;font-size:var(--font-size-caption)}.outline-empty button[data-v-9015d7ac]{display:inline-flex;align-items:center;gap:5px}.content-card[data-v-9015d7ac]{grid-template-columns:minmax(0,1fr) auto;gap:0;padding:12px;margin-bottom:10px}.content-card.selected[data-v-9015d7ac]{background:#f7faff;border-color:#7da7f5}.content-select[data-v-9015d7ac]{grid-column:1 / -1;grid-row:1;display:block;width:100%;min-width:0;padding:0;color:inherit;text-align:left;border:0;border-radius:5px;background:transparent}.card-main[data-v-9015d7ac]{display:block}.content-card-title[data-v-9015d7ac]{display:block;min-height:28px;margin:0 0 4px;padding-inline-end:68px;font-size:var(--font-size-control);line-height:28px;overflow-wrap:anywhere}.content-card-description[data-v-9015d7ac]{display:block;overflow:hidden;font-size:var(--font-size-caption);color:#63728a;line-height:1.55;white-space:nowrap;text-overflow:ellipsis}.content-card .card-meta[data-v-9015d7ac]{align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:var(--font-size-caption);color:#7d8a9c}.content-card .card-meta[data-v-9015d7ac] .anticon{font-size:12px}.content-card .type-label[data-v-9015d7ac]{font-size:var(--font-size-caption)}.content-card .status-pill[data-v-9015d7ac]{padding:2px 6px;font-size:var(--font-size-caption);line-height:18px}.content-card .content-updated-at[data-v-9015d7ac]{font-size:var(--font-size-caption);line-height:22px;font-variant-numeric:tabular-nums;white-space:nowrap}.content-card-actions[data-v-9015d7ac]{position:relative;grid-column:2;grid-row:1;align-self:start;display:flex;align-items:center;gap:4px}.card-action-button[data-v-9015d7ac]{display:grid;place-items:center;width:28px;height:28px;padding:0;color:#7d8a9c;border:1px solid transparent;border-radius:6px;background:transparent}.card-action-button[data-v-9015d7ac]:hover:not(:disabled){color:#2563eb;background:#eaf1ff;border-color:#d4e2fc}.card-action-button[data-v-9015d7ac]:disabled{cursor:wait;opacity:.45}.content-select[data-v-9015d7ac]:focus-visible,.card-action-button[data-v-9015d7ac]:focus-visible,.chapter-toggle[data-v-9015d7ac]:focus-visible,.chapter-add[data-v-9015d7ac]:focus-visible,.filter-feedback button[data-v-9015d7ac]:focus-visible,.outline-toggle-all[data-v-9015d7ac]:focus-visible,.outline-empty button[data-v-9015d7ac]:focus-visible{outline:2px solid #2563eb;outline-offset:3px}.no-results[data-v-9015d7ac]{height:auto;min-height:220px;gap:10px;padding:24px 16px;text-align:center}.no-results>span[data-v-9015d7ac]{margin:0;font-size:var(--font-size-caption)}.no-results .ant-btn .anticon[data-v-9015d7ac]{margin:0;font-size:12px}.preview-panel .preview-kicker[data-v-9015d7ac]{font-size:var(--font-size-body);line-height:22px;font-weight:600}.preview-panel .lead[data-v-9015d7ac]{font-size:var(--font-size-content);line-height:1.75}.preview-panel .tag-row>span[data-v-9015d7ac]{padding:4px 10px;font-size:var(--font-size-body);line-height:22px}.preview-panel[data-v-9015d7ac] .markdown-content{font-size:var(--font-size-control);line-height:1.85}.preview-panel[data-v-9015d7ac] .markdown-content h1{font-size:var(--font-size-title)}.preview-panel[data-v-9015d7ac] .markdown-content h2{font-size:var(--font-size-subtitle)}.preview-panel[data-v-9015d7ac] .markdown-content h3{font-size:var(--font-size-section)}.preview-panel[data-v-9015d7ac] .markdown-content h4{font-size:var(--font-size-control)}.preview-panel[data-v-9015d7ac] .markdown-content p,.preview-panel[data-v-9015d7ac] .markdown-content li{font-size:var(--font-size-control);line-height:1.85}.preview-panel[data-v-9015d7ac] .markdown-content table{font-size:var(--font-size-body)}.preview-panel[data-v-9015d7ac] .markdown-content .md-media-caption,.preview-panel[data-v-9015d7ac] .markdown-content .md-media-missing{font-size:var(--font-size-caption)}.course-switcher-overlay .course-switcher-panel{width:400px;max-width:calc(100vw - 32px);padding:12px 8px 8px;border:1px solid #e5eaf2;border-radius:12px;background:#fff;box-shadow:0 16px 48px -12px #18274438,0 3px 10px #1827440a}.course-switcher-search{padding:0 4px 12px}.course-switcher-search .ant-input-affix-wrapper{height:38px;padding:6px 10px;border-color:transparent;border-radius:7px;background:#f5f7fa;box-shadow:none}.course-switcher-search .ant-input{background:transparent;font-size:var(--font-size-caption)}.course-switcher-search .ant-input-prefix{margin-right:8px;color:#8a97aa}.course-switcher-search .ant-input-affix-wrapper-focused{border-color:#a9c3f4}.course-switcher-label{display:flex;align-items:center;gap:6px;padding:2px 12px 8px;color:#8a97aa;font-size:var(--font-size-caption)}.course-switcher-label>span{color:#a4afbf;font-variant-numeric:tabular-nums}.course-switcher-panel .course-switcher-menu{max-height:320px;overflow-y:auto;padding:0;border:0;box-shadow:none}.course-switcher-menu.ant-dropdown-menu .ant-dropdown-menu-item{width:100%;height:auto;min-height:44px;margin:2px 0;padding:11px 12px;border-radius:7px;color:#42516a;font-size:var(--font-size-body);line-height:22px}.course-switcher-menu .ant-dropdown-menu-title-content{display:flex;align-items:center;justify-content:space-between;gap:16px}.course-option-name{white-space:normal}.course-switcher-menu.ant-dropdown-menu .ant-dropdown-menu-item-selected{color:#2563eb;background:#edf3ff;font-weight:600}.course-switcher-menu.ant-dropdown-menu .ant-dropdown-menu-item:not(.ant-dropdown-menu-item-selected):hover{background:#f6f8fb}.course-option-check{flex-shrink:0;font-size:var(--font-size-body)}.course-switcher-empty{padding:28px 12px;color:#8a97aa;text-align:center;font-size:var(--font-size-caption)}
