/**
 * 个人主页样式 · 现代 SaaS 紫派
 * 主色 #6d4aff + 大圆角 + 柔和阴影 + 微交互
 *
 * 组织：
 *   1. 变量 & 基础
 *   2. 通用组件（avatar / badge / card / button）
 *   3. 公开主页专属（banner / stats / tabs / grid）
 *   4. Dashboard 专属（sidebar / dashboard-banner / quick-actions）
 *   5. 响应式
 */

/* ==================== 1. 变量 & 基础 ==================== */
.yk-author-page,
.yk-dashboard {
	--yk-primary: #6d4aff;
	--yk-primary-hover: #5b3ce0;
	--yk-primary-light: #f3f0ff;
	--yk-primary-shadow: 0 4px 12px rgba(109, 74, 255, .3);
	--yk-primary-shadow-sm: 0 4px 12px rgba(109, 74, 255, .2);
	--yk-bg: #f4f6fa;
	--yk-card-bg: #fff;
	--yk-border: #f3f4f6;
	--yk-border-strong: #e5e7eb;
	--yk-text: #1e293b;
	--yk-text-muted: #64748b;
	--yk-text-light: #9ca3af;
	--yk-text-soft: #94a3b8;
	--yk-radius-sm: .5rem;
	--yk-radius-md: .75rem;
	--yk-radius-lg: 1rem;
	--yk-radius-xl: 1.25rem;
	--yk-radius-2xl: 1.5rem;
	--yk-shadow-sm: 0 1px 3px rgba(0, 0, 0, .04);
	--yk-shadow-md: 0 4px 20px rgba(0, 0, 0, .04);
	--yk-shadow-lg: 0 8px 30px rgba(0, 0, 0, .06);

	background: var(--yk-bg);
	color: var(--yk-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
	min-height: 100vh;
	/* 主题 header 是 fixed 定位，需留 padding-top 占位（与 index.php pt-16 lg:pt-24 对齐） */
	padding-top: 64px;
	padding-bottom: 48px;
}
@media (min-width: 1024px) {
	.yk-author-page,
	.yk-dashboard {
		padding-top: 96px;
	}
}

.yk-author-container {
	max-width: 1800px;
	margin: 0 auto;
	/* 与主题 main 容器 px-3 sm:px-6 lg:px-8 对齐；上下间距由外层 padding-top 提供 */
	padding: 0 .75rem;
}
@media (min-width: 640px) {
	.yk-author-container { padding: 0 1.5rem; }
}
@media (min-width: 1024px) {
	.yk-author-container { padding: 0 2rem; }
}

.yk-author-page *,
.yk-dashboard * {
	box-sizing: border-box;
}

/* ==================== 2. 通用组件 ==================== */

/* ----- Avatar -----
 * Tailwind preflight 全局会强制 img 的 height: auto 覆盖我们的 100%，
 * 必须用 !important 防覆盖；同时 aspect-ratio: 1 兜底保持正方形 → 圆形 */
.yk-author-avatar {
	position: relative;
	flex-shrink: 0;
	border-radius: 9999px;
	overflow: hidden;
	border: 4px solid #fff;
	box-shadow: var(--yk-shadow-md);
	background: #f3f4f6;
	aspect-ratio: 1 / 1;
}
.yk-author-avatar img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	display: block;
	border-radius: 0 !important;
	border: 0 !important;
}
.yk-author-avatar--lg { width: 120px; height: 120px; }
.yk-author-avatar--md { width: 104px; height: 104px; border-width: 3px; }
.yk-author-avatar--sm { width: 40px; height: 40px; border-width: 2px; }

/* ----- Avatar 更换按钮（banner 头像右下角悬浮按钮） ----- */
.yk-avatar-wrap {
	position: relative;
	display: inline-flex;
	flex-shrink: 0;
}
.yk-avatar-change-btn {
	position: absolute;
	bottom: 2px;
	right: 2px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--yk-primary);
	color: #fff;
	border: 2px solid #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .15);
	transition: transform .15s, background-color .15s;
	padding: 0;
}
.yk-avatar-change-btn:hover {
	background: var(--yk-primary-hover);
	transform: scale(1.08);
}
.yk-avatar-change-btn:active {
	transform: scale(.95);
}
.yk-avatar-change-btn.is-loading {
	pointer-events: none;
	opacity: .6;
}

/* 粉丝墙 / activity 等小型 avatar 也防 Tailwind preflight 覆盖
 * 注意：仅对包裹在固定尺寸容器内的 img 使用 100%，不要把 .yk-download-item img 加进来
 *（download-item 的 img 是 flex 直接子项，自带 64x64 尺寸规则）*/
.yk-fans-wall__avatar img,
.yk-activity-item__thumb img,
.yk-game-card__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
}

.yk-author-avatar__online {
	position: absolute;
	bottom: 6px;
	right: 6px;
	width: 16px;
	height: 16px;
	background: #10b981;
	border: 3px solid #fff;
	border-radius: 50%;
}

/* ----- User Info ----- */
.yk-author-info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding-top: .5rem;
	min-width: 0;
}
.yk-author-info__name-row {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .5rem;
}
.yk-author-info__name {
	font-size: 2.25rem;
	font-weight: 800;
	color: var(--yk-text);
	letter-spacing: -.02em;
	margin: 0;
	line-height: 1.1;
}
.yk-author-info__name--md { font-size: 1.875rem; }
.yk-author-info__verified {
	width: 28px;
	height: 28px;
	color: var(--yk-primary);
	fill: var(--yk-primary);
	stroke: #fff;
}
.yk-author-info__tagline {
	color: var(--yk-text-muted);
	font-size: 15px;
	margin: 0 0 1rem 0;
	font-weight: 500;
}
.yk-author-info__tagline--sm { font-size: 14px; margin-bottom: 14px; }
.yk-author-info__badges {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: 1.25rem;
	flex-wrap: wrap;
}
.yk-author-info__quote {
	position: relative;
	background: rgba(255, 255, 255, .4);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(255, 255, 255, .6);
	border-radius: var(--yk-radius-md);
	padding: 1rem;
	max-width: 560px;
	align-self: flex-start;
	box-shadow: var(--yk-shadow-sm);
}
.yk-author-info__quote p {
	font-size: 14px;
	color: var(--yk-text);
	margin: 0;
	padding: 0 1rem;
	position: relative;
	z-index: 1;
	line-height: 1.6;
}
.yk-author-info__quote-mark {
	position: absolute;
	top: .25rem;
	left: .5rem;
	font-family: Georgia, serif;
	font-size: 2.5rem;
	line-height: 1;
	color: rgba(109, 74, 255, .2);
}
.yk-author-info__quote-mark--end {
	top: auto;
	left: auto;
	bottom: -.5rem;
	right: .75rem;
	transform: rotate(180deg);
}

/* ----- Badge ----- */
.yk-badge {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	padding: .375rem .75rem;
	border-radius: var(--yk-radius-sm);
	font-size: 12px;
	font-weight: 600;
	box-shadow: var(--yk-shadow-sm);
	border: none;
	cursor: default;
	line-height: 1;
	white-space: nowrap;
}
.yk-badge--level {
	background: var(--yk-primary);
	color: #fff;
}
.yk-badge--vip {
	background: #2a303c;
	color: #fbbf24;
	font-size: 13px;
	font-weight: 700;
}
.yk-badge--edit {
	background: #fff;
	color: var(--yk-text-muted);
	font-size: 13px;
	font-weight: 500;
	padding: .375rem .875rem;
	border: 1px solid var(--yk-border);
	cursor: pointer;
	transition: background-color .15s, color .15s;
}
.yk-badge--edit:hover {
	background: #f9fafb;
	color: var(--yk-text);
}

/* ----- Card -----
 * 注意：community.css 全局未限定作用域地定义了 .yk-author-card 加了黑色硬阴影 brutalism 风格，
 * 这里用 .yk-dashboard / .yk-author-page 父级提高特异性覆盖回扁平风格。 */
.yk-dashboard .yk-author-card,
.yk-author-page .yk-author-card,
.yk-author-card {
	background: var(--yk-card-bg);
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-xl);
	padding: 1.5rem;
	position: relative;
	box-shadow: none;
}
.yk-author-card__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 1.25rem;
}
.yk-author-card__title {
	font-size: 18px;
	font-weight: 800;
	color: var(--yk-text);
	margin: 0;
}
.yk-author-card__title--small {
	font-size: 15px;
	margin-bottom: 1rem;
}
.yk-author-card__more {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	font-size: 13px;
	color: var(--yk-text-light);
	text-decoration: none;
	transition: color .15s;
}
.yk-author-card__more:hover { color: var(--yk-primary); }
.yk-author-card__more--text { font-size: 12px; }

.yk-author-empty {
	padding: 2.5rem 1rem;
	text-align: center;
	color: var(--yk-text-light);
	font-size: 14px;
	background: #fafbfc;
	border-radius: var(--yk-radius-md);
	border: 1px dashed var(--yk-border-strong);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .25rem;
}
.yk-author-empty p { margin: 0; }
.yk-author-empty--small { padding: 1rem; font-size: 13px; }
.yk-author-empty--small p { margin: 0; }

/* ----- Tab Panel（公开主页 4 个 tab 的容器，hidden 属性控制显隐） ----- */
.yk-author-panel[hidden] { display: none; }

/* ----- Button ----- */
.yk-author-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .375rem;
	padding: .5rem 1rem;
	border-radius: var(--yk-radius-sm);
	font-size: 14px;
	font-weight: 500;
	border: 1px solid transparent;
	cursor: pointer;
	transition: all .15s;
	text-decoration: none;
	line-height: 1.4;
	font-family: inherit;
}
.yk-author-btn--primary {
	background: var(--yk-primary);
	color: #fff;
	font-weight: 700;
	padding: .5rem 1.5rem;
	box-shadow: var(--yk-primary-shadow-sm);
}
.yk-author-btn--primary:hover {
	background: var(--yk-primary-hover);
}
.yk-author-btn--primary.is-following {
	background: #fff;
	color: var(--yk-text-muted);
	border-color: var(--yk-border-strong);
	box-shadow: none;
}
.yk-author-btn--primary.is-following:hover {
	background: #fef2f2;
	color: #ef4444;
	border-color: #fecaca;
}
.yk-author-btn--ghost {
	background: transparent;
	color: #374151;
	border-color: var(--yk-border-strong);
	font-weight: 500;
}
.yk-author-btn--ghost:hover { background: #f9fafb; }
.yk-author-btn--icon {
	background: transparent;
	color: var(--yk-text-light);
	border-color: var(--yk-border-strong);
	padding: .5rem .75rem;
}
.yk-author-btn--icon:hover { background: #f9fafb; color: var(--yk-text-muted); }

/* 危险按钮（红色，用于举报 / 删除等破坏性操作） */
.yk-author-btn--danger {
	background: #ef4444;
	color: #fff;
	border-color: #ef4444;
	box-shadow: 0 2px 6px rgba(239, 68, 68, .18);
}
.yk-author-btn--danger:hover {
	background: #dc2626;
	border-color: #dc2626;
	box-shadow: 0 4px 12px rgba(239, 68, 68, .28);
}
.yk-author-btn--danger:disabled {
	background: #fca5a5;
	border-color: #fca5a5;
	cursor: not-allowed;
	box-shadow: none;
}

/* ========================================================================
 * "更多"下拉菜单（tab 栏右侧 · 3-dot trigger）
 * ==================================================================== */
.yk-author-more {
	position: relative;
	display: inline-block;
}
/* .yk-author-more__trigger 继承 .yk-author-btn--icon 基础样式 */
.yk-author-more.is-open .yk-author-more__trigger {
	background: #f3f4f6;
	color: var(--yk-text);
}

.yk-author-more__menu {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	min-width: 180px;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: 10px;
	box-shadow: 0 12px 32px rgba(15, 23, 42, .12), 0 2px 6px rgba(15, 23, 42, .04);
	padding: 6px;
	z-index: 50;
	animation: ykMoreMenuIn .14s cubic-bezier(.16, 1, .3, 1);
}
@keyframes ykMoreMenuIn {
	from { opacity: 0; transform: translateY(-4px) scale(.98); }
	to   { opacity: 1; transform: translateY(0)    scale(1);   }
}

.yk-author-more__item {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 8px 10px;
	background: transparent;
	border: 0;
	border-radius: 7px;
	color: var(--yk-text);
	font-size: 13px;
	font-weight: 500;
	text-align: left;
	cursor: pointer;
	transition: background .12s, color .12s;
	white-space: nowrap;
}
.yk-author-more__item:hover {
	background: #f5f3ff;
	color: var(--yk-primary);
}
.yk-author-more__item--danger { color: #ef4444; }
.yk-author-more__item--danger:hover {
	background: #fef2f2;
	color: #dc2626;
}
.yk-author-more__sep {
	height: 1px;
	background: var(--yk-border);
	margin: 4px 0;
}

/* ========================================================================
 * 举报用户 modal
 * ==================================================================== */
.yk-author-report-modal {
	position: fixed;
	inset: 0;
	z-index: 9998;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.yk-author-report-modal[hidden] { display: none; }
.yk-author-report-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, .55);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}
.yk-author-report-modal__panel {
	position: relative;
	width: 100%;
	max-width: 460px;
	max-height: 90vh;
	overflow-y: auto;
	background: #fff;
	border-radius: 16px;
	border: 1px solid var(--yk-border);
	box-shadow: 0 24px 48px rgba(15, 23, 42, .18);
	animation: ykReportModalIn .2s cubic-bezier(.16, 1, .3, 1);
}
@keyframes ykReportModalIn {
	from { opacity: 0; transform: translateY(16px) scale(.96); }
	to   { opacity: 1; transform: translateY(0)    scale(1);   }
}
.yk-author-report-modal__panel::before {
	content: "";
	display: block;
	height: 4px;
	background: linear-gradient(90deg, #fb7185 0%, #ef4444 50%, #dc2626 100%);
	border-top-left-radius: 16px;
	border-top-right-radius: 16px;
}

.yk-author-report-modal__head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 18px 20px 14px;
}
.yk-author-report-modal__head-icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #fb7185 0%, #ef4444 100%);
	box-shadow: 0 4px 12px rgba(239, 68, 68, .28);
}
.yk-author-report-modal__head-text { flex: 1; min-width: 0; }
.yk-author-report-modal__head-text h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--yk-text);
	line-height: 1.2;
}
.yk-author-report-modal__head-text p {
	margin: 3px 0 0 0;
	font-size: 12px;
	color: var(--yk-text-light);
}
.yk-author-report-modal__head-text p strong { color: var(--yk-text); }
.yk-author-report-modal__close {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border: 1px solid var(--yk-border);
	border-radius: 8px;
	background: #fff;
	color: var(--yk-text-light);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all .15s;
}
.yk-author-report-modal__close:hover {
	background: #fef2f2;
	border-color: #fecaca;
	color: #ef4444;
}

.yk-author-report-modal__form {
	padding: 0 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.yk-author-report-modal__field { display: block; }
.yk-author-report-modal__label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: #475569;
	margin-bottom: 8px;
}
.yk-author-report-modal__reasons {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}
.yk-author-report-modal__reason {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 8px 10px;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: 8px;
	font-size: 12px;
	font-weight: 600;
	color: #475569;
	cursor: pointer;
	transition: all .15s;
}
.yk-author-report-modal__reason:hover {
	background: #faf5ff;
	border-color: #ddd6fe;
	color: var(--yk-primary);
}
.yk-author-report-modal__reason input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}
.yk-author-report-modal__reason:has(input[type="radio"]:checked) {
	background: #f3f0ff;
	border-color: var(--yk-primary);
	color: var(--yk-primary);
	box-shadow: 0 4px 12px rgba(109, 74, 255, .16);
}
.yk-author-report-modal__form textarea {
	width: 100%;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: 8px;
	font-size: 13px;
	color: var(--yk-text);
	resize: none;
	outline: none;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
	transition: border-color .15s, box-shadow .15s;
	font-family: inherit;
}
.yk-author-report-modal__form textarea::placeholder { color: #94a3b8; }
.yk-author-report-modal__form textarea:focus {
	border-color: var(--yk-primary);
	box-shadow: 0 0 0 3px rgba(109, 74, 255, .12);
}
.yk-author-report-modal__actions {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	padding-top: 12px;
	border-top: 1px dashed var(--yk-border);
}

/* ----- Tags ----- */
.yk-tag {
	display: inline-block;
	background: #f9fafb;
	color: var(--yk-text-muted);
	font-size: 11px;
	padding: .375rem .625rem;
	border-radius: var(--yk-radius-sm);
	border: 1px solid var(--yk-border);
	line-height: 1;
}

/* ==================== 3. 公开主页 ==================== */

/* ----- Banner ----- */
.yk-author-banner {
	position: relative;
	width: 100%;
	min-height: 360px;
	border-radius: var(--yk-radius-2xl);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--yk-border);
	box-shadow: var(--yk-shadow-sm);
	margin-bottom: 1rem;
	display: flex;
	align-items: flex-end;
}
.yk-author-banner__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.yk-author-banner__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yk-author-banner__gradient-x {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255, 255, 255, .95), rgba(255, 255, 255, .7), transparent);
}
.yk-author-banner__gradient-y {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(255, 255, 255, .3), transparent);
}
.yk-author-banner__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	padding: 2.5rem;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1.5rem;
}
.yk-author-banner__left {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-items: stretch;
	min-width: 0;
	flex: 1;
}
.yk-author-banner__left-row {
	display: flex;
	gap: 2rem;
	align-items: flex-start;
	min-width: 0;
}

/* ----- Stats（Glassmorphism · 玻璃态独立卡片） -----
 * 容器：半透明 + 强模糊 + 顶部高光线 + 装饰渐变光斑
 * 卡片：磨砂玻璃瓦片 + 角落 accent 色辉光 + hover 提亮
 * 自动响应：6 张卡片在 ≥720px 一行；窄屏自动换行 3+3 / 2+2+2 */
.yk-author-stats {
	position: relative;
	background: rgba(255, 255, 255, .35);
	backdrop-filter: blur(28px) saturate(160%);
	-webkit-backdrop-filter: blur(28px) saturate(160%);
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 1.25rem;
	padding: 1rem;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: .75rem;
	margin-bottom: .5rem;
	box-shadow:
		0 8px 32px rgba(15, 23, 42, .08),
		inset 0 1px 0 rgba(255, 255, 255, .65);
	overflow: hidden;
	isolation: isolate;
}

/* 容器右上角紫色装饰光斑 */
.yk-author-stats::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -15%;
	width: 60%;
	height: 200%;
	background: radial-gradient(ellipse at center, rgba(109, 74, 255, .14), transparent 65%);
	pointer-events: none;
	z-index: -1;
}

/* 容器左下角粉色装饰光斑（互补色，营造彩色玻璃通透感） */
.yk-author-stats::after {
	content: '';
	position: absolute;
	bottom: -50%;
	left: -10%;
	width: 50%;
	height: 180%;
	background: radial-gradient(ellipse at center, rgba(236, 72, 153, .1), transparent 65%);
	pointer-events: none;
	z-index: -1;
}

.yk-stat-card {
	--stat-accent: #6d4aff;
	--stat-grad-from: #a78bfa;
	--stat-grad-to: #7c5cff;
	position: relative;
	display: flex;
	align-items: center;
	gap: .625rem;
	padding: .875rem .75rem .875rem .875rem;
	background: rgba(255, 255, 255, .55);
	backdrop-filter: blur(12px) saturate(150%);
	-webkit-backdrop-filter: blur(12px) saturate(150%);
	border: 1px solid rgba(255, 255, 255, .65);
	border-radius: .875rem;
	overflow: hidden;
	transition: transform .25s cubic-bezier(.4, 0, .2, 1), background-color .25s, border-color .25s, box-shadow .25s;
	min-width: 0;
	box-shadow:
		0 1px 3px rgba(15, 23, 42, .04),
		inset 0 1px 0 rgba(255, 255, 255, .8);
}

/* 卡片右下角 accent 色 radial 辉光 — 玻璃态的灵魂 */
.yk-stat-card::before {
	content: '';
	position: absolute;
	bottom: -60%;
	right: -40%;
	width: 120%;
	height: 140%;
	background: radial-gradient(circle at center, var(--stat-accent), transparent 55%);
	opacity: .12;
	pointer-events: none;
	transition: opacity .25s, transform .25s;
	z-index: 0;
}

/* 卡片左上角白色高光（模拟光源） */
.yk-stat-card::after {
	content: '';
	position: absolute;
	top: -40%;
	left: -30%;
	width: 80%;
	height: 80%;
	background: radial-gradient(circle at center, rgba(255, 255, 255, .55), transparent 65%);
	pointer-events: none;
	z-index: 0;
}

.yk-stat-card:hover {
	transform: translateY(-3px);
	background: rgba(255, 255, 255, .75);
	border-color: rgba(255, 255, 255, .9);
	box-shadow:
		0 12px 28px rgba(15, 23, 42, .1),
		inset 0 1px 0 rgba(255, 255, 255, .9);
}
.yk-stat-card:hover::before {
	opacity: .22;
	transform: scale(1.1);
}

/* 左侧彩条：让出 z-index，盖在 ::before 辉光之上 */
.yk-stat-card__bar {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 3px;
	background: linear-gradient(180deg, var(--stat-grad-from) 0%, var(--stat-grad-to) 100%);
	z-index: 2;
}

/* 图标盒 — gradient + 中性阴影 + 内顶部高光 */
.yk-stat-card__icon {
	position: relative;
	z-index: 1;
	width: 34px;
	height: 34px;
	border-radius: .625rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	background: linear-gradient(135deg, var(--stat-grad-from) 0%, var(--stat-grad-to) 100%);
	color: #fff;
	margin-left: 4px;
	box-shadow:
		0 4px 12px rgba(15, 23, 42, .12),
		inset 0 1px 0 rgba(255, 255, 255, .35);
}

.yk-stat-card__body {
	position: relative;
	z-index: 1;
	min-width: 0;
	flex: 1;
}

/* 数字：深灰 gradient 填充，比纯色更有质感（旧浏览器降级显示深色） */
.yk-stat-card__value {
	font-size: 22px;
	font-weight: 800;
	color: #0f172a; /* fallback：不支持 background-clip:text 时显示深色 */
	background: linear-gradient(135deg, #0f172a 0%, #475569 100%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	line-height: 1.05;
	letter-spacing: -.02em;
	margin-bottom: 2px;
	font-variant-numeric: tabular-nums;
}

.yk-stat-card__label {
	font-size: 11px;
	color: rgba(71, 85, 105, .85); /* slate-600 半透 */
	font-weight: 600;
	letter-spacing: .02em;
	line-height: 1.1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* ----- Tabs ----- */
.yk-author-tabs {
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: 1.125rem;
	padding: .5rem 1.5rem;
	margin-bottom: 1.5rem;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
.yk-author-tabs__list {
	display: flex;
	gap: 2rem;
}
.yk-author-tab {
	position: relative;
	padding: .75rem 0;
	font-size: 15px;
	font-weight: 500;
	background: transparent;
	border: none;
	cursor: pointer;
	color: var(--yk-text-muted);
	transition: color .15s;
	font-family: inherit;
}
.yk-author-tab:hover { color: var(--yk-text); }
.yk-author-tab--active {
	color: var(--yk-primary);
	font-weight: 700;
}
.yk-author-tab--active::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 32px;
	height: 4px;
	background: var(--yk-primary);
	border-radius: 2px 2px 0 0;
}
.yk-author-tab__count {
	display: inline-block;
	background: #f3f4f6;
	color: var(--yk-text-muted);
	font-size: 11px;
	padding: .125rem .5rem;
	border-radius: 999px;
	margin-left: .25rem;
}
.yk-author-tabs__actions {
	display: flex;
	gap: .75rem;
}

/* ----- Grid ----- */
.yk-author-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 1.5rem;
}
.yk-author-grid__main {
	grid-column: span 12;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.yk-author-grid__aside {
	grid-column: span 12;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.yk-author-grid__sub {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}

@media (min-width: 1024px) {
	.yk-author-grid__main { grid-column: span 8; }
	.yk-author-grid__aside { grid-column: span 4; }
}

/* ----- Game Card ----- */
.yk-author-games-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (min-width: 1280px) {
	.yk-author-games-grid { grid-template-columns: repeat(4, 1fr); }
}
.yk-game-card {
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	overflow: hidden;
	text-decoration: none;
	display: block;
	transition: box-shadow .15s, transform .15s;
	cursor: pointer;
	position: relative;
}
.yk-game-card:hover {
	box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
	transform: translateY(-2px);
}
.yk-game-card__thumb {
	position: relative;
	height: 110px;
	overflow: hidden;
}
.yk-game-card__thumb--dash { height: 128px; }
.yk-game-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s;
}
.yk-game-card:hover .yk-game-card__thumb img { transform: scale(1.05); }
.yk-game-card__badge,
.yk-game-card__status {
	position: absolute;
	top: .5rem;
	left: .5rem;
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	padding: .125rem .5rem;
	border-radius: .25rem;
	color: #fff;
	font-size: 10px;
	font-weight: 500;
	box-shadow: var(--yk-shadow-sm);
	backdrop-filter: blur(6px);
}
.yk-game-card__status {
	font-size: 10px;
	padding: .25rem .5rem;
}
.yk-game-card__body {
	padding: 1rem;
}
.yk-game-card__title-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: .375rem;
	gap: .5rem;
}
.yk-game-card__title {
	font-weight: 700;
	color: var(--yk-text);
	font-size: 14px;
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	flex: 1;
	min-width: 0;
	line-height: 1.3;
}
.yk-game-card--dash .yk-game-card__title { font-size: 15px; }
.yk-game-card__more {
	background: transparent;
	border: none;
	color: var(--yk-text-light);
	cursor: pointer;
	padding: 0;
	flex-shrink: 0;
	transition: color .15s;
}
.yk-game-card__more:hover { color: var(--yk-text-muted); }
.yk-game-card__rating {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	color: #f59e0b;
	font-weight: 700;
	font-size: 12px;
	margin-bottom: .75rem;
}
.yk-game-card--dash .yk-game-card__rating { font-size: 14px; font-weight: 500; }
.yk-game-card__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 11px;
	color: var(--yk-text-light);
}
.yk-game-card__meta span {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}

/* ----- 横向列表（游戏 / 收藏 panel · 紧凑式 2 列） -----
 * 替代之前的 .yk-author-games-grid 大卡片视图，每条数据是一个横向行 */
.yk-author-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: .625rem;
}
@media (min-width: 1024px) {
	.yk-author-list { grid-template-columns: 1fr 1fr; }
}

.yk-author-list-item {
	display: flex;
	align-items: center;
	gap: .875rem;
	padding: .625rem .75rem .625rem .625rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: .75rem;
	text-decoration: none;
	color: inherit;
	transition: border-color .15s, transform .15s, box-shadow .15s;
	min-width: 0;
}
.yk-author-list-item:hover {
	border-color: var(--yk-primary);
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(15, 23, 42, .06);
}
.yk-author-list-item:hover .yk-author-list-item__chevron {
	color: var(--yk-primary);
	transform: translateX(2px);
}

.yk-author-list-item__thumb {
	width: 72px;
	height: 54px;
	border-radius: .5rem;
	overflow: hidden;
	flex-shrink: 0;
	background: #f9fafb;
	position: relative;
}
.yk-author-list-item__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	display: block;
}

.yk-author-list-item__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .375rem;
}
.yk-author-list-item__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.3;
}
.yk-author-list-item:hover .yk-author-list-item__title { color: var(--yk-primary); }

.yk-author-list-item__meta {
	display: flex;
	flex-wrap: wrap;
	gap: .625rem;
	align-items: center;
	font-size: 12px;
	color: var(--yk-text-light);
	line-height: 1;
}
.yk-author-list-item__meta span {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}
.yk-author-list-item__rating {
	color: #f59e0b !important;
	font-weight: 700;
}
.yk-author-list-item__tag {
	background: var(--yk-primary-light);
	color: var(--yk-primary) !important;
	padding: .125rem .5rem;
	border-radius: .25rem;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.4;
}

.yk-author-list-item__chevron {
	color: var(--yk-text-light);
	flex-shrink: 0;
	transition: color .15s, transform .15s;
}

/* ----- Posts List（帖子 panel · 社区帖子简卡列表 · 2 列） ----- */
.yk-author-posts-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: .625rem;
}
@media (min-width: 1024px) {
	.yk-author-posts-list { grid-template-columns: 1fr 1fr; }
}
.yk-author-post-item {
	display: flex;
	align-items: stretch;
	gap: 1rem;
	padding: .875rem 1rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	text-decoration: none;
	transition: border-color .15s, transform .15s, box-shadow .15s;
	min-width: 0;
}
.yk-author-post-item:hover {
	border-color: var(--yk-primary);
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(15, 23, 42, .06);
}
.yk-author-post-item__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: .375rem;
}
.yk-author-post-item__title {
	font-size: 15px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0;
	line-height: 1.4;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.yk-author-post-item:hover .yk-author-post-item__title { color: var(--yk-primary); }
.yk-author-post-item__excerpt {
	font-size: 13px;
	color: var(--yk-text-muted);
	margin: 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.yk-author-post-item__meta {
	display: flex;
	gap: 1rem;
	font-size: 12px;
	color: var(--yk-text-light);
	margin-top: .125rem;
}
.yk-author-post-item__meta span {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}
.yk-author-post-item__thumb {
	width: 96px;
	height: 72px;
	flex-shrink: 0;
	border-radius: .5rem;
	overflow: hidden;
	background: #f9fafb;
	align-self: center;
}
.yk-author-post-item__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	display: block;
}
.yk-author-post-item__thumb-fallback {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #f5f3ff, #ede9fe);
}

/* ----- Activity Feed（动态 panel · 综合时间线） ----- */
.yk-author-feed {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	position: relative;
}
/* 时间线左侧竖线（连接所有 icon） */
.yk-author-feed::before {
	content: '';
	position: absolute;
	left: 17px;
	top: 17px;
	bottom: 17px;
	width: 2px;
	background: var(--yk-border);
	pointer-events: none;
}
.yk-author-feed__item {
	display: flex;
	align-items: flex-start;
	gap: .875rem;
	position: relative;
	z-index: 1;
}
.yk-author-feed__icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #fff;
	box-shadow:
		0 3px 10px rgba(15, 23, 42, .12),
		inset 0 1px 0 rgba(255, 255, 255, .35);
	border: 2px solid #fff;
}
.yk-author-feed__body {
	flex: 1;
	min-width: 0;
	padding-top: 4px;
}
.yk-author-feed__text {
	margin: 0 0 .25rem 0;
	font-size: 14px;
	color: var(--yk-text-muted);
	line-height: 1.5;
}
.yk-author-feed__link {
	color: var(--yk-text);
	font-weight: 700;
	text-decoration: none;
	transition: color .15s;
}
.yk-author-feed__link:hover { color: var(--yk-primary); }
.yk-author-feed__time {
	font-size: 12px;
	color: var(--yk-text-light);
}

/* ----- Activity / Fans ----- */
.yk-author-activity {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.yk-activity-item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
}
.yk-activity-item__thumb {
	width: 40px;
	height: 40px;
	border-radius: var(--yk-radius-md);
	background: #f9fafb;
	border: 1px solid var(--yk-border);
	overflow: hidden;
	flex-shrink: 0;
}
.yk-activity-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yk-activity-item__body { flex: 1; min-width: 0; padding-top: 2px; }
.yk-activity-item__body p {
	font-size: 14px;
	color: var(--yk-text-muted);
	margin: 0 0 .25rem 0;
}
.yk-activity-item__link {
	color: var(--yk-text);
	font-weight: 700;
	text-decoration: none;
}
.yk-activity-item__link:hover { color: var(--yk-primary); }
.yk-activity-item__time {
	font-size: 12px;
	color: var(--yk-text-light);
}

.yk-fans-wall {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.yk-fans-wall__count {
	font-size: 12px;
	color: var(--yk-text-muted);
	margin: 0;
	margin-top: .25rem;
}
.yk-fans-wall__avatars {
	display: flex;
	align-items: center;
}
.yk-fans-wall__avatar {
	width: 36px;
	height: 36px;
	border: 2px solid #fff;
	border-radius: 50%;
	overflow: hidden;
	display: block;
}
.yk-fans-wall__avatar + .yk-fans-wall__avatar,
.yk-fans-wall__avatar + .yk-fans-wall__more,
.yk-fans-wall__more {
	margin-left: -12px;
}
.yk-fans-wall__avatar img { width: 100%; height: 100%; object-fit: cover; }
.yk-fans-wall__more {
	width: 36px;
	height: 36px;
	border: 2px solid #fff;
	background: #f3f4f6;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--yk-text-muted);
	font-size: 10px;
	font-weight: 700;
	z-index: 10;
	position: relative;
}

/* ----- Bio / Meta ----- */
.yk-author-bio {
	font-size: 14px;
	color: var(--yk-text-muted);
	line-height: 1.7;
	margin: 0 0 1.5rem 0;
}

/* ========================================================================
 * 个人简介卡片（侧边栏 · 简约游戏点缀）
 *   - 整卡极淡紫色像素点背景
 *   - 右下角低对比 gamepad 水印
 *   - 内容紧凑、单层
 * ==================================================================== */
.yk-author-bio-card {
	position: relative;
	overflow: hidden;
}

/* 整卡背景点缀：极淡紫色像素点（覆盖整张卡） */
.yk-author-bio-card__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: .5;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><circle cx='1' cy='1' r='1' fill='%236d4aff' opacity='0.10'/></svg>");
	background-size: 14px 14px;
}
/* 右下角 gamepad 水印（极低对比） */
.yk-author-bio-card__watermark {
	position: absolute;
	right: -8px;
	bottom: -10px;
	width: 92px !important;
	height: 92px !important;
	color: var(--yk-primary);
	opacity: .05;
	pointer-events: none;
	transform: rotate(-12deg);
}

/* 让内容浮在装饰之上 */
.yk-author-bio-card > *:not(.yk-author-bio-card__bg):not(.yk-author-bio-card__watermark) {
	position: relative;
	z-index: 1;
}

/* ----- 标题 ----- */
.yk-author-bio-card__head {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 12px;
}
.yk-author-bio-card__title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: var(--yk-text);
}

/* ----- 引用正文 ----- */
.yk-author-bio-card__quote {
	position: relative;
	padding: 0 0 0 18px;
	margin-bottom: 16px;
}
.yk-author-bio-card__qmark {
	position: absolute;
	top: -6px;
	left: -2px;
	font-family: Georgia, "Microsoft YaHei", serif;
	font-size: 28px;
	line-height: 1;
	color: rgba(109, 74, 255, .35);
	font-weight: 700;
	user-select: none;
}
.yk-author-bio-card__text {
	margin: 0;
	font-size: 13px;
	color: var(--yk-text-muted);
	line-height: 1.7;
}

/* ----- Meta Rows ----- */
.yk-author-bio-card__meta {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.yk-author-bio-card__meta-row {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.yk-author-bio-card__meta-label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	color: var(--yk-text-light);
	font-weight: 500;
}
.yk-author-bio-card__meta-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.yk-author-bio-card__chip {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 500;
	color: var(--yk-primary);
	background: #f3f0ff;
	border: 1px solid rgba(167, 139, 250, .25);
}
.yk-author-bio-card__meta-value {
	font-size: 13px;
	color: var(--yk-text);
	font-weight: 600;
	margin-left: 19px;
}

/* ========================================================================
 * 留言板 · 侧边栏卡片
 * ==================================================================== */
.yk-guestbook .yk-guestbook__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 14px;
}
.yk-guestbook__total {
	font-size: 11px;
	color: var(--yk-primary);
	background: #f3f0ff;
	padding: 2px 8px;
	border-radius: 999px;
	font-weight: 600;
	border: 1px solid rgba(167, 139, 250, .25);
}

/* ----- 发言框 ----- */
.yk-guestbook__form {
	background: #fafafb;
	border: 1px solid var(--yk-border);
	border-radius: 10px;
	padding: 10px 12px;
	margin-bottom: 14px;
	transition: border-color .15s, box-shadow .15s;
}
.yk-guestbook__form:focus-within {
	border-color: var(--yk-primary);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(109, 74, 255, .1);
}
.yk-guestbook__textarea {
	width: 100%;
	border: 0;
	background: transparent;
	resize: none;
	outline: none;
	font-size: 13px;
	color: var(--yk-text);
	font-family: inherit;
	line-height: 1.6;
	padding: 0;
	margin: 0 0 6px 0;
}
.yk-guestbook__textarea::placeholder { color: #94a3b8; }
.yk-guestbook__form-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}
.yk-guestbook__counter {
	font-size: 11px;
	color: var(--yk-text-light);
	font-variant-numeric: tabular-nums;
}
.yk-guestbook__submit {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 12px;
	background: var(--yk-primary);
	color: #fff;
	border: 0;
	border-radius: 7px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s, transform .1s;
}
.yk-guestbook__submit:hover { background: var(--yk-primary-hover); }
.yk-guestbook__submit:active { transform: translateY(1px); }
.yk-guestbook__submit:disabled {
	background: #c4b5fd;
	cursor: not-allowed;
	transform: none;
}

/* ----- 登录提示（未登录时显示） ----- */
.yk-guestbook__login-hint {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 12px;
	background: #fafafb;
	border: 1px dashed var(--yk-border);
	border-radius: 10px;
	margin-bottom: 14px;
	font-size: 12px;
	color: var(--yk-text-light);
}

/* ----- 列表 ----- */
.yk-guestbook__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* ----- 空状态 ----- */
.yk-guestbook__empty {
	text-align: center;
	padding: 24px 12px;
	color: var(--yk-text-light);
}
.yk-guestbook__empty p {
	margin: 8px 0 0 0;
	font-size: 12px;
}

/* ----- 留言项 ----- */
.yk-guestbook__item {
	display: flex;
	gap: 10px;
	padding: 10px 0;
	border-bottom: 1px dashed var(--yk-border);
}
.yk-guestbook__item:last-child { border-bottom: 0; }
.yk-guestbook__avatar {
	flex-shrink: 0;
	display: block;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	overflow: hidden;
	border: 1px solid var(--yk-border);
	background: #f9fafb;
}
.yk-guestbook__avatar img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	display: block;
	object-fit: cover;
}
.yk-guestbook__body {
	flex: 1;
	min-width: 0;
}
.yk-guestbook__item-head {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin-bottom: 3px;
	flex-wrap: wrap;
}
.yk-guestbook__sender {
	font-size: 12px;
	font-weight: 700;
	color: var(--yk-text);
	text-decoration: none;
	transition: color .15s;
}
.yk-guestbook__sender:hover { color: var(--yk-primary); }
.yk-guestbook__time {
	font-size: 11px;
	color: var(--yk-text-light);
}
.yk-guestbook__text {
	margin: 0 0 6px 0;
	font-size: 13px;
	color: var(--yk-text);
	line-height: 1.6;
	word-break: break-word;
}
.yk-guestbook__actions {
	display: flex;
	align-items: center;
	gap: 4px;
}
.yk-guestbook__like,
.yk-guestbook__delete {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 3px 8px;
	background: transparent;
	border: 0;
	border-radius: 999px;
	font-size: 11px;
	color: var(--yk-text-light);
	cursor: pointer;
	transition: background .15s, color .15s;
	font-variant-numeric: tabular-nums;
}
.yk-guestbook__like:hover {
	background: #fef2f2;
	color: #ef4444;
}
.yk-guestbook__like.is-liked {
	color: #ef4444;
}
.yk-guestbook__like.is-liked:hover { background: #fee2e2; }
.yk-guestbook__delete:hover {
	background: #fef2f2;
	color: #ef4444;
}

/* ----- 加载更多 ----- */
.yk-guestbook__load-more {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 100%;
	margin-top: 14px;
	padding: 8px;
	background: #fafafb;
	border: 1px solid var(--yk-border);
	border-radius: 8px;
	font-size: 12px;
	color: var(--yk-text-muted);
	font-weight: 500;
	cursor: pointer;
	transition: background .15s, color .15s, border-color .15s;
}
.yk-guestbook__load-more:hover {
	background: #f3f0ff;
	color: var(--yk-primary);
	border-color: rgba(167, 139, 250, .35);
}
.yk-guestbook__load-more:disabled {
	opacity: .6;
	cursor: not-allowed;
}
.yk-guestbook__load-more-rest {
	color: var(--yk-text-light);
	font-weight: 400;
}
.yk-author-meta + .yk-author-meta { margin-top: 1rem; }
.yk-author-meta__label {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 12px;
	color: var(--yk-text-light);
	font-weight: 500;
	margin-bottom: .5rem;
}
.yk-author-meta__tags {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
}
.yk-author-meta__value {
	font-size: 14px;
	color: var(--yk-text);
	font-weight: 500;
}

/* ----- Heatmap ----- */
.yk-heatmap {
	display: flex;
	align-items: flex-start;
	gap: .75rem;
}
.yk-heatmap__labels {
	display: flex;
	flex-direction: column;
	gap: 3px;
	font-size: 9px;
	color: var(--yk-text-light);
	padding-top: 4px;
	flex-shrink: 0;
}
.yk-heatmap__grid {
	display: grid;
	grid-template-rows: repeat(7, 12px);
	grid-auto-flow: column;
	gap: 4px;
	overflow: hidden;
}
.yk-heatmap__cell {
	width: 12px;
	height: 12px;
	border-radius: 2px;
	background: #f3f4f6;
}
.yk-heatmap__cell--l1 { background: rgba(109, 74, 255, .2); }
.yk-heatmap__cell--l2 { background: rgba(109, 74, 255, .4); }
.yk-heatmap__cell--l3 { background: rgba(109, 74, 255, .7); }
.yk-heatmap__cell--l4 { background: var(--yk-primary); }

/* ==================== 4. Dashboard 专属 ==================== */

.yk-dashboard-layout {
	display: flex;
	gap: 1.5rem;
	max-width: 1800px;
	margin: 0 auto;
	/* 与主题 main 容器 px-3 sm:px-6 lg:px-8 对齐；上下间距由外层 padding-top 提供 */
	padding: 0 .75rem;
	align-items: flex-start;
}
@media (min-width: 640px) {
	.yk-dashboard-layout { padding: 0 1.5rem; }
}
@media (min-width: 1024px) {
	.yk-dashboard-layout { padding: 0 2rem; }
}

/* ----- Dashboard Content（右侧栏：banner + 主内容白色面板，垂直叠放） ----- */
.yk-dashboard-content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	position: relative;
	z-index: 1;
}

/* ----- Sidebar ----- */
.yk-dashboard-sidebar {
	width: 240px;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-xl);
	padding: 1rem 0;
	position: sticky;
	/* 主题 fixed header 高度 ≈ 80px + 1rem 间距 */
	top: calc(80px + 1rem);
	display: flex;
	flex-direction: column;
	align-self: flex-start;
	flex-shrink: 0;
	max-height: calc(100vh - 80px - 2rem);
	overflow-y: auto;
}
.yk-dashboard-sidebar__brand {
	padding: 1rem 2rem 1.5rem;
}
.yk-dashboard-sidebar__logo {
	font-size: 2.25rem;
	font-weight: 900;
	font-style: italic;
	color: var(--yk-primary);
	letter-spacing: .1em;
	margin: 0;
	line-height: 1;
	font-family: Impact, "Arial Black", sans-serif;
}
.yk-dashboard-sidebar__tagline {
	font-size: 9px;
	color: var(--yk-text-muted);
	letter-spacing: .2em;
	font-weight: 700;
	margin-top: .25rem;
	text-transform: uppercase;
	margin-bottom: 0;
}
.yk-dashboard-sidebar__nav {
	padding: 0 1rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}
.yk-dashboard-sidebar__divider {
	height: 1px;
	background: var(--yk-border);
	margin: 1rem 1.5rem;
}
.yk-dashboard-sidebar__footer {
	margin-top: auto;
	padding: 1rem;
	border-top: 1px solid var(--yk-border);
}

.yk-nav-item {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .75rem 1rem;
	border-radius: var(--yk-radius-md);
	font-size: 14px;
	font-weight: 500;
	color: var(--yk-text-muted);
	text-decoration: none;
	transition: all .15s;
	position: relative;
}
.yk-nav-item i { color: var(--yk-text-light); flex-shrink: 0; }
.yk-nav-item:hover {
	background: #f9fafb;
	color: var(--yk-text);
}
.yk-nav-item:hover i { color: var(--yk-text-muted); }
/* active 必须用 !important 覆盖 hover（hover 伪类特异性更高）*/
.yk-nav-item--active,
.yk-nav-item--active:hover,
.yk-nav-item--active:focus {
	background: var(--yk-primary) !important;
	color: #fff !important;
	box-shadow: var(--yk-primary-shadow) !important;
}
.yk-nav-item--active i,
.yk-nav-item--active:hover i { color: #fff !important; }
.yk-nav-item--danger:hover { color: #ef4444; background: #fef2f2; }
.yk-nav-item--danger:hover i { color: #ef4444; }
.yk-nav-item__badge[hidden] { display: none !important; }
.yk-nav-item__badge {
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	background: #ede9fe;
	color: var(--yk-primary);
	font-size: 10px;
	font-weight: 700;
	padding: .125rem .5rem;
	border-radius: 999px;
}

/* ----- Dashboard Main（白色面板，banner 之下） ----- */
.yk-dashboard-main {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	background: #fff !important;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: 1.5rem;
	position: relative;
	z-index: 1;
}

/* 同时给整个 dashboard 容器加 z-index 确保盖住 header.php 的 WASD 水印 */
.yk-dashboard {
	position: relative;
	z-index: 1;
}

/* ----- Dashboard Banner ----- */
.yk-dashboard-banner {
	position: relative;
	width: 100%;
	border-radius: var(--yk-radius-lg);
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--yk-border);
}

/* 更换封面按钮（右上角悬浮） */
.yk-banner-change-btn {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	padding: .5rem .875rem;
	border-radius: 999px;
	background: rgba(255, 255, 255, .9);
	color: #1e293b;
	border: 1px solid rgba(255, 255, 255, .8);
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
	backdrop-filter: blur(8px);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .1);
	transition: background-color .15s, transform .15s;
	font-family: inherit;
	line-height: 1;
}
.yk-banner-change-btn:hover {
	background: #fff;
	transform: translateY(-1px);
}
.yk-banner-change-btn:active {
	transform: translateY(0);
}
.yk-banner-change-btn.is-loading {
	pointer-events: none;
	opacity: .6;
}
.yk-dashboard-banner__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 320px;
	pointer-events: none;
}
.yk-dashboard-banner__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yk-dashboard-banner__grad-x {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(255, 255, 255, .95), rgba(255, 255, 255, .6), transparent);
}
.yk-dashboard-banner__grad-y {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, .4), #fff);
}
.yk-dashboard-banner__inner {
	position: relative;
	z-index: 1;
	padding: 2rem 2rem 1.5rem;
}
.yk-dashboard-banner__top {
	display: flex;
	gap: 1.5rem;
	align-items: center;
	margin-bottom: 2rem;
}

/* ----- Dashboard Stats（6 独立卡片） ----- */
.yk-dashboard-stats {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: .75rem;
}
.yk-dash-stat-card {
	background: #fff;
	border: 1px solid rgba(243, 244, 246, .8);
	border-radius: var(--yk-radius-lg);
	padding: 1rem;
	display: flex;
	align-items: center;
	gap: .75rem;
	box-shadow: var(--yk-shadow-md);
	transition: transform .2s;
	min-width: 0;
}
.yk-dash-stat-card:hover { transform: translateY(-4px); }
.yk-dash-stat-card__icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-dash-stat-card__value {
	font-size: 20px;
	font-weight: 700;
	color: var(--yk-text);
	line-height: 1;
	margin-bottom: 6px;
}
.yk-dash-stat-card__label {
	font-size: 12px;
	color: var(--yk-text-muted);
	font-weight: 500;
	white-space: nowrap;
}

/* ----- Dashboard Grid ----- */
.yk-dashboard-grid {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	gap: 1.5rem;
	margin-top: 2rem;
}
.yk-dashboard-grid__main {
	grid-column: span 12;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.yk-dashboard-grid__aside {
	grid-column: span 12;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.yk-dashboard-grid__sub {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5rem;
}
@media (min-width: 1024px) {
	.yk-dashboard-grid__main { grid-column: span 8; }
	.yk-dashboard-grid__aside { grid-column: span 4; }
}

/* ----- Dashboard Tabs ----- */
.yk-dash-tabs {
	display: flex;
	gap: 1.5rem;
}
.yk-dash-tab {
	background: transparent;
	border: none;
	font-size: 15px;
	font-weight: 500;
	color: var(--yk-text-light);
	cursor: pointer;
	padding: 0 0 .5rem 0;
	position: relative;
	font-family: inherit;
	transition: color .15s;
}
.yk-dash-tab:hover { color: var(--yk-text-muted); }
.yk-dash-tab--active {
	color: var(--yk-primary);
	font-weight: 700;
}
.yk-dash-tab--active::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 16px;
	height: 4px;
	background: var(--yk-primary);
	border-radius: 999px;
}

/* ----- Dashboard Game Grid (3 cols) ----- */
.yk-dash-games-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.25rem;
}
@media (min-width: 1024px) {
	.yk-dash-games-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ----- Download / Activity Row ----- */
.yk-download-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: #f9fafb;
	padding: .75rem;
	border-radius: var(--yk-radius-md);
	border: 1px solid var(--yk-border);
}
.yk-download-item img {
	width: 64px;
	height: 64px;
	border-radius: var(--yk-radius-sm);
	object-fit: cover;
	flex-shrink: 0;
}
.yk-download-item__body { flex: 1; min-width: 0; }
.yk-download-item__body h4 {
	font-weight: 700;
	font-size: 14px;
	color: var(--yk-text);
	margin: 0;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.yk-download-item__body p {
	font-size: 12px;
	color: var(--yk-text-light);
	margin: .25rem 0 0 0;
}
.yk-download-item__body p span { margin: 0 .25rem; }
.yk-download-item__btn {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--yk-border-strong);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--yk-primary);
	cursor: pointer;
	transition: all .15s;
	flex-shrink: 0;
	box-shadow: var(--yk-shadow-sm);
}
.yk-download-item__btn:hover {
	background: var(--yk-primary);
	color: #fff;
}

.yk-activity-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.yk-activity-row {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: 14px;
}
.yk-activity-row__icon {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-activity-row__text {
	flex: 1;
	color: var(--yk-text-muted);
	margin: 0;
	min-width: 0;
}
.yk-activity-item__strong,
.yk-activity-row__text .yk-activity-item__strong {
	font-weight: 500;
	color: var(--yk-text);
}
.yk-activity-row__time {
	font-size: 12px;
	color: var(--yk-text-light);
	flex-shrink: 0;
}

/* ----- Bio Card（dashboard 变体带装饰引号） ----- */
.yk-bio-card { overflow: hidden; }
.yk-bio-card__deco {
	position: absolute;
	top: 1rem;
	right: 1rem;
	color: rgba(109, 74, 255, .1);
	pointer-events: none;
}

/* ----- Quick Actions ----- */
.yk-quick-actions {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .5rem;
	text-align: center;
}
.yk-quick-action {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	text-decoration: none;
	background: transparent;
	border: none;
	cursor: pointer;
	padding: .5rem 0;
}
.yk-quick-action__icon {
	width: 40px;
	height: 40px;
	border-radius: var(--yk-radius-md);
	background: #f9fafb;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--yk-text-muted);
	transition: all .15s;
}
.yk-quick-action:hover .yk-quick-action__icon {
	background: rgba(109, 74, 255, .1);
	color: var(--yk-primary);
}
.yk-quick-action span {
	font-size: 12px;
	color: var(--yk-text-muted);
	transition: color .15s;
}
.yk-quick-action:hover span { color: var(--yk-text); }

/* ----- Level ----- */
.yk-level-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	margin-bottom: .5rem;
}
.yk-level-head__level {
	font-size: 24px;
	font-weight: 900;
	color: var(--yk-primary);
}
.yk-level-head__exp {
	font-size: 12px;
	color: var(--yk-text-muted);
	font-weight: 500;
}
.yk-level-bar {
	width: 100%;
	height: 8px;
	background: var(--yk-border);
	border-radius: 999px;
	overflow: hidden;
}
.yk-level-bar__fill {
	height: 100%;
	background: linear-gradient(to right, var(--yk-primary), #a855f7);
	border-radius: 999px;
	transition: width .8s ease;
}
.yk-level-hint {
	font-size: 11px;
	color: var(--yk-text-light);
	margin: .75rem 0 0 0;
	text-align: right;
}

/* ==================== 5. Dashboard 视图切换 + My Games ==================== */

/* hidden 属性强制隐藏（防 Tailwind 默认 display 覆盖） */
.yk-dash-view[hidden] {
	display: none !important;
}

/* ----- My Games 视图 ----- */
.yk-mygames {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.yk-mygames__header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
.yk-mygames__title {
	font-size: 1.75rem;
	font-weight: 800;
	color: var(--yk-text);
	margin: 0 0 .25rem 0;
	letter-spacing: -.01em;
}
.yk-mygames__subtitle {
	font-size: 14px;
	color: var(--yk-text-muted);
	margin: 0;
}

/* 4 状态统计卡片 */
.yk-mygames__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
}
.yk-mygames__stat {
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: 1.25rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	box-shadow: var(--yk-shadow-sm);
	transition: transform .2s, box-shadow .2s;
}
.yk-mygames__stat:hover {
	transform: translateY(-2px);
	box-shadow: var(--yk-shadow-md);
}
.yk-mygames__stat-icon {
	width: 48px;
	height: 48px;
	border-radius: var(--yk-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-mygames__stat-value {
	font-size: 22px;
	font-weight: 800;
	color: var(--yk-text);
	line-height: 1;
	margin-bottom: 4px;
}
.yk-mygames__stat-label {
	font-size: 12px;
	color: var(--yk-text-muted);
	font-weight: 500;
}

/* 工具栏 = 筛选 + 搜索 */
.yk-mygames__toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: .75rem 1rem;
	flex-wrap: wrap;
	box-shadow: var(--yk-shadow-sm);
}
.yk-mygames__filters {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
}
.yk-mygames__filter {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem 1rem;
	background: transparent;
	color: var(--yk-text-muted);
	border: 1px solid transparent;
	border-radius: var(--yk-radius-sm);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: all .15s;
	font-family: inherit;
}
.yk-mygames__filter:hover {
	background: #f9fafb;
	color: var(--yk-text);
}
.yk-mygames__filter.is-active {
	background: var(--yk-primary);
	color: #fff;
	box-shadow: var(--yk-primary-shadow-sm);
}
.yk-mygames__filter.is-active .yk-mygames__filter-count {
	background: rgba(255, 255, 255, .25);
	color: #fff;
}
.yk-mygames__filter-count {
	display: inline-block;
	padding: .125rem .5rem;
	background: #f3f4f6;
	color: var(--yk-text-light);
	font-size: 11px;
	font-weight: 600;
	border-radius: 999px;
	min-width: 24px;
	text-align: center;
}

/* 搜索框 */
.yk-mygames__search {
	position: relative;
	display: flex;
	align-items: center;
	gap: .5rem;
	background: #f9fafb;
	border: 1px solid transparent;
	border-radius: var(--yk-radius-sm);
	padding: .5rem .875rem;
	transition: all .15s;
	min-width: 240px;
}
.yk-mygames__search:focus-within {
	background: #fff;
	border-color: var(--yk-primary);
	box-shadow: 0 0 0 3px rgba(15, 23, 42, .1);
}
.yk-mygames__search-input {
	border: none;
	background: transparent;
	outline: none;
	font-size: 14px;
	color: var(--yk-text);
	width: 100%;
	font-family: inherit;
}
.yk-mygames__search-input::placeholder {
	color: var(--yk-text-light);
}

/* 游戏列表 grid */
.yk-mygames__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}
@media (min-width: 768px) {
	.yk-mygames__list { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
	.yk-mygames__list { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1280px) {
	.yk-mygames__list { grid-template-columns: repeat(5, 1fr); }
}

.yk-mygames__item[hidden] {
	display: none !important;
}

/* 空状态（display:flex 会覆盖 hidden 属性，需 !important 强制） */
.yk-mygames__empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: 4rem 2rem;
	background: #fff;
	border: 1px dashed var(--yk-border-strong);
	border-radius: var(--yk-radius-lg);
	color: var(--yk-text-muted);
	text-align: center;
}
.yk-mygames__empty[hidden] {
	display: none !important;
}
.yk-mygames__empty p {
	margin: 0;
	font-size: 14px;
}

/* ----- Security 视图：安全中心 ----- */

/* 账号信息 meta 网格 */
.yk-security__meta-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
}
.yk-security__meta {
	display: flex;
	gap: .625rem;
	align-items: flex-start;
	padding: .75rem;
	background: #f9fafb;
	border-radius: var(--yk-radius-sm);
	border: 1px solid var(--yk-border);
}
.yk-security__meta i { flex-shrink: 0; margin-top: 2px; }
.yk-security__meta-label {
	font-size: 11px;
	color: var(--yk-text-light);
	margin-bottom: 4px;
	font-weight: 500;
}
.yk-security__meta-value {
	font-size: 13px;
	color: var(--yk-text);
	font-weight: 600;
	line-height: 1.4;
	word-break: break-all;
}
.yk-security__meta-extra {
	font-size: 11px;
	color: var(--yk-text-light);
	margin-top: 2px;
}

/* 登录方式行 */
.yk-security__login-method {
	display: flex;
	align-items: center;
	gap: .875rem;
	padding: .75rem 0;
}
.yk-security__login-method + .yk-security__login-method {
	border-top: 1px solid var(--yk-border);
}
.yk-security__lm-icon {
	width: 36px;
	height: 36px;
	border-radius: var(--yk-radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-security__lm-icon svg { fill: currentColor; }
.yk-security__lm-body { flex: 1; min-width: 0; }
.yk-security__lm-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--yk-text);
	margin-bottom: 2px;
}
.yk-security__lm-detail {
	font-size: 13px;
	color: var(--yk-text-muted);
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}
.yk-security__lm-tag {
	display: inline-block;
	padding: .125rem .5rem;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 600;
}
.yk-security__lm-tag--ok {
	background: #ecfdf5;
	color: #10b981;
}
.yk-security__lm-tag--off {
	background: #f3f4f6;
	color: var(--yk-text-light);
}
.yk-security__lm-btn { flex-shrink: 0; padding: .5rem .875rem !important; font-size: 13px !important; }

/* 密码 / 设备会话行（共用） */
.yk-security__pwd {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}
.yk-security__pwd-info {
	flex: 1;
	min-width: 0;
}
.yk-security__pwd-label {
	font-size: 12px;
	color: var(--yk-text-light);
	margin-bottom: 4px;
}
.yk-security__pwd-value {
	font-size: 14px;
	color: var(--yk-text);
	font-weight: 600;
}
.yk-security__pwd-warn {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	font-size: 12px;
	color: #f59e0b;
	margin-top: 6px;
	padding: .375rem .625rem;
	background: #fffbeb;
	border-radius: .375rem;
	border: 1px solid #fde68a;
}

/* 安全通知偏好（开关行） */
.yk-security__pref {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: .875rem 0;
}
.yk-security__pref + .yk-security__pref {
	border-top: 1px solid var(--yk-border);
}
.yk-security__pref-info { flex: 1; min-width: 0; }
.yk-security__pref-name {
	font-size: 14px;
	font-weight: 600;
	color: var(--yk-text);
	margin-bottom: 4px;
}
.yk-security__pref-desc {
	font-size: 12px;
	color: var(--yk-text-muted);
}

/* 表单 hint 安全提示行（带图标 + 内联邮箱徽章） */
.yk-form-hint--secure {
	display: flex;
	align-items: flex-start;
	gap: .375rem;
	padding: .5rem .75rem;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	border-radius: .375rem;
	color: #047857;
	font-size: 12px;
	line-height: 1.5;
	margin: 0;
}
.yk-form-hint--secure i { margin-top: 1px; }
.yk-form-hint--secure span { flex: 1; min-width: 0; }
.yk-form-hint__email {
	display: inline-block;
	background: #fff;
	color: #6d4aff;
	padding: 1px 6px;
	border-radius: 4px;
	border: 1px solid #d1d5db;
	font-size: 11px;
	font-weight: 600;
	font-family: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;
	margin: 0 2px;
	word-break: break-all;
}

/* 邮箱地址卡片专属 */
.yk-email__current {
	background: #f9fafb;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-sm);
	padding: .75rem 1rem;
}
.yk-email__current-label {
	font-size: 12px;
	color: var(--yk-text-light);
	margin-bottom: .375rem;
	font-weight: 500;
}
.yk-email__current-value {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 14px;
	color: var(--yk-text);
	font-weight: 600;
	flex-wrap: wrap;
}
.yk-email__divider {
	height: 1px;
	background: linear-gradient(to right, transparent, var(--yk-border-strong) 30%, var(--yk-border-strong) 70%, transparent);
	margin: 1.25rem 0 .25rem;
}
.yk-email__code-row {
	display: flex;
	gap: .625rem;
}
.yk-email__code-row .yk-form-input { flex: 1; min-width: 0; }
.yk-email__code-row .yk-author-btn {
	flex-shrink: 0;
	padding: .625rem 1rem !important;
	font-size: 13px !important;
	white-space: nowrap;
}

/* iOS 风 toggle 开关 */
.yk-toggle {
	display: inline-block;
	position: relative;
	width: 44px;
	height: 24px;
	flex-shrink: 0;
}
.yk-toggle__input {
	opacity: 0;
	width: 0;
	height: 0;
	position: absolute;
}
.yk-toggle__slider {
	position: absolute;
	inset: 0;
	cursor: pointer;
	background: #e5e7eb;
	border-radius: 999px;
	transition: background .25s;
}
.yk-toggle__slider::before {
	content: '';
	position: absolute;
	left: 2px;
	top: 2px;
	width: 20px;
	height: 20px;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 4px rgba(0, 0, 0, .15);
	transition: transform .25s;
}
.yk-toggle__input:checked + .yk-toggle__slider {
	background: var(--yk-primary);
}
.yk-toggle__input:checked + .yk-toggle__slider::before {
	transform: translateX(20px);
}
.yk-toggle__input:disabled + .yk-toggle__slider {
	opacity: .5;
	cursor: not-allowed;
}

@media (max-width: 640px) {
	.yk-security__meta-grid { grid-template-columns: 1fr; }
	.yk-security__pwd { flex-direction: column; align-items: stretch; }
}

/* ----- Settings 视图：账号设置 ----- */
.yk-settings {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}
.yk-settings__card {
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: 1.5rem;
	box-shadow: var(--yk-shadow-sm);
}
.yk-settings__card--danger {
	background: #fffbfb;
	border-color: #fecaca;
}
.yk-settings__card-head {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.25rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--yk-border);
}
.yk-settings__card--danger .yk-settings__card-head { border-bottom-color: #fecaca; }
.yk-settings__card-icon {
	width: 40px;
	height: 40px;
	border-radius: var(--yk-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-settings__card-head h2 {
	font-size: 16px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0 0 .25rem 0;
}
.yk-settings__card-head p {
	font-size: 13px;
	color: var(--yk-text-muted);
	margin: 0;
}

/* 表单 */
.yk-settings__form {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}
.yk-form-row {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.yk-form-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--yk-text);
}
.yk-form-input {
	width: 100%;
	padding: .625rem .875rem;
	font-size: 14px;
	color: var(--yk-text);
	background: #fff;
	border: 1px solid var(--yk-border-strong);
	border-radius: var(--yk-radius-sm);
	outline: none;
	transition: border-color .15s, box-shadow .15s;
	font-family: inherit;
}
.yk-form-input:focus {
	border-color: var(--yk-primary);
	box-shadow: 0 0 0 3px rgba(15, 23, 42, .12);
}
.yk-form-textarea {
	resize: vertical;
	min-height: 80px;
	line-height: 1.5;
}
.yk-form-hint {
	font-size: 12px;
	color: var(--yk-text-light);
	margin: 0;
}

/* 头像上传行 */
.yk-form-row--avatar {
	flex-direction: column;
}
.yk-form-avatar {
	display: flex;
	align-items: center;
	gap: 1rem;
}
.yk-form-avatar__action {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: .375rem;
}

/* 表单按钮区 */
.yk-form-actions {
	display: flex;
	gap: .75rem;
	padding-top: .5rem;
}

/* danger 按钮 */
.yk-author-btn--danger {
	background: #fff;
	color: #ef4444;
	border-color: #fecaca;
}
.yk-author-btn--danger:hover {
	background: #ef4444;
	color: #fff;
	border-color: #ef4444;
}

@media (max-width: 640px) {
	.yk-settings__card { padding: 1.25rem; }
	.yk-form-avatar { flex-direction: column; align-items: flex-start; }
}

/* ----- Notifications 视图：通知消息列表 ----- */
.yk-notif__list {
	display: flex !important;
	flex-direction: column !important;
	grid-template-columns: none !important;
	gap: .625rem;
}

.yk-msg {
	display: flex;
	gap: 1rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	padding: 1rem 1.25rem;
	box-shadow: var(--yk-shadow-sm);
	transition: box-shadow .15s, transform .15s, background-color .25s;
	position: relative;
}
.yk-msg:hover {
	box-shadow: var(--yk-shadow-md);
	transform: translateY(-1px);
}
.yk-msg[hidden] { display: none !important; }
.yk-msg.is-removed {
	opacity: 0;
	transform: translateX(-20px);
	transition: opacity .25s, transform .25s;
	pointer-events: none;
}

/* 未读样式（淡紫底 + 左侧色条） */
.yk-msg--unread {
	background: linear-gradient(to right, rgba(109, 74, 255, .04), #fff 30%);
	border-left: 3px solid var(--yk-primary);
	padding-left: calc(1.25rem - 3px);
}

/* 图标 */
.yk-msg__icon {
	width: 40px;
	height: 40px;
	border-radius: var(--yk-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
/* emoji 图标（系统消息存的是 💰⭐ 等表情） */
.yk-msg__emoji {
	font-size: 20px;
	line-height: 1;
	font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
}

/* 主体 */
.yk-msg__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .375rem;
}
.yk-msg__head {
	display: flex;
	align-items: center;
	gap: .5rem;
}
.yk-msg__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0;
	line-height: 1.3;
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.yk-msg__dot {
	width: 8px;
	height: 8px;
	background: var(--yk-primary);
	border-radius: 50%;
	flex-shrink: 0;
	box-shadow: 0 0 0 3px rgba(15, 23, 42, .15);
}
.yk-msg__content {
	font-size: 13px;
	color: var(--yk-text-muted);
	margin: 0;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.yk-msg__meta {
	display: flex;
	gap: 1rem;
	font-size: 11px;
	color: var(--yk-text-light);
	margin-top: .125rem;
	flex-wrap: wrap;
}
.yk-msg__meta span,
.yk-msg__link {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}
.yk-msg__link {
	color: var(--yk-primary);
	text-decoration: none;
	font-weight: 500;
}
.yk-msg__link:hover { text-decoration: underline; }

/* 操作按钮组 */
.yk-msg__actions {
	display: flex;
	flex-direction: column;
	gap: .375rem;
	flex-shrink: 0;
	align-self: center;
}
.yk-msg__action {
	width: 32px;
	height: 32px;
	border-radius: var(--yk-radius-sm);
	background: #f9fafb;
	border: 1px solid var(--yk-border);
	color: var(--yk-text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all .15s;
	font-family: inherit;
}
.yk-msg__action:hover {
	background: #fff;
	color: var(--yk-primary);
	border-color: var(--yk-primary);
}
.yk-msg__delete:hover {
	background: #fef2f2;
	color: #ef4444;
	border-color: #fecaca;
}

/* "查看详情" 小按钮（meta 行内） */
.yk-msg__view-detail {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	padding: 2px 8px;
	background: transparent;
	border: 1px solid var(--yk-border);
	border-radius: 4px;
	color: var(--yk-primary);
	font-size: 11px;
	font-weight: 500;
	cursor: pointer;
	font-family: inherit;
	transition: all .15s;
}
.yk-msg__view-detail:hover {
	background: var(--yk-primary);
	color: #fff;
	border-color: var(--yk-primary);
}

/* ========================
 * 消息详情 modal
 * ======================== */
.yk-msg-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	opacity: 0;
	transition: opacity .2s;
}
.yk-msg-modal[hidden] { display: none !important; }
.yk-msg-modal.is-visible { opacity: 1; }

.yk-msg-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, .6);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	cursor: pointer;
}

.yk-msg-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 540px;
	max-height: calc(100vh - 4rem);
	overflow-y: auto;
	background: #fff;
	border-radius: var(--yk-radius-lg);
	box-shadow: 0 25px 70px -10px rgba(0, 0, 0, .35);
	padding: 1.5rem;
	transform: scale(.92);
	transition: transform .2s;
}
.yk-msg-modal.is-visible .yk-msg-modal__dialog {
	transform: scale(1);
}

.yk-msg-modal__close {
	position: absolute;
	top: .75rem;
	right: .75rem;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #f9fafb;
	border: 1px solid var(--yk-border);
	color: var(--yk-text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all .15s;
	font-family: inherit;
}
.yk-msg-modal__close:hover {
	background: #fef2f2;
	color: #ef4444;
	border-color: #fecaca;
}

.yk-msg-modal__head {
	display: flex;
	gap: 1rem;
	margin-bottom: 1.25rem;
	padding-right: 2.5rem; /* 给关闭按钮留位置 */
}
.yk-msg-modal__icon {
	width: 48px;
	height: 48px;
	border-radius: var(--yk-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-msg-modal__icon .yk-msg__emoji { font-size: 24px; }
.yk-msg-modal__icon i { width: 22px !important; height: 22px !important; }
.yk-msg-modal__head-body {
	flex: 1;
	min-width: 0;
}
.yk-msg-modal__title {
	font-size: 18px;
	font-weight: 800;
	color: var(--yk-text);
	margin: 0 0 .375rem 0;
	line-height: 1.3;
	word-break: break-word;
}
.yk-msg-modal__meta {
	display: flex;
	gap: 1rem;
	font-size: 12px;
	color: var(--yk-text-light);
	flex-wrap: wrap;
}
.yk-msg-modal__meta span {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}

.yk-msg-modal__content {
	font-size: 14px;
	color: var(--yk-text);
	line-height: 1.7;
	margin-bottom: 1.5rem;
	padding: 1rem;
	background: #f9fafb;
	border-radius: var(--yk-radius-sm);
	border-left: 3px solid var(--yk-primary);
	word-break: break-word;
	white-space: pre-wrap;
}
.yk-msg-modal__content:empty {
	display: none;
}

.yk-msg-modal__actions {
	display: flex;
	gap: .75rem;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.yk-msg-modal__actions .yk-author-btn[hidden] { display: none !important; }

/* 强制覆盖 modal 按钮颜色（防止 style.css 的 a{color} 全局规则降低对比度），同时统一字号尺寸 */
.yk-msg-modal__actions .yk-author-btn {
	font-size: 14px;
	padding: .625rem 1.25rem;
	font-weight: 600;
}
.yk-msg-modal__actions .yk-author-btn--primary,
.yk-msg-modal__actions a.yk-author-btn--primary {
	color: #fff !important;
	background: var(--yk-primary);
}
.yk-msg-modal__actions .yk-author-btn--primary:hover,
.yk-msg-modal__actions a.yk-author-btn--primary:hover {
	color: #fff !important;
	background: var(--yk-primary-hover);
}
.yk-msg-modal__actions .yk-author-btn--ghost {
	color: #1e293b !important;
	background: #fff;
	border-color: var(--yk-border-strong);
}
.yk-msg-modal__actions .yk-author-btn--ghost:hover {
	color: #1e293b !important;
	background: #f9fafb;
}

@media (max-width: 640px) {
	.yk-msg-modal__dialog { padding: 1.25rem; }
	.yk-msg-modal__title { font-size: 16px; }
	.yk-msg-modal__actions { flex-direction: column-reverse; }
	.yk-msg-modal__actions .yk-author-btn { width: 100%; justify-content: center; }
}

/* 通用：批次分页（前端"加载更多"机制） */
.is-hidden-batch { display: none !important; }

/* 通用"加载更多"按钮 */
.yk-batch-load-more {
	display: flex;
	justify-content: center;
	margin-top: 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px dashed var(--yk-border);
}
.yk-batch-load-more__btn {
	min-width: 200px;
	justify-content: center;
}
.yk-batch-load-more__count {
	margin-left: .375rem;
	color: var(--yk-text-light);
	font-weight: 500;
}

/* 加载更多按钮容器 */
.yk-notif__load-more {
	display: flex;
	justify-content: center;
	margin-top: 1rem;
}
.yk-notif__load-more .yk-author-btn {
	min-width: 160px;
	justify-content: center;
}

/* 移动端：操作按钮换横向 */
@media (max-width: 640px) {
	.yk-msg { padding: .875rem 1rem; gap: .75rem; }
	.yk-msg__actions { flex-direction: row; align-self: flex-start; margin-top: 4px; }
}

/* ----- My Comments 视图（评论列表 · 引文卡片风） ----- */
.yk-mycomments__list {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.yk-mycomment {
	display: flex;
	gap: 1rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	padding: 1rem 1.25rem;
	box-shadow: var(--yk-shadow-sm);
	transition: box-shadow .15s, transform .15s;
	overflow: hidden;
	position: relative;
}
.yk-mycomment:hover {
	box-shadow: var(--yk-shadow-md);
	transform: translateY(-1px);
}
.yk-mycomment[hidden] { display: none !important; }
.yk-mycomment[data-status="hold"] {
	background: #fffbeb;
	border-color: #fde68a;
}
.yk-mycomment[data-status="trash"],
.yk-mycomment[data-status="spam"] {
	opacity: .6;
}

/* 左侧装饰条（引用风格） */
.yk-mycomment__bar {
	width: 3px;
	flex-shrink: 0;
	background: var(--yk-primary);
	border-radius: 2px;
	align-self: stretch;
}
.yk-mycomment[data-status="hold"] .yk-mycomment__bar { background: #f59e0b; }
.yk-mycomment[data-status="trash"] .yk-mycomment__bar,
.yk-mycomment[data-status="spam"] .yk-mycomment__bar { background: #94a3b8; }

.yk-mycomment__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.yk-mycomment__head {
	display: flex;
	align-items: center;
	gap: .5rem;
	flex-wrap: wrap;
}
.yk-mycomment__type {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	font-size: 11px;
	color: var(--yk-text-muted);
	background: #f9fafb;
	padding: .125rem .5rem;
	border-radius: .25rem;
	font-weight: 500;
}
.yk-mycomment__status {
	display: inline-flex;
	padding: .125rem .5rem;
	border-radius: .25rem;
	color: #fff;
	font-size: 11px;
	font-weight: 500;
}

.yk-mycomment__content-link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.yk-mycomment__content {
	font-size: 14px;
	color: var(--yk-text);
	margin: 0;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color .15s;
}
.yk-mycomment__content-link:hover .yk-mycomment__content {
	color: var(--yk-primary);
}

.yk-mycomment__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-size: 12px;
	color: var(--yk-text-light);
	flex-wrap: wrap;
	padding-top: .25rem;
	border-top: 1px dashed var(--yk-border);
}
.yk-mycomment__post-link {
	display: inline-flex;
	align-items: center;
	gap: .375rem;
	color: var(--yk-text-muted);
	text-decoration: none;
	transition: color .15s;
	min-width: 0;
}
.yk-mycomment__post-link span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 360px;
}
.yk-mycomment__post-link:hover {
	color: var(--yk-primary);
}
.yk-mycomment__time {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	flex-shrink: 0;
}

@media (max-width: 640px) {
	.yk-mycomment { padding: .875rem; }
	.yk-mycomment__post-link span { max-width: 200px; }
}

/* ----- Downloads 视图：额度卡片 + 下载列表 ----- */
.yk-downloads__quota {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 1rem;
}
.yk-downloads__quota-card {
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: 1.25rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	box-shadow: var(--yk-shadow-sm);
}
.yk-downloads__quota-icon {
	width: 48px;
	height: 48px;
	border-radius: var(--yk-radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-downloads__quota-body {
	flex: 1;
	min-width: 0;
}
.yk-downloads__quota-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin-bottom: .5rem;
}
.yk-downloads__quota-label {
	font-size: 13px;
	color: var(--yk-text-muted);
	font-weight: 500;
}
.yk-downloads__quota-text {
	font-size: 14px;
	color: var(--yk-text-light);
}
.yk-downloads__quota-text strong {
	font-size: 18px;
	font-weight: 800;
}
/* 已废弃：quota-bar 进度条 → 改用 7 天柱状图 */
.yk-downloads__quota-bar {
	height: 6px;
	background: #f3f4f6;
	border-radius: 999px;
	overflow: hidden;
}
.yk-downloads__quota-bar-fill {
	height: 100%;
	border-radius: 999px;
	transition: width .6s ease;
}

/* 7 天活跃度迷你柱状图 */
.yk-downloads__chart {
	display: flex;
	align-items: flex-end;
	gap: 6px;
	height: 56px;
	padding-top: 4px;
}
.yk-downloads__chart-bar {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	height: 100%;
	cursor: default;
}
.yk-downloads__chart-fill {
	width: 100%;
	max-width: 24px;
	background: rgba(109, 74, 255, .35);
	border-radius: 3px 3px 0 0;
	min-height: 3px;
	flex-shrink: 0;
	transition: height .4s ease, background-color .15s;
	margin-top: auto;
}
.yk-downloads__chart-bar:hover .yk-downloads__chart-fill {
	background: var(--yk-primary);
}
.yk-downloads__chart-fill.is-today {
	background: var(--yk-primary);
}
.yk-downloads__chart-label {
	font-size: 9px;
	color: var(--yk-text-light);
	white-space: nowrap;
	letter-spacing: -.02em;
}
.yk-downloads__stat-value {
	font-size: 22px;
	font-weight: 800;
	color: var(--yk-text);
	line-height: 1;
	margin-bottom: 4px;
}
.yk-downloads__stat-label {
	font-size: 12px;
	color: var(--yk-text-muted);
	font-weight: 500;
}

/* 下载列表 */
.yk-downloads__list {
	display: flex;
	flex-direction: column;
	gap: .625rem;
}
.yk-downloads__item {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	padding: .75rem;
	transition: box-shadow .15s, transform .15s;
}
.yk-downloads__item:hover {
	box-shadow: var(--yk-shadow-md);
	transform: translateY(-1px);
}
.yk-downloads__thumb {
	width: 80px;
	height: 60px;
	flex-shrink: 0;
	border-radius: var(--yk-radius-sm);
	overflow: hidden;
	display: block;
	background: #f9fafb;
}
.yk-downloads__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
}
.yk-downloads__body {
	flex: 1;
	min-width: 0;
}
.yk-downloads__title-link {
	color: inherit;
	text-decoration: none;
}
.yk-downloads__title {
	font-size: 14px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0 0 .25rem 0;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	transition: color .15s;
}
.yk-downloads__title-link:hover .yk-downloads__title {
	color: var(--yk-primary);
}
.yk-downloads__meta {
	display: flex;
	gap: 1rem;
	font-size: 12px;
	color: var(--yk-text-light);
	flex-wrap: wrap;
}
.yk-downloads__meta span {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}
.yk-downloads__action {
	flex-shrink: 0;
	padding: .5rem .875rem !important;
	font-size: 13px !important;
}

/* 移动端 */
@media (max-width: 640px) {
	.yk-downloads__quota { grid-template-columns: 1fr; }
	.yk-downloads__item {
		flex-wrap: wrap;
	}
	.yk-downloads__action { margin-left: auto; }
}

/* ----- My Posts 视图（横向 list 布局） ----- */
.yk-myposts__list {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.yk-myposts__item {
	display: flex;
	gap: 1rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: 1rem;
	box-shadow: var(--yk-shadow-sm);
	transition: box-shadow .15s, transform .15s;
}
.yk-myposts__item:hover {
	box-shadow: var(--yk-shadow-md);
	transform: translateY(-1px);
}
.yk-myposts__item[hidden] { display: none !important; }
.yk-myposts__item.is-removed {
	opacity: 0;
	transform: translateX(-20px);
	transition: opacity .25s, transform .25s;
	pointer-events: none;
}

/* 缩略图 */
.yk-myposts__thumb {
	width: 120px;
	height: 90px;
	flex-shrink: 0;
	border-radius: var(--yk-radius-sm);
	overflow: hidden;
	display: block;
	background: #f9fafb;
}
.yk-myposts__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
}
.yk-myposts__thumb-fallback {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(109, 74, 255, .08), rgba(168, 85, 247, .12));
}

/* 主体 */
.yk-myposts__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: .375rem;
}
.yk-myposts__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: .75rem;
}
.yk-myposts__title-link {
	color: inherit;
	text-decoration: none;
	flex: 1;
	min-width: 0;
}
.yk-myposts__title {
	font-size: 16px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	transition: color .15s;
}
.yk-myposts__title-link:hover .yk-myposts__title {
	color: var(--yk-primary);
}
.yk-myposts__status {
	display: inline-flex;
	padding: .125rem .5rem;
	border-radius: .25rem;
	color: #fff;
	font-size: 11px;
	font-weight: 500;
	flex-shrink: 0;
	white-space: nowrap;
}
.yk-myposts__excerpt {
	font-size: 13px;
	color: var(--yk-text-muted);
	margin: 0;
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.yk-myposts__meta {
	display: flex;
	gap: 1rem;
	font-size: 12px;
	color: var(--yk-text-light);
	margin-top: .25rem;
	flex-wrap: wrap;
}
.yk-myposts__meta span {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
}

/* 操作按钮组 */
.yk-myposts__actions {
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex-shrink: 0;
	align-self: center;
}
.yk-myposts__action {
	width: 36px;
	height: 36px;
	border-radius: var(--yk-radius-sm);
	background: #f9fafb;
	border: 1px solid var(--yk-border);
	color: var(--yk-text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all .15s;
	text-decoration: none;
	font-family: inherit;
}
.yk-myposts__action:hover {
	background: #fff;
	color: var(--yk-primary);
	border-color: var(--yk-primary);
}
.yk-myposts__action--danger:hover {
	background: #fef2f2;
	color: #ef4444;
	border-color: #fecaca;
}

/* 移动端适配：缩略图缩小，操作按钮换横向 */
@media (max-width: 640px) {
	.yk-myposts__item {
		flex-direction: column;
		gap: .75rem;
	}
	.yk-myposts__thumb { width: 100%; height: 160px; }
	.yk-myposts__actions {
		flex-direction: row;
		align-self: flex-start;
	}
}

/* ----- Favorites 视图（复用 mygames 容器样式） ----- */
.yk-fav-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	overflow: hidden;
	transition: box-shadow .15s, transform .15s;
}
.yk-fav-card:hover {
	box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
	transform: translateY(-2px);
}
.yk-fav-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}
.yk-fav-card__author {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	font-size: 12px;
	color: var(--yk-text-light);
	margin-bottom: .5rem;
}
.yk-fav-card__author i { flex-shrink: 0; }

/* 取消收藏按钮（右上角悬浮红心） */
.yk-fav-remove {
	position: absolute;
	top: .625rem;
	right: .625rem;
	z-index: 2;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	border: 1px solid var(--yk-border);
	color: #ef4444;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all .15s;
	box-shadow: var(--yk-shadow-sm);
	font-family: inherit;
}
.yk-fav-remove:hover {
	background: #ef4444;
	color: #fff;
	border-color: #ef4444;
	transform: scale(1.08);
}
.yk-fav-remove:active {
	transform: scale(.95);
}
.yk-fav-remove.is-removing {
	opacity: .5;
	pointer-events: none;
}
.yk-fav-card.is-removed {
	opacity: 0;
	transform: scale(.9);
	transition: opacity .25s, transform .25s;
	pointer-events: none;
}

/* 其他视图占位 */
.yk-dash-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 5rem 2rem;
	text-align: center;
}
.yk-dash-placeholder h2 {
	font-size: 20px;
	font-weight: 700;
	color: var(--yk-text);
	margin: 0;
}
.yk-dash-placeholder p {
	color: var(--yk-text-muted);
	margin: 0;
	font-size: 14px;
}

/* ==================== 6. 响应式 ==================== */

@media (max-width: 1279px) {
	.yk-author-banner { min-height: auto; }
	.yk-author-banner__inner {
		flex-direction: column;
		align-items: stretch;
		padding: 1.5rem;
	}
	.yk-author-stats {
		margin-top: 1rem;
	}
}
@media (max-width: 1024px) {
	.yk-author-banner__left-row {
		flex-direction: column;
		gap: 1rem;
	}
	.yk-author-info__name { font-size: 1.75rem; }

	.yk-dashboard-sidebar {
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		top: auto;
		width: 100%;
		max-height: none;
		border-radius: var(--yk-radius-xl) var(--yk-radius-xl) 0 0;
		z-index: 40;
		padding: .5rem;
		flex-direction: row;
		overflow-x: auto;
	}
	.yk-dashboard-sidebar__brand,
	.yk-dashboard-sidebar__divider,
	.yk-dashboard-sidebar__footer { display: none; }
	.yk-dashboard-sidebar__nav {
		flex-direction: row;
		padding: 0;
		gap: .25rem;
	}
	.yk-dashboard-main { padding-bottom: 80px; }
	.yk-dashboard-layout { padding: 1rem; }
}

@media (max-width: 768px) {
	.yk-mygames__stats { grid-template-columns: repeat(2, 1fr); }
	.yk-mygames__toolbar {
		flex-direction: column;
		align-items: stretch;
	}
	.yk-mygames__search { min-width: 0; width: 100%; }
	.yk-mygames__filters { overflow-x: auto; flex-wrap: nowrap; }
	.yk-mygames__filter { white-space: nowrap; }
	.yk-mygames__title { font-size: 1.5rem; }

	.yk-author-container { padding: 1rem; }
	.yk-author-banner__inner { padding: 1rem; }
	.yk-author-avatar--lg { width: 80px; height: 80px; }
	.yk-author-info__name { font-size: 1.5rem; }
	.yk-author-tabs {
		padding: .5rem .75rem;
	}
	.yk-author-tabs__list {
		gap: 1rem;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.yk-author-tab { white-space: nowrap; }
	.yk-dashboard-stats { grid-template-columns: repeat(2, 1fr); }
	.yk-author-grid__sub,
	.yk-dashboard-grid__sub { grid-template-columns: 1fr; }
	.yk-dashboard-banner__top {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ============================================================
 * 我的等级（Level View）
 *   - Hero：当前等级大卡片（左：等级 + 进度；右：特权列表）
 *   - 等级成长路径（水平时间线）
 *   - 两栏：如何获得经验 / 下一级奖励
 *   - 等级奖励一览（卡片网格）
 *   - 等级记录（时间线）
 * ============================================================ */
.yk-level-view {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* ----- Hero ----- */
.yk-level-hero {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 1.25rem;
	background: linear-gradient(135deg, #f3f0ff 0%, #eef4ff 100%);
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-xl);
	padding: 1.5rem;
	position: relative;
	overflow: hidden;
}
.yk-level-hero::before {
	content: '';
	position: absolute;
	top: -40px;
	right: -40px;
	width: 180px;
	height: 180px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(109, 74, 255, .12), transparent 70%);
	pointer-events: none;
}
.yk-level-hero__main {
	display: flex;
	gap: 1.25rem;
	align-items: center;
	position: relative;
	z-index: 1;
}
.yk-level-hero__badge {
	width: 92px;
	height: 104px;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	color: #fff;
	flex-shrink: 0;
	box-shadow: 0 8px 20px rgba(15, 23, 42, .35);
}
.yk-level-hero__badge-emoji {
	font-size: 26px;
	line-height: 1;
}
.yk-level-hero__badge-num {
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .5px;
}
.yk-level-hero__info {
	flex: 1;
	min-width: 0;
}
.yk-level-hero__title-row {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .75rem;
}
.yk-level-hero__title {
	font-size: 22px;
	font-weight: 800;
	margin: 0;
	color: var(--yk-text);
}
.yk-level-hero__progress {
	margin-bottom: .5rem;
}
.yk-level-hero__progress-bar {
	width: 100%;
	height: 8px;
	background: rgba(109, 74, 255, .15);
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: .375rem;
}
.yk-level-hero__progress-bar > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	transition: width .4s ease;
}
.yk-level-hero__progress-meta {
	font-size: 12px;
	color: var(--yk-text-light);
	text-align: right;
}
.yk-level-hero__hint {
	margin: 0 0 .875rem;
	font-size: 13px;
	color: var(--yk-text-light);
}
.yk-level-hero__hint strong {
	color: var(--yk-text);
	font-weight: 700;
}
.yk-level-hero__stats {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
}
.yk-level-hero__stat {
	display: flex;
	align-items: center;
	gap: .375rem;
	padding: .375rem .75rem;
	background: rgba(255, 255, 255, .7);
	border: 1px solid rgba(255, 255, 255, .9);
	border-radius: 999px;
	font-size: 12px;
}
.yk-level-hero__stat-label {
	color: var(--yk-text-light);
}
.yk-level-hero__stat-value {
	font-weight: 700;
	color: var(--yk-text);
}

/* 右侧特权 */
.yk-level-hero__perks {
	background: #fff;
	border-radius: var(--yk-radius-lg);
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	position: relative;
	z-index: 1;
}
.yk-level-hero__perks-title {
	font-size: 14px;
	font-weight: 700;
	margin: 0 0 .875rem;
	color: var(--yk-text);
}
.yk-level-perks-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	flex: 1;
}
.yk-level-perk {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: 12px;
	color: var(--yk-text);
	line-height: 1.4;
}
.yk-level-perk.is-locked {
	color: var(--yk-text-light);
}
.yk-level-perk.is-locked i {
	color: #94a3b8;
}
.yk-level-perk.is-unlocked i {
	color: var(--yk-primary);
}
.yk-level-perk__label {
	flex: 1;
	min-width: 0;
}
.yk-level-perk__value {
	font-weight: 600;
	font-size: 12px;
	color: var(--yk-primary);
	flex-shrink: 0;
}
.yk-level-perk.is-locked .yk-level-perk__value {
	color: #94a3b8;
}
.yk-level-perks-all {
	margin-top: .875rem;
	padding: .5rem .875rem;
	background: rgba(109, 74, 255, .08);
	color: var(--yk-primary);
	border: 0;
	border-radius: var(--yk-radius-md);
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s;
}
.yk-level-perks-all:hover {
	background: rgba(109, 74, 255, .15);
}

/* ----- 通用卡片 ----- */
.yk-level-card {
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-lg);
	padding: 1.25rem 1.5rem;
}
.yk-level-card__title {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 1rem;
	color: var(--yk-text);
}
.yk-level-empty {
	text-align: center;
	color: var(--yk-text-light);
	font-size: 13px;
	padding: 1.5rem 0;
	margin: 0;
}

/* ----- 等级路径 ----- */
.yk-level-path {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: .25rem;
	overflow-x: auto;
	padding: .5rem 0;
}
.yk-level-path__node {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .375rem;
	flex-shrink: 0;
	min-width: 72px;
}
.yk-level-path__badge {
	width: 52px;
	height: 58px;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f1f5f9;
	color: #94a3b8;
	font-size: 20px;
}
.yk-level-path__node--past .yk-level-path__badge {
	background: rgba(109, 74, 255, .12);
	color: var(--yk-primary);
}
.yk-level-path__node--current .yk-level-path__badge {
	box-shadow: 0 4px 12px rgba(15, 23, 42, .4);
	transform: scale(1.08);
}
.yk-level-path__node--current .yk-level-path__lv {
	color: var(--yk-primary);
	font-weight: 800;
}
.yk-level-path__lv {
	font-size: 13px;
	font-weight: 700;
	color: var(--yk-text);
}
.yk-level-path__node--locked .yk-level-path__lv {
	color: var(--yk-text-light);
}
.yk-level-path__name {
	font-size: 11px;
	color: var(--yk-text-light);
	text-align: center;
	white-space: nowrap;
}
.yk-level-path__arrow {
	color: #cbd5e1;
	flex-shrink: 0;
	margin-top: 24px;
}

/* ----- 两栏 ----- */
.yk-level-two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}

/* 经验获取列表 */
.yk-level-exp-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.yk-level-exp-item {
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .5rem .75rem;
	background: #f9fafb;
	border-radius: var(--yk-radius-md);
	transition: background .15s;
}
.yk-level-exp-item:hover {
	background: #f3f4f6;
}
.yk-level-exp-item__icon {
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(109, 74, 255, .1);
	color: var(--yk-primary);
	border-radius: 999px;
	flex-shrink: 0;
}
.yk-level-exp-item__label {
	flex: 1;
	font-size: 13px;
	color: var(--yk-text);
}
.yk-level-exp-item__reward {
	font-size: 12px;
	font-weight: 700;
	color: var(--yk-primary);
}

/* 下一级奖励 */
.yk-level-next-hero {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
	background: linear-gradient(135deg, rgba(109, 74, 255, .05), rgba(109, 74, 255, .1));
	border-radius: var(--yk-radius-md);
	margin-bottom: 1rem;
}
.yk-level-next-hero__badge {
	width: 64px;
	height: 72px;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	color: #fff;
	flex-shrink: 0;
}
.yk-level-next-hero__emoji { font-size: 22px; line-height: 1; }
.yk-level-next-hero__num   { font-size: 11px; font-weight: 800; letter-spacing: .5px; }
.yk-level-next-hero__name {
	font-size: 16px;
	font-weight: 700;
	color: var(--yk-text);
}
.yk-level-next-rewards {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.yk-level-next-rewards li {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .375rem 0;
	font-size: 13px;
	color: var(--yk-text);
}
.yk-level-next-rewards li i {
	color: var(--yk-primary);
	flex-shrink: 0;
}
.yk-level-next-progress {
	background: #f9fafb;
	border-radius: var(--yk-radius-md);
	padding: .75rem;
}
.yk-level-next-progress__bar {
	width: 100%;
	height: 6px;
	background: rgba(109, 74, 255, .15);
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: .5rem;
}
.yk-level-next-progress__bar > span {
	display: block;
	height: 100%;
	border-radius: 999px;
	transition: width .4s ease;
}
.yk-level-next-progress__meta {
	display: flex;
	justify-content: space-between;
	font-size: 11px;
	color: var(--yk-text-light);
}

/* ----- 奖励一览 ----- */
.yk-level-rewards-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: .75rem;
}
.yk-level-reward {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .375rem;
	padding: 1rem .75rem;
	background: #fff;
	border: 1px solid var(--yk-border);
	border-radius: var(--yk-radius-md);
	text-align: center;
	transition: transform .15s, border-color .15s;
}
.yk-level-reward--current {
	border-color: var(--yk-primary);
	background: rgba(109, 74, 255, .04);
}
.yk-level-reward--locked {
	opacity: .65;
}
.yk-level-reward__badge {
	width: 56px;
	height: 62px;
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	margin-bottom: .375rem;
}
.yk-level-reward__emoji { font-size: 20px; line-height: 1; }
.yk-level-reward__num   { font-size: 10px; font-weight: 800; letter-spacing: .5px; }
.yk-level-reward__lv {
	font-size: 13px;
	font-weight: 700;
	color: var(--yk-text);
}
.yk-level-reward__name {
	font-size: 11px;
	color: var(--yk-text-light);
}
.yk-level-reward__state {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	font-size: 11px;
	padding: 2px .5rem;
	background: #f3f4f6;
	border-radius: 999px;
	color: var(--yk-text-light);
	margin-top: .25rem;
}
.yk-level-reward--claimed .yk-level-reward__state,
.yk-level-reward--current .yk-level-reward__state {
	background: rgba(16, 185, 129, .1);
	color: #10b981;
}

/* ----- 等级记录 ----- */
.yk-level-logs {
	position: relative;
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 1.5rem;
	align-items: start;
}
.yk-level-logs__list {
	list-style: none;
	margin: 0;
	padding: 0 0 0 .5rem;
	display: flex;
	flex-direction: column;
	gap: .875rem;
	position: relative;
}
.yk-level-logs__list::before {
	content: '';
	position: absolute;
	left: 6px;
	top: 8px;
	bottom: 8px;
	width: 2px;
	background: #e5e7eb;
}
.yk-level-log {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: .75rem;
	align-items: center;
	position: relative;
}
.yk-level-log__dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 3px solid #fff;
	box-shadow: 0 0 0 2px currentColor;
	background: var(--yk-primary);
	position: relative;
	z-index: 1;
	flex-shrink: 0;
}
.yk-level-log__body {
	min-width: 0;
}
.yk-level-log__title {
	font-size: 13px;
	font-weight: 600;
	color: var(--yk-text);
}
.yk-level-log__desc {
	font-size: 11px;
	color: var(--yk-text-light);
	margin-top: 2px;
}
.yk-level-log__time {
	font-size: 11px;
	color: var(--yk-text-light);
	font-family: var(--yk-font-mono, monospace);
	white-space: nowrap;
}
.yk-level-achievement {
	background: linear-gradient(135deg, #f3f0ff, #eef4ff);
	border-radius: var(--yk-radius-lg);
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: .5rem;
}
.yk-level-achievement__icon {
	font-size: 40px;
	line-height: 1;
	margin-bottom: .25rem;
}
.yk-level-achievement__text p {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--yk-text);
}
.yk-level-achievement__sub {
	font-size: 11px !important;
	font-weight: 400 !important;
	color: var(--yk-text-light) !important;
	margin-top: .25rem !important;
}

/* ----- 响应式 ----- */
@media (max-width: 1024px) {
	.yk-level-hero {
		grid-template-columns: 1fr;
	}
	.yk-level-two-col {
		grid-template-columns: 1fr;
	}
	.yk-level-rewards-grid {
		grid-template-columns: repeat(3, 1fr);
	}
	.yk-level-logs {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 640px) {
	.yk-level-hero__main {
		flex-direction: column;
		align-items: flex-start;
	}
	.yk-level-rewards-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==================== 签到中心 (Checkin Center) ==================== */

.yk-checkin-view {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* ----- Hero（紫色渐变 banner） ----- */
.yk-checkin-hero {
	position: relative;
	overflow: hidden;
	border-radius: 16px;
	padding: 28px 32px;
	background: linear-gradient(135deg, #7c5cff 0%, #6d4aff 50%, #a78bfa 100%);
	color: #fff;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}
.yk-checkin-hero__bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		radial-gradient(circle at 90% 10%, rgba(255, 255, 255, .25), transparent 50%),
		radial-gradient(circle at 10% 110%, rgba(167, 139, 250, .35), transparent 55%),
		url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><circle cx='1' cy='1' r='1' fill='%23ffffff' opacity='0.07'/></svg>");
	background-size: auto, auto, 14px 14px;
}
.yk-checkin-hero__content {
	position: relative;
	z-index: 1;
	flex: 1;
	min-width: 0;
}
.yk-checkin-hero__title {
	margin: 0 0 6px;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -.02em;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.yk-checkin-hero__subtitle {
	margin: 0;
	font-size: 13px;
	color: rgba(255, 255, 255, .85);
}
.yk-checkin-hero__rules {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	height: 30px;
	padding: 0 12px;
	background: rgba(255, 255, 255, .18);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	transition: background .15s, transform .12s;
	flex-shrink: 0;
}
.yk-checkin-hero__rules:hover { background: rgba(255, 255, 255, .28); transform: translateY(-1px); }
.yk-checkin-hero__rules:active { transform: scale(.96); }

/* ----- 顶部双卡：今日签到 + 我的游币 ----- */
.yk-checkin-top {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 12px;
}
.yk-checkin-today {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	padding: 18px 22px;
	background: linear-gradient(135deg, #6d4aff 0%, #8b5cf6 50%, #a78bfa 100%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.yk-checkin-today.is-checked {
	background: linear-gradient(135deg, #5b3ce0 0%, #6d4aff 100%);
}
.yk-checkin-today__info { flex: 1; min-width: 0; }
.yk-checkin-today__label {
	margin: 0 0 4px;
	font-size: 12px;
	color: rgba(255, 255, 255, .85);
	font-weight: 600;
}
.yk-checkin-today__reward {
	margin: 0 0 4px;
	font-size: 30px;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	letter-spacing: -.02em;
}
.yk-checkin-today__reward-unit { font-size: 14px; font-weight: 600; opacity: .9; }
.yk-checkin-today__hint { margin: 0; font-size: 12px; color: rgba(255, 255, 255, .8); }
.yk-checkin-today__hint strong { color: #fde68a; font-weight: 800; }

.yk-checkin-today__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	padding: 0 22px;
	background: #fff;
	color: #6d4aff !important;
	border: 0;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(15, 23, 42, .15);
	transition: transform .15s, box-shadow .15s;
	flex-shrink: 0;
}
.yk-checkin-today__btn:hover:not(:disabled):not(.is-done) {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(15, 23, 42, .22);
}
.yk-checkin-today__btn:active:not(:disabled):not(.is-done) { transform: scale(.97); }
.yk-checkin-today__btn.is-done,
.yk-checkin-today__btn:disabled {
	background: rgba(255, 255, 255, .2);
	color: #fff !important;
	cursor: not-allowed;
	box-shadow: none;
}

.yk-checkin-coins {
	position: relative;
	overflow: hidden;
	border-radius: 14px;
	padding: 18px 22px;
	background: #fff;
	border: 1px solid #f1f5f9;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
}
.yk-checkin-coins::after {
	content: '';
	position: absolute;
	right: -20px; bottom: -20px;
	width: 110px; height: 110px;
	background: radial-gradient(circle, rgba(251, 191, 36, .22), transparent 70%);
	pointer-events: none;
}
.yk-checkin-coins__label { margin: 0; font-size: 12px; font-weight: 600; color: #94a3b8; }
.yk-checkin-coins__value {
	margin: 0;
	font-size: 32px;
	font-weight: 800;
	color: #1e293b;
	letter-spacing: -.02em;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1.1;
}
.yk-checkin-coins__more {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	font-size: 12px;
	color: #6d4aff;
	text-decoration: none;
	font-weight: 600;
	width: max-content;
}
.yk-checkin-coins__more:hover { color: #5b3ce0; }

/* ----- 主内容两栏 ----- */
.yk-checkin-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 12px;
}
.yk-checkin-grid__main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.yk-checkin-grid__side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }

/* ----- 通用卡片 ----- */
.yk-checkin-card {
	background: #fff;
	border: 1px solid #f1f5f9;
	border-radius: 14px;
	padding: 18px 20px;
}
.yk-checkin-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.yk-checkin-card__title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: #1e293b;
}
.yk-checkin-card__sub {
	margin: 4px 0 0;
	font-size: 12px;
	color: #64748b;
}
.yk-checkin-card__hint {
	font-size: 11px;
	color: #94a3b8;
}

/* ----- 补签卡按钮 ----- */
.yk-checkin-makeup {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	height: 28px;
	padding: 0 12px;
	background: #f5f3ff;
	color: #6d4aff;
	border: 0;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	cursor: not-allowed;
	opacity: .6;
}

/* ----- 7 天连续进度 ----- */
.yk-checkin-week {
	display: flex;
	align-items: stretch;
	gap: 4px;
	overflow-x: auto;
	scrollbar-width: none;
	padding: 4px 0;
}
.yk-checkin-week::-webkit-scrollbar { display: none; }
.yk-checkin-week__day {
	flex: 1 1 0;
	min-width: 70px;
	border-radius: 12px;
	padding: 10px 6px;
	background: #f8fafc;
	border: 1px solid #f1f5f9;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	transition: all .15s;
	color: #64748b;
}
.yk-checkin-week__head {
	font-size: 11px;
	font-weight: 600;
}
.yk-checkin-week__icon {
	width: 38px;
	height: 38px;
	border-radius: 999px;
	background: #fff;
	border: 1.5px solid #e2e8f0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #94a3b8;
}
.yk-checkin-week__reward {
	font-size: 12px;
	font-weight: 700;
	color: #475569;
}
.yk-checkin-week__day.is-past {
	background: #f5f3ff;
	border-color: #e9d5ff;
	color: #6d4aff;
}
.yk-checkin-week__day.is-past .yk-checkin-week__icon {
	background: #6d4aff;
	border-color: #6d4aff;
	color: #fff;
}
.yk-checkin-week__day.is-past .yk-checkin-week__reward { color: #6d4aff; }
.yk-checkin-week__day.is-current {
	background: linear-gradient(135deg, #6d4aff 0%, #8b5cf6 100%);
	border-color: transparent;
	color: #fff;
	box-shadow: 0 4px 14px rgba(109, 74, 255, .35);
	transform: translateY(-2px);
}
.yk-checkin-week__day.is-current .yk-checkin-week__icon {
	background: rgba(255, 255, 255, .25);
	border-color: rgba(255, 255, 255, .4);
	color: #fff;
}
.yk-checkin-week__day.is-current .yk-checkin-week__reward { color: #fff; }
.yk-checkin-week__day.is-gift .yk-checkin-week__icon {
	background: linear-gradient(135deg, #fbbf24, #f59e0b);
	border-color: transparent;
	color: #fff;
}
.yk-checkin-week__day.is-gift.is-past .yk-checkin-week__icon,
.yk-checkin-week__day.is-gift.is-current .yk-checkin-week__icon {
	background: #fff;
	color: #f59e0b;
}
.yk-checkin-week__arrow {
	display: flex;
	align-items: center;
	color: #cbd5e1;
	flex-shrink: 0;
}

/* ----- 5 个里程碑 ----- */
.yk-checkin-milestones {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 10px;
}
.yk-checkin-ms {
	position: relative;
	border-radius: 12px;
	padding: 14px 8px 12px;
	background: #f8fafc;
	border: 1.5px solid transparent;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
	transition: all .15s;
}
.yk-checkin-ms.is-claimable {
	background: linear-gradient(180deg, #f5f3ff 0%, #ede9fe 100%);
	border-color: var(--ms-color, #6d4aff);
	box-shadow: 0 4px 14px rgba(109, 74, 255, .14);
}
.yk-checkin-ms.is-claimed {
	background: #fff;
	border-color: #e2e8f0;
	opacity: .85;
}
.yk-checkin-ms.is-locked { opacity: .9; }
.yk-checkin-ms__day {
	font-size: 13px;
	font-weight: 700;
	color: #475569;
}
.yk-checkin-ms.is-claimable .yk-checkin-ms__day { color: var(--ms-color, #6d4aff); }
.yk-checkin-ms__icon {
	width: 56px;
	height: 56px;
	border-radius: 12px;
	background: #fff;
	border: 1px solid #e2e8f0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ms-color, #94a3b8);
	margin: 4px 0 2px;
	transition: transform .2s;
}
.yk-checkin-ms.is-claimable .yk-checkin-ms__icon {
	background: linear-gradient(135deg, var(--ms-color, #6d4aff), color-mix(in srgb, var(--ms-color, #6d4aff) 80%, white));
	border-color: transparent;
	color: #fff;
	transform: scale(1.05);
}
.yk-checkin-ms.is-claimed .yk-checkin-ms__icon {
	color: var(--ms-color, #94a3b8);
}
.yk-checkin-ms__name {
	font-size: 12px;
	font-weight: 700;
	color: #1e293b;
}
.yk-checkin-ms__reward {
	font-size: 11px;
	font-weight: 600;
	color: var(--ms-color, #94a3b8);
}
.yk-checkin-ms__status {
	margin-top: 4px;
	font-size: 11px;
	font-weight: 600;
	color: #94a3b8;
	display: inline-flex;
	align-items: center;
	gap: 2px;
}
.yk-checkin-ms.is-claimable .yk-checkin-ms__status { color: var(--ms-color, #6d4aff); }
.yk-checkin-ms.is-claimed .yk-checkin-ms__status { color: #10b981; }

/* ----- 累计签到进度条 ----- */
.yk-checkin-track {
	display: flex;
	align-items: center;
	padding: 8px 0 4px;
}
.yk-checkin-track__node {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	flex-shrink: 0;
}
.yk-checkin-track__dot {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: #fff;
	border: 2px solid #e2e8f0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #94a3b8;
}
.yk-checkin-track__dot span {
	width: 10px; height: 10px;
	border-radius: 999px;
	background: #cbd5e1;
}
.yk-checkin-track__label {
	font-size: 12px;
	font-weight: 600;
	color: #64748b;
}
.yk-checkin-track__node.is-reached .yk-checkin-track__dot {
	background: #6d4aff;
	border-color: #6d4aff;
	color: #fff;
}
.yk-checkin-track__node.is-reached .yk-checkin-track__label {
	color: #6d4aff;
	font-weight: 700;
}
.yk-checkin-track__line {
	flex: 1;
	height: 3px;
	margin: 0 6px;
	background: #e2e8f0;
	border-radius: 999px;
	margin-bottom: 24px;          /* 与 dot 顶对齐（不与 label 对齐） */
}
.yk-checkin-track__line.is-active { background: #6d4aff; }

/* ----- 每日任务列表 ----- */
.yk-checkin-tasks {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.yk-checkin-task {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px;
	border-radius: 10px;
	transition: background .15s;
}
.yk-checkin-task:hover { background: #f8fafc; }
.yk-checkin-task__icon {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: #f5f3ff;
	color: #6d4aff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.yk-checkin-task.is-done .yk-checkin-task__icon {
	background: #ecfdf5;
	color: #10b981;
}
.yk-checkin-task__body { flex: 1; min-width: 0; }
.yk-checkin-task__name {
	font-size: 13px;
	font-weight: 600;
	color: #1e293b;
	margin-bottom: 2px;
}
.yk-checkin-task__reward {
	font-size: 11px;
	color: #64748b;
}
.yk-checkin-task__btn {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	height: 26px;
	padding: 0 10px;
	background: #f5f3ff;
	color: #6d4aff !important;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	text-decoration: none;
	transition: background .15s;
}
.yk-checkin-task__btn:hover { background: #6d4aff; color: #fff !important; }
.yk-checkin-task__btn.is-done {
	background: #f1f5f9;
	color: #94a3b8 !important;
	cursor: default;
}
.yk-checkin-task__btn.is-done:hover {
	background: #f1f5f9;
	color: #94a3b8 !important;
}

/* ----- 本月签到日历 ----- */
.yk-checkin-cal {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.yk-checkin-cal__row {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}
.yk-checkin-cal__row--head span {
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	color: #94a3b8;
	padding: 6px 0;
}
.yk-checkin-cal__cell {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
	color: #475569;
	border-radius: 6px;
	background: transparent;
	transition: all .12s;
}
.yk-checkin-cal__cell--blank { background: transparent; }
.yk-checkin-cal__cell.is-checked {
	background: #6d4aff;
	color: #fff;
	font-weight: 700;
}
.yk-checkin-cal__cell.is-today {
	background: #f5f3ff;
	color: #6d4aff;
	font-weight: 800;
	box-shadow: 0 0 0 1.5px #6d4aff inset;
}
.yk-checkin-cal__cell.is-checked.is-today {
	background: #6d4aff;
	color: #fff;
	box-shadow: 0 0 0 2px #fbbf24 inset;
}

/* ----- 响应式 ----- */
@media (max-width: 1024px) {
	.yk-checkin-top { grid-template-columns: 1fr; }
	.yk-checkin-grid { grid-template-columns: 1fr; }
	.yk-checkin-milestones { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
	.yk-checkin-hero {
		flex-direction: column;
		padding: 22px 20px;
	}
	.yk-checkin-hero__title { font-size: 22px; }
	.yk-checkin-today {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.yk-checkin-today__btn { width: 100%; justify-content: center; }
	.yk-checkin-week__day { min-width: 64px; }
	.yk-checkin-milestones { grid-template-columns: repeat(2, 1fr); }
}
