/* Structural styles for code blocks */
.tiptap {
	:first-child {
		margin-top: 0;
	}

	pre {
		border-radius: 1rem;
		font-family: 'JetBrainsMono', monospace;
		margin: 1.5rem 0;
		padding: 0.75rem 1rem;

		code {
			background: none;
			color: inherit;
			font-size: 0.8rem;
			padding: 0;
		}
	}
}

/* GitHub Light theme (default) */
.tiptap pre {
	background: #ffffff;
	color: #24292e;
	border: 1px solid #d0d7de;
}

.tiptap pre .hljs-doctag,
.tiptap pre .hljs-keyword,
.tiptap pre .hljs-meta .hljs-keyword,
.tiptap pre .hljs-template-tag,
.tiptap pre .hljs-template-variable,
.tiptap pre .hljs-type,
.tiptap pre .hljs-variable.language_ {
	color: #d73a49;
}

.tiptap pre .hljs-title,
.tiptap pre .hljs-title.class_,
.tiptap pre .hljs-title.class_.inherited__,
.tiptap pre .hljs-title.function_ {
	color: #6f42c1;
}

.tiptap pre .hljs-attr,
.tiptap pre .hljs-attribute,
.tiptap pre .hljs-literal,
.tiptap pre .hljs-meta,
.tiptap pre .hljs-number,
.tiptap pre .hljs-operator,
.tiptap pre .hljs-selector-attr,
.tiptap pre .hljs-selector-class,
.tiptap pre .hljs-selector-id,
.tiptap pre .hljs-variable {
	color: #005cc5;
}

.tiptap pre .hljs-meta .hljs-string,
.tiptap pre .hljs-regexp,
.tiptap pre .hljs-string {
	color: #032f62;
}

.tiptap pre .hljs-built_in,
.tiptap pre .hljs-symbol {
	color: #e36209;
}

.tiptap pre .hljs-code,
.tiptap pre .hljs-comment,
.tiptap pre .hljs-formula {
	color: #6a737d;
}

.tiptap pre .hljs-name,
.tiptap pre .hljs-quote,
.tiptap pre .hljs-selector-pseudo,
.tiptap pre .hljs-selector-tag {
	color: #22863a;
}

.tiptap pre .hljs-subst {
	color: #24292e;
}

.tiptap pre .hljs-section {
	color: #005cc5;
	font-weight: bold;
}

.tiptap pre .hljs-bullet {
	color: #735c0f;
}

.tiptap pre .hljs-emphasis {
	color: #24292e;
	font-style: italic;
}

.tiptap pre .hljs-strong {
	color: #24292e;
	font-weight: bold;
}

.tiptap pre .hljs-addition {
	color: #22863a;
	background-color: #f0fff4;
}

.tiptap pre .hljs-deletion {
	color: #b31d28;
	background-color: #ffeef0;
}

/* GitHub Dark theme */
.dark .tiptap pre {
	background: #0d1117;
	color: #c9d1d9;
	border: 1px solid #30363d;
}

.dark .tiptap pre .hljs-doctag,
.dark .tiptap pre .hljs-keyword,
.dark .tiptap pre .hljs-meta .hljs-keyword,
.dark .tiptap pre .hljs-template-tag,
.dark .tiptap pre .hljs-template-variable,
.dark .tiptap pre .hljs-type,
.dark .tiptap pre .hljs-variable.language_ {
	color: #ff7b72;
}

.dark .tiptap pre .hljs-title,
.dark .tiptap pre .hljs-title.class_,
.dark .tiptap pre .hljs-title.class_.inherited__,
.dark .tiptap pre .hljs-title.function_ {
	color: #d2a8ff;
}

.dark .tiptap pre .hljs-attr,
.dark .tiptap pre .hljs-attribute,
.dark .tiptap pre .hljs-literal,
.dark .tiptap pre .hljs-meta,
.dark .tiptap pre .hljs-number,
.dark .tiptap pre .hljs-operator,
.dark .tiptap pre .hljs-selector-attr,
.dark .tiptap pre .hljs-selector-class,
.dark .tiptap pre .hljs-selector-id,
.dark .tiptap pre .hljs-variable {
	color: #79c0ff;
}

.dark .tiptap pre .hljs-meta .hljs-string,
.dark .tiptap pre .hljs-regexp,
.dark .tiptap pre .hljs-string {
	color: #a5d6ff;
}

.dark .tiptap pre .hljs-built_in,
.dark .tiptap pre .hljs-symbol {
	color: #ffa657;
}

.dark .tiptap pre .hljs-code,
.dark .tiptap pre .hljs-comment,
.dark .tiptap pre .hljs-formula {
	color: #8b949e;
}

.dark .tiptap pre .hljs-name,
.dark .tiptap pre .hljs-quote,
.dark .tiptap pre .hljs-selector-pseudo,
.dark .tiptap pre .hljs-selector-tag {
	color: #7ee787;
}

.dark .tiptap pre .hljs-subst {
	color: #c9d1d9;
}

.dark .tiptap pre .hljs-section {
	color: #79c0ff;
	font-weight: bold;
}

.dark .tiptap pre .hljs-bullet {
	color: #f2cc60;
}

.dark .tiptap pre .hljs-emphasis {
	color: #c9d1d9;
	font-style: italic;
}

.dark .tiptap pre .hljs-strong {
	color: #c9d1d9;
	font-weight: bold;
}

.dark .tiptap pre .hljs-addition {
	color: #aff5b4;
	background-color: #033a16;
}

.dark .tiptap pre .hljs-deletion {
	color: #ffdcd7;
	background-color: #67060c;
}
