:root{font-family:system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif;color:#162336;background:#fff;font-size:16px;line-height:1.8;--navy:#102b49;--link:#1257a3;--line:#d9e2ec;--muted:#516279}
*{box-sizing:border-box}body{margin:0}a{color:var(--link);text-underline-offset:.2em}a:hover{color:#00366e}a:focus-visible{outline:3px solid #f0a329;outline-offset:3px}.skip{position:absolute;left:12px;top:-100px;background:#fff;padding:8px 16px;z-index:20}.skip:focus{top:8px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 32px;background:var(--navy);color:#e7eff8;font-size:.875rem}.topbar a{color:#fff;text-decoration:none}.layout{max-width:1600px;margin:auto;display:grid;grid-template-columns:250px minmax(0,1fr) 210px;gap:38px;padding:32px}aside{border-right:1px solid var(--line);padding-right:24px}aside nav{display:grid;gap:5px}aside nav a{padding:8px 12px;text-decoration:none;border-radius:4px;font-size:.9375rem}aside nav a[aria-current=page]{background:#e8f0fa;color:#093c79;font-weight:650;border-left:3px solid #1764b4}.course-title{display:block;font-size:1.25rem;font-weight:700;line-height:1.5;text-decoration:none;color:var(--navy);margin:0 0 26px}.aside-label{font-size:.875rem;color:var(--muted);margin:26px 12px 8px}.document-tools{display:flex;justify-content:space-between;gap:16px;font-size:.875rem;color:var(--muted);padding-bottom:16px;border-bottom:1px solid var(--line)}main{min-width:0}.prose{max-width:950px;overflow-wrap:anywhere}.prose h1{font-size:1.9rem;line-height:1.45;color:var(--navy);margin:28px 0}.prose h2{font-size:1.4rem;margin-top:2.3em;line-height:1.5;scroll-margin-top:22px}.prose h3{font-size:1.125rem;margin-top:1.8em;line-height:1.55}.prose h4{font-size:1rem}.prose p{margin:1em 0}.prose ul,.prose ol{padding-left:1.6em}.prose li{margin:.4em 0}.prose blockquote{margin:20px 0;padding:0 0 0 18px;border-left:3px solid #7193b9;color:#465973}.prose table{display:block;overflow-x:auto;border-collapse:collapse;max-width:100%;font-size:.9375rem;line-height:1.7;margin:22px 0}.prose th,.prose td{border:1px solid var(--line);padding:10px 13px;text-align:left;vertical-align:top;min-width:72px}.prose th{background:#edf2f8;font-weight:650;color:var(--navy)}.prose tr:nth-child(even){background:#f8fafc}.prose pre{background:#f1f5f9;padding:16px;overflow:auto;border-radius:4px;line-height:1.6}.prose code{font-size:.92em;font-family:ui-monospace,Consolas,monospace}.prose :not(pre)>code{background:#eef3f8;padding:2px 4px}.prose img{max-width:100%;height:auto}.toc{font-size:.875rem;display:flex;flex-direction:column;gap:10px;position:sticky;top:24px;align-self:start;max-height:90vh;overflow:auto;border-left:1px solid var(--line);padding-left:18px}.toc>span{font-weight:650;color:var(--muted)}.toc a{text-decoration:none;color:var(--muted);line-height:1.5}footer{border-top:1px solid var(--line);margin-top:48px;padding-top:16px;font-size:.875rem;color:var(--muted)}
@media(max-width:1180px){.layout{grid-template-columns:220px minmax(0,1fr);gap:28px}.toc{display:none}}@media(max-width:760px){.topbar{padding:12px 18px;flex-wrap:wrap;gap:4px}.layout{display:block;padding:20px}aside{border-right:0;border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:24px}.course-title{margin-bottom:14px}aside nav{display:flex;flex-wrap:wrap;gap:3px}.aside-label{margin:12px 12px 3px}.document-tools{flex-wrap:wrap;gap:5px}.prose h1{font-size:1.6rem}.prose table{font-size:.875rem}}@media print{aside,.toc,.topbar,.document-tools,.skip{display:none}.layout{display:block;padding:0}.prose{max-width:none}.prose table{display:table;font-size:10pt}.prose h2,.prose h3{break-after:avoid}a{color:inherit}footer{font-size:9pt}}
/* Extend the existing document-reading theme; no course-specific backend. */
aside{position:sticky;top:20px;align-self:start;max-height:94vh;overflow:auto}
main>h1{font-size:1.85rem;line-height:1.45;color:var(--navy)}
.intro{max-width:56rem}.status{padding:12px 0;color:#6a4400;border-bottom:1px solid var(--line)}
.document-tools nav{display:flex;gap:18px;flex-wrap:wrap}
button{font:inherit;background:white;border:1px solid var(--line);border-radius:4px;padding:5px 12px;cursor:pointer}
button:focus-visible,.table-scroll:focus-visible{outline:3px solid #f0a329}
.prose section+section{border-top:2px solid var(--line);margin-top:4rem;padding-top:2rem}
.table-scroll{max-width:100%;overflow:auto}.prose table{display:table;width:auto;min-width:100%}
.prose table p{margin:.35em 0}.source-line{font-size:.875rem;color:var(--muted)}
[id]{scroll-margin-top:20px}code{overflow-wrap:anywhere}
@media(max-width:1180px){.toc{display:flex;position:static;border-left:0;border-top:1px solid var(--line);grid-column:1/-1;max-height:none}}
@media(max-width:760px){aside{position:static;max-height:none}.toc{margin-top:30px}.prose th,.prose td{min-width:76px}.prose table{font-size:.875rem}}
@media print{@page{size:A4 landscape;margin:12mm}.layout{display:block}.prose{max-width:none}.table-scroll{overflow:visible}.prose table{width:100%;min-width:0;font-size:8.5pt;line-height:1.35;table-layout:auto}.prose th,.prose td{min-width:0;padding:4px;overflow-wrap:anywhere}.prose thead{display:table-header-group}.prose tr{break-inside:avoid}.prose section+section{break-before:page}.source-line,.toc{display:none}main>h1{font-size:20pt}body{font-size:11pt}}
