/* ============================================================
   Prism 代码主题（拾音集定制）
   浅色 / 暗色双主题 + 一键复制按钮样式
   加载位置：layout/header.php（全站，PJAX 下也不缺）
   ============================================================ */

pre[class*="language-"],
code[class*="language-"] {
    color: #334155;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.85rem;
    line-height: 1.7;
    direction: ltr;
    text-align: left;
    white-space: pre;
    word-spacing: normal;
    word-break: normal;
    tab-size: 4;
    hyphens: none
}

code[class*="language-"] {
    display: block
}

pre[class*="language-"] {
    position: relative;
    padding: 1rem 1.1rem;
    margin: 1rem 0;
    overflow: auto;
    border-radius: 0.5rem;
    background: #f1f5f9;
    border: 1px solid #e2e8f0
}

:not(pre) > code[class*="language-"] {
    display: inline;
    padding: 0.15em 0.4em;
    border-radius: 0.25rem;
    background: #e2e8f0
}

/* 无语言标记的普通代码块，与带语言的保持一致 */
.markdown-body pre:not([class*="language-"]) {
    padding: 1rem 1.1rem;
    margin: 1rem 0;
    overflow: auto;
    border-radius: 0.5rem;
    background: #f1f5f9;
    border: 1px solid #e2e8f0
}

.markdown-body pre:not([class*="language-"]) code {
    color: #334155;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.85rem;
    line-height: 1.7
}

/* ---------- 浅色 token ---------- */
.token.comment, .token.prolog, .token.doctype, .token.cdata { color: #94a3b8; font-style: italic }
.token.punctuation { color: #64748b }
.token.property, .token.tag, .token.constant, .token.symbol, .token.deleted { color: #e11d48 }
.token.boolean, .token.number { color: #ea580c }
.token.selector, .token.attr-name, .token.string, .token.char, .token.builtin, .token.inserted { color: #059669 }
.token.operator, .token.entity, .token.url, .language-css .token.string, .style .token.string { color: #0d9488 }
.token.atrule, .token.attr-value, .token.keyword { color: #2563eb }
.token.function, .token.class-name { color: #7c3aed }
.token.regex, .token.important, .token.variable { color: #d97706 }
.token.important, .token.bold { font-weight: bold }
.token.italic { font-style: italic }

/* ---------- 暗色 ---------- */
.dark pre[class*="language-"] {
    background: #0f172a;
    border-color: #334155
}

.dark code[class*="language-"] {
    color: #cbd5e1
}

.dark .markdown-body pre:not([class*="language-"]) {
    background: #0f172a;
    border-color: #334155
}

.dark .markdown-body pre:not([class*="language-"]) code {
    color: #cbd5e1
}

.dark :not(pre) > code[class*="language-"] {
    background: #334155;
    color: #e2e8f0
}

.dark .token.comment, .dark .token.prolog, .dark .token.doctype, .dark .token.cdata { color: #64748b }
.dark .token.punctuation { color: #94a3b8 }
.dark .token.property, .dark .token.tag, .dark .token.constant, .dark .token.symbol, .dark .token.deleted { color: #fb7185 }
.dark .token.boolean, .dark .token.number { color: #fbbf24 }
.dark .token.selector, .dark .token.attr-name, .dark .token.string, .dark .token.char, .dark .token.builtin, .dark .token.inserted { color: #34d399 }
.dark .token.operator, .dark .token.entity, .dark .token.url { color: #2dd4bf }
.dark .token.atrule, .dark .token.attr-value, .dark .token.keyword { color: #60a5fa }
.dark .token.function, .dark .token.class-name { color: #a78bfa }
.dark .token.regex, .dark .token.important, .dark .token.variable { color: #f59e0b }

/* ---------- 一键复制按钮 ---------- */
.code-block-wrap {
    position: relative
}

.code-copy-btn {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 5;
    padding: 2px 10px;
    font-size: 12px;
    line-height: 1.6;
    color: #64748b;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 0.375rem;
    opacity: 0;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: opacity 0.15s ease, color 0.15s ease, border-color 0.15s ease
}

.code-block-wrap:hover .code-copy-btn,
.code-copy-btn:focus-visible {
    opacity: 1
}

.code-copy-btn:hover {
    color: #3b82f6;
    border-color: #60a5fa
}

.code-copy-btn.ok {
    color: #059669;
    border-color: #34d399;
    opacity: 1
}

.dark .code-copy-btn {
    background: #1e293b;
    border-color: #334155;
    color: #94a3b8
}

.dark .code-copy-btn:hover {
    color: #60a5fa;
    border-color: #3b82f6
}

.dark .code-copy-btn.ok {
    color: #34d399;
    border-color: #10b981
}

/* 触屏设备没有 hover，常显按钮 */
@media (hover: none) {
    .code-copy-btn {
        opacity: 1
    }
}
