/* Standalone course documentation; no external resources. */
:root{color-scheme:light;--ink:#14283f;--muted:#566879;--brand:#1257a4;--line:#dce5ec;--paper:#fff;--background:#f3f6f9}
*{box-sizing:border-box}html{scroll-padding-top:30px}body{margin:0;background:var(--background);color:var(--ink);font:16px/1.85 "Segoe UI","Microsoft YaHei",sans-serif}a{color:var(--brand);text-underline-offset:3px}a:hover{color:#003868}a:focus-visible,pre:focus-visible,.table-scroll:focus-visible{outline:3px solid #d77916;outline-offset:4px}header{background:#fff;border-bottom:1px solid var(--line)}.topbar{max-width:1360px;padding:20px 36px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{text-decoration:none;color:var(--ink);font-size:21px;font-weight:750}.brand span{display:block;font-weight:400;font-size:12px;color:var(--muted);letter-spacing:1px}.topbar nav{display:flex;gap:24px;flex-wrap:wrap}.topbar nav a{text-decoration:none;font-size:14px}.topbar nav a[aria-current]{font-weight:700;border-bottom:2px solid var(--brand)}.layout{max-width:1360px;margin:auto;padding:40px 36px 70px;display:grid;gap:36px}.with-toc{grid-template-columns:235px minmax(0,1fr)}main{min-width:0;background:var(--paper);padding:42px 48px;border:1px solid var(--line);border-radius:10px}aside{align-self:start;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto}aside nav{display:flex;flex-direction:column;gap:8px}aside nav a{font-size:13px;color:var(--muted);text-decoration:none;padding:3px 0}aside nav a:hover{color:var(--brand)}.meta,.eyebrow{font-size:12px;letter-spacing:1.2px;color:var(--brand);font-weight:650}.meta{margin-bottom:20px}h1{font-size:34px;line-height:1.45;letter-spacing:-.6px;margin:0 0 24px}h2{font-size:24px;line-height:1.5;margin:44px 0 18px;padding-top:12px;border-top:1px solid var(--line)}h3{font-size:19px;margin:28px 0 12px}p{margin:14px 0;overflow-wrap:anywhere}li{margin:8px 0;overflow-wrap:anywhere}ul,ol{padding-left:25px}blockquote{margin:22px 0;padding:4px 20px;background:#eef5fb;border-left:3px solid #3774b4}blockquote p{font-size:14px}code{font:13px/1.75 Consolas,"Cascadia Code",monospace;background:#eef2f6;padding:2px 5px;border-radius:3px;overflow-wrap:anywhere}pre{margin:22px 0;background:#14283f;color:#f1f6fb;border-radius:7px;padding:20px;overflow-x:auto;max-width:100%;tab-size:4}pre code{background:none;color:inherit;padding:0;font-size:13px;white-space:pre;overflow-wrap:normal}table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.75;min-width:480px}th,td{text-align:left;vertical-align:top;border:1px solid var(--line);padding:11px 13px;overflow-wrap:anywhere}th{background:#edf3f8;font-weight:650}tbody tr:nth-child(even){background:#fafbfd}.table-scroll{overflow-x:auto;max-width:100%;margin:24px 0}.download{display:inline-block;border:1px solid var(--brand);border-radius:5px;padding:8px 16px;margin-top:28px;text-decoration:none;font-size:14px}footer{margin-top:44px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.landing{max-width:1120px}.landing main{padding:54px 60px}.landing h1{font-size:44px}.muted{color:var(--muted);font-weight:500}.lead{font-size:18px;max-width:730px}.cards{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:34px 0}.card{display:block;border:1px solid var(--line);border-radius:8px;padding:28px;text-decoration:none;color:var(--ink)}.card:hover{border-color:var(--brand);background:#f8fbfe}.card h2{border:0;padding:0;margin:12px 0;font-size:26px}.card p{font-size:15px;color:var(--muted)}.card>span:last-child{font-size:14px;color:var(--brand)}.skip{position:absolute;top:-100px;left:12px;background:#fff;padding:8px;z-index:5}.skip:focus{top:8px}
@media(max-width:980px){.layout{grid-template-columns:1fr;padding:24px;gap:22px}aside{position:static;max-height:none}aside nav{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.topbar{padding:18px 24px}main{padding:32px}.landing main{padding:38px}.landing h1{font-size:38px}}
@media(max-width:560px){body{font-size:15px}.topbar{align-items:flex-start;flex-direction:column;gap:12px;padding:16px 20px}.topbar nav{gap:18px}.layout{padding:16px 12px 30px;gap:18px}main,.landing main{padding:24px 18px}h1,.landing h1{font-size:25px}h2{font-size:21px}aside{padding:0 8px}aside nav{grid-template-columns:1fr}aside nav a{font-size:13px}.cards{grid-template-columns:1fr}.card{padding:24px}pre{padding:16px}.meta{font-size:10px;letter-spacing:.6px}.lead{font-size:16px}}
@media print{body{background:white;color:black;font-size:11pt}header,aside,.skip,.download,.meta{display:none}.layout{display:block;max-width:none;padding:0}main,.landing main{padding:0;border:0}.cards{display:block}.card{margin:15px 0}a{color:inherit}pre{white-space:pre-wrap;background:#f4f4f4;color:black;border:1px solid #ccc;overflow:visible}pre code{white-space:pre-wrap;overflow-wrap:anywhere}.table-scroll{overflow:visible}table{min-width:0;font-size:9pt}h2,h3{break-after:avoid}tr{break-inside:avoid}footer{font-size:9pt}}
.course-contact{background:#14283f;color:#fff}.course-contact>div{max-width:1360px;margin:auto;padding:12px 36px}.course-contact p{margin:0;font-size:15px;line-height:1.7}.course-contact a{color:#bcefee}
@media(max-width:560px){.course-contact>div{padding:12px 20px}}
@media print{.course-contact{background:white;color:black;border-bottom:1px solid #ccc;margin-bottom:16px;break-inside:avoid}.course-contact>div{padding:0 0 10px}.course-contact p{font-size:10pt}.course-contact a{color:inherit}}
