:root{--blue:#2563eb;--ink:#17243b;--muted:#66768e;--line:#e3e9f1;--soft:#f5f8fc;--sidebar:258px;font-family:Inter,"Segoe UI","Microsoft YaHei UI","Microsoft YaHei",sans-serif;color:var(--ink);font-size:16px;line-height:1.8;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:#fff}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button,a,input,select{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #80adff;outline-offset:3px}button{border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);padding:7px 13px}button:hover:not(:disabled){background:#edf4ff;border-color:#b4ccf5}svg{display:block}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-70px;left:20px;z-index:100;background:white;padding:10px 20px;border:2px solid var(--blue)}.skip-link:focus{top:8px}.topbar{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:32px;padding:0 34px;position:sticky;top:0;background:#fff;z-index:30}.brand{display:flex;gap:13px;align-items:center;color:var(--ink);flex-shrink:0}.brand:hover{text-decoration:none}.brand svg{width:25px;height:34px;color:#1874f5}.brand strong{font-size:28px;font-weight:750;letter-spacing:-1px}.brand span{border-left:1px solid #cfd8e5;margin-left:5px;padding-left:18px;color:#4c607d;font-size:17px}.search-trigger{display:flex;align-items:center;gap:12px;background:#f8fafc;color:var(--muted);max-width:640px;width:100%;margin:auto;font-size:14px;padding:9px 13px}.search-trigger svg,.search-dialog-top svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;flex-shrink:0}.search-trigger kbd{margin-left:auto;font-size:12px;white-space:nowrap}.header-log{font-size:14px;color:#52637c;white-space:nowrap}.menu-toggle{display:none}.layout{display:grid;grid-template-columns:var(--sidebar) minmax(0,900px) 190px;max-width:1560px;margin:auto;justify-content:center}.sidebar{position:sticky;top:78px;height:calc(100dvh - 78px);overflow:auto;background:#f7f9fc;border-right:1px solid var(--line);padding:22px 19px 30px;scrollbar-width:thin}.nav-group{margin-bottom:24px}.nav-group>p{font-weight:650;font-size:13px;color:#5c6d84;letter-spacing:.03em;margin:9px 12px}.nav-group a{display:block;font-size:14px;color:#475b77;border-radius:5px;padding:6px 12px;line-height:1.65;margin:2px 0}.nav-group a:hover{background:#edf2f8;text-decoration:none}.nav-group a[aria-current]{background:#e4efff;color:#1962d8;font-weight:600}.nav-group .nav-child{padding-left:27px;border-left:1px solid #d9e3f0;margin-left:12px;border-radius:0 5px 5px 0}.sidebar-note{font-size:12px;line-height:1.9;color:#7a879b;border-top:1px solid var(--line);padding:18px 12px 0}main{min-width:0;padding:38px 48px 24px;outline:none!important}.breadcrumb{font-size:13px;color:#73839a;display:flex;gap:12px;align-items:center;margin-bottom:17px}.breadcrumb a{color:inherit}h1{font-size:clamp(1.8rem,2.8vw,2.5rem);line-height:1.4;letter-spacing:-.035em;margin:0 0 15px;font-weight:750;color:#10213b}p{margin:12px 0}.lead{font-size:17px;color:#6a7c96;line-height:1.85;margin:0 0 24px}.metadata{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:24px 0 32px}.key-group{display:flex;gap:10px;align-items:center;margin-right:8px}kbd{display:inline-block;font-family:inherit;font-size:14px;padding:3px 11px;border:1px solid #ced9e8;background:#f8fafc;border-radius:5px;box-shadow:0 2px 0 #e8edf3;color:#354763}.key-plus{color:#718198;font-size:14px}.badge{font-size:12px;line-height:1.5;display:inline-block;border-radius:30px;padding:5px 11px;white-space:nowrap}.blue{background:#eaf3ff;color:#2364c9}.amber{background:#fff3d9;color:#98630b}.neutral{background:#f0f4f8;color:#536780}.article-body{border-top:1px solid var(--line);padding-top:4px}.article-body>section{margin:31px 0 39px;scroll-margin-top:104px}h2{font-size:21px;line-height:1.5;letter-spacing:-.025em;margin:0 0 15px;font-weight:680}h3{font-size:17px}ul{padding-left:24px}li{padding-left:3px;margin:8px 0;color:#41536b}code{background:#f1f5f9;font-family:Consolas,monospace;font-size:.9em;border-radius:4px;padding:2px 5px;overflow-wrap:anywhere}.heading-anchor{font-size:17px;font-weight:400;margin-left:10px;color:#8aa9d8;opacity:0}.article-body h2:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.steps{list-style:none;counter-reset:step;padding-left:0}.steps li{counter-increment:step;position:relative;padding-left:43px;min-height:32px;margin:14px 0}.steps li:before{content:counter(step);position:absolute;left:0;top:0;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#eaf2ff;color:var(--blue);font-size:14px}.callout{background:#f0f6ff;border:1px solid #d3e5ff;border-left:3px solid #77aafd;border-radius:6px;padding:16px 19px;margin:21px 0;color:#4b6487;font-size:14px}.callout strong{color:#2162cd}.callout p{margin:6px 0 0}.callout.warning{background:#fffaf0;border-color:#f4dfb7;color:#7c6441}.callout.warning strong{color:#91631f}.table-scroll{overflow-x:auto;margin:20px 0;max-width:100%;border:1px solid var(--line);border-radius:8px}table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.8}th{font-weight:600;background:#f6f8fb;color:#51647d;text-align:left}th,td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}td{color:#40516a}td:first-child{min-width:125px}td small{display:block;color:#7b8799;font-size:12px;margin-top:5px}.shortcut-table td:first-child{width:53%}.shortcut-table td:nth-child(2){min-width:145px}.filter-bar{display:flex;gap:14px;flex-wrap:wrap}.filter-bar label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:#5f718a;flex:1}.filter-bar label:first-child{flex:2;min-width:180px}input,select{border:1px solid #d5dfed;border-radius:6px;background:white;color:var(--ink);padding:9px 12px;min-width:0;width:100%;font-size:15px}#shortcut-count{font-size:13px;color:var(--muted)}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.entry-card{display:block;border:1px solid var(--line);border-radius:8px;padding:18px 20px;color:var(--ink)}.entry-card:hover{border-color:#8fb6f7;background:#f8fbff;text-decoration:none}.entry-card>span{font-size:16px;font-weight:600;display:flex;justify-content:space-between}.entry-card b{color:#77a1dc}.entry-card p{font-size:13px;color:#70829b;margin:8px 0 0;line-height:1.8}.toc{position:sticky;top:78px;height:fit-content;max-height:calc(100dvh - 78px);overflow:auto;padding:37px 14px 30px 23px;border-left:1px solid var(--line);font-size:13px}.toc>strong{font-size:14px;display:block;margin-bottom:16px}.toc>a{display:block;color:#76839a;border-left:2px solid transparent;padding:5px 0 5px 15px;margin:4px 0}.toc>a.active{border-color:var(--blue);color:var(--blue)}.toc-tip{margin-top:34px;padding-top:20px;border-top:1px solid var(--line);color:#7889a0;font-size:12px}.toc-tip button{padding:0;border:0;background:transparent;display:block;color:var(--blue);font-size:13px;margin-top:3px}.demo{border:1px solid #d8e3f1;border-radius:9px;background:#f9fbfe;overflow:hidden}.demo>header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px 19px 9px}.demo h2{margin:0;font-size:16px}.demo header span{font-size:12px;color:#8694a7}.demo-canvas{padding:5px 18px 0;overflow:auto}.demo svg{width:100%;height:auto;min-width:500px;font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;fill:#334760}.demo svg text{user-select:text}.demo-caption{padding:0 19px;font-size:14px;min-height:58px}.demo-caption p{display:flex;gap:13px;align-items:baseline;color:#566c89;line-height:1.7}.demo-caption span{color:#2563eb;white-space:nowrap;font-size:12px;font-weight:600}.demo-controls{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding:12px 18px;flex-wrap:wrap}.demo-controls button{font-size:13px;padding:5px 10px}.demo-dots{display:flex;gap:4px;margin:auto}.demo-dots button{padding:3px 8px;border-color:transparent;color:#6c7d94;background:transparent}.demo-dots button[aria-pressed=true]{background:#e5efff;color:var(--blue)}.page-nav{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:22px;margin-top:42px}.page-nav a{padding:10px 16px;border:1px solid var(--line);border-radius:7px;color:#425a78;font-size:14px;max-width:48%}.page-nav a:last-child{text-align:right}.page-nav small{display:block;color:#8a99ad;font-size:12px}.page-nav a:hover{border-color:#a2c1f1;text-decoration:none}footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12px;color:#97a2b3;padding:28px 0 5px}.muted{color:var(--muted)}dialog{padding:0;border:1px solid #dbe4ef;border-radius:13px;width:min(660px,calc(100% - 28px));max-height:80dvh;box-shadow:0 22px 80px #1c355638;top:10vh;margin:0 auto;color:var(--ink);overflow:hidden}dialog::backdrop{background:#172b465c;backdrop-filter:blur(3px)}.search-dialog-top{display:flex;align-items:center;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line);color:#72829a}.search-dialog-top input{border:0;outline:none;padding:8px;font-size:16px}.search-dialog-top button{font-size:12px;padding:3px 8px}.search-results{max-height:52dvh;overflow:auto;padding:10px}.search-result{display:block;padding:12px 16px;border-radius:7px;color:var(--ink);border:1px solid transparent}.search-result:hover,.search-result.selected{background:#edf4ff;border-color:#d4e5ff;text-decoration:none}.search-result strong{font-size:15px}.search-result small{font-size:12px;color:#7d8da4;margin-left:10px}.search-result p{font-size:13px;color:#73839a;margin:3px 0;line-height:1.7}.search-status,.search-help{font-size:12px;color:#7a8ba2;margin:0;padding:8px 18px}.search-help{border-top:1px solid var(--line);background:#fafbfd}.nav-backdrop{display:none}@media(min-width:1550px){.layout{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:1180px){:root{--sidebar:228px}.layout{grid-template-columns:var(--sidebar) minmax(0,1fr)}.toc{display:none}main{padding:32px 38px}.topbar{gap:25px;padding:0 24px}.brand span{font-size:15px}.header-log{display:none}}@media(max-width:760px){.topbar{height:66px;gap:12px;padding:0 17px}.brand strong{font-size:25px}.brand span{font-size:14px;padding-left:11px;margin-left:0}.brand svg{width:19px}.brand{gap:8px}.search-trigger{width:auto;margin-left:auto;margin-right:0;padding:9px}.search-trigger span,.search-trigger kbd{display:none}.menu-toggle{display:block;font-size:13px;padding:7px 9px}.layout{display:block}.sidebar{display:none;position:fixed;top:66px;left:0;width:min(310px,85vw);height:calc(100dvh - 66px);z-index:40;box-shadow:12px 0 40px #20334a20}.nav-open .sidebar{display:block}.nav-open .nav-backdrop{display:block;position:fixed;inset:66px 0 0;background:#1c304655;z-index:35;border:0;border-radius:0}.nav-open{overflow:hidden}main{padding:26px 21px 16px}h1{font-size:28px}.lead{font-size:16px}h2{font-size:20px}.article-body>section{scroll-margin-top:86px}.breadcrumb{font-size:12px}.entry-grid{grid-template-columns:1fr}.entry-card{padding:15px 17px}.demo>header{align-items:flex-start;padding:12px;flex-direction:column}.demo-canvas{padding:0 10px}.demo-caption{padding:0 12px;min-height:76px}.demo-controls{padding:10px;gap:6px}.demo-controls button{font-size:12px}.demo-dots{margin:0 auto}.demo-controls [data-action=play],.demo-controls [data-action=reset]{padding:5px 8px}th,td{padding:10px 12px}.metadata{gap:10px}.key-group{gap:7px}footer span{display:block}dialog{top:6vh}.search-help{display:none}}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.demo svg:not([hidden]){animation:appear .22s ease-out}@keyframes appear{from{opacity:.45}to{opacity:1}}}@media print{.topbar,.sidebar,.toc,.demo-controls,.page-nav,.search-trigger,.nav-backdrop{display:none!important}.layout{display:block}main{padding:0}.article-body{border:0}.demo-canvas{overflow:visible}.demo svg{min-width:0}body{font-size:12px}h1{font-size:26px}section{break-inside:avoid}a{color:inherit}footer{border-top:1px solid #ddd}}
