/* Syntax Highlighting — 兼容 Prism token 命名
 * 基于 Blueprint Technical 暗色主题 */
.markdown-body pre {
    background: var(--surface-secondary);
    border: 1px solid var(--border-primary);
    padding: 20px 24px;
    overflow-x: auto;
    font-family: var(--mono-font);
    font-size: .86em;
    line-height: 1.7;
}
.markdown-body pre code {
    color: var(--foreground-primary);
    background: none;
    padding: 0;
    border: none;
    font-size: inherit;
}
.markdown-body :not(pre) > code {
    background: var(--surface-secondary);
    color: var(--accent-primary);
    padding: 2px 8px;
    border: 1px solid var(--border-primary);
    font-size: .88em;
    font-family: var(--mono-font);
}

/* ---- Token Colors ---- */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
    color: #6B7280;
    font-style: italic;
}
.token.punctuation {
    color: #9CA3AF;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
    color: #F59E0B;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
    color: #22C55E;
}
.token.operator,
.token.entity,
.token.url {
    color: #A78BFA;
}
.token.atrule,
.token.attr-value,
.token.keyword {
    color: #A855F7;
}
.token.function,
.token.class-name {
    color: #38BDF8;
}
.token.regex,
.token.important,
.token.variable {
    color: #FB923C;
}
.token.annotation,
.token.decorator {
    color: #FBBF24;
}
.token.important,
.token.bold {
    font-weight: 600;
}
.token.italic {
    font-style: italic;
}
.token.entity {
    cursor: help;
}
.token.namespace {
    opacity: .7;
}

/* ---- Diff ---- */
.token.deleted { background: rgba(239, 68, 68, 0.12); }
.token.inserted { background: rgba(34, 197, 94, 0.12); }

/* ---- Line Numbers ---- */
pre.line-numbers {
    position: relative;
    padding-left: 3.8em;
    counter-reset: linenumber;
}
pre.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: 1px solid var(--border-primary);
    user-select: none;
}
.line-numbers-rows > span {
    display: block;
    counter-increment: linenumber;
}
.line-numbers-rows > span:before {
    content: counter(linenumber);
    color: var(--foreground-muted);
    display: block;
    padding-right: .8em;
    text-align: right;
}
