/* ByteMatrix 对外 API 开发者文档 —— 与 www/index.html 同一套色值与字体声明。
   本文件是手写静态资源，改样式不需要跑任何构建（正文由 tools/build-docs.mjs 预渲染）。 */
:root{
  --blue:#1677ff; --blue-hover:#0958d9; --blue-2:#bae0ff; --blue-bg:#e8f2ff;
  --text:#1f1f1f; --text-2:#4d4d4d; --text-3:#6b6b6b;
  --hairline:#f0f0f0; --hairline-strong:#e6e6e6;
  --page-bg:#f5f5f5; --content-bg:#ffffff; --radius:8px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--content-bg); color:var(--text);
  font-family:"Source Han Sans SC","思源黑体",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased;
}
a{color:var(--blue); text-decoration:none}
a:hover{color:var(--blue-hover)}
:focus-visible{outline:2px solid var(--blue); outline-offset:2px; border-radius:4px}
.skip{position:absolute; left:-9999px}
.skip:focus{left:12px; top:12px; z-index:99; background:#fff; padding:8px 12px; border:1px solid var(--hairline-strong); border-radius:6px}

/* 顶栏 */
header{position:sticky; top:0; z-index:20; background:rgba(255,255,255,.94); border-bottom:1px solid var(--hairline)}
.bar{max-width:1180px; margin:0 auto; padding:0 24px; height:64px; display:flex; align-items:center; gap:14px}
.brand{display:flex; align-items:center; gap:10px; color:var(--text); font-weight:600; font-size:17px; letter-spacing:.2px}
.brand svg{display:block}
.brand em{font-style:normal; font-weight:500; color:var(--text-3); font-size:14px; letter-spacing:1.2px; margin-left:2px}
.crumb{color:var(--text-3); font-size:14px}
.crumb::before{content:"/"; margin-right:14px; color:var(--hairline-strong)}
.ver{margin-left:auto; font-size:12.5px; color:var(--text-3); background:var(--page-bg); border-radius:4px; padding:2px 8px; white-space:nowrap; font-variant-numeric:tabular-nums}

/* 两栏布局 */
.layout{max-width:1180px; margin:0 auto; padding:32px 24px 72px; display:grid; grid-template-columns:260px minmax(0,1fr); gap:48px; align-items:start}
.side{position:sticky; top:88px; max-height:calc(100vh - 112px); overflow:auto; padding-right:4px}
.side-title{font-size:12px; letter-spacing:.08em; color:var(--text-3); padding:0 10px 8px}
.main{min-width:0}
.m-nav{display:none; border:1px solid var(--hairline-strong); border-radius:var(--radius); padding:8px 12px; margin-bottom:20px}
.m-nav summary{cursor:pointer; font-weight:600; font-size:14px; color:var(--text)}
.m-nav[open] summary{margin-bottom:6px}

/* 目录树：一级手风琴（同时只展开一个），更深层独立展开 */
.nav{font-size:14px; line-height:1.5}
.grp{margin:1px 0}
.grp-head{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:none; border:0; margin:0; padding:8px 10px; border-radius:6px;
  font:inherit; font-weight:600; color:var(--text); text-align:left; cursor:pointer;
  transition:background-color .15s ease;
}
.grp-head:hover{background:var(--page-bg)}
.chev{width:7px; height:7px; flex:none; margin-right:3px; border-right:1.6px solid var(--text-3); border-bottom:1.6px solid var(--text-3); transform:rotate(-45deg); transition:transform .15s ease}
.grp-head[aria-expanded="true"] .chev{transform:rotate(45deg)}
.grp-body{padding:2px 0 4px}
.grp .grp{margin-left:2px}
.grp .grp .grp-head{font-weight:500; color:var(--text-2); font-size:13.5px}
.doc-link{display:block; padding:7px 10px 7px 20px; border-radius:6px; color:var(--text-2); border-left:2px solid transparent}
.grp .grp .doc-link{padding-left:30px}
.doc-link:hover{background:var(--page-bg); color:var(--text)}
.doc-link[aria-current="page"]{background:var(--blue-bg); color:var(--blue-hover); border-left-color:var(--blue); font-weight:500}

/* 正文 */
.doc{max-width:860px; font-size:15.5px; color:var(--text-2)}
.doc-title{margin:0 0 8px; font-size:28px; line-height:1.3; font-weight:600; color:var(--text); letter-spacing:-.3px}
.doc-endpoint{margin:0 0 20px}
.doc-endpoint code{font-size:13.5px; padding:3px 9px; border-radius:4px; background:var(--blue-bg); color:var(--blue-hover)}
/* 本页目录（小节多时由外壳折叠，避免把正文挤出首屏） */
.doc-toc{margin:0 0 26px; padding:12px 16px; background:var(--page-bg); border:1px solid var(--hairline-strong); border-radius:var(--radius)}
.doc-toc-title{font-size:12.5px; color:var(--text-3); letter-spacing:.04em; cursor:pointer}
.doc-toc[open] .doc-toc-title{margin-bottom:8px}
.doc-toc ul{list-style:none; margin:0; padding:0}
.doc-toc li{margin:0}
.doc-toc a{display:block; padding:3px 0; font-size:14px; color:var(--text-2)}
.doc-toc a:hover{color:var(--blue)}
.doc-toc a[aria-current="true"]{color:var(--blue-hover); font-weight:500}
.doc-toc .lvl-3 a{padding-left:18px; font-size:13.5px; color:var(--text-3)}
.doc h2,.doc h3{scroll-margin-top:84px}
.doc h2{margin:32px 0 12px; font-size:21px; line-height:1.4; font-weight:600; color:var(--text); letter-spacing:-.2px}
.doc h2:first-child{margin-top:6px}
.doc h3{margin:26px 0 10px; font-size:17px; font-weight:600; color:var(--text)}
.doc h4{margin:20px 0 8px; font-size:15.5px; font-weight:600; color:var(--text)}
.doc p{margin:12px 0}
.doc ul,.doc ol{margin:12px 0; padding-left:22px}
.doc li{margin:5px 0}
.doc li > p{margin:6px 0}
.doc strong{color:var(--text); font-weight:600}
.doc a{text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--blue-2)}
.doc a:hover{text-decoration-color:var(--blue)}
.doc hr{margin:28px 0; border:0; border-top:1px solid var(--hairline)}
.doc blockquote{margin:16px 0; padding:2px 16px; border-left:3px solid var(--blue-2); color:var(--text-3)}
.doc code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace; font-size:13px; background:#f4f5f7; border-radius:4px; padding:1.5px 5px; color:#2b2b2b}
.doc pre{margin:14px 0; padding:14px 16px; background:#f7f8fa; border:1px solid var(--hairline-strong); border-radius:var(--radius); overflow-x:auto; line-height:1.6}
.doc pre code{background:none; padding:0; font-size:13px; color:#24292f; white-space:pre}
.doc table{display:block; width:100%; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:16px 0; font-size:14px}
.doc th,.doc td{border:1px solid var(--hairline-strong); padding:8px 12px; text-align:left; vertical-align:top}
.doc th{background:#fafbfc; color:var(--text); font-weight:600; white-space:nowrap}
.doc tbody tr:nth-child(even){background:#fcfcfd}
.loading,.notfound{color:var(--text-3); font-size:15px}
.notfound h2{color:var(--text)}

/* 页脚 */
.doc-foot{max-width:860px; margin-top:48px; padding-top:16px; border-top:1px solid var(--hairline);
  display:flex; flex-wrap:wrap; gap:8px 20px; font-size:13px; color:var(--text-3)}
.doc-foot a{color:var(--text-3)}
.doc-foot a:hover{color:var(--blue)}

@media (max-width:992px){
  .layout{grid-template-columns:1fr; gap:24px; padding-top:24px}
  .side{display:none}
  .m-nav{display:block}
}
@media (max-width:576px){
  .bar{padding:0 18px; height:56px; gap:10px}
  .brand{font-size:15px}
  .brand em{display:none}
  .crumb{font-size:13px}
  .ver{font-size:11.5px}
  .layout{padding:18px 18px 56px}
  .doc{font-size:15px}
  .doc h2{font-size:20px}
}
@media print{
  header,.side,.m-nav,.doc-foot,.doc-toc{display:none !important}
  .layout{display:block; padding:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .grp-head,.chev{transition:none}
}
