:root{--paper:#fafbf8;--ink:#26362d;--green:#245846;--muted:#647166;--line:#dfe5dc;--soft:#f0f4ec;--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.95 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--green);text-decoration:none}button,input{font:inherit}button,summary{cursor:pointer}a,button,input,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--green);outline-offset:5px}.skip{position:absolute;top:-100px;left:20px;background:var(--paper);padding:10px;z-index:10}.skip:focus{top:10px}.topbar{max-width:800px;margin:auto;padding:25px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:15px}.brand{font-size:17px;font-weight:600;color:var(--ink)}main{max-width:800px;margin:auto;padding:0 32px}.intro{padding:60px 0 24px}h1{font-size:34px;font-weight:600;line-height:1.5;letter-spacing:.5px;margin:0 0 18px}.intro p{color:var(--muted);margin:0;font-size:17px}.contents{padding:12px 0 20px;border-bottom:1px solid var(--line);font-size:15px}.contents>summary{color:var(--muted);padding:6px 0;display:list-item;margin-left:18px}.contents nav{padding:10px 0 0;display:flex;flex-wrap:wrap;column-gap:24px;row-gap:8px}.contents nav a{white-space:nowrap}.contents nav a:hover{text-decoration:underline}.lesson{padding:40px 0;border-bottom:1px solid var(--line);scroll-margin-top:30px}.lesson-heading{display:flex;align-items:baseline;gap:12px;margin-bottom:20px}.lesson-number{font-size:17px;color:var(--muted);font-weight:400}h2,h3{font-size:25px;font-weight:600;line-height:1.6;margin:0 0 16px}.lesson h2{margin:0}.definition p{margin:0 0 14px}.definition p:last-child{margin:0}.qa{margin-top:6px}summary{list-style:none}summary::-webkit-details-marker{display:none}.qa summary{font-size:17px;font-weight:550;display:flex;gap:16px;align-items:baseline;padding:14px 0 4px}.qa summary:after{content:"+";font-size:20px;font-weight:400;margin-left:auto;color:var(--muted);flex-shrink:0}.qa[open] summary:after{content:"−"}.answer{color:#56665b;padding:8px 28px 8px 0}.answer p{margin:0}.remember{margin:22px 0 0;padding-left:16px;border-left:3px solid #a7bba1;color:var(--green)}.remember p{margin:0}.complete-button{display:block;margin:22px 0 0 auto;font-size:15px;line-height:1.6;padding:5px 0;border:0;background:none;color:var(--muted)}.complete-button:hover{color:var(--green);text-decoration:underline}.complete-button[aria-pressed=true]{color:var(--green)}.map-section{padding:40px 0}.map-section p{margin:0 0 16px}.map-section strong{font-weight:600}.quiz-section{padding:30px;background:var(--soft);border-radius:6px;margin-top:4px}.quiz-section>p{color:var(--muted);margin:0 0 25px}fieldset{margin:0 0 24px;padding:0;border:0;min-width:0}legend{font-size:17px;line-height:1.9;padding:0;margin-bottom:12px;float:left;width:100%}.quiz-options{display:flex;clear:both;gap:12px}.quiz-options label{display:flex;align-items:center;gap:9px;padding:6px 18px;border:1px solid #cdd8c7;border-radius:4px;background:var(--paper);font-size:16px;cursor:pointer}.quiz-options label:has(input:checked){border-color:var(--green);background:#e0ead9}input[type=radio]{accent-color:var(--green);width:15px;height:15px;margin:0}.feedback{font-size:16px;line-height:1.9;color:var(--green);margin:14px 0 0}.feedback.wrong{color:#8b452f}.quiz-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.primary{border:1px solid var(--green);background:var(--green);color:white;font-size:16px;padding:8px 22px;border-radius:4px}.primary:hover{background:#193e31}.text-button{background:none;border:0;color:var(--muted);font-size:15px;padding:8px 6px}.text-button:hover{text-decoration:underline}#quiz-result{font-size:16px;width:100%;margin:0}#quiz-result:empty{display:none}footer{display:flex;align-items:center;justify-content:space-between;padding:32px 0 40px;font-size:15px;color:var(--muted)}footer strong{font-weight:400;color:var(--green)}
@media(max-width:600px){body{font-size:17px}.topbar{padding:20px 24px}main{padding:0 24px}.intro{padding-top:38px}h1{font-size:28px}h2,h3{font-size:23px}.lesson{padding:32px 0}.quiz-section{padding:24px 20px;margin-left:-4px;margin-right:-4px}.answer{padding-right:0}.qa summary{gap:12px}.remember{padding-left:12px}footer{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.topbar,.contents,.complete-button,.quiz-actions,footer{display:none}body{background:white;color:black}main{padding:0;max-width:none}.lesson{break-inside:avoid}details:not([open])>*:not(summary){display:block}.quiz-section{background:white}.qa summary:after{display:none}}

.contents>summary:after{content:"＋";float:right;font-size:17px}.contents[open]>summary:after{content:"−"}
/* 课程章节：桌面左侧导航，移动端可展开目录。 */
.topbar{max-width:1180px;padding:25px 32px}.course-layout{max-width:1180px;margin:auto;display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;padding:0 32px}.course-layout main{width:100%;max-width:800px;padding:0;margin:0}.sidebar{position:sticky;top:30px;height:calc(100vh - 60px);padding:48px 24px 0 0;border-right:1px solid var(--line);align-self:start;overflow-y:auto}.sidebar nav{display:grid;gap:8px}.sidebar nav a{display:block;font-size:16px;padding:10px 12px;border-radius:4px;color:var(--muted);line-height:1.6}.sidebar nav a span{display:block;font-size:14px;margin-bottom:2px}.sidebar nav a.active{background:var(--soft);color:var(--green);font-weight:550}.sidebar nav a:hover{color:var(--green);background:var(--soft)}.course-progress{font-size:15px;margin:28px 12px;color:var(--muted)}.chapter-pagination{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:32px 0;font-size:15px}.chapter-pagination a{max-width:48%}.chapter-pagination a:hover{text-decoration:underline}#next-chapter{margin-left:auto;text-align:right}#menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:4px;color:var(--green);padding:5px 10px;font-size:15px}.intro:focus{outline:none}.lesson h2{margin:0}.lesson-heading h2{font-size:25px}[hidden]{display:none!important}
@media(max-width:900px){.course-layout{grid-template-columns:205px minmax(0,1fr);gap:30px;padding:0 24px}.sidebar{padding-right:15px}.sidebar nav a{font-size:15px}.topbar{padding:22px 24px}h1{font-size:29px}.lesson-heading h2{font-size:23px}}
@media(max-width:700px){.topbar{position:sticky;top:0;background:var(--paper);z-index:10;gap:15px;padding:16px 24px;font-size:15px}.topbar>a:nth-child(2){margin-left:auto}#menu-toggle{display:block;font-size:14px}.course-layout{display:block;padding:0 24px}.sidebar{display:none;position:sticky;top:71px;height:auto;max-height:65vh;padding:14px 0;background:var(--paper);z-index:9;border-right:0;border-bottom:1px solid var(--line);overflow:auto}.sidebar.is-open{display:block}.sidebar nav{gap:2px}.sidebar nav a{display:flex;gap:14px;font-size:16px;padding:10px 12px}.sidebar nav a span{font-size:15px;white-space:nowrap;margin:0}.course-progress{font-size:14px;margin:14px 12px}.intro{padding-top:32px;scroll-margin-top:100px}h1{font-size:27px}.lesson{scroll-margin-top:90px}.chapter-pagination a{font-size:15px;max-width:100%}.quiz-section{scroll-margin-top:90px}html{scroll-padding-top:90px}}
@media print{.sidebar,.topbar,.chapter-pagination{display:none}.course-layout{display:block;padding:0}.course-layout main{max-width:none}}
/* 解释与问答分组留白，使用提示采用清晰的浅底信息块。 */
.questions{margin-top:32px}.questions>.qa:first-child{margin-top:0}.questions>.qa:first-child summary{padding-top:0}.remember{margin:28px 0 0;padding:18px 22px;border:0;border-radius:6px;background:var(--soft);color:var(--ink)}.remember>strong{display:block;font-size:17px;line-height:1.7;color:var(--green);font-weight:600;margin-bottom:6px}.remember p{font-size:17px;line-height:1.95;margin:0}
@media(max-width:600px){.questions{margin-top:30px}.remember{padding:18px;margin-top:24px}}
@media print{.remember{border:1px solid var(--line);background:white;break-inside:avoid}}
/* 锚点只使用页面统一的顶部留白，避免重复叠加。 */
.lesson,#lesson,#quiz{scroll-margin-top:0}
