*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,system-ui,sans-serif;font-size:15px;line-height:1.7;color:var(--c-text);background:var(--c-bg)}
:root{--c-bg:#fff;--c-off:#f1f5f9;--c-text:#1e293b;--c-mute:#64748b;--c-line:#e2e8f0;--c-blue:#4f46e5;--c-dark:#1e1e2e;--w-side:240px;--h-nav:50px}
[data-theme=dark]{--c-bg:#0f172a;--c-off:#1e293b;--c-text:#e2e8f0;--c-mute:#94a3b8;--c-line:#334155;--c-dark:#111827}
a{color:var(--c-blue);text-decoration:none}
a:hover{text-decoration:underline}
.nav{position:fixed;top:0;left:0;right:0;height:var(--h-nav);background:var(--c-bg);border-bottom:1px solid var(--c-line);display:flex;align-items:center;padding:0 16px;gap:12px;z-index:100}
.logo{font-weight:700;font-size:14px;color:var(--c-text);white-space:nowrap}
.nav-links{display:flex;gap:8px;flex:1;overflow-x:auto}
.nav-links a{font-size:13px;color:var(--c-mute);white-space:nowrap;padding:2px 0;border-bottom:2px solid transparent}
.nav-links a:hover{color:var(--c-blue);border-color:var(--c-blue);text-decoration:none}
.theme-btn,.menu-btn{background:none;border:1px solid var(--c-line);border-radius:5px;padding:4px 8px;cursor:pointer;color:var(--c-mute);font-size:16px}
.theme-btn:hover,.menu-btn:hover{color:var(--c-blue);border-color:var(--c-blue)}
.layout{display:flex;margin-top:var(--h-nav);min-height:calc(100vh - var(--h-nav))}
.sidebar{width:var(--w-side);flex-shrink:0;border-right:1px solid var(--c-line);padding:10px;overflow-y:auto;position:sticky;top:var(--h-nav);height:calc(100vh - var(--h-nav));background:var(--c-off);font-size:13px}
.search-input{width:100%;padding:6px 8px;border:1px solid var(--c-line);border-radius:4px;font-size:13px;background:var(--c-bg);color:var(--c-text);outline:none;margin-bottom:8px}
.search-input:focus{border-color:var(--c-blue)}
.tree{display:flex;flex-direction:column;gap:1px}
.tree a{display:block;padding:3px 6px;border-radius:3px;color:var(--c-text);text-decoration:none;line-height:1.5}
.tree a:hover{background:var(--c-line);text-decoration:none}
.tree .active>a{background:var(--c-blue);color:#fff;font-weight:500}
.tree .sec{padding:6px 6px 2px;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-mute)}
.tree .sub{padding-left:10px}
.main{flex:1;padding:24px 32px;min-width:0;max-width:820px}
.main h1{font-size:1.7rem;font-weight:700;margin-bottom:1rem}
.main h2{font-size:1.3rem;font-weight:600;margin-top:1.8rem;margin-bottom:.6rem;padding-bottom:.3rem;border-bottom:1px solid var(--c-line)}
.main h3{font-size:1.05rem;font-weight:600;margin-top:1.4rem;margin-bottom:.4rem}
.main p{margin-bottom:.75rem}
.main ul,.main ol{margin-bottom:.75rem;padding-left:1.4rem}
.main li{margin-bottom:.15rem}
.main blockquote{border-left:3px solid var(--c-blue);padding-left:.8rem;margin:.75rem 0;color:var(--c-mute);font-style:italic}
.main hr{border:none;border-top:1px solid var(--c-line);margin:1.5rem 0}
.main img{max-width:100%;border-radius:6px}
pre{margin:.6rem 0;border-radius:5px;overflow-x:auto;font-size:13px;line-height:1.4}
pre code{background:var(--c-dark);color:#e2e8f0;display:block;padding:10px;font-family:'JetBrains Mono',monospace}
code{background:var(--c-off);padding:2px 5px;border-radius:3px;font-size:.85em;font-family:'JetBrains Mono',monospace}
pre code{background:var(--c-dark)}
table{width:100%;border-collapse:collapse;margin:.6rem 0;overflow-x:auto;display:block;font-size:13px}
th,td{padding:5px 8px;border:1px solid var(--c-line);text-align:left}
th{background:var(--c-off);font-weight:600}
.admonition{padding:.6rem .8rem;margin:.6rem 0;border-radius:5px;border-left:4px solid var(--c-blue);background:var(--c-off);font-size:13px}
.page-nav{display:flex;justify-content:space-between;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--c-line)}
.page-nav a{padding:5px 10px;border:1px solid var(--c-line);border-radius:4px;font-size:13px;color:var(--c-text);max-width:45%}
.page-nav a:hover{border-color:var(--c-blue);color:var(--c-blue);text-decoration:none}
.page-nav .next{text-align:right}
@media(max-width:800px){.sidebar{position:fixed;left:-260px;z-index:99;transition:left .2s;box-shadow:2px 0 8px rgba(0,0,0,.1)}.sidebar.open{left:0}.main{padding:16px}.nav-links{display:none}}
@media(max-width:800px){.menu-btn{display:block!important}}
@media(min-width:801px){.menu-btn{display:none!important}}
@media print{.sidebar,.nav,.page-nav{display:none!important}.main{padding:0;margin-top:0}@page{margin:.5in}}
