/* ============================================================
   代码块美化：语言标签 + 复制按钮 + 行号
   配合 prism.css 使用，作用于所有 pre[class*="language-"]
   ============================================================ */
/* 兜底：即使 JS 未执行（无 .code-block 包裹），代码块也保持深色背景
   兼容两种 HTML 结构：class 在 pre 上、或 class 在 code 上（:has）
   此文件在 prism.css 之后加载，优先级相同者后者生效 */
pre[class*="language-"],
pre:has(> code[class*="language-"]) {
	background: #0d1b33;
}

pre:has(> code[class*="language-"]) {
	position: relative;
	margin: 0 0 20px;
	overflow: auto;
	padding: 1em;
}

pre:has(> code[class*="language-"]) code {
	display: block;
	background: none;
	border: none;
	padding: 0;
}

.code-block {
	position: relative;
	margin: 0 0 20px;
	border-radius: 12px;
	overflow: hidden;
	background: #0d1b33;
	box-shadow: 0 8px 24px rgba(13, 35, 70, .18);
}

.code-block-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 14px;
	background: rgba(255, 255, 255, .05);
	border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.code-block-lang {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: #7dd3fc;
}

.code-block-copy {
	border: 1px solid rgba(255, 255, 255, .18);
	background: rgba(255, 255, 255, .06);
	color: #dbe7fb;
	font-size: 12px;
	line-height: 1;
	padding: 5px 12px;
	border-radius: 6px;
	cursor: pointer;
	transition: all .2s;
	font-family: inherit;
}

.code-block-copy:hover {
	background: rgba(255, 255, 255, .14);
	border-color: rgba(255, 255, 255, .35);
}

.code-block pre[class*="language-"] {
	margin: 0;
	padding: 16px 18px 16px 3.8em;
	background: transparent;
	border-radius: 0;
	/* 细滚动条 */
	scrollbar-width: thin;
	scrollbar-color: rgba(255, 255, 255, .22) transparent;
}

.code-block pre[class*="language-"]::-webkit-scrollbar {
	height: 8px;
	width: 8px;
}

.code-block pre[class*="language-"]::-webkit-scrollbar-track {
	background: transparent;
}

.code-block pre[class*="language-"]::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, .18);
	border-radius: 4px;
}

.code-block pre[class*="language-"]::-webkit-scrollbar-thumb:hover {
	background: rgba(255, 255, 255, .32);
}

/* ---------- 行号（Prism line-numbers 方案） ---------- */
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;
}

.code-block .line-numbers-rows {
	left: -3.6em;
	width: 3em;
	border-right-color: rgba(255, 255, 255, .14);
}

.line-numbers-rows > span {
	display: block;
	counter-increment: linenumber;
}

.line-numbers-rows > span:before {
	content: counter(linenumber);
	color: #999;
	display: block;
	padding-right: .8em;
	text-align: right;
}

.code-block .line-numbers-rows > span:before {
	color: rgba(148, 163, 184, .75);
}
