/* =========================================================================
   数据接口（Developers）两页的样式：api.html（开发者首页）/ api-docs.html（API 文档）
   来源是 05 阶段 T6「数据接口」模板的 style.css，适配进 06 站：
   - 所有规则都限定在 .dev（两页的根容器）里，不影响站内其他页面，也不碰全站页头 / 页脚 / 手机底部 tab；
   - 页面宽度用全站 .wrap（max 1440 + --pad），吸顶位置接在全站页头下面（--top-h）；
   - T6 自带的页头、手机抽屉、反白页脚、走秒时钟、语言 / 涨跌色 / 主题控件都已删除（由全站页头统一提供），
     T6 页头里的页内导航改成 .dnav 二级导航条；
   - 中英文字沿用 T6 的 CSS 机制（html[data-lang] + data-l），只作用于 .dev 内部；界面是俄 / 韩 / 土时显示英文。
   视觉（2026-10-16 改版，跟随 eq-base.css 的新配色）：
   - 页面底 --canvas，内容放在卡片上（--bg + 1px --line + --eq-radius-lg + 阴影）；全宽色带 .sec-band 用 --bg，与 --canvas 交替；
   - 主色与全站统一（eq-base.css 的 --ac / --eq-accent*，不单独配色）：主按钮、选中态、链接、焦点、栏目编号胶囊、「实时」能力标签；
     主色 → 压暗主色的 135° 渐变（--dev-grad）只用在 Hero 点缀、收尾 CTA 这几处大面积位置；
   - 状态：现网 = 绿色系浅底（成功语义，与涨跌色无关）；10-22 起接口都已上线，不再有「规划中」「示例」标记；
     频道用全站的分组识别色标签（style.css .tag[data-g]），来源用交易所图标（.xi）；
   - 终端 / 代码块：中性炭黑 --term-bg（只掺 3–6% 主色），语法高亮键名跟随主色，其余用低饱和的薄荷 / 珊瑚 / 紫 / 青，深底上均 ≥ 4.5:1；
     深色块里把涨跌色、分组色、状态色局部换成深底版本（见 1. 变量）；
   - 涨跌色只用于价格方向。所有文字在各自底色上 ≥ 4.5:1（--fg-3 遇到主色浅底时升一级为 --fg-2）。
   字体：--eq-font-display 标题与大数字 / --eq-font-sans 正文 / --eq-font-mono 时间、代码、标签。
   较新的 CSS：color-mix、text-wrap: balance / pretty、mask（终端底部渐隐），Chromium 117+。
   ========================================================================= */

/* ---------- 1. 变量 ---------- */
.dev {
  --dev-nav-h: 48px;                                   /* 二级导航条高度 */
  --dev-top: calc(var(--top-h) + var(--dev-nav-h));    /* 吸顶区总高：全站页头 + 二级导航（锚点落点、文档侧栏都按它） */
  --sec-band: var(--bg);                               /* 全宽色带：与页面底 --canvas 交替 */
  /* 主色渐变：主色 → 压暗 28% 的主色，越往后白字对比越高；深浅色主题共用（--ac 随主题切换） */
  --dev-grad: linear-gradient(135deg, var(--ac) 0%, color-mix(in srgb, var(--ac) 72%, #0B0E14) 100%);
  /* Hero 渐变字：主色文字 → 往正文色靠 40%（浅色主题变深、深色主题变亮），两端都不低于主色文字本身 */
  --dev-grad-text: linear-gradient(100deg, var(--ac-text) 10%, color-mix(in srgb, var(--ac-text) 60%, var(--fg)) 90%);
  --dev-glow: color-mix(in srgb, var(--ac) 9%, transparent);                   /* Hero / 文档页头的柔光 */
  --dev-glow-2: color-mix(in srgb, var(--ac-text) 5%, transparent);
  --ok-text: #12672F;                                  /* 「现网」：浅绿底上 6.03:1 */
  --ok-soft: color-mix(in srgb, var(--eq-green) 11%, var(--bg));
  /* 终端 / 代码块（浅色、深色主题共用）：炭黑，只掺一点主色 */
  --term-bg: color-mix(in srgb, var(--eq-accent-d) 3%, #0B0C0F);
  --term-bar: color-mix(in srgb, var(--eq-accent-d) 4%, #101216);   /* 栏头、payload 条、stdout、文档代码块 */
  --term-bg-2: color-mix(in srgb, var(--eq-accent-d) 6%, #15171B);  /* 悬停 / 选中 / 当前页签 */
  --term-hover: color-mix(in srgb, var(--eq-accent-d) 4%, #111317);
  --term-row: color-mix(in srgb, var(--eq-accent-d) 4%, #17191E);   /* 行分隔线 */
  --term-line: color-mix(in srgb, var(--eq-accent-d) 6%, #23262D);
  --term-line-2: color-mix(in srgb, var(--eq-accent-d) 10%, #363A43); /* 悬停描边、虚线芯片 */
  --term-chip: #24272E;           /* 字母图标底 */
  --term-scroll: #3A3E48;
  --term-fg: #E9EAEC;             /* 16:1 */
  --term-fg-2: #AFB3BA;           /* 9.2:1 */
  --term-fg-3: #8F949C;           /* 6.3:1，小字不低于此档（--term-bg-2 上 5.7:1） */
  --term-sh: 0 2px 6px rgba(16, 24, 40, .08), 0 28px 60px -22px color-mix(in srgb, var(--ac) 34%, transparent);
  /* 语法高亮（低饱和；键名跟随主色） */
  --sx-key: var(--eq-accent-d);          /* 键名 */
  --sx-str: #9FD3B5;              /* 字符串 11:1 */
  --sx-num: #F2B67A;              /* 数字 10:1 */
  --sx-kw: #C3A6FF;               /* 关键字、true / false / null 9:1 */
  --sx-fn: #7DCFFF;               /* 函数名、命令行选项 11:1 */
  --sx-com: #868B95;              /* 注释 5.1:1 */
  --fs-h1: 54px;
  --fs-h2: 36px;
  font-size: 15px; line-height: 1.7;
}
[data-theme="dark"] .dev {
  --dev-glow: color-mix(in srgb, var(--ac-text) 7%, transparent);
  --dev-glow-2: color-mix(in srgb, var(--ac-text) 4%, transparent);
  --ok-text: #56D364;
  --ok-soft: color-mix(in srgb, var(--eq-green-d) 14%, var(--bg));
  --term-sh: var(--sh-3);
}
/* 深色块：语义变量局部换成深底版本，块内的状态胶囊、涨跌、分组色、复制按钮沿用同一套规则 */
.dev .term, .dev .cat-insp, .dev .codewin, .dev .cblk, .dev .doc-hero-code, .dev .dsec-code {
  --ok-text: #56D364;
  --ok-soft: rgba(63, 185, 80, .16);
  --cg-main: var(--eq-accent-d); --cg-list: var(--eq-violet-d); --cg-mkt: var(--eq-cyan-d); --cg-feed: var(--eq-amber-d);
  --eq-up: var(--eq-green-d); --eq-down: var(--eq-red-d);
  color-scheme: dark;
}
[data-updown="cn"] .dev :is(.term, .cat-insp, .codewin, .cblk, .doc-hero-code, .dsec-code) { --eq-up: var(--eq-red-d); --eq-down: var(--eq-green-d); }

/* ---------- 2. 语言切换（纯 CSS）：html[data-lang] = zh | en（page-api.js 设置：界面中文 → zh，EN / 俄 / 韩 / 土 → en） ----------
 * data-l="zh"  中文；data-l="en" / "en1" 英文（10-22 起没有「双语」模式，两者等价，保留写法免得大改 HTML）
 */
html[data-lang="zh"] .dev [data-l^="en"],
html[data-lang="en"] .dev [data-l="zh"],
html:not([data-lang]) .dev [data-l^="en"] { display: none !important; }
.dev [data-l="en"], .dev [data-l="en1"] { text-autospace: normal; }

/* ---------- 3. 基础 ---------- */
.dev code, .dev pre, .dev .eq-mono { font-family: var(--eq-font-mono); }
.dev pre, .dev code, .dev .term, .dev .eq-mono { font-variant-ligatures: none; font-feature-settings: "calt" 0, "liga" 0; }
.dev code { font-size: .9em; }
.dev .nowrap { white-space: nowrap; }
.dev .sec-h, .dev .cta-h, .dev .doc-h1, .dev .dsec h2, .dev .ci-name { text-wrap: balance; }
.dev .hero-lead, .dev .sec-lead, .dev .fn, .dev .dsec-prose p, .dev .acc-d, .dev .ci-desc { text-wrap: pretty; }
.dev [id] { scroll-margin-top: var(--dev-top); }
.dev :focus-visible { outline: 2px solid var(--ac); outline-offset: 2px; }
/* 深色块里的焦点环用深底版主色；渐变底上用白色 */
.dev :is(.term, .cat-insp, .codewin, .cblk, .doc-hero-code, .dsec-code) :focus-visible { outline-color: var(--eq-accent-d); }
.dev .cta-card :focus-visible { outline-color: #FFFFFF; }

/* 状态胶囊：现网（绿色浅底 + 实心圆点）。10-22 起公开接口都已上线，不再有「规划中 / 示例」标记 */
.dev .st { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 8px 0 7px; border-radius: 999px;
  font: 600 12px/1 var(--eq-font-sans); white-space: nowrap; flex: none; }
.dev .st::before { content: ""; width: 6px; height: 6px; border-radius: 50%; flex: none; }
.dev .st-live { background: var(--ok-soft); color: var(--ok-text); }
.dev .st-live::before { background: currentColor; }

/* 能力标签：实时（主色浅底）/ 延迟 N s（中性浅底）——既是状态也是定价轴 */
.dev .cap { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: var(--eq-radius);
  font: 600 12px/1 var(--eq-font-mono); white-space: nowrap; background: var(--surface-3); color: var(--fg-2); }
.dev .cap-on { background: var(--ac-soft); color: var(--ac-text); }


/* 来源图标组（交易所 logo / 人物头像，T1.srcIcon）：重叠排列，每个图标单独带 title；--ring 跟随所在行的底色 */
.dev .xis { display: inline-flex; align-items: center; flex: none; padding-left: 4px; vertical-align: middle; --ring: var(--bg); }
.dev .xis-i { display: inline-flex; margin-left: -4px; border-radius: 50%; box-shadow: 0 0 0 1.5px var(--ring); }
.dev .xis img.xi { width: var(--xi, 16px); height: var(--xi, 16px); vertical-align: 0; }

/* 按钮：配色沿用全站 .btn / .btn-pri，这里只放大尺寸，另加渐变底上用的 .btn-inv */
.dev .btn { gap: 8px; height: 40px; padding: 0 16px; font: 600 14px/1 var(--eq-font-sans); transition: background .15s, color .15s, border-color .15s; }
.dev .btn-sec:hover { border-color: var(--ac-line); color: var(--ac-text); }
.dev .btn-inv { background: #FFFFFF; color: var(--eq-accent); border-color: #FFFFFF; box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .3); }
.dev .btn-inv:hover { background: color-mix(in srgb, var(--eq-accent) 8%, #FFFFFF); border-color: color-mix(in srgb, var(--eq-accent) 8%, #FFFFFF); }
.dev .btn-lg { height: 48px; padding: 0 22px; font-size: 15px; }
.dev .btn-block { width: 100%; }
.dev .btn .arr { transition: transform .15s; }
.dev .btn:hover .arr { transform: translateX(2px); }
.dev .link-arrow { font-size: 14px; font-weight: 600; color: var(--ac-text); border-bottom: 1px solid var(--ac-line); padding-bottom: 2px; white-space: nowrap; }
.dev .link-arrow:hover { border-bottom-color: currentColor; }
.dev .tool { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 1px solid var(--line-2); border-radius: var(--eq-radius);
  background: var(--bg); font: 500 12px/1 var(--eq-font-sans); color: var(--fg); white-space: nowrap; }
.dev .tool:hover { border-color: var(--ac-line); color: var(--ac-text); }

/* 复制按钮（浅底 / 深色块两种）；复制成功 = 绿色浅底 */
.dev .copy { flex: none; height: 30px; padding: 0 10px; font: 600 12px/1 var(--eq-font-sans); border: 1px solid var(--line-2); border-radius: var(--eq-radius);
  color: var(--fg); background: var(--bg); transition: background .15s, color .15s, border-color .15s; }
.dev .copy:hover { background: var(--surface-2); border-color: var(--ac-line); color: var(--ac-text); }
.dev .copy.is-done { background: var(--ok-soft); color: var(--ok-text); border-color: transparent; }
.dev .copy-dark { background: rgba(255, 255, 255, .04); color: var(--term-fg); border-color: var(--term-line); }
.dev .copy-dark:hover { background: var(--term-bg-2); color: var(--term-fg); border-color: var(--term-line-2); }

/* 脚注与正文里的站内链接 */
.dev .fn { margin-top: 18px; font-size: 13px; line-height: 1.75; color: var(--fg-3); max-width: 70em; }
.dev .fn a, .dev .dsec-prose a.in-a { color: var(--ac-text); text-decoration: underline; text-decoration-color: var(--ac-line); text-underline-offset: 3px; }
.dev .fn a:hover, .dev .dsec-prose a.in-a:hover { text-decoration-color: currentColor; }

/* ---------- 4. 二级导航（文档 / 数据产品 / 接入 + 右侧「复制 AI 提示词」；价格、登录、获取 API Key 10-22 删） ---------- */
.dev .dnav { position: sticky; top: var(--top-h); z-index: 25; background: var(--bg); border-bottom: 1px solid var(--line); }
.dev .dnav-in { display: flex; align-items: center; gap: 28px; height: var(--dev-nav-h); }
.dev .dnav-home { display: inline-flex; align-items: center; gap: 10px; flex: none; font-size: 14px; font-weight: 600; white-space: nowrap; }
.dev .dnav-home b { padding: 3px 7px; border-radius: 5px; background: var(--dev-grad); color: #FFFFFF; font: 700 12px/1.2 var(--eq-font-mono); letter-spacing: .06em; }
.dev .dnav-links { display: flex; align-items: stretch; gap: 22px; height: 100%; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.dev .dnav-links::-webkit-scrollbar { display: none; }
.dev .dnav-links a { display: flex; align-items: center; font-size: 14px; font-weight: 500; color: var(--fg-2); white-space: nowrap; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.dev .dnav-links a:hover { color: var(--fg); }
.dev .dnav-links a[aria-current="page"] { color: var(--ac-text); font-weight: 600; border-bottom-color: var(--ac); }
.dev .dnav-tools { display: flex; align-items: center; gap: 14px; margin-left: auto; flex: none; }
.dev .dnav-cta { height: 32px; padding: 0 12px; font-size: 13px; }

/* ---------- 5. Hero ---------- */
.dev .hero { padding: 52px 0 48px;
  background: radial-gradient(900px 440px at 86% -12%, var(--dev-glow), transparent 70%), radial-gradient(720px 380px at 6% -6%, var(--dev-glow-2), transparent 70%); }
.dev .hero-in { display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: 48px; align-items: start; }
.dev .hero-copy { padding-top: 8px; }
.dev .eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 0; font: 500 12px/1.6 var(--eq-font-mono); color: var(--fg-2); letter-spacing: .04em; }
.dev .eyebrow b { color: #FFFFFF; background: var(--dev-grad); padding: 3px 8px; margin-right: 10px; border-radius: 5px; font-weight: 700; }
.dev .eyebrow span + span::before { content: "·"; margin: 0 .55em; color: var(--fg-3); }
.dev .hero-h { margin-top: 26px; font: 600 var(--fs-h1)/1.28 var(--eq-font-display); letter-spacing: 0; }
.dev .hero-h .h-a, .dev .hero-h .h-b { display: block; }
/* 第二句用品牌渐变字（逐行克隆渐变，换行后每行都完整） */
.dev .hero-h .h-b { background: var(--dev-grad-text); -webkit-background-clip: text; background-clip: text; color: transparent;
  -webkit-box-decoration-break: clone; box-decoration-break: clone; }
@media (forced-colors: active) { .dev .hero-h .h-b { background: none; color: CanvasText; } }
.dev .hero-h [data-l="en"] .h-a, .dev .hero-h [data-l="en"] .h-b { display: inline; }
html[data-lang="en"] .dev .hero-h { font-size: 50px; line-height: 1.1; letter-spacing: -.02em; }
html[data-lang="en"] .dev .hero-h [data-l="en"] .h-a, html[data-lang="en"] .dev .hero-h [data-l="en"] .h-b { display: block; text-wrap: balance; }
.dev .hero-lead { margin-top: 22px; font-size: 16.5px; line-height: 1.85; color: var(--fg-2); max-width: 31em; }
.dev .hero-lead b { color: var(--fg); font-weight: 600; }
.dev .hero-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin-top: 30px; }
.dev .hero-cta .link-arrow { margin-left: 8px; }
.dev .try { margin-top: 36px; }
.dev .try-head { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 500; color: var(--fg-2); }
.dev .try-cmd { display: flex; align-items: center; gap: 8px; margin-top: 12px; border: 1px solid var(--line-2); border-radius: 10px; padding: 6px 6px 6px 14px;
  background: var(--bg); box-shadow: var(--sh-1); }
.dev .try-pre { flex: 1; min-width: 0; margin: 0; overflow-x: auto; font-size: 13.5px; line-height: 30px; white-space: pre; scrollbar-width: none; }
.dev .try-pre::-webkit-scrollbar { display: none; }
.dev .tk-p { color: var(--fg-3); user-select: none; }
.dev .try-note { margin-top: 10px; font-size: 13px; line-height: 1.7; color: var(--fg-3); }
.dev .try-note code { color: var(--fg); background: var(--surface-3); padding: 1px 5px; border-radius: 4px; }

/* ---------- 6. 终端（实时 JSON 流） ---------- */
.dev .term { --tcols: 74px 132px minmax(0, 1fr) 54px;
  display: flex; flex-direction: column; height: 632px; background: var(--term-bg); color: var(--term-fg);
  border: 1px solid var(--term-line); border-radius: var(--eq-radius-lg); box-shadow: var(--term-sh); overflow: hidden; font-family: var(--eq-font-mono); min-width: 0; }
.dev .term-bar { display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 12px 0 14px; background: var(--term-bar); border-bottom: 1px solid var(--term-line); font-size: 12px; flex: none; }
.dev .term-tag { background: var(--eq-accent-df); color: #FFFFFF; padding: 3px 7px; border-radius: 5px; font-weight: 700; letter-spacing: .06em; flex: none; }
.dev .term-url { color: var(--term-fg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; font-size: 12.5px; }
.dev .term-sp { flex: 1; }
.dev .term-live { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px; border-radius: 999px; background: var(--ok-soft); color: var(--ok-text);
  font-weight: 700; font-size: 11.5px; letter-spacing: .08em; flex: none; }
.dev .term-live .eq-live-dot { width: 6px; height: 6px; }
.dev .term.is-paused .term-live { background: transparent; color: var(--term-fg-2); outline: 1px dashed var(--term-fg-3); outline-offset: -1px; }
.dev .term.is-paused .term-live .eq-live-dot { animation: none; }
.dev .term-btn { height: 28px; padding: 0 10px; border: 1px solid var(--term-line); border-radius: var(--eq-radius); color: var(--term-fg); font: 600 12px/1 var(--eq-font-sans); flex: none; white-space: nowrap; }
.dev .term-btn:hover { background: var(--term-bg-2); border-color: var(--term-line-2); }
.dev .term-btn[aria-pressed="true"] { background: var(--eq-accent-df); color: #FFFFFF; border-color: var(--eq-accent-df); }
.dev .term-cols { display: grid; grid-template-columns: var(--tcols); gap: 12px; padding: 7px 14px; font: 500 12px/1.4 var(--eq-font-sans); color: var(--term-fg-3); border-bottom: 1px solid var(--term-line); flex: none; }
.dev .term-cols > span:last-child { text-align: right; }
.dev .term-list { flex: 1; min-height: 0; overflow: hidden; position: relative;
  -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 34px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 34px), transparent); }
.dev .tr { display: grid; grid-template-columns: var(--tcols); gap: 12px; align-items: baseline; padding: 7px 14px; border-bottom: 1px solid var(--term-row);
  font-size: 12.5px; line-height: 1.55; cursor: pointer; position: relative; }
.dev .tr:hover { background: var(--term-hover); }
.dev .tr:focus-visible { outline-offset: -2px; }
.dev .tr.is-sel { background: var(--term-bg-2); }
.dev .tr.is-sel::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px; background: var(--eq-accent-d); }
.dev .tr.eq-new { animation: dev-flash 2.4s var(--eq-ease); }
@keyframes dev-flash { from { background: color-mix(in srgb, var(--eq-accent-d) 18%, transparent); } to { background: transparent; } }
.dev .tr-t { color: var(--term-fg-2); font-variant-numeric: tabular-nums; white-space: nowrap; }
.dev .tr-t.is-fresh { color: var(--sx-num); font-weight: 700; }
/* 频道列：来源图标 + 频道 key（分组识别色，深底版本） */
.dev .tr-c { display: flex; align-items: center; gap: 7px; align-self: start; min-height: 20px; color: var(--term-fg-2); white-space: nowrap; min-width: 0; overflow: hidden; }
.dev .tr-c img.xi { width: 16px; height: 16px; vertical-align: 0; box-shadow: 0 0 0 1px rgba(255, 255, 255, .14); }
.dev .tr-c .xi-0, .dev .tr-c .xi-eq { background: var(--term-chip); color: var(--term-fg-2); box-shadow: none; }
.dev .tr-xi { display: inline-flex; flex: none; }
.dev .tr-ch { color: var(--tg); overflow: hidden; text-overflow: ellipsis; }
.dev .tr-m { font-family: var(--eq-font-sans); font-size: 13.5px; line-height: 1.55; color: var(--term-fg-2); min-width: 0; overflow-wrap: anywhere; }
.dev .tr-m b { color: var(--term-fg); font-weight: 600; font-family: var(--eq-font-mono); font-size: 12.5px; letter-spacing: .01em; }
.dev .tr-m .w { font-family: var(--eq-font-mono); font-size: 12px; color: var(--term-fg-3); }
.dev .tr-m .pct { font-family: var(--eq-font-mono); font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.dev .tr-l { text-align: right; color: var(--term-fg-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.dev .tr-hb { cursor: default; color: var(--term-fg-3); font-size: 12px; padding-top: 4px; padding-bottom: 4px; }
.dev .tr-hb:hover { background: transparent; }
.dev .tr-hb .tr-m { font-family: var(--eq-font-mono); font-size: 12px; color: var(--term-fg-3); }
.dev .term-json-bar { display: flex; align-items: center; gap: 10px; height: 32px; padding: 0 14px; font-size: 12px; color: var(--term-fg-3); border-top: 1px solid var(--term-line); background: var(--term-bar); flex: none; }
.dev .term-json-bar span:first-child { color: var(--sx-key); font-weight: 600; }
.dev .term-json { flex: none; height: 214px; margin: 0; padding: 12px 14px; overflow: auto; font-size: 12.5px; line-height: 1.62; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--term-fg); border-top: 1px solid var(--term-line);
  scrollbar-width: thin; scrollbar-color: var(--term-scroll) transparent; }
.dev .term-foot { display: flex; align-items: center; gap: 12px; height: 36px; padding: 0 14px; border-top: 1px solid var(--term-line); background: var(--term-bar); font-size: 12px; color: var(--term-fg-2); flex: none; white-space: nowrap; overflow: hidden; }
.dev .term-ok { display: inline-flex; align-items: center; gap: 6px; color: var(--ok-text); font-weight: 600; font-family: var(--eq-font-sans); }
.dev .term-ok i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; animation: eq-pulse 1.6s infinite; }
.dev .term.is-paused .term-ok { color: var(--term-fg-2); }
.dev .term.is-paused .term-ok i { animation: none; background: transparent; outline: 1px solid currentColor; }
.dev .term-fn { color: var(--term-fg-3); font-family: var(--eq-font-sans); overflow: hidden; text-overflow: ellipsis; min-width: 0; }

/* JSON 语法（低饱和配色；v1 扩展字段的键名降一级，与现网字段区分） */
.dev .j-p { color: var(--term-fg-3); }
.dev .j-k { color: var(--sx-key); }
.dev .j-s { color: var(--sx-str); }
.dev .j-n { color: var(--sx-num); }
.dev .j-b { color: var(--sx-kw); }

/* 代码高亮（与 JSON 同一套色：关键字紫 / 字符串薄荷 / 数字琥珀 / 函数青 / 注释灰斜体） */
.dev .tk-kw { color: var(--sx-kw); }
.dev .tk-str { color: var(--sx-str); }
.dev .tk-num { color: var(--sx-num); }
.dev .tk-com { color: var(--sx-com); font-style: italic; }
.dev .tk-fn { color: var(--sx-fn); }
.dev .tk-key { color: var(--sx-key); }
.dev .tk-opt { color: var(--sx-fn); }

/* ---------- 7. 指标条（一张横向卡片，两格：覆盖交易所 + Telegram 订阅；10-22 删了延迟 / 频道数 / 日均三格） ---------- */
.dev .mx-band { padding-bottom: 8px; }
.dev .mx { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--bg); border: 1px solid var(--line); border-radius: var(--eq-radius-lg); box-shadow: var(--sh-1); }
.dev .mx-c { padding: 24px 24px 22px; border-left: 1px solid var(--line); min-width: 0; }
.dev .mx-c:first-child { border-left: 0; }
.dev .mx-n { display: flex; align-items: baseline; gap: 6px; font-family: var(--eq-font-display); white-space: nowrap; }
.dev .mx-n b { font-size: 46px; line-height: 1; font-weight: 500; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.dev .mx-n > span { font: 600 15px/1 var(--eq-font-sans); color: var(--ac-text); }
.dev .mx-l { margin-top: 14px; font-size: 14px; font-weight: 600; }
.dev .mx-d { margin-top: 4px; font-size: 12.5px; line-height: 1.6; color: var(--fg-3); }
/* 「覆盖交易所」：一排重叠的交易所图标（page-api.js 按 data-xi 渲染） */
.dev .mx-ex-list { display: flex; flex-wrap: wrap; row-gap: 4px; margin-top: 8px; }
.dev .mx-ex-list .xis { --xi: 20px; flex-wrap: wrap; row-gap: 4px; }
.dev .mx-ex-list .xis-i { box-shadow: 0 0 0 2px var(--ring); transition: transform .15s var(--eq-ease); }
.dev .mx-ex-list .xis-i:hover { transform: translateY(-2px); position: relative; z-index: 1; }

/* ---------- 8. 分节（覆盖全站 .sec 的上边距） ---------- */
.dev .sec { margin: 0; padding: 88px 0; }
.dev .sec-band { background: var(--sec-band); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.dev .sec-head { display: grid; justify-items: start; gap: 16px; max-width: 880px; margin-bottom: 40px; }
.dev .sec-head-s { margin-bottom: 30px; }
/* 栏目编号：主色浅底胶囊，编号放在主色实心小圆角块里 */
.dev .sec-tag { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; min-height: 28px; padding: 3px 12px 3px 4px; border-radius: 999px;
  background: var(--ac-soft); color: var(--ac-text); font-size: 13px; font-weight: 600; line-height: 1.4; }
.dev .sec-tag b { display: inline-flex; align-items: center; justify-content: center; height: 20px; min-width: 28px; padding: 0 6px; border-radius: 999px;
  background: var(--ac); color: var(--ac-fg); font: 700 11.5px/1 var(--eq-font-mono); }
.dev .sec-h { font: 600 var(--fs-h2)/1.32 var(--eq-font-display); letter-spacing: 0; }
html[data-lang="en"] .dev .sec-h { letter-spacing: -.015em; line-height: 1.2; }
.dev .sec-lead { margin-top: 14px; font-size: 16px; line-height: 1.8; color: var(--fg-2); max-width: 44em; }

/* ---------- 9. 数据产品目录（左：频道列表；右：深色样例面板） ---------- */
.dev .cat { display: grid; grid-template-columns: minmax(0, 1fr) 432px; background: var(--bg); border: 1px solid var(--line); border-radius: var(--eq-radius-lg);
  box-shadow: var(--sh-2); overflow: hidden; }
.dev .cat-main { min-width: 0; }
.dev .cat-cols, .dev .cat-row, .dev .cat-pick { display: grid; grid-template-columns: 26px 188px minmax(0, 1fr) 58px 164px; column-gap: 14px; }
.dev .cat-cols { padding: 10px 20px; font-size: 12px; font-weight: 500; color: var(--fg-3); background: var(--surface-2); border-bottom: 1px solid var(--line); }
.dev .cat-cols > span:nth-child(4) { text-align: right; }
.dev .cat-row { position: relative; padding: 0 20px; border-bottom: 1px solid var(--line); align-items: center; }
.dev .cat-row:last-child { border-bottom: 0; }
.dev .cat-pick { grid-column: 1 / 5; grid-template-columns: subgrid; align-items: baseline; padding: 12px 0; text-align: left; min-width: 0; }
.dev .cat-row:hover { background: var(--surface-2); }
.dev .cat-row:hover .xis { --ring: var(--surface-2); }
.dev .cat-row.is-sel { background: var(--ac-soft); }
.dev .cat-row.is-sel .xis { --ring: var(--ac-soft); }
.dev .cat-row.is-sel::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--ac); }
/* 主色浅底上 --fg-3 只有 4.35:1，选中行里的辅助字升一级 */
.dev .cat-row.is-sel :is(.cat-no, .cat-last time, .cat-last .w, .cat-rate small) { color: var(--fg-2); }
.dev .cat-no { font: 500 12px/1 var(--eq-font-mono); color: var(--fg-3); }
.dev .cat-name { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.dev .cat-name b { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font-size: 15px; font-weight: 600; line-height: 1.4; }
.dev .cat-row.is-sel .cat-name b { color: var(--ac-text); }
.dev .cat-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.dev .cat-meta code { font-size: 12px; color: var(--fg-2); }
.dev .cat-last { min-width: 0; font-size: 13.5px; line-height: 1.55; color: var(--fg-2); overflow-wrap: anywhere; }
.dev .cat-last time { display: inline-block; font: 500 12px/1 var(--eq-font-mono); color: var(--fg-3); margin-right: 8px; font-variant-numeric: tabular-nums; }
.dev .cat-last b { font: 600 12.5px var(--eq-font-mono); color: var(--fg); }
.dev .cat-last .pct { font: 600 12.5px var(--eq-font-mono); white-space: nowrap; }
.dev .cat-last .w { font: 500 12px var(--eq-font-mono); color: var(--fg-3); }
.dev .cat-rate { text-align: right; font: 500 12.5px/1.4 var(--eq-font-mono); color: var(--fg-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.dev .cat-rate small { font: 400 12px/1.4 var(--eq-font-sans); color: var(--fg-3); }
.dev .cat-acc { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 8px; padding: 12px 0; align-self: start; }
.dev .cat-tg { font: 600 12px/1 var(--eq-font-sans); color: var(--fg-2); border-bottom: 1px solid var(--line-2); padding-bottom: 2px; white-space: nowrap; }
.dev .cat-tg:hover { color: var(--ac-text); border-bottom-color: currentColor; }
/* 右侧样例面板：深色；页头带一层所选频道分组色的柔光（data-g 由 page-api.js 设置） */
.dev .cat-insp { background: var(--term-bg); color: var(--term-fg); display: flex; flex-direction: column; min-width: 0; }
.dev .ci-head { padding: 20px 20px 16px; border-bottom: 1px solid var(--term-line);
  background: linear-gradient(180deg, color-mix(in srgb, var(--tg, var(--eq-accent-d)) 14%, transparent), transparent 92%); }
.dev .ci-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dev .ci-name { font: 600 18px/1.35 var(--eq-font-display); }
.dev .ci-key { font: 500 12px/1.5 var(--eq-font-mono); color: var(--term-fg-2); margin-top: 4px; }
.dev .ci-desc { margin-top: 10px; font-size: 13px; line-height: 1.7; color: var(--term-fg-2); }
/* 覆盖来源：图标 + 名称的小胶囊 */
.dev .ci-src { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 12px; }
.dev .ci-src-k { font: 500 12px/1 var(--eq-font-sans); color: var(--term-fg-3); margin-right: 2px; }
.dev .ci-x { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 9px 0 3px; border-radius: 999px; background: rgba(255, 255, 255, .06);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); font: 500 12px/1 var(--eq-font-sans); color: var(--term-fg); white-space: nowrap; }
.dev .ci-x img.xi { width: 18px; height: 18px; vertical-align: 0; box-shadow: none; }
.dev .ci-tg { flex: none; height: 30px; display: inline-flex; align-items: center; padding: 0 10px; border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--eq-radius);
  font: 600 12px/1 var(--eq-font-sans); color: var(--term-fg); }
.dev .ci-tg:hover { background: color-mix(in srgb, var(--eq-accent-d) 14%, transparent); border-color: var(--eq-accent-d); }
.dev .ci-req { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; padding: 9px 20px; border-bottom: 1px solid var(--term-line); font: 500 12px/1.4 var(--eq-font-mono); color: var(--term-fg-2); background: var(--term-bar); }
.dev .ci-req b { color: #FFFFFF; background: var(--eq-accent-df); padding: 1px 6px; border-radius: 4px; font-weight: 700; }
.dev .ci-req > span:not(.st) { min-width: 0; overflow-wrap: anywhere; }
.dev .ci-req .st { margin-left: auto; }
.dev .ci-json { flex: 1; margin: 0; padding: 14px 20px; font-size: 12.5px; line-height: 1.62; white-space: pre-wrap; overflow-wrap: anywhere; min-height: 0; }
.dev .ci-fields { padding: 14px 20px 18px; border-top: 1px solid var(--term-line); }
.dev .ci-fields p { font: 500 12px/1.5 var(--eq-font-sans); color: var(--term-fg-3); margin-bottom: 8px; overflow-wrap: anywhere; }
.dev .ci-fields p a { color: var(--eq-accent-d); text-decoration: underline; text-underline-offset: 2px; }
.dev .ci-fields p a:hover { color: var(--term-fg); }
.dev .ci-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.dev .ci-chips code { font-size: 12px; padding: 2px 7px; border-radius: 5px; background: color-mix(in srgb, var(--eq-accent-d) 10%, transparent); border: 1px solid color-mix(in srgb, var(--eq-accent-d) 38%, transparent); color: var(--term-fg); }

/* ---------- 10. 接入方式 + 代码窗 ---------- */
.dev .acc-wrap { display: grid; grid-template-columns: 344px minmax(0, 1fr); background: var(--bg); border: 1px solid var(--line); border-radius: var(--eq-radius-lg);
  box-shadow: var(--sh-2); overflow: hidden; }
.dev .acc { display: grid; grid-template-columns: minmax(0, 1fr); background: var(--bg); border-right: 1px solid var(--line); }
.dev .acc-c { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 16px; text-align: left; border-top: 1px solid var(--line); min-width: 0; transition: background .15s; }
.dev .acc-c:first-child { border-top: 0; }
.dev .acc-c:hover { background: var(--surface-2); }
.dev .acc-c[aria-selected="true"] { background: var(--ac-soft); }
.dev .acc-c[aria-selected="true"]::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--ac); }
.dev .acc-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dev .acc-n { font: 700 18px/1.3 var(--eq-font-mono); letter-spacing: -.01em; }
.dev .acc-c[aria-selected="true"] .acc-n { color: var(--ac-text); }
.dev .acc-d { font-size: 14px; line-height: 1.65; color: var(--fg-2); }
.dev .acc-u { font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; color: var(--fg); }
.dev .acc-k { display: flex; justify-content: space-between; gap: 8px; font-size: 12.5px; color: var(--fg-3); }
.dev .acc-ks { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; border-top: 1px dashed var(--line-2); padding-top: 7px; }
.dev .acc-k b { color: var(--fg); font-weight: 600; }
.dev .acc-c[aria-selected="true"] .acc-k { color: var(--fg-2); }
.dev .acc-c[aria-selected="true"] .acc-ks { border-top-color: var(--ac-line); }
.dev .codewin { display: flex; flex-direction: column; background: var(--term-bg); color: var(--term-fg); min-width: 0; }
.dev .codewin-bar { display: flex; align-items: center; gap: 12px; padding-right: 12px; background: var(--term-bar); border-bottom: 1px solid var(--term-line); min-width: 0; }
.dev .codewin-tabs { display: flex; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.dev .codewin-tabs::-webkit-scrollbar { display: none; }
.dev .codewin-tabs button { position: relative; height: 46px; padding: 0 18px; font: 600 13px/1 var(--eq-font-mono); color: var(--term-fg-3); border-right: 1px solid var(--term-line); white-space: nowrap; flex: none; }
.dev .codewin-tabs button:hover { color: var(--term-fg); }
.dev .codewin-tabs button[aria-selected="true"] { color: var(--term-fg); background: var(--term-bg); }
.dev .codewin-tabs button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--eq-accent-d); }
.dev .codewin-file { margin-left: auto; font: 500 12px/1 var(--eq-font-mono); color: var(--term-fg-3); white-space: nowrap; }
.dev .codewin-body { position: relative; flex: 1; min-width: 0; min-height: 300px; }
.dev .code { position: absolute; inset: 0; margin: 0; padding: 20px 22px; font-size: 13px; line-height: 1.72; overflow: auto; white-space: pre; tab-size: 2; color: var(--term-fg); scrollbar-width: thin; scrollbar-color: var(--term-scroll) transparent; }
.dev .codewin-out { border-top: 1px solid var(--term-line); background: var(--term-bar); }
.dev .codewin-out-h { display: flex; justify-content: space-between; gap: 12px; padding: 8px 22px; font: 500 12px/1.5 var(--eq-font-sans); color: var(--term-fg-3); border-bottom: 1px solid var(--term-row); }
.dev .codewin-out-h > span:first-child { font: 700 12px/1.5 var(--eq-font-mono); color: var(--sx-key); letter-spacing: .04em; }
.dev .codewin-out-pre { margin: 0; padding: 12px 22px 14px; font-size: 12.5px; line-height: 1.75; color: var(--term-fg); white-space: pre-wrap; overflow-wrap: anywhere; }
.dev .codewin-out-pre .o-t { color: var(--sx-num); }
.dev .codewin-out-pre .o-c { color: var(--sx-str); }
.dev .codewin-foot { padding: 11px 22px; border-top: 1px solid var(--term-line); font-size: 13px; color: var(--term-fg-2); }
.dev .codewin-foot > [data-foot] { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; }
.dev .codewin-foot code { font-size: 12px; border: 1px solid var(--term-line); border-radius: 4px; padding: 1px 6px; color: var(--sx-fn); }
.dev .codewin-doc { margin-left: auto; padding-left: 12px; color: var(--eq-accent-d); font-weight: 600; white-space: nowrap; }
.dev .codewin-doc:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 11. 收尾 CTA（wscat 命令 + 阅读文档），品牌渐变卡片 ---------- */
.dev .cta { padding: 72px 0 80px; }
.dev .cta-card { position: relative; overflow: hidden; padding: 44px 44px 24px; border-radius: var(--eq-radius-xl); background: var(--dev-grad); color: #FFFFFF; box-shadow: var(--sh-3); }
.dev .cta-card::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(560px 280px at 96% -20%, rgba(255, 255, 255, .16), transparent 70%), radial-gradient(420px 240px at 0% 120%, rgba(0, 0, 0, .18), transparent 70%); }
.dev .cta-in { position: relative; display: flex; align-items: center; gap: 20px; padding-bottom: 28px; border-bottom: 1px solid rgba(255, 255, 255, .24); }
.dev .cta-h { font: 600 32px/1.3 var(--eq-font-display); margin-right: auto; }
.dev .try-cmd-inv { margin-top: 0; background: rgba(0, 0, 0, .22); border-color: rgba(255, 255, 255, .26); box-shadow: none; min-width: 0; width: 470px; max-width: 100%; }
.dev .try-cmd-inv .try-pre { color: #FFFFFF; }
.dev .try-cmd-inv .tk-p { color: rgba(255, 255, 255, .72); }
.dev .try-cmd-inv .copy { background: transparent; color: #FFFFFF; border-color: rgba(255, 255, 255, .42); }
.dev .try-cmd-inv .copy:hover { background: rgba(255, 255, 255, .14); }
.dev .try-cmd-inv .copy.is-done { background: #FFFFFF; color: var(--eq-accent); border-color: #FFFFFF; }
.dev .cta-links { position: relative; display: flex; flex-wrap: wrap; gap: 6px 18px; padding-top: 16px; font-size: 12px; color: #FFFFFF; }
.dev .cta-links a { color: #FFFFFF; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .55); text-underline-offset: 3px; }
.dev .cta-links a:hover { text-decoration-color: #FFFFFF; }
.dev .cta-links > * { overflow-wrap: anywhere; }

/* =====================================================================
 * 12. 文档页 api-docs.html
 * 桌面三栏：目录（页面底色）| 正文（白卡底）| 深色代码栏。内容与全站页头的 1440 版心对齐，
 * 宽屏时左侧留白并入目录栏、右侧留白并入代码栏（深色代码栏一直铺到窗口右边）。
 * ===================================================================== */
.dev-docs { --side-w: 248px; --code-w: 460px; }
.dev .docs { display: grid; grid-template-columns: calc(max(0px, (100% - 1440px) / 2) + var(--side-w)) minmax(0, 1fr); border-bottom: 1px solid var(--line); }
.dev .side-col { display: flex; justify-content: flex-end; align-items: flex-start; border-right: 1px solid var(--line); min-width: 0; }
.dev .side { position: sticky; top: var(--dev-top); width: var(--side-w); height: calc(100vh - var(--dev-top)); overflow-y: auto; padding: 22px 16px 40px var(--pad); scrollbar-width: thin; }
.dev .side-x { display: none; }
.dev .side-bg { display: none; }
.dev .side-grp { margin-top: 24px; }
.dev .side-grp:first-of-type { margin-top: 4px; }
.dev .side-grp h4 { margin: 0 0 6px; padding-left: 10px; font: 600 12px/1.4 var(--eq-font-sans); color: var(--fg-3); letter-spacing: .02em; }
.dev .side-grp a { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 10px; border-radius: var(--eq-radius);
  font-size: 14px; color: var(--fg-2); line-height: 1.45; }
.dev .side-grp a:hover { color: var(--fg); background: var(--surface-3); }
/* 当前章节：主色浅底 + 主色字 + 左侧 2px 主色条 */
.dev .side-grp a.is-on { color: var(--ac-text); font-weight: 600; background: var(--ac-soft); }
.dev .side-grp a.is-on::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 2px; border-radius: 2px; background: var(--ac); }

.dev .doc { min-width: 0; background: var(--bg); }
.dev .doc-hero, .dev .dsec { display: grid; grid-template-columns: minmax(0, 1fr) calc(var(--code-w) + max(0px, 100% + var(--side-w) - 1440px)); }
.dev .doc-hero { border-bottom: 1px solid var(--line); }
.dev .doc-hero-in { padding: 36px 48px; background: radial-gradient(640px 280px at 0% 0%, var(--dev-glow), transparent 72%); }
.dev .crumb { font: 500 12px/1.4 var(--eq-font-mono); color: var(--fg-3); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dev .crumb .side-open { margin-left: auto; font-family: var(--eq-font-sans); }
.dev .crumb a:hover { color: var(--ac-text); }
.dev .doc-h1 { margin-top: 14px; font: 600 40px/1.3 var(--eq-font-display); letter-spacing: 0; }
html[data-lang="en"] .dev .doc-h1 { letter-spacing: -.015em; line-height: 1.15; }
.dev .doc-lead { margin-top: 14px; font-size: 16px; line-height: 1.85; color: var(--fg-2); max-width: 40em; }
.dev .doc-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 18px; font-size: 13px; color: var(--fg-3); align-items: center; }
.dev .doc-meta b { color: var(--fg); font-weight: 600; }
.dev .doc-hero-code { background: var(--term-bg); color: var(--term-fg); padding: 28px 24px; display: flex; flex-direction: column; gap: 10px; justify-content: center; min-width: 0; }
.dev .doc-hero-code > * { max-width: calc(var(--code-w) - 48px); }
/* 页头左栏：三个端点（状态胶囊 + 地址 + 复制）；右栏：给 AI 的提示词（中 / EN 两份，按界面语言显示一份，复制的就是看到的那份） */
.dev .eps { display: grid; gap: 8px; margin-top: 22px; max-width: 36em; }
.dev .eps li { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 6px 6px 6px 10px;
  border: 1px solid var(--line); border-radius: 8px; background: var(--bg); min-width: 0; }
.dev .eps code { min-width: 0; font-size: 13px; color: var(--fg); white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
.dev .eps .copy { height: 28px; }
.dev .cblk-llm pre { max-height: 460px; overflow-y: auto; font: 400 12.5px/1.75 var(--eq-font-sans); }

.dev .dsec { border-bottom: 1px solid var(--line); }
.dev .dsec:last-of-type { border-bottom: 0; }
.dev .dsec-prose { padding: 44px 48px 48px; min-width: 0; }
.dev .dsec-code { background: var(--term-bg); color: var(--term-fg); padding: 44px 20px; min-width: 0; }
.dev .dsec-code-in { position: sticky; top: calc(var(--dev-top) + 24px); display: flex; flex-direction: column; gap: 16px; max-width: calc(var(--code-w) - 40px); }
.dev .dsec h2 { font: 600 26px/1.35 var(--eq-font-display); letter-spacing: 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
/* 章节编号：主色浅底小方块（与首页栏目编号同一语言） */
.dev .dsec h2 .h-no { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 24px; padding: 0 6px; border-radius: var(--eq-radius);
  background: var(--ac-soft); color: var(--ac-text); font: 700 12px/1 var(--eq-font-mono); }
.dev .dsec h2 .st { font-size: 12px; }
.dev .dsec-prose p { margin-top: 12px; font-size: 15px; line-height: 1.85; color: var(--fg-2); max-width: 42em; }
.dev .dsec-prose p b, .dev .dsec li b { color: var(--fg); font-weight: 600; }
.dev .dsec ol.steps { margin-top: 18px; counter-reset: st; display: grid; gap: 14px; max-width: 44em; }
.dev .dsec ol.steps li { counter-increment: st; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; font-size: 15px; line-height: 1.8; color: var(--fg-2); }
.dev .dsec ol.steps li::before { content: counter(st); width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%;
  font: 700 12px/1 var(--eq-font-mono); background: var(--ac-soft); color: var(--ac-text); box-shadow: inset 0 0 0 1px var(--ac-line); margin-top: 1px; }
.dev .dsec ul.dots { margin-top: 12px; display: grid; gap: 6px; max-width: 44em; }
.dev .dsec ul.dots li { position: relative; padding-left: 16px; font-size: 15px; line-height: 1.8; color: var(--fg-2); }
.dev .dsec ul.dots li::before { content: ""; position: absolute; left: 1px; top: calc(.9em - 3px); width: 6px; height: 6px; border-radius: 50%; background: var(--ac); }
.dev .ic { font-size: 13px; background: var(--surface-3); padding: 1px 5px; border-radius: 4px; color: var(--fg); white-space: nowrap; }

/* 文档表格：圆角卡片；桌面为表格，手机变成上下堆叠的卡片（无横向溢出） */
.dev .tbl { width: 100%; border-collapse: separate; border-spacing: 0; margin-top: 20px; font-size: 14px; line-height: 1.6;
  background: var(--bg); border: 1px solid var(--line); border-radius: 10px; }
.dev .tbl th { text-align: left; font: 600 12px/1.4 var(--eq-font-sans); color: var(--fg-3); padding: 10px 14px; background: var(--surface-2); border-bottom: 1px solid var(--line); white-space: nowrap; }
.dev .tbl th:first-child { border-top-left-radius: 9px; }
.dev .tbl th:last-child { border-top-right-radius: 9px; }
.dev .tbl td { padding: 11px 14px; border-bottom: 1px solid var(--line); vertical-align: top; color: var(--fg-2); overflow-wrap: anywhere; }
.dev .tbl tbody tr:last-child td { border-bottom: 0; }
.dev .tbl tbody tr:last-child td:first-child { border-bottom-left-radius: 9px; }
.dev .tbl tbody tr:last-child td:last-child { border-bottom-right-radius: 9px; }
.dev .tbl tbody tr:hover td { background: var(--surface-2); }
.dev .tbl td:first-child { color: var(--fg); }
.dev .tbl td code { font-size: 12.5px; color: var(--fg); }
.dev .tbl td:first-child > code:only-child { white-space: nowrap; }
.dev .tbl .ty { font: 500 12px/1.4 var(--eq-font-mono); color: var(--fg-3); white-space: nowrap; }
.dev .ch-k { display: block; font-weight: 600; }
.dev .tbl td.ch-n { white-space: nowrap; color: var(--fg); }
.dev .ch-nm { display: flex; align-items: center; gap: 8px; }
.dev .ch-n .tag { margin-top: 4px; }
.dev .tbl tbody tr:hover .xis { --ring: var(--surface-2); }
.dev .tbl td.ch-tg { white-space: nowrap; font: 500 12.5px/1.6 var(--eq-font-mono); }
.dev .ch-tg a { color: var(--ac-text); border-bottom: 1px solid var(--ac-line); }
.dev .ch-tg a:hover { border-bottom-color: currentColor; }

/* 文档右栏代码块 */
.dev .cblk { border: 1px solid var(--term-line); border-radius: 10px; min-width: 0; background: var(--term-bar); overflow: hidden; }
.dev .cblk-bar { display: flex; align-items: center; gap: 0; background: rgba(255, 255, 255, .025); border-bottom: 1px solid var(--term-line); min-width: 0; }
.dev .cblk-bar .cblk-t { padding: 0 12px; font: 600 12px/34px var(--eq-font-mono); color: var(--term-fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.dev .cblk-tabs { display: flex; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.dev .cblk-tabs button { position: relative; height: 36px; padding: 0 12px; font: 600 12px/1 var(--eq-font-mono); color: var(--term-fg-3); white-space: nowrap; }
.dev .cblk-tabs button:hover { color: var(--term-fg); }
.dev .cblk-tabs button[aria-selected="true"] { color: var(--term-fg); background: var(--term-bg-2); }
.dev .cblk-tabs button[aria-selected="true"]::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--eq-accent-d); }
.dev .cblk-bar .copy { margin-left: auto; height: 26px; margin-right: 6px; }
.dev .cblk pre { margin: 0; padding: 14px 16px; font-size: 12px; line-height: 1.7; overflow-x: auto; white-space: pre; color: var(--term-fg); tab-size: 2; scrollbar-width: thin; scrollbar-color: var(--term-scroll) transparent; }
.dev .cblk pre.wrap-pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.dev .cblk-cap { padding: 8px 16px; border-top: 1px solid var(--term-line); font-size: 12px; line-height: 1.6; color: var(--term-fg-3); font-family: var(--eq-font-sans); }

.dev .docs-foot { padding: 36px 48px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 24px; font-size: 13px; color: var(--fg-3); border-top: 1px solid var(--line); }
.dev .docs-foot b { color: var(--fg); font-weight: 600; }
.dev .docs-pn { display: flex; gap: 12px; }
.dev .docs-pn a { border: 1px solid var(--line); border-radius: 10px; background: var(--bg); box-shadow: var(--sh-1); padding: 11px 16px; font-size: 14px; font-weight: 500; color: var(--fg); min-width: 200px;
  transition: border-color .15s, box-shadow .15s, color .15s; }
.dev .docs-pn a small { display: block; font-size: 12px; font-weight: 400; color: var(--fg-3); }
.dev .docs-pn a:hover { border-color: var(--ac-line); box-shadow: var(--sh-2); color: var(--ac-text); }
.dev .side-open { display: none; }

/* =====================================================================
 * 13. 响应式（断点沿用 T6：1320 / 1180 / 1024 / 760 / 640；另在 760 处与全站「手机」断点对齐）
 * ===================================================================== */
@media (max-width: 1320px) {
  .dev { --fs-h1: 48px; }
  .dev .hero-in { grid-template-columns: minmax(0, 460px) minmax(0, 1fr); gap: 44px; }
  html[data-lang="en"] .dev .hero-h { font-size: 44px; }
  .dev .mx-c { padding-left: 20px; padding-right: 20px; }
  .dev .cat { grid-template-columns: minmax(0, 1fr) 400px; }
  .dev .cat-cols, .dev .cat-row, .dev .cat-pick { grid-template-columns: 28px 184px minmax(0, 1fr) 64px 108px; column-gap: 14px; }
  .dev-docs { --code-w: 420px; }
}
@media (max-width: 1180px) {
  .dev .hero-in { grid-template-columns: minmax(0, 1fr); }
  .dev .hero-copy { max-width: 720px; }
  .dev .term { height: 560px; }
  .dev .cat { grid-template-columns: minmax(0, 1fr); }
  .dev .cat-cols, .dev .cat-row, .dev .cat-pick { grid-template-columns: 28px 196px minmax(0, 1fr) 64px auto; } /* EN 下末列放不下「WS live + Telegram ↗」 */
  .dev .cat-acc { flex-wrap: nowrap; }
  .dev .cat-insp { border-top: 1px solid var(--line); }
  .dev-docs { --side-w: 220px; --code-w: 380px; }
  .dev .dsec-prose, .dev .doc-hero-in { padding-left: 36px; padding-right: 36px; }
}
@media (max-width: 1024px) {
  .dev .acc-wrap { grid-template-columns: minmax(0, 1fr); }
  .dev .acc { grid-template-columns: repeat(2, minmax(0, 1fr)); border-right: 0; border-bottom: 1px solid var(--line); }
  .dev .acc-c { border-top: 0; border-left: 1px solid var(--line); }
  .dev .acc-c:nth-child(odd) { border-left: 0; }
  .dev .acc-c:nth-child(n+3) { border-top: 1px solid var(--line); }
  .dev .codewin-body { min-height: 0; }
  .dev .code { position: static; max-height: 460px; }
  /* 文档：三栏 → 目录抽屉 + 单栏，代码块跟在段落后面 */
  .dev .docs { grid-template-columns: minmax(0, 1fr); }
  .dev .side-col { display: contents; }
  .dev .side { position: fixed; z-index: 28; left: 0; top: var(--top-h); bottom: 0; width: min(320px, 86vw); height: auto; padding-right: 20px; background: var(--bg);
    border-right: 1px solid var(--line); box-shadow: var(--sh-3); transform: translateX(-102%); visibility: hidden; transition: transform .2s var(--eq-ease), visibility 0s linear .2s; }
  .dev .side.is-open { transform: none; visibility: visible; transition: transform .2s var(--eq-ease); }
  .dev .side-bg:not([hidden]) { display: block; position: fixed; z-index: 27; left: 0; right: 0; top: var(--top-h); bottom: 0; background: rgba(11, 14, 20, .45); }
  .dev .side-x { display: flex; align-items: center; gap: 6px; width: fit-content; height: 34px; margin: 0 0 14px auto; padding: 0 10px; border: 1px solid var(--line-2); border-radius: var(--eq-radius);
    font: 600 13px/1 var(--eq-font-sans); color: var(--fg); }
  .dev .side-open { display: inline-flex; }
  .dev .doc-hero, .dev .dsec { grid-template-columns: minmax(0, 1fr); }
  .dev .dsec-code { padding: 0 36px 40px; background: transparent; }
  .dev .dsec-code-in { position: static; max-width: none; }
  .dev .doc-hero-code { margin: 0 36px 32px; border-radius: var(--eq-radius-lg); }
  .dev .doc-hero-code > * { max-width: none; }
}
@media (max-width: 760px) {
  /* 与全站手机断点对齐：二级导航不再吸顶（只保留全站页头吸顶），目录抽屉让出底部 tab */
  .dev { --dev-top: var(--top-h); }
  .dev .dnav { position: static; }
  .dev .dnav-in { gap: 18px; }
  .dev .dnav-tools { display: none; }
  .dev .dnav-links { gap: 20px; margin-right: calc(var(--pad) * -1); padding-right: var(--pad); }
  .dev .side, .dev .side-bg:not([hidden]) { bottom: calc(56px + env(safe-area-inset-bottom)); }
}
@media (max-width: 640px) {
  .dev { --fs-h1: 34px; --fs-h2: 26px; }
  .dev .hero { padding: 28px 0 36px; }
  .dev .hero-in { gap: 0; }
  .dev .hero-copy { display: contents; }
  .dev .hero-copy > .eyebrow { order: 1; } .dev .hero-h { order: 2; } .dev .hero-lead { order: 3; } .dev .hero-cta { order: 4; }
  .dev .term { order: 5; margin-top: 26px; }
  .dev .try { order: 6; }
  .dev .hero-h { margin-top: 18px; line-height: 1.3; }
  html[data-lang="en"] .dev .hero-h { font-size: 33px; }
  .dev .hero-lead { margin-top: 16px; font-size: 15px; line-height: 1.8; }
  .dev .hero-cta { margin-top: 22px; gap: 10px; }
  .dev .hero-cta .btn { flex: 1 1 140px; height: 46px; padding: 0 14px; }
  .dev .hero-cta .link-arrow { margin: 6px 0 0; }
  .dev .try { margin-top: 24px; }
  .dev .try-pre { font-size: 12.5px; }
  .dev .term { --tcols: 1fr auto; height: auto; }
  .dev .term-bar { padding: 0 10px; gap: 8px; height: 52px; }
  .dev .term-url { font-size: 12px; }
  .dev .term-cols { display: none; }
  .dev .term-list { height: 352px; flex: none; }
  .dev .tr { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "t c l" "m m m"; row-gap: 3px; column-gap: 10px; padding: 9px 12px; }
  .dev .tr-t { grid-area: t; } .dev .tr-c { grid-area: c; } .dev .tr-l { grid-area: l; } .dev .tr-m { grid-area: m; font-size: 14px; }
  .dev .tr-hb { grid-template-areas: "t m l"; grid-template-columns: auto minmax(0, 1fr) auto; }
  .dev .tr-hb .tr-c { display: none; }
  .dev .term-json { height: 196px; font-size: 12px; padding: 10px 12px; }
  .dev .term-foot { gap: 10px; padding: 0 12px; }
  .dev .term-fn { display: none; }
  .dev .mx-c { padding: 18px 16px; }
  .dev .mx-n b { font-size: 34px; }
  .dev .mx-l { margin-top: 10px; font-size: 13.5px; }
  .dev .mx-ex-list .xis { --xi: 19px; }
  .dev .sec { padding: 56px 0; }
  .dev .sec-head { margin-bottom: 28px; gap: 14px; }
  .dev .sec-lead { font-size: 15px; line-height: 1.8; }
  .dev .cat-cols { display: none; }
  .dev .cat-row { grid-template-columns: minmax(0, 1fr) auto; padding: 0 14px; column-gap: 10px; }
  .dev .cat-pick { grid-column: 1; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; column-gap: 8px; align-items: center; padding: 10px 0; min-height: 56px; }
  .dev .cat-name b { font-size: 14.5px; }
  .dev .cat-last { display: none; }
  .dev .cat-rate { text-align: right; font-size: 12px; }
  .dev .cat-rate br { display: none; }
  .dev .cat-acc { grid-column: 2; flex-direction: column; align-items: flex-end; gap: 4px; padding: 10px 0; align-self: center; }
  .dev .ci-head, .dev .ci-fields, .dev .ci-req { padding-left: 14px; padding-right: 14px; }
  .dev .ci-json { padding: 12px 14px; font-size: 12px; max-height: 420px; overflow: auto; }
  .dev .acc { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .dev .acc-ks { display: none; }
  .dev .acc-c { padding: 14px; gap: 8px; }
  .dev .acc-n { font-size: 15px; }
  .dev .acc-d { font-size: 13px; min-height: 0; }
  .dev .acc-u { display: none; }
  .dev .code { font-size: 12px; padding: 16px; min-height: 0; }
  .dev .codewin-file { display: none; }
  .dev .codewin-tabs button { padding: 0 13px; font-size: 12px; height: 48px; }
  .dev .codewin-foot { padding: 10px 16px; font-size: 12.5px; }
  .dev .codewin-doc { margin-left: 0; padding-left: 0; }
  .dev .codewin-out-h { flex-direction: column; gap: 2px; padding: 8px 16px; }
  .dev .codewin-out-pre { padding: 10px 16px 12px; font-size: 12px; }
  .dev .cta { padding: 48px 0 56px; }
  .dev .cta-card { padding: 28px 18px 18px; border-radius: var(--eq-radius-lg); }
  .dev .cta-in { flex-direction: column; align-items: stretch; gap: 16px; }
  .dev .cta-h { font-size: 26px; }
  .dev .try-cmd-inv { width: auto; }
  /* 文档 */
  .dev .doc-hero-in, .dev .dsec-prose { padding: 28px var(--pad); }
  .dev .dsec-code { padding: 0 var(--pad) 32px; }
  .dev .doc-hero-code { margin: 0 var(--pad) 24px; padding: 20px 16px; }
  .dev .eps li { grid-template-columns: auto 1fr auto; row-gap: 8px; }
  .dev .eps code { grid-column: 1 / -1; grid-row: 2; font-size: 12px; }
  .dev .eps .copy { grid-column: 3; grid-row: 1; }
  .dev .doc-h1 { font-size: 30px; }
  .dev .dsec h2 { font-size: 22px; }
  .dev .docs-foot { padding: 28px var(--pad); }
  .dev .docs-pn { flex-direction: column; width: 100%; }
  .dev .docs-pn a { min-width: 0; }
  .dev .tbl, .dev .tbl tbody, .dev .tbl tr, .dev .tbl td { display: block; width: 100%; }
  .dev .tbl thead { display: none; }
  .dev .tbl tr { padding: 10px 14px; border-bottom: 1px solid var(--line); }
  .dev .tbl tbody tr:last-child { border-bottom: 0; }
  .dev .tbl td { padding: 2px 0; border: 0; background: transparent !important; }
  .dev .tbl td[data-th]::before { content: attr(data-th); display: inline-block; min-width: 4.5em; margin-right: 8px; font: 600 12px/1.6 var(--eq-font-sans); color: var(--fg-3); }
  html[data-lang="en"] .dev .tbl td[data-th-en]::before { content: attr(data-th-en); }
  .dev .ch-nm { display: inline-flex; }
  .dev .ch-n .tag { margin: 0 0 0 8px; }
  /* 触控目标 ≥40px */
  .dev .copy, .dev .term-btn, .dev .tool, .dev .ci-tg, .dev .side-open, .dev .side-x { min-height: 40px; }
  .dev .cat-tg { display: inline-flex; align-items: center; min-height: 40px; padding: 0; border-bottom: 0; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
  .dev .link-arrow { display: inline-flex; align-items: center; min-height: 40px; }
  .dev .try-cmd { padding: 4px 4px 4px 12px; }
  .dev .cblk-tabs button { height: 44px; }
  .dev .side-grp a { min-height: 40px; }
  .dev .dnav-links a { min-height: 44px; }
}
@media (prefers-reduced-motion: no-preference) { html:has(.dev) { scroll-behavior: smooth; } }
@media (prefers-reduced-motion: reduce) {
  .dev .term-ok i, .dev .tr.eq-new { animation: none !important; }
  .dev .side, .dev .btn, .dev .btn .arr, .dev .acc-c, .dev .mx-ex-list .xis-i { transition: none; }
}
