*,:after,:before{box-sizing:border-box;margin:0;padding:0}.dark,:root{--bg:#111113;--bg-sidebar:#18181b;--bg-surface:#1e1e24;--border:#27272a;--border-light:#1e1e24;--text:#e4e4e7;--text-secondary:#a1a1aa;--text-muted:#71717a;--accent:#8b8bf5;--accent-soft:rgba(139,139,245,.1);--accent-hover:#a5a5f7;--hover-bg:#1e1e24;--card-bg:#18181b;--card-border:#27272a;--card-shadow:0 1px 3px rgba(0,0,0,.2);--card-shadow-hover:0 4px 12px rgba(0,0,0,.3);--table-header:#1e1e24;--code-bg:#1e1e24;--code-text:#e4e4e7;--pre-bg:#0a0a0f;--pre-text:#cdd6f4;--callout-info-bg:rgba(59,130,246,.1);--callout-info-border:#3b82f6;--callout-info-text:#93c5fd;--callout-warning-bg:rgba(245,158,11,.1);--callout-warning-border:#f59e0b;--callout-warning-text:#fcd34d;--callout-error-bg:rgba(239,68,68,.1);--callout-error-border:#ef4444;--callout-error-text:#fca5a5;--blockquote-bg:#1e1e24;--blockquote-border:#3f3f46;--overlay-bg:rgba(0,0,0,.6);--sidebar-width:260px;--toc-width:200px;--content-max:768px;--z-dropdown:100;--z-modal:200;--z-tooltip:300;--ease-out-quart:cubic-bezier(0.165,0.84,0.44,1)}.light{--bg:#fff;--bg-sidebar:#f9fafb;--bg-surface:#f3f4f6;--border:#e5e7eb;--border-light:#f3f4f6;--text:#111827;--text-secondary:#4b5563;--text-muted:#9ca3af;--accent:#5b5bd6;--accent-soft:rgba(91,91,214,.08);--accent-hover:#4747b3;--hover-bg:#f3f4f6;--card-bg:#fff;--card-border:#e5e7eb;--card-shadow:0 1px 3px rgba(0,0,0,.04);--card-shadow-hover:0 4px 12px rgba(0,0,0,.08);--table-header:#f9fafb;--code-bg:#f3f4f6;--code-text:#1e293b;--pre-bg:#1e1e2e;--pre-text:#cdd6f4;--callout-info-bg:#eff6ff;--callout-info-border:#3b82f6;--callout-info-text:#1e40af;--callout-warning-bg:#fffbeb;--callout-warning-border:#f59e0b;--callout-warning-text:#92400e;--callout-error-bg:#fef2f2;--callout-error-border:#ef4444;--callout-error-text:#991b1b;--blockquote-bg:#f8f9fc;--blockquote-border:#d1d5db;--overlay-bg:rgba(0,0,0,.4)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;font-size:15px}a{color:inherit;text-decoration:none}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);border-right:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0;background:var(--bg-sidebar);display:flex;flex-direction:column}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-header{padding:20px 20px 0}.sidebar-logo{display:flex;align-items:center;gap:10px;margin-bottom:20px}.sidebar-logo svg{width:28px;height:28px;color:var(--accent)}.sidebar-logo span{font-size:15px;font-weight:600}.cmdk-trigger{width:calc(100% - 32px);background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;flex-direction:row;align-items:center;gap:8px;margin:0 16px 16px;cursor:pointer;font-family:inherit;transition:border-color .15s ease;touch-action:manipulation}@media (hover:hover) and (pointer:fine){.cmdk-trigger:hover{border-color:var(--text-muted)}}.cmdk-trigger:active{transform:scale(.98)}.cmdk-trigger svg{color:var(--text-muted);width:14px;height:14px;flex-shrink:0}.cmdk-trigger span{color:var(--text-muted);font-size:13px;flex:1 1;text-align:left}.cmdk-trigger kbd{background:var(--border);border-radius:4px;font-size:10px;padding:2px 5px;color:var(--text-muted);margin-left:auto}.sidebar-controls{display:flex;justify-content:space-between;align-items:center;padding:0 20px;margin-bottom:16px}.lang-toggle{display:flex;gap:2px}.lang-btn{padding:4px 14px;border:1px solid var(--border);border-radius:6px;background:transparent;cursor:pointer;font-size:12px;font-weight:500;color:var(--text-muted);transition:color .15s ease,border-color .15s ease,background-color .15s ease;font-family:inherit;touch-action:manipulation}@media (hover:hover) and (pointer:fine){.lang-btn:hover{color:var(--text-secondary);border-color:var(--text-muted)}}.lang-btn:active{transform:scale(.97)}.lang-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.theme-toggle{border:none;background:transparent;cursor:pointer;color:var(--text-muted);padding:4px;border-radius:6px;transition:color .15s ease;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;position:relative;touch-action:manipulation}@media (hover:hover) and (pointer:fine){.theme-toggle:hover{color:var(--text)}}.nav-section{padding:0 12px;flex:1 1}.nav-list{list-style:none}.nav-item a{display:block;padding:7px 12px;border-radius:6px;font-size:13.5px;font-weight:500;color:var(--text-secondary);transition:background-color .12s ease,color .12s ease}@media (hover:hover) and (pointer:fine){.nav-item a:hover{background:var(--hover-bg);color:var(--text)}}.nav-item a.active{background:var(--accent-soft);color:var(--accent)}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.main{flex:1 1;min-width:0}.main-inner{max-width:var(--content-max);padding:48px 48px 80px;margin:0 auto}.article-content h1,.article-content h2,.article-content h3{text-wrap:balance}.article-content h1{font-size:2rem;font-weight:700;margin-bottom:12px;line-height:1.25;letter-spacing:-.025em;color:var(--text)}.article-content h2{font-size:1.5rem;margin-top:48px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.article-content h2,.article-content h3{font-weight:600;color:var(--text);scroll-margin-top:24px}.article-content h3{font-size:1.15rem;margin-top:32px;margin-bottom:10px}.article-content ol,.article-content p,.article-content ul{margin-bottom:16px;color:var(--text-secondary)}.article-content ol,.article-content ul{padding-left:24px}.article-content li{margin-bottom:6px}.article-content li::marker{color:var(--text-muted)}.article-content strong{font-weight:600;color:var(--text)}.article-content a{color:var(--accent);text-decoration:none;transition:color .15s}.article-content a:hover{text-decoration:underline}.article-content hr{border:none;border-top:1px solid var(--border);margin:32px 0}.article-content table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;border:1px solid var(--border)}.article-content td,.article-content th{border:1px solid var(--border);padding:10px 14px;text-align:left;color:var(--text-secondary)}.article-content th{background:var(--table-header);font-weight:600;color:var(--text);font-size:13px;text-transform:uppercase;letter-spacing:.03em}.article-content tr:nth-child(2n){background:var(--bg-surface)}.article-content code{background:var(--code-bg);color:var(--code-text);padding:2px 6px;border-radius:5px;font-size:.875em;font-family:JetBrains Mono,Fira Code,monospace}.article-content pre{background:var(--pre-bg);color:var(--pre-text);padding:18px 20px;border-radius:10px;overflow-x:auto;margin:20px 0;border:1px solid var(--border);font-size:13px;line-height:1.6}.article-content pre code{background:none;padding:0;color:inherit;border-radius:0}.article-content blockquote{border-left:3px solid var(--blockquote-border);padding:12px 18px;margin:20px 0;background:var(--blockquote-bg);border-radius:0 8px 8px 0;color:var(--text-secondary)}.article-content details{border:1px solid var(--border);border-radius:8px;padding:14px 18px;margin:12px 0;background:var(--bg-surface)}.article-content summary{font-weight:600;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--text);font-size:14px}.article-content details[open] summary{margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.callout{padding:14px 18px;border-radius:8px;margin:16px 0;font-size:14px;border-left:4px solid;line-height:1.6}.callout p{margin-bottom:4px}.callout p:last-child{margin-bottom:0}.callout-info{background:var(--callout-info-bg);border-color:var(--callout-info-border);color:var(--callout-info-text)}.callout-warning{background:var(--callout-warning-bg);border-color:var(--callout-warning-border);color:var(--callout-warning-text)}.callout-error{background:var(--callout-error-bg);border-color:var(--callout-error-border);color:var(--callout-error-text)}.callout a{color:inherit;text-decoration:underline}.breadcrumbs{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--text-muted);margin-bottom:24px}@media (hover:hover) and (pointer:fine){.breadcrumbs a:hover{color:var(--accent)}}.breadcrumbs .separator{color:var(--text-muted)}.toc{width:var(--toc-width);position:-webkit-sticky;position:sticky;top:48px;padding:0 16px;height:-moz-fit-content;height:fit-content;flex-shrink:0}.toc-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:12px}.toc-list{list-style:none}.toc-item a{display:block;padding:4px 0 4px 10px;font-size:12.5px;color:var(--text-muted);text-decoration:none;transition:color .15s ease,border-color .15s ease;border-left:2px solid transparent}@media (hover:hover) and (pointer:fine){.toc-item a:hover{color:var(--text-secondary)}}.toc-item.active a{color:var(--accent);border-left-color:var(--accent)}.toc-sub a{padding-left:20px}.cmdk-overlay{position:fixed;inset:0;background:var(--overlay-bg);z-index:var(--z-modal);display:flex;align-items:flex-start;justify-content:center;padding-top:20vh;animation:cmdk-overlay-in .15s ease-out}@keyframes cmdk-overlay-in{0%{opacity:0}to{opacity:1}}.cmdk-modal{width:100%;max-width:560px;background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.5);overflow:hidden;animation:cmdk-modal-in .2s var(--ease-out-quart)}@keyframes cmdk-modal-in{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.cmdk-input-wrap{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.cmdk-input{flex:1 1;background:transparent;border:none;outline:none;font-size:15px;color:var(--text);font-family:inherit}.cmdk-input::placeholder{color:var(--text-muted)}.cmdk-kbd{background:var(--border);color:var(--text-muted);padding:2px 8px;border-radius:4px;font-size:11px}.cmdk-results{max-height:320px;overflow-y:auto;padding:8px}.cmdk-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .1s}.cmdk-item.active,.cmdk-item:hover{background:var(--accent-soft)}.cmdk-item-title{font-size:13px;font-weight:500;color:var(--text)}.cmdk-item-desc{font-size:12px;color:var(--text-muted);margin-top:2px}.cmdk-footer{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--border);font-size:11px;color:var(--text-muted)}.cmdk-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:14px}.index-title{font-size:2rem;font-weight:700;letter-spacing:-.025em;margin-bottom:6px}.index-description{color:var(--text-muted);font-size:1.05rem;margin-bottom:32px}.index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:12px;gap:12px}.index-card{display:flex;gap:14px;padding:18px 22px;border:1px solid var(--card-border);border-radius:10px;background:var(--card-bg);box-shadow:var(--card-shadow);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease-out}@media (hover:hover) and (pointer:fine){.index-card:hover{border-color:var(--accent);box-shadow:var(--card-shadow-hover);transform:translateY(-1px)}}.index-card:active{transform:scale(.98)}.index-card-icon{width:24px;height:24px;flex-shrink:0}.index-card h3{font-size:15px;font-weight:600;color:var(--text)}.index-card p{font-size:13px;color:var(--text-muted);margin:2px 0 0}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}html.theme-transition-off *,html.theme-transition-off :after,html.theme-transition-off :before{transition:none!important}@media (max-width:1100px){.toc{display:none}}@media (max-width:860px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--border)}.main-inner{padding:28px 20px 60px}.index-grid{grid-template-columns:1fr}}