/*
 * M2Media Core — bloques de código.
 * Se carga solo en artículos con código. Respeta el modo de color de los
 * themes M2Media (atributo data-theme en <html>) y el del sistema.
 * Colores con contraste AA (paleta basada en la de GitHub).
 */
:root {
	--mm-code-bg: #f4f5f0; --mm-code-bar: #eceee7; --mm-code-line: #dcdfd6;
	--mm-code-text: #1f2328; --mm-code-muted: #57606a;
	--mm-tk-keyword: #cf222e; --mm-tk-string: #0a3069; --mm-tk-number: #0550ae;
	--mm-tk-comment: #57606a; --mm-tk-title: #8250df; --mm-tk-builtin: #953800;
	--mm-tk-tag: #116329; --mm-tk-attr: #0550ae;
	--mm-tk-add-bg: #dafbe1; --mm-tk-add: #116329; --mm-tk-del-bg: #ffebe9; --mm-tk-del: #82071e;
}
:root[data-theme="dark"] {
	--mm-code-bg: #0b1013; --mm-code-bar: #11181b; --mm-code-line: #26313a;
	--mm-code-text: #e6edf3; --mm-code-muted: #9da7b3;
	--mm-tk-keyword: #ff7b72; --mm-tk-string: #a5d6ff; --mm-tk-number: #79c0ff;
	--mm-tk-comment: #9da7b3; --mm-tk-title: #d2a8ff; --mm-tk-builtin: #ffa657;
	--mm-tk-tag: #7ee787; --mm-tk-attr: #79c0ff;
	--mm-tk-add-bg: #033a16; --mm-tk-add: #aff5b4; --mm-tk-del-bg: #67060c; --mm-tk-del: #ffdcd7;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--mm-code-bg: #0b1013; --mm-code-bar: #11181b; --mm-code-line: #26313a;
		--mm-code-text: #e6edf3; --mm-code-muted: #9da7b3;
		--mm-tk-keyword: #ff7b72; --mm-tk-string: #a5d6ff; --mm-tk-number: #79c0ff;
		--mm-tk-comment: #9da7b3; --mm-tk-title: #d2a8ff; --mm-tk-builtin: #ffa657;
		--mm-tk-tag: #7ee787; --mm-tk-attr: #79c0ff;
		--mm-tk-add-bg: #033a16; --mm-tk-add: #aff5b4; --mm-tk-del-bg: #67060c; --mm-tk-del: #ffdcd7;
	}
}

.code-block {
	margin: 0 0 1.25em;
	border: 1px solid var(--mm-code-line); border-radius: var(--mm-radius-sm, 6px);
	background: var(--mm-code-bg); overflow: hidden;
	font-family: var(--mm-font-sans, system-ui, sans-serif);
}
.code-block__bar {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 6px 8px 6px 16px;
	background: var(--mm-code-bar); border-bottom: 1px solid var(--mm-code-line);
}
.code-block__lang {
	font-family: var(--mm-font-mono, ui-monospace, monospace); font-size: .75rem; font-weight: 600;
	text-transform: uppercase; letter-spacing: .06em; color: var(--mm-code-muted);
}
.entry-content .code-block__copy {
	min-height: 32px; padding: 4px 12px;
	background: transparent; color: var(--mm-code-text);
	border: 1px solid var(--mm-code-line); border-radius: 999px;
	font: inherit; font-size: .8125rem; font-weight: 600;
}
.entry-content .code-block__copy:hover { background: var(--mm-code-bg); filter: none; }
.entry-content .code-block__copy.is-done { border-color: var(--mm-tk-tag); color: var(--mm-tk-tag); }
.entry-content .code-block pre { margin: 0; border: 0; border-radius: 0; background: transparent; }
.entry-content .code-block pre:focus-visible { outline: 3px solid var(--mm-focus, #1d4ed8); outline-offset: -3px; }

.hljs-keyword, .hljs-selector-tag, .hljs-literal, .hljs-doctag, .hljs-template-tag, .hljs-type { color: var(--mm-tk-keyword); }
.hljs-string, .hljs-regexp, .hljs-meta .hljs-string, .hljs-char.escape_ { color: var(--mm-tk-string); }
.hljs-number, .hljs-variable.constant_, .hljs-symbol, .hljs-attr, .hljs-attribute, .hljs-meta, .hljs-selector-attr, .hljs-selector-class, .hljs-selector-id, .hljs-property, .hljs-operator { color: var(--mm-tk-number); }
.hljs-comment, .hljs-quote { color: var(--mm-tk-comment); font-style: italic; }
.hljs-title, .hljs-title.function_, .hljs-title.class_, .hljs-section { color: var(--mm-tk-title); }
.hljs-built_in, .hljs-variable, .hljs-params, .hljs-title.class_.inherited__, .hljs-variable.language_ { color: var(--mm-tk-builtin); }
.hljs-name, .hljs-tag, .hljs-selector-pseudo, .hljs-bullet { color: var(--mm-tk-tag); }
.hljs-section { font-weight: 700; }
.hljs-emphasis { font-style: italic; }
.hljs-strong { font-weight: 700; }
.hljs-addition { color: var(--mm-tk-add); background: var(--mm-tk-add-bg); }
.hljs-deletion { color: var(--mm-tk-del); background: var(--mm-tk-del-bg); }
.hljs-subst, .hljs-punctuation { color: var(--mm-code-text); }

@media print {
	.code-block__bar { display: none; }
	.code-block, .entry-content pre { border: 1px solid #999; background: #fff; color: #000; white-space: pre-wrap; }
}

/* El código no se parte en varias líneas: se desplaza en horizontal (y con teclado). */
.entry-content pre code { white-space: pre; overflow-wrap: normal; word-break: normal; }
