/* 图解课件、检测、题库练习及考试视图。 */
.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 177px;gap:27px;align-items:start}
.lesson-reader,.exam-reader{min-width:0}
.lesson-sheet{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px;min-width:0}
.lesson-sheet>h2{font-size:20px;margin-bottom:25px}
.reading-text{font-size:17px;line-height:2.1;white-space:pre-wrap;max-width:620px;padding:15px 0 30px}
.table-wrap{width:100%;overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
th{font-weight:500;color:var(--muted);font-size:12px;background:var(--bg)}
td,th{padding:17px 15px;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
tbody tr:last-child td{border-bottom:0}
.lesson-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:25px}
.lesson-read-state{display:grid;gap:7px;min-width:0;flex:1;max-width:180px}
.lesson-read-state .lesson-track{width:100%;justify-self:center}
.lesson-read-state>span{font-size:12px;line-height:1;color:var(--muted);text-align:center;white-space:nowrap}
.page-dots{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.page-dots a{width:20px;height:20px;display:grid;place-items:center}
.page-dots a:after{content:"";width:6px;height:6px;background:var(--line);border-radius:50%}
.page-dots a.active:after{background:var(--accent);width:17px;border-radius:4px}
.lesson-outline{display:grid;gap:8px;padding-top:4px}
.lesson-outline .eyebrow{margin-bottom:5px}
.lesson-outline a{display:flex;align-items:flex-start;gap:10px;padding:10px 8px;color:var(--muted);font-size:11px;border-radius:6px}
.lesson-outline a span{font-size:11px;color:var(--muted)}
.lesson-outline a.active{background:var(--accent-soft);color:var(--accent)}
.prerequisites{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px;font-size:11px}
.prerequisites>span{color:var(--muted);font-size:11px}
.completion{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:23px 0;margin-top:25px}
.completion>span{display:flex;align-items:center;gap:8px;color:var(--success)}
#lesson-message{font-size:13px;color:var(--muted);margin-top:16px}
.lesson-chart{margin:0;padding:10px 5px}
.chart-unit{font-size:11px;color:var(--muted);margin-bottom:25px}
.chart-bars{display:flex;align-items:flex-end;justify-content:center;gap:65px;min-height:280px}
.chart-column{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0;width:85px}
.chart-value{font-family:Georgia,serif;font-size:29px;line-height:1.2}
.chart-bar{width:100%;background:var(--accent-soft);border-radius:7px 7px 0 0}
.chart-bar.accent{background:var(--accent)}
.chart-label{font-size:13px;color:var(--muted);padding-top:5px}
.step-list{list-style:none;padding:0;margin:0;display:grid;gap:0}
.step-list li{display:flex;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}
.step-list li:last-child{border:0}
.step-list span{color:var(--accent);font-family:Georgia,serif;font-size:19px}
.step-list strong{font-size:14px;font-weight:400}
.lesson-diagram{padding:10px 0;min-width:0}
.diagram-branch{display:flex;align-items:center;flex-direction:column;min-width:0;gap:15px}
.diagram-label{font-size:12px;display:grid;place-items:center;min-height:45px;padding:10px 12px;border:1px solid var(--line);background:var(--bg);border-radius:7px;text-align:center;max-width:100%;width:100%;overflow-wrap:anywhere}
.diagram-label.parent{font-size:16px;color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft);width:auto;padding:10px 22px}
.diagram-children{display:flex;justify-content:center;align-items:flex-start;gap:16px;padding-top:17px;border-top:1px solid var(--line);width:100%;min-width:0}
.diagram-children>.diagram-branch{flex:1}
.diagram-children.many{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.concept-check h3{font-size:19px;line-height:1.7;margin-bottom:26px}
fieldset{border:0;margin:0;padding:0;min-width:0}
.concept-check fieldset,.question-options{display:grid;gap:12px}
.answer-option{display:flex;align-items:center;gap:13px;min-width:0;background:var(--bg);padding:15px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px}
.answer-option:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.answer-option input{accent-color:var(--accent);width:16px;height:16px;flex-shrink:0;margin:0}
.answer-option>span:last-child{min-width:0;overflow-wrap:anywhere}
.answer-letter{font-size:12px;color:var(--muted);flex-shrink:0}
.check-result{min-height:60px;margin:20px 0 5px}
.check-result strong{font-weight:500;font-size:14px}
.check-result p{font-size:13px;margin-top:8px;white-space:pre-wrap}
.practice-list{display:grid;gap:25px}
.practice-question{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px}
.question-stem{white-space:pre-wrap;font-size:16px;line-height:1.9;overflow-wrap:anywhere;margin:16px 0 23px}
.question-image{display:block;max-width:100%;height:auto;margin:15px 0;border-radius:4px}
.shared-material{white-space:pre-wrap;font-size:13px;line-height:1.9;background:var(--bg);border-radius:8px;padding:20px;margin:15px 0 25px;max-height:none;overflow-wrap:anywhere}
.practice-result{margin:23px 0;font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.practice-result p{font-size:13px;line-height:1.9;margin-top:13px}
.solution-answer{font-size:13px;margin-top:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.written-answer{display:grid;gap:12px;font-size:12px;color:var(--muted)}
textarea{width:100%;resize:vertical;padding:15px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font-size:15px;line-height:1.9}
.paper-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.paper-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:25px;min-width:0}
.paper-card h2{font-size:20px;overflow-wrap:anywhere}
.paper-meta{display:flex;gap:18px;font-size:14px;margin:20px 0}
.paper-types{display:flex;gap:8px 15px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:25px}
.exam-history{margin-top:35px}
#exam-error,#exam-message{font-size:13px;color:var(--failure);margin-top:20px}
.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:25px;align-items:start}
.exam-timer{font-variant-numeric:tabular-nums;font-size:23px;color:var(--accent);white-space:nowrap}
.answer-card{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;min-width:0}
.answer-card h2{font-size:15px}
.answer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.answer-grid button{padding:8px 1px;border:1px solid var(--line);border-radius:5px;background:var(--bg);font-size:11px;font-variant-numeric:tabular-nums}
.answer-grid button.answered{background:var(--accent-soft);color:var(--accent)}
.answer-grid button.current{border-color:var(--accent)}
.save-state{display:block;margin:18px 0;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.answer-card .action,.answer-card .secondary{width:100%;gap:8px}
.question-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:24px;margin-top:25px;border-top:1px solid var(--line)}
.question-controls>span{font-size:11px;color:var(--muted)}
.exam-solution{border-top:1px solid var(--line);margin-top:26px;padding-top:23px;font-size:14px}
.exam-solution p{white-space:pre-wrap;line-height:1.9;overflow-wrap:anywhere;font-size:13px;margin-top:14px}
.result-label{font-size:14px}
.exam-summary{display:flex;align-items:center;gap:45px;flex-wrap:wrap;margin-bottom:30px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.exam-summary div>span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}
.exam-summary strong{font-size:27px;font-weight:500;line-height:1.3}
.exam-summary small{font-size:12px;font-weight:400;color:var(--muted)}
.subjective-note{font-size:11px;color:var(--muted)}
@media(max-width:1100px){.course-layout{grid-template-columns:minmax(0,1fr) 150px;gap:20px}.lesson-sheet,.practice-question{padding:25px}.chart-bars{gap:45px}.exam-layout{grid-template-columns:minmax(0,1fr) 175px;gap:20px}.answer-card{padding:17px}.paper-card{padding:22px}}
@media(max-width:950px){.course-layout{grid-template-columns:1fr}.lesson-outline{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.lesson-outline>.eyebrow{display:none}.lesson-outline a{padding:7px 8px}.exam-layout{grid-template-columns:1fr}.answer-card{margin-top:6px}.answer-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.answer-card .action,.answer-card .secondary{width:auto;min-width:120px}.paper-grid{grid-template-columns:1fr}.diagram-label{font-size:11px;padding:8px}.diagram-children{gap:10px}}
@media(max-width:560px){.lesson-sheet,.practice-question{padding:23px 19px;border-radius:13px}.lesson-sheet>h2{font-size:18px;margin-bottom:20px}.reading-text{font-size:16px;line-height:2;padding:8px 0 18px}table{font-size:12px}td,th{padding:15px 10px}th{font-size:11px}.course-layout{gap:17px}.lesson-controls{gap:10px;align-items:center}.lesson-controls .action,.lesson-controls .secondary{font-size:11px;padding:9px 12px;gap:8px}.page-dots{gap:1px}.page-dots a{width:18px;height:24px}.lesson-outline a{font-size:11px}.chart-bars{gap:35px;min-height:272px}.chart-column{width:72px}.chart-value{font-size:27px}.diagram-children{gap:10px}.diagram-children.many{grid-template-columns:1fr}.diagram-label{font-size:11px}.diagram-label.parent{font-size:14px;padding:9px 14px}.concept-check h3{font-size:17px}.answer-option{padding:14px 12px;font-size:13px;gap:10px}.question-stem{font-size:15px}.shared-material{padding:16px;font-size:12px}.step-list li{padding:15px 0}.step-list strong{font-size:13px}.exam-timer{font-size:18px}.paper-card h2{font-size:18px}.paper-meta{font-size:13px}.exam-summary{gap:25px;padding:20px 0}.exam-summary strong{font-size:24px}.answer-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.question-controls{gap:10px}.question-controls .secondary{padding:9px 12px;font-size:11px}.question-controls>span{font-size:11px}.prerequisites{gap:8px}.written-answer textarea{font-size:16px}.completion{flex-wrap:wrap;gap:15px}}
/* 时间轴、政策场景拆解及分轮练习反馈。 */
.teaching-timeline{list-style:none;padding:0;margin:0;display:grid;gap:0}
.teaching-timeline li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:20px;position:relative;padding:20px 0 20px 22px;border-left:2px solid var(--line)}
.teaching-timeline li:before{content:"";position:absolute;left:-6px;top:28px;width:10px;height:10px;border-radius:50%;background:var(--accent)}
.teaching-timeline strong{color:var(--accent);font-size:18px;font-weight:500}
.teaching-timeline span{font-size:14px;line-height:1.8;overflow-wrap:anywhere}
.teaching-scenario{display:grid;gap:20px;line-height:1.9}
.scenario-scene{padding:24px;background:var(--bg);border-radius:10px;font-size:17px}
.scenario-clue,.scenario-meaning,.scenario-trap{border-left:3px solid var(--accent);padding:0 0 0 18px}
.teaching-scenario span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}
.teaching-scenario strong{font-size:18px;color:var(--accent);font-weight:500}
.teaching-scenario p{font-size:14px;line-height:1.9;margin:0}
.scenario-trap{border-color:var(--line)}
.lesson-sources{font-size:11px;color:var(--muted);margin-top:25px}
.lesson-sources summary{cursor:pointer}
.lesson-sources a{display:block;padding-top:10px;overflow-wrap:anywhere}
.practice-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:25px 0}
.round-feedback{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px;margin-bottom:25px}
.round-feedback h2{font-size:20px;margin-bottom:18px}
.round-feedback .exam-summary{margin-bottom:15px}
.round-feedback p{font-size:13px;color:var(--muted);margin:0}
.practice-question:has(input:disabled) .answer-option{cursor:default}
@media(max-width:560px){.teaching-timeline li{grid-template-columns:52px minmax(0,1fr);gap:15px;padding-left:17px}.teaching-timeline strong{font-size:16px}.teaching-timeline span{font-size:13px}.scenario-scene{padding:19px;font-size:16px}.teaching-scenario{gap:18px}.scenario-clue,.scenario-meaning,.scenario-trap{padding-left:13px}.round-feedback{padding:23px 19px}.practice-actions .action,.practice-actions .secondary{padding:10px 12px;font-size:12px}.diagram-children{flex-direction:column}.diagram-children>.diagram-branch{width:100%}.page-dots{max-width:100px}}
/* 核心结论在前、图表居中、解释在后；关键词仅标记少量关键术语。 */
.lesson-focus{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:17px 20px;margin-bottom:27px}
.lesson-focus>span{font-size:11px;color:var(--muted);display:block;margin-bottom:7px}
.lesson-focus p{font-size:17px;line-height:1.85;color:var(--text);overflow-wrap:anywhere}
.lesson-sheet .lesson-keyword{color:var(--accent);font-weight:650}
.lesson-notes{border-top:1px solid var(--line);margin-top:26px;padding-top:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.lesson-notes section{min-width:0}
.lesson-notes h3{font-size:14px;font-weight:550;margin-bottom:9px;color:var(--text)}
.lesson-notes p{font-size:13px;line-height:1.95;color:var(--muted);overflow-wrap:anywhere}
.lesson-notes .lesson-keyword{font-weight:600}
.diagram-label.parent .lesson-keyword{color:inherit}
@media(max-width:560px){.lesson-focus{padding:15px 16px;margin-bottom:22px}.lesson-focus p{font-size:16px}.lesson-notes{grid-template-columns:1fr;gap:19px;margin-top:22px;padding-top:20px}.lesson-notes p{font-size:13px}.lesson-notes h3{font-size:14px}}

/* 课程专用矢量示意图与一句图注。 */
.teaching-illustration{margin:0;display:grid;gap:18px}
.teaching-illustration img{display:block;width:100%;height:auto;border-radius:12px}
.teaching-illustration figcaption{font-size:13px;color:var(--muted);text-align:center;line-height:1.7}

.teaching-scenario details summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--accent);list-style-position:inside}
.teaching-scenario details[open] summary{margin-bottom:12px}

/* 客观填空的单位标签与分空判分。 */
.fill-answers{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;border:0;padding:0;margin:20px 0}
.fill-answers label{display:grid;gap:8px;font-size:13px;color:var(--muted)}
.fill-answers input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
.fill-answers input:focus{outline:2px solid var(--accent);outline-offset:2px}

.shared-material table{white-space:normal}.shared-material p+p{margin-top:12px}

.shared-material p{white-space:normal}
