:root{color-scheme:light;--paper:#fff;--surface:#f7f8fa;--text:#20232b;--muted:#626977;--border:#e7e9ee;--accent:#255de0;--soft:#eef3ff;--code:#f4f6f9;--shadow:0 18px 70px #16234226;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#14161b;--surface:#1b1e25;--text:#e9ebf2;--muted:#a1a9bb;--border:#303640;--accent:#91b2ff;--soft:#202c45;--code:#1c2029;--shadow:0 18px 70px #0007}}
:root[data-theme=dark]{color-scheme:dark;--paper:#14161b;--surface:#1b1e25;--text:#e9ebf2;--muted:#a1a9bb;--border:#303640;--accent:#91b2ff;--soft:#202c45;--code:#1c2029;--shadow:0 18px 70px #0007}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--text);font-size:15px;line-height:1.8}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit}button,summary{cursor:pointer}button{color:inherit}button:disabled{cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{background:transparent;border:0}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:-100px;z-index:20;padding:10px 20px;background:var(--paper);border:1px solid var(--accent);border-radius:6px}.skip-link:focus{top:8px}
.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 40px;border-bottom:1px solid var(--border);background:var(--paper);position:sticky;top:0;z-index:5}.brand{display:flex;gap:12px;align-items:center;flex-shrink:0;color:var(--text);letter-spacing:.05em}.brand:hover{text-decoration:none}.brand strong{font-size:20px;font-weight:700}.brand-symbol{display:grid;place-items:center;background:var(--text);color:var(--paper);width:32px;height:32px;font-size:22px;font-weight:800;line-height:1;border-radius:7px}.brand-divider{margin:0 10px;color:var(--border);font-weight:400}.brand-docs{font-size:16px;font-weight:500;letter-spacing:0}.search-trigger{display:flex;gap:10px;align-items:center;text-align:left;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);width:min(340px,32vw);color:var(--muted);font-size:13px}.search-trigger kbd{margin-left:auto;border:1px solid var(--border);border-radius:4px;padding:0 5px;font-size:11px;white-space:nowrap}.header-actions{display:flex;gap:20px;align-items:center;flex-shrink:0}.theme-toggle{font-size:24px;width:38px;height:38px;display:grid;place-items:center;border-radius:6px}.theme-toggle:hover{background:var(--surface)}.back-link{color:var(--text);font-size:13px;white-space:nowrap}.back-link span{margin-left:6px}
.doc-layout{display:grid;grid-template-columns:232px minmax(0,760px) 208px;gap:52px;max-width:1412px;margin:auto;padding:0 40px}.doc-sidebar{align-self:start;position:sticky;top:76px;height:calc(100dvh - 76px);overflow-y:auto;padding:36px 0 24px;border-right:1px solid var(--border);scrollbar-width:thin}.doc-sidebar>summary{display:none}.doc-sidebar nav{padding-right:24px}.nav-group{margin:0 0 26px}.nav-group h2{font-size:12px;letter-spacing:.04em;margin:0 0 9px;padding:0 12px;font-weight:650;color:var(--text)}.nav-group a{display:block;color:var(--muted);padding:7px 12px;border-radius:6px;font-size:13px;line-height:1.65;margin:2px 0;overflow-wrap:anywhere}.nav-group a:hover{background:var(--surface);color:var(--text);text-decoration:none}.nav-group a[aria-current=page]{background:var(--soft);color:var(--accent);font-weight:600}.sidebar-foot{margin:40px 24px 0 12px;border-top:1px solid var(--border);padding-top:18px;display:flex;flex-direction:column;font-size:12px;color:var(--muted)}.sidebar-foot small{font-size:11px}
main{min-width:0;padding:42px 0 28px}main:focus{outline:none}.article-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:var(--accent);margin-bottom:16px}.copy-page{font-size:12px;color:var(--muted);padding:5px 0}h1{font-size:clamp(28px,3vw,38px);font-weight:700;letter-spacing:-.035em;line-height:1.3;margin:0 0 16px}.lead{font-size:17px;line-height:1.9;color:var(--muted);margin:0 0 10px}.reading-meta{font-size:11px;color:var(--muted);margin:0 0 36px}.reading-meta span{margin:0 5px}article{overflow-wrap:anywhere}article h2{font-size:22px;font-weight:650;line-height:1.5;margin:40px 0 16px;letter-spacing:-.025em;scroll-margin-top:108px}article h3{font-size:17px;margin:24px 0 10px}article p{margin:16px 0}article .lead{margin:0 0 10px}article .reading-meta{margin:0 0 36px}article ul,article ol{padding-left:23px;margin:16px 0}article li{padding-left:3px;margin:9px 0}article li::marker{color:var(--muted)}article strong{font-weight:650}article p a,article li a,article dd a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:color-mix(in srgb,var(--accent) 35%,transparent)}.heading-anchor{opacity:0;font-size:16px;padding:0 8px;color:var(--muted)}h2:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.intro-note{border-left:3px solid var(--accent);background:var(--soft);border-radius:0 8px 8px 0;padding:22px 26px}.eyebrow{display:block;font-size:11px;font-weight:650;letter-spacing:.06em;color:var(--accent)}.intro-note p{font-size:17px;margin:7px 0 18px}.primary-link{background:#255de0;color:#fff;display:inline-flex;gap:22px;align-items:center;font-size:13px;padding:10px 15px;border-radius:6px;font-weight:550}.primary-link:hover{text-decoration:none;background:#174ecb}.journey{list-style:none;counter-reset:step;padding:0!important;border:1px solid var(--border);border-radius:8px}.journey li{position:relative;padding:18px 20px 18px 62px;margin:0;counter-increment:step;border-bottom:1px solid var(--border)}.journey li:last-child{border:0}.journey li:before{content:counter(step);position:absolute;top:20px;left:20px;border:1px solid var(--border);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:12px}.journey strong,.journey span{display:block}.journey strong{font-size:14px}.journey span{font-size:13px;color:var(--muted);margin-top:3px}.link-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.link-grid a{border:1px solid var(--border);border-radius:8px;padding:20px;color:var(--text)}.link-grid a:hover{text-decoration:none;border-color:var(--accent);background:var(--surface)}.link-grid strong{display:block;font-size:14px;margin-bottom:6px}.link-grid span{display:block;color:var(--muted);font-size:12px;line-height:1.8}.term-list{margin:20px 0}.term-list dt{font-weight:600;font-size:14px;padding:15px 0 3px}.term-list dd{margin:0;padding:0 0 15px;border-bottom:1px solid var(--border);font-size:14px;color:var(--muted)}.callout{padding:17px 20px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;background:var(--surface);font-size:13px}.code-block{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:22px 0}.code-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;font-size:11px;color:var(--muted);background:var(--surface);border-bottom:1px solid var(--border)}.code-header button{font-size:11px;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--paper);flex-shrink:0}.code-block pre{margin:0;border:0;border-radius:0}pre{background:var(--code);border:1px solid var(--border);border-radius:8px;padding:19px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.95;tab-size:2}code{font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-size:.9em;border-radius:4px;background:var(--code);padding:2px 5px;overflow-wrap:anywhere}pre code{background:none;padding:0;font-size:inherit}.flow-example{display:flex;align-items:center;flex-direction:column;background:var(--surface);padding:24px 12px;border:1px solid var(--border);border-radius:8px;font-size:13px;gap:8px}.flow-example>span:not(.flow-arrow),.flow-example>div>span{background:var(--paper);border:1px solid var(--border);border-radius:6px;min-width:110px;text-align:center;padding:8px 15px}.flow-example>div{display:flex;gap:18px}.flow-arrow{color:var(--accent)}.flow-example small{font-size:10px;color:var(--muted);margin-top:14px}
.page-toc{align-self:start;position:sticky;top:76px;max-height:calc(100dvh - 76px);overflow-y:auto;padding:42px 0 20px;font-size:12px}.page-toc>p{font-weight:600;margin:0 0 16px}.page-toc nav{border-left:1px solid var(--border)}.page-toc nav a{display:block;color:var(--muted);padding:5px 0 5px 16px;line-height:1.7;border-left:2px solid transparent;margin-left:-1px}.page-toc a[aria-current=location]{color:var(--accent);border-left-color:var(--accent)}.toc-help{margin-top:40px;padding-top:20px;border-top:1px solid var(--border)}.toc-help strong{display:block;font-size:12px;margin-bottom:9px}.mobile-toc{display:none}.page-navigation{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:52px;padding-top:24px;border-top:1px solid var(--border)}.page-navigation a{border:1px solid var(--border);border-radius:8px;padding:14px 18px;font-size:13px;color:var(--text)}.page-navigation a:hover{border-color:var(--accent);text-decoration:none}.page-navigation a small{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}.page-navigation .next{text-align:right;grid-column:2}.article-footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted);margin-top:32px}.article-footer a{color:var(--muted)}
dialog{color:var(--text);background:var(--paper);width:min(620px,calc(100vw - 32px));max-height:80dvh;border:1px solid var(--border);border-radius:12px;padding:0;box-shadow:var(--shadow);overflow:auto;margin:10dvh auto}dialog::backdrop{background:#141c3159;backdrop-filter:blur(3px)}.search-heading{display:flex;align-items:center;justify-content:space-between;margin:0;padding:16px 20px 0}.search-heading h2{font-size:14px;margin:0}.search-heading button{font-size:11px;border:1px solid var(--border);border-radius:4px;padding:3px 8px;color:var(--muted)}.search-box{display:block;padding:14px 20px 0}.search-box input{width:100%;min-width:0;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:12px;font-size:15px}.search-box input:focus{outline:2px solid var(--accent);outline-offset:1px}#search-status{font-size:12px;color:var(--muted);margin:12px 20px}#search-results{padding:0 12px 12px;max-height:48dvh;overflow-y:auto}.search-result{display:block;padding:12px 10px;border-radius:6px;border:1px solid transparent;color:var(--text)}.search-result:hover,.search-result:focus{background:var(--soft);text-decoration:none}.search-result strong,.search-result span,.search-result small{display:block}.search-result small{color:var(--accent);font-size:10px;margin-bottom:3px}.search-result strong{font-size:14px}.search-result span{font-size:12px;line-height:1.8;color:var(--muted);margin-top:4px}.search-result mark{background:var(--soft);color:var(--accent);font-weight:600}.search-foot{border-top:1px solid var(--border);display:flex;justify-content:space-between;padding:10px 20px;font-size:10px;color:var(--muted);background:var(--surface)}.copy-status{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:8px 16px;border-radius:6px;font-size:12px;background:var(--text);color:var(--paper);box-shadow:var(--shadow);z-index:10;max-width:calc(100% - 32px);text-align:center}.copy-status:empty{display:none}
@media(min-width:901px){.doc-sidebar:not([open])>nav,.doc-sidebar:not([open])>.sidebar-foot{display:block}}
@media(max-width:1240px){.doc-layout{grid-template-columns:208px minmax(0,760px);gap:38px}.page-toc{display:none}.mobile-toc{display:block;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px 0;margin-bottom:28px;font-size:13px}.mobile-toc summary{color:var(--muted)}.mobile-toc a{display:block;font-size:12px;padding:5px 0}.doc-sidebar nav{padding-right:18px}}
@media(max-width:900px){.site-header{height:64px;padding:0 24px;gap:18px}.brand strong{font-size:18px}.search-trigger{margin-left:auto;width:auto;background:transparent;border:0;padding:9px}.search-trigger span,.search-trigger kbd{display:none}.header-actions{gap:12px}.doc-layout{display:block;padding:0 24px;max-width:790px}.doc-sidebar{position:relative;top:auto;max-height:none;height:auto;border-right:0;border-bottom:1px solid var(--border);padding:0;margin:0}.doc-sidebar>summary{display:flex;justify-content:space-between;align-items:center;padding:13px 0;font-size:12px;font-weight:550;list-style:none}.doc-sidebar>summary::-webkit-details-marker{display:none}.doc-sidebar[open]>summary{color:var(--accent)}.doc-sidebar[open] nav{padding:14px 0 6px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.nav-group{margin-bottom:12px}.sidebar-foot{display:none}main{padding:28px 0}.article-meta{margin-bottom:18px}.page-toc{display:none}article h2{scroll-margin-top:88px}.reading-meta{margin-bottom:26px}.page-navigation{margin-top:36px}}
@media(max-width:480px){.site-header{padding:0 18px;gap:10px}.brand{gap:8px}.brand-symbol{width:27px;height:27px;font-size:18px}.brand-divider{margin:0 5px}.brand-docs{font-size:14px}.brand strong{font-size:16px}.back-link{font-size:11px}.back-link span{display:none}.header-actions{gap:5px}.theme-toggle{width:27px;font-size:21px}.search-trigger{padding:6px}.doc-layout{padding:0 20px}body{font-size:14px}h1{font-size:29px}.lead{font-size:15px}article h2{font-size:20px;margin-top:34px}.intro-note{padding:18px}.intro-note p{font-size:15px}.link-grid{grid-template-columns:1fr}.link-grid a{padding:18px}.journey li{padding:16px 14px 16px 52px}.journey li:before{left:14px;top:18px}.page-navigation{gap:10px}.page-navigation a{font-size:12px;padding:12px}.doc-sidebar[open] nav{grid-template-columns:1fr}.flow-example>div{gap:10px}.flow-example>div>span{min-width:95px;padding:8px}.code-header{padding:8px 10px}pre{padding:14px;font-size:12px}.copy-page{font-size:11px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
@media print{.site-header,.doc-sidebar,.page-toc,.mobile-toc,.copy-page,.page-navigation,.copy-status,dialog,.heading-anchor,.code-header button{display:none!important}.doc-layout{display:block;padding:0}main{padding:0}body{background:white;color:black;font-size:11pt}a{color:inherit}pre,.code-block,.callout{break-inside:avoid}h2{break-after:avoid}}
