
:root{--bg:#1e1e1e;--panel:#2a2a2a;--panel2:#262626;--line:rgba(255,255,255,.10);--txt:#f3f3f3;--dim:#c9c9c9;--mut:#9a9a9a;
  --acc:#6cb6ff;--acc2:#4CA9FF;--code:#161616;--code-txt:#e6edf3;--tip:#3ea4ec;--warn:#d29922;--note:#8c8c8c;
  /* 外框/侧栏颜色＝线上控制台（New API rc.44 打包后的 CSS）浏览器里实际算出来的值，2026-10-18 取自 api.foo */
  --frame:#1c1c1c;--sb-fg:#eee;--sb-hover:#2f2f2f;--sb-acc:oklch(.296 .0284 248.51);--sb-acc-fg:#c6e1ff;--mfg:#b7b7b7;--primary:lab(45.97 -4.86 -47.19);
  --sbw:256px;--hh:48px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace}
html.light{--bg:#ffffff;--panel:#ffffff;--panel2:#f5f5f5;--line:#e8e8e8;--txt:#0a0a0a;--dim:#3d3d3d;--mut:#6b6b6b;
  --acc:#0276ea;--acc2:#0e72bc;--code:#f6f8fa;--code-txt:#1f2328;--tip:#0e72bc;--warn:#9a6700;--note:#6b6b6b;
  --frame:#fcfcfc;--sb-fg:#0a0a0a;--sb-hover:#f5f5f5;--sb-acc:oklch(.963 .0169 243.71);--sb-acc-fg:#0276ea;--mfg:#606060;--primary:lab(63.96 -11.91 -45.57)}
*{box-sizing:border-box}
html{scroll-padding-top:72px}
body{margin:0;background:var(--frame);color:var(--txt);font-family:var(--font);font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline}
/* 顶栏（2026-10-18 改成控制台的样子：和左侧栏同一个外框色、没有分隔线、贴满整个宽度；左上角是收起侧栏的开关） */
.dh{position:sticky;top:0;z-index:50;height:var(--hh);background:var(--frame)}
.dh-in{height:100%;padding:0 12px;display:flex;align-items:center;gap:8px}
.dh-tg{width:32px!important;height:32px!important;border-radius:12.8px!important;color:var(--mfg)!important}
.dh-tg:hover{color:var(--txt)!important}
.dh-tg svg{width:18px!important;height:18px!important}
.dh-brand{display:flex;align-items:center;gap:10px;color:var(--txt);font-weight:600;font-size:14px;text-decoration:none!important}
.dh-logo{width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.dh-logo img{width:24px;height:24px}
.dh-nav{margin-left:auto;display:flex;gap:16px;margin-right:8px}
@media(min-width:1280px){.dh-nav{gap:24px}}
.dh-link{height:32px;display:flex;align-items:center;padding:0;font-size:14px;font-weight:500;color:var(--mfg);text-decoration:none!important;transition:color .15s}
.dh-link:hover{color:var(--primary)}
.dh-link.on{color:var(--txt)}
.dh-act{display:flex;align-items:center;gap:4px;margin-left:4px}
.dh-ic{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:16px;border:0;background:transparent;color:var(--txt);cursor:pointer;padding:0}
.dh-ic:hover{background:color-mix(in srgb,var(--txt) 7%,transparent)}
.dh-ic svg{width:19px;height:19px}
.dh-sun{display:none}html.light .dh-sun{display:flex}html.light .dh-moon{display:none}
.dh-login{margin-left:11px;height:32px;display:flex;align-items:center;padding:0 14px;border-radius:16px;font-size:12px;font-weight:500;color:#fff;background:#0e72bc;text-decoration:none!important}
html.light .dh-login{background:#3ea4ec}
/* 「语言对不上」提示条（2026-10-17） */
.lb{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 12px;padding:10px 52px 10px 16px;border-radius:22.4px 22.4px 0 0;
  background:color-mix(in srgb,var(--acc2) 12%,var(--bg));border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;color:var(--txt)}
.lb-a{font-weight:600}
.lb-x{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  border:0;border-radius:8px;background:transparent;color:var(--mut);cursor:pointer;padding:0}
.lb-x:hover{background:color-mix(in srgb,var(--txt) 8%,transparent);color:var(--txt)}
.lb-x svg{width:16px;height:16px}
.draft-bar{background:color-mix(in srgb,var(--warn) 18%,var(--bg));color:var(--txt);font-size:13px;text-align:center;padding:6px 12px;border-bottom:1px solid var(--line)}
/* 左侧栏 + 右边圆角面板（2026-10-18 照控制台：New API 的 inset 外框——顶栏、侧栏同一个外框色，内容放在一块大圆角面板里；
   页面仍是整页滚动，面板四周的外框和圆角由固定的 .frame-mask 画出来，滚动时也一直在） */
.wrap{display:grid;grid-template-columns:var(--sbw) minmax(0,1fr);gap:0}
.sb{position:sticky;top:var(--hh);z-index:35;align-self:start;height:calc(100vh - var(--hh));overflow:auto;padding:8px 8px 32px;background:var(--frame);scrollbar-width:thin}
.sb-home,.sb-item{display:flex;align-items:center;gap:8px;min-height:32px;padding:6px 8px;border-radius:12.8px;color:var(--sb-fg);font-size:14px;line-height:1.4;transition:background .15s}
.sb-home{font-weight:500;margin:0 0 4px}
.sb-home svg{width:16px;height:16px;flex:none}
.sb-group{padding:4px 0}
.sb-gt{height:32px;display:flex;align-items:center;padding:0 8px;margin:4px 0 0;font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:color-mix(in oklch,var(--mfg) 70%,transparent)}
.sb-item+.sb-item{margin-top:4px}
.sb-item:hover,.sb-home:hover{background:var(--sb-hover);text-decoration:none}
.sb-item.on,.sb-home.on{background:var(--sb-acc);color:var(--sb-acc-fg);font-weight:500}
.pane{position:relative;min-width:0;margin:8px 8px 8px 0;background:var(--bg);border-radius:22.4px;min-height:calc(100vh - var(--hh) - 16px);display:flex;flex-direction:column}
/* 正文和右侧目录是一组（宽屏 ≥1181 时连左侧栏一起三栏居中，见 CSS 末尾「宽屏时左侧栏也往中间靠」；窄于 1180 时目录藏起来，见下面的 @media） */
.pane-in{flex:1;display:grid;grid-template-columns:minmax(0,876px) 220px;justify-content:center}
.frame-mask{position:fixed;z-index:30;pointer-events:none;top:calc(var(--hh) + 8px);left:var(--sbw);right:8px;bottom:8px;border-radius:22.4px;
  box-shadow:0 1px 3px 0 rgb(0 0 0/.1),0 1px 2px -1px rgb(0 0 0/.1),0 0 0 100vmax var(--frame)}
@media(min-width:901px){html.sb-off .wrap{grid-template-columns:0 minmax(0,1fr)}html.sb-off .sb{visibility:hidden}
  html.sb-off .pane{margin-left:8px}html.sb-off .frame-mask{left:8px}}
.main{min-width:0;padding:32px 48px 64px}
.art{max-width:780px;margin:0 auto}
.crumbs{font-size:13px;color:var(--mut);margin-bottom:10px}.crumbs a{color:var(--mut)}
.art h1{font-size:32px;line-height:1.3;margin:0 0 10px;letter-spacing:-.01em}
.art-meta{font-size:13px;color:var(--mut);margin-bottom:24px}
.prose h2{font-size:22px;line-height:1.35;margin:40px 0 12px;padding-top:4px}
.prose h3{font-size:17px;margin:28px 0 8px}
.prose p,.prose li{color:var(--dim)}
.prose strong{color:var(--txt)}
.prose ul,.prose ol{padding-left:1.4em}
.prose li{margin:4px 0}
.prose code{font-family:var(--mono);font-size:.88em;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--txt)}
/* 正文里的长代码词（长环境变量名、长网址）在手机上换行，免得把整页撑宽、能左右拖（10-17）；表格里的照旧在表格内横向滚动 */
.prose :not(pre)>code{overflow-wrap:break-word}
.prose pre{position:relative;background:var(--code);border:1px solid var(--line);border-radius:10px;padding:14px 16px;overflow:auto;font-size:13px;line-height:1.6}
.prose pre code{background:none;border:0;padding:0;color:var(--code-txt);font-size:inherit}
.copy-btn{position:absolute;top:8px;right:8px;font-size:12px;padding:3px 9px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--dim);cursor:pointer;opacity:0;transition:opacity .15s}
.prose pre:hover .copy-btn,.copy-btn:focus{opacity:1}
.tbl-w{position:relative;margin:16px 0}
.tbl{overflow:auto}
.prose table{border-collapse:collapse;width:100%;font-size:14px}
.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}
.prose th{background:var(--panel2);color:var(--txt)}
.prose img{max-width:100%;border-radius:10px;border:1px solid var(--line)}
.callout{border:1px solid var(--line);border-left:3px solid var(--tip);background:color-mix(in srgb,var(--tip) 8%,transparent);border-radius:8px;padding:10px 14px;margin:16px 0}
.callout p{margin:6px 0}
.callout-warning{border-left-color:var(--warn);background:color-mix(in srgb,var(--warn) 9%,transparent)}
.callout-note{border-left-color:var(--note);background:color-mix(in srgb,var(--note) 8%,transparent)}
.faq{margin-top:40px}
.faq h2{font-size:22px}
.faq details{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:8px 0;background:var(--panel)}
.faq summary{cursor:pointer;font-weight:600;color:var(--txt);list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px}
.faq details p{color:var(--dim);margin:8px 0 2px}
.edit-note{font-size:13px;color:var(--mut);margin-top:32px}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.pn a{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--txt);text-decoration:none!important}
.pn a:hover{border-color:rgba(110,182,255,.4)}
.pn span{display:block;font-size:12px;color:var(--mut)}
.pn-next{text-align:right}
.toc{position:sticky;top:calc(var(--hh) + 8px);align-self:start;max-height:calc(100vh - var(--hh) - 16px);overflow:auto;padding:32px 20px 40px 8px;font-size:13px}
.toc-t{font-weight:600;color:var(--txt);margin-bottom:8px}
.toc a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;color:var(--mut);padding:3px 0 3px 10px;border-left:2px solid transparent;line-height:1.45}
.toc a:hover{color:var(--txt);text-decoration:none}
.toc a.on{color:var(--acc);border-left-color:var(--acc)}
.toc .toc-h3{padding-left:22px}
.df{border-top:1px solid var(--line);margin-top:24px}
.df-in{padding:18px 28px 20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--mut)}
.df-links{display:flex;gap:16px;flex-wrap:wrap}.df-links a{color:var(--mut)}
@media(max-width:1180px){:root{--sbw:240px}.pane-in{grid-template-columns:minmax(0,1fr)}.toc{display:none}}
@media(max-width:900px){.dh-nav{display:none}.dh-act{margin-left:auto}
  .wrap{display:block}.sb{display:none;position:fixed;top:var(--hh);left:0;right:0;bottom:0;height:auto;z-index:40;padding:12px 12px 40px}
  body.sb-open .sb{display:block}.main{padding:24px 18px 48px}.art h1{font-size:26px}
  body{background:var(--bg)}.pane{margin:0;border-radius:0;min-height:0}.frame-mask{display:none}.lb{border-radius:0}.df-in{padding:20px 18px}}
/* ===== 2026-10-17 界面优化 ===== */
/* 表格：右边/左边还有内容时显示渐隐，提示能左右滑 */
.tbl-w::before,.tbl-w::after{content:"";position:absolute;top:1px;bottom:1px;width:36px;pointer-events:none;opacity:0;transition:opacity .2s;z-index:1}
.tbl-w::before{left:0;background:linear-gradient(to right,var(--bg),transparent)}
.tbl-w::after{right:0;background:linear-gradient(to left,var(--bg),transparent)}
.tbl-w.l::before,.tbl-w.r::after{opacity:1}
/* 手机等没有鼠标的设备：复制按钮一直显示 */
@media (hover:none){.copy-btn{opacity:1}.prose pre{padding-top:34px}}
/* 代码块：左上角语言标签 + 上色（Pygments 类名）。text 类（程序输出、报错）不上色、不标 */
.prose pre[data-lang]{padding-top:32px}
.prose pre[data-lang]::before{content:attr(data-lang);position:absolute;top:8px;left:16px;font:600 11px/1 var(--font);letter-spacing:.04em;color:var(--mut)}
pre code .c,pre code .ch,pre code .cm,pre code .c1,pre code .cs,pre code .cp,pre code .cpf{color:#8b949e}
pre code .s,pre code .sa,pre code .sb,pre code .sc,pre code .dl,pre code .sd,pre code .s2,pre code .se,pre code .sh,pre code .si,pre code .sx,pre code .sr,pre code .s1,pre code .ss{color:#a5d6ff}
pre code .k,pre code .kd,pre code .kn,pre code .kp,pre code .kr,pre code .kt,pre code .ow{color:#ff7b72}
pre code .m,pre code .mb,pre code .mf,pre code .mh,pre code .mi,pre code .il,pre code .mo,pre code .kc{color:#79c0ff}
pre code .nb,pre code .bp,pre code .nf,pre code .fm,pre code .nc,pre code .nd{color:#d2a8ff}
pre code .nt,pre code .na{color:#7ee787}
pre code .nv,pre code .vc,pre code .vg,pre code .vi,pre code .vm{color:#ffa657}
html.light pre code .c,html.light pre code .ch,html.light pre code .cm,html.light pre code .c1,html.light pre code .cs,html.light pre code .cp,html.light pre code .cpf{color:#6e7781}
html.light pre code .s,html.light pre code .sa,html.light pre code .sb,html.light pre code .sc,html.light pre code .dl,html.light pre code .sd,html.light pre code .s2,html.light pre code .se,html.light pre code .sh,html.light pre code .si,html.light pre code .sx,html.light pre code .sr,html.light pre code .s1,html.light pre code .ss{color:#0a3069}
html.light pre code .k,html.light pre code .kd,html.light pre code .kn,html.light pre code .kp,html.light pre code .kr,html.light pre code .kt,html.light pre code .ow{color:#cf222e}
html.light pre code .m,html.light pre code .mb,html.light pre code .mf,html.light pre code .mh,html.light pre code .mi,html.light pre code .il,html.light pre code .mo,html.light pre code .kc{color:#0550ae}
html.light pre code .nb,html.light pre code .bp,html.light pre code .nf,html.light pre code .fm,html.light pre code .nc,html.light pre code .nd{color:#8250df}
html.light pre code .nt,html.light pre code .na{color:#116329}
html.light pre code .nv,html.light pre code .vc,html.light pre code .vg,html.light pre code .vi,html.light pre code .vm{color:#953800}
/* 开头摘要框（先说结论 / 最快的装法 / Short answer） */
.tldr{border:1px solid color-mix(in srgb,var(--acc2) 35%,var(--line));background:color-mix(in srgb,var(--acc2) 7%,transparent);border-radius:12px;padding:6px 18px;margin:8px 0 28px}
.tldr>p:first-child>strong:first-child{color:var(--acc)}
.tldr p{margin:10px 0}
.tldr ul,.tldr ol{margin:6px 0 10px}
.tldr .tbl-w{margin:10px 0}
/* 正文里的行内代码：点一下复制 */
.prose :not(pre)>code{cursor:pointer;transition:background-color .15s,border-color .15s;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.prose :not(pre)>code:hover{border-color:color-mix(in srgb,var(--acc2) 45%,var(--line));background:color-mix(in srgb,var(--acc2) 10%,var(--panel2))}
.prose a code{cursor:inherit}
.cp-tip{position:fixed;z-index:80;padding:4px 10px;border-radius:6px;font-size:12px;line-height:1.4;color:#fff;background:#0e72bc;box-shadow:0 4px 14px rgba(0,0,0,.25);pointer-events:none;transform:translate(-50%,-100%);opacity:0;transition:opacity .15s}
.cp-tip.on{opacity:1}
/* 小标题旁的链接图标：鼠标移到标题上才显示（手机上淡淡常显） */
.h-a{display:inline-flex;vertical-align:middle;margin-left:8px;color:var(--mut);opacity:0;transition:opacity .15s;text-decoration:none!important}
.h-a svg{width:16px;height:16px}
/* 10-18：标题最后一个词和图标包在一起不换行（生成时加 .h-nb），手机上图标不会单独掉到下一行 */
.h-nb{white-space:nowrap}
h2:hover .h-a,h3:hover .h-a,.h-a:focus{opacity:1}
.h-a:hover{color:var(--acc)}
@media (hover:none){.h-a{opacity:.45}}
/* 常见问题：右侧箭头 */
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.faq details[open] p{animation:faq-in .2s ease-out}
@keyframes faq-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.faq details:hover{border-color:color-mix(in srgb,var(--acc2) 30%,var(--line))}
/* 窄屏目录：右侧目录藏起来时，在标题下面显示可展开的「本页目录」 */
.toc-m{display:none;border:1px solid var(--line);border-radius:10px;background:var(--panel);margin:0 0 24px;font-size:14px}
.toc-m summary{cursor:pointer;padding:10px 14px;font-weight:600;color:var(--txt);list-style:none;display:flex;align-items:center;justify-content:space-between}
.toc-m summary::-webkit-details-marker{display:none}
.toc-m summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--mut);border-bottom:2px solid var(--mut);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.toc-m[open] summary::after{transform:rotate(-135deg) translateY(-3px)}
.toc-m nav{padding:2px 14px 12px;max-height:60vh;overflow:auto;border-top:1px solid var(--line)}
.toc-m a{display:block;color:var(--dim);padding:5px 0;line-height:1.45;text-decoration:none!important}
.toc-m a.toc-h3{padding-left:14px;color:var(--mut);font-size:13px}
.toc a code,.toc-m a code{font-family:var(--mono);font-size:.92em}
@media(max-width:1180px){.toc-m{display:block}}
/* 回到顶部 */
.to-top{position:fixed;right:20px;bottom:24px;z-index:45;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--txt);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s}
.to-top.on{opacity:1;visibility:visible;transform:none}
.to-top:hover{border-color:color-mix(in srgb,var(--acc2) 45%,var(--line));color:var(--acc)}
.to-top svg{width:20px;height:20px}
@media(max-width:900px){.to-top{right:14px;bottom:18px}}
/* ===== 站内搜索（Pagefind，2026-10-18） ===== */
.dh-search{display:flex;align-items:center;gap:8px;height:32px;width:208px;padding:0 5px 0 9px;margin-right:4px;border-radius:12.8px;border:1px solid var(--line);
  background:color-mix(in oklch,var(--sb-hover) 25%,transparent);color:var(--mfg);font:400 14px/1 var(--font);cursor:pointer;transition:background .15s,color .15s}
.dh-search .dh-kbd{margin-left:auto}
.dh-search:hover{background:var(--sb-acc);color:var(--txt)}
@media(min-width:1280px){.dh-search{width:256px}}
.dh-search svg{width:16px;height:16px;flex:none}
.dh-kbd,.sx-x kbd{font:500 11px/1 var(--font);padding:3px 5px;border-radius:5px;border:1px solid var(--line);color:var(--mut);background:var(--bg)}
.dh-login{white-space:nowrap}
/* 「找不到」页（2026-10-19）：两个按钮，主按钮同顶栏「登录」的蓝 */
.nf-act{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 8px}
.nf-btn{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 16px;border-radius:12px;font:inherit;font-size:14px;font-weight:500;color:var(--txt);background:transparent;border:1px solid var(--line);cursor:pointer;text-decoration:none!important}
.nf-btn svg{width:16px;height:16px}
.nf-btn:hover{border-color:rgba(110,182,255,.45)}
.nf-btn.nf-pri{color:#fff;background:#0e72bc;border-color:#0e72bc}
html.light .nf-btn.nf-pri{background:#0e72bc}
/* 「找不到」页的大 logo（2026-10-19 用户要求「关键时刻出场」）：一直东张西望在找（带问号），和顶栏小 logo 是同一个角色。
   高 64（一格 2 像素，只用 32 的整数倍）；图和动画在 _assets/docs.*.face.js 里，加载前先占好位置不跳动。
   表情切换的 CSS 由 logo_face.face_css 生成，接在本段 CSS 末尾 */
.nf-logo{display:block;width:214px;height:64px;margin:6px 0 22px;line-height:0;-webkit-user-select:none;user-select:none}
.nf-logo .nh-logo{display:block;width:214px;height:64px}
.nf-logo .nh-logo-light,html.light .nf-logo .nh-logo-dark{display:none}
html.light .nf-logo .nh-logo-light{display:block}
@media(max-width:420px){.dh-in{padding:0 12px;gap:4px}.dh-act .dh-ic,.dh-act .dh-search{width:34px}.dh-login{margin-left:6px;padding:0 12px}}
@media(max-width:900px){.dh-search{width:36px;height:36px;padding:0;margin-right:0;justify-content:center;border:0;background:transparent;color:var(--txt)}
  .dh-search-t,.dh-kbd{display:none}.dh-search svg{width:19px;height:19px}}
.sx{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:9vh 16px 16px}
.sx[hidden]{display:none}
.sx-panel{width:min(700px,100%);max-height:80vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.35);padding:14px 18px 10px}
.sx-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;font-weight:600;color:var(--txt)}
.sx-x{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--mut);font:500 13px/1 var(--font);cursor:pointer;padding:4px}
.sx-x:hover{color:var(--txt)}
@media(max-width:900px){.sx{padding:0}.sx-panel{width:100%;height:100%;max-height:none;border-radius:0;border:0}.sx-x kbd{display:none}}
/* 搜索框和结果 */
.sx-box{display:flex;align-items:center;gap:10px;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);transition:border-color .15s,box-shadow .15s}
.sx-box:focus-within{border-color:color-mix(in srgb,var(--acc2) 70%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--acc2) 18%,transparent)}
.sx-box svg{width:18px;height:18px;color:var(--mut);flex:none}
.sx-box input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--txt);font:16px/1.4 var(--font)}
.sx-box input::-webkit-search-cancel-button{cursor:pointer}
.sx-msg{font-size:13px;color:var(--mut);margin:12px 2px 4px;min-height:18px}
.sx-r{padding:12px 2px;border-top:1px solid var(--line)}
.sx-rt{display:block;font-weight:600;font-size:15px;color:var(--acc);text-decoration:none!important;margin-bottom:4px}
.sx-rs{display:block;padding:6px 10px;margin:4px 0 0;border-radius:8px;color:var(--dim);text-decoration:none!important;font-size:13px;line-height:1.6}
.sx-rs b{display:block;color:var(--txt);font-weight:600;font-size:13.5px}
.sx-rs:hover,.sx-rs:focus,.sx-rt:focus{background:color-mix(in srgb,var(--acc2) 10%,transparent);outline:none}
.sx-rt:focus{border-radius:6px}
.sx-re{margin:2px 0 0;color:var(--dim);font-size:13px;line-height:1.6}
#sxOut mark{background:color-mix(in srgb,var(--acc2) 28%,transparent);color:inherit;padding:0}
.sx-more{display:block;margin:10px auto 6px;padding:7px 16px;border-radius:16px;border:1px solid var(--line);background:transparent;color:var(--txt);font:500 13px/1 var(--font);cursor:pointer}
.sx-more:hover{border-color:color-mix(in srgb,var(--acc2) 45%,var(--line))}
/* ===== 2026-10-18 界面检查后的修正 ===== */
/* 没有右侧目录的页面（中英文文档首页）不留目录那一栏，正文居中 */
.pane-in.no-toc{grid-template-columns:minmax(0,1fr)}
/* 表格：4 个字以内的短格子不换行（生成时加 class="nw"）；手机上每列至少约 3 个字宽。两条一起，手机上不再被挤成一个字一行 */
.prose td.nw,.prose th.nw{white-space:nowrap}
@media(max-width:640px){.prose td,.prose th{min-width:4.6em}}
/* 已登录（New API 的登录标记 cookie，见 THEME_HEAD）：右上角「登录」换成「控制台」 */
.dh-l-con{display:none}html.signed .dh-l-con{display:flex}html.signed .dh-l-in{display:none}
/* 手机、平板上输入框用 16px：小于 16px 时 iPhone 一点输入框就把整页放大（价格计算器） */
@media (hover:none) and (pointer:coarse){.prose input:not([type=checkbox]):not([type=radio]),.prose select,.prose textarea{font-size:16px!important}}
/* 宽屏（≥1600）正文 780 → 840，正文+目录这一组跟着加宽（要放在 .art 的基础规则后面才生效） */
/* 宽屏时左侧栏也往中间靠（2026-10-18 晚，用户：左侧栏太靠左、它和正文之间空一大块看着不舒服，右边目录那样紧挨正文就好）：
   左侧栏 + 正文 + 目录三栏作为一组放在窗口中间，多出的空白平分到最左和最右；左侧栏到正文、正文到目录都是 56px。
   --grp＝这一组的宽度（侧栏 256 + 正文栏 876 + 目录栏 208）；收起左侧栏时正文+目录在面板里居中。文档首页（没有目录）也按同一位置放，换页不跳 */
@media(min-width:1181px){
  :root{--grp:1340px}
  .wrap{padding-left:max(0px,calc((100% - var(--grp)) / 2))}
  .frame-mask{left:calc(var(--sbw) + max(0px,calc((100% - var(--grp)) / 2)))}
  .pane-in,.pane-in.no-toc{grid-template-columns:minmax(0,876px) 208px;justify-content:start}
  .toc{padding-right:8px}
  html.sb-off .wrap{padding-left:0}html.sb-off .pane-in{justify-content:center}
}
@media(min-width:1600px){:root{--grp:1400px}.art{max-width:840px}.pane-in,.pane-in.no-toc{grid-template-columns:minmax(0,936px) 208px}}
.nf-logo .fx{display:none}
.nf-logo[data-face="normal"] .fx-normal,.nf-logo[data-face="blink"] .fx-blink,.nf-logo[data-face="happy"] .fx-happy,.nf-logo[data-face="search0"] .fx-search0,.nf-logo[data-face="search1"] .fx-search1,.nf-logo[data-face="search2"] .fx-search2,.nf-logo[data-face="search3"] .fx-search3,.nf-logo[data-face="sleep"] .fx-sleep,.nf-logo[data-face="dizzy0"] .fx-dizzy0,.nf-logo[data-face="dizzy1"] .fx-dizzy1,.nf-logo[data-face="dizzy2"] .fx-dizzy2,.nf-logo[data-face="dizzy3"] .fx-dizzy3,.nf-logo[data-face="error"] .fx-error,.nf-logo[data-face="center"] .fx-center,.nf-logo[data-face^="search"] .fx-q,.nf-logo[data-face="down"] .fx-search0,.nf-logo[data-face="up"] .fx-search1,.nf-logo[data-face="gul"] .fx-search1,.nf-logo[data-face="gdl"] .fx-search0,.nf-logo[data-face="gdr"] .fx-search3{display:inline}
.nf-logo[data-face="sleep"] .nh-cur{visibility:hidden}
@keyframes nf-shake{0%,100%{transform:translateX(0)}15%{transform:translateX(-3px)}35%{transform:translateX(3px)}55%{transform:translateX(-2.25px)}75%{transform:translateX(1.5px)}90%{transform:translateX(-0.75px)}}
.nf-logo[data-face="error"] .nh-logo{animation:nf-shake .35s ease-out}
