.vocab-toolbar{z-index:20;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;display:flex;position:sticky;top:0}.vocab-toolbar .vocab-search{flex:260px;min-width:220px}.vocab-word{cursor:pointer;font-weight:600}.vocab-col-row{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 0;display:flex}.vocab-col-row .grow{flex:1}.vocab-filter-group{margin-bottom:12px}.vocab-filter-group .row{flex-wrap:wrap;gap:6px;margin-top:6px}.vocab-detail-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.vocab-detail-grid .card h3{margin-top:0}.vocab-sense{flex-direction:column;gap:8px;margin:0;padding-left:18px;display:flex}.review-stage{justify-content:center;align-items:flex-start;gap:18px;display:flex}.review-card-column{flex:1;max-width:720px}.review-stage--today .review-card-column{flex:0 0 78%;min-width:0;max-width:78%}.review-card{text-align:center;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;min-height:480px;padding:36px 40px;display:flex;position:relative}.review-card.is-flipped{text-align:left}.review-card.is-flipped .review-card-body{justify-content:flex-start}.review-card-body{flex-direction:column;flex:1;justify-content:center;gap:10px;min-height:0;display:flex}.review-word{font-size:34px;font-weight:750}.review-card-head{text-align:left;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 18px;display:flex}.review-card-head-main{flex-wrap:wrap;align-items:center;gap:8px 18px;min-width:0;display:flex}.review-card-head-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.review-back{margin-top:12px}.review-card.is-centered:not(.is-flipped) .review-card-head{display:block;position:relative}.review-card.is-centered:not(.is-flipped) .review-card-head-main{flex-direction:column;align-items:center;gap:8px;padding-inline:56px}.review-card.is-centered:not(.is-flipped) .review-word{text-align:center}.review-card.is-centered:not(.is-flipped) .review-phonetic-row{justify-content:center}.review-card.is-centered:not(.is-flipped) .review-card-head-actions{margin-left:0;position:absolute;top:0;right:0}.review-examples{flex-direction:column;gap:8px;margin:10px 0;display:flex}.review-actions{justify-content:center;gap:10px;margin-top:12px;display:flex}.review-actions .ant-btn{min-width:120px}.review-prep-progress{width:260px;max-width:100%;margin:10px auto 0}.review-keys{text-align:center;margin-top:6px}.review-next.ant-btn,.review-exit.ant-btn{opacity:.92;border-color:var(--accent);min-width:168px;height:58px;color:var(--accent-text);box-shadow:0 1px 2px var(--line-2);align-self:center;margin-top:0;padding:0 32px;font-size:18px;font-weight:650;transition:opacity .12s,box-shadow .12s,border-color .12s}.review-next.ant-btn:hover,.review-exit.ant-btn:hover{opacity:1;box-shadow:0 2px 8px var(--line)}.review-next.is-highlighted{opacity:1;color:var(--on-accent)}.review-next.is-highlighted:hover{color:var(--on-accent)}.review-session-foot{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;margin-top:12px;display:flex}.review-session-foot .review-keys{margin-top:0}.review-icon-action{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:16px;transition:background .12s,color .12s;display:inline-flex}.review-icon-action:hover{color:var(--text);background:var(--panel-2)}.review-icon-action:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.review-icon-action.is-on{color:var(--amber)}.review-icon-action.is-danger:hover{color:var(--red)}.review-phonetic-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;display:flex}.review-phonetic{align-items:center;gap:2px;display:inline-flex}.review-phonetic .ant-btn{color:var(--muted);padding-inline:4px}.review-card-actions{gap:12px;margin-top:18px;display:flex}.review-card-actions .ant-btn{flex:1;min-width:0;height:52px;font-size:16px;font-weight:650}.review-info{width:268px}.review-info-stats{margin:0 0 8px;font-size:12px;line-height:1.6}.review-info-hint{margin:8px 0 0;font-size:12px;line-height:1.55}.review-shortcut-table{border-collapse:collapse;width:100%;font-size:13px}.review-shortcut-table th,.review-shortcut-table td{text-align:left;border-bottom:1px solid var(--line-2);padding:4px 0}.review-shortcut-table th{color:var(--muted-2);font-size:12px;font-weight:600}.review-shortcut-table th:last-child,.review-shortcut-table td:last-child{text-align:right}.review-shortcut-table kbd{background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}@media (width<=1100px){.review-stage--today .review-card-column{flex:auto;max-width:100%}}@media (width<=760px){.review-stage{flex-direction:column;align-items:stretch}.review-next.ant-btn,.review-exit.ant-btn{align-self:flex-end;margin-top:0}.review-card{min-height:360px;padding:24px 20px}}.free-review-summary{padding:20px}.vocab-class-panel{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:8px;max-height:260px;margin-top:8px;padding:8px;display:flex;overflow:auto}.vocab-class-chip{border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.vocab-banner{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;display:flex}.vocab-preview-panel{background:var(--panel-2)}.derivation{border-top:1px dashed var(--line);margin-top:14px;padding-top:10px}.derivation-title{letter-spacing:.04em;text-transform:uppercase;opacity:.6;margin-bottom:6px;font-size:12px}.derivation-parts{flex-wrap:wrap;gap:6px 10px;margin-bottom:8px;display:flex}.derivation-part{border:1px solid var(--line);border-radius:999px;align-items:baseline;gap:4px;padding:2px 8px;font-size:13px;display:inline-flex}.derivation-part em{opacity:.6;font-size:11px;font-style:normal}.derivation-chain{flex-direction:column;gap:4px;margin:0;padding-left:18px;font-size:13px;display:flex}.derivation-chain em{opacity:.6;margin-left:4px;font-size:11px;font-style:normal}.derivation-arrow{opacity:.5;margin:0 6px}.core-semantics{border-left:3px solid var(--accent);background:var(--panel-2);border-radius:6px;align-items:center;gap:12px;margin:10px 0 14px;padding:10px 12px;display:flex}.core-semantics-text{flex:auto;min-width:0}.core-semantics-art{flex:0 0 88px;width:88px;height:88px}.core-semantics-art svg{width:100%;height:100%;display:block}.core-semantics-core{margin:0 0 4px;font-weight:600}.core-semantics-not{margin:0 0 6px;font-size:13px}.core-semantics-image{margin:0;font-size:13px;font-style:italic}.teacher-page .stats{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:12px;margin-bottom:16px;display:grid}.teacher-page .stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);padding:14px 16px;transition:border-color .14s,transform .14s,box-shadow .14s}.teacher-page .stat:hover{border-color:var(--accent);transform:translateY(-1px)}.teacher-page .stat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.teacher-page .stat .n{font-family:var(--font-head);letter-spacing:-.03em;font-size:26px;font-weight:700;line-height:1.15}.teacher-page .stat .l{color:var(--muted);margin-top:3px;font-size:12px}.teacher-page .stat .sub{color:var(--muted-2);margin-top:4px;font-size:11px}.teacher-page .stat.act{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}.teacher-page .stat.flat{cursor:default}.teacher-page .chips{flex-wrap:wrap;gap:7px;margin-bottom:12px;display:flex}.teacher-page .chip{border:1px solid var(--line);background:var(--panel);cursor:pointer;color:var(--muted);border-radius:999px;padding:5px 12px;font-size:12.5px}.teacher-page .chip.on{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text);font-weight:650}.teacher-page .breadcrumb{color:var(--muted-2);margin-bottom:10px;font-size:12.5px}.teacher-page .breadcrumb a{color:var(--muted-2);text-decoration:none}.teacher-page .breadcrumb a:hover{color:var(--accent-text)}.teacher-page .breadcrumb b{color:var(--text);font-weight:600}.teacher-page .stepper{flex-wrap:wrap;gap:6px;margin-bottom:18px;display:flex}.teacher-page .stepper .st{border:1px solid var(--line);color:var(--muted);background:var(--panel);border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;display:flex}.teacher-page .stepper .st b{background:var(--line-2);width:18px;height:18px;color:var(--muted);border-radius:50%;place-items:center;font-size:11px;display:grid}.teacher-page .stepper .st.on{border-color:var(--accent);color:var(--accent-text);font-weight:650}.teacher-page .stepper .st.on b{background:var(--accent);color:var(--on-accent)}.teacher-page .stepper .st.done b{background:var(--green);color:var(--on-green)}.teacher-page .form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=900px){.teacher-page .form-grid{grid-template-columns:1fr}}.teacher-page .inline-form{border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--panel-2);flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;padding:12px 14px;display:flex}.teacher-page .inline-form .f{margin-bottom:0}.teacher-page .inline-form .f b{font-size:11.5px}.teacher-page .wizard-list{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}.teacher-page .wizard-list table{margin:0}.teacher-page .switch{cursor:pointer;-webkit-user-select:none;user-select:none;color:inherit;background:0 0;border:0;align-items:center;gap:9px;padding:0;font-family:inherit;font-size:13px;display:inline-flex}.teacher-page .switch i{background:var(--line);border-radius:999px;flex:none;width:38px;height:22px;transition:all .18s;position:relative}.teacher-page .switch i:after{content:"";background:var(--panel);border-radius:50%;width:18px;height:18px;transition:all .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0003}.teacher-page .switch.on i{background:var(--accent)}.teacher-page .switch.on i:after{left:18px}.teacher-page .member-ids{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.teacher-page .member-ids code{border:1px solid var(--line);background:var(--panel-2);border-radius:5px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}.teacher-page .stat-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.teacher-page input[type=datetime-local]{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;font:inherit;background:var(--panel);color:var(--text);padding:8px 10px;transition:border-color .12s,box-shadow .12s}.teacher-page input[type=datetime-local]:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.teacher-page .rubric-preview{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);margin-top:8px;padding:10px 12px}.teacher-page .rubric-preview-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.teacher-page .rubric-preview-list{counter-reset:rubric-item;margin:0 0 6px;padding-left:0;font-size:13px;line-height:1.7;list-style:none}.teacher-page .rubric-preview-list li{counter-increment:rubric-item;grid-template-columns:20px minmax(0,1fr) auto;align-items:baseline;column-gap:8px;display:grid}.teacher-page .rubric-preview-list li:before{content:counter(rubric-item) ".";color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.teacher-page .rubric-preview-note{color:var(--amber);margin-top:2px}.teacher-page .rubric-preview-state.ok{color:var(--green)}.teacher-page .rubric-preview-state.warn{color:var(--amber)}.teacher-page .rubric-preview-state.err{color:var(--red)}.teacher-page .rubric-preview-state.muted{color:var(--muted)}.teacher-page .rubric-save-state{color:var(--muted);margin-top:8px;font-size:12.5px}.teacher-page .rubric-save-state.is-error{color:var(--red)}.teacher-page .form-error{color:var(--red);margin-bottom:10px;font-size:12.5px}.teacher-page .rubric-hint-empty{color:var(--amber)}.teacher-page .progress{border:1px solid var(--line);background:var(--panel-2);border-radius:999px;height:8px;margin:10px 0 8px;overflow:hidden}.teacher-page .progress i{background:var(--accent-weak);border-right:2px solid var(--accent);border-radius:999px;width:35%;height:100%;animation:1.1s linear infinite teacher-progress;display:block}@keyframes teacher-progress{0%{transform:translate(-100%)}to{transform:translate(300%)}}.teacher-page .progress-stages{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12.5px;display:flex}.teacher-page .progress-stages .on{color:var(--accent);font-weight:600}.teacher-page .progress-stages .done{color:var(--green)}.teacher-page .tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;margin:12px 0 0;display:flex}.teacher-page .tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;padding:7px 12px;font-size:13px}.teacher-page .tabs button:hover{background:var(--panel-2);color:var(--text)}.teacher-page .tabs button.on{background:var(--accent-weak);border-bottom-color:var(--accent);color:var(--accent);font-weight:600}.teacher-page .tab-panel{padding-top:12px}.teacher-page .rubric-block{margin:0 0 10px;line-height:1.7}.teacher-page .rubric-block:last-child{margin-bottom:0}.md-editor{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--text);font-family:var(--font-body);box-shadow:var(--shadow);display:block;overflow:hidden}.md-toolbar{background:var(--panel-2);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;display:flex}.md-tabs{border-radius:var(--radius-sm);background:var(--line-2);align-items:center;gap:2px;padding:2px;display:flex}.md-tab{color:var(--muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 10px;font-size:12.5px;line-height:1.5;transition:background .12s,color .12s}.md-tab:hover{color:var(--text)}.md-tab[aria-selected=true]{background:var(--accent-weak);color:var(--accent-text);font-weight:650}.md-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.md-actions{align-items:center;gap:2px;display:flex}.md-tool{min-width:26px;height:26px;color:var(--muted);font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0 6px;font-size:12.5px;line-height:1;transition:background .12s,color .12s;display:inline-flex}.md-tool:hover{background:var(--panel);color:var(--accent-text)}.md-tool:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.md-tool:disabled{opacity:.45;cursor:not-allowed;color:var(--muted);background:0 0}.md-input{background:var(--panel);width:100%;color:var(--text);font-family:var(--font-body);resize:vertical;border:0;border-radius:0;outline:none;padding:10px 12px;font-size:13.5px;line-height:1.7;display:block}.md-input:focus{box-shadow:inset 0 0 0 1px var(--accent);border:0;outline:none}.md-input::placeholder{color:var(--muted-2)}.md-preview{min-height:96px;color:var(--text);padding:10px 12px;font-size:13.5px;line-height:1.7}.md-empty{text-align:center;color:var(--muted-2);padding:18px 12px;font-size:13px}.md-footer{border-top:1px solid var(--line);background:var(--panel);color:var(--muted);padding:10px 12px;font-size:12.5px;line-height:1.65}.md-body{color:var(--text);font-family:var(--font-body);overflow-wrap:anywhere;font-size:13.5px;line-height:1.7}.md-body>:first-child{margin-top:0}.md-body>:last-child{margin-bottom:0}.md-body h2{font-family:var(--font-head);margin:14px 0 6px;font-size:15px;font-weight:650;line-height:1.45}.md-body h3{font-family:var(--font-head);margin:12px 0 4px;font-size:13.5px;font-weight:650;line-height:1.5}.md-body h4{font-family:var(--font-head);color:var(--muted);margin:10px 0 4px;font-size:13px;font-weight:600;line-height:1.5}.md-body p{margin:0 0 8px}.md-body ul,.md-body ol{margin:0 0 8px;padding-left:1.5em}.md-body li{margin:2px 0}.md-body li>ul,.md-body li>ol{margin:2px 0 0}.md-body blockquote{border-left:3px solid var(--line-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--panel-2);color:var(--muted);margin:0 0 8px;padding:6px 10px}.md-body blockquote p{margin:0}.md-body hr{border:0;border-top:1px solid var(--line);margin:12px 0}.md-body code{border:1px solid var(--line-2);background:var(--panel-2);border-radius:4px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.md-body pre{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel-2);margin:0 0 10px;padding:10px 12px;overflow-x:auto}.md-body pre code{white-space:pre;background:0 0;border:0;padding:0;font-size:12.5px;line-height:1.6}.md-body table{border-collapse:collapse;width:100%;margin:0 0 10px;font-size:13px}.md-body th,.md-body td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:6px 10px}.md-body th{background:var(--panel-2);color:var(--muted);font-weight:600}.md-expand{margin-left:4px}.md-tool .anticon{font-size:14px}.md-tool-text{align-items:center;gap:5px;padding:0 8px;font-size:12.5px;display:inline-flex}.md-overlay{inset:0 0 0 var(--app-sidebar-w,0px);z-index:60;background:var(--bg);padding:12px;display:flex;position:fixed}.md-overlay-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;min-height:0;box-shadow:var(--shadow-lg);flex-direction:column;flex:1;display:flex;overflow:hidden}.md-overlay-head{background:var(--panel-2);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 10px;display:flex}.md-overlay-title{max-width:26%;color:var(--text);font-family:var(--font-head);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:650;overflow:hidden}.md-overlay-grow{flex:1}.md-overlay-body{flex:1;min-height:0;display:flex}.md-overlay-body.split>.md-pane+.md-pane{border-left:1px solid var(--line)}.md-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.md-pane-head{color:var(--muted);background:var(--panel);border-bottom:1px solid var(--line-2);padding:4px 12px;font-size:12px}.md-input-fill{resize:none;flex:1;min-height:0}.md-preview-fill{flex:1;min-height:0;overflow:auto}.md-preview-inner{max-width:820px;margin:0 auto}.md-footer-fill{max-height:30vh;overflow:auto}@media (width<=900px){.md-overlay{padding:0}}.md-editor--vditor .vditor{border:0;border-radius:0}.md-editor--vditor .vditor-toolbar{border-bottom:1px solid var(--line-2)}.vditor-host{background:var(--panel);min-height:0}.md-overlay-body .vditor-host{flex:1;min-height:0;display:flex}.md-overlay-body .vditor-host>.vditor{flex:1;min-height:0;height:100%!important}.md-editor-loading{color:var(--muted-2);text-align:center;padding:26px 12px;font-size:13px}.md-source-input{background:var(--panel);width:100%;color:var(--text);resize:vertical;tab-size:2;border:0;border-radius:0;outline:none;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.7;display:block}.md-source-input:focus{box-shadow:inset 0 0 0 1px var(--accent);border:0;outline:none}.md-source-input--fill{resize:none;flex:1;height:100%;min-height:0}.md-source-toggle{font-size:12.5px}:is(.md-editor--vditor,.md-overlay) .vditor-toolbar button[data-type=headings] svg,:is(.md-editor--vditor,.md-overlay) .vditor-toolbar button[data-type=bold] svg,:is(.md-editor--vditor,.md-overlay) .vditor-toolbar button[data-type=italic] svg,:is(.md-editor--vditor,.md-overlay) .vditor-toolbar button[data-type=strike] svg{width:12px;height:12px}.exam-focus-page{background:var(--bg);min-height:100vh;color:var(--text);padding:24px 20px 64px}.exam-focus-card{max-width:860px;margin:0 auto}.exam-bar{z-index:30;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:10px;padding:9px 16px;display:flex;position:sticky;top:0}.exam-bar-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:34vw;font-weight:700;overflow:hidden}.exam-bar .spacer{flex:auto}.exam-tree-toggle{display:none}.exam-live-wrap{max-width:1180px;margin:0 auto;padding:20px}.exam-paper{width:100%;min-width:0;max-width:830px;margin:0 auto}.exam-part{margin-bottom:8px}.exam-part-title{letter-spacing:.06em;color:var(--muted);border-bottom:1px solid var(--line-2);margin:26px 0 4px;padding-bottom:6px;font-size:12.5px;font-weight:700}.exam-part:first-child .exam-part-title{margin-top:0}.exam-part-title .part-points{letter-spacing:0;color:var(--muted-2);margin-left:8px;font-weight:400}.exam-question{border-top:1px dashed var(--line-2);padding:14px 0;scroll-margin-top:76px}.exam-question:first-of-type{border-top:0}.exam-question.current{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent-weak) 34%, transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-left:-15px;padding-left:12px}.exam-question.marked{box-shadow:inset 3px 0 0 var(--amber)}.q-head{align-items:flex-start;gap:10px;display:flex}.q-number{border:1.5px dashed var(--line);width:28px;height:28px;color:var(--muted-2);background:var(--panel);font-variant-numeric:tabular-nums;border-radius:50%;flex:0 0 28px;place-items:center;font-size:12.5px;font-weight:700;display:grid}.exam-question.answered .q-number{border-style:solid;border-color:var(--done);background:var(--done);color:var(--on-done)}.exam-question.current .q-number{outline:2px solid var(--accent);outline-offset:1px}.exam-question.marked .q-number{border-color:var(--amber)}.q-body{flex:1;min-width:0}.exam-stem{white-space:pre-wrap;word-break:break-word;margin:3px 0 8px;font-weight:600;line-height:1.8}.q-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.q-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.q-mark-btn{border-color:var(--line);color:var(--muted)}.q-mark-btn.on{border-color:var(--amber);color:var(--amber);background:var(--amber-weak);font-weight:650}.qopts{flex-wrap:wrap;gap:8px;margin:2px 0 0;display:flex}.qopts.stack{flex-direction:column;align-items:stretch}.qopt{border:1px dashed var(--line);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;text-align:left;border-radius:8px;align-items:flex-start;gap:8px;padding:7px 13px;font-size:13.5px;line-height:1.6;transition:border-color .12s,background .12s;display:inline-flex}.qopt:hover:not(:disabled){border-color:var(--accent);border-style:solid}.qopt:disabled{cursor:not-allowed;opacity:.72}.qopt b{border:1px solid var(--line);background:var(--panel);width:20px;height:20px;color:var(--muted-2);border-radius:50%;flex:0 0 20px;place-items:center;font-size:11px;font-weight:700;display:grid}.qopt.cb b{border-radius:4px}.qopt.on{border-style:solid;border-color:var(--done-line);background:var(--done-bg);color:var(--text);font-weight:600}.qopt.on b{background:var(--done);border-color:var(--done);color:var(--on-done)}.qopt.cb.on b:after{content:"";border:2px solid var(--on-done);border-top:0;border-left:0;width:4px;height:8px;margin-top:-2px;display:block;transform:rotate(42deg)}.qopt.cb.on b{font-size:0}.blank-input{border:1px solid var(--line);border-bottom:2px dashed var(--line);border-radius:var(--radius-sm) var(--radius-sm) 0 0;font:inherit;color:var(--text);background:0 0;min-width:220px;max-width:100%;padding:6px 10px;font-size:14px}.blank-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.blank-input.filled{background:var(--done-bg);border-bottom-style:solid;border-bottom-color:var(--done);font-weight:600}.blank-input:disabled{opacity:.72;cursor:not-allowed}.essay-wrap{margin-top:6px}.writearea{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;font:inherit;resize:vertical;background:var(--panel);color:var(--text);min-height:0;padding:12px;font-size:14px;line-height:1.85;display:block}.writearea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.writearea.filled{border-color:var(--done-line)}.writearea:disabled{opacity:.72;cursor:not-allowed}.wcount{color:var(--muted);align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.wcount .wn{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.wcount.ok .wn{color:var(--green)}.wcount.over .wn{color:var(--red)}.exam-tree{border-right:1px solid var(--line-2);max-height:none;padding-right:8px;overflow:visible}.tree-head{border-bottom:1px solid var(--line-2);margin-bottom:8px;padding:2px 6px 10px}.tree-head b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.4;display:block;overflow:hidden}.tree-head .prog{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;font-size:11.5px}.tree-scroll{max-height:calc(100vh - 150px);padding-bottom:24px;overflow:auto}.tree-part-wrap{margin-bottom:2px}.tree-part{text-align:left;width:100%;color:var(--muted);font:inherit;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:6px 8px;font-size:12.5px;font-weight:650;display:flex}.tree-part:hover{background:var(--panel-2);color:var(--text)}.tree-part.done{color:var(--text)}.tree-part.done .tree-part-count{color:var(--done);font-weight:700}.tree-part-count{color:var(--muted-2);font-variant-numeric:tabular-nums;margin-left:auto;font-size:11px}.tree-caret{color:var(--muted-2);width:10px;font-size:10px}.tree-kids{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:3px 2px 8px;display:grid}.tree-item{font-variant-numeric:tabular-nums;justify-content:center;gap:4px;padding:4px 2px;position:relative}.tree-item.marked{border-color:var(--amber);background:var(--amber-weak);color:var(--amber)}.tree-item.marked.done .dot{background:var(--done);border-color:var(--done)}.tree-item.marked:after{content:"";background:var(--amber);border-radius:50%;width:4px;height:4px;position:absolute;top:2px;right:3px}.exam-tree .tree-item.done{background:var(--done);border-color:var(--done);color:var(--on-done);font-weight:700}.exam-tree .tree-item.done.marked{border-color:var(--amber)}.exam-tree .tree-item.current{background:var(--done);color:var(--on-done);outline:2px solid var(--accent);outline-offset:1px}.exam-tree .tree-item.current:not(.done){background:var(--accent-weak);color:var(--accent-text);outline:2px solid var(--accent)}.exam-tree .dot{flex:0 0 6px;width:6px;height:6px;display:inline-block}.exam-tree .tree-item.done .dot{background:var(--on-done);border-color:var(--on-done)}.exam-tree .tree-item.marked .dot{background:var(--amber);border-color:var(--amber)}.tree-item.done{font-weight:700}.exam-drawer-backdrop{display:none}.remaining{border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:999px;padding:2px 10px}.remaining.warn,.remaining.over{color:var(--red);border-color:var(--red);background:var(--red-weak)}.save-state{color:var(--muted-2);font-size:12px}.exam-banner{border-radius:var(--radius-sm);background:var(--amber-weak);color:var(--amber);border:1px solid var(--amber);margin:12px 0;padding:10px 14px;font-size:13px}.exam-banner.danger{background:var(--red-weak);color:var(--red);border-color:var(--red)}.exam-banner.info{background:var(--accent-weak);color:var(--accent-text);border-color:var(--accent)}.exam-submit-bar{justify-content:flex-end;gap:10px;padding:24px 0 8px;display:flex}.exam-modal{z-index:80;background:#0f141c57;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.exam-modal-box{background:var(--panel);width:min(600px,100%);max-height:80vh;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:20px 22px;overflow:auto}.exam-modal-box h3{margin:0 0 4px;font-size:16px}.exam-modal-box p{margin:4px 0 0}.mgroups{margin-top:12px}.mgroup-title{color:var(--muted-2);letter-spacing:.04em;margin:14px 0 6px;font-size:12px;font-weight:650}.mchips{flex-wrap:wrap;gap:6px;display:flex}.mchip{border:1px solid var(--line);background:var(--panel);min-width:34px;height:28px;font:inherit;color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:7px;padding:0 7px;font-size:12.5px}.mchip:hover{border-color:var(--accent);color:var(--accent-text);background:var(--accent-weak)}.mchip.mk{border-color:var(--amber);color:var(--amber);background:var(--amber-weak)}.mfoot{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.exam-result{max-width:760px;margin:0 auto}.exam-result-score{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.score-big{letter-spacing:-.035em;color:var(--accent-text);font-variant-numeric:tabular-nums;font-size:36px;font-weight:700;line-height:1}.score-big small{color:var(--muted);font-size:14px;font-weight:400}.result-facts{min-width:210px}.result-facts .kv{border-bottom:0;padding:4px 0}.result-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.assignment-page{max-width:900px;margin:0 auto}.assignment-textarea{min-height:220px}.rubric-row p{color:var(--muted);margin:0;font-size:12.5px}.assign-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.fold-head{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.fold-title{font-family:var(--font-head);flex:auto;font-size:14px;font-weight:650}.fold-caret{color:var(--muted);flex:none;transition:transform .15s}.fold-caret.is-open{transform:rotate(180deg)}.fold-body{margin-top:14px}.submission-card>h2 .tag{margin-left:8px}.score-pending{color:var(--text);align-items:center;gap:6px;font-size:15px;font-weight:650;display:inline-flex}.grace-label{align-items:center;gap:4px;display:inline-flex}@media (width<=1023px){.exam-tree-toggle{display:inline-flex}.exam-tree{padding-right:0}.tree-scroll{max-height:calc(100vh - 96px)}.exam-drawer-backdrop{z-index:35;background:#0f141c57;display:block;position:fixed;inset:0}.exam-live-wrap{padding:12px 14px 72px}.exam-bar{padding:8px 12px}.exam-bar-title{max-width:46vw;font-size:13px}.exam-question.current{margin-left:-11px;padding-left:8px}}@media (width<=640px){.exam-bar-title{display:none}.qopts{flex-direction:column;align-items:stretch}.tree-kids{grid-template-columns:repeat(4,minmax(0,1fr))}}.submitted-body{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;line-height:1.75}.submitted-body.rich{white-space:normal}.submitted-body.rich img{max-width:100%;height:auto}.submitted-body.rich p{margin:0 0 8px}.exam-material{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);margin:10px 0 14px;scroll-margin-top:76px;overflow:hidden}.exam-material-head{background:var(--panel-2);border-bottom:1px solid var(--line-2);color:var(--muted);letter-spacing:.02em;align-items:center;gap:8px;padding:7px 12px;font-size:11.5px;display:flex}.exam-material-label{color:var(--text);font-weight:700}.exam-material-range{margin-left:auto}.exam-material-hint{color:var(--muted-2);padding:8px 14px 0;font-size:12px}.exam-material-body{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 16px 14px;font-size:15.5px;line-height:1.95}.exam-material-body.inline{padding-top:10px}.inline-blank-slot,.inline-fill-wrap{white-space:nowrap;scroll-margin-top:90px;display:inline}.inline-blank-no,.inline-blank-value{white-space:nowrap}.inline-blank-gap{color:var(--muted-2);letter-spacing:.06em}.inline-blank{border:0;border-bottom:2px dashed var(--line);font:inherit;color:var(--accent-text);cursor:pointer;vertical-align:baseline;background:0 0;border-radius:4px 4px 0 0;align-items:baseline;gap:3px;margin:0 2px;padding:0 4px 1px;font-size:.86em;font-weight:650;line-height:1.5;display:inline-flex}.inline-blank:hover:not(:disabled){background:var(--accent-weak);border-bottom-style:solid;border-bottom-color:var(--accent)}.inline-blank:disabled{cursor:not-allowed;opacity:.72}.inline-blank.answered{background:var(--done-bg);border-bottom:2px solid var(--done-line);color:var(--text)}.inline-blank.answered .inline-blank-value{color:var(--done);font-weight:800}.inline-blank.current{outline:2px solid var(--accent);outline-offset:1px}.inline-blank.marked{box-shadow:inset 0 -2px 0 var(--amber)}.inline-blank:not(.answered):after{content:"▾";opacity:.55;margin-left:1px;font-size:9px}.inline-blank-no{opacity:.7;font-size:10px;font-weight:600}.inline-blank-value{min-width:1ch}.inline-fill-wrap{vertical-align:baseline;align-items:center;gap:4px;margin:0 3px;display:inline-flex}.exam-material-body .inline-fill-wrap.current .inline-fill{outline:2px solid var(--accent);outline-offset:2px}.exam-material-body input.inline-fill{border:0;border-bottom:2px dashed var(--line);font:inherit;text-align:center;min-width:84px;max-width:150px;color:var(--text);box-shadow:none;background:0 0;border-radius:4px 4px 0 0;outline:none;padding:1px 4px;font-size:14px}.exam-material-body input.inline-fill:focus{background:var(--accent-weak);border-bottom-style:solid;border-bottom-color:var(--accent);box-shadow:none}.exam-material-body input.inline-fill.filled{background:var(--done-bg);border-bottom:2px solid var(--done);font-weight:650}.exam-material-body input.inline-fill:disabled{opacity:.72;cursor:not-allowed}.inline-flag{color:var(--muted-2);opacity:.45;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:12px;line-height:1}.inline-flag:hover:not(:disabled),.inline-flag.on{opacity:1;color:var(--amber)}.inline-flag:disabled{cursor:not-allowed;opacity:.3}.inline-pop{width:300px}.inline-pop-head{color:var(--muted);align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.inline-pop-no{background:var(--accent-weak);min-width:22px;height:22px;color:var(--accent-text);border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.inline-pop-opts{grid-template-columns:1fr 1fr;gap:6px;display:grid}.inline-pop-opt{border:1px solid var(--line);background:var(--panel);font:inherit;text-align:left;cursor:pointer;color:var(--text);border-radius:7px;align-items:flex-start;gap:7px;padding:6px 8px;font-size:12.5px;display:flex}.inline-pop-opt:hover:not(:disabled){border-color:var(--accent);background:var(--accent-weak)}.inline-pop-opt.on{border-color:var(--done-line);background:var(--done-bg);font-weight:650}.inline-pop-opt:disabled{cursor:not-allowed;opacity:.72}.inline-pop-opt b{border:1px solid var(--line);width:18px;height:18px;color:var(--muted);border-radius:50%;flex:0 0 18px;place-items:center;font-size:10.5px;font-weight:700;display:grid}.inline-pop-opt.on b{background:var(--done);border-color:var(--done);color:var(--on-done)}.inline-pop-foot{border-top:1px solid var(--line-2);align-items:center;gap:6px;margin-top:9px;padding-top:8px;display:flex}.inline-pop-hint{color:var(--muted-2);margin-right:auto;font-size:11px}.inline-pop-mark,.inline-pop-clear{border:1px solid var(--line);background:var(--panel);font:inherit;color:var(--muted);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11.5px;display:inline-flex}.inline-pop-mark.on{color:var(--amber);border-color:var(--amber);background:var(--amber-weak)}.inline-pop-clear:hover:not(:disabled){border-color:var(--red);color:var(--red)}.inline-pop-mark:disabled,.inline-pop-clear:disabled{cursor:not-allowed;opacity:.6}@media (width<=640px){.exam-material-body{padding:10px 12px 12px;font-size:15px}.inline-pop{width:min(300px,100vw - 32px)}.inline-pop-opts{grid-template-columns:1fr}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f8fc;--panel:#fff;--panel-2:#eff4fb;--line:#dce4f2;--line-2:#ebf0f8;--line-strong:#7c8ba3;--overlay:#0f141c57;--text:#0e2340;--muted:#41536e;--muted-2:#55677f;--accent:#1a63e0;--accent-2:#1450bc;--accent-weak:#e8effd;--accent-text:#1a63e0;--on-accent:#fff;--brand-navy:#0e3676;--brand-azure:#1f8dfd;--brand-teal:#20b998;--brand-yellow:#febf41;--brand-rose:#a63960;--create:#1957e7;--create-weak:#e8effd;--assess:#0e7066;--assess-weak:#dbf4ee;--practice:#a63960;--practice-weak:#fde2e7;--insights:#3f51b5;--insights-weak:#eaecfb;--space-home:#0e3676;--space-home-weak:#e7edf7;--space-classes:#5b3ac4;--space-classes-weak:#eae0fd;--green:#17703f;--green-weak:#e6f5ec;--on-green:#fff;--amber:#8a5a00;--amber-weak:#fff3d6;--red:#b42338;--red-weak:#fde6e8;--done:#1a63e0;--done-bg:#e8effd;--on-done:#fff;--done-line:#a9c1f5;--logo-navy:#0e3676;--logo-blue-text:#1957e7;--logo-teal-text:#0e7066;--shadow:0 1px 2px #0e36760d, 0 1px 3px #0e367612;--shadow-lg:0 18px 44px #0e36761f;--radius:12px;--radius-sm:8px;--font-head:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1120;--panel:#101a2c;--panel-2:#16223a;--line:#24334d;--line-2:#1b2740;--line-strong:#5e7391;--text:#e8eef9;--muted:#b3c0d4;--muted-2:#93a4bd;--accent:#2a6fd6;--accent-2:#2463c4;--accent-weak:#14233b;--accent-text:#7db1ff;--on-accent:#fff;--create:#6fb4ff;--create-weak:#14233b;--assess:#3fd6b4;--assess-weak:#0f2c28;--practice:#e58bb0;--practice-weak:#33141e;--insights:#a5b4fc;--insights-weak:#1e2545;--space-home:#8fb4ff;--space-home-weak:#152640;--space-classes:#a78bfa;--space-classes-weak:#1e1a3a;--green:#6ee7a5;--green-weak:#0c2a1d;--on-green:#0c2a1d;--amber:#ffc85c;--amber-weak:#2a2110;--red:#ff7d8a;--red-weak:#331218;--done:#2a6fd6;--done-bg:#14233b;--on-done:#fff;--done-line:#2a4a78;--logo-navy:#e8eef9;--logo-blue-text:#6fb4ff;--logo-teal-text:#3fd6b4;--shadow:0 1px 2px #00000080;--shadow-lg:0 6px 24px #00000080}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--text);font:14px/1.65 var(--font-body);-webkit-font-smoothing:antialiased;margin:0;transition:background .18s,color .18s;display:flex}aside{background:var(--panel);border-right:1px solid var(--line);flex:0 0 238px;width:238px;height:100vh;padding:20px 12px;position:sticky;top:0;overflow:auto}.brand{padding:0 6px 12px;display:flex}.group{color:var(--muted-2);margin:18px 8px 7px;font-size:12px;font-weight:650}nav button{text-align:left;width:100%;font:inherit;color:var(--text);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;margin-bottom:1px;padding:7px 10px;transition:background .12s;display:block}nav button:hover{background:var(--panel-2)}nav button.on{background:var(--accent-weak);color:var(--accent-text);font-weight:650}nav button .badge{float:right;background:var(--accent);color:var(--on-accent);border-radius:999px;margin-top:3px;padding:0 6px;font-size:10.5px;font-weight:700;line-height:17px}main{flex:1;width:100%;min-width:0;max-width:1240px;margin:0 auto;padding:28px 34px 96px}.screen{animation:.18s fade;display:none}.screen.on{display:block}@keyframes fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}h1{font-family:var(--font-head);letter-spacing:-.01em;margin:0 0 4px;font-size:20px;font-weight:650}.sub{color:var(--muted);margin-bottom:20px;font-size:13px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:18px 18px 16px}.card>h2{font-family:var(--font-head);margin:0 0 14px;font-size:14px;font-weight:650}.card>h2 small{color:var(--muted-2);font-size:12px;font-weight:400;font-family:var(--font-body);margin-left:8px}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=1000px){.grid2,.grid3{grid-template-columns:1fr}}label.f{margin-bottom:13px;display:block}label.f b{color:var(--muted);margin-bottom:5px;font-size:13px;font-weight:600;display:block}label.f b i{color:var(--red);font-style:normal}input:not([type]),input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius-sm);width:100%;font:inherit;background:var(--panel);color:var(--text);padding:6px 10px;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:none}.hint{color:var(--muted-2);margin-top:6px;font-size:12px;line-height:1.55}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn{border:1px solid var(--line-strong);background:var(--panel);height:32px;color:var(--text);border-radius:var(--radius-sm);font:inherit;cursor:pointer;padding:0 14px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.btn:hover{background:var(--panel-2);border-color:var(--accent);color:var(--accent-text)}.btn:active{background:var(--accent-weak)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn.pri:hover{background:var(--accent-2);border-color:var(--accent-2);color:var(--on-accent)}.btn.danger{color:var(--red);border-color:var(--red-weak)}.btn.danger:hover{background:var(--red-weak);border-color:var(--red)}.btn.sm{height:26px;padding:0 10px;font-size:12px}.btn:disabled:hover,.btn[disabled]:hover{background:var(--panel);border-color:var(--line-strong);color:var(--text)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:var(--panel-2);white-space:nowrap;padding:9px 14px;font-size:12.5px;font-weight:600}th:first-child{border-top-left-radius:var(--radius-sm)}th:last-child{border-top-right-radius:var(--radius-sm)}th[data-sort]{cursor:pointer;-webkit-user-select:none;user-select:none}th[data-sort]:hover{color:var(--text)}th[data-sort]:after{content:"⇅";opacity:.32;margin-left:5px;font-size:10px}th.asc:after{content:"▲";opacity:1;color:var(--accent-text)}th.desc:after{content:"▼";opacity:1;color:var(--accent-text)}td{border-bottom:1px solid var(--line-2);vertical-align:middle;padding:10px 14px}tbody tr{transition:background .1s}tbody tr:hover{background:var(--panel-2)}tr:last-child td{border-bottom:0}.tag{white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:1.5px 8px;font-size:11.5px;font-weight:600;display:inline-block}.tag.gray{background:var(--panel-2);color:var(--muted);border-color:var(--line)}.tag.blue{background:var(--accent-weak);color:var(--accent-text)}.tag.green{background:var(--green-weak);color:var(--green)}.tag.amber{background:var(--amber-weak);color:var(--amber)}.tag.red{background:var(--red-weak);color:var(--red)}.kv{border-bottom:1px dashed var(--line-2);justify-content:space-between;gap:16px;padding:8px 0;font-size:13px;display:flex}.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--muted);flex:none}.kv span:last-child{text-align:right;font-weight:600}.bar{background:var(--line-2);border-radius:999px;height:9px;overflow:hidden}.bar>i{background:var(--accent);border-radius:999px;height:100%;transition:width .35s;display:block}.bar.green>i{background:var(--green)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.muted{color:var(--muted)}.small{font-size:12px}.score-big{font-family:var(--font-head);letter-spacing:-.02em;color:var(--accent-text);font-size:36px;font-weight:700;line-height:1}.score-big small{color:var(--muted);font-size:14px;font-weight:400;font-family:var(--font-body)}.rubric-row{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);margin-bottom:10px;padding:13px 14px}.rubric-row .top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.rubric-row .top b{font-size:13.5px;font-weight:650}.rubric-row .top .pts{color:var(--accent-text);font-size:13px;font-weight:700}.rubric-row p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.6}.flag{color:var(--muted-2);font-size:11.5px}.inline-note{background:var(--panel-2);border-left:3px solid var(--accent);color:var(--muted);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin-bottom:14px;padding:10px 13px;font-size:12.5px;line-height:1.65}.inline-note.ok{border-left-color:var(--green);background:var(--green-weak);color:var(--green)}.inline-note.err{border-left-color:var(--red);background:var(--red-weak);color:var(--red)}.inline-note.warn{border-left-color:var(--amber);background:var(--amber-weak);color:var(--amber)}.inline-note.compact{margin:0;padding:3px 10px;font-size:12px;line-height:1.5;display:inline-block}details{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);margin-bottom:10px;padding:12px 14px}details summary{cursor:pointer;font-size:13px;font-weight:600;list-style:none}details summary::-webkit-details-marker{display:none}details summary:before{content:"▸ ";color:var(--muted-2)}details[open] summary:before{content:"▾ "}details p{color:var(--muted);margin:11px 0 0;font-size:13px;line-height:1.7}.filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:11px;display:grid}.filters label.f{margin-bottom:0}.feed{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);cursor:pointer;margin-bottom:10px;padding:14px 16px;transition:box-shadow .14s,border-color .14s}.feed:hover{box-shadow:var(--shadow);border-color:var(--accent)}.feed:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feed .top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:6px;display:flex}.feed b{font-size:14px;font-weight:650}.feed .meta{color:var(--muted-2);margin-top:3px;font-size:12px}.feed .right{text-align:right;flex:none}.dot{background:var(--red);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}body{display:block}#root{min-height:100vh}:root{--app-sidebar-w:238px}.app-shell{background:var(--bg);min-height:100vh;color:var(--text);font:14px/1.62 var(--font-body);display:flex}.app-sidebar{flex-direction:column;display:flex}.app-sidebar .brand{padding-bottom:10px}.app-main-wrap{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{z-index:20;background:var(--bg);border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 34px;display:flex;position:sticky;top:0}.app-main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:28px 34px 96px}.sidebar-foot{border-top:1px solid var(--line-2);flex-direction:column;gap:8px;margin-top:auto;padding:14px 8px 4px;display:flex}.nav-link{text-align:left;width:100%;color:var(--text);border-radius:var(--radius-sm);align-items:center;gap:10px;margin-bottom:1px;padding:7px 10px;text-decoration:none;transition:background .12s;display:flex}.nav-link:hover{background:var(--panel-2)}.nav-link.on{background:var(--accent-weak);color:var(--accent-text);font-weight:650}.nav-ico{width:26px;height:26px;color:var(--muted-2);border-radius:7px;flex:0 0 26px;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:color .12s,background .12s;display:inline-flex}.nav-link:hover .nav-ico{color:var(--text)}.nav-link.on .nav-ico{color:var(--accent-text);background:0 0}.nav-link[data-tone=create] .nav-ico{background:var(--create-weak);color:var(--create)}.nav-link[data-tone=assess] .nav-ico{background:var(--assess-weak);color:var(--assess)}.nav-link[data-tone=insights] .nav-ico{background:var(--insights-weak);color:var(--insights)}.nav-link[data-tone=practice] .nav-ico{background:var(--practice-weak);color:var(--practice)}.nav-link[data-tone=home] .nav-ico{background:var(--space-home-weak);color:var(--space-home)}.nav-link[data-tone=classes] .nav-ico{background:var(--space-classes-weak);color:var(--space-classes)}.nav-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exam-focus{background:var(--bg);min-height:100vh;color:var(--text)}.exam-focus-top{z-index:30;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;padding:10px 20px;display:flex;position:sticky;top:0}.login-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:34px 24px 26px;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background:radial-gradient(680px 420px at 6% -10%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%), radial-gradient(560px 420px at 100% 8%, color-mix(in srgb, var(--assess) 12%, transparent), transparent 70%), radial-gradient(520px 360px at 68% 108%, color-mix(in srgb, var(--brand-yellow) 14%, transparent), transparent 70%);position:absolute;inset:0}:root[data-theme=dark] .login-page:before{opacity:.55}.login-shell{background:var(--panel);border:1px solid var(--line);width:100%;max-width:1060px;box-shadow:var(--shadow-lg);border-radius:16px;grid-template-columns:minmax(0,1fr) 424px;display:grid;position:relative;overflow:hidden}.login-hero{border-right:1px solid var(--line);background:linear-gradient(155deg, var(--panel) 0%, var(--bg) 60%, color-mix(in srgb, var(--assess-weak) 55%, var(--bg)) 100%);flex-direction:column;min-height:560px;padding:44px 42px 38px;display:flex}.login-tagline{color:var(--text);margin-top:18px;font-size:16px;font-weight:650}.login-subtagline{color:var(--muted);margin-top:3px;font-size:13px}.login-points{flex-direction:column;gap:11px;margin:22px 0 0;padding:0;list-style:none;display:flex}.login-points li{color:var(--muted);align-items:flex-start;gap:10px;font-size:13px;line-height:1.6;display:flex}.login-check{background:var(--assess-weak);width:20px;height:20px;color:var(--assess);border-radius:50%;flex:0 0 20px;justify-content:center;align-items:center;margin-top:1px;font-size:12px;display:inline-flex}.login-pillars{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:26px;display:flex}.login-pillar{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 6px;font-size:12px;display:inline-flex}.login-pillar small{color:var(--muted-2);font-size:12px}.login-pillar small:before{content:"·";margin:0 4px}.login-pillar-ico{background:var(--pc-weak);width:24px;height:24px;color:var(--pc);border-radius:50%;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.login-pillar[data-f=create]{--pc:var(--create);--pc-weak:var(--create-weak)}.login-pillar[data-f=assess]{--pc:var(--assess);--pc-weak:var(--assess-weak)}.login-pillar[data-f=practice]{--pc:var(--practice);--pc-weak:var(--practice-weak)}.login-pillar[data-f=insights]{--pc:var(--insights);--pc-weak:var(--insights-weak)}.login-plan-note{color:var(--muted-2);margin-top:9px;font-size:12px}.login-hero-foot{color:var(--muted-2);margin-top:14px;font-size:12px}.login-card{width:100%;box-shadow:none;background:var(--panel);border:0;border-radius:0;flex-direction:column;justify-content:flex-start;margin:0;padding:44px 36px 34px;display:flex}.login-card h2{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:750}.login-card .sub{color:var(--muted);margin:5px 0 22px;font-size:13px}.login-card .tl-field{margin-bottom:14px}.login-card .ant-btn-primary{margin-top:4px}@media (width<=1100px){.login-page{align-items:flex-start;padding:32px 16px 48px;overflow-y:auto}.login-shell{grid-template-columns:1fr;max-width:560px}.login-hero{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding:28px 24px 22px}.login-card{padding:26px 24px 30px}.login-hero .tl-brand-xl{--tl-lockup-w:260px;--tl-lockup-word:30px}.login-tagline{margin-top:12px;font-size:15px}.login-points,.login-pillars,.login-plan-note,.login-hero-foot{display:none}}.app-nav-toggle{display:none}@media (width<=1023px){:root{--app-sidebar-w:0px}.app-main{padding:20px 16px 80px}.app-topbar{padding:10px 16px}.app-nav-toggle{display:inline-flex}.app-sidebar{z-index:60;background:var(--panel);border-right:1px solid var(--line);width:280px;max-width:86vw;height:100vh;box-shadow:var(--shadow-lg);padding:16px 12px;transition:transform .16s;position:fixed;inset:0 auto 0 0;overflow:auto;transform:translate(-100%)}.app-sidebar.open{transform:none}.app-nav-backdrop{z-index:55;background:var(--overlay);position:fixed;inset:0}}.exam-layout{grid-template-columns:260px minmax(0,1fr);gap:20px;max-width:1180px;margin:0 auto;padding:20px;display:grid}@media (width<=1023px){.exam-layout{grid-template-columns:1fr}.exam-tree{display:none}.exam-tree.open{z-index:40;background:var(--panel);width:300px;max-width:88vw;box-shadow:var(--shadow-lg);padding:16px;display:block;position:fixed;inset:0 auto 0 0;overflow:auto}}.exam-tree{align-self:start;max-height:calc(100vh - 84px);position:sticky;top:64px;overflow:auto}.tree-group-title{color:var(--muted);margin:12px 0 4px;font-size:12px;font-weight:700}.tree-item{text-align:left;width:100%;color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:4px 8px;font-size:12.5px;display:flex}.tree-item:hover{background:var(--panel-2)}.tree-item.done{background:var(--done-bg);color:var(--text);border-color:var(--done-line)}.tree-item.done .dot{background:var(--done);border-color:var(--done)}.tree-item.current{border-color:var(--accent)}.tree-item.marked{color:var(--amber)}.tree-item .dot{border:1.5px dashed var(--muted);border-radius:999px;flex:0 0 10px;width:10px;height:10px}.tree-item.marked .dot{background:var(--amber);border-color:var(--amber)}.exam-question{border-top:1px solid var(--line-2);padding:14px 0}.exam-question:first-child{border-top:0}.exam-question.current{border-left:3px solid var(--accent);margin-left:-15px;padding-left:12px}.exam-stem{margin:4px 0 8px;font-weight:600}.opt-row{border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.opt-row:hover{background:var(--panel-2)}.opt-row.selected{background:var(--done-bg)}.opt-letter{color:var(--muted-2);font-weight:700}.remaining{font-variant-numeric:tabular-nums;font-weight:700}.remaining.warn{color:var(--red)}.part-done{color:var(--text)}.notice-unread{border-left:3px solid var(--accent)}.notice-link{cursor:pointer}.notice-link:hover{border-color:var(--accent)}.notice-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.audit-timeline{margin:14px 0 0;padding:0;list-style:none}.audit-timeline>li{padding:0 0 14px 22px;position:relative}.audit-timeline>li:before{content:"";background:var(--line);width:1px;position:absolute;top:16px;bottom:-2px;left:5px}.audit-timeline>li:last-child:before{display:none}.audit-dot{background:var(--panel);border:2px solid var(--accent);border-radius:50%;width:11px;height:11px;position:absolute;top:6px;left:0}.audit-event{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--radius-sm);padding:8px 12px}.audit-event-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.audit-event-detail{color:var(--muted);margin-top:2px;font-size:13px}.required-mark{color:var(--red);font-weight:700}input.invalid,input.invalid:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-weak)}.field-error{color:var(--red);margin-top:4px;font-size:12px;display:block}.sidebar-user{color:var(--muted);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:2px 4px;font-size:12px;text-decoration:none;display:inline-flex}.sidebar-user .foot-ico{color:var(--muted-2);justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.sidebar-user:hover{color:var(--accent-text);background:var(--accent-weak)}.sidebar-user:hover .foot-ico{color:var(--accent-text)}.rich-editor{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel)}.rich-editor:focus-within{border-color:var(--accent)}.rich-toolbar{border-bottom:1px solid var(--line-2);background:var(--panel-2);border-radius:var(--radius-sm) var(--radius-sm) 0 0;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 8px;display:flex}.rich-toolbar button{cursor:pointer;min-width:30px;height:28px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0 7px;font-size:13px;line-height:1;display:inline-flex}.rich-toolbar button:hover{background:var(--panel);border-color:var(--line)}.rich-toolbar .sep{background:var(--line);width:1px;height:18px;margin:0 4px}.rich-body-wrap{position:relative}.rich-body{overflow-wrap:anywhere;background:var(--panel);border-radius:0 0 var(--radius-sm) var(--radius-sm);outline:none;min-height:220px;padding:12px;font-size:14px;line-height:1.85;position:relative}.rich-body h3{margin:10px 0 6px;font-size:16px}.rich-body p{margin:0 0 8px}.rich-body ul,.rich-body ol{margin:6px 0;padding-left:24px}.rich-placeholder{color:var(--muted);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;top:12px;left:12px}.rich-content{overflow-wrap:anywhere;line-height:1.75}.rich-content h1,.rich-content h2,.rich-content h3{margin:10px 0 6px}.rich-content p{margin:0 0 8px}.rich-content ul,.rich-content ol{margin:6px 0;padding-left:24px}.rich-content img{max-width:100%;height:auto}.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed}.btn:disabled:hover,.btn[disabled]:hover{filter:none}.ai-criteria{gap:8px;margin:12px 0;padding:0;list-style:none;display:grid}.ai-criteria>li{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius-sm);padding:8px 10px}.review-more>summary{cursor:pointer;color:var(--muted)}.review-item-summary{gap:8px;margin:4px 0 8px}.review-items{margin-top:2px}.review-items th.num,.review-items td.num{text-align:right}.review-items td{padding-top:7px;padding-bottom:7px}.review-items .answer-given{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.review-items .answer-given.is-correct,.review-items .awarded.is-correct{color:var(--green);font-weight:600}.review-items .answer-given.is-wrong,.review-items .awarded.is-wrong{color:var(--red);font-weight:600}.review-items .answer-given.is-partial,.review-items .awarded.is-partial{color:var(--amber);font-weight:600}.review-items .answer-given.is-ungraded,.review-items .awarded.is-ungraded{color:var(--muted)}.grading-answer{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--radius-sm);margin-bottom:14px;padding:12px 14px}.grading-answer-block+.grading-answer-block{margin-top:12px}.grading-answer-text{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius-sm);max-height:240px;margin-top:5px;padding:9px 11px;font-size:13px;line-height:1.7;overflow:auto}.essay-answer+.essay-answer{margin-top:10px}.answer-sheet{flex-wrap:wrap;gap:6px;max-height:190px;margin-top:6px;padding:2px;display:flex;overflow:auto}.answer-chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:1px 9px;font-size:11.5px;display:inline-flex}.answer-chip b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.answer-chip.is-correct{background:var(--green-weak);color:var(--green);border-color:#0000}.answer-chip.is-partial{background:var(--amber-weak);color:var(--amber);border-color:#0000}.answer-chip.is-wrong{background:var(--red-weak);color:var(--red);border-color:#0000}.answer-chip.is-ungraded{background:var(--panel-2);color:var(--muted)}.chip{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 9px;font-size:11.5px;line-height:1.7;display:inline-flex}.chip.ok{background:var(--green-weak);color:var(--green);border-color:#0000}.chip.warn{background:var(--amber-weak);color:var(--amber);border-color:#0000}.chip.err{background:var(--red-weak);color:var(--red);border-color:#0000}.chip.info{background:var(--accent-weak);color:var(--accent-text);border-color:#0000}.chip.on{border-color:var(--accent);background:var(--accent-weak);color:var(--accent-text);font-weight:650}.md-tool-italic{font-family:Georgia,Times New Roman,serif;font-style:italic}.rich-toolbar-spacer{flex:1}.rich-toolbar .rich-toolbar-action{color:var(--muted)}.rich-toolbar .rich-toolbar-action:hover{color:var(--accent)}.rich-toolbar .rich-toolbar-action .anticon{font-size:14px}.rich-editor--expanded{inset:0 0 0 var(--app-sidebar-w,0px);z-index:60;background:var(--panel);box-shadow:var(--shadow-lg);border:0;border-radius:0;flex-direction:column;display:flex;position:fixed}.rich-editor--expanded .rich-toolbar{border-radius:0}.rich-editor--expanded .rich-body-wrap{flex:1;min-height:0;display:flex}.rich-editor--expanded .rich-body{border-radius:0;flex:1;min-height:0;overflow:auto}.auth-shell{width:100%;max-width:460px;position:relative}.auth-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:16px;padding:34px 30px 28px}.auth-card h2{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:750}.auth-card .sub{color:var(--muted);margin:6px 0 20px;font-size:13px;line-height:1.6}.auth-card .tl-field{margin-bottom:14px}.auth-foot{margin:16px 0 0;font-size:13px}.auth-foot.spread{justify-content:space-between;display:flex}.auth-foot a{color:var(--primary)}.link-button{color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:13px}.link-button:disabled{color:var(--muted-2);cursor:not-allowed}.tl-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.tl-page-title{font-family:var(--font-head);letter-spacing:-.02em;color:var(--text);margin:0;font-size:24px;font-weight:750;line-height:1.3}.tl-page-sub{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.6}.tl-page-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tl-field{margin-bottom:14px;display:block}.tl-field-head{justify-content:flex-start;align-items:center;gap:10px;margin-bottom:6px;display:flex}.tl-field-label{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.tl-field-head .tl-field-label{margin-bottom:0}.tl-field-extra{align-items:center;gap:8px;display:flex}.tl-info-btn{width:18px;height:18px;color:var(--muted-2);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex}.tl-info-btn:hover{color:var(--accent-text)}.tl-info-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px;color:var(--accent-text)}.tl-info-body{max-width:320px;color:var(--text);font-size:12.5px;line-height:1.65}.tl-page-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tl-page-title-row .tl-page-title{margin:0}.tl-field-required{color:var(--red);margin-left:3px}.tl-field-hint{color:var(--muted-2);margin-top:5px;font-size:12px;line-height:1.55}.tl-field-error{color:var(--red);margin-top:5px;font-size:12px;line-height:1.55}.tl-stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;transition:border-color .14s,box-shadow .14s}.tl-stat.is-clickable{cursor:pointer}.tl-stat.is-clickable:hover{border-color:var(--accent)}.tl-stat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tl-stat.is-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-weak)}.tl-stat-value{font-family:var(--font-head);letter-spacing:-.02em;color:var(--text);font-size:26px;font-weight:700;line-height:1.15}.tl-stat-label{color:var(--text);margin-top:4px;font-size:13px;font-weight:600}.tl-stat-sub{color:var(--muted-2);margin-top:3px;font-size:12px;line-height:1.5}.tl-table-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tl-table-scroll{overflow:auto}.tl-table{border-collapse:collapse;width:100%;font-size:13px}.tl-table th,.tl-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:9px 10px}.tl-table th{color:var(--muted);white-space:nowrap;font-weight:650}.tl-table tbody tr{transition:background .1s}.tl-table tbody tr:hover,.tl-table tbody tr.is-selected{background:var(--panel-2)}.tl-table tbody tr[tabindex]{cursor:pointer}.tl-table tbody tr[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.tl-table td .row{flex-wrap:nowrap}.tl-actions{flex-wrap:nowrap;align-items:center;gap:6px;display:inline-flex}.tl-row-link{color:inherit;font-weight:650;text-decoration:none}.tl-row-link:hover{text-decoration:underline}.tl-row-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.tl-link-button{font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.tl-filter-group{margin-bottom:14px}.tl-filter-group>strong{margin-bottom:8px;font-size:13px;display:block}.tl-col-row{align-items:center;gap:8px;padding:4px 0;display:flex}.tl-col-row .grow{flex:1}.tl-toolbar-summary{margin-left:auto}.tl-tabs{border-bottom:1px solid var(--line);align-items:flex-end;gap:2px;margin:2px 0 14px;display:flex}.tl-tab{color:var(--muted);border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:8px 12px;font-size:14px;font-weight:650;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.tl-tab:hover{color:var(--text)}.tl-tab.on{color:var(--accent-text);border-bottom-color:var(--accent)}.tl-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.tl-tab-count{color:var(--muted-2);font-size:12px;font-weight:650}.tl-tab-badge{background:var(--amber-weak);color:var(--amber);border-radius:999px;padding:0 7px;font-size:11px;font-weight:650;line-height:1.7}.tl-tab-badge.ok{background:var(--green-weak);color:var(--green)}.tl-table-select{width:34px}.tl-table-sort{color:inherit;font:inherit;font-weight:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.tl-table-sort:hover{color:var(--text)}.tl-table-sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}@media (pointer:coarse){.tl-table-sort{min-height:32px;padding:4px 2px}.tl-info-btn{width:28px;height:28px}}.tl-table-sort-icon{color:var(--muted-2);font-size:10px}.tl-table-sort-icon.is-asc,.tl-table-sort-icon.is-desc{color:var(--accent-text)}.tl-table-pager{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.tl-table-pager-info{color:var(--muted);font-size:12px}.tl-table-pager-controls{align-items:center;gap:8px;display:flex}.tl-table-size{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.tl-table-size select{width:auto;padding:2px 6px}.tl-table-toolbar{flex-wrap:wrap;align-items:center;gap:8px;padding-bottom:10px;display:flex}.tl-table-toolbar .tl-table-search{flex:260px;min-width:200px}.tl-table-batch{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex}.tl-state-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.tl-theme-toggle{align-items:center;gap:8px;display:flex}.tl-theme-toggle-label{color:var(--muted-2);font-size:12px}.tl-pref-divider{border-top:1px solid var(--line-2);margin:16px 0 14px}.tl-pref-extra{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.tl-pref-extra-text p{margin:4px 0 0}.tl-kit-embed{border-top:1px solid var(--line-2);margin-top:16px;padding-top:12px;scroll-margin-top:16px}.tl-kit-embed-sub{margin:0 0 2px}.tl-kit-section{border-top:1px solid var(--line-2);padding:14px 0}.tl-kit-section:first-child{border-top:0;padding-top:10px}.tl-kit-section-title{font-family:var(--font-head);margin:0 0 10px;font-size:14px;font-weight:650}.tl-kit-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 18px;display:grid}.tl-kit-stats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.tl-kit-states{gap:12px;display:grid}.tl-kit-notes{gap:8px;display:grid}.tl-kit-notes .inline-note{margin-bottom:0}.tl-kit-icons{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px 16px;display:grid}.tl-kit-icon{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.tl-kit-icon-glyph{width:16px;color:var(--text);justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.tl-kit-row{border-bottom:1px dashed var(--line-2);align-items:center;gap:14px;padding:7px 0;display:flex}.tl-kit-row:last-child{border-bottom:0}.tl-kit-row-label{color:var(--muted-2);flex:0 0 72px;font-size:12px}.tl-demo-note{color:var(--muted-2);font-size:12px}.tl-demo-focus{border-radius:var(--radius-sm);outline:2px solid var(--accent);outline-offset:2px;display:inline-flex}.tl-kit-type h1,.tl-kit-type h2,.tl-kit-type h3{font-family:var(--font-head);margin:0 0 8px;font-weight:650}.tl-kit-type h1{font-size:24px}.tl-kit-type h2{font-size:20px}.tl-kit-type h3{font-size:16px}.tl-kit-type p{margin:0 0 8px}.tl-kit-swatches{flex-wrap:wrap;gap:14px;display:flex}.tl-kit-swatch{align-items:center;gap:7px;display:flex}.tl-kit-swatch-color{border-radius:var(--radius-sm);border:1px solid var(--line);flex:0 0 26px;width:26px;height:26px}.tl-table-card .ant-table-cell .mono{white-space:nowrap}.tl-table-card .ant-table-cell .row{flex-wrap:nowrap}.tl-progress{flex-direction:column;gap:3px;display:flex}.tl-progress-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tl-progress-bar{background:var(--line-2);border-radius:999px;height:6px;overflow:hidden}.tl-progress-bar>i{background:var(--accent);border-radius:999px;height:100%;transition:width .3s;display:block}.tl-progress-note{color:var(--muted-2);gap:10px;font-size:11.5px;display:flex}.tl-progress-failed{color:var(--red)}.tl-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tl-brand{align-items:center;gap:var(--tl-gap);vertical-align:middle;min-width:0;display:inline-flex}.tl-brand-sm{--tl-word:14px;--tl-mark-h:21px;--tl-gap:8px;--tl-lockup-w:180px;--tl-lockup-word:22px}.tl-brand-md{--tl-word:17px;--tl-mark-h:26px;--tl-gap:10px;--tl-lockup-w:230px;--tl-lockup-word:28px}.tl-brand-lg{--tl-word:22px;--tl-mark-h:32px;--tl-gap:12px;--tl-lockup-w:290px;--tl-lockup-word:34px}.tl-brand-xl{--tl-word:34px;--tl-mark-h:44px;--tl-gap:16px;--tl-lockup-w:344px;--tl-lockup-word:40px}.tl-brand-mark{height:var(--tl-mark-h);flex:none;width:auto;display:block}.tl-brand-copy{flex-direction:column;min-width:0;display:flex}.tl-brand-word{font-family:var(--font-head);font-size:var(--tl-word);letter-spacing:-.03em;color:var(--logo-navy);white-space:nowrap;font-weight:800;line-height:1}.tl-brand-word-l{color:var(--logo-blue-text)}.tl-brand-word-oop{color:var(--logo-teal-text)}.tl-brand-tagline{letter-spacing:.02em;color:var(--muted-2);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:12px;font-weight:500;line-height:1.3;overflow:hidden}.tl-brand-lockup-img{width:var(--tl-lockup-w);max-width:100%;height:auto;display:block}.tl-brand-lockup-dark{align-items:center;gap:18px;display:none}.tl-brand-lockup-dark .tl-brand-word{font-size:var(--tl-lockup-word)}.tl-brand-lockup-dark .tl-brand-mark{height:calc(var(--tl-lockup-word) * 1.35)}:root[data-theme=dark] .tl-brand-lockup-img{display:none}:root[data-theme=dark] .tl-brand-lockup-dark{display:inline-flex}.tl-brand-kit{flex-direction:column;gap:10px;display:flex}.tl-brand-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tl-brand-row-label{color:var(--muted-2);flex:0 0 190px;font-size:12px}.tl-brand-chip{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:5px 10px 5px 6px;font-size:12px;display:inline-flex}.tl-brand-chip-ico{background:var(--tl-weak);width:24px;height:24px;color:var(--tl-ink);border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.tl-brand-chip[data-feature=create]{--tl-weak:var(--create-weak);--tl-ink:var(--create)}.tl-brand-chip[data-feature=assess]{--tl-weak:var(--assess-weak);--tl-ink:var(--assess)}.tl-brand-chip[data-feature=practice]{--tl-weak:var(--practice-weak);--tl-ink:var(--practice)}.tl-brand-chip[data-feature=insights]{--tl-weak:var(--insights-weak);--tl-ink:var(--insights)}.tl-brand-chip[data-feature=home]{--tl-weak:var(--space-home-weak);--tl-ink:var(--space-home)}.tl-brand-chip[data-feature=classes]{--tl-weak:var(--space-classes-weak);--tl-ink:var(--space-classes)}.tl-brand-swatch{color:var(--muted);align-items:center;gap:7px;font-size:12px;display:inline-flex}.tl-brand-swatch i{border:1px solid var(--line);border-radius:6px;width:22px;height:22px;display:inline-block}.tl-brand-swatch[data-brand=navy] i{background:var(--brand-navy)}.tl-brand-swatch[data-brand=azure] i{background:var(--brand-azure)}.tl-brand-swatch[data-brand=teal] i{background:var(--brand-teal)}.tl-brand-swatch[data-brand=yellow] i{background:var(--brand-yellow)}.tl-brand-swatch[data-brand=rose] i{background:var(--brand-rose)}.tl-brand-ratio{color:var(--muted);flex-wrap:wrap;align-items:center;gap:16px;font-size:12px;display:flex}.tl-meter{align-items:center;gap:10px;width:100%;display:flex}.tl-meter-track{background:var(--line-2);border-radius:999px;flex:1;height:6px;overflow:hidden}.tl-meter-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .24s ease-out}.tl-meter-text{color:var(--muted);white-space:nowrap;font-size:12px}
