
:root{--ms_f:Verdana,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--ms_r:2px;--ms_fg:#ecf4f0;--ms_p2:#31c98f;--ms_bg:#0c1d16;--ms_g:1.2rem;--ms_pt:#61e59a;--ms_sf:#1a2e25;--ms_on:#09341c;--ms_w:1280px;--ms_bd:#2a463a;--ms_a:#3cf60e;color-scheme:dark;--ms_mu:#9cbaad;--ms_p:#2fca73;--ms_hf:Verdana,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.3rem}
body{font:15px/1.75 var(--ms_f);background:var(--ms_bg);color:var(--ms_fg);overflow-wrap:anywhere;margin:0}
a{color:var(--ms_pt);text-underline-offset:3px}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid var(--ms_pt);outline-offset:2px;border-radius:3px}
h2,h3,h1{line-height:1.3;font-family:var(--ms_hf);color:var(--ms_fg)}
.ms_skip{color:var(--ms_on);z-index:20;left:-999px;background:var(--ms_p);padding:.5rem .95rem;top:0;position:absolute}
.ms_skip:focus{left:.95rem}
.ms_bar{background:color-mix(in srgb,var(--ms_bg) 92%,transparent);border-bottom:1px solid var(--ms_bd);z-index:10;backdrop-filter:blur(8px);top:0;position:sticky}
.ms_bar_in{align-items:center;margin:0 auto;min-height:3.25rem;max-width:calc(var(--ms_w) + 160px);gap:.85rem;padding:.5rem .95rem;display:flex}
.ms_brand{text-decoration:none;white-space:nowrap;align-items:center;font-weight:700;color:var(--ms_fg);gap:.5rem;display:flex}
.ms_brand .ms_logo{flex:none;width:26px;height:26px}
.ms_path{align-items:center;min-width:0;padding-left:.85rem;gap:.4rem;font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ms_mu);border-left:1px solid var(--ms_bd);display:flex}
.ms_path span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms_path b{font-weight:500;color:var(--ms_fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms_bar_cta{text-decoration:none;color:var(--ms_on);flex:none;padding:.4rem .8rem;border-radius:var(--ms_r);font-weight:600;font-size:13px;background:var(--ms_p);margin-left:auto}
.ms_shell{margin:0 auto;gap:calc(var(--ms_g)*2.4);grid-template-columns:230px minmax(0,1fr) 210px;max-width:calc(var(--ms_w) + 160px);padding:0 .95rem;display:grid}
.ms_side{max-height:calc(100vh - 3.25rem);align-self:start;padding:1.5rem 0 1.9rem;top:3.25rem;font-size:14px;overflow:auto;position:sticky}
.ms_side>details>summary{display:none}
.ms_sidet{font-size:11px;letter-spacing:.12em;color:var(--ms_mu);margin:0 0 .55rem;text-transform:uppercase;font-family:var(--ms_f)}
.ms_tree,.ms_tree ul{padding:0;list-style:none;margin:0}
.ms_tree>li{margin-bottom:.15rem}
.ms_tree a{text-decoration:none;align-items:center;border-radius:var(--ms_r);color:var(--ms_fg);gap:.5rem;padding:.3rem .55rem;display:flex}
.ms_tree a:hover{background:color-mix(in srgb,var(--ms_p) 12%,transparent)}
.ms_tree svg{flex:none;width:15px;height:15px;stroke:var(--ms_mu)}
.ms_tree ul{margin:.15rem 0 .35rem 1rem;border-left:1px solid var(--ms_bd);padding-left:.65rem}
.ms_tree ul a{display:block;font-size:13px;color:var(--ms_mu);padding:.2rem .5rem}
.ms_side_meta{margin-top:1.35rem;border-top:1px dashed var(--ms_bd);font-size:12px;color:var(--ms_mu);padding-top:.95rem}
.ms_main{padding:1.7rem 0 2.85rem;min-width:0}
.ms_kicker{letter-spacing:.06em;font:12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;margin:0 0 .75rem;color:var(--ms_pt)}
.ms_main h1{margin:0 0 .65rem;letter-spacing:-.01em;font-size:clamp(1.55rem,1.15rem + 1.8vw,2.25rem)}
.ms_lead{margin:0 0 1.15rem;max-width:44em;color:var(--ms_mu);font-size:1rem}
.ms_meta{border-bottom:1px solid var(--ms_bd);gap:.4rem 1.15rem;flex-wrap:wrap;font-size:13px;color:var(--ms_mu);padding-bottom:1.15rem;margin-bottom:1.5rem;display:flex}
.ms_intro{margin-bottom:2.3rem;gap:1.15rem;align-items:stretch;grid-template-columns:minmax(0,1fr) 220px;display:grid}
.ms_onpage{border:1px solid var(--ms_bd);border-left:3px solid var(--ms_p);background:var(--ms_sf);border-radius:var(--ms_r);padding:.95rem 1.15rem}
.ms_onpage h2{margin:0 0 .5rem;font-size:14px}
.ms_onpage ol{columns:2;column-gap:1.5rem;font-size:14px;padding-left:1.25rem;margin:0}
.ms_onpage li{break-inside:avoid;padding:.1rem 0}
.ms_fig{margin:0;border:1px solid var(--ms_bd);border-radius:var(--ms_r);background:color-mix(in srgb,var(--ms_p) 7%,var(--ms_bg));display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.ms_fig .ms_decor{display:block;width:100%;height:auto}
.ms_fig figcaption{padding:.35rem .65rem;border-top:1px solid var(--ms_bd);font-size:12px;color:var(--ms_mu)}
.ms_sec{margin:0 0 2.65rem}
.ms_article h2,.ms_sec>h2{padding-bottom:.45rem;position:relative;margin:0 0 .85rem;border-bottom:1px solid var(--ms_bd);font-size:1.35rem}
.ms_hash{text-decoration:none;opacity:.0;transition:opacity .15s;font-weight:400;margin-left:.35rem;color:var(--ms_p)}
h2:hover .ms_hash,.ms_hash:focus{opacity:1}
.ms_sub{font-size:14px;color:var(--ms_mu);margin:-.4rem 0 .95rem}
.ms_dl{list-style:none;margin:0;padding:0;border:1px solid var(--ms_bd);border-radius:var(--ms_r);overflow:hidden}
.ms_dl li+li{border-top:1px solid var(--ms_bd)}
.ms_dl a{text-decoration:none;gap:.75rem;align-items:center;background:var(--ms_sf);padding:.7rem .95rem;color:var(--ms_fg);grid-template-columns:2.1rem minmax(0,1fr) auto;display:grid}
.ms_dl a:hover{background:color-mix(in srgb,var(--ms_p) 10%,var(--ms_sf))}
.ms_dl svg{width:22px;height:22px;stroke:var(--ms_pt)}
.ms_dl b{display:block;font-weight:600}
.ms_dl small{color:var(--ms_mu);font-size:12.5px}
.ms_dl em{color:var(--ms_on);border-radius:999px;font-weight:600;font-size:12px;background:var(--ms_p);padding:.2rem .6rem;font-style:normal}
.ms_article{margin:0 0 2.65rem}
.ms_article h3{margin:1.5rem 0 .5rem;font-size:1.05rem}
.ms_article p{margin:0 0 .95rem}
.ms_article ul,.ms_article ol{margin:0 0 .95rem;padding-left:1.35rem}
.ms_article li{margin:.25rem 0}
.ms_callouts{gap:.75rem;display:grid}
.ms_note{--ms_c:var(--ms_p2);border:1px solid var(--ms_bd);border-left:4px solid var(--ms_c);background:color-mix(in srgb,var(--ms_c) 7%,var(--ms_bg));border-radius:var(--ms_r);padding:.8rem 1.05rem}
.ms_note.ms_pro{--ms_c:var(--ms_p)}
.ms_note.ms_con{--ms_c:var(--ms_a)}
.ms_verdict{letter-spacing:.04em;align-items:center;gap:.4rem;font-weight:700;font-size:12px;display:inline-flex;color:var(--ms_fg)}
.ms_verdict::before{color:var(--ms_on);border-radius:50%;height:1.1rem;place-items:center;display:inline-grid;content:"i";font:700 11px/1 Georgia,serif;width:1.1rem;background:var(--ms_c)}
.ms_note.ms_con .ms_verdict::before{content:"!"}
.ms_note.ms_pro .ms_verdict::before{content:"✓"}
.ms_note h3{margin:.3rem 0 .2rem;font-size:.95rem}
.ms_note p{font-size:14px;color:var(--ms_mu);margin:0}
.ms_steps_box{background:var(--ms_sf);border:1px solid var(--ms_bd);border-radius:var(--ms_r);padding:1.15rem 1.35rem}
.ms_stepset h3{margin:0 0 .95rem;font-size:1rem}
.ms_steps{padding:0;list-style:none;counter-reset:ms_n;margin:0}
.ms_steps li{position:relative;counter-increment:ms_n;padding:0 0 1.05rem 2.65rem}
.ms_steps li::before{content:counter(ms_n);color:var(--ms_on);height:1.8rem;border-radius:50%;place-items:center;font:700 13px/1 ui-monospace,Menlo,monospace;width:1.8rem;background:var(--ms_p);left:0;top:0;display:grid;position:absolute}
.ms_steps li::after{content:"";position:absolute;left:.85rem;top:2rem;bottom:.2rem;border-left:2px dotted var(--ms_bd)}
.ms_steps li:last-child{padding-bottom:0}
.ms_steps li:last-child::after{display:none}
.ms_steps strong,.ms_steps b{display:block;line-height:1.8rem}
.ms_steps p{font-size:14px;margin:.1rem 0 0;color:var(--ms_mu)}
.ms_gloss{border-top:1px solid var(--ms_bd);margin:0}
.ms_gloss div{border-bottom:1px solid var(--ms_bd);grid-template-columns:10em minmax(0,1fr);gap:.95rem;padding:.65rem 0;display:grid}
.ms_gloss dt{font:600 14px/1.6 ui-monospace,SFMono-Regular,Menlo,var(--ms_f);color:var(--ms_pt)}
.ms_gloss dd{font-size:14px;margin:0}
.ms_tablewrap{overflow-x:auto;border:1px solid var(--ms_bd);border-radius:var(--ms_r)}
.ms_compare{width:100%;border-collapse:collapse;font-size:14px;min-width:28.5rem}
.ms_compare caption{text-align:left;padding:.55rem .85rem;font-size:13px;caption-side:top;color:var(--ms_mu)}
.ms_compare th,.ms_compare td{text-align:left;vertical-align:top;border-top:1px solid var(--ms_bd);padding:.55rem .85rem}
.ms_compare thead th{background:var(--ms_sf);font-size:13px}
.ms_compare tbody th{font-weight:600}
.ms_faq details{border-bottom:1px solid var(--ms_bd)}
.ms_faq summary{padding:.7rem 0;gap:.55rem;list-style:none;font-weight:600;cursor:pointer;display:flex}
.ms_faq summary::-webkit-details-marker{display:none}
.ms_faq summary::before{font-family:ui-monospace,Menlo,monospace;width:.95rem;flex:none;content:"+";color:var(--ms_pt)}
.ms_faq details[open] summary::before{content:"−"}
.ms_faq details p{margin:0 0 .85rem 1.5rem;font-size:14px;color:var(--ms_mu)}
.ms_rel{grid-template-columns:repeat(auto-fill,minmax(11.4rem,1fr));gap:.5rem;display:grid}
.ms_rel a{display:block;padding:.5rem .75rem;border:1px solid var(--ms_bd);border-radius:var(--ms_r);text-decoration:none;font-size:14px;background:var(--ms_sf)}
.ms_rel a::before{content:"→ ";color:var(--ms_mu)}
.ms_rel a:hover{border-color:var(--ms_p)}
.ms_latest{margin:0 0 2.65rem}
.ms_latest h2{padding-bottom:.45rem;margin:0 0 .85rem;border-bottom:1px solid var(--ms_bd);font-size:1.35rem}
.ms_latest ul{padding:0;list-style:none;margin:0}
.ms_latest li{padding:.45rem 0;border-bottom:1px dashed var(--ms_bd)}
.ms_latest a{text-decoration:none}
.ms_pager{gap:.75rem;display:grid;margin-top:.95rem;grid-template-columns:1fr 1fr}
.ms_pager a{display:block;border:1px solid var(--ms_bd);border-radius:var(--ms_r);padding:.75rem .95rem;text-decoration:none;color:var(--ms_fg)}
.ms_pager a:hover{border-color:var(--ms_p)}
.ms_pager small{display:block;font-size:12px;color:var(--ms_mu)}
.ms_pager b{color:var(--ms_pt)}
.ms_pager a+a{text-align:right}
.ms_toc{max-height:calc(100vh - 3.25rem);align-self:start;top:3.25rem;font-size:13px;overflow:auto;position:sticky;padding:1.7rem 0 1.9rem}
.ms_toc h2{font-weight:600;font-size:12px;color:var(--ms_mu);margin:0 0 .55rem;font-family:var(--ms_f)}
.ms_toc ul{margin:0 0 1.5rem;padding:0;list-style:none;border-left:1px solid var(--ms_bd)}
.ms_toc li a{text-decoration:none;border-left:2px solid transparent;padding:.25rem 0 .25rem .75rem;display:block;line-height:1.45;margin-left:-1px;color:var(--ms_mu)}
.ms_toc li a:hover{color:var(--ms_fg)}
.ms_toc li a[aria-current]{color:var(--ms_pt);border-left-color:var(--ms_p);font-weight:600}
.ms_see a{padding:.2rem 0;display:block;font-size:13px}
.ms_foot{border-top:1px solid var(--ms_bd);background:var(--ms_sf);font-size:13px;color:var(--ms_mu)}
.ms_foot_in{margin:0 auto;justify-content:space-between;max-width:calc(var(--ms_w) + 160px);padding:1.15rem .95rem;flex-wrap:wrap;gap:.5rem 1.45rem;display:flex}
.ms_foot a{color:var(--ms_mu)}
@media (max-width:1180px){.ms_shell{grid-template-columns:210px minmax(0,1fr)}.ms_toc{max-height:none;padding:0 0 1.9rem;grid-column:2;position:static}#ms_toc_list,.ms_toc_h{display:none}}
@media (max-width:820px){
.ms_shell{flex-direction:column;display:flex}
.ms_main{order:1}.ms_toc{order:2}
.ms_side{padding:0 0 1.45rem;max-height:none;overflow:visible;order:3;position:static}
.ms_side>details{border:1px solid var(--ms_bd);border-radius:var(--ms_r);background:var(--ms_sf)}
.ms_side>details>summary{align-items:center;justify-content:space-between;list-style:none;padding:.55rem .85rem;font-weight:600;cursor:pointer;display:flex}
.ms_side>details>summary::-webkit-details-marker{display:none}
.ms_side>details>summary::after{content:"▾";color:var(--ms_mu)}
.ms_side>details[open]>summary::after{content:"▴"}
.ms_side>details>div{padding:0 .55rem .75rem}
.ms_sidet{display:none}
.ms_intro{grid-template-columns:1fr}
.ms_fig{max-width:280px}
.ms_path{display:none}
}
@media (max-width:520px){
.ms_onpage ol{columns:1}
.ms_gloss div{gap:.15rem;grid-template-columns:1fr}
.ms_pager{grid-template-columns:1fr}
.ms_pager a+a{text-align:left}
.ms_dl em{display:none}
.ms_steps_box{padding:.95rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.ms_bar_nav{gap:1.05rem;font-size:.85rem;margin-left:auto;display:flex}
.ms_bar_nav a{text-decoration:none;color:var(--ms_mu)}
.ms_bar_nav a:hover{color:var(--ms_pt)}
.ms_shell:not(:has(>.ms_toc)){grid-template-columns:240px minmax(0,1fr)}
.ms_foot_c{align-items:center;flex-direction:column;gap:.3rem;text-align:center}

.ms_article h2,.ms_sec>h2{padding-bottom:0;border-bottom:0}.ms_main h1{letter-spacing:-.02em}
.ms_ext{font-size:.8rem;color:var(--ms_mu);margin:.85rem 0 0}.ms_ext span{margin-right:.5rem;opacity:.8}.ms_ext a{color:var(--ms_mu)}
h1{text-wrap:balance}