code[class*="language-"],
pre[class*="language-"] {
	color: #ccc;
	background: 0 0;
	font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace;
	font-size: 1em;
	text-align: left;
	white-space: pre;
	word-spacing: normal;
	word-break: normal;
	word-wrap: 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;
}

pre[class*="language-"] {
	padding: 1em;
	margin: 0.5em 0;
	overflow: auto;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
	background: #2d2d2d;
}

:not(pre) > code[class*="language-"] {
	padding: 0.1em;
	border-radius: 0.3em;
	white-space: normal;
}

.token.block-comment,
.token.cdata,
.token.comment,
.token.doctype,
.token.prolog {
	color: #999;
}

.token.punctuation {
	color: #ccc;
}

.token.attr-name,
.token.deleted,
.token.namespace,
.token.tag {
	color: #e2777a;
}

.token.function-name {
	color: #6196cc;
}

.token.boolean,
.token.function,
.token.number {
	color: #f08d49;
}

.token.class-name,
.token.constant,
.token.property,
.token.symbol {
	color: #f8c555;
}

.token.atrule,
.token.builtin,
.token.important,
.token.keyword,
.token.selector {
	color: #cc99cd;
}

.token.attr-value,
.token.char,
.token.regex,
.token.string,
.token.variable {
	color: #7ec699;
}

.token.entity,
.token.operator,
.token.url {
	color: #67cdcc;
}

.token.bold,
.token.important {
	font-weight: 700;
}

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

.token.entity {
	cursor: help;
}

.token.inserted {
	color: green;
}

pre[class*="language-"].line-numbers {
	position: relative;
	padding-left: 3.8em;
	counter-reset: linenumber;
}

pre[class*="language-"].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 #999;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.line-numbers-rows > span {
	display: block;
	counter-increment: linenumber;
}

.line-numbers-rows > span::before {
	content: counter(linenumber);
	color: #999;
	display: block;
	padding-right: 0.8em;
	text-align: right;
}

.code-block-wrapper {
	margin: 0.5em 0;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid #3d3d4f;
}

.code-block-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 6px 12px;
	background: #2d2d3f;
	border-bottom: 1px solid #3d3d4f;
}

.code-block-lang {
	font-size: 12px;
	font-family: inherit;
	color: #e4e4e7;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.code-block-wrapper pre[class*="language-"] {
	margin: 0;
	border-radius: 0;
}

.copy-code-btn {
	padding: 4px 12px;
	background: #2d2d3f;
	color: #e4e4e7;
	border: 1px solid #3d3d4f;
	border-radius: 6px;
	font-size: 12px;
	font-family: inherit;
	cursor: pointer;
	transition: all 0.2s ease;
	line-height: 1.4;
}

.copy-code-btn:hover {
	background: #3d3d4f;
}

.copy-code-btn.copied {
	background: rgba(72, 199, 142, 0.15);
	color: #48c78e;
	border-color: rgba(72, 199, 142, 0.4);
}

[data-theme="light"] .code-block-wrapper {
	border-color: #e6e6e6;
}

[data-theme="light"] .code-block-header {
	background: #f9fafb;
	border-bottom-color: #e6e6e6;
}

[data-theme="light"] .code-block-lang {
	color: #1a1f36;
}

[data-theme="light"] .copy-code-btn {
	background: #f9fafb;
	color: #1a1f36;
	border-color: #e6e6e6;
}

[data-theme="light"] .copy-code-btn:hover {
	background: #f3f4f6;
}
