.archived-courses[data-v-8ed9f1b3]{margin:24px 0 36px;padding:20px 0;border-block:1px solid var(--line)}.archived-courses summary[data-v-8ed9f1b3]{cursor:pointer;font-weight:600;padding:8px 0}.ai-grading[data-v-31b0b424]{border-top:1px solid var(--line);margin-top:28px;padding-top:24px;overflow-wrap:anywhere}.ai-grading p[data-v-31b0b424]{line-height:1.8}.grading-actions[data-v-31b0b424],.grading-meta[data-v-31b0b424]{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:16px 0}.grading-meta[data-v-31b0b424]{font-size:13px;color:var(--muted)}.grading-meta strong[data-v-31b0b424]{color:#253e59}.grading-record[data-v-31b0b424]{margin-top:24px;border-top:1px solid var(--line)}.grading-score[data-v-31b0b424]{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px}.grading-score strong[data-v-31b0b424]{font-size:26px;color:var(--accent)}.grading-score span[data-v-31b0b424]{font-size:13px;color:var(--muted)}.grading-application[data-v-31b0b424]{border-left:3px solid var(--accent);padding:10px 14px;background:#edf3fa}.grading-question[data-v-31b0b424]{margin:24px 0}.grading-explanation[data-v-31b0b424],.grading-criteria p[data-v-31b0b424]{white-space:pre-wrap}.grading-criteria[data-v-31b0b424]{padding-left:24px}.grading-criteria li[data-v-31b0b424]{padding:8px 0}.grading-criteria p[data-v-31b0b424]{margin:8px 0;color:var(--muted)}.criterion-outcome[data-v-31b0b424]{display:inline-block;margin-right:10px;color:#236143;font-size:13px}.criterion-outcome[data-outcome=partial][data-v-31b0b424]{color:#795714}.criterion-outcome[data-outcome=unmet][data-v-31b0b424]{color:#9e3e35}.grading-test[data-v-31b0b424]{background:#fff1cf;color:#704b00;padding:12px}.grading-draft[data-v-31b0b424]{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;font-size:12px;padding:12px;background:#f2f5f8}.ai-grading summary[data-v-31b0b424]{cursor:pointer;padding:8px 0}.ai-exercises[data-v-683ac3b9]{margin:24px 0;padding:18px 0;border-block:1px solid var(--line);overflow-wrap:anywhere}.ai-exercises summary[data-v-683ac3b9]{cursor:pointer;font-weight:600;line-height:1.8}.ai-exercises summary span[data-v-683ac3b9]{display:inline-block;margin-left:12px;font-weight:400}.ai-exercises p[data-v-683ac3b9]{line-height:1.8}.ai-exercises fieldset[data-v-683ac3b9]{border:0;margin:0;padding:0;min-width:0}.ai-exercises textarea[data-v-683ac3b9]{width:100%;resize:vertical}.exercise-options[data-v-683ac3b9]{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.exercise-options label[data-v-683ac3b9]{flex:1 1 160px;min-width:0}.exercise-options select[data-v-683ac3b9]{width:100%}.exercise-actions[data-v-683ac3b9],.exercise-meta[data-v-683ac3b9]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0}.exercise-meta[data-v-683ac3b9]{font-size:13px;color:var(--muted)}.exercise-meta strong[data-v-683ac3b9]{color:#253e59}.exercise-set[data-v-683ac3b9]{margin-top:24px;border-top:1px solid var(--line)}.exercise-set ol[data-v-683ac3b9]{padding-left:24px}.exercise-set li[data-v-683ac3b9]{padding-bottom:12px}.exercise-set li p[data-v-683ac3b9],.exercise-focus[data-v-683ac3b9]{white-space:pre-wrap}.exercise-test[data-v-683ac3b9]{padding:12px;color:#704b00;background:#fff1cf}.ai-summary[data-v-4963e694]{margin:22px 0;padding:16px 20px;border:1px solid var(--line);background:#f7f9fc;overflow-wrap:anywhere}.summary-heading[data-v-4963e694]{cursor:pointer;font-weight:600;color:var(--nav)}.summary-heading span[data-v-4963e694]{display:inline-block;margin-left:14px;font-size:13px;font-weight:400}.ai-summary p[data-v-4963e694]{line-height:1.8}.summary-actions[data-v-4963e694]{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.summary-cost[data-v-4963e694],.summary-record>.muted[data-v-4963e694]{font-size:13px}.summary-record[data-v-4963e694]{margin-top:22px;padding-top:8px;border-top:1px solid var(--line)}.summary-body[data-v-4963e694]{max-width:72ch}.summary-caveat[data-v-4963e694]{border-left:3px solid #b88629;padding-left:12px}.summary-test[data-v-4963e694]{background:#fff1cf;color:#704b00;padding:10px 12px}.summary-source[data-v-4963e694]{border-top:1px solid var(--line);margin-top:24px}.source-question[data-v-4963e694]{white-space:pre-wrap}.ai-summary label[data-v-4963e694]{display:block;margin-bottom:8px}.ai-summary select[data-v-4963e694]{width:100%;min-width:0}@media(max-width:520px){.ai-summary[data-v-4963e694]{padding:14px 12px}.summary-actions>.primary[data-v-4963e694]{width:100%}}.ai-tutor[data-v-6a7a7fbe]{margin-top:32px;padding-top:28px;border-top:1px solid var(--line);overflow-wrap:anywhere}.ai-tutor>p[data-v-6a7a7fbe]{line-height:1.8;margin:12px 0}.ai-turn[data-v-6a7a7fbe]{margin:24px 0;padding-bottom:22px;border-bottom:1px solid var(--line)}.ai-question[data-v-6a7a7fbe]{white-space:pre-wrap;font-weight:600;padding:14px 18px;background:#edf3fa;border-left:3px solid var(--accent);line-height:1.8}.ai-answer-heading[data-v-6a7a7fbe]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0 12px}.ai-answer-heading small[data-v-6a7a7fbe]{color:var(--muted)}.ai-answer[data-v-6a7a7fbe]{font-size:15px}.ai-actions[data-v-6a7a7fbe]{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0}.ai-question-form textarea[data-v-6a7a7fbe]{width:100%;resize:vertical}.ai-question-form details[data-v-6a7a7fbe]{margin:16px 0}.ai-tutor summary[data-v-6a7a7fbe]{cursor:pointer;padding:8px 0}.ai-tutor blockquote[data-v-6a7a7fbe]{white-space:pre-wrap;margin:8px 0;padding-left:16px;border-left:2px solid var(--line);line-height:1.8}.test-notice[data-v-6a7a7fbe]{color:#704b00;background:#fff1cf;padding:12px}.route-editor[data-v-60d72a93]{margin-bottom:24px;padding:16px 24px;background:#fff;border-left:3px solid var(--accent);overflow-wrap:anywhere}.route-intro[data-v-60d72a93]{max-width:760px;margin-block:24px}.route-intro h2[data-v-60d72a93]{font-size:22px;margin:0 0 12px}.route-intro p[data-v-60d72a93]{line-height:1.8}fieldset[data-v-60d72a93]{border:0;padding:0;margin:0;min-width:0}input[data-v-60d72a93],select[data-v-60d72a93]{width:100%}.route-chapter[data-v-60d72a93]{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.route-row[data-v-60d72a93]{display:flex;align-items:end;gap:16px}.route-name[data-v-60d72a93]{flex:1;min-width:0}.route-name p[data-v-60d72a93]{margin:8px 0 0}.route-moves[data-v-60d72a93]{display:flex;gap:8px;flex-shrink:0}ol[data-v-60d72a93]{margin:20px 0 0;padding-left:24px}li[data-v-60d72a93]{padding:12px 0 20px}.route-destination[data-v-60d72a93]{max-width:380px;margin-top:12px}.route-actions[data-v-60d72a93]{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}@media(max-width:640px){.route-editor[data-v-60d72a93]{padding:16px}.route-row[data-v-60d72a93]{align-items:stretch;flex-direction:column;gap:10px}ol[data-v-60d72a93]{padding-left:18px}}.course-archive[data-v-56ea5d94]{margin-bottom:24px;padding:16px 24px;background:#fff;border-left:3px solid var(--muted);overflow-wrap:anywhere}h2[data-v-56ea5d94]{font-size:21px;margin-top:24px}p[data-v-56ea5d94]{max-width:760px;line-height:1.8}fieldset[data-v-56ea5d94]{border:0;min-width:0;padding:0;margin:0}.archive-choice[data-v-56ea5d94]{display:flex;align-items:flex-start;gap:12px;padding:12px 0;line-height:1.6;cursor:pointer;margin:0}.archive-choice input[data-v-56ea5d94]{width:18px;height:18px;min-height:18px;padding:0;margin:4px 0 0;flex-shrink:0}.course-choice[data-v-56ea5d94]{font-weight:600}.archive-actions[data-v-56ea5d94]{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:24px}@media(max-width:640px){.course-archive[data-v-56ea5d94]{padding:16px}}.ai-settings[data-v-e07c9d7e]{max-width:800px}.ai-settings section[data-v-e07c9d7e]{padding:26px 0;border-top:1px solid var(--line)}.ai-settings h2[data-v-e07c9d7e]{font-size:20px;margin:0 0 18px}.ai-settings p[data-v-e07c9d7e]{line-height:1.8;margin:12px 0}.connection-note[data-v-e07c9d7e]{font-weight:600;color:var(--nav)}.settings-facts[data-v-e07c9d7e]{margin:20px 0}.settings-facts div[data-v-e07c9d7e]{display:grid;grid-template-columns:140px minmax(0,1fr);gap:16px;padding:10px 0}.settings-facts dt[data-v-e07c9d7e]{color:var(--muted)}.settings-facts dd[data-v-e07c9d7e]{margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.budget-warning[data-v-e07c9d7e]{padding:12px 16px;background:#fff1cf;color:#6c4800}@media(max-width:520px){.settings-facts div[data-v-e07c9d7e]{grid-template-columns:110px minmax(0,1fr);gap:10px}}.roadmap-preview[data-v-b8fa787d]{overflow-wrap:anywhere}.preview-heading[data-v-b8fa787d],.chapter-heading[data-v-b8fa787d],.lesson-heading[data-v-b8fa787d]{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}.preview-heading h2[data-v-b8fa787d]{font-size:25px;margin:0 0 10px;line-height:1.45}.preview-heading p[data-v-b8fa787d]{margin:0}.roadmap-overview[data-v-b8fa787d]{margin:22px 0 12px;line-height:1.85;white-space:pre-line}.roadmap-chapter[data-v-b8fa787d]{margin:30px 0}.chapter-heading[data-v-b8fa787d]{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:20px}.chapter-heading h3[data-v-b8fa787d]{margin:0;font-size:19px;color:var(--nav)}.roadmap-lessons[data-v-b8fa787d]{list-style:none;padding:0;margin:0}.roadmap-lesson[data-v-b8fa787d]{display:grid;grid-template-columns:28px minmax(0,1fr);gap:14px;padding-bottom:24px}.lesson-number[data-v-b8fa787d]{width:28px;height:28px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--nav)}.lesson-heading h4[data-v-b8fa787d]{margin:0;font-size:17px;line-height:1.7}.lesson-heading>span[data-v-b8fa787d]{font-size:13px;white-space:nowrap}.lesson-outline[data-v-b8fa787d]{min-width:0}.lesson-outline>p[data-v-b8fa787d]{line-height:1.8;margin:10px 0}.objectives[data-v-b8fa787d]{padding-left:20px;line-height:1.85}.prerequisites[data-v-b8fa787d]{font-size:13px;color:var(--muted)}.roadmap-title-fields[data-v-b8fa787d]{margin-top:24px}.roadmap-title-fields label[data-v-b8fa787d],.lesson-fields label[data-v-b8fa787d]{display:block;margin:14px 0 6px}.chapter-name[data-v-b8fa787d]{display:block;margin-bottom:18px}.lesson-fields[data-v-b8fa787d]{margin-top:12px;padding:14px;background:#f3f6fa;border-radius:5px}.lesson-fields summary[data-v-b8fa787d]{cursor:pointer;font-size:14px;color:var(--accent)}.lesson-fields input[data-v-b8fa787d],.lesson-fields textarea[data-v-b8fa787d],.lesson-fields select[data-v-b8fa787d]{width:100%;margin-top:6px}.small-actions[data-v-b8fa787d]{display:flex;flex-wrap:wrap;gap:10px}.small-actions button[data-v-b8fa787d]{font-size:13px}.prerequisite-options[data-v-b8fa787d]{margin-top:18px}.prerequisite-options label[data-v-b8fa787d]{display:flex;gap:9px;align-items:flex-start;font-size:14px;margin:8px 0}.prerequisite-options input[data-v-b8fa787d]{width:18px;min-height:18px;height:18px;padding:0;margin:3px 0 0;flex:0 0 auto}.roadmap-confirm[data-v-b8fa787d]{border-top:1px solid var(--line);padding-top:22px}.roadmap-confirm p[data-v-b8fa787d]{line-height:1.8}.roadmap-notice[data-v-b8fa787d]{padding:12px 14px;background:#edf3fb;line-height:1.8}@media(max-width:520px){.roadmap-lesson[data-v-b8fa787d]{gap:10px;grid-template-columns:25px minmax(0,1fr)}.preview-heading h2[data-v-b8fa787d]{font-size:23px}.lesson-fields[data-v-b8fa787d]{padding:10px}}.roadmap-request[data-v-8cb6deb2]{background:#f3f6fa;border:1px solid var(--line);border-radius:6px;padding:18px 22px;margin:24px 0;overflow-wrap:anywhere}.roadmap-request>summary[data-v-8cb6deb2]{cursor:pointer;font-size:17px;color:var(--nav);font-weight:600}.roadmap-request p[data-v-8cb6deb2]{line-height:1.8;max-width:760px}.request-summary[data-v-8cb6deb2]{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-top:24px}.request-summary h2[data-v-8cb6deb2]{font-size:20px;margin:0 0 10px}.request-summary>a[data-v-8cb6deb2]{flex-shrink:0}.generate-form[data-v-8cb6deb2]{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin:22px 0 16px}.generate-form label[data-v-8cb6deb2]{display:block;margin:0;min-width:200px}.generate-form select[data-v-8cb6deb2]{display:block;margin-top:8px;width:100%}.roadmap-message[data-v-8cb6deb2]{padding:12px 16px;background:#edf3fb;line-height:1.8}.test-mode[data-v-8cb6deb2]{color:#695218;background:#fff5da;padding:10px 14px;font-size:13px;line-height:1.7}.active-roadmap[data-v-8cb6deb2]{border-left:3px solid var(--accent);padding:18px 22px;background:#edf3fb;display:flex;gap:18px;justify-content:space-between;align-items:center;margin-bottom:28px}.active-roadmap p[data-v-8cb6deb2]{margin:8px 0 0;line-height:1.8}.active-roadmap button[data-v-8cb6deb2]{flex-shrink:0}.roadmap-workbench[data-v-8cb6deb2]{display:grid;grid-template-columns:210px minmax(0,1fr);gap:36px;margin-top:34px}.roadmap-history[data-v-8cb6deb2]{min-width:0}.roadmap-history h2[data-v-8cb6deb2]{font-size:17px;margin:0 0 15px}.roadmap-history nav[data-v-8cb6deb2]{display:grid;gap:2px}.roadmap-history a[data-v-8cb6deb2]{padding:14px 12px;display:grid;gap:7px;text-decoration:none;color:var(--muted);border-left:2px solid transparent;overflow-wrap:anywhere}.roadmap-history strong[data-v-8cb6deb2]{font-size:14px;color:var(--nav);line-height:1.6}.roadmap-history span[data-v-8cb6deb2],.roadmap-history small[data-v-8cb6deb2]{font-size:12px}.roadmap-history a.current[data-v-8cb6deb2]{background:#edf3fb;border-color:var(--accent)}.roadmap-history button[data-v-8cb6deb2]{margin-top:14px}.roadmap-detail[data-v-8cb6deb2]{min-width:0}.original-request[data-v-8cb6deb2]{font-size:13px;color:var(--muted);margin-bottom:22px;line-height:1.8;overflow-wrap:anywhere}.original-request summary[data-v-8cb6deb2]{cursor:pointer}.roadmap-empty[data-v-8cb6deb2],.no-roadmaps[data-v-8cb6deb2]{padding:25px 0;max-width:700px;line-height:1.8}.roadmap-empty h2[data-v-8cb6deb2],.no-roadmaps h2[data-v-8cb6deb2]{font-size:22px}@media(max-width:1050px){.roadmap-workbench[data-v-8cb6deb2]{grid-template-columns:170px minmax(0,1fr);gap:24px}}@media(max-width:760px){.roadmap-workbench[data-v-8cb6deb2]{grid-template-columns:1fr;gap:28px}.roadmap-history nav[data-v-8cb6deb2]{max-height:190px;overflow:auto}.roadmap-history a[data-v-8cb6deb2]{grid-template-columns:minmax(0,1fr) auto;gap:5px 12px}.roadmap-history small[data-v-8cb6deb2]{grid-column:1 / -1}.roadmap-request[data-v-8cb6deb2]{padding:16px}.request-summary[data-v-8cb6deb2],.active-roadmap[data-v-8cb6deb2]{flex-wrap:wrap}}:root{font-family:Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,sans-serif;color:#203449;background:#eff3f8;font-synthesis:none;--nav: #153b56;--accent: #305fad;--muted: #607185;--line: #d7e0ea}.notebook{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.notebook textarea{width:100%;resize:vertical}.note-preview{padding:18px;background:#f2f6fa;border-radius:6px;min-height:120px}.manual-progress{font-size:13px;margin:16px 0}.manual-progress summary{cursor:pointer;padding:10px 0}.manual-progress label{display:block;max-width:260px}.manual-progress button{margin:10px 0}.continue-learning{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;margin-bottom:26px;padding:24px;background:#fff;border-left:3px solid var(--accent)}.continue-learning h2{font-size:19px;margin:0 0 10px}.continue-learning p{margin-bottom:16px}.review-section{margin:24px 0 36px}.review-section>h2{font-size:20px;margin-bottom:18px}.review-section .course-row{margin-bottom:12px}.self-review{margin:16px 0;padding:16px;background:#fff;border-radius:5px}.study-panel{border-top:1px solid var(--line);margin-top:32px;padding-top:28px;overflow-wrap:anywhere}.study-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.study-heading h2,.study-heading h3{margin:0}.study-panel .eyebrow{font-size:11px;color:var(--muted);margin-bottom:6px}.study-panel>p{margin-bottom:14px}.study-choices{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.study-form{margin-top:26px;padding:22px 0;border-block:1px solid var(--line)}.study-form fieldset{border:0;padding:0;margin:0;min-width:0}.study-question{margin:22px 0}.question-title{display:block;font-weight:600;white-space:pre-wrap;line-height:1.8;margin-bottom:12px}.choice-options{display:grid;gap:8px}.choice-option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:5px;cursor:pointer;margin:0;font-weight:400}.choice-option:has(input:checked){border-color:var(--accent);background:#eaf0f8}.choice-option input{width:18px;height:18px;min-height:0;flex:0 0 18px;margin:3px 0;padding:0}.choice-option span{white-space:pre-wrap;min-width:0}.study-form textarea{width:100%;resize:vertical}.study-form .code-answer,.reference-answer{font-family:Consolas,monospace;-moz-tab-size:4;tab-size:4}.study-hints{font-size:13px;margin-top:10px;color:var(--muted)}.study-hints summary,.study-history summary{cursor:pointer;padding:8px 0}.study-feedback{margin-top:24px;padding:20px;background:#f2f6fa;border-radius:6px}.study-feedback h3{margin-bottom:14px}.feedback-item{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.feedback-item h4{margin:0 0 12px}.reference-answer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.8;background:#fff;padding:14px;border-radius:4px}.study-history{margin:22px 0;font-size:13px}.study-message{color:#22614b}.heading-actions,.course-facts,.lesson-pagination{display:flex;gap:12px;flex-wrap:wrap}.text-button{background:none;border:0;color:var(--accent);text-decoration:underline;text-underline-offset:4px;padding:12px 0;font-size:14px}.small-text{font-size:12px}.upload-panel{display:grid;grid-template-columns:1fr auto;gap:8px 28px;background:#fff;border-radius:8px;padding:28px;margin-bottom:28px}.upload-panel h2{margin-bottom:8px;font-size:21px}.upload-panel p{font-size:14px;color:var(--muted);margin-bottom:4px}.upload-button{background:#eaf0f8;border:1px dashed #7e9abd;border-radius:6px;padding:16px 22px;margin:0;align-self:center;text-align:center;cursor:pointer}.upload-button input{display:block;max-width:240px;font-size:12px;border:0;background:transparent;padding:12px 0 0;min-height:0}.upload-hint{grid-column:1 / -1}.upload-panel>.text-button{justify-self:start}.import-preview{padding:32px;background:#fff;border-radius:8px;overflow-wrap:anywhere}.preview-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.preview-heading h2{font-size:26px;margin:8px 0 12px}.version-label{font-size:12px;color:var(--muted)}.status-label{font-size:12px;color:#22614b;background:#eaf5f0;padding:8px 12px;border-radius:5px;flex-shrink:0}.course-facts{padding:18px 0;border-block:1px solid var(--line);font-size:13px;margin-bottom:24px}.course-facts span{padding-right:16px}.import-preview h3{font-size:16px;margin-top:24px}.import-preview li{font-size:14px;line-height:1.8;margin-block:5px}.preview-chapters{margin-block:24px}.preview-chapters ol{list-style:none;padding:0}.preview-chapters li{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #eff3f8;padding:10px 0}.preview-chapters small{color:var(--muted);flex-shrink:0}.notice{background:#f3f6fa;border-left:3px solid #7e9abd;padding:12px 18px;font-size:13px;margin:22px 0}.notice p{margin:0}.confirm-check{display:flex;align-items:flex-start;gap:12px;line-height:1.8;font-weight:400}.confirm-check input{width:18px;height:18px;min-height:0;margin:3px 0;flex-shrink:0;accent-color:var(--accent)}.import-preview .small-text{margin:16px 0 0}.pending-list{margin-top:32px}.pending-list a{display:flex;justify-content:space-between;gap:15px;padding:20px;background:#fff;margin-bottom:10px;border-radius:5px;font-size:14px}.pending-list span{color:var(--muted);font-size:12px;flex-shrink:0}.course-list{display:grid;gap:16px}.course-row{display:flex;align-items:center;gap:22px;background:#fff;padding:28px;border-radius:8px;border:1px solid transparent}.course-row:hover{border-color:#8ca8cb}.course-row>div{min-width:0;flex:1;overflow-wrap:anywhere}.course-row h2{margin:0 0 8px;font-size:21px}.course-row p{margin:0;font-size:13px;color:var(--muted)}.course-cover{width:56px;height:72px;background:#dce8f3;border-left:5px solid #8aa7c4;border-radius:3px 7px 7px 3px;display:grid;place-items:center;color:#305779;font-size:24px;flex-shrink:0}.course-open{color:var(--accent);font-size:13px;flex-shrink:0}.reader-grid{display:grid;grid-template-columns:205px minmax(0,1fr);gap:28px;align-items:start}.lesson-navigation{position:sticky;top:24px;border-top:2px solid #9bb2c9;padding-top:14px}.lesson-navigation summary{cursor:pointer;font-size:14px;font-weight:600;padding:6px 0 12px}.lesson-navigation h2{font-size:13px;color:var(--muted);margin:12px 0}.lesson-navigation ol{list-style:none;padding:0;margin:0}.lesson-navigation a{display:block;font-size:13px;line-height:1.6;padding:12px;margin-bottom:4px;border-radius:4px;overflow-wrap:anywhere}.lesson-navigation a.current{background:#dce7f4;color:#234e86}.lesson-navigation small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.lesson-paper{background:#fff;padding:36px;border-radius:7px;min-width:0}.reading-meta{font-size:12px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:28px}.lesson-prose{font-size:15px;line-height:1.9;overflow-wrap:anywhere}.lesson-prose h1{font-size:28px;margin-bottom:25px}.lesson-prose h2{font-size:20px;margin-top:34px;margin-bottom:14px}.lesson-prose h3{font-size:17px}.lesson-prose li{margin-bottom:8px}.lesson-prose ul,.lesson-prose ol{padding-left:24px}.lesson-prose pre{overflow-x:auto;background:#f0f4f8;padding:18px;border-radius:5px;font-size:13px;line-height:1.7;-moz-tab-size:4;tab-size:4}.lesson-prose code{font-family:Consolas,SFMono-Regular,monospace}.lesson-prose :not(pre)>code{background:#eff3f8;border-radius:3px;padding:2px 5px;font-size:.92em}.lesson-prose a,.lesson-sources a{color:var(--accent);text-decoration:underline}.lesson-prose blockquote{margin-inline:0;padding-left:18px;border-left:3px solid #adc2d6;color:var(--muted)}.lesson-prose .hljs-keyword,.lesson-prose .hljs-built_in{color:#4f42a4}.lesson-prose .hljs-string{color:#1d7056}.lesson-prose .hljs-number{color:#9b4b12}.lesson-prose .hljs-comment{color:#6d7986}.lesson-sources{margin-top:34px;padding-top:18px;border-top:1px solid var(--line)}.lesson-sources h2{font-size:14px}.lesson-sources p,.lesson-sources li{font-size:12px;color:var(--muted)}.lesson-pagination{margin-top:28px;justify-content:space-between}@media(max-width:1100px){.reader-grid{grid-template-columns:1fr;gap:18px}.lesson-navigation{position:static}.lesson-navigation ol{display:flex;flex-wrap:wrap;gap:6px}.lesson-navigation li{flex:1;min-width:180px}}@media(max-width:720px){.upload-panel{grid-template-columns:1fr;padding:20px}.upload-button{text-align:left;padding:14px}.import-preview{padding:22px}.preview-heading{flex-direction:column;align-items:flex-start;gap:4px}.preview-heading h2{font-size:23px}.pending-list a{flex-direction:column}.course-row{padding:20px;gap:15px;flex-wrap:wrap}.course-row h2{font-size:19px}.course-open{margin-left:auto}.lesson-paper{padding:22px 20px}.lesson-prose h1{font-size:24px}.lesson-prose{font-size:14px}.workspace .sidebar nav a{padding:11px 7px;font-size:12px}.workspace .sidebar nav a>span{display:none}}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,.primary,.secondary{cursor:pointer}button:disabled,fieldset:disabled{cursor:wait;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #6c99df;outline-offset:4px}h1,h2,p{margin-top:0}h1{font-size:clamp(27px,3vw,36px);line-height:1.45;letter-spacing:-.8px;font-weight:650}h2{font-size:22px;line-height:1.6;font-weight:600}p{line-height:1.85}.muted,.page-heading p{color:var(--muted)}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;border-radius:6px;padding:12px 20px;min-height:46px;font-size:14px;font-weight:600;border:1px solid transparent}.primary{background:var(--accent);color:#fff}.primary:hover{background:#244b8e}.secondary{color:var(--nav);background:#fff;border-color:var(--line)}.text-link{color:var(--accent);font-weight:600;border-bottom:1px solid #a7bddd;padding-bottom:5px}.error{padding:12px 15px;border-left:3px solid #a43131;background:#fff0ef;color:#8b2424;font-size:14px;overflow-wrap:anywhere}.success{padding:12px 15px;background:#eaf5f0;color:#22614b;font-size:14px}.opening{min-height:100dvh;display:grid;align-content:center;justify-items:center;gap:12px;padding:24px}.brand{display:flex;align-items:center;gap:14px;font-size:17px;font-weight:600}.brand small{display:block;font-size:12px;font-weight:400;margin-top:6px;color:#bacddc}.brand-mark{border:1px solid #8faabd;border-radius:4px;width:39px;height:42px;flex-shrink:0;padding:5px 8px;font-size:23px;font-family:Georgia,serif;position:relative}.brand-mark span{position:absolute;right:4px;top:2px;font:17px sans-serif;color:#adc7e5}.login-page{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-intro{background:var(--nav);color:#fff;padding:clamp(32px,5vw,80px);display:flex;flex-direction:column;justify-content:space-between;min-height:100dvh}.login-copy{margin:65px 0}.login-copy h1{font-size:clamp(36px,3.8vw,54px);line-height:1.55;letter-spacing:1px}.login-copy p{color:#c0d0de;margin-top:26px;font-size:16px}.login-foot{color:#b0c6d8;font-size:13px;margin:0}.login-form-area{display:flex;justify-content:center;align-items:center;padding:48px}.login-form{width:100%;max-width:360px}.login-form h2{margin-bottom:8px;font-size:27px}.login-form>.muted{margin-bottom:36px;font-size:14px}label{display:block;font-size:14px;margin:24px 0 9px;font-weight:600}input,textarea,select{width:100%;color:#203449;background:#fff;border:1px solid #bdcbd9;border-radius:5px;padding:12px;min-height:46px}textarea{resize:vertical;line-height:1.7}input::placeholder,textarea::placeholder{color:#778698;font-size:14px}.login-submit{width:100%;margin-top:26px}.login-hint{font-size:12px;color:var(--muted);margin-top:24px}.workspace{min-height:100dvh}.sidebar{background:var(--nav);color:#e7eef4;width:248px;position:fixed;top:0;bottom:0;display:flex;flex-direction:column;padding:36px 24px 24px}.sidebar .brand{margin-bottom:64px}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:14px;border-radius:5px;font-size:14px;display:flex;gap:15px;align-items:center}.sidebar nav a>span{width:19px;font-size:23px;line-height:1;text-align:center}.sidebar nav a:hover{background:#204761}.sidebar nav .selected{background:#315a77;color:#fff}.account{margin-top:auto;padding-top:24px;border-top:1px solid #456279;display:flex;align-items:center;gap:10px;min-width:0}.account>div{min-width:0;flex:1}.account strong{display:block;overflow:hidden;text-overflow:ellipsis;font-size:13px}.account small{display:block;font-size:11px;color:#bacddc;margin-top:5px}.avatar{background:#d4e3ee;color:var(--nav);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:14px;flex-shrink:0}.logout{color:#d1e0eb;background:none;border:none;font-size:12px;padding:12px 3px}.main-content{margin-left:248px;padding:50px clamp(24px,4.8vw,72px);max-width:1600px;outline:none}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px}.page-heading h1{margin-bottom:8px}.page-heading p{margin-bottom:0;font-size:14px}.page-heading>a{flex-shrink:0}.empty-library{background:#fff;text-align:center;padding:50px 24px 46px;border-radius:10px}.empty-library h2{margin-bottom:12px}.empty-library p,.reader-empty p{color:var(--muted);font-size:14px;margin-bottom:24px}.book-spines{height:86px;width:126px;display:flex;align-items:flex-end;justify-content:center;gap:6px;margin:0 auto 30px;border-bottom:3px solid #bbcbdb}.book-spines i{display:block;width:24px;height:70px;border:2px solid #728fae;border-radius:3px 3px 0 0;background:#e6edf5;position:relative}.book-spines i:after{content:"";display:block;height:4px;width:12px;border-top:1px solid #728fae;border-bottom:1px solid #728fae;position:absolute;top:12px;left:4px}.book-spines i:nth-child(2){height:82px;background:#cadbec}.book-spines i:nth-child(3){height:61px;transform:rotate(-13deg);transform-origin:bottom;margin-left:10px}.workflow{margin-top:34px}.workflow h2{font-size:16px}.workflow ol{list-style:none;counter-reset:step;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.workflow li{counter-increment:step;position:relative;padding-left:31px}.workflow li:before{content:counter(step);position:absolute;left:0;top:0;font-size:14px;color:var(--accent);border-bottom:2px solid #9fb8d6;padding-bottom:6px}.workflow strong{font-size:14px}.workflow p{font-size:13px;color:var(--muted);margin:10px 0 0}.workflow .stage-note{font-size:12px;border-top:1px solid var(--line);padding-top:20px;margin-top:26px}.request-layout{display:grid;grid-template-columns:minmax(0,640px) minmax(190px,1fr);gap:40px;align-items:start}.request-form{padding:8px 30px 30px;background:#fff;border-radius:8px}fieldset{margin:0;padding:0;border:0;min-width:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.optional{color:var(--muted);font-size:12px;font-weight:400;margin-left:8px}.form-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.request-help{padding-top:18px}.request-help h2{font-size:21px;margin-bottom:25px}.request-help p{font-size:13px;color:var(--muted)}.help-note{border-top:1px solid var(--line);padding-top:22px;margin-top:30px}.help-note strong{font-size:13px;font-weight:500}.help-note p{margin-top:10px}.reader-empty{background:#fff;border-radius:10px;padding:65px 24px;text-align:center}.reader-outline{width:84px;height:105px;border:2px solid #acbfd2;margin:0 auto 30px;padding:25px 16px;border-radius:3px 12px 3px 3px}.reader-outline span{display:block;height:2px;background:#acbfd2;margin-bottom:12px}.reader-outline span:last-child{width:70%}.skip-link{position:fixed;top:-70px;left:10px;background:#fff;color:var(--nav);z-index:10;padding:10px}.skip-link:focus{top:10px}@media(max-width:1100px){.sidebar{width:220px;padding-inline:20px}.main-content{margin-left:220px;padding:36px 28px}.request-layout{gap:24px;grid-template-columns:minmax(0,1fr)}.request-help{max-width:640px}.request-help h2 br{display:none}}@media(max-width:720px){.login-page{grid-template-columns:1fr}.login-intro{min-height:auto;padding:24px}.login-copy{margin:32px 0 2px}.login-copy h1{font-size:29px;margin-bottom:10px}.login-copy p,.login-foot{display:none}.login-form-area{padding:32px 24px}.login-form{max-width:none}.login-form h2{font-size:23px}.sidebar{position:static;width:100%;padding:20px 20px 12px;display:grid;grid-template-columns:1fr auto;gap:22px 8px}.sidebar .brand{margin-bottom:0;font-size:15px}.sidebar .brand small{font-size:11px}.sidebar nav{grid-column:1 / -1;grid-row:2;display:flex;gap:6px}.sidebar nav a{font-size:13px;padding:11px 10px;gap:6px;flex:1;justify-content:center;white-space:nowrap}.sidebar nav a>span{font-size:18px;width:16px}.account{border:0;padding:0;margin:0;grid-column:2;grid-row:1}.account .avatar,.account>div{display:none}.logout{font-size:13px;padding:12px 5px}.main-content{margin-left:0;padding:28px 20px 40px}.page-heading{align-items:flex-start;flex-direction:column;margin-bottom:24px;gap:18px}.page-heading h1{font-size:27px}.page-heading p{font-size:13px}.empty-library{padding:34px 20px}.empty-library h2,.reader-empty h2{font-size:19px}.workflow ol{grid-template-columns:1fr;gap:20px}.request-form{padding:0 20px 24px}.form-row{gap:12px}.form-row label{font-size:12px}.form-actions{flex-direction:column}.request-help{padding:0 4px}.reader-empty{padding:40px 20px}}@media(max-width:760px){.sidebar nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}.sidebar nav a{padding:10px 2px;font-size:12px;min-width:0}}
