:root{--bg:#fff;--fg:#1d1d24;--dim:#5e5c64;--line:#e3e3ea;--card:#f6f6fa;--accent:#6d28d9;--accent-soft:#ede9fe;--code:#f1f1f6;--note:#e0f2fe;--note-b:#0284c7;--tip:#dcfce7;--tip-b:#16a34a;--warn:#fef3c7;--warn-b:#d97706;--imp:#fee2e2;--imp-b:#dc2626}
:root:not([data-theme=light]){color-scheme:light dark}
@media (prefers-color-scheme:dark){:root{--bg:#15151b;--fg:#ececf2;--dim:#a2a0ab;--line:#2c2c36;--card:#1d1d26;--accent:#a78bfa;--accent-soft:#2a2347;--code:#23232d;--note:#0c2a3a;--tip:#10301c;--warn:#352a0c;--imp:#3a1616}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--top-h,72px);-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:clip;background:var(--bg);color:var(--fg);font:16px/1.65 system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif}
a{color:var(--accent)}a:hover{text-decoration-thickness:2px}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--bg);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--fg);text-decoration:none;white-space:nowrap}
#q{flex:1;max-width:440px;margin-left:auto;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--fg);font:inherit}
.ghost{white-space:nowrap}.menu{display:none;background:none;border:0;font-size:22px;color:var(--fg);cursor:pointer}
.results{position:fixed;top:58px;right:20px;left:auto;width:min(520px,calc(100vw - 40px));max-height:70vh;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 40px #0004;z-index:30;padding:6px}
.results a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--fg)}.results a:hover{background:var(--accent-soft)}
.results small{color:var(--dim);margin-left:6px}.results span{display:block;color:var(--dim);font-size:14px}.results p{padding:10px 12px;color:var(--dim)}
.layout{display:grid;grid-template-columns:260px minmax(0,1fr) 220px;gap:32px;max-width:1360px;margin:0 auto;padding:0 20px}
.side,.toc{position:sticky;top:58px;align-self:start;max-height:calc(100vh - 58px);overflow:auto;padding:22px 0;font-size:14.5px}
.group{margin-bottom:18px}.group-title{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--dim);font-weight:700;margin-bottom:6px}
.side ul,.toc ul{list-style:none;margin:0;padding:0}
.side a{display:block;padding:5px 10px;border-radius:8px;color:var(--fg);text-decoration:none}.side a:hover{background:var(--card)}
.side a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.toc li a{display:block;padding:3px 0;color:var(--dim);text-decoration:none}.toc li a:hover{color:var(--accent)}.toc .l3{padding-left:14px}
main{min-width:0;padding:26px 0 60px}article{max-width:820px}
h1{font-size:2.1rem;line-height:1.2;margin:.2em 0 .5em}h2{font-size:1.5rem;margin:2.2em 0 .6em;padding-top:.6em;border-top:1px solid var(--line)}h3{font-size:1.15rem;margin:1.8em 0 .5em}h4{margin:1.4em 0 .4em}
.date{margin:-.4em 0 .6em;color:var(--dim);font-size:.9rem}.byline{margin:-.2em 0 1.4em;color:var(--dim);font-size:.95rem}.byline a{color:inherit;font-weight:600}
.anchor{margin-left:.4em;opacity:0;text-decoration:none;font-weight:400}h2:hover .anchor,h3:hover .anchor,h4:hover .anchor{opacity:.6}
p,ul,ol{margin:.8em 0}p,li,h1,h2,h3{overflow-wrap:break-word}td code,li code,p code{overflow-wrap:anywhere}li{margin:.3em 0}
code{background:var(--code);padding:.12em .4em;border-radius:6px;font:.88em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
pre{background:var(--code);padding:14px 16px;border-radius:12px;overflow:auto;border:1px solid var(--line)}pre code{background:none;padding:0;font-size:.86rem}
kbd{background:var(--card);border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:.05em .45em;font:.85em ui-monospace,monospace}
.table{overflow:auto;margin:1em 0}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{border:1px solid var(--line);padding:8px 12px;text-align:left;vertical-align:top}th{background:var(--card)}
figure{margin:1.6em 0}figure img{max-width:100%;height:auto;border-radius:12px}figcaption{color:var(--dim);font-size:.88rem;margin-top:6px}
.callout{border-left:4px solid;border-radius:8px;padding:10px 16px;margin:1.2em 0}.callout p{margin:.3em 0}
.callout.note{background:var(--note);border-color:var(--note-b)}.callout.tip{background:var(--tip);border-color:var(--tip-b)}.callout.warning{background:var(--warn);border-color:var(--warn-b)}.callout.important{background:var(--imp);border-color:var(--imp-b)}
.pager{display:flex;justify-content:space-between;gap:16px;margin-top:48px}.pager a{flex:1;max-width:48%;border:1px solid var(--line);border-radius:12px;padding:12px 16px;text-decoration:none;color:var(--fg)}
.pager a:hover{border-color:var(--accent)}.pager span{display:block;font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em}.pager .next{text-align:right;margin-left:auto}
footer{margin-top:40px;color:var(--dim);font-size:.88rem;border-top:1px solid var(--line);padding-top:16px}
.menu,.find,.close,.toc-m,.drawer-head{display:none}
.menu,.find{background:none;border:0;font-size:24px;line-height:1;color:var(--fg);cursor:pointer;padding:6px 8px;border-radius:8px}
.menu:hover,.find:hover{background:var(--card)}
.toc-m{margin:0 0 18px;border:1px solid var(--line);border-radius:12px;background:var(--card);font-size:15px}
.toc-m summary{cursor:pointer;padding:10px 14px;font-weight:600}.toc-m ul{list-style:none;margin:0;padding:0 14px 12px}.toc-m li{margin:0}.toc-m a{display:block;padding:6px 0;text-decoration:none}.toc-m .l3{padding-left:14px}
@media (max-width:1100px){.layout{grid-template-columns:240px minmax(0,1fr)}.toc{display:none}.toc-m{display:block}}
@media (max-width:800px){
.top{gap:6px;padding:8px 12px}.brand{min-width:0;flex:1}.brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ghost{display:none}
.menu,.find{display:block}
#q{display:none;position:absolute;left:12px;right:12px;top:100%;margin:6px 0 0;max-width:none;width:auto;z-index:25;box-shadow:0 8px 24px #0003}
body.search-open #q{display:block}
.layout{display:block;padding:0 16px}
.side{display:none;position:fixed;inset:0;z-index:40;max-height:none;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 20px 48px;background:var(--bg);font-size:16px}
.side .drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:-12px;z-index:2;margin:-12px -20px 12px;padding:12px 20px;background:var(--bg);border-bottom:1px solid var(--line)}
.side .drawer-head .brand{display:flex;align-items:center;gap:8px;min-width:0;padding:0;font-size:14px;background:none}.side .drawer-head .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.side .close{display:block;flex:none;padding:6px 10px;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--fg);font:inherit;cursor:pointer}
.side a{padding:10px 12px}
body.nav-open{overflow:hidden}body.nav-open .side{display:block}
.results{left:12px;right:12px;width:auto;max-height:60vh}
main{padding-top:16px}h1{font-size:1.7rem}h2{font-size:1.3rem}
figure{margin:1.2em -16px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0 16px}
figure picture,figure img{display:block;min-width:640px}
figcaption{position:sticky;left:0;max-width:calc(100vw - 32px)}
.pager{flex-direction:column}.pager a{max-width:none}
pre{margin-left:-4px;margin-right:-4px;font-size:.8rem}
}
@media print{.top,.side,.toc,.pager,.results{display:none}.layout{display:block}}
