/* Download Button 区块 - 前端与编辑器共有样式
 * 组成：左侧“下载按钮”（链接）+ 可选右侧“提取码”（点击复制）。
 * 主题变量集中在 .dbtn-wrap，通过 prefers-color-scheme 适配亮/暗色。
 */

.dbtn-wrap {
	/* 主题变量（亮色默认） */
	--dbtn-accent: #eef9fe;
	--dbtn-accent-hover: #e0f3fc;
	--dbtn-accent-active: #d2ecf9;
	--dbtn-download-text: #0693e3;

	--dbtn-code-bg: #e3f4fd;
	--dbtn-code-bg-hover: #d3eafa;
	--dbtn-code-text: #0693e3;
	--dbtn-code-label: #0693e3;
	--dbtn-divider: rgba(6, 147, 227, 0.18);

	--dbtn-tip-bg: #1f2937;
	--dbtn-tip-text: #ffffff;

	--dbtn-radius: 6px;

	display: inline-flex;
	align-items: stretch;
	max-width: 100%;
	vertical-align: middle;
	border-radius: var(--dbtn-radius);
	font-size: 13px;
	line-height: 1.2;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
	/* 让提示气泡可以溢出显示 */
	overflow: visible;
}

/* 居中/左右对齐（配合区块 align 支持） */
.dbtn-wrap.aligncenter {
	display: inline-flex;
}

/* ============ 下载按钮部分 ============ */
.dbtn__download {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	background: var(--dbtn-accent);
	color: var(--dbtn-download-text);
	font-weight: 600;
	text-decoration: none;
	border: none;
	cursor: pointer;
	border-radius: var(--dbtn-radius);
	transition: background-color 0.18s ease;
	white-space: nowrap;
}

.dbtn__download:hover,
.dbtn__download:focus-visible {
	background: var(--dbtn-accent-hover);
	color: var(--dbtn-download-text);
}

.dbtn__download:active {
	background: var(--dbtn-accent-active);
}

.dbtn__icon {
	flex: none;
	width: 1.15em;
	height: 1.15em;
}

.dbtn__text {
	white-space: nowrap;
}

/* ============ 有提取码时：按钮扩大，左右分区 ============ */
.dbtn-wrap--has-code .dbtn__download {
	border-radius: var(--dbtn-radius) 0 0 var(--dbtn-radius);
	/* 分隔线 */
	box-shadow: inset -1px 0 0 var(--dbtn-divider);
}

/* ============ 提取码部分（可点击复制） ============ */
.dbtn__code {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 11px;
	background: var(--dbtn-code-bg);
	color: var(--dbtn-code-text);
	font: inherit;
	border: none;
	cursor: pointer;
	border-radius: 0 var(--dbtn-radius) var(--dbtn-radius) 0;
	transition: background-color 0.18s ease;
	white-space: nowrap;
	max-width: 100%;
}

.dbtn__code:hover,
.dbtn__code:focus-visible {
	background: var(--dbtn-code-bg-hover);
}

.dbtn__code-label {
	color: var(--dbtn-code-label);
	font-size: 0.82em;
	font-weight: 500;
}

.dbtn__code-value {
	font-weight: 700;
	letter-spacing: 0.02em;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dbtn__copy-icon {
	flex: none;
	width: 1em;
	height: 1em;
	opacity: 0.7;
}

.dbtn__code:hover .dbtn__copy-icon,
.dbtn__code:focus-visible .dbtn__copy-icon {
	opacity: 1;
}

/* 键盘焦点可见 */
.dbtn__download:focus-visible,
.dbtn__code:focus-visible {
	outline: 2px solid var(--dbtn-download-text);
	outline-offset: 2px;
}

/* ============ 复制成功提示气泡 ============ */
.dbtn__tip {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, 4px);
	background: var(--dbtn-tip-bg);
	color: var(--dbtn-tip-text);
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	padding: 7px 10px;
	border-radius: 6px;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.25);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.2s ease;
	z-index: 10;
}

.dbtn__tip::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: var(--dbtn-tip-bg);
}

.dbtn__tip.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
}

.dbtn__tip--error {
	--dbtn-tip-bg: #b91c1c;
}

/* ============ 暗色模式 ============ */
@media (prefers-color-scheme: dark) {
	.dbtn-wrap {
		--dbtn-accent: #12303f;
		--dbtn-accent-hover: #17394c;
		--dbtn-accent-active: #0e2633;
		--dbtn-download-text: #6cc6f2;

		--dbtn-code-bg: #17394c;
		--dbtn-code-bg-hover: #1d4459;
		--dbtn-code-text: #6cc6f2;
		--dbtn-code-label: #6cc6f2;
		--dbtn-divider: rgba(255, 255, 255, 0.15);

		--dbtn-tip-bg: #e5e7eb;
		--dbtn-tip-text: #111827;

		box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
	}
}

/* 主题若通过 body/html 类切换暗色，也一并适配 */
body.dark-mode .dbtn-wrap,
html.dark .dbtn-wrap,
[data-theme="dark"] .dbtn-wrap {
	--dbtn-accent: #12303f;
	--dbtn-accent-hover: #17394c;
	--dbtn-accent-active: #0e2633;
	--dbtn-download-text: #6cc6f2;
	--dbtn-code-bg: #17394c;
	--dbtn-code-bg-hover: #1d4459;
	--dbtn-code-text: #6cc6f2;
	--dbtn-code-label: #6cc6f2;
	--dbtn-divider: rgba(255, 255, 255, 0.15);
	--dbtn-tip-bg: #e5e7eb;
	--dbtn-tip-text: #111827;
}

/* ============ 移动端适配 ============ */
@media (max-width: 480px) {
	.dbtn-wrap {
		font-size: 12px;
	}

	.dbtn__download {
		padding: 7px 12px;
		gap: 6px;
	}

	.dbtn__code {
		padding: 7px 10px;
		gap: 5px;
	}

	/* 提取码过长时允许收缩，避免横向溢出 */
	.dbtn__code-value {
		max-width: 40vw;
	}
}

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
	.dbtn__download,
	.dbtn__code,
	.dbtn__tip {
		transition: none;
	}
}

/* 屏幕阅读器专用文本（若主题未定义则兜底） */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
