pre[class*="language-"],
code[class*="language-"] {
	color: var(--muted-text); /* Default code text */
	font-size: 13px;
	text-shadow: none;
	font-family: Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace;
	font-family: var(--theme-font-mono);
	direction: ltr;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	line-height: 1.5;
	-moz-tab-size: 4;
	-o-tab-size: 4;
	tab-size: 4;
	-webkit-hyphens: none;
	-moz-hyphens: none;
	-ms-hyphens: none;
	hyphens: none;
}

/* Text selection */
pre[class*="language-"]::selection,
code[class*="language-"]::selection,
pre[class*="language-"] *::selection,
code[class*="language-"] *::selection {
	text-shadow: none;
	background: color-mix(in oklab, var(--accent-secondary) 65%, var(--bg-primary));
}

/* Print fallback */
@media print {
	pre[class*="language-"],
	code[class*="language-"] {
		text-shadow: none;
	}
}

pre[class*="language-"] {
	padding: 1em;
	margin: .5em 0;
	overflow: auto;
	background: color-mix(in oklab, var(--bg-primary) 97%, black);
	/* border-radius: var(--border-radius); */
	/* box-shadow: var(--shadow); */
	border: 1px solid var(--border-primary);
}

:not(pre) > code[class*="language-"] {
	padding: .1em .3em;
	border-radius: 0.35em;
	color: var(--accent-primary);
	background: color-mix(in oklab, var(--bg-primary) 70%, var(--accent-primary));
}
.namespace {
	opacity: .7;
}

/* Syntax token color mapping — adjusted for contrast and theme color harmony */

.token.doctype .token.doctype-tag,
.token.keyword, .token.boolean {
	color: var(--accent-primary);
}

.token.doctype .token.name,
.token.constant, .token.class-name,
.token.maybe-class-name, .token.console,
.token.parameter, .token.interpolation, 
.token.property, .token.variable {
	color: var(--accent-secondary);
}

.token.comment, .token.prolog {
	color: var(--muted-text);
	font-style: italic;
	opacity: 0.8;
}

.token.punctuation,
.language-html .language-css .token.punctuation,
.language-html .language-javascript .token.punctuation,
.token.operator,
.token.entity {
	color: color-mix(in oklab, var(--muted-text) 75%, var(--text-primary));
}

.token.property, .token.tag,
.token.number, .token.constant, .token.symbol,
.token.unit, .token.inserted {
	color: color-mix(in oklab, var(--accent-3, var(--accent-secondary)) 85%, var(--bg-primary));
}

.token.selector, .token.attr-name, .token.string, .token.char,
.token.builtin, .token.deleted,
.token.atrule, .token.attr-value {
	color: var(--text-primary);
}

.language-css .token.string.url {
	text-decoration: underline;
}

.token.operator.arrow, .token.punctuation.interpolation-punctuation,
.token.entity, .token.important {
	color: var(--accent-primary);
}

.token.atrule .token.rule, .token.keyword.module,
.token.keyword.control-flow {
	color: color-mix(in oklab, var(--accent-primary) 60%, var(--accent-secondary));
}

.token.atrule .token.url {
	color: var(--accent-secondary);
}

.token.atrule .token.url .token.function {
	color: color-mix(in oklab, var(--accent-secondary) 80%, var(--text-primary) 20%);
}

.token.atrule .token.url .token.punctuation {
	color:  color-mix(in oklab, var(--border-primary) 50%, var(--text-primary));
}

.token.function {
	color: color-mix(in oklab, var(--accent-primary) 72%, var(--bg-primary));
}

.token.regex {
	color: color-mix(in oklab, var(--accent-primary) 40%, var(--text-primary));
}

.token.italic {
	font-style: italic;
}

/* Variable/class name/namespace use accent 3 if available, or fallback to secondary */
.token.namespace {
	color: var(--accent-3, var(--accent-secondary));
}

/* Miscellaneous tokens */
.token.tag {
	color: var(--accent-secondary);
}
.token.tag .token.punctuation,
.token.cdata {
	color: color-mix(in oklab, var(--border-primary) 50%, var(--text-primary));
}
.token.selector, .token.escape {
	color: var(--accent-4, var(--accent-secondary));
}
.token.attr-name {
	color: var(--accent-primary);
}
.token.attr-value .token.punctuation.attr-equals {
	color: var(--text-primary);
}

/* Per-language tune: JS/TS/HTML/CSS */
pre[class*="language-javascript"],
code[class*="language-javascript"],
pre[class*="language-jsx"],
code[class*="language-jsx"],
pre[class*="language-typescript"],
code[class*="language-typescript"],
pre[class*="language-tsx"],
code[class*="language-tsx"] {
	color: var(--accent-secondary);
}

pre[class*="language-css"],
code[class*="language-css"] {
	color: color-mix(in oklab, var(--accent-primary) 60%, var(--accent-secondary) 35%);
}

pre[class*="language-html"],
code[class*="language-html"] {
	color: var(--text-primary);
}

/* example regex primary color */
.language-regex .token.anchor {
	color: color-mix(in oklab, var(--accent-primary) 90%, var(--bg-primary));
}

.language-html .token.punctuation {
	color:  color-mix(in oklab, var(--border-primary) 50%, var(--text-primary));
}

/* Line highlighting (background bar for highlighted lines) */
.line-highlight.line-highlight {
	background: color-mix(in oklab, var(--accent-secondary) 15%, var(--card-bg));
	box-shadow: inset 5px 0 0 var(--accent-primary);
	z-index: 0;
}