/* Lux 代码块美化：Prism 双主题语法高亮 + 行号 + 一键复制 + mermaid */

/* 代码块容器 */
.markdown-body .code-wrap{position:relative;margin:1.4em 0}
.markdown-body pre[class*="language-"]{background:var(--code-bg);border:.5px solid var(--code-border);
  border-radius:var(--radius-card);padding:16px 18px;overflow:auto;font-size:13px;line-height:1.75;margin:0}
.markdown-body pre[class*="language-"],.markdown-body code[class*="language-"]{
  font-family:var(--font-mono);color:#e6e9f0;text-shadow:none;white-space:pre;tab-size:4}
.markdown-body pre code{background:none;padding:0;border-radius:0;font-size:inherit;color:inherit}
:root[data-theme="light"] .markdown-body pre[class*="language-"],
:root[data-theme="light"] .markdown-body code[class*="language-"]{color:#2a2d34}

/* 复制按钮 + 语言标签 */
.code-wrap .lux-code-lang{position:absolute;top:9px;left:14px;z-index:3;font-size:10px;letter-spacing:1px;
  text-transform:uppercase;color:var(--text-dim);pointer-events:none}
.code-wrap .lux-copy-btn{position:absolute;top:7px;right:8px;z-index:3;font-size:11px;color:var(--text-muted);
  background:var(--surface-2);border:.5px solid var(--border);border-radius:6px;padding:4px 10px;cursor:pointer;
  opacity:0;transition:opacity .2s,color .2s,border-color .2s}
.code-wrap:hover .lux-copy-btn{opacity:1}
.lux-copy-btn:hover,.lux-copy-btn.copied{color:var(--accent);border-color:var(--accent)}
.code-wrap pre[class*="language-"]{padding-top:30px}

/* Prism token 配色 — 深色（默认） */
.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6b7385}
.token.punctuation{color:#9aa3b2}
.token.property,.token.tag,.token.boolean,.token.number,.token.constant,.token.symbol,.token.deleted{color:#e0a458}
.token.selector,.token.attr-name,.token.string,.token.char,.token.builtin,.token.inserted{color:#9ad17a}
.token.operator,.token.entity,.token.url{color:#9aa3b2}
.token.atrule,.token.attr-value,.token.keyword{color:#c98fd1}
.token.function,.token.class-name{color:#6cb6ff}
.token.regex,.token.important,.token.variable{color:#5bc7c0}

/* Prism token 配色 — 浅色覆盖 */
:root[data-theme="light"] .token.comment,:root[data-theme="light"] .token.prolog,
:root[data-theme="light"] .token.doctype,:root[data-theme="light"] .token.cdata{color:#9a9384}
:root[data-theme="light"] .token.punctuation,:root[data-theme="light"] .token.operator,
:root[data-theme="light"] .token.entity,:root[data-theme="light"] .token.url{color:#6B7280}
:root[data-theme="light"] .token.property,:root[data-theme="light"] .token.tag,
:root[data-theme="light"] .token.boolean,:root[data-theme="light"] .token.number,
:root[data-theme="light"] .token.constant,:root[data-theme="light"] .token.symbol{color:#b5722a}
:root[data-theme="light"] .token.selector,:root[data-theme="light"] .token.attr-name,
:root[data-theme="light"] .token.string,:root[data-theme="light"] .token.char,
:root[data-theme="light"] .token.builtin,:root[data-theme="light"] .token.inserted{color:#3f8f4f}
:root[data-theme="light"] .token.atrule,:root[data-theme="light"] .token.attr-value,
:root[data-theme="light"] .token.keyword{color:#8B3FB8}
:root[data-theme="light"] .token.function,:root[data-theme="light"] .token.class-name{color:#2E6FB8}
:root[data-theme="light"] .token.regex,:root[data-theme="light"] .token.important,
:root[data-theme="light"] .token.variable{color:#1d7a72}

/* 行号（Prism line-numbers 插件）—— 行号容器相对 code 定位，用负 left 移入左侧栏 */
pre[class*="language-"].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}
pre[class*="language-"].line-numbers>code{position:relative;white-space:inherit}
.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;
  letter-spacing:-1px;border-right:.5px solid var(--code-border);user-select:none}
.line-numbers-rows>span{display:block;counter-increment:linenumber}
.line-numbers-rows>span::before{content:counter(linenumber);color:var(--text-dim);display:block;padding-right:.9em;text-align:right}
.code-wrap pre.line-numbers{padding-top:30px}

/* 行内 code */
.markdown-body :not(pre)>code{background:var(--surface-2);padding:2px 6px;border-radius:6px;
  color:var(--accent-strong);font-family:var(--font-mono);font-size:.9em}

/* mermaid 流程图 */
.markdown-body .mermaid{background:var(--surface-2);border:.5px solid var(--border);border-radius:var(--radius-card);
  padding:22px;margin:1.4em 0;text-align:center;overflow:auto;font-family:var(--font-sans)}
.markdown-body .mermaid:not([data-processed]){color:var(--text-dim);font-family:var(--font-mono);font-size:13px;white-space:pre;text-align:left}
.markdown-body .mermaid svg{max-width:100%;height:auto}
