/* IQCL Markdown 渲染样式（可复用）
 * 依赖：页面需定义 CSS 变量 --primary --bg --card --text --sub --border
 *       以及 [data-theme="dark"] 暗黑模式覆盖（参考 doc/index.html）
 * 用法：容器元素加 class="doc-article"，<link> 引入本文件即可复用
 * 配套 JS：enhanceDoc() / enhanceTables() / enhanceCodeBlocks() / applySyntaxHighlight()
 */

/* === 基础排版：标题 / 段落 / 列表 / 链接 === */
.doc-article h1{font-size:28px;font-weight:700;color:var(--text);margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--primary)}
.doc-article h2{font-size:20px;font-weight:600;color:var(--text);margin:32px 0 16px;padding-left:12px;border-left:4px solid var(--primary)}
.doc-article h3{font-size:16px;font-weight:600;color:var(--text);margin:24px 0 12px}
.doc-article p{font-size:14px;color:var(--text);line-height:2;margin-bottom:16px;text-align:justify}
.doc-article ul,.doc-article ol{font-size:14px;color:var(--text);line-height:2;margin-bottom:16px;padding-left:24px}
.doc-article li{margin-bottom:8px}
.doc-article strong{color:var(--text);font-weight:600}
.doc-article a{color:var(--primary);text-decoration:none}
.doc-article a:hover{text-decoration:underline}

/* === 表格样式（灰度方案，适配双模式） === */
.doc-article .table-wrap{width:100%;margin:16px 0;overflow-x:auto;border-radius:8px;border:1px solid #d0d7de;-webkit-overflow-scrolling:touch;background:var(--bg)}
.doc-article .table-wrap::-webkit-scrollbar{height:8px}
.doc-article .table-wrap::-webkit-scrollbar-track{background:var(--card)}
.doc-article .table-wrap::-webkit-scrollbar-thumb{background:#b1b8be;border-radius:4px}
.doc-article table{width:100%;border-collapse:collapse;margin:0;font-size:13px;background:var(--bg);border-spacing:0}
.doc-article thead{background:#eaeef2}
.doc-article thead th{color:#1f2328;font-weight:600;padding:10px 14px;text-align:left;border:1px solid #d0d7de;white-space:nowrap}
.doc-article tbody td{padding:10px 14px;border:1px solid #d0d7de;color:#1f2328;vertical-align:top;word-break:break-word}
.doc-article tbody tr:nth-child(even){background:#f6f8fa}
.doc-article tbody tr:hover{background:#eaeef2}
[data-theme="dark"] .doc-article thead{background:#1e293b}
[data-theme="dark"] .doc-article thead th{color:#f1f5f9;border-color:#475569}
[data-theme="dark"] .doc-article tbody td{color:#e2e8f0;border-color:#475569}
[data-theme="dark"] .doc-article tbody tr:nth-child(even){background:#16202e}
[data-theme="dark"] .doc-article tbody tr:hover{background:#1e293b}
[data-theme="dark"] .doc-article .table-wrap{border-color:#475569}

/* === 代码块样式（明亮灰度 / 暗黑深色，工具栏始终深色保证纯白标签可读） === */
.doc-article pre{position:relative;margin:16px 0;border-radius:10px;overflow:hidden;border:1px solid #d0d7de;background:#f6f8fa;display:flex;flex-direction:column}
.doc-article pre .code-toolbar{flex-shrink:0}
.doc-article pre code{display:block;padding:16px 20px;font-family:"Cascadia Code",Consolas,"SF Mono",Monaco,monospace;font-size:13px;line-height:1.6;color:#1f2328;white-space:pre;overflow-x:auto;tab-size:4;flex:1 1 auto;min-width:0;max-width:100%}
.doc-article pre code::-webkit-scrollbar{height:8px;width:8px}
.doc-article pre code::-webkit-scrollbar-track{background:#eaeef2}
.doc-article pre code::-webkit-scrollbar-thumb{background:#b1b8be;border-radius:4px}
.doc-article pre code::-webkit-scrollbar-thumb:hover{background:#8c959f}
.doc-article pre code.wrap-mode{white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere;overflow-x:hidden}
.doc-article :not(pre) > code{display:inline-block;padding:2px 6px;margin:0 2px;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:12px;background:#eaeef2;color:#1f2328;border:1px solid #d0d7de;word-break:break-all}
[data-theme="dark"] .doc-article pre{border-color:#334155;background:#1e293b}
[data-theme="dark"] .doc-article pre code{color:#e2e8f0}
[data-theme="dark"] .doc-article pre code::-webkit-scrollbar-track{background:#0f172a}
[data-theme="dark"] .doc-article pre code::-webkit-scrollbar-thumb{background:#475569}
[data-theme="dark"] .doc-article pre code::-webkit-scrollbar-thumb:hover{background:#64748b}
[data-theme="dark"] .doc-article :not(pre) > code{background:#334155;color:#e2e8f0;border-color:#475569}

/* 明亮模式：浅灰工具栏，深色语言标签（与浅灰代码区协调） */
.code-toolbar{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#eaeef2;border-bottom:1px solid #c4cdd5;font-size:12px}
.code-toolbar .code-lang{color:#1f2328;font-family:monospace;font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.code-toolbar .code-btns{display:flex;gap:6px}
.code-btn{padding:3px 10px;border-radius:5px;border:none;background:rgba(0,0,0,.06);color:#424a53;font-size:11px;cursor:pointer;transition:.2s;display:inline-flex;align-items:center;gap:4px;user-select:none}
.code-btn:hover{background:rgba(0,0,0,.12);color:#1f2328}
.code-btn.active{background:var(--primary);color:#fff}
.code-btn:active{transform:scale(.95)}
/* 暗黑模式：深色工具栏，纯白语言标签（与深色代码区协调） */
[data-theme="dark"] .code-toolbar{background:#0f172a;border-bottom:1px solid rgba(255,255,255,.08)}
[data-theme="dark"] .code-toolbar .code-lang{color:#ffffff}
[data-theme="dark"] .code-btn{background:rgba(255,255,255,.08);color:#cbd5e1}
[data-theme="dark"] .code-btn:hover{background:rgba(255,255,255,.18);color:#ffffff}

/* === 语法高亮（明亮模式：GitHub 风格） === */
.doc-article .token.keyword{color:#cf222e}
.doc-article .token.string{color:#0a3069}
.doc-article .token.number,.doc-article .token.boolean{color:#0550ae}
.doc-article .token.comment{color:#6e7781;font-style:italic}
.doc-article .token.function{color:#8250df}
.doc-article .token.tag{color:#116329}
.doc-article .token.attr-name{color:#0550ae}
.doc-article .token.attr-value{color:#0a3069}
.doc-article .token.punctuation{color:#1f2328}
.doc-article .token.operator{color:#cf222e}
.doc-article .token.property{color:#0550ae}
.doc-article .token.selector{color:#116329}

/* === 语法高亮（暗黑模式：Material Night 风格） === */
[data-theme="dark"] .doc-article .token.keyword{color:#c792ea}
[data-theme="dark"] .doc-article .token.string{color:#c3e88d}
[data-theme="dark"] .doc-article .token.number,[data-theme="dark"] .doc-article .token.boolean{color:#f78c6c}
[data-theme="dark"] .doc-article .token.comment{color:#64748b;font-style:italic}
[data-theme="dark"] .doc-article .token.function{color:#82aaff}
[data-theme="dark"] .doc-article .token.tag{color:#f07178}
[data-theme="dark"] .doc-article .token.attr-name{color:#ffcb6b}
[data-theme="dark"] .doc-article .token.attr-value{color:#c3e88d}
[data-theme="dark"] .doc-article .token.punctuation{color:#89ddff}
[data-theme="dark"] .doc-article .token.operator{color:#89ddff}
[data-theme="dark"] .doc-article .token.property{color:#82aaff}
[data-theme="dark"] .doc-article .token.selector{color:#c3e88d}

/* === 引用块 / 分隔线 === */
.doc-article blockquote{margin:16px 0;padding:12px 20px;border-left:4px solid var(--primary);background:rgba(22,93,255,.05);border-radius:0 8px 8px 0;color:var(--sub);font-size:13px;line-height:1.8}
[data-theme="dark"] .doc-article blockquote{background:rgba(59,130,246,.08)}
.doc-article blockquote p{margin-bottom:8px}
.doc-article blockquote p:last-child{margin-bottom:0}
.doc-article hr{border:none;border-top:1px solid var(--border);margin:24px 0}
