@charset "UTF-8";
/* ============================================================
   《霸业API及函数手册》专用样式
   左：层级折叠树 / 右：上＝标题 + 数据戳，下＝一次只显示一条的条目详情。
   ≥1280 走 rail.css 的 .pane：中栏自己不滚，左右两列各在自己的框里滚，
   于是树钉在原地（作者 2026-10-20 的原话：「对准方块上下滑动时仅滑动折叠树内的内容」）。
   全篇只用 grid/flex/clamp() 和 main.css 的字号阶梯，没有任何手调像素高度。
   ============================================================ */

.api-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}

/* —— 左：层级折叠树 ——
   字号逐级降一档：一级 15（--fs-body）/ 二级 13（--fs-note）/ 三级 12（--fs-meta）。2026-10-21 作者嫌条目偏大，整条阶梯往下挪一档。
   三级写在二级之后，.t3 里的条目同时命中两条规则，按源序后者生效。
   一级是中文分组名 ⇒ 楷体；二三级是标识符 ⇒ 等宽，长名允许断行，所以不需要横向滚动条。 */
.api-tree{border:1px solid var(--line-strong);background:var(--paper-card);
  border-radius:var(--radius);padding:12px 12px 14px;
  font-family:var(--sans);line-height:1.65;color:var(--ink-2);min-width:0}
.api-tree .api-q{margin:0 0 10px;font-size:var(--fs-meta);letter-spacing:.1em;color:var(--ink-3)}
.api-tree .api-q label{display:block;margin-bottom:4px}
.api-tree input{display:block;width:100%;padding:6px 8px;border:1px solid var(--line-strong);
  border-radius:var(--radius);background:var(--paper-2);color:var(--ink);
  font-family:var(--sans);font-size:var(--fs-meta)}
.api-tree ul{list-style:none;margin:0;padding:0}
.api-tree .t1{margin-bottom:10px}
.api-tree .t1:last-child{margin-bottom:0}
/* 可展开行（作者 2026-10-21 口径）：加号挪到**行尾**，文字左缘与同级普通条目严格对齐；
   不用字重、不用更深颜色区分 ⇒ 字号字族字色与同级完全一致，只在文字**下方加一条下划线**当标记。 */
.api-tree summary,.api-tree .row{display:flex;align-items:baseline;gap:6px;cursor:pointer;min-width:0;
  letter-spacing:.01em;color:var(--ink-2);font-weight:400;padding:5px 6px;border-radius:var(--radius);overflow-wrap:anywhere;
  text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--line-strong)}
.api-tree summary::marker,.api-tree summary::-webkit-details-marker{display:none}
.api-tree summary::after{content:"+";flex:none;width:12px;text-align:center;color:var(--cinnabar);
  font-family:var(--sans);text-decoration:none}
.api-tree details[open]>summary::after{content:"−"}
.api-tree summary .n{text-decoration:none}
.api-tree summary:hover{background:var(--paper-card-hover);color:var(--cinnabar);text-decoration-color:var(--cinnabar)}
.api-tree .n{flex:none;margin-left:auto;font-family:var(--sans);font-size:var(--fs-meta);color:var(--ink-4);letter-spacing:.02em}
.api-tree .t2{margin:2px 0 0 6px;border-left:1px solid var(--line);padding-left:6px}
.api-tree .t3{margin:2px 0 0 8px;border-left:1px dashed var(--line);padding-left:6px}
.api-tree .t2>li,.api-tree .t3>li{padding:0}
.api-tree a{display:flex;align-items:baseline;gap:6px;padding:4px 6px;border-radius:var(--radius);
  min-width:0;color:var(--ink-2);overflow-wrap:anywhere}
.api-tree a:hover{background:var(--paper-card-hover);color:var(--cinnabar)}
.api-tree a.cur{background:var(--cinnabar-wash);color:var(--cinnabar);font-weight:600}
.api-tree .self>a{font-family:var(--sans);color:var(--ink-3)}
.api-tree li[hidden],.api-tree details[hidden]{display:none}
/* 逐级 -1（上面的 .t3 规则必须排在 .t2 之后，别调换顺序） */
.api-tree .t1>summary{font-family:var(--kai);font-size:var(--fs-body);letter-spacing:.06em;color:var(--ink)}
.api-tree .t2 summary,.api-tree .t2 a{font-family:var(--mono,"Consolas","Menlo","Courier New",monospace);
  font-size:var(--fs-note)}
.api-tree .t3 summary,.api-tree .t3 a{font-family:var(--mono,"Consolas","Menlo","Courier New",monospace);
  font-size:var(--fs-meta)}

/* —— 右：标题块 + 内容块（占比 = 标题块按内容高、内容块吃掉剩下的全部）—— */
.api-main{min-width:0;display:flex;flex-direction:column}
.api-head{flex:none;border:1px solid var(--line-strong);background:var(--paper-card);
  border-radius:var(--radius);padding:14px 18px 15px;margin-bottom:14px}
.api-head h1{font-family:var(--kai);font-weight:400;font-size:var(--fs-page);
  letter-spacing:.08em;line-height:1.45;color:var(--ink)}
.api-head .meta{font-family:var(--sans);font-size:var(--fs-meta);color:var(--ink-3);
  letter-spacing:.16em;margin-top:6px;display:flex;gap:14px;flex-wrap:wrap}
.api-body{min-width:0}
.api-body .api-item{border:1px solid var(--line-strong);background:var(--paper-card);
  border-radius:var(--radius);padding:20px 22px 22px}

.api-body h3{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 0 14px;
  font-family:var(--kai);font-weight:400;font-size:var(--fs-h3);letter-spacing:.06em;color:var(--ink)}
.api-body h3 .kind{flex:none;font-family:var(--sans);font-size:var(--fs-meta);letter-spacing:.12em;
  color:var(--cinnabar);border:1px solid currentColor;border-radius:var(--radius);padding:2px 6px}
.api-body h4{font-family:var(--kai);font-weight:400;font-size:var(--fs-h4);letter-spacing:.06em;
  margin:22px 0 8px;color:var(--ink-2)}
.api-body p{font-size:var(--fs-body);line-height:2;color:var(--ink-2);margin:0 0 12px}
.api-body p.no-indent{text-indent:0}
.api-body ul,.api-body ol{margin:6px 0 14px;padding-left:20px}
.api-body li{font-size:var(--fs-note);line-height:1.95;color:var(--ink-2)}
.api-body b{color:var(--ink)}
.api-body a{color:var(--cinnabar);border-bottom:1px solid rgba(163,34,25,.35)}
.api-body a:hover{border-color:var(--cinnabar)}
/* 上游没注释、由源码推断出来的说明，作者要逐条改错 ⇒ 标出来好找 */
.api-body .g{color:var(--cinnabar);border-bottom:1px dashed currentColor}
.api-body .table-wrap{margin:14px 0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius)}
.api-body table{width:100%;border-collapse:collapse;font-size:var(--fs-note)}
.api-body thead th{background:var(--paper-2);font-family:var(--sans);font-weight:500;font-size:var(--fs-meta);
  letter-spacing:.1em;color:var(--ink-3);text-align:left;padding:9px 14px;border-bottom:1px solid var(--line);
  /* 表头两字（类型 / 参数 / 返回值）在窄栏里会被按字断成竖排 ⇒ 一律锁单行，列宽自己让出来 */
  white-space:nowrap}
.api-body tbody td{padding:9px 14px;border-bottom:1px solid var(--line);color:var(--ink-2);
  line-height:1.85;vertical-align:top}
.api-body tbody tr:last-child td{border-bottom:0}
/* 标签列按字宽算（8.5em），不再写死 104px；表格也不设 min-width ⇒ 窄栏里不会挤出横向滚动条 */
.api-body tbody td:first-child{width:8.5em;flex:none;background:var(--paper-2);
  font-family:var(--sans);font-size:var(--fs-meta);letter-spacing:.06em;color:var(--ink-3)}
.api-body tbody tr:hover{background:var(--paper-card-hover)}
.api-body code{font-family:var(--mono,"Consolas","Menlo","Courier New",monospace);font-size:var(--fs-meta);
  background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:1px 5px;color:var(--ink)}
.api-body pre{margin:14px 0;padding:14px 16px;background:var(--paper-2);border:1px solid var(--line);
  border-radius:var(--radius);overflow-x:auto;
  font-family:var(--mono,"Consolas","Menlo","Courier New",monospace);font-size:var(--fs-meta);
  line-height:1.75;color:var(--ink-2)}
.api-body pre code{font:inherit;white-space:pre;background:none;border:0;padding:0}
/* 一格里的参数清单：名 / 类型 / 含义 */
.api-body ul.params{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.api-body ul.params li{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px;line-height:1.8}
.api-body ul.params .pn{font-family:var(--mono,"Consolas","Menlo","Courier New",monospace);
  font-size:var(--fs-meta);color:var(--cinnabar);font-weight:600}
.api-body ul.params .pt{font-family:var(--mono,"Consolas","Menlo","Courier New",monospace);
  font-size:var(--fs-meta);color:var(--ink-4)}
.api-body ul.params .pd{flex:1;min-width:12em;color:var(--ink-2)}

/* 无 JS：条目全部按顺序摊开，树只当目录用 */
html.js .api-body .api-item{display:none}
html.js .api-body .api-item.on{display:block}

@media screen and (min-width:900px){
  .api-layout{grid-template-columns:clamp(260px,26vw,320px) minmax(0,1fr);gap:20px;align-items:start}
}

/* 三栏外壳 + .pane：左右两列自己滚，方块不随页面动、也不越出显示界限。
   树列放宽到 280–400px（作者要求「向左放宽些」），标题块按内容高、内容块占余下全部。 */
@media screen and (min-width:1280px){
  .stage-body.pane .api-layout{flex:1;min-height:0;align-items:stretch;
    grid-template-columns:clamp(280px,23vw,400px) minmax(0,1fr);gap:clamp(16px,2vw,26px)}
  .stage-body.pane .api-tree{min-height:0;overflow-y:scroll;scrollbar-gutter:stable;
    overscroll-behavior:contain}
  .stage-body.pane .api-main{min-height:0}
  .stage-body.pane .api-body{flex:1;min-height:0;overflow-y:scroll;scrollbar-gutter:stable;
    overscroll-behavior:contain}
}
