
:root{--dp_pt:rgb(4 112 130);--dp_p:rgb(8 211 247);--dp_p2:rgb(8 168 231);--dp_fg:rgb(18 40 48);--dp_bg:rgb(238 249 251);--dp_mu:rgb(80 112 124);--dp_bd:rgb(216 235 238);--dp_on:rgb(9 46 52);--dp_sf:rgb(255 255 255);--dp_a:rgb(68 74 238)}
:root{--dp_f:"Segoe UI",Tahoma,"PingFang SC","Microsoft YaHei",sans-serif;--dp_w:1100px;--dp_hf:"Segoe UI",Tahoma,"PingFang SC","Microsoft YaHei",sans-serif;--dp_g:1rem;--dp_r:22px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:4.75rem;-webkit-text-size-adjust:100%}
body{background:var(--dp_bg);overflow-wrap:anywhere;margin:0;font:15px/1.75 var(--dp_f);color:var(--dp_fg)}
a{color:var(--dp_pt);text-underline-offset:3px}
button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--dp_pt);outline-offset:2px;border-radius:3px}
h3,h2,h1{font-family:var(--dp_hf);line-height:1.3;color:var(--dp_fg)}
.dp_skip{z-index:20;padding:.55rem 1.05rem;top:0;background:var(--dp_p);color:var(--dp_on);position:absolute;left:-999px}
.dp_skip:focus{left:1.05rem}
.dp_bar{z-index:10;top:0;position:sticky;backdrop-filter:blur(8px);background:color-mix(in srgb,var(--dp_bg) 92%,transparent);border-bottom:1px solid var(--dp_bd)}
.dp_bar_in{align-items:center;margin:0 auto;display:flex;min-height:3.55rem;padding:.6rem 1.05rem;max-width:calc(var(--dp_w) + 160px);gap:.95rem}
.dp_brand{gap:.6rem;font-weight:700;align-items:center;text-decoration:none;display:flex;white-space:nowrap;color:var(--dp_fg)}
.dp_brand .dp_logo{height:26px;flex:none;width:26px}
.dp_path{align-items:center;display:flex;padding-left:.95rem;border-left:1px solid var(--dp_bd);gap:.4rem;color:var(--dp_mu);font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-width:0}
.dp_path span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp_path b{font-weight:500;color:var(--dp_fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dp_bar_cta{padding:.4rem .9rem;margin-left:auto;font-weight:600;text-decoration:none;background:var(--dp_p);border-radius:var(--dp_r);color:var(--dp_on);flex:none;font-size:13px}
.dp_shell{display:grid;margin:0 auto;gap:calc(var(--dp_g)*2.4);padding:0 1.05rem;grid-template-columns:230px minmax(0,1fr) 210px;max-width:calc(var(--dp_w) + 160px)}
.dp_side{max-height:calc(100vh - 3.55rem);padding:1.7rem 0 2.1rem;position:sticky;top:3.55rem;align-self:start;font-size:14px;overflow:auto}
.dp_side>details>summary{display:none}
.dp_sidet{text-transform:uppercase;font-family:var(--dp_f);font-size:11px;color:var(--dp_mu);letter-spacing:.12em;margin:0 0 .65rem}
.dp_tree,.dp_tree ul{margin:0;padding:0;list-style:none}
.dp_tree>li{margin-bottom:.15rem}
.dp_tree a{padding:.35rem .65rem;gap:.55rem;align-items:center;text-decoration:none;display:flex;border-radius:var(--dp_r);color:var(--dp_fg)}
.dp_tree a:hover{background:color-mix(in srgb,var(--dp_p) 12%,transparent)}
.dp_tree svg{stroke:var(--dp_mu);height:15px;flex:none;width:15px}
.dp_tree ul{padding-left:.75rem;margin:.15rem 0 .35rem 1.1rem;border-left:1px solid var(--dp_bd)}
.dp_tree ul a{display:block;font-size:13px;padding:.25rem .55rem;color:var(--dp_mu)}
.dp_side_meta{padding-top:1.05rem;border-top:1px dashed var(--dp_bd);font-size:12px;color:var(--dp_mu);margin-top:1.45rem}
.dp_main{padding:1.9rem 0 3.15rem;min-width:0}
.dp_kicker{margin:0 0 .85rem;font:12px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:var(--dp_pt)}
.dp_main h1{font-size:clamp(1.75rem,1.25rem + 1.8vw,2.45rem);letter-spacing:-.01em;margin:0 0 .75rem}
.dp_lead{max-width:44em;margin:0 0 1.25rem;font-size:1.1rem;color:var(--dp_mu)}
.dp_meta{margin-bottom:1.7rem;display:flex;padding-bottom:1.25rem;border-bottom:1px solid var(--dp_bd);gap:.4rem 1.25rem;font-size:13px;flex-wrap:wrap;color:var(--dp_mu)}
.dp_intro{margin-bottom:2.5rem;display:grid;align-items:stretch;gap:1.25rem;grid-template-columns:minmax(0,1fr) 220px}
.dp_onpage{border:1px solid var(--dp_bd);border-left:3px solid var(--dp_p);background:var(--dp_sf);border-radius:var(--dp_r);padding:1.05rem 1.25rem}
.dp_onpage h2{margin:0 0 .55rem;font-size:14px}
.dp_onpage ol{margin:0;column-gap:1.7rem;padding-left:1.35rem;columns:2;font-size:14px}
.dp_onpage li{break-inside:avoid;padding:.15rem 0}
.dp_fig{margin:0;border:1px solid var(--dp_bd);border-radius:var(--dp_r);background:color-mix(in srgb,var(--dp_p) 7%,var(--dp_bg));display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.dp_fig .dp_decor{height:auto;width:100%;display:block}
.dp_fig figcaption{border-top:1px solid var(--dp_bd);padding:.35rem .75rem;font-size:12px;color:var(--dp_mu)}
.dp_sec{margin:0 0 2.95rem}
.dp_article h2,.dp_sec>h2{padding-bottom:.45rem;font-size:1.45rem;position:relative;margin:0 0 .95rem;border-bottom:1px solid var(--dp_bd)}
.dp_hash{font-weight:400;opacity:.0;text-decoration:none;color:var(--dp_p);margin-left:.35rem;transition:opacity .15s}
h2:hover .dp_hash,.dp_hash:focus{opacity:1}
.dp_sub{margin:-.4rem 0 1.05rem;font-size:14px;color:var(--dp_mu)}
.dp_dl{list-style:none;margin:0;padding:0;border:1px solid var(--dp_bd);border-radius:var(--dp_r);overflow:hidden}
.dp_dl li+li{border-top:1px solid var(--dp_bd)}
.dp_dl a{padding:.8rem 1.05rem;background:var(--dp_sf);align-items:center;display:grid;text-decoration:none;grid-template-columns:2.3rem minmax(0,1fr) auto;color:var(--dp_fg);gap:.85rem}
.dp_dl a:hover{background:color-mix(in srgb,var(--dp_p) 10%,var(--dp_sf))}
.dp_dl svg{stroke:var(--dp_pt);height:22px;width:22px}
.dp_dl b{font-weight:600;display:block}
.dp_dl small{font-size:12.5px;color:var(--dp_mu)}
.dp_dl em{font-weight:600;background:var(--dp_p);color:var(--dp_on);font-style:normal;border-radius:999px;font-size:12px;padding:.2rem .7rem}
.dp_article{margin:0 0 2.95rem}
.dp_article h3{margin:1.7rem 0 .55rem;font-size:1.15rem}
.dp_article p{margin:0 0 1.05rem}
.dp_article ul,.dp_article ol{padding-left:1.45rem;margin:0 0 1.05rem}
.dp_article li{margin:.25rem 0}
.dp_callouts{display:grid;gap:.85rem}
.dp_note{--dp_c:var(--dp_p2);border:1px solid var(--dp_bd);border-left:4px solid var(--dp_c);background:color-mix(in srgb,var(--dp_c) 7%,var(--dp_bg));border-radius:var(--dp_r);padding:.9rem 1.15rem}
.dp_note.dp_pro{--dp_c:var(--dp_p)}
.dp_note.dp_con{--dp_c:var(--dp_a)}
.dp_verdict{font-weight:700;align-items:center;letter-spacing:.04em;display:inline-flex;gap:.4rem;color:var(--dp_fg);font-size:12px}
.dp_verdict::before{content:"i";height:1.2rem;place-items:center;background:var(--dp_c);border-radius:50%;width:1.2rem;color:var(--dp_on);display:inline-grid;font:700 11px/1 Georgia,serif}
.dp_note.dp_con .dp_verdict::before{content:"!"}
.dp_note.dp_pro .dp_verdict::before{content:"✓"}
.dp_note h3{font-size:1.05rem;margin:.3rem 0 .2rem}
.dp_note p{margin:0;font-size:14px;color:var(--dp_mu)}
.dp_steps_box{background:var(--dp_sf);border:1px solid var(--dp_bd);border-radius:var(--dp_r);padding:1.25rem 1.45rem}
.dp_stepset h3{margin:0 0 1.05rem;font-size:1.1rem}
.dp_steps{margin:0;padding:0;list-style:none;counter-reset:dp_n}
.dp_steps li{position:relative;counter-increment:dp_n;padding:0 0 1.15rem 2.95rem}
.dp_steps li::before{place-items:center;content:counter(dp_n);font:700 13px/1 ui-monospace,Menlo,monospace;display:grid;border-radius:50%;top:0;background:var(--dp_p);height:2rem;color:var(--dp_on);left:0;width:2rem;position:absolute}
.dp_steps li::after{content:"";position:absolute;left:.95rem;top:2.2rem;bottom:.2rem;border-left:2px dotted var(--dp_bd)}
.dp_steps li:last-child{padding-bottom:0}
.dp_steps li:last-child::after{display:none}
.dp_steps strong,.dp_steps b{line-height:2rem;display:block}
.dp_steps p{margin:.1rem 0 0;font-size:14px;color:var(--dp_mu)}
.dp_gloss{border-top:1px solid var(--dp_bd);margin:0}
.dp_gloss div{display:grid;grid-template-columns:10em minmax(0,1fr);padding:.75rem 0;border-bottom:1px solid var(--dp_bd);gap:1.05rem}
.dp_gloss dt{font:600 14px/1.6 ui-monospace,SFMono-Regular,Menlo,var(--dp_f);color:var(--dp_pt)}
.dp_gloss dd{margin:0;font-size:14px}
.dp_tablewrap{overflow-x:auto;border:1px solid var(--dp_bd);border-radius:var(--dp_r)}
.dp_compare{width:100%;border-collapse:collapse;font-size:14px;min-width:31.5rem}
.dp_compare caption{padding:.65rem .95rem;caption-side:top;text-align:left;font-size:13px;color:var(--dp_mu)}
.dp_compare td,.dp_compare th{border-top:1px solid var(--dp_bd);padding:.65rem .95rem;vertical-align:top;text-align:left}
.dp_compare thead th{background:var(--dp_sf);font-size:13px}
.dp_compare tbody th{font-weight:600}
.dp_faq details{border-bottom:1px solid var(--dp_bd)}
.dp_faq summary{font-weight:600;padding:.8rem 0;display:flex;gap:.65rem;list-style:none;cursor:pointer}
.dp_faq summary::-webkit-details-marker{display:none}
.dp_faq summary::before{width:1.05rem;flex:none;content:"+";color:var(--dp_pt);font-family:ui-monospace,Menlo,monospace}
.dp_faq details[open] summary::before{content:"−"}
.dp_faq details p{margin:0 0 .95rem 1.7rem;font-size:14px;color:var(--dp_mu)}
.dp_rel{gap:.55rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(12.6rem,1fr))}
.dp_rel a{display:block;padding:.6rem .85rem;border:1px solid var(--dp_bd);border-radius:var(--dp_r);text-decoration:none;font-size:14px;background:var(--dp_sf)}
.dp_rel a::before{color:var(--dp_mu);content:"→ "}
.dp_rel a:hover{border-color:var(--dp_p)}
.dp_latest{margin:0 0 2.95rem}
.dp_latest h2{padding-bottom:.45rem;font-size:1.45rem;margin:0 0 .95rem;border-bottom:1px solid var(--dp_bd)}
.dp_latest ul{margin:0;padding:0;list-style:none}
.dp_latest li{border-bottom:1px dashed var(--dp_bd);padding:.45rem 0}
.dp_latest a{text-decoration:none}
.dp_pager{margin-top:1.05rem;grid-template-columns:1fr 1fr;display:grid;gap:.85rem}
.dp_pager a{display:block;border:1px solid var(--dp_bd);border-radius:var(--dp_r);padding:.85rem 1.05rem;text-decoration:none;color:var(--dp_fg)}
.dp_pager a:hover{border-color:var(--dp_p)}
.dp_pager small{display:block;font-size:12px;color:var(--dp_mu)}
.dp_pager b{color:var(--dp_pt)}
.dp_pager a+a{text-align:right}
.dp_toc{max-height:calc(100vh - 3.55rem);position:sticky;top:3.55rem;align-self:start;font-size:13px;padding:1.9rem 0 2.1rem;overflow:auto}
.dp_toc h2{font-weight:600;font-family:var(--dp_f);font-size:12px;color:var(--dp_mu);margin:0 0 .65rem}
.dp_toc ul{border-left:1px solid var(--dp_bd);padding:0;list-style:none;margin:0 0 1.7rem}
.dp_toc li a{padding:.25rem 0 .25rem .85rem;margin-left:-1px;text-decoration:none;display:block;border-left:2px solid transparent;line-height:1.45;color:var(--dp_mu)}
.dp_toc li a:hover{color:var(--dp_fg)}
.dp_toc li a[aria-current]{color:var(--dp_pt);border-left-color:var(--dp_p);font-weight:600}
.dp_see a{display:block;padding:.2rem 0;font-size:13px}
.dp_foot{background:var(--dp_sf);border-top:1px solid var(--dp_bd);font-size:13px;color:var(--dp_mu)}
.dp_foot_in{padding:1.25rem 1.05rem;margin:0 auto;display:flex;gap:.55rem 1.6rem;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--dp_w) + 160px)}
.dp_foot a{color:var(--dp_mu)}
@media (max-width:1180px){.dp_shell{grid-template-columns:210px minmax(0,1fr)}.dp_toc{position:static;padding:0 0 2.1rem;max-height:none;grid-column:2}.dp_toc_h,#dp_toc_list{display:none}}
@media (max-width:820px){
.dp_shell{display:flex;flex-direction:column}
.dp_main{order:1}.dp_toc{order:2}
.dp_side{position:static;padding:0 0 1.6rem;max-height:none;overflow:visible;order:3}
.dp_side>details{border:1px solid var(--dp_bd);border-radius:var(--dp_r);background:var(--dp_sf)}
.dp_side>details>summary{padding:.65rem .95rem;font-weight:600;align-items:center;display:flex;justify-content:space-between;list-style:none;cursor:pointer}
.dp_side>details>summary::-webkit-details-marker{display:none}
.dp_side>details>summary::after{content:"▾";color:var(--dp_mu)}
.dp_side>details[open]>summary::after{content:"▴"}
.dp_side>details>div{padding:0 .65rem .85rem}
.dp_sidet{display:none}
.dp_intro{grid-template-columns:1fr}
.dp_fig{max-width:280px}
.dp_path{display:none}
}
@media (max-width:520px){
.dp_onpage ol{columns:1}
.dp_gloss div{gap:.15rem;grid-template-columns:1fr}
.dp_pager{grid-template-columns:1fr}
.dp_pager a+a{text-align:left}
.dp_dl em{display:none}
.dp_steps_box{padding:1.05rem}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.dp_bar_nav{margin-left:auto;font-size:.95rem;display:flex;gap:1.15rem}
.dp_bar_nav a{text-decoration:none;color:var(--dp_mu)}
.dp_bar_nav a:hover{color:var(--dp_pt)}
.dp_shell:not(:has(>.dp_toc)){grid-template-columns:240px minmax(0,1fr)}
.dp_foot_c{gap:.3rem;align-items:center;text-align:center;flex-direction:column}
.dp_tree svg{display:none}.dp_tree a{padding-left:.4rem}
.dp_article h2,.dp_sec>h2{border-bottom:0;padding-bottom:0}.dp_main h1{letter-spacing:-.02em}
.dp_ext{font-size:.85rem;margin:.95rem 0 0;color:var(--dp_mu)}.dp_ext span{opacity:.8;margin-right:.55rem}.dp_ext a{color:var(--dp_mu)}
h1{text-wrap:balance}