:root{color-scheme:light;--bg:#f6f6f2;--paper:#fff;--text:#25363d;--muted:#586c72;--line:#dce3df;--accent:#176c70;--code:#edf2f0}
html[data-theme=dark]{color-scheme:dark;--bg:#142025;--paper:#1b2a30;--text:#e0e9e7;--muted:#a8bfbe;--line:#35484c;--accent:#7ed4c6;--code:#23383d}
*{box-sizing:border-box}html{scroll-padding-top:5.5rem}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;line-height:1.8}a{color:var(--accent);text-underline-offset:.2em}button,input{font:inherit}button{cursor:pointer;background:var(--paper);color:var(--text);border:1px solid var(--line);border-radius:.4rem;padding:.25rem .7rem}button:hover,a:hover{filter:brightness(.85)}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.topbar{height:4.5rem;position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:var(--paper);display:flex;align-items:center;justify-content:space-between;padding:0 2rem;gap:1rem}.brand{font-weight:700;text-decoration:none;color:var(--text)}.tools{display:flex;align-items:center;gap:1rem;font-size:.85rem}.layout{display:grid;grid-template-columns:19rem minmax(0,54rem);gap:2.5rem;max-width:82rem;margin:0 auto;padding:2rem}aside{position:sticky;top:6rem;align-self:start;max-height:calc(100vh - 7rem);overflow:auto;font-size:.85rem;padding-right:1rem}summary{font-weight:700;font-size:1rem;cursor:pointer;margin-bottom:.8rem}nav ul{list-style:none;padding-left:0}nav ul ul{padding-left:1rem;border-left:1px solid var(--line);margin:.4rem 0}nav li{margin:.5rem 0}nav a{text-decoration:none;display:block}nav a[aria-current]{font-weight:700;text-decoration:underline}.search-label{display:block;color:var(--muted)}input{width:100%;border:1px solid var(--line);border-radius:.4rem;padding:.5rem;background:var(--paper);color:var(--text)}main{min-width:0;padding:2rem 3rem;background:var(--paper);border:1px solid var(--line);border-radius:.6rem}main:focus{outline:none}.book-title{padding:1rem 0 2rem;border-bottom:1px solid var(--line);margin-bottom:3rem}.eyebrow{font-size:.75rem;letter-spacing:.15em;color:var(--accent);font-weight:700}.book-title h1{font-size:2.4rem}.note,footer{color:var(--muted);font-size:.85rem}h1,h2,h3{line-height:1.45;scroll-margin-top:1rem}main>h1{font-size:1.8rem;margin:3.5rem 0 1.5rem;border-top:1px solid var(--line);padding-top:2rem}h2{font-size:1.25rem;margin-top:2rem}p{overflow-wrap:anywhere}pre{background:var(--code);padding:1rem;overflow:auto;border-radius:.4rem;font-size:.82rem;line-height:1.6}code{font-family:ui-monospace,monospace}p code,li code{background:var(--code);padding:.1em .25em;border-radius:.2em}blockquote{border-left:3px solid var(--accent);margin:1rem 0;padding:.25rem 1rem;color:var(--muted)}table{display:block;overflow:auto;border-collapse:collapse;font-size:.85rem;margin:1.5rem 0}th,td{border:1px solid var(--line);padding:.6rem;vertical-align:top;min-width:7rem}th{background:var(--code)}footer{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.5rem}.back-top{position:fixed;bottom:1rem;right:1rem;background:var(--paper);border:1px solid var(--line);border-radius:50%;width:2.5rem;height:2.5rem;text-align:center;line-height:2.4rem;text-decoration:none}.skip{position:fixed;top:-5rem;left:1rem;z-index:30;background:var(--paper);padding:.5rem}.skip:focus{top:.5rem}[hidden]{display:none!important}
@media(max-width:900px){.layout{grid-template-columns:15rem minmax(0,1fr);gap:1rem;padding:1rem}main{padding:1.5rem}aside{padding-right:.5rem}}
@media(max-width:680px){.topbar{padding:0 1rem;height:auto;min-height:4rem;flex-wrap:wrap;gap:.2rem;padding-block:.6rem}.brand{font-size:.95rem}.tools{gap:.8rem}.layout{display:block;padding:.75rem}aside{position:static;max-height:none;margin-bottom:1rem;padding:.75rem;background:var(--paper);border:1px solid var(--line);border-radius:.4rem}aside nav{max-height:55vh;overflow:auto}main{padding:1.25rem;border-radius:.4rem}.book-title h1{font-size:1.9rem}main>h1{font-size:1.5rem}}
@media print{.topbar,aside,.back-top,.skip{display:none}.layout{display:block;padding:0}main{border:0;padding:0;background:#fff;color:#000}pre,table{overflow:visible}main>h1{break-before:page}}
