/**
 * Lumo — AI 导航资源库
 * 色彩与设计变量见 leafs-tokens.css（浅色/深色 html[data-leafs-theme]）
 */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body.leafs-body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.55;
	color: var(--leafs-text);
	background: var(--leafs-bg);
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.leafs-body .leafs-main {
	flex: 1 0 auto;
}

/* 前台语言 AJAX 切换：主内容区淡出 / 淡入 */
.leafs-main.leafs-lang-swap {
	transition: opacity 0.3s ease;
}

.leafs-main.leafs-lang-swap.is-leaving {
	opacity: 0;
	pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
	.leafs-main.leafs-lang-swap {
		transition: opacity 0.12s ease;
	}
}

a {
	color: var(--leafs-link);
	text-decoration: none;
}

a:hover {
	text-decoration: none;
}

/* 长文正文内链：保留悬停下划线；导航/卡片标题/分类标签等随全局无下划线 */
.leafs-entry-content a:hover,
.leafs-entry-content a:focus-visible {
	text-decoration: underline;
}

:focus-visible {
	outline: 2px solid var(--leafs-brand);
	outline-offset: 2px;
}

html[data-leafs-theme="dark"] :focus-visible {
	outline-color: var(--leafs-link);
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

.leafs-container {
	width: min(1280px, calc(100% - 48px));
	margin-inline: auto;
}

@media (max-width: 782px) {
	.leafs-container {
		width: min(1280px, calc(100% - 32px));
	}
}

/* Skip link */
.leafs-skip-link {
	position: absolute;
	left: -999px;
	top: 0;
	z-index: 100;
	padding: 8px 16px;
	background: var(--leafs-brand);
	color: var(--leafs-on-primary);
}

.leafs-skip-link:focus {
	left: 8px;
	top: 8px;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* Header */
.leafs-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--leafs-header-bg);
	border-bottom: 1px solid var(--leafs-header-border);
	backdrop-filter: blur(var(--leafs-glass-blur));
	-webkit-backdrop-filter: blur(var(--leafs-glass-blur));
	transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* 已登录：WP 固定 admin bar 占顶栏，sticky 仍用 top:0 会贴到视口最顶与黑条叠层/抢层，滚动时易闪；顶对齐到 admin bar 下缘 */
body.admin-bar .leafs-header {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .leafs-header {
		top: 46px;
	}
}

.leafs-header.is-scrolled {
	background: var(--leafs-header-bg-scrolled);
	box-shadow: var(--leafs-shadow-card);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
}

.leafs-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: var(--leafs-header-main-h);
	flex-wrap: nowrap;
}

.leafs-header__start {
	display: flex;
	align-items: center;
	gap: 12px;
	flex: 1 1 auto;
	min-width: 0;
}

.leafs-header__brand {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	flex: 0 0 auto;
	overflow: hidden;
}

.leafs-header__brand-sep {
	display: none;
	margin: 0 12px 0 6px;
	flex: 0 0 auto;
	font-size: 15px;
	line-height: 1;
	color: color-mix(in srgb, var(--leafs-text) 48%, transparent);
}

.leafs-header__brand-link,
.leafs-header__brand .custom-logo-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 4px 0;
	border-radius: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	transition: opacity 0.18s ease, transform 0.18s ease;
}

.leafs-header__brand-link:hover,
.leafs-header__brand .custom-logo-link:hover {
	transform: translateY(-1px);
	border-color: transparent;
	box-shadow: none;
	opacity: 0.9;
}

.leafs-header__brand .custom-logo {
	max-height: 42px;
	width: auto;
	filter: none;
}

.leafs-logo-text {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 2px 0;
	border-radius: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
	font-weight: 700;
	font-size: 1.02rem;
	line-height: 1;
	color: var(--leafs-text);
	letter-spacing: -0.025em;
	transition: color 0.18s ease, opacity 0.18s ease, transform 0.18s ease;
}

.leafs-logo-text:hover {
	text-decoration: none;
	color: var(--leafs-text);
	transform: translateY(-1px);
	border-color: transparent;
	box-shadow: none;
	opacity: 0.88;
}

.leafs-logo-text__glyph {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 7px;
	background: color-mix(in srgb, var(--leafs-brand) 12%, transparent);
	color: var(--leafs-brand);
	font-size: 0.82rem;
	font-weight: 800;
	box-shadow: none;
	flex: 0 0 auto;
}

.leafs-logo-text__label {
	display: inline-block;
	max-width: none;
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
	word-break: break-word;
}

/* 移动端：侧滑抽屉 */
.leafs-header-drawer {
	position: fixed;
	inset: 0;
	top: var(--leafs-header-h);
	z-index: 60;
	pointer-events: none;
	visibility: hidden;
	transition: visibility 0s linear 0.3s;
}

.leafs-header.is-drawer-open .leafs-header-drawer {
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.leafs-header-drawer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.42);
	opacity: 0;
	transition: opacity 0.25s ease;
	cursor: pointer;
	border: 0;
	padding: 0;
}

.leafs-header.is-drawer-open .leafs-header-drawer__backdrop {
	opacity: 1;
}

.leafs-header-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(380px, 92vw);
	background: var(--leafs-card);
	border-left: 1px solid var(--leafs-border);
	box-shadow: -12px 0 48px rgba(0, 0, 0, 0.2);
	transform: translateX(100%);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	overflow-y: auto;
	padding: 20px 18px 28px;
	display: flex;
	flex-direction: column;
	gap: 20px;
	-webkit-overflow-scrolling: touch;
}

.leafs-header.is-drawer-open .leafs-header-drawer__panel {
	transform: translateX(0);
}

/* 与 .leafs-mobile-dock（max-width:782px、z-index:60）对齐：侧栏在 header（默认 z-index:50）内，子元素 z-index 无法压过底栏，须在展开时抬升整棵顶栏 */
@media (max-width: 782px) {
	.leafs-header.is-drawer-open {
		z-index: 150;
	}
}

@media (max-width: 767px) {
	.leafs-header-drawer {
		z-index: 1;
	}
}

.leafs-nav-toggle {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	margin-left: auto;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
	cursor: pointer;
	padding: 0 11px;
	flex-shrink: 0;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.leafs-nav-toggle span {
	display: block;
	height: 2px;
	background: var(--leafs-text);
	border-radius: 1px;
}

@media (min-width: 768px) {
	.leafs-nav-toggle {
		display: none;
	}

	.leafs-header__start {
		flex: 0 1 auto;
		max-width: min(300px, 38vw);
		min-width: 0;
	}

	.leafs-header__brand {
		flex: 0 1 auto;
		min-width: 0;
		overflow: hidden;
	}

	.leafs-header-drawer {
		position: static;
		inset: auto;
		flex: 1 1 auto;
		min-width: 0;
		display: flex;
		align-items: center;
		visibility: visible;
		pointer-events: auto;
		transition: none;
	}

	.leafs-header-drawer__backdrop {
		display: none !important;
	}

	.leafs-header-drawer__panel {
		position: static;
		inset: auto;
		transform: none;
		width: 100%;
		max-width: 100%;
		flex: 1 1 auto;
		min-width: 0;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		gap: 12px 20px;
		padding: 0;
		border: 0;
		box-shadow: none;
		overflow: visible;
		background: transparent;
	}

	.leafs-header__end {
		flex-direction: row;
		align-items: center;
		gap: 14px;
		flex: 0 0 auto;
		flex-shrink: 0;
		width: auto;
	}
}

@media (min-width: 768px) {
	.leafs-header__brand-sep {
		display: inline-block;
	}
}

.leafs-nav {
	display: block;
	width: 100%;
}

@media (min-width: 768px) {
	.leafs-nav {
		width: auto;
		flex: 1 1 auto;
		min-width: 0;
		max-width: 100%;
		overflow: visible;
	}
}

.leafs-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 4px;
	align-items: center;
}

.leafs-nav__list > li {
	display: flex;
	align-items: center;
}

/* 仅抽屉/窄屏：主导航竖排（与主题 768 断点一致，避免与桌面横排规则叠层） */
@media (max-width: 767px) {
	.leafs-header-drawer__panel .leafs-nav__list {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}
}

/* 桌面顶栏：主导航必须横向单行（避免与移动端规则层叠异常） */
@media (min-width: 768px) {
	.leafs-header-drawer__panel .leafs-nav {
		display: flex;
		align-items: center;
		min-width: 0;
	}

	.leafs-header-drawer__panel .leafs-nav__list {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		align-items: center !important;
		justify-content: flex-start;
		gap: 0 4px;
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow-x: auto;
		overflow-y: visible;
		scrollbar-width: thin;
		-webkit-overflow-scrolling: touch;
	}

	.leafs-header-drawer__panel .leafs-nav__list > li {
		flex-shrink: 0;
		width: auto;
	}

	.leafs-header-drawer__panel .leafs-nav__list a {
		white-space: nowrap;
		padding-inline: 10px;
	}
}

.leafs-nav__list a {
	display: block;
	padding: 12px 14px;
	border-radius: 999px;
	color: var(--leafs-muted);
	font-size: 0.92rem;
	font-weight: 500;
	transition: background 0.2s ease, color 0.2s ease;
	position: relative;
}

.leafs-nav__list a:hover,
.leafs-nav__list .current-menu-item > a {
	background: var(--leafs-surface2);
	color: var(--leafs-link);
	text-decoration: none;
}

@media (min-width: 768px) {
	.leafs-nav__list a {
		border-radius: 0;
		display: inline-flex;
		align-items: center;
		min-height: 44px;
		padding: 9px 4px;
		margin: 0;
		box-sizing: border-box;
		background: transparent !important;
	}

	.leafs-nav__list a::after {
		content: "";
		position: absolute;
		left: 0;
		bottom: 0;
		width: 0;
		height: 2px;
		background: var(--leafs-brand);
		transition: width 0.2s ease;
	}

	.leafs-nav__list a:hover::after,
	.leafs-nav__list .current-menu-item > a::after {
		width: 100%;
	}

	.leafs-nav__list a:hover,
	.leafs-nav__list .current-menu-item > a {
		color: var(--leafs-link);
	}

	/*
	 * 页头主导航（抽屉内桌面横向）：禁用此处 width 下划线，改由 leafs-header-layout.css
	 * 用 scaleX 绘制，避免与 width:0/100% 叠层导致绿线错位、断裂。
	 */
	.leafs-header-drawer__panel .leafs-nav__list > li > a::after {
		/* handled in leafs-header-layout.css */
	}

	.leafs-header-drawer__panel .leafs-nav__list > li > a:hover::after,
	.leafs-header-drawer__panel .leafs-nav__list > li.current-menu-item > a::after {
		/* handled in leafs-header-layout.css */
	}
}

.leafs-header__end {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
	width: 100%;
}

@media (min-width: 768px) {
	.leafs-header__actions {
		width: auto;
		flex-wrap: nowrap;
		justify-content: flex-end;
	}
}

.leafs-header__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	justify-content: flex-start;
}

@media (min-width: 768px) {
	.leafs-header__actions {
		flex-wrap: nowrap;
		justify-content: flex-end;
	}
}

.leafs-btn--header-cta {
	padding-inline: 20px;
	min-height: 40px;
	box-shadow: 0 4px 18px rgba(45, 106, 79, 0.28);
}

html[data-leafs-theme="dark"] .leafs-btn--header-cta {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}

.leafs-btn--login {
	min-height: 40px;
	padding-inline: 16px;
}

.leafs-theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-icon-btn-bg);
	color: var(--leafs-text);
	cursor: pointer;
	font-size: 1.05rem;
	line-height: 1;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.leafs-theme-toggle:hover {
	background: var(--leafs-icon-btn-bg-hover);
	border-color: var(--leafs-brand);
}

.leafs-theme-toggle__sun,
.leafs-theme-toggle__moon {
	display: none;
}

html[data-leafs-theme="light"] .leafs-theme-toggle__moon {
	display: inline;
}

html[data-leafs-theme="dark"] .leafs-theme-toggle__sun {
	display: inline;
}

/* 明暗切换时主内容区轻微过渡（由 JS 在 html 上加 .leafs-theme-crossfade） */
@keyframes leafs-main-theme-crossfade {
	0% {
		opacity: 1;
		transform: scale(1);
		filter: brightness(1);
	}

	40% {
		opacity: 0.93;
		transform: scale(0.998);
		filter: brightness(1.05);
	}

	100% {
		opacity: 1;
		transform: scale(1);
		filter: brightness(1);
	}
}

html.leafs-theme-crossfade #leafs-main {
	animation: leafs-main-theme-crossfade 0.4s ease;
}

@media (prefers-reduced-motion: reduce) {
	html.leafs-theme-crossfade #leafs-main {
		animation: none;
	}
}

.leafs-lang-switch {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 0.8rem;
	font-weight: 600;
	margin-right: 4px;
}

.leafs-lang-switch__sep {
	color: var(--leafs-muted);
	user-select: none;
}

.leafs-lang-switch__link {
	color: var(--leafs-muted);
	text-decoration: none;
	padding: 4px 6px;
	border-radius: 6px;
}

.leafs-lang-switch__link:hover {
	color: var(--leafs-link);
	text-decoration: none;
}

.leafs-lang-switch__link.is-active {
	color: var(--leafs-link);
	background: var(--leafs-surface2);
}

.leafs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	border-radius: 999px;
	font-size: 0.9rem;
	font-weight: 600;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.1s, box-shadow 0.15s;
}

.leafs-btn:hover {
	text-decoration: none;
	transform: translateY(-1px);
}

.leafs-btn--primary {
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	box-shadow: 0 4px 16px rgba(45, 106, 79, 0.22);
}

html[data-leafs-theme="dark"] .leafs-btn--primary {
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45);
}

.leafs-btn--primary:hover {
	filter: brightness(1.06);
}

.leafs-btn--ghost {
	background: transparent;
	border-color: var(--leafs-border);
	color: var(--leafs-text);
}

/* Layout */
.leafs-layout {
	display: grid;
	gap: 20px;
	padding-block: 28px 48px;
	grid-template-columns: 1fr;
}

@media (max-width: 768px) {
	.leafs-layout__center {
		order: 1;
		font-size: 14px;
	}

	.leafs-layout__right {
		order: 2;
		width: 100%;
		max-width: none;
	}

	.leafs-layout__left {
		order: 3;
	}

	.leafs-layout__center .leafs-toolbar__title {
		font-size: 1.05rem;
	}

	.leafs-layout__center .leafs-card {
		padding: 12px;
	}
}

@media (min-width: 1025px) {
	/* 左右侧栏同宽（取较宽侧 320px），首页与内页三栏布局一致 */
	.leafs-layout {
		grid-template-columns: 320px minmax(0, 1fr) 320px;
		gap: 20px;
		align-items: start;
	}

	.leafs-layout--no-left {
		grid-template-columns: minmax(0, 1fr) 320px;
	}

	.leafs-layout--no-right {
		grid-template-columns: 320px minmax(0, 1fr);
	}

	.leafs-layout--no-left.leafs-layout--no-right {
		grid-template-columns: minmax(0, 1fr);
		max-width: 900px;
		margin-inline: auto;
	}
}

.leafs-layout__left {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.leafs-layout__center {
	min-width: 0;
}

.leafs-layout__right {
	min-width: 0;
	align-self: start;
}

/* Panels */
.leafs-panel {
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: var(--leafs-radius);
	overflow: hidden;
	box-shadow: var(--leafs-shadow-card);
	transition: box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

.leafs-panel--tight {
	margin-top: 0;
}

.leafs-panel__head {
	padding: 14px 16px;
	border-bottom: 1px solid var(--leafs-border);
	border-left: 4px solid var(--leafs-brand);
	background: var(--leafs-surface);
}

.leafs-panel__title {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.leafs-panel__head--split {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.leafs-news-heading {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	padding: 14px 16px;
	border-bottom: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
}

.leafs-news-heading__accent {
	flex: 0 0 auto;
	width: 4px;
	height: 20px;
	border-radius: 2px;
	background: var(--leafs-brand);
}

.leafs-news-heading__title {
	flex: 1 1 auto;
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.02em;
	color: var(--leafs-text);
}

.leafs-news-heading__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: 8px 12px;
	font-size: 12px;
	color: var(--leafs-muted2);
}

.leafs-news-updated {
	font-weight: 500;
	color: var(--leafs-muted);
	white-space: nowrap;
}

.leafs-news-refresh {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	margin: 0;
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.leafs-news-refresh:hover {
	border-color: var(--leafs-brand);
	color: var(--leafs-brand);
	background: var(--leafs-surface);
}

.leafs-news-refresh:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-news-refresh__icon {
	display: inline-block;
	line-height: 1;
	font-size: 1rem;
	transition: transform 0.2s ease;
}

.leafs-news-refresh.is-loading {
	pointer-events: none;
	opacity: 0.75;
}

.leafs-news-refresh.is-spinning .leafs-news-refresh__icon {
	animation: leafs-news-refresh-spin 0.65s ease forwards;
}

@keyframes leafs-news-refresh-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

.leafs-news-intro {
	margin: 0 0 16px;
	padding: 12px 16px 0;
	font-size: 0.8rem;
	line-height: 1.55;
	color: var(--leafs-muted);
}

.leafs-side-nav {
	list-style: none;
	margin: 0;
	padding: 8px;
}

.leafs-side-nav > li {
	margin-bottom: 16px;
}

.leafs-side-nav a {
	display: block;
	padding: 14px 14px 14px 42px;
	border-radius: 10px;
	color: var(--leafs-muted);
	font-size: 0.9rem;
	position: relative;
	transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.leafs-side-nav > li > a::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 50%;
	width: 18px;
	height: 18px;
	transform: translateY(-50%);
	background-color: currentColor;
	opacity: 0.45;
	-webkit-mask-image: var(--leafs-nav-icon, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10'/%3E%3C/svg%3E"));
	mask-image: var(--leafs-nav-icon, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black' stroke-width='2'%3E%3Cpath d='M4 6h16M4 12h16M4 18h10'/%3E%3C/svg%3E"));
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.leafs-side-nav > li:nth-child(5n + 1) > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='4' y='8' width='16' height='10' rx='2'/%3E%3Ccircle cx='9' cy='13' r='1.5' fill='black' stroke='none'/%3E%3Cpath d='M14 11h4M14 14h3'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Crect x='4' y='8' width='16' height='10' rx='2'/%3E%3Ccircle cx='9' cy='13' r='1.5' fill='black' stroke='none'/%3E%3Cpath d='M14 11h4M14 14h3'/%3E%3C/svg%3E");
}

.leafs-side-nav > li:nth-child(5n + 2) > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M8 9l3 3-3 3M13 15h4M6 5h12v14H6z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M8 9l3 3-3 3M13 15h4M6 5h12v14H6z'/%3E%3C/svg%3E");
}

.leafs-side-nav > li:nth-child(5n + 3) > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 16l4-4 4 4 8-8'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M4 16l4-4 4 4 8-8'/%3E%3Ccircle cx='9' cy='9' r='2'/%3E%3C/svg%3E");
}

.leafs-side-nav > li:nth-child(5n + 4) > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z'/%3E%3C/svg%3E");
}

.leafs-side-nav > li:nth-child(5n) > a::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12h8M12 8v8'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12h8M12 8v8'/%3E%3C/svg%3E");
}

.leafs-side-nav a:hover {
	background: var(--leafs-surface2);
	color: var(--leafs-link);
	text-decoration: none;
	box-shadow: var(--leafs-shadow-card);
}

.leafs-side-nav .sub-menu {
	list-style: none;
	margin: 4px 0 0;
	padding: 0 0 0 12px;
}

.leafs-side-nav li.has-sub-toggle > .sub-menu {
	overflow: hidden;
	transition: max-height 0.35s ease, margin-top 0.25s ease;
	max-height: 2000px;
}

.leafs-side-nav li.has-sub-toggle:not(.sub-open) > .sub-menu {
	max-height: 0;
	margin-top: 0;
}

.leafs-side-nav li.has-sub-toggle {
	position: relative;
}

.leafs-side-nav li.has-sub-toggle > a {
	padding-right: 44px;
}

.leafs-side-nav__toggle {
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.leafs-side-nav__toggle:hover {
	background: var(--leafs-border);
	color: var(--leafs-text);
}

.leafs-side-nav__toggle::after {
	content: "";
	display: block;
	width: 10px;
	height: 10px;
	margin: 0 auto;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.25s ease;
}

.leafs-side-nav li.has-sub-toggle:not(.sub-open) > .leafs-side-nav__toggle::after {
	transform: rotate(-45deg);
}

.leafs-side-nav .sub-menu a {
	padding: 10px 12px 10px 36px;
	font-size: 0.86rem;
}

.leafs-side-nav .sub-menu a::before {
	display: none;
}

.leafs-side-nav .sub-menu li.has-sub-toggle > a {
	padding-right: 40px;
}

.leafs-side-nav .sub-menu .leafs-side-nav__toggle {
	right: 2px;
	width: 28px;
	height: 28px;
}

/* -------------------------------------------------------------------------
   Sidebar: 热门标签 + 分类（首页侧栏）
   ------------------------------------------------------------------------- */

.leafs-layout__right .leafs-panel--tags {
	margin-top: 32px;
}

.leafs-layout__left .leafs-panel--sidebar-cats {
	margin-top: 32px;
}

.leafs-panel.leafs-panel--tags,
.leafs-panel.leafs-panel--sidebar-cats {
	overflow: visible;
}

.leafs-panel__head--sidebar-block {
	display: flex;
	align-items: center;
	gap: 10px;
	border-left: none;
	padding: 14px 16px;
}

.leafs-sidebar-block__accent {
	flex: 0 0 auto;
	width: 4px;
	height: 18px;
	border-radius: 2px;
	background: var(--leafs-brand);
}

.leafs-sidebar-block__head-row {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
}

.leafs-sidebar-block__title {
	margin: 0;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.02em;
	color: var(--leafs-text);
}

.leafs-sidebar-block__more {
	font-size: 12px;
	font-weight: 500;
	color: var(--leafs-muted);
	text-decoration: none;
	white-space: nowrap;
}

.leafs-sidebar-block__more:hover {
	color: var(--leafs-link);
	text-decoration: none;
}

.leafs-hot-tags {
	--leafs-hot-tag-bg: #f0f2f5;
	--leafs-hot-tag-bg-hover: var(--leafs-brand);
	padding: 12px 16px 16px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-content: flex-start;
}

html[data-leafs-theme="dark"] .leafs-hot-tags {
	--leafs-hot-tag-bg: #2d2f36;
}

.leafs-hot-tags__pill {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	max-width: 100%;
	padding: 6px 16px;
	border-radius: 999px;
	background: var(--leafs-hot-tag-bg);
	color: var(--leafs-text);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.35;
	text-decoration: none;
	box-shadow: none;
	border: 1px solid transparent;
	transition:
		background-color 0.2s ease,
		color 0.2s ease,
		border-color 0.2s ease,
		transform 0.2s ease;
	opacity: 0;
	animation: leafs-hot-tag-in 0.4s ease forwards;
	animation-delay: calc((var(--leafs-tag-i, 1) - 1) * 0.03s);
}

.leafs-hot-tags__pill:hover {
	background: #2d6a4f;
	background: var(--leafs-brand);
	color: #fff;
	border-color: transparent;
	transform: scale(1.02);
	text-decoration: none;
}

.leafs-hot-tags__pill.is-active {
	background: var(--leafs-brand);
	color: #fff;
	border-color: transparent;
}

.leafs-hot-tags__name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.leafs-hot-tags__count {
	font-size: 11px;
	font-weight: 500;
	color: var(--leafs-muted2);
	flex-shrink: 0;
}

.leafs-hot-tags__pill:hover .leafs-hot-tags__count,
.leafs-hot-tags__pill.is-active .leafs-hot-tags__count {
	color: rgba(255, 255, 255, 0.88);
}

@keyframes leafs-hot-tag-in {
	from {
		opacity: 0;
		transform: translateY(6px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.leafs-hot-tags--empty {
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
}

.leafs-hot-tags__empty-text {
	margin: 0;
	font-size: 13px;
	color: var(--leafs-muted);
}

.leafs-hot-tags__empty-admin {
	font-size: 12px;
	font-weight: 500;
	color: var(--leafs-link);
	text-decoration: none;
}

.leafs-hot-tags__empty-admin:hover {
	color: var(--leafs-brand-hover, var(--leafs-brand));
}

.leafs-cat-grid {
	padding: 14px 12px 12px;
}

.leafs-cat-grid__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px 0;
}

.leafs-cat-grid__cell--extra {
	display: none;
}

.leafs-cat-grid.is-expanded .leafs-cat-grid__cell--extra {
	display: block;
}

.leafs-cat-grid__link {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-height: 40px;
	padding: 6px 12px 6px 14px;
	margin: 0;
	border-radius: 8px;
	text-decoration: none;
	color: var(--leafs-text);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.25;
	transition:
		background-color 0.2s ease,
		color 0.2s ease;
}

.leafs-cat-grid__link:hover {
	background: #f8f9fa;
	text-decoration: none;
	color: var(--leafs-text);
}

html[data-leafs-theme="dark"] .leafs-cat-grid__link:hover {
	background: #1e2128;
}

.leafs-cat-grid__link.is-current {
	color: var(--leafs-brand);
	font-weight: 600;
}

.leafs-cat-grid__link.is-current::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 18px;
	border-radius: 2px;
	background: var(--leafs-brand);
}

.leafs-cat-grid__icon {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	margin-top: 2px;
	color: var(--leafs-brand);
}

.leafs-cat-grid__icon-svg {
	display: block;
}

.leafs-cat-grid__label {
	flex: 1 1 auto;
	min-width: 0;
	white-space: normal;
	word-break: break-word;
	overflow-wrap: break-word;
	line-height: 1.4;
}

.leafs-cat-grid__count {
	flex: 0 0 auto;
	margin-top: 2px;
	font-size: 12px;
	font-weight: 500;
	color: var(--leafs-muted);
	white-space: nowrap;
}

.leafs-cat-grid__toggle {
	display: block;
	width: 100%;
	margin-top: 10px;
	padding: 8px 12px;
	border: 1px dashed var(--leafs-border);
	border-radius: 8px;
	background: transparent;
	color: var(--leafs-muted);
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

.leafs-cat-grid__toggle:hover {
	color: var(--leafs-brand);
	border-color: var(--leafs-brand);
	background: var(--leafs-surface2);
}

.leafs-cat-grid--no-toggle .leafs-cat-grid__toggle {
	display: none;
}

@media (max-width: 768px) {
	.leafs-hot-tags__pill {
		padding: 4px 12px;
		font-size: 12px;
	}
}

/* Toolbar tabs */
.leafs-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 20px;
}

.leafs-toolbar__title {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 800;
	letter-spacing: -0.03em;
}

.leafs-toolbar__tabs {
	display: flex;
	gap: 8px;
	background: var(--leafs-surface);
	padding: 4px;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
}

.leafs-tab {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	z-index: 1;
	padding: 8px 18px;
	border-radius: 999px;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--leafs-muted);
	text-decoration: none;
	cursor: pointer;
	transition: color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.leafs-tab:hover {
	color: var(--leafs-text);
	text-decoration: none;
}

.leafs-tab.is-active {
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
}

/* Cards */
.leafs-card-list {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.leafs-card {
	display: grid;
	grid-template-columns: 60px minmax(0, 1fr);
	gap: 14px;
	padding: 16px;
	position: relative;
	overflow: hidden;
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: var(--leafs-radius);
	box-shadow: var(--leafs-shadow-card);
	transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.leafs-card::after {
	content: "";
	position: absolute;
	inset: -120% auto -120% -180%;
	width: 46%;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.14) 50%, rgba(255, 255, 255, 0) 100%);
	transform: translateX(-120%) skewX(-18deg);
	opacity: 0;
	pointer-events: none;
}

.leafs-card:hover {
	border-color: var(--leafs-link);
	box-shadow: var(--leafs-shadow-card-hover);
	transform: translateY(-2px);
}

.leafs-card:hover::after {
	opacity: 1;
	animation: leafs-card-sheen 0.68s cubic-bezier(0.22, 1, 0.36, 1) 1;
}

@keyframes leafs-card-sheen {
	from {
		transform: translateX(-130%) skewX(-18deg);
	}
	to {
		transform: translateX(350%) skewX(-18deg);
	}
}

.leafs-card--featured {
	position: relative;
}

.leafs-card--featured::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: calc(var(--leafs-radius) + 1px);
	padding: 1px;
	background: linear-gradient(135deg, var(--leafs-brand), var(--leafs-mint));
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.leafs-card--featured:hover::before {
	opacity: 1;
}

@media (min-width: 640px) {
	.leafs-card {
		grid-template-columns: 80px minmax(0, 1fr);
		gap: 16px;
	}
}

.leafs-card__body {
	min-width: 0;
}

.leafs-card__thumb {
	position: relative;
	align-self: start;
}

.leafs-card__thumb a {
	display: block;
	border-radius: 12px;
	overflow: hidden;
	background: var(--leafs-surface2);
	aspect-ratio: 1;
}

.leafs-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.leafs-card__thumb-link img.leafs-card__img,
.leafs-card__thumb-link img.leafs-tool-thumb__img,
.leafs-card__thumb-link img.leafs-tool-thumb--stream-cover {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
	object-position: center;
}

.leafs-card__thumb .leafs-tool-thumb__img {
	padding: 0;
	background: var(--leafs-surface2);
}

html[data-leafs-theme="dark"] .leafs-card__thumb .leafs-tool-thumb__img {
	background: var(--leafs-surface);
}

.leafs-tool-thumb__img {
	border-radius: 12px;
}

.leafs-tool-single__logo.leafs-tool-thumb__img {
	width: 200px;
	height: 200px;
	max-width: 100%;
	object-fit: contain;
	background: var(--leafs-surface2);
	padding: 12px;
	box-sizing: border-box;
	box-shadow: var(--leafs-shadow-card);
	display: inline-block;
	vertical-align: top;
}

html[data-leafs-theme="dark"] .leafs-tool-single__logo.leafs-tool-thumb__img {
	background: var(--leafs-surface);
}

.leafs-card__placeholder {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	background: linear-gradient(135deg, var(--leafs-surface2), var(--leafs-border));
}

.leafs-card__badge {
	position: absolute;
	top: 6px;
	left: 6px;
	background: var(--leafs-mint);
	color: var(--leafs-on-primary);
	font-size: 0.65rem;
	font-weight: 700;
	padding: 2px 6px;
	border-radius: 6px;
}

.leafs-card__badge--hot {
	background: var(--leafs-tag-hot-bg);
	color: var(--leafs-tag-hot-text);
}

.leafs-card__badge--free {
	background: var(--leafs-tag-free-bg);
	color: var(--leafs-tag-free-text);
}

.leafs-card__badge--rec {
	background: var(--leafs-tag-gold-bg);
	color: var(--leafs-tag-gold-text);
}

.leafs-card__badge--new {
	background: rgba(45, 106, 79, 0.12);
	color: var(--leafs-brand);
}

html[data-leafs-theme="dark"] .leafs-card__badge--new {
	background: rgba(61, 138, 107, 0.28);
	color: color-mix(in srgb, var(--leafs-mint) 28%, #022c1f);
}

/* 精选等自定义角标：实心 mint + 默认浅色 on-primary，在深色主题且 mint 偏亮时对比不足 */
html[data-leafs-theme="dark"] .leafs-card__badge:not(.leafs-card__badge--hot):not(.leafs-card__badge--free):not(.leafs-card__badge--rec):not(.leafs-card__badge--new) {
	color: color-mix(in srgb, var(--leafs-brand) 44%, #030712);
}

.leafs-card__title {
	margin: 0 0 8px;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

.leafs-card__title--with-logo {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: nowrap;
}

.leafs-card__title--with-logo > a {
	flex: 1;
	min-width: 0;
}

.leafs-card__title-logo {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--leafs-surface2);
	box-shadow: 0 0 0 1px var(--leafs-border);
}

.leafs-card__title-logo-img {
	display: block;
	width: 28px;
	height: 28px;
	object-fit: cover;
	object-position: center;
}

html[data-leafs-theme="dark"] .leafs-card__title-logo {
	background: var(--leafs-surface);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08);
}

@keyframes leafs-nav-icon-bounce {
	0%,
	100% {
		transform: translateY(0);
	}

	35% {
		transform: translateY(-5px);
	}

	55% {
		transform: translateY(0);
	}

	72% {
		transform: translateY(-2px);
	}
}

@media (prefers-reduced-motion: no-preference) {
	.leafs-main .leafs-card__title-logo,
	.leafs-main .leafs-card__title-logo-img {
		transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
	}

	.leafs-main .leafs-card:hover .leafs-card__title-logo,
	.leafs-main .leafs-card:hover .leafs-card__title-logo-img {
		transform: translateY(-2px) scale(1.07);
	}

	.leafs-main .leafs-cat-grid__link:hover .leafs-cat-grid__icon,
	.leafs-main .leafs-cat-grid__link:hover .leafs-cat-grid__icon-svg {
		animation: leafs-nav-icon-bounce 0.55s ease;
	}
}

.leafs-card__title a {
	color: var(--leafs-text);
	display: flex;
	align-items: center;
	justify-content: flex-start;
	align-content: center;
	min-width: 0;
	max-width: 100%;
}

.leafs-card__title a:hover {
	color: var(--leafs-link);
	text-decoration: none;
}

/* 标题 + 小圆点成组：不拉满整行，与圆点保留间距；长标题时本组可扩至 100% 后标题再省略 */
.leafs-card__title-core {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	max-width: 100%;
}

/* 状态点/气泡包：不放大、勿把圆点顶到行末 */
.leafs-card__title-core > :not(.leafs-card__title-t) {
	flex: 0 0 auto;
	flex-shrink: 0;
}

.leafs-card__title-core .leafs-card__title-t {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* 与 title-core 的 gap 二选一，避免与 .leafs-url-health-dot 的 margin-left 叠出过大空隙 */
.leafs-card__title-core .leafs-url-health-dot {
	margin-left: 0;
}

.leafs-card:has(.leafs-outbound[data-leafs-url-tip]:hover),
.leafs-card:has(.leafs-outbound[data-leafs-url-tip]:focus-within) {
	overflow: visible;
	z-index: 8;
}

.leafs-card:has(.leafs-url-health-tip:hover),
.leafs-card:has(.leafs-url-health-tip:focus-within) {
	overflow: visible;
	z-index: 8;
}

.leafs-card__excerpt {
	margin: 0 0 10px;
	font-size: 0.88rem;
	color: var(--leafs-muted);
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.leafs-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}

.leafs-tag {
	font-size: 0.72rem;
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	border: 1px solid var(--leafs-border);
}

.leafs-tag:hover {
	border-color: var(--leafs-link);
	color: var(--leafs-link);
	text-decoration: none;
}

.leafs-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	flex-wrap: wrap;
	font-size: 0.8rem;
	color: var(--leafs-muted);
}

.leafs-card__actions {
	display: flex;
	gap: 6px;
}

.leafs-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	min-width: 40px;
	min-height: 40px;
	border-radius: 50%;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-icon-btn-bg);
	color: var(--leafs-text);
	cursor: pointer;
	padding: 0;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.leafs-icon-btn:hover {
	border-color: var(--leafs-brand);
	background: var(--leafs-icon-btn-bg-hover);
	color: var(--leafs-link);
}

/* 相关资源小 pill 使用 .leafs-related-tool-card__go 自带渐变，勿套用全局外链 hover（否则背景被纯色覆盖会闪）；主按钮直达保持主题主色 */
.leafs-outbound:hover:not(.leafs-related-tool-card__go):not(.leafs-btn.leafs-tool-cta) {
	background: var(--leafs-brand);
	border-color: var(--leafs-brand);
	color: var(--leafs-on-primary) !important;
}

/* 官网检测：不可达（红）、仅代理可达（青）、正常（绿）、未检测（灰） */
.leafs-outbound--fail,
.leafs-outbound--warn {
	border-color: #ef4444;
	color: #b91c1c;
}

.leafs-outbound--proxy {
	border-color: #f59e0b;
	color: #b45309;
}

.leafs-outbound--ok {
	border-color: #22c55e;
	color: #15803d;
}

.leafs-outbound--unchecked {
	border-color: #94a3b8;
	color: #64748b;
}

html[data-leafs-theme="dark"] .leafs-outbound--fail,
html[data-leafs-theme="dark"] .leafs-outbound--warn {
	color: #fca5a5;
	border-color: #f87171;
}

html[data-leafs-theme="dark"] .leafs-outbound--proxy {
	color: #fcd34d;
	border-color: #f59e0b;
}

html[data-leafs-theme="dark"] .leafs-outbound--ok {
	color: #86efac;
	border-color: #4ade80;
}

html[data-leafs-theme="dark"] .leafs-outbound--unchecked {
	color: #cbd5e1;
	border-color: #94a3b8;
}

/* 列表 / 标题旁：官网链接状态小圆点（悬停看 title 说明） */
.leafs-url-health-dot {
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-left: 5px;
	vertical-align: 0.15em;
	border-radius: 50%;
	flex-shrink: 0;
	box-sizing: border-box;
	border: 1px solid rgba(15, 23, 42, 0.12);
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35) inset;
}

.leafs-url-health-dot--ok {
	background: #22c55e;
	border-color: rgba(21, 128, 61, 0.45);
}

.leafs-url-health-dot--fail {
	background: #ef4444;
	border-color: rgba(185, 28, 28, 0.45);
}

.leafs-url-health-dot--proxy_ok {
	background: #f59e0b;
	border-color: rgba(180, 83, 9, 0.45);
}

.leafs-url-health-dot--unchecked {
	background: #94a3b8;
	border-color: rgba(71, 85, 105, 0.35);
}

/* 小圆点旁：悬停/聚焦时显示的气泡（与状态色一致） */
.leafs-url-health-tip {
	position: relative;
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
	flex-shrink: 0;
	margin-left: 0;
	z-index: 1;
}

.leafs-url-health-tip:is(:hover, :focus, :focus-within) {
	z-index: 50;
}

.leafs-url-health-tip__bubble {
	position: absolute;
	left: 50%;
	top: calc(100% + 8px);
	bottom: auto;
	z-index: 200;
	transform: translateX(-50%) translateY(-4px);
	padding: 6px 11px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.01em;
	white-space: nowrap;
	max-width: min(280px, 78vw);
	overflow: hidden;
	text-overflow: ellipsis;
	border-radius: 9px;
	pointer-events: none;
	box-shadow:
		0 4px 18px rgba(15, 23, 42, 0.22),
		0 0 0 1px rgba(255, 255, 255, 0.06) inset;
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.16s ease,
		transform 0.16s ease,
		visibility 0.16s ease;
}

.leafs-url-health-tip:hover .leafs-url-health-tip__bubble,
.leafs-url-health-tip:focus .leafs-url-health-tip__bubble,
.leafs-url-health-tip:focus-within .leafs-url-health-tip__bubble {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.leafs-url-health-tip--ok .leafs-url-health-tip__bubble {
	background: linear-gradient(165deg, #166534 0%, #14532d 100%);
	color: #ecfdf5;
	border: 1px solid rgba(74, 222, 128, 0.45);
}

.leafs-url-health-tip--fail .leafs-url-health-tip__bubble {
	background: linear-gradient(165deg, #991b1b 0%, #7f1d1d 100%);
	color: #fef2f2;
	border: 1px solid rgba(252, 165, 165, 0.45);
}

.leafs-url-health-tip--proxy_ok .leafs-url-health-tip__bubble {
	background: linear-gradient(165deg, #9a3412 0%, #7c2d12 100%);
	color: #fffbeb;
	border: 1px solid rgba(253, 230, 138, 0.45);
}

.leafs-url-health-tip--unchecked .leafs-url-health-tip__bubble {
	background: linear-gradient(165deg, #334155 0%, #1e293b 100%);
	color: #f1f5f9;
	border: 1px solid rgba(148, 163, 184, 0.4);
}

/* 外链：自定义悬停提示（勿用原生 title，避免双浮层） */
.leafs-outbound[data-leafs-url-tip] {
	position: relative;
	z-index: 1;
}

.leafs-outbound[data-leafs-url-tip]:hover,
.leafs-outbound[data-leafs-url-tip]:focus-visible {
	z-index: 80;
}

.leafs-outbound[data-leafs-url-tip]::after {
	content: attr(data-leafs-url-tip);
	display: inline-block;
	position: absolute;
	left: 50%;
	top: calc(100% + 8px);
	bottom: auto;
	transform: translateX(-50%) translateY(-4px);
	z-index: 200;
	padding: 7px 12px;
	font-size: 12px;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.01em;
	white-space: nowrap;
	max-width: min(300px, 85vw);
	overflow: hidden;
	text-overflow: ellipsis;
	border-radius: 9px;
	pointer-events: none;
	box-shadow:
		0 6px 22px rgba(15, 23, 42, 0.28),
		0 0 0 1px rgba(255, 255, 255, 0.08) inset;
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.16s ease,
		transform 0.16s ease,
		visibility 0.16s ease;
}

.leafs-outbound[data-leafs-url-tip]:hover::after,
.leafs-outbound[data-leafs-url-tip]:focus-visible::after {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.leafs-outbound[data-leafs-link-kind="ok"][data-leafs-url-tip]:hover::after,
.leafs-outbound[data-leafs-link-kind="ok"][data-leafs-url-tip]:focus-visible::after {
	background: linear-gradient(165deg, #166534 0%, #14532d 100%);
	color: #ecfdf5;
	border: 1px solid rgba(74, 222, 128, 0.5);
}

.leafs-outbound[data-leafs-link-kind="fail"][data-leafs-url-tip]:hover::after,
.leafs-outbound[data-leafs-link-kind="fail"][data-leafs-url-tip]:focus-visible::after {
	background: linear-gradient(165deg, #991b1b 0%, #7f1d1d 100%);
	color: #fef2f2;
	border: 1px solid rgba(252, 165, 165, 0.5);
}

.leafs-outbound[data-leafs-link-kind="proxy_ok"][data-leafs-url-tip]:hover::after,
.leafs-outbound[data-leafs-link-kind="proxy_ok"][data-leafs-url-tip]:focus-visible::after {
	background: linear-gradient(165deg, #9a3412 0%, #7c2d12 100%);
	color: #fffbeb;
	border: 1px solid rgba(253, 230, 138, 0.5);
}

.leafs-outbound[data-leafs-link-kind="unchecked"][data-leafs-url-tip]:hover::after,
.leafs-outbound[data-leafs-link-kind="unchecked"][data-leafs-url-tip]:focus-visible::after {
	background: linear-gradient(165deg, #334155 0%, #1e293b 100%);
	color: #f1f5f9;
	border: 1px solid rgba(148, 163, 184, 0.45);
}

.leafs-tool-url-hint {
	margin: 0 0 12px;
	padding: 10px 14px;
	border-radius: 10px;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
	border: 1px solid transparent;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}

.leafs-tool-url-hint--fail {
	background: linear-gradient(165deg, #fef2f2 0%, #fee2e2 100%);
	border-color: rgba(239, 68, 68, 0.45);
	color: #7f1d1d;
}

.leafs-tool-url-hint--proxy_ok {
	background: linear-gradient(165deg, #fffbeb 0%, #fef3c7 100%);
	border-color: rgba(245, 158, 11, 0.5);
	color: #78350f;
}

html[data-leafs-theme="dark"] .leafs-tool-url-hint--fail {
	background: linear-gradient(165deg, #450a0a 0%, #7f1d1d 100%);
	border-color: rgba(248, 113, 113, 0.4);
	color: #fecaca;
}

html[data-leafs-theme="dark"] .leafs-tool-url-hint--proxy_ok {
	background: linear-gradient(165deg, #422006 0%, #78350f 100%);
	border-color: rgba(251, 191, 36, 0.35);
	color: #fef3c7;
}

.leafs-fav-btn.is-active {
	border-color: var(--leafs-warm);
	color: var(--leafs-warm);
	background: rgba(244, 162, 97, 0.12);
}

@keyframes leafs-fav-pop {
	0%,
	100% {
		transform: scale(1);
	}

	40% {
		transform: scale(1.2);
	}
}

.leafs-fav-btn.is-pulse {
	animation: leafs-fav-pop 0.45s ease;
}

.leafs-icon {
	width: 18px;
	height: 18px;
	display: block;
	background: currentColor;
	mask-size: contain;
	mask-repeat: no-repeat;
	mask-position: center;
	-webkit-mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
}

.leafs-icon--external {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14'/%3E%3C/svg%3E");
}

.leafs-icon--doc {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z'/%3E%3C/svg%3E");
}

.leafs-icon--star {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E");
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z'/%3E%3C/svg%3E");
}

/* News cards */
.leafs-panel.leafs-panel--news {
	--card-bg: var(--leafs-card);
	--text-main: var(--leafs-text);
	--text-secondary: var(--leafs-muted);
	--primary: var(--leafs-brand);
	position: sticky;
	top: calc(var(--leafs-header-h) + 16px);
	overflow: visible;
	align-self: start;
}

.leafs-panel--news .leafs-news-list-stage {
	padding: 0 16px 22px;
}

.leafs-news-list--cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.leafs-news-card {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px;
	margin: 0;
	background: var(--card-bg);
	border-radius: 12px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: box-shadow 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
	border: 1px solid var(--leafs-border);
}

.leafs-news-card:hover {
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
	transform: translateX(2px);
	text-decoration: none;
	color: inherit;
}

.leafs-news-card--standard {
	padding: 16px;
	gap: 14px;
}

.leafs-news-card__thumb {
	flex: 0 0 auto;
	width: 50px;
	height: 50px;
	border-radius: 8px;
	overflow: hidden;
	background: var(--leafs-surface2);
}

.leafs-news-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.2s ease;
}

.leafs-news-card:hover .leafs-news-card__thumb img {
	transform: scale(1.02);
}

.leafs-news-card__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.leafs-news-card__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--text-main);
	transition: color 0.2s ease;
}

.leafs-news-card:hover .leafs-news-card__title {
	color: var(--primary);
}

.leafs-news-card__meta {
	font-size: 12px;
	color: var(--text-secondary);
	line-height: 1.35;
}

.leafs-news-card__summary {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-size: 13px;
	line-height: 1.45;
	color: var(--text-secondary);
	opacity: 0.92;
}

.leafs-news-list__empty--card {
	list-style: none;
	margin: 0;
	padding: 24px 16px;
	text-align: center;
	border-radius: 12px;
	background: var(--leafs-surface2);
	border: 1px dashed var(--leafs-border);
}

.leafs-news-empty-illus {
	display: flex;
	justify-content: center;
	margin-bottom: 12px;
	opacity: 0.9;
}

.leafs-news-empty-title {
	margin: 0;
	font-size: 0.95rem;
	color: var(--leafs-muted);
}

.leafs-news-admin-hint {
	margin: 0;
	padding: 8px 16px 16px;
	font-size: 0.8rem;
	text-align: center;
}

.leafs-news-admin-hint a {
	color: var(--leafs-link);
}

.leafs-news-skeleton__card {
	display: flex;
	gap: 12px;
	padding: 12px;
	margin-bottom: 12px;
	border-radius: 12px;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
}

.leafs-news-skeleton__thumb {
	width: 50px;
	height: 50px;
	border-radius: 8px;
	background: linear-gradient(90deg, var(--leafs-border) 25%, var(--leafs-surface) 50%, var(--leafs-border) 75%);
	background-size: 200% 100%;
	animation: leafs-news-skel-pulse 1.2s ease-in-out infinite;
}

.leafs-news-skeleton__lines {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 4px;
}

.leafs-news-skeleton__line {
	height: 10px;
	border-radius: 5px;
	background: linear-gradient(90deg, var(--leafs-border) 25%, var(--leafs-surface) 50%, var(--leafs-border) 75%);
	background-size: 200% 100%;
	animation: leafs-news-skel-pulse 1.2s ease-in-out infinite;
}

.leafs-news-skeleton__line--title {
	width: 92%;
	height: 14px;
	border-radius: 6px;
}

.leafs-news-skeleton__line--meta {
	width: 55%;
}

@keyframes leafs-news-skel-pulse {
	0% {
		background-position: 200% 0;
	}
	100% {
		background-position: -200% 0;
	}
}

@media (max-width: 768px) {
	.leafs-panel.leafs-panel--news {
		position: static;
		top: auto;
	}

	.leafs-news-heading__title {
		font-size: 18px;
	}

	.leafs-news-card__title {
		font-size: 14px;
	}

	.leafs-news-card__thumb,
	.leafs-news-skeleton__thumb {
		width: 40px;
		height: 40px;
	}
}

/* Pagination */
nav.pagination.leafs-pagination {
	padding: 20px 0;
}

.leafs-pagination {
	margin-top: 24px;
	display: flex;
	justify-content: center;
	gap: 8px;
	flex-wrap: wrap;
}

.leafs-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: center;
	align-items: center;
}

.leafs-pagination ul.page-numbers li {
	margin: 0;
}

.leafs-pagination ul.page-numbers a,
.leafs-pagination ul.page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	padding: 8px 12px;
	border-radius: 8px;
	border: 1px solid var(--leafs-border);
	font-size: 0.88rem;
	text-decoration: none;
	box-sizing: border-box;
}

.leafs-pagination ul.page-numbers a {
	background: #f8f9fa;
	color: var(--leafs-text);
}

html[data-leafs-theme="dark"] .leafs-pagination ul.page-numbers a {
	background: #14171c;
}

.leafs-pagination ul.page-numbers span.current {
	background: var(--leafs-brand);
	border-color: var(--leafs-brand);
	color: var(--leafs-on-primary);
	font-weight: 600;
	pointer-events: none;
}

.leafs-pagination ul.page-numbers span.dots {
	border-color: transparent;
	background: transparent;
	color: var(--leafs-muted2);
}

.leafs-pagination ul.page-numbers a:hover {
	text-decoration: none;
	filter: brightness(0.97);
}

html[data-leafs-theme="dark"] .leafs-pagination ul.page-numbers a:hover {
	filter: brightness(1.08);
}

.leafs-pagination ul.page-numbers span:not(.current):not(.dots),
.leafs-pagination ul.page-numbers a.prev.disabled,
.leafs-pagination ul.page-numbers a.next.disabled {
	opacity: 0.45;
	pointer-events: none;
}

.leafs-pagination__nav {
	display: flex;
	justify-content: center;
	width: 100%;
}

.leafs-pagination-jump {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 16px;
	font-size: 0.88rem;
	color: var(--leafs-muted);
}

.leafs-pagination-jump__input {
	width: 4.5rem;
	padding: 8px 10px;
	border-radius: 8px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-search-bg);
	color: var(--leafs-text);
	font: inherit;
}

/* 列表流：加载更多 / 无限滚动 */
.leafs-stream-ui {
	margin-top: 8px;
}

/* Reduce main-thread work for long streams (layout/paint happens near viewport). */
.leafs-stream-block {
	content-visibility: auto;
	contain-intrinsic-size: 1px 900px;
}

/*
 * content-visibility:auto 会跳过屏外子树布局；信息流第 3 位广告常在首屏下方，ins 长期 width=0，
 * leafs-adsense-slot-push 会认为不可 push，表现为「首页首屏无占位、翻页后才有」。广告行必须始终参与布局。
 */
.leafs-stream-block .leafs-card-list__ad {
	content-visibility: visible;
}

/* 覆盖 display:flex，否则 [hidden] 在部分浏览器下仍会占位显示「正在加载」 */
.leafs-stream-loader[hidden],
.leafs-stream-error[hidden] {
	display: none !important;
}

.leafs-stream-loader {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 12px auto 0;
	max-width: max-content;
	padding: 8px 16px;
	border-radius: 40px;
	background: #f8f9fa;
	color: var(--leafs-muted);
	font-size: 0.9rem;
}

html[data-leafs-theme="dark"] .leafs-stream-loader {
	background: #14171c;
}

.leafs-stream-loader__spin {
	width: 22px;
	height: 22px;
	border: 2px solid var(--leafs-border);
	border-top-color: var(--leafs-brand);
	border-radius: 50%;
	animation: leafs-spin 0.7s linear infinite;
}

@keyframes leafs-spin {
	to {
		transform: rotate(360deg);
	}
}

.leafs-stream-error {
	text-align: center;
	padding: 12px;
}

.leafs-stream-sentinel {
	height: 1px;
	margin: 0;
	pointer-events: none;
}

.leafs-stream-block.is-stream-done .leafs-stream-sentinel {
	display: none;
}

.leafs-load-more-wrap {
	text-align: center;
	margin-top: 20px;
}

.leafs-btn--primary.leafs-btn--load-more {
	border-radius: 40px;
	padding: 10px 24px;
}

.leafs-btn--load-more.is-loading {
	pointer-events: none;
	opacity: 0.85;
}

.leafs-btn--load-more.is-disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

/* Page / single */
.leafs-page,
.leafs-single-tool,
.leafs-archive {
	padding-block: 32px 48px;
}

.leafs-page-inner__title,
.leafs-archive__title {
	margin-top: 0;
	font-size: 1.75rem;
	font-weight: 800;
}

.leafs-page-inner {
	max-width: 920px;
	margin: 0 auto;
	padding: 24px;
}

.leafs-page-inner__head {
	margin-bottom: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--leafs-border);
}

.leafs-entry-content {
	max-width: 760px;
}

.leafs-page .leafs-entry-content {
	max-width: 100%;
	font-size: 1rem;
	line-height: 1.8;
	color: var(--leafs-text);
}

.leafs-entry-content a {
	text-decoration: underline;
}

.leafs-page .leafs-entry-content h2,
.leafs-page .leafs-entry-content h3,
.leafs-page .leafs-entry-content h4 {
	margin-top: 1.5em;
	margin-bottom: 0.6em;
	line-height: 1.35;
}

/* 正文 H2：简洁专业（左侧色条 + 底部分隔，无卡片阴影） */
.leafs-page .leafs-entry-content h2,
.leafs-reading-detail .leafs-entry-content h2 {
	margin: 2.1rem 0 0.85rem;
	padding: 0 0 0.55rem 0.85rem;
	font-size: clamp(1.12rem, 0.55vw + 1.02rem, 1.34rem);
	font-weight: 650;
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: var(--leafs-text);
	scroll-margin-top: clamp(4.75rem, 10vh, 6.25rem);
	border: none;
	border-radius: 0;
	background: none;
	box-shadow: none;
	border-left: 3px solid var(--leafs-brand);
	border-bottom: 1px solid var(--leafs-border);
}

.leafs-page .leafs-entry-content h3 {
	font-size: 1.2rem;
}

.leafs-page .leafs-entry-content p,
.leafs-page .leafs-entry-content ul,
.leafs-page .leafs-entry-content ol {
	margin-bottom: 1em;
}

.leafs-page .leafs-entry-content img {
	border-radius: 12px;
	box-shadow: var(--leafs-shadow-sm);
}

.leafs-page .leafs-entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.2em 0;
	overflow: hidden;
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
}

.leafs-page .leafs-entry-content th,
.leafs-page .leafs-entry-content td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--leafs-border);
	text-align: left;
}

.leafs-page .leafs-entry-content th {
	background: var(--leafs-surface2);
	font-weight: 600;
}

.leafs-page .leafs-entry-content blockquote {
	margin: 1.2em 0;
	padding: 12px 14px;
	border-left: 3px solid var(--leafs-brand);
	background: var(--leafs-surface2);
	border-radius: 8px;
	color: var(--leafs-muted2);
}

.leafs-page .leafs-entry-content .wp-block-button__link,
.leafs-page .leafs-entry-content button,
.leafs-page .leafs-entry-content input[type="submit"] {
	border-radius: 999px;
}

.leafs-page .leafs-entry-content input[type="text"],
.leafs-page .leafs-entry-content input[type="email"],
.leafs-page .leafs-entry-content input[type="url"],
.leafs-page .leafs-entry-content input[type="password"],
.leafs-page .leafs-entry-content input[type="number"],
.leafs-page .leafs-entry-content textarea,
.leafs-page .leafs-entry-content select {
	width: 100%;
	max-width: 100%;
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
	padding: 10px 12px;
	background: var(--leafs-card);
	color: var(--leafs-text);
}

.leafs-entry-content pre {
	overflow-x: auto;
	padding: 14px 16px;
	border-radius: 10px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-code-bg);
	color: var(--leafs-code-text);
	font-size: 0.86rem;
	line-height: 1.5;
}

.leafs-entry-content code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
	font-size: 0.9em;
	padding: 2px 6px;
	border-radius: 4px;
	background: var(--leafs-code-bg);
	color: var(--leafs-code-text);
}

.leafs-entry-content pre code {
	padding: 0;
	background: none;
	font-size: inherit;
}

@media (max-width: 768px) {
	.leafs-page-inner {
		padding: 16px;
		border-radius: 12px;
	}

	.leafs-page-inner__title {
		font-size: 1.45rem;
	}
}

.leafs-tool-single__head {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-bottom: 28px;
}

.leafs-tool-single__hero {
	display: flex;
	flex-direction: row;
	gap: 24px;
	align-items: stretch;
}

.leafs-tool-single__hero-logo {
	flex: 0 0 140px;
	max-width: 140px;
}

.leafs-tool-single__logo-card {
	display: block;
	width: 120px;
	height: 120px;
	max-width: 100%;
	border-radius: 20px;
	object-fit: contain;
	background: rgba(148, 163, 184, 0.12);
	padding: 10px;
	box-shadow: var(--leafs-shadow-card);
	margin: 0 auto;
}

.leafs-tool-single__hero-main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.leafs-tool-single__title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
}

.leafs-tool-single__title {
	margin: 0;
	font-size: 2rem;
	line-height: 1.2;
	font-weight: 700;
	flex: 1;
	min-width: 0;
}

.leafs-tool-single__title-fav {
	flex-shrink: 0;
}

.leafs-tool-single__meta-line {
	margin: 0;
	font-size: 0.88rem;
}

.leafs-tool-single__meta-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	font-size: 0.88rem;
}

.leafs-tool-single__meta-grid > span {
	position: relative;
}

.leafs-tool-single__meta-grid > span + span::before {
	content: "·";
	position: absolute;
	left: -9px;
	top: 0;
	opacity: 0.5;
}

.leafs-tool-single__rating-line {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.9rem;
}

.leafs-tool-single__rating-stars {
	letter-spacing: 0.08em;
	color: #fbbf24;
}

.leafs-tool-single__rating-line.is-empty .leafs-tool-single__rating-stars {
	color: color-mix(in srgb, var(--leafs-muted) 60%, transparent);
}

.leafs-tool-single__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	margin-top: 4px;
	align-items: center;
}

/* AI 资源头区：直达官网 + 评分同一行，评分靠右、占位紧凑 */
.leafs-tool-single__actions--cta-rating {
	width: 100%;
	max-width: 100%;
	justify-content: flex-start;
	align-items: center;
	gap: 8px 14px;
}

.leafs-tool-single__action-rating {
	flex: 0 1 auto;
	min-width: 0;
	margin-left: auto;
	display: flex;
	justify-content: flex-end;
}

.leafs-tool-single__actions--rating-only .leafs-tool-single__action-rating {
	margin-left: 0;
	justify-content: flex-start;
}

.leafs-tool-single__actions--rating-only .leafs-tool-rating-block--cta-inline {
	text-align: left;
	max-width: none;
}

.leafs-tool-single__actions--rating-only .leafs-tool-rating-block--cta-inline .leafs-rating-pick {
	justify-content: flex-start;
}

.leafs-tool-rating-block--cta-inline {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	max-width: min(260px, 46vw);
	text-align: right;
}

.leafs-tool-rating-block--cta-inline .leafs-rating-summary,
.leafs-tool-rating-block--cta-inline .leafs-muted {
	font-size: 0.72rem;
	line-height: 1.35;
	margin: 0 0 0.2rem;
}

.leafs-tool-rating-block--cta-inline .leafs-rating-summary {
	margin-bottom: 0.15rem;
}

.leafs-tool-rating-block--cta-inline .leafs-rating-pick {
	margin-top: 0.1rem;
	gap: 1px;
	justify-content: flex-end;
	flex-wrap: nowrap;
}

.leafs-tool-rating-block--cta-inline .leafs-rating-star {
	font-size: 1.05rem;
	padding: 0 1px;
}

@media (max-width: 520px) {
	.leafs-tool-single__actions--cta-rating {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.leafs-tool-single__action-rating {
		margin-left: 0;
		justify-content: flex-start;
	}

	.leafs-tool-rating-block--cta-inline {
		max-width: none;
		text-align: left;
	}

	.leafs-tool-rating-block--cta-inline .leafs-rating-pick {
		justify-content: flex-start;
	}
}

.leafs-side-card--quick .leafs-tool-single__actions {
	margin-top: 0;
	margin-bottom: 12px;
}

.leafs-tool-cta {
	position: relative;
	overflow: hidden;
	border-radius: 999px;
	padding: 12px 28px;
	font-size: 1.02rem;
	font-weight: 650;
	letter-spacing: 0.03em;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	line-height: 1.25;
	border: 1px solid color-mix(in srgb, #fff 38%, transparent);
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 40%, transparent) inset,
		0 2px 8px color-mix(in srgb, var(--leafs-text) 8%, transparent),
		0 8px 28px color-mix(in srgb, var(--leafs-brand) 28%, transparent);
	transition:
		transform 0.2s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.22s ease,
		filter 0.2s ease,
		border-color 0.2s ease;
}

.leafs-tool-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	pointer-events: none;
	background: linear-gradient(
		165deg,
		color-mix(in srgb, #fff 32%, transparent) 0%,
		transparent 42%,
		color-mix(in srgb, #000 12%, transparent) 100%
	);
	opacity: 0.85;
	mix-blend-mode: soft-light;
}

html[data-leafs-theme="dark"] .leafs-tool-cta::before {
	background: linear-gradient(
		165deg,
		color-mix(in srgb, #fff 14%, transparent) 0%,
		transparent 50%,
		rgba(0, 0, 0, 0.35) 100%
	);
	opacity: 1;
}

.leafs-tool-cta__icon {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.65em;
	height: 1.65em;
	padding: 0 0.35em;
	font-size: 0.92em;
	line-height: 1;
	border-radius: 999px;
	background: color-mix(in srgb, #fff 22%, transparent);
	border: 1px solid color-mix(in srgb, #fff 35%, transparent);
	box-shadow: 0 1px 2px color-mix(in srgb, #000 12%, transparent);
	transition: transform 0.2s ease, background 0.2s ease;
}

.leafs-tool-cta > span:first-of-type {
	position: relative;
	z-index: 1;
}

.leafs-btn--primary.leafs-tool-cta:hover {
	filter: brightness(1.07) saturate(1.04);
	transform: translateY(-2px);
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 48%, transparent) inset,
		0 4px 14px color-mix(in srgb, var(--leafs-text) 10%, transparent),
		0 12px 36px color-mix(in srgb, var(--leafs-brand) 38%, transparent);
}

.leafs-btn--primary.leafs-tool-cta:hover .leafs-tool-cta__icon {
	transform: translate(1px, -1px) scale(1.04);
	background: color-mix(in srgb, #fff 34%, transparent);
}

.leafs-btn--primary.leafs-tool-cta:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--leafs-on-primary) 85%, var(--leafs-brand));
	outline-offset: 3px;
}

.leafs-btn--primary.leafs-tool-cta:active {
	transform: translateY(0);
	filter: brightness(0.98);
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 25%, transparent) inset,
		0 2px 10px color-mix(in srgb, var(--leafs-brand) 22%, transparent);
}

/* 官网健康态：主按钮用对应色系渐变，保证与白字对比 */
.leafs-btn--primary.leafs-tool-cta.leafs-outbound--ok {
	background: linear-gradient(145deg, #16a34a 0%, #22c55e 48%, #15803d 100%);
	color: #fff !important;
	border-color: color-mix(in srgb, #fff 35%, #22c55e);
}

.leafs-btn--primary.leafs-tool-cta.leafs-outbound--proxy {
	background: linear-gradient(145deg, #d97706 0%, #f59e0b 50%, #b45309 100%);
	color: #fff !important;
	border-color: color-mix(in srgb, #fff 32%, #f59e0b);
}

.leafs-btn--primary.leafs-tool-cta.leafs-outbound--fail,
.leafs-btn--primary.leafs-tool-cta.leafs-outbound--warn {
	background: linear-gradient(145deg, #dc2626 0%, #ef4444 52%, #b91c1c 100%);
	color: #fff !important;
	border-color: color-mix(in srgb, #fff 32%, #ef4444);
}

.leafs-btn--primary.leafs-tool-cta.leafs-outbound--unchecked {
	background: linear-gradient(145deg, #64748b 0%, #94a3b8 48%, #475569 100%);
	color: #fff !important;
	border-color: color-mix(in srgb, #fff 28%, #94a3b8);
}

html[data-leafs-theme="dark"] .leafs-btn--primary.leafs-tool-cta.leafs-outbound--ok {
	background: linear-gradient(145deg, #15803d 0%, #22c55e 45%, #14532d 100%);
}

html[data-leafs-theme="dark"] .leafs-btn--primary.leafs-tool-cta.leafs-outbound--proxy {
	background: linear-gradient(145deg, #b45309 0%, #f59e0b 48%, #78350f 100%);
}

html[data-leafs-theme="dark"] .leafs-btn--primary.leafs-tool-cta.leafs-outbound--fail,
html[data-leafs-theme="dark"] .leafs-btn--primary.leafs-tool-cta.leafs-outbound--warn {
	background: linear-gradient(145deg, #991b1b 0%, #ef4444 50%, #7f1d1d 100%);
}

html[data-leafs-theme="dark"] .leafs-btn--primary.leafs-tool-cta.leafs-outbound--unchecked {
	background: linear-gradient(145deg, #475569 0%, #64748b 50%, #334155 100%);
}

@media (prefers-reduced-motion: reduce) {
	.leafs-tool-cta,
	.leafs-tool-cta__icon {
		transition: none;
	}

	.leafs-btn--primary.leafs-tool-cta:hover {
		transform: none;
	}

	.leafs-btn--primary.leafs-tool-cta:hover .leafs-tool-cta__icon {
		transform: none;
	}
}

/* 复制官网链接：与「直达官网」同排，偏次级但精致可辨 */
.leafs-tool-copy-official {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 22px;
	border-radius: 999px;
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.2;
	color: var(--leafs-text);
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--leafs-surface2) 88%, var(--leafs-brand) 6%),
		var(--leafs-surface)
	);
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 22%, var(--leafs-border));
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 35%, transparent),
		0 2px 12px color-mix(in srgb, var(--leafs-text) 6%, transparent);
	transition:
		color 0.2s ease,
		border-color 0.2s ease,
		box-shadow 0.22s ease,
		transform 0.18s ease,
		background 0.2s ease;
}

.leafs-tool-copy-official__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: color-mix(in srgb, var(--leafs-brand) 82%, var(--leafs-muted));
	transition: color 0.2s ease, transform 0.2s ease;
}

.leafs-tool-copy-official__icon svg {
	display: block;
}

.leafs-tool-copy-official__label {
	white-space: nowrap;
}

.leafs-tool-copy-official:hover {
	color: var(--leafs-link);
	border-color: color-mix(in srgb, var(--leafs-brand) 42%, var(--leafs-border));
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 28%, transparent),
		0 6px 20px color-mix(in srgb, var(--leafs-brand) 18%, transparent);
	transform: translateY(-1px);
}

.leafs-tool-copy-official:hover .leafs-tool-copy-official__icon {
	color: var(--leafs-brand);
	transform: scale(1.05);
}

.leafs-tool-copy-official:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--leafs-brand) 55%, transparent);
	outline-offset: 2px;
}

.leafs-tool-copy-official:active {
	transform: translateY(0);
	box-shadow: 0 1px 8px color-mix(in srgb, var(--leafs-text) 8%, transparent);
}

.leafs-tool-copy-official.is-copied {
	border-color: color-mix(in srgb, var(--leafs-mint, var(--leafs-brand)) 45%, var(--leafs-border));
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--leafs-mint, var(--leafs-brand)) 12%, var(--leafs-surface2)),
		var(--leafs-surface)
	);
}

.leafs-tool-copy-official.is-copied .leafs-tool-copy-official__icon {
	color: var(--leafs-mint, var(--leafs-brand));
}

html[data-leafs-theme="dark"] .leafs-tool-copy-official {
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--leafs-surface2) 70%, var(--leafs-brand) 8%),
		color-mix(in srgb, var(--leafs-card) 95%, var(--leafs-bg))
	);
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 6%, transparent),
		0 4px 24px rgba(0, 0, 0, 0.35);
}

html[data-leafs-theme="dark"] .leafs-tool-copy-official:hover {
	box-shadow:
		0 1px 0 color-mix(in srgb, #fff 5%, transparent),
		0 8px 28px color-mix(in srgb, var(--leafs-brand) 25%, rgba(0, 0, 0, 0.45));
}

@media (prefers-reduced-motion: reduce) {
	.leafs-tool-copy-official,
	.leafs-tool-copy-official__icon {
		transition: none;
	}

	.leafs-tool-copy-official:hover {
		transform: none;
	}

	.leafs-tool-copy-official:hover .leafs-tool-copy-official__icon {
		transform: none;
	}
}

.leafs-tool-cta-copy {
	border-radius: 999px;
	padding: 10px 20px;
	font-size: 0.95rem;
}

.leafs-tool-info-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 20px;
	padding: 16px;
	background: var(--leafs-surface2);
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
}

@media (max-width: 540px) {
	.leafs-tool-info-grid {
		grid-template-columns: 1fr;
	}
}

.leafs-tool-info-grid__cell {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 0.88rem;
}

.leafs-tool-info-grid__icon {
	flex-shrink: 0;
	font-size: 1.1rem;
	line-height: 1;
}

.leafs-tool-info-grid__label {
	color: var(--leafs-muted);
	font-size: 0.8rem;
	margin-bottom: 2px;
}

.leafs-tool-info-grid__value {
	color: var(--leafs-text);
	line-height: 1.35;
}

.leafs-tool-info-grid__value a {
	color: var(--leafs-link);
	text-decoration: none;
}

.leafs-tool-info-grid__value a:hover {
	color: var(--leafs-brand-hover, var(--leafs-link));
}

.leafs-tool-single__logo-wrap {
	text-align: center;
	margin: 4px 0 8px;
}

.leafs-tool-single__logo:not(.leafs-tool-thumb__img) {
	max-width: 200px;
	width: 100%;
	height: auto;
	border-radius: 16px;
	display: inline-block;
	vertical-align: top;
	box-shadow: var(--leafs-shadow-card);
}

.leafs-tool-single__cta-wrap {
	margin: 0;
	text-align: center;
}

.leafs-tool-single__excerpt {
	color: var(--leafs-muted);
	margin: 0;
	line-height: 1.55;
	font-size: 0.95rem;
}

.leafs-tool-single__thumb img {
	border-radius: var(--leafs-radius);
	border: 1px solid var(--leafs-border);
}

.leafs-tool-single__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.leafs-empty,
.leafs-muted {
	color: var(--leafs-muted);
}

.leafs-empty-state {
	text-align: center;
	padding: 40px 20px 48px;
	max-width: 420px;
	margin-inline: auto;
}

.leafs-empty-state__title {
	margin: 0 0 10px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--leafs-text);
}

.leafs-empty-state__text {
	margin: 0 0 20px;
	color: var(--leafs-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

/* Forms */
.leafs-form .leafs-input,
.leafs-form .leafs-textarea {
	width: 100%;
	max-width: 520px;
	padding: 10px 14px;
	border-radius: 8px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-search-bg);
	color: var(--leafs-text);
	font: inherit;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.leafs-form .leafs-input:focus,
.leafs-form .leafs-textarea:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.leafs-form p {
	margin-bottom: 18px;
}

.leafs-notice {
	padding: 14px 18px;
	border-radius: var(--leafs-radius);
	margin-bottom: 20px;
	border: 1px solid var(--leafs-border);
}

.leafs-notice--success {
	background: rgba(34, 197, 94, 0.12);
	border-color: rgba(34, 197, 94, 0.4);
}

.leafs-notice--warn {
	background: rgba(251, 191, 36, 0.1);
	border-color: rgba(251, 191, 36, 0.35);
}

.leafs-user-section {
	margin-bottom: 36px;
}

.leafs-user-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.leafs-user-list li {
	padding: 12px 0;
	border-bottom: 1px solid var(--leafs-border);
}

.leafs-badge-status {
	font-size: 0.7rem;
	margin-left: 8px;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--leafs-surface2);
	text-transform: uppercase;
}

/* Footer */
.leafs-footer {
	flex-shrink: 0;
	border-top: 1px solid var(--leafs-border);
	padding: 32px 16px 24px;
	margin-top: auto;
	background: #f8f9fa;
	color: #6c757d;
}

html[data-leafs-theme="dark"] .leafs-footer {
	background: #14171c;
	color: #9aa1b0;
}

.leafs-footer.leafs-footer--enhanced {
	border-top: none;
	padding: 0 16px 28px;
	background: linear-gradient(180deg, rgba(10, 12, 16, 0.96) 0%, #020408 100%);
	color: #9aa3b4;
}

html[data-leafs-theme="dark"] .leafs-footer.leafs-footer--enhanced {
	background: linear-gradient(180deg, #0a0c10 0%, #020408 100%);
}

@media (min-width: 769px) {
	.leafs-footer:not(.leafs-footer--enhanced) {
		padding: 48px 24px 24px;
	}

	.leafs-footer--enhanced {
		padding: 0 24px 32px;
	}
}

.leafs-footer--enhanced .leafs-container {
	position: relative;
	z-index: 2;
	padding-top: 40px;
}

.leafs-footer__top-glow {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	background: linear-gradient(
		90deg,
		transparent,
		var(--leafs-brand),
		color-mix(in srgb, var(--leafs-brand) 70%, var(--leafs-mint, #1b9c85)),
		transparent
	);
	box-shadow: 0 0 14px color-mix(in srgb, var(--leafs-brand) 40%, transparent);
	z-index: 4;
	pointer-events: none;
}

.leafs-footer__mouse-glow {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	opacity: 0.72;
	background: radial-gradient(
		520px circle at var(--leafs-footer-glow-x, 50%) var(--leafs-footer-glow-y, 38%),
		color-mix(in srgb, var(--leafs-brand) 26%, transparent),
		transparent 70%
	);
	transition: opacity 0.35s ease;
}

.leafs-footer__mouse-glow.is-off {
	opacity: 0;
}

.leafs-footer[data-footer-glow="0"] .leafs-footer__mouse-glow {
	display: none;
}

.leafs-footer__particles {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 1;
	display: block;
}

.leafs-footer__brand {
	display: flex;
	gap: 14px 20px;
	align-items: flex-start;
	flex-wrap: wrap;
}

.leafs-footer__brand-body {
	flex: 1 1 12rem;
	min-width: 0;
}

.leafs-footer__logo {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	line-height: 0;
	margin-top: 2px;
}

.leafs-footer__logo .custom-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	border-radius: 12px;
	transition: opacity 0.15s ease;
}

.leafs-footer__logo .custom-logo-link:hover {
	opacity: 0.88;
}

.leafs-footer__logo img {
	display: block;
	width: auto;
	height: auto;
	max-height: 44px;
	max-width: min(200px, 36vw);
	object-fit: contain;
	object-position: left center;
	border-radius: 10px;
	filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.22));
}

.leafs-footer__site-title {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 10px;
	color: #e8ecf4;
	letter-spacing: -0.02em;
}

.leafs-footer--enhanced .leafs-footer__heading {
	color: #d2dae8;
}

.leafs-footer--enhanced .leafs-footer__heading--brand {
	font-size: 1rem;
	margin-bottom: 8px;
}

.leafs-footer--enhanced .leafs-footer__about,
.leafs-footer--enhanced .leafs-footer__about p {
	font-size: 14px;
	line-height: 1.65;
	color: #8b93a5;
	margin: 0 0 10px;
}

.leafs-footer__inline-nav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
	margin: 12px 0 0;
}

.leafs-footer__inline-dot {
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--leafs-brand);
	display: inline-block;
	flex-shrink: 0;
}

.leafs-footer__quick-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px 24px;
}

@media (max-width: 768px) {
	.leafs-footer__quick-groups {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

.leafs-footer__subheading {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 12px;
	color: #c5cdd8;
}

.leafs-footer__friends {
	margin-top: 28px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.leafs-footer__friends-title {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #7d8699;
	margin: 0 0 14px;
}

.leafs-footer__friends-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 6px;
	margin: 0 -4px;
	scrollbar-width: thin;
}

.leafs-footer__friends-list {
	display: flex;
	flex-wrap: nowrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 4px 4px 8px;
}

.leafs-footer__friends-list li {
	flex: 0 0 auto;
	margin: 0;
}

.leafs-footer__friends-list a {
	display: block;
	padding: 7px 16px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	font-size: 13px;
	color: #b4bcc9;
	text-decoration: none;
	white-space: nowrap;
	transition: transform 0.2s ease, color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
	position: relative;
}

.leafs-footer__friends-list a:hover {
	transform: scale(1.06);
	color: var(--leafs-brand);
	border-color: color-mix(in srgb, var(--leafs-brand) 55%, transparent);
	background: color-mix(in srgb, var(--leafs-brand) 12%, transparent);
}

.leafs-footer__col--stats-panel {
	min-width: 0;
}

.leafs-footer__stats-card {
	padding: 16px 14px 14px;
	border-radius: 14px;
	background: linear-gradient(
		155deg,
		rgba(38, 40, 48, 0.96) 0%,
		rgba(22, 24, 30, 0.99) 50%,
		rgba(14, 16, 22, 1) 100%
	);
	border: 1px solid rgba(255, 255, 255, 0.09);
	box-shadow:
		0 8px 28px rgba(0, 0, 0, 0.32),
		inset 0 1px 0 rgba(255, 255, 255, 0.05);
	position: relative;
	overflow: hidden;
}

.leafs-footer__stats-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	border-radius: 14px 14px 0 0;
	background: linear-gradient(
		90deg,
		transparent,
		color-mix(in srgb, var(--leafs-brand) 50%, transparent),
		color-mix(in srgb, var(--leafs-mint, #1b9c85) 38%, transparent),
		transparent
	);
	opacity: 0.9;
	pointer-events: none;
}

.leafs-footer__stats-section {
	position: relative;
	z-index: 1;
}

.leafs-footer__stats-heading {
	margin: 0 0 12px;
	padding-top: 2px;
	font-size: 0.98rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	color: #e8ecf4;
	line-height: 1.35;
}

.leafs-footer__stats-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.leafs-footer__stats-list li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 8px;
	margin: 0;
	line-height: 1.45;
	font-size: 0.875rem;
	color: #9aa3b4;
}

.leafs-footer__stats-value {
	font-size: 1.125rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: #e8ecf4;
	letter-spacing: -0.02em;
}

.leafs-footer__stats-unit {
	color: #8b93a5;
}

.leafs-footer__stats-divider {
	height: 1px;
	margin: 14px 0;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.1) 20%,
		rgba(255, 255, 255, 0.1) 80%,
		transparent
	);
	position: relative;
	z-index: 1;
}

.leafs-footer__partners-list {
	list-style: none;
	margin: 0;
	padding: 0 0 0 2px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 0.875rem;
	line-height: 1.5;
	color: #9aa3b4;
}

.leafs-footer__partners-list li {
	margin: 0;
	padding-left: 0.65em;
	position: relative;
}

.leafs-footer__partners-list li::before {
	content: "•";
	position: absolute;
	left: 0;
	color: color-mix(in srgb, var(--leafs-brand) 75%, #fff);
	font-weight: 700;
}

.leafs-footer__partners-list a {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease, transform 0.2s ease;
}

.leafs-footer__partners-list a:hover {
	color: var(--leafs-brand);
}

.leafs-footer__contact-icon {
	flex-shrink: 0;
	font-size: 1rem;
	line-height: 1.5;
	margin-top: 1px;
}

.leafs-footer__work-hours {
	font-size: 12px;
	line-height: 1.5;
	color: #6d7380;
	margin: 14px 0 0;
}

.leafs-footer__year--fade {
	opacity: 0;
	transition: opacity 0.55s ease;
}

.leafs-footer__year--fade.is-on {
	opacity: 1;
}

.leafs-footer__text {
	margin-bottom: 16px;
	font-size: 0.9rem;
	color: inherit;
	opacity: 0.95;
}

.leafs-footer--enhanced .leafs-footer__text {
	color: #8b93a5;
	opacity: 1;
}

.leafs-footer__row {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	border-top: 1px solid var(--leafs-border);
	padding: 20px 0 0;
	margin-top: 16px;
	gap: 8px;
}

.leafs-footer--enhanced .leafs-footer__row {
	border-top-color: rgba(255, 255, 255, 0.08);
	margin-top: 24px;
	padding-top: 22px;
	color: #7d8699;
}

.leafs-footer__nav {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	font-size: 0.88rem;
}

.leafs-footer__nav a {
	color: inherit;
}

.leafs-footer__copy {
	margin: 0;
	font-size: 14px;
	color: inherit;
	text-align: center;
}

.leafs-footer__copy--custom {
	width: 100%;
	text-align: center;
	font-size: 14px;
}

.leafs-footer__heading {
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 16px;
	color: inherit;
}

.leafs-footer__links a {
	color: inherit;
}

.leafs-footer__links a:hover {
	color: var(--leafs-brand);
	text-decoration: none;
}

.leafs-footer__links li {
	line-height: 2;
}

.leafs-footer--enhanced .leafs-footer__links > li > a,
.leafs-footer--enhanced .leafs-footer__contact a,
.leafs-footer--enhanced .leafs-footer__inline-link {
	position: relative;
	display: inline-block;
	transition: color 0.2s ease, transform 0.2s ease;
}

.leafs-footer--enhanced .leafs-footer__links > li > a::after,
.leafs-footer--enhanced .leafs-footer__contact a::after,
.leafs-footer--enhanced .leafs-footer__inline-link::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform 0.25s ease;
	pointer-events: none;
}

.leafs-footer--enhanced .leafs-footer__links > li > a:hover,
.leafs-footer--enhanced .leafs-footer__contact a:hover,
.leafs-footer--enhanced .leafs-footer__inline-link:hover {
	transform: translateX(2px);
}

.leafs-footer--enhanced .leafs-footer__links > li > a:hover::after,
.leafs-footer--enhanced .leafs-footer__contact a:hover::after,
.leafs-footer--enhanced .leafs-footer__inline-link:hover::after {
	transform: translateX(-50%) scaleX(1);
}

.leafs-footer--enhanced .leafs-footer__links .sub-menu {
	list-style: none;
	margin: 4px 0 0;
	padding: 0 0 0 4px;
	border-left: 2px solid color-mix(in srgb, var(--leafs-brand) 35%, transparent);
}

.leafs-footer--enhanced .leafs-footer__links .sub-menu a {
	position: relative;
	display: inline-block;
	transition: color 0.2s ease, transform 0.2s ease;
}

.leafs-footer--enhanced .leafs-footer__links .sub-menu a::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	transform: translateX(-50%) scaleX(0);
	transform-origin: center;
	transition: transform 0.25s ease;
	pointer-events: none;
}

.leafs-footer--enhanced .leafs-footer__links .sub-menu a:hover {
	transform: translateX(2px);
}

.leafs-footer--enhanced .leafs-footer__links .sub-menu a:hover::after {
	transform: translateX(-50%) scaleX(1);
}

.leafs-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	justify-content: flex-start;
}

.leafs-footer__col--contact .leafs-footer__social {
	margin-top: 20px;
}

@media (max-width: 768px) {
	.leafs-footer__col--contact .leafs-footer__social {
		justify-content: center;
	}

	.leafs-footer--enhanced .leafs-footer__col {
		text-align: center;
	}

	.leafs-footer--enhanced .leafs-footer__brand {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.leafs-footer--enhanced .leafs-footer__logo {
		justify-content: center;
		margin-top: 0;
	}

	.leafs-footer--enhanced .leafs-footer__logo img {
		max-height: 48px;
		max-width: min(240px, 78vw);
		object-position: center center;
	}

	.leafs-footer--enhanced .leafs-footer__inline-nav {
		justify-content: center;
	}

	.leafs-footer--enhanced .leafs-footer__contact li {
		justify-content: center;
	}

	.leafs-footer--enhanced .leafs-footer__col--stats-panel {
		text-align: center;
	}

	.leafs-footer--enhanced .leafs-footer__stats-list li,
	.leafs-footer--enhanced .leafs-footer__partners-list li {
		justify-content: center;
		text-align: center;
	}

	.leafs-footer--enhanced .leafs-footer__partners-list li {
		padding-left: 0;
	}

	.leafs-footer--enhanced .leafs-footer__partners-list li::before {
		display: none;
	}
}

.leafs-footer__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--leafs-surface2);
	color: var(--leafs-text);
	text-decoration: none;
	transition: transform 0.25s ease, color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
	position: relative;
}

.leafs-footer--enhanced .leafs-footer__social-link {
	background: rgba(255, 255, 255, 0.08);
	color: #e8ecf4;
}

.leafs-footer__social-link:hover {
	transform: translateY(-4px) rotate(8deg);
	color: #fff;
	background: var(--leafs-brand);
}

.leafs-footer--enhanced .leafs-footer__social-link:hover {
	box-shadow: 0 8px 22px color-mix(in srgb, var(--leafs-brand) 35%, transparent);
}

@keyframes leafs-footer-social-pulse {
	0% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--leafs-brand) 45%, transparent);
	}
	70% {
		box-shadow: 0 0 0 12px rgba(45, 106, 79, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(45, 106, 79, 0);
	}
}

.leafs-footer[data-footer-pulse="1"] .leafs-footer__social--pulse .leafs-footer__social-link {
	animation: leafs-footer-social-pulse 3s ease-out infinite;
}

.leafs-footer[data-footer-pulse="1"] .leafs-footer__social--pulse li:nth-child(1) .leafs-footer__social-link {
	animation-delay: 0s;
}

.leafs-footer[data-footer-pulse="1"] .leafs-footer__social--pulse li:nth-child(2) .leafs-footer__social-link {
	animation-delay: 0.45s;
}

.leafs-footer[data-footer-pulse="1"] .leafs-footer__social--pulse li:nth-child(3) .leafs-footer__social-link {
	animation-delay: 0.9s;
}

.leafs-footer[data-footer-pulse="1"] .leafs-footer__social--pulse li:nth-child(4) .leafs-footer__social-link {
	animation-delay: 1.35s;
}

.leafs-footer__social-link[data-tooltip]:hover::after {
	content: attr(data-tooltip);
	position: absolute;
	bottom: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-bottom: 8px;
	padding: 4px 10px;
	font-size: 12px;
	white-space: nowrap;
	background: var(--leafs-text);
	color: var(--leafs-surface);
	border-radius: 6px;
	pointer-events: none;
	z-index: 5;
}

.leafs-footer__social-fallback {
	font-size: 0.75rem;
	font-weight: 700;
}

/* —— 扩展：简述文档 v1.1 —— */
.leafs-topbar {
	background: var(--leafs-surface2);
	border-bottom: 1px solid var(--leafs-border);
	font-size: 0.8rem;
	color: var(--leafs-muted);
}

.leafs-topbar__inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 8px 16px;
	min-height: 36px;
	padding-block: 6px;
}

.leafs-topbar__contact,
.leafs-topbar__right {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	align-items: center;
}

.leafs-topbar a {
	color: var(--leafs-muted);
}

.leafs-topbar a:hover {
	color: var(--leafs-brand);
}

.leafs-search {
	display: flex;
	align-items: center;
	gap: 0;
	flex: 1 1 auto;
	min-width: 0;
	max-width: 100%;
	padding: 3px;
	border-radius: 999px;
	background: var(--leafs-search-bg);
	border: 1px solid var(--leafs-border);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.leafs-search:focus-within {
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px var(--leafs-focus-ring), 0 2px 12px rgba(45, 106, 79, 0.12);
}

html[data-leafs-theme="dark"] .leafs-search:focus-within {
	box-shadow: 0 0 0 3px var(--leafs-focus-ring), 0 2px 16px rgba(0, 0, 0, 0.35);
}

@media (min-width: 768px) {
	.leafs-search {
		max-width: 300px;
		flex: 0 1 300px;
	}
}

.leafs-search__input {
	flex: 1;
	min-width: 0;
	padding: 9px 14px;
	border-radius: 999px;
	border: 0;
	background: transparent;
	color: var(--leafs-text);
	font: inherit;
	font-size: 0.88rem;
	transition: color 0.2s ease;
}

.leafs-search__input:focus {
	outline: none;
	box-shadow: none;
}

.leafs-search__btn {
	padding: 9px 16px;
	border-radius: 999px;
	border: 0;
	background: var(--leafs-brand);
	color: var(--leafs-on-primary);
	font-weight: 600;
	cursor: pointer;
	font-size: 0.82rem;
	transition: filter 0.2s ease;
	flex-shrink: 0;
}

.leafs-search__btn:hover {
	filter: brightness(1.08);
}

.leafs-nav__list li {
	position: relative;
}

.leafs-nav__list .sub-menu {
	display: block;
	position: absolute;
	left: 0;
	top: calc(100% + 4px);
	min-width: 200px;
	z-index: 40;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: var(--leafs-subnav-bg);
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	box-shadow: var(--leafs-subnav-shadow);
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-6px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

.leafs-nav__list li:hover > .sub-menu,
.leafs-nav__list li:focus-within > .sub-menu {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.leafs-nav__list .sub-menu a {
	border-radius: 0;
	white-space: nowrap;
}

.leafs-nav__list .sub-menu .sub-menu {
	left: 100%;
	top: 0;
}

@media (max-width: 782px) {
	.leafs-nav__list .sub-menu {
		display: none;
		position: static;
		visibility: visible;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		min-width: unset;
		margin: 6px 0 0;
		padding: 4px 0 8px 12px;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: transparent;
		transition: none;
	}

	.leafs-nav__list li:hover > .sub-menu,
	.leafs-nav__list li:focus-within > .sub-menu {
		display: block;
	}

	.leafs-nav__list .sub-menu a {
		white-space: normal;
	}

	.leafs-nav__list .sub-menu .sub-menu {
		left: auto;
		top: auto;
		padding-left: 12px;
	}
}

.leafs-user-dropdown {
	position: relative;
	display: inline-flex;
	flex-direction: column;
	align-items: flex-end;
}

.leafs-user-dropdown__toggle {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 10px;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
	color: var(--leafs-text);
	cursor: pointer;
	font: inherit;
	font-size: 0.88rem;
}

.leafs-header__avatar {
	border-radius: 50%;
}

.leafs-user-dropdown__menu {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	margin: 0;
	padding: 8px 0;
	list-style: none;
	min-width: 180px;
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
	box-shadow: var(--leafs-shadow);
	z-index: 60;
}

.leafs-user-dropdown__menu a {
	display: block;
	padding: 8px 14px;
	color: var(--leafs-text);
	font-size: 0.88rem;
}

.leafs-user-dropdown__menu a:hover {
	background: var(--leafs-surface2);
	text-decoration: none;
}

.leafs-panel__collapse {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	margin: 0;
	border: 0;
	border-bottom: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	border-left: 4px solid var(--leafs-brand);
	cursor: pointer;
	color: inherit;
	font: inherit;
	text-align: left;
}

.leafs-panel__collapse .leafs-panel__title {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 700;
}

@media (min-width: 1025px) {
	.leafs-panel__collapse {
		cursor: default;
		pointer-events: none;
	}

	.leafs-panel__collapse::after {
		content: none;
	}
}

.leafs-panel--sidebar-nav .leafs-panel__collapsible {
	padding-bottom: 8px;
}

.leafs-tag--region {
	border-style: dashed;
}

.leafs-back-top {
	position: fixed;
	left: auto !important;
	right: var(--leafs-corner-fab-right, 28px);
	bottom: var(--leafs-corner-back-bottom, 30px);
	z-index: 130;
	width: var(--leafs-corner-fab-size, 40px);
	height: var(--leafs-corner-fab-size, 40px);
	border-radius: 50%;
	border: none;
	background: var(--leafs-brand);
	color: var(--leafs-on-primary);
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.15s ease;
	box-shadow: var(--leafs-shadow);
}

.leafs-back-top--square {
	border-radius: 8px;
}

/* 底部水平居中（与「右下」互斥，由 PHP 只输出一种 modifier） */
.leafs-back-top--center {
	left: 50% !important;
	right: auto !important;
	transform: translateX(-50%);
}

.leafs-back-top--center.is-visible {
	transform: translateX(-50%);
}

/* 强制右下模式不受居中 transform 影响 */
.leafs-back-top--right {
	left: auto !important;
	right: var(--leafs-corner-fab-right, 28px);
	transform: none;
}

.leafs-back-top.is-visible {
	opacity: 1;
	pointer-events: auto;
}

@media (max-width: 768px) {
	/*
	 * 移动端正负 bottom/right 由 lumo-enhancements.css 与底部导航栈统一计算，
	 * 此处仅保留触控尺寸与排版，避免与 enhancements 打架导致各页错位。
	 */
	.leafs-back-top {
		width: var(--leafs-corner-fab-size, 32px);
		height: var(--leafs-corner-fab-size, 32px);
		left: auto !important;
		font-size: 0.95rem;
	}

	.leafs-back-top--center {
		left: 50% !important;
		right: auto !important;
		transform: translateX(-50%);
	}

	.leafs-back-top--center.is-visible {
		transform: translateX(-50%);
	}

	.leafs-back-top--right {
		left: auto !important;
		transform: none;
	}
}

.leafs-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 0;
}

@media (min-width: 769px) and (max-width: 1023px) {
	.leafs-footer__grid--cols-3,
	.leafs-footer__grid--cols-4 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.leafs-footer__grid--cols-1 {
		grid-template-columns: 1fr;
	}

	.leafs-footer__grid--cols-2 {
		grid-template-columns: repeat(2, 1fr);
	}

	.leafs-footer__grid--cols-3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.leafs-footer__grid--cols-4 {
		grid-template-columns: repeat(4, 1fr);
	}

	/* 友情链接横条时主区仅三栏：品牌 | 快速 | 联系 */
	.leafs-footer__grid--cols-4.leafs-footer__grid--triple-main {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr);
	}

	/* 含站点数据第四栏：品牌 | 快速 | 联系 | 数据卡 */
	.leafs-footer__grid--cols-4.leafs-footer__grid--friends-strip.leafs-footer__grid--has-stats-panel:not(.leafs-footer__grid--five-wide) {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
	}

	/* 含第三栏 + 联系 + 站点数据 = 五栏 */
	.leafs-footer__grid--cols-4.leafs-footer__grid--five-wide {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	/* 品牌 | 快速 | 第三栏 | 第二组快速 | 联系（无站点数据卡） */
	.leafs-footer__grid--cols-4.leafs-footer__grid--main-five {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}

	.leafs-footer__grid--cols-3.leafs-footer__grid--friends-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1024px) and (max-width: 1279px) {
	.leafs-footer__grid--cols-4.leafs-footer__grid--five-wide {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.leafs-footer__grid--cols-4.leafs-footer__grid--five-wide .leafs-footer__col--stats-panel {
		grid-column: 1 / -1;
	}
}

.leafs-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.88rem;
}

.leafs-footer__links li {
	margin-bottom: 0;
}

.leafs-footer__contact {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.88rem;
	color: inherit;
}

.leafs-footer__contact a:hover {
	color: var(--leafs-brand);
}

.leafs-footer__contact li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 8px;
	line-height: 1.6;
}

.leafs-inner-layout {
	display: grid;
	gap: 28px;
	align-items: start;
	width: 100%;
}

@media (min-width: 1025px) {
	.leafs-inner-layout {
		grid-template-columns: minmax(0, var(--leafs-inner-main-max, 800px)) var(--leafs-inner-aside-w, 320px);
		justify-content: center;
		column-gap: 32px;
	}
}

.leafs-inner-layout__main,
.leafs-inner-layout__aside {
	min-width: 0;
}

.leafs-surface-card {
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: var(--leafs-radius);
	padding: 24px 22px 28px;
	box-shadow: var(--leafs-shadow-card);
}

.leafs-breadcrumb {
	font-size: 14px;
	color: var(--leafs-muted);
	margin: 0 0 20px;
	line-height: 1.45;
}

.leafs-breadcrumb a {
	color: var(--leafs-muted);
	text-decoration: none;
}

.leafs-breadcrumb a:hover {
	color: var(--leafs-link);
}

.leafs-breadcrumb__current {
	color: var(--leafs-text);
	font-weight: 500;
}

.leafs-breadcrumb__sep {
	margin: 0 0.25em;
	opacity: 0.65;
}

.leafs-single-head {
	margin-bottom: 8px;
	padding-bottom: 4px;
	border-bottom: 1px solid var(--leafs-border);
}

.leafs-single-head__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 16px;
}

.leafs-single-head__bar .leafs-single-meta {
	margin-bottom: 0;
	flex: 1 1 16rem;
	min-width: 0;
}

.leafs-single-head__bar .leafs-single-post__actions--head {
	margin-top: 0;
	flex: 0 0 auto;
}

.leafs-single-head__bar .leafs-single-post__actions--head .leafs-tool-cta {
	padding: 0.65rem 1.5rem;
	font-size: 1.02rem;
	font-weight: 650;
	border-radius: 999px;
	gap: 8px;
	box-shadow: var(--leafs-shadow-sm);
	transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
}

.leafs-single-head__bar .leafs-single-post__actions--head .leafs-tool-cta:hover {
	transform: translateY(-1px);
	filter: brightness(1.04);
	box-shadow: var(--leafs-shadow-card);
}

.leafs-single-head__title {
	margin: 0 0 18px;
	font-size: clamp(1.5rem, 2.8vw + 0.6rem, 2.125rem);
	line-height: 1.28;
	font-weight: 750;
	letter-spacing: -0.02em;
	color: var(--leafs-text);
	text-wrap: wrap;
	max-width: 100%;
}

.leafs-single-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
	margin-bottom: 28px;
	padding-bottom: 4px;
}

.leafs-single-meta__avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	flex-shrink: 0;
	box-shadow: 0 0 0 2px var(--leafs-surface), 0 0 0 3px var(--leafs-border);
}

.leafs-single-meta__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
	flex: 1;
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--leafs-muted);
}

.leafs-single-meta__author a {
	font-weight: 600;
	color: var(--leafs-text);
	text-decoration: none;
}

.leafs-single-meta__author a:hover {
	color: var(--leafs-link);
}

.leafs-single-meta__fav {
	flex-shrink: 0;
}

.leafs-fav-heart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--leafs-border);
	border-radius: 50%;
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	cursor: pointer;
	transition: color 0.2s ease, transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.leafs-fav-heart--guest {
	text-decoration: none;
}

.leafs-fav-heart:hover {
	color: var(--leafs-link);
	border-color: var(--leafs-link);
}

.leafs-fav-heart.is-active {
	color: #ef4444;
	border-color: rgba(239, 68, 68, 0.45);
	background: rgba(239, 68, 68, 0.08);
}

.leafs-fav-heart.is-pulse {
	animation: leafs-fav-pulse 0.45s ease;
}

@keyframes leafs-fav-pulse {
	0% {
		transform: scale(1);
	}
	40% {
		transform: scale(1.18);
	}
	100% {
		transform: scale(1);
	}
}

.leafs-fav-heart__svg {
	display: block;
}

.leafs-single-hero-thumb {
	margin: 0 0 32px;
	text-align: center;
}

.leafs-single-hero-thumb__link {
	display: inline-block;
	max-width: 100%;
}

.leafs-single-hero-thumb__img {
	width: 100%;
	height: auto;
	max-height: 500px;
	object-fit: contain;
	border-radius: 16px;
	box-shadow: var(--leafs-shadow-card);
	vertical-align: middle;
}

.leafs-author-card__row {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	margin-bottom: 14px;
}

.leafs-author-card__avatar {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	flex-shrink: 0;
}

.leafs-author-card__name {
	font-weight: 700;
	margin-bottom: 4px;
}

.leafs-author-card__bio {
	margin: 0 0 8px;
	font-size: 0.88rem;
	color: var(--leafs-muted);
	line-height: 1.45;
}

.leafs-author-card__count {
	margin: 0;
	font-size: 0.82rem;
	color: var(--leafs-muted);
}

.leafs-btn--block {
	display: block;
	width: 100%;
	text-align: center;
	box-sizing: border-box;
}

.leafs-side-toc__heading {
	margin: 0 0 10px;
	font-size: 0.95rem;
}

.leafs-side-toc__toggle {
	display: none;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	padding: 10px 12px;
	margin: 0 0 10px;
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
	background: var(--leafs-surface2);
	color: var(--leafs-text);
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
}

.leafs-side-toc__toggle::after {
	content: "▾";
	font-size: 0.75rem;
	opacity: 0.6;
}

.leafs-side-toc.is-open .leafs-side-toc__toggle::after {
	content: "▴";
}

@media (max-width: 1024px) {
	.leafs-side-toc__toggle {
		display: flex;
	}

	.leafs-side-toc__body {
		display: none;
	}

	.leafs-side-toc.is-open .leafs-side-toc__body {
		display: block;
	}
}

@media (min-width: 1025px) {
	.leafs-side-toc__toggle {
		display: none;
	}

	.leafs-side-toc__body {
		display: block !important;
	}
}

.leafs-side-toc__list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.86rem;
}

.leafs-side-toc__item {
	margin-bottom: 6px;
}

.leafs-side-toc__item--h3 {
	padding-left: 12px;
	font-size: 0.84rem;
}

.leafs-side-toc__item a {
	color: var(--leafs-muted);
	text-decoration: none;
	border-radius: 6px;
	padding: 2px 4px;
	margin: 0 -4px;
	display: inline-block;
}

.leafs-side-toc__item a:hover,
.leafs-side-toc__item a.is-active {
	color: var(--leafs-link);
	background: var(--leafs-surface2);
}

.leafs-related-list--posts .leafs-related-list__row,
.leafs-related-list--posts .leafs-related-list__item {
	margin-bottom: 0;
}

.leafs-related-list--posts .leafs-related-list__item:last-child .leafs-related-list__card {
	margin-bottom: 0;
}

.leafs-related-list__link,
.leafs-related-list__card {
	display: block;
	font-weight: 600;
	color: var(--leafs-text);
	text-decoration: none;
	margin-bottom: 2px;
}

.leafs-related-list__card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 12px 14px;
	margin-bottom: 10px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: linear-gradient(160deg, var(--leafs-surface2) 0%, var(--leafs-surface) 100%);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset;
	transition:
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease;
}

.leafs-related-list__card:hover {
	border-color: color-mix(in srgb, var(--leafs-brand) 45%, var(--leafs-border));
	color: var(--leafs-text);
	background: linear-gradient(
		160deg,
		color-mix(in srgb, var(--leafs-surface2) 82%, var(--leafs-brand)) 0%,
		var(--leafs-surface) 100%
	);
	box-shadow: var(--leafs-shadow-sm);
	transform: translateY(-1px);
}

.leafs-related-list__card:hover .leafs-related-list__card-title {
	color: var(--leafs-link);
}

.leafs-related-list__card:hover .leafs-related-list__card-date {
	color: var(--leafs-muted);
}

.leafs-related-list__card-title {
	font-size: 0.9rem;
	font-weight: 650;
	line-height: 1.4;
	color: var(--leafs-text);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}

.leafs-related-list__link:hover {
	color: var(--leafs-link);
}

.leafs-related-list__date,
.leafs-related-list__card-date {
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--leafs-muted);
}

.leafs-share-card__lead {
	margin: 0 0 12px;
	font-size: 0.85rem;
}

.leafs-share-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

/* Floating share rail (single post/tool) */
@keyframes leafs-share-rail-panel-in {
	from {
		transform: translateX(-20px);
	}
	to {
		transform: translateX(0);
	}
}

@keyframes leafs-share-rail-item-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.94);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.leafs-share-rail {
	position: fixed;
	/* Keep left rail gap symmetric with desktop main/aside column gap (32px). */
	left: max(4px, calc(50vw - 672px));
	top: calc(var(--leafs-header-h, 64px) + 30px);
	transform: none;
	z-index: 120;
	padding: 14px 10px;
	border-radius: 0 14px 14px 0;
	background: color-mix(in srgb, var(--leafs-surface2) 88%, transparent);
	border: 1px solid var(--leafs-border);
	border-left: 0;
	will-change: top;
}

@media (min-width: 769px) {
	/* 固定阴影与描边，避免无限循环动画导致边框/光晕「闪烁」 */
	.leafs-share-rail {
		box-shadow:
			0 6px 24px color-mix(in srgb, var(--leafs-text) 6%, transparent),
			0 0 0 1px color-mix(in srgb, var(--leafs-border) 92%, var(--leafs-brand));
	}
}

.leafs-share-rail__panel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	animation: leafs-share-rail-panel-in 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.leafs-share-rail__panel > * {
	animation: leafs-share-rail-item-in 0.48s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.leafs-share-rail__panel > *:nth-child(1) {
	animation-delay: 0.06s;
}

.leafs-share-rail__panel > *:nth-child(2) {
	animation-delay: 0.12s;
}

.leafs-share-rail__panel > *:nth-child(3) {
	animation-delay: 0.18s;
}

.leafs-share-rail__panel > *:nth-child(4) {
	animation-delay: 0.24s;
}

.leafs-share-rail__panel > *:nth-child(5) {
	animation-delay: 0.3s;
}

.leafs-share-rail__panel > *:nth-child(6) {
	animation-delay: 0.36s;
}

.leafs-share-rail__panel > *:nth-child(7) {
	animation-delay: 0.42s;
}

.leafs-share-rail__item {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	min-height: 44px;
	padding: 0;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-card);
	color: var(--leafs-text);
	text-decoration: none;
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: var(--leafs-shadow-sm);
	transition:
		transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.22s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		background-color 0.2s ease;
}

.leafs-share-rail__item i {
	font-size: 18px;
	line-height: 1;
	width: 18px;
	height: 18px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

.leafs-share-rail__item:hover {
	border-color: var(--leafs-brand);
	color: var(--leafs-link);
	text-decoration: none;
	transform: translateY(-3px) scale(1.06);
	box-shadow:
		0 8px 22px color-mix(in srgb, var(--leafs-brand) 20%, transparent),
		var(--leafs-shadow-sm);
}

.leafs-share-rail__item:hover i {
	transform: scale(1.12);
}

.leafs-share-rail__item:active {
	transform: translateY(-1px) scale(1.02);
}

/* 分享条收藏：与圆形操作钮统一尺寸，心形状态沿用 .leafs-fav-heart */
.leafs-share-rail__item.leafs-fav-heart {
	width: 44px;
	height: 44px;
	min-height: 44px;
}

@media (prefers-reduced-motion: reduce) {
	.leafs-share-rail {
		animation: none;
	}

	.leafs-share-rail__panel,
	.leafs-share-rail__panel > * {
		animation: none;
	}

	.leafs-share-rail__item {
		transition: border-color 0.15s ease, color 0.15s ease;
	}

	.leafs-share-rail__item:hover {
		transform: none;
	}

	.leafs-share-rail__item:hover i {
		transform: none;
	}
}

@media (max-width: 768px) {
	.leafs-share-rail {
		left: auto;
		right: 14px;
		top: auto;
		bottom: auto;
		transform: none;
		padding: 0;
		border: 0;
		background: transparent;
		animation: none;
		box-shadow: none;
	}

	.leafs-share-rail__panel {
		gap: 8px;
	}

	.leafs-share-rail__item {
		width: 32px;
		height: 32px;
		min-height: 32px;
		font-size: 0.875rem;
	}

	.leafs-share-rail__item i {
		font-size: 14px;
		width: 14px;
		height: 14px;
	}

	.leafs-share-rail__item.leafs-fav-heart {
		width: 32px;
		height: 32px;
		min-height: 32px;
	}
}

.leafs-wechat-qr-modal {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 200;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 16px;
}

.leafs-wechat-qr-modal.is-open {
	display: flex;
}

.leafs-wechat-qr-modal__card {
	width: min(92vw, 320px);
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: 14px;
	padding: 14px;
	box-shadow: var(--leafs-shadow-card-hover);
	text-align: center;
}

.leafs-wechat-qr-modal__title {
	margin: 0 0 10px;
	font-size: 0.95rem;
}

.leafs-wechat-qr-modal__img {
	display: block;
	width: 220px;
	height: 220px;
	margin: 0 auto 10px;
	border-radius: 10px;
	background: #fff;
}

.leafs-wechat-qr-modal__hint {
	margin: 0 0 12px;
	font-size: 0.82rem;
	color: var(--leafs-muted);
}

.leafs-wechat-qr-modal__actions {
	display: flex;
	gap: 8px;
	justify-content: center;
}

.leafs-share-copy-toast {
	position: fixed;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) scale(0.96);
	min-width: 240px;
	max-width: min(92vw, 520px);
	padding: 14px 18px;
	border-radius: 14px;
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 40%, var(--leafs-border));
	background:
		linear-gradient(140deg, color-mix(in srgb, var(--leafs-brand) 24%, transparent), transparent 64%),
		color-mix(in srgb, var(--leafs-surface) 94%, transparent);
	color: var(--leafs-text);
	box-shadow:
		0 22px 56px color-mix(in srgb, #000 32%, transparent),
		0 0 0 1px rgba(255, 255, 255, 0.08) inset,
		0 1px 0 rgba(255, 255, 255, 0.08) inset;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	text-align: left;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	pointer-events: none;
	opacity: 0;
	z-index: 10050;
	transition:
		opacity 0.2s ease,
		transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

.leafs-share-copy-toast.is-visible {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}

.leafs-share-copy-toast__icon {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: color-mix(in srgb, var(--leafs-brand) 22%, transparent);
	color: color-mix(in srgb, var(--leafs-brand) 72%, #fff);
	font-size: 0.86rem;
	font-weight: 800;
	line-height: 1;
}

.leafs-share-copy-toast__text {
	flex: 1 1 auto;
	min-width: 0;
}

.leafs-share-copy-toast.is-error {
	border-color: color-mix(in srgb, #ef4444 52%, var(--leafs-border));
	background:
		linear-gradient(130deg, rgba(239, 68, 68, 0.28), transparent 64%),
		color-mix(in srgb, var(--leafs-surface) 90%, transparent);
}

.leafs-share-copy-toast.is-error .leafs-share-copy-toast__icon {
	background: rgba(239, 68, 68, 0.22);
	color: #fecaca;
}

html[data-leafs-theme="light"] .leafs-share-copy-toast {
	box-shadow:
		0 16px 32px rgba(15, 23, 42, 0.18),
		0 1px 0 rgba(255, 255, 255, 0.7) inset;
}

.leafs-share-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 36px;
	padding: 0 10px;
	border-radius: 8px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	font-size: 0.72rem;
	font-weight: 700;
	text-decoration: none;
}

.leafs-share-icon:hover {
	border-color: var(--leafs-link);
	color: var(--leafs-link);
}

.leafs-single-tags {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 28px 0 8px;
	padding-top: 20px;
	border-top: 1px solid var(--leafs-border);
}

.leafs-single-tags__label {
	font-size: 0.82rem;
	color: var(--leafs-muted);
	margin-right: 4px;
}

.leafs-tag-pill {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	border-radius: 999px;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
	color: var(--leafs-text);
	font-size: 0.82rem;
	text-decoration: none;
	transition: border-color 0.15s ease, color 0.15s ease;
}

.leafs-tag-pill:hover {
	border-color: var(--leafs-brand);
	color: var(--leafs-link);
}

.leafs-single-head .leafs-single-post__actions:not(.leafs-single-post__actions--head) {
	margin-top: 16px;
}

@media (max-width: 560px) {
	.leafs-single-head__bar {
		flex-direction: column;
		align-items: stretch;
	}

	.leafs-single-head__bar .leafs-single-post__actions--head {
		display: flex;
		justify-content: flex-start;
	}

	.leafs-single-head__bar .leafs-single-post__actions--head .leafs-tool-cta {
		width: auto;
		max-width: 20rem;
		justify-content: center;
	}
}

.leafs-single-post nav.post-navigation.leafs-post-nav {
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid var(--leafs-border);
}

/* 上一篇 / 下一篇：固定左右两栏 + 封面，等高对齐 */
.leafs-post-nav__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	align-items: stretch;
}

.leafs-post-nav__cell {
	min-width: 0;
	display: flex;
}

.leafs-post-nav__card {
	display: flex;
	flex: 1 1 auto;
	flex-direction: row;
	align-items: stretch;
	gap: 14px;
	width: 100%;
	min-height: 108px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px solid var(--leafs-border);
	background: linear-gradient(145deg, var(--leafs-surface2) 0%, var(--leafs-surface) 100%);
	text-decoration: none;
	color: var(--leafs-text);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset;
	transition:
		border-color 0.18s ease,
		background 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease;
}

.leafs-post-nav__card:hover {
	border-color: color-mix(in srgb, var(--leafs-brand) 45%, var(--leafs-border));
	box-shadow: var(--leafs-shadow-sm);
	transform: translateY(-1px);
}

.leafs-post-nav__card--next {
	flex-direction: row-reverse;
	text-align: right;
}

.leafs-post-nav__thumb {
	flex: 0 0 100px;
	width: 100px;
	align-self: stretch;
	border-radius: 10px;
	overflow: hidden;
	background: var(--leafs-surface2);
	border: 1px solid color-mix(in srgb, var(--leafs-border) 80%, transparent);
}

.leafs-post-nav__thumb-img {
	width: 100%;
	height: 100%;
	min-height: 84px;
	object-fit: cover;
	display: block;
}

.leafs-post-nav__thumb-fallback {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 84px;
	background: linear-gradient(
		145deg,
		color-mix(in srgb, var(--leafs-brand) 12%, var(--leafs-surface2)),
		var(--leafs-surface2)
	);
	opacity: 0.85;
}

.leafs-post-nav__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
}

.leafs-post-nav__dir {
	font-size: 0.68rem;
	font-weight: 750;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--leafs-brand);
}

.leafs-post-nav__title {
	font-size: 0.94rem;
	font-weight: 650;
	line-height: 1.4;
	color: var(--leafs-text);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	overflow: hidden;
}

.leafs-post-nav__placeholder {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 108px;
	padding: 12px 14px;
	border-radius: 14px;
	border: 1px dashed color-mix(in srgb, var(--leafs-border) 92%, var(--leafs-muted));
	background: color-mix(in srgb, var(--leafs-surface2) 65%, transparent);
	color: var(--leafs-muted);
	text-align: center;
}

.leafs-post-nav__placeholder-text {
	font-size: 0.88rem;
	font-weight: 500;
	line-height: 1.4;
}

@media (max-width: 640px) {
	.leafs-post-nav__grid {
		grid-template-columns: 1fr;
	}

	.leafs-post-nav__card--next {
		flex-direction: row;
		text-align: left;
	}

	.leafs-post-nav__card--next .leafs-post-nav__body {
		order: 2;
	}

	.leafs-post-nav__card--next .leafs-post-nav__thumb {
		order: 1;
	}
}

html {
	scroll-behavior: smooth;
}

.leafs-single-post .leafs-entry-content [id^="leafs-toc-"],
.leafs-single-article .leafs-entry-content [id^="leafs-toc-"] {
	scroll-margin-top: calc(var(--leafs-header-h, 60px) + 16px);
}

.leafs-side-card {
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: var(--leafs-radius);
	padding: 16px;
	margin-bottom: 16px;
}

.leafs-side-card__title {
	margin: 0 0 12px;
	font-size: 0.95rem;
}

.leafs-side-card--author .leafs-author-card__row {
	display: flex;
	gap: 12px;
	align-items: center;
}

.leafs-author-card__avatar-wrap {
	flex: 0 0 60px;
}

.leafs-author-card__avatar {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: block;
}

.leafs-author-card__meta {
	flex: 1 1 auto;
	min-width: 0;
}

.leafs-author-card__name a {
	font-weight: 600;
	color: var(--leafs-text);
	text-decoration: none;
}

.leafs-author-card__name a:hover {
	color: var(--leafs-link);
}

.leafs-author-card__stat {
	margin-top: 4px;
	font-size: 0.85rem;
	color: var(--leafs-muted);
}

.leafs-side-card--stats .leafs-tool-stats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.9rem;
}

.leafs-tool-stats__label {
	color: var(--leafs-muted);
}

.leafs-tool-stats__value {
	font-weight: 600;
	margin-left: 4px;
}

.leafs-rating-summary {
	margin: 0 0 12px;
	font-size: 0.9rem;
}

.leafs-rating-summary.is-empty {
	color: #98a2b3;
	-webkit-text-fill-color: #98a2b3;
	letter-spacing: 0.08em;
}

.leafs-rating-pick {
	display: flex;
	gap: 4px;
}

.leafs-rating-star {
	background: none;
	border: 0;
	color: #c0c7d4;
	font-size: 1.4rem;
	cursor: pointer;
	padding: 0 2px;
	line-height: 1;
	transition: color 0.15s ease;
}

/* 悬停 / 键盘焦点预览：由 main.js 按星级批量点亮 */
.leafs-rating-star.is-preview-lit {
	color: #fbbf24;
}

.leafs-related-list {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.88rem;
}

.leafs-related-list li {
	margin-bottom: 8px;
}

.leafs-comments-wrap {
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--leafs-border);
	max-width: 800px;
}

.leafs-inner-layout__main > .leafs-comments-wrap--single {
	max-width: none;
	width: 100%;
}

.leafs-comments__title {
	font-size: 1.22rem;
	margin: 0 0 14px;
}

.leafs-comment-list {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}

.leafs-comment-list .children {
	list-style: none;
	margin: 14px 0 0;
	padding-left: 24px;
}

.leafs-comment-item {
	margin-bottom: 12px;
}

.leafs-comment-card {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 12px;
	padding: 14px 14px 12px;
	border-radius: 14px;
	border: 1px solid var(--leafs-border);
	background: linear-gradient(
		165deg,
		color-mix(in srgb, var(--leafs-card) 96%, var(--leafs-surface2)) 0%,
		var(--leafs-card) 48%
	);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.leafs-comment-list .children > .leafs-comment-item > .leafs-comment-card {
	background: color-mix(in srgb, var(--leafs-surface2) 90%, transparent);
}

.leafs-comment-card:hover {
	border-color: color-mix(in srgb, var(--leafs-brand) 35%, var(--leafs-border));
	box-shadow: var(--leafs-shadow-sm);
}

.leafs-comment-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
}

.leafs-comment-card__meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 6px;
}

.leafs-comment-card__author {
	font-size: 0.92rem;
}

.leafs-comment-card__time {
	font-size: 0.78rem;
	color: var(--leafs-muted);
}

.leafs-comment-card__content {
	font-size: 0.94rem;
	line-height: 1.72;
}

.leafs-comment-card__pending {
	margin: 0 0 8px;
	color: var(--leafs-warm);
	font-size: 0.84rem;
}

.leafs-comment-card__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 8px;
}

.leafs-comment-card__actions .comment-reply-link,
.leafs-comment-quote,
.leafs-comment-edit-link a {
	display: inline-flex;
	align-items: center;
	height: 32px;
	padding: 0 12px;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
	color: var(--leafs-text);
	font-size: 0.82rem;
	text-decoration: none;
}

.leafs-comment-card__actions .comment-reply-link:hover,
.leafs-comment-quote:hover,
.leafs-comment-edit-link a:hover {
	color: var(--leafs-link);
	border-color: var(--leafs-brand);
	text-decoration: none;
}

.leafs-comment-card__actions .comment-reply-link,
.leafs-comment-quote,
.leafs-comment-edit-link {
	opacity: 0;
	transition: opacity 0.2s ease;
}

.leafs-comment-card:hover .leafs-comment-card__actions .comment-reply-link,
.leafs-comment-card:hover .leafs-comment-quote,
.leafs-comment-card:hover .leafs-comment-edit-link,
.leafs-comment-card:focus-within .leafs-comment-card__actions .comment-reply-link,
.leafs-comment-card:focus-within .leafs-comment-quote,
.leafs-comment-card:focus-within .leafs-comment-edit-link {
	opacity: 1;
}

.leafs-comment-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 14px;
}

.leafs-comment-form__field {
	margin: 0;
}

.leafs-comment-form__field--full,
.leafs-comment-form .comment-form-cookies-consent,
.leafs-comment-form .form-submit,
.leafs-comment-form .comment-notes {
	grid-column: 1 / -1;
}

.leafs-comment-form__field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.84rem;
	color: var(--leafs-muted2);
}

.leafs-comments .comment-form textarea,
.leafs-comments .comment-form input[type="text"],
.leafs-comments .comment-form input[type="email"],
.leafs-comments .comment-form input[type="url"] {
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-search-bg);
	color: var(--leafs-text);
	font: inherit;
	padding: 10px 14px;
}

.leafs-comments .comment-form textarea {
	min-height: 120px;
	resize: vertical;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.leafs-comments .comment-form textarea:focus,
.leafs-comments .comment-form input:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-comments .comment-form .submit {
	border-radius: 999px;
	padding: 10px 22px;
	border: 0;
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	font-weight: 600;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: transform 0.2s ease, filter 0.2s ease;
}

.leafs-comments .comment-form .submit:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
}

.leafs-comment-submit__loading {
	display: none;
}

.leafs-comment-form.is-submitting .leafs-comment-submit__loading {
	display: inline-block;
}

.leafs-comment-form.is-submitting .leafs-comment-submit__text {
	opacity: 0.8;
}

.leafs-comment-user-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
	font-size: 0.82rem;
	margin: 0 0 10px;
}

.leafs-comment-must-login {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	padding: 12px 14px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--leafs-surface2) 90%, transparent);
	border: 1px dashed color-mix(in srgb, var(--leafs-brand) 35%, var(--leafs-border));
	font-size: 0.92rem;
}

.leafs-comment-must-login a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 34px;
	padding: 0 14px;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	font-weight: 600;
	text-decoration: none;
	box-shadow: var(--leafs-shadow-sm);
	transition: transform 0.2s ease, filter 0.2s ease;
}

.leafs-comment-must-login a:hover {
	filter: brightness(1.06);
	transform: translateY(-1px);
	text-decoration: none;
}

.leafs-comment-must-login a:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-comment-tips {
	margin: 0;
	font-size: 0.78rem;
	color: var(--leafs-muted);
}

.leafs-comment-compose__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 8px 0 10px;
}

.leafs-comment-tool {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border-radius: 10px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
	font-size: 1.15rem;
	line-height: 1;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, transform 0.12s ease;
}

.leafs-comment-tool:hover {
	border-color: color-mix(in srgb, var(--leafs-brand) 45%, var(--leafs-border));
	background: color-mix(in srgb, var(--leafs-brand) 8%, var(--leafs-surface2));
}

.leafs-comment-tool:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-comment-tool[aria-expanded="true"] {
	border-color: var(--leafs-brand);
	background: color-mix(in srgb, var(--leafs-brand) 10%, var(--leafs-surface2));
}

.leafs-comment-emoji {
	margin-bottom: 10px;
	padding: 10px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
	max-height: 220px;
	overflow: auto;
}

.leafs-comment-emoji__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(40px, 1fr));
	gap: 6px;
}

.leafs-comment-emoji__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: transparent;
	font-size: 1.35rem;
	cursor: pointer;
	line-height: 1;
	transition: background 0.12s ease;
}

.leafs-comment-emoji__btn:hover {
	background: color-mix(in srgb, var(--leafs-brand) 14%, transparent);
}

.leafs-comment-sketch {
	margin-bottom: 12px;
	padding: 12px;
	border-radius: 14px;
	border: 1px solid var(--leafs-border);
	background: color-mix(in srgb, var(--leafs-surface2) 92%, var(--leafs-card));
}

.leafs-comment-sketch__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
	flex-wrap: wrap;
}

.leafs-comment-sketch__label {
	font-size: 0.86rem;
	font-weight: 600;
	color: var(--leafs-muted2);
}

.leafs-comment-sketch__width input[type="range"] {
	width: min(160px, 100%);
	vertical-align: middle;
	accent-color: var(--leafs-brand);
}

.leafs-comment-sketch-canvas {
	display: block;
	width: 100%;
	max-width: 480px;
	height: auto;
	border-radius: 10px;
	border: 1px solid var(--leafs-border);
	background: #fff;
	cursor: crosshair;
	touch-action: none;
}

.leafs-comment-sketch__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 10px;
	align-items: center;
}

.leafs-comment-sketch-upload {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0 16px;
	border-radius: 999px;
	border: 0;
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	font-weight: 600;
	font-size: 0.86rem;
	cursor: pointer;
	transition: filter 0.15s ease, transform 0.12s ease;
}

.leafs-comment-sketch-upload:hover:not(:disabled) {
	filter: brightness(1.05);
	transform: translateY(-1px);
}

.leafs-comment-sketch-upload:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.leafs-comment-sketch__hint {
	margin: 10px 0 0;
	font-size: 0.75rem;
	color: var(--leafs-muted);
	line-height: 1.45;
}

.leafs-btn-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-card);
	color: var(--leafs-text);
	font-size: 0.84rem;
	font-weight: 500;
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease;
}

.leafs-btn-ghost:hover {
	border-color: color-mix(in srgb, var(--leafs-brand) 40%, var(--leafs-border));
	background: color-mix(in srgb, var(--leafs-brand) 6%, var(--leafs-card));
}

.leafs-btn-ghost:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-comment-sketch-preview {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-top: 10px;
	padding: 10px 12px;
	border-radius: 12px;
	border: 1px dashed color-mix(in srgb, var(--leafs-brand) 35%, var(--leafs-border));
	background: color-mix(in srgb, var(--leafs-surface2) 88%, transparent);
	flex-wrap: wrap;
}

/* display:flex 会盖掉 [hidden]，导致预览区在「隐藏」时仍占位并显示空 src 的裂图 */
.leafs-comment-sketch-preview[hidden] {
	display: none !important;
}

.leafs-comment-sketch-preview img {
	width: 160px;
	max-width: 45%;
	height: auto;
	border-radius: 8px;
	border: 1px solid var(--leafs-border);
}

.leafs-comment-card__sketch {
	margin: 12px 0 0;
	padding: 0;
	border: 0;
}

.leafs-comment-sketch-img {
	display: block;
	max-width: min(100%, 420px);
	width: 100%;
	height: auto;
	border-radius: 10px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
}

.leafs-comment-card.is-highlight {
	animation: leafsCommentFlash 2s ease;
}

@keyframes leafsCommentFlash {
	0% {
		box-shadow: 0 0 0 0 color-mix(in srgb, var(--leafs-brand) 45%, transparent);
	}
	100% {
		box-shadow: 0 0 0 12px rgba(0, 0, 0, 0);
	}
}

@media (max-width: 768px) {
	.leafs-comment-form {
		grid-template-columns: 1fr;
	}

	.leafs-comment-list .children {
		padding-left: 16px;
	}

	.leafs-comment-card {
		grid-template-columns: 32px minmax(0, 1fr);
		gap: 10px;
	}

	.leafs-comment-avatar {
		width: 32px;
		height: 32px;
	}

	.leafs-comments .comment-form .submit {
		width: 100%;
		justify-content: center;
	}
}

.leafs-toc {
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: var(--leafs-radius);
	padding: 14px 18px;
	margin-bottom: 24px;
	font-size: 0.9rem;
}

.leafs-toc__title {
	display: block;
	margin-bottom: 8px;
}

.leafs-toc__list {
	margin: 0;
	padding-left: 1.2em;
}

.leafs-form-fieldset {
	border: 1px solid var(--leafs-border);
	border-radius: 8px;
	padding: 12px 16px;
	margin-bottom: 18px;
	max-width: 520px;
}

.leafs-checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
}

.leafs-check-label {
	font-weight: normal;
	font-size: 0.9rem;
}

.leafs-notif-list {
	list-style: none;
	padding: 0;
	margin: 0 0 12px;
	font-size: 0.9rem;
}

.leafs-notif-list li {
	padding: 10px 0;
	border-bottom: 1px solid var(--leafs-border);
}

.leafs-notif-list li.is-unread {
	border-left: 3px solid var(--leafs-link);
	padding-left: 10px;
}

.leafs-notif-list__time {
	display: block;
	font-size: 0.75rem;
	color: var(--leafs-muted);
	margin-bottom: 4px;
}

.leafs-single-post .leafs-page-inner__title {
	font-size: 2rem;
	line-height: 1.25;
}

.leafs-single-post .leafs-entry-content {
	max-width: min(100%, 42rem);
	width: 100%;
	margin-inline: 0;
	font-size: 1.0625rem;
	line-height: 1.82;
	color: var(--leafs-text);
	font-feature-settings: "kern" 1, "liga" 1;
}

.leafs-single-post .leafs-entry-content > p {
	margin: 0 0 1.35em;
}

.leafs-single-post .leafs-entry-content > p:first-of-type {
	font-size: 1.07em;
	line-height: 1.78;
	color: var(--leafs-text);
}

.leafs-single-post .leafs-entry-content h3 {
	margin: 1.85rem 0 0.65rem;
	padding-left: 0;
	border-left: none;
	font-size: 1.15rem;
	font-weight: 650;
	line-height: 1.42;
	letter-spacing: -0.01em;
	color: var(--leafs-text);
	scroll-margin-top: 5rem;
}

.leafs-single-post .leafs-entry-content h4 {
	margin: 1.5rem 0 0.5rem;
	font-size: 1.05rem;
	font-weight: 650;
	line-height: 1.45;
	color: var(--leafs-muted2, var(--leafs-muted));
	scroll-margin-top: 4.5rem;
}

.leafs-single-post .leafs-entry-content ul,
.leafs-single-post .leafs-entry-content ol {
	margin: 0 0 1.35em;
	padding-inline-start: 1.35em;
}

.leafs-single-post .leafs-entry-content li {
	margin: 0.4em 0;
	padding-inline-start: 0.15em;
}

.leafs-single-post .leafs-entry-content li::marker {
	color: var(--leafs-brand);
}

.leafs-single-post .leafs-entry-content a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

.leafs-single-post .leafs-entry-content strong,
.leafs-single-post .leafs-entry-content b {
	font-weight: 650;
	color: var(--leafs-text);
}

.leafs-single-post .leafs-entry-content hr,
.leafs-single-post .leafs-entry-content .wp-block-separator {
	margin: 2rem 0;
	border: none;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--leafs-border), transparent);
	opacity: 1;
}

.leafs-single-post .leafs-entry-content .wp-block-image,
.leafs-single-post .leafs-entry-content figure.wp-block-image {
	margin: 1.75rem 0;
}

.leafs-single-post .leafs-entry-content .wp-block-image img,
.leafs-single-post .leafs-entry-content figure.wp-block-image img {
	border-radius: 12px;
	box-shadow: var(--leafs-shadow-sm);
}

.leafs-single-post .leafs-entry-content blockquote {
	margin: 1.35em 0;
	padding: 1rem 1.1rem 1rem 1.15rem;
	border-left: 4px solid var(--leafs-brand);
	background: var(--leafs-surface2);
	border-radius: 0 10px 10px 0;
	font-style: normal;
	font-size: 0.98em;
	line-height: 1.72;
	color: var(--leafs-muted);
}

.leafs-single-post .leafs-entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.2em 0;
	border-radius: 8px;
	overflow: hidden;
	border: 1px solid var(--leafs-brand);
	font-size: 0.95em;
}

.leafs-single-post .leafs-entry-content th,
.leafs-single-post .leafs-entry-content td {
	padding: 10px 12px;
	border: 1px solid var(--leafs-border);
}

.leafs-single-post .leafs-entry-content tbody tr:nth-child(even) td {
	background: var(--leafs-surface2);
}

.leafs-single-post .leafs-entry-content pre {
	font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.88em;
	background: var(--leafs-code-bg);
	color: var(--leafs-code-text);
	padding: 16px;
	border-radius: 8px;
	overflow-x: auto;
	border: 1px solid var(--leafs-border);
}

.leafs-single-post .leafs-entry-content pre code {
	background: none;
	color: inherit;
}

.leafs-single-post .leafs-entry-content .aligncenter,
.leafs-single-post .leafs-entry-content figure.aligncenter {
	margin-left: auto;
	margin-right: auto;
}

.leafs-single-post .leafs-entry-content img.aligncenter {
	box-shadow: var(--leafs-shadow-card);
	border-radius: 8px;
}

@media (max-width: 640px) {
	.leafs-single-post .leafs-entry-content {
		font-size: 1rem;
		line-height: 1.78;
		max-width: 100%;
	}

	.leafs-page .leafs-entry-content h2,
	.leafs-reading-detail .leafs-entry-content h2 {
		padding-left: 0.7rem;
		font-size: clamp(1.06rem, 0.45vw + 0.98rem, 1.22rem);
		border-left-width: 3px;
	}

	.leafs-single-post .leafs-entry-content h3 {
		font-size: 1.08rem;
	}
}

.leafs-article-header__meta {
	color: var(--leafs-muted);
	font-size: 0.9rem;
	margin-top: -8px;
}

.leafs-single-tool-wrap {
	padding-block: 36px 56px;
}

/* AI 资源详情页：主内容区背景层次（与正文区卡片分离，不显单调） */
html[data-leafs-theme="light"] .leafs-single-tool-wrap.leafs-reading-detail.leafs-main {
	background-image:
		radial-gradient(ellipse 92% 58% at 50% -4%, color-mix(in srgb, var(--leafs-brand) 11%, transparent), transparent 56%),
		radial-gradient(ellipse 48% 40% at 100% 26%, color-mix(in srgb, var(--leafs-mint) 9%, transparent), transparent 50%),
		radial-gradient(ellipse 44% 42% at 4% 68%, color-mix(in srgb, var(--leafs-warm) 6%, transparent), transparent 52%);
}

html[data-leafs-theme="dark"] .leafs-single-tool-wrap.leafs-reading-detail.leafs-main {
	background-image:
		radial-gradient(ellipse 90% 52% at 50% -6%, color-mix(in srgb, var(--leafs-brand) 20%, transparent), transparent 54%),
		radial-gradient(ellipse 46% 36% at 96% 30%, color-mix(in srgb, var(--leafs-mint) 14%, transparent), transparent 48%),
		radial-gradient(ellipse 38% 38% at 8% 75%, color-mix(in srgb, var(--leafs-warm) 8%, transparent), transparent 55%);
}

.leafs-single-tool-wrap .leafs-tool-article.leafs-surface-card {
	background: linear-gradient(
		168deg,
		var(--leafs-card) 0%,
		color-mix(in srgb, var(--leafs-surface2) 28%, var(--leafs-card)) 100%
	);
}

.leafs-single-tool-wrap .leafs-tool-single__content {
	font-size: 18px;
	line-height: 1.6;
}

.leafs-single-tool-wrap .leafs-tool-single__content > p {
	margin: 0 0 1.5em;
}

.leafs-related-tools {
	margin-top: 40px;
}

/* 整块无下划线（标题、按钮、外链 pill） */
.leafs-related-tools a,
.leafs-related-tools a:hover,
.leafs-related-tools a:focus,
.leafs-related-tools a:focus-visible {
	text-decoration: none;
}

.leafs-related-tools__title {
	margin: 0 0 16px;
	font-size: 1.12rem;
}

.leafs-related-tools__scroller {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	overflow: visible;
	padding-bottom: 0;
}

.leafs-related-tool-card {
	flex: none;
	width: 100%;
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: 14px;
	padding: 10px 10px 12px;
	display: flex;
	gap: 10px;
	box-shadow: var(--leafs-shadow-sm);
	transition: box-shadow 0.2s ease;
	min-width: 0;
	isolation: isolate;
}

.leafs-related-tool-card__logo {
	flex: 0 0 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.leafs-related-tool-card__logo:hover,
.leafs-related-tool-card__logo:focus,
.leafs-related-tool-card__logo:focus-visible {
	text-decoration: none;
}

.leafs-related-tool-card__img {
	width: 52px;
	height: 52px;
	border-radius: 10px;
	object-fit: contain;
	background: rgba(148, 163, 184, 0.08);
}

.leafs-related-tool-card__body {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
	height: 100%;
}

.leafs-related-tool-card__name {
	margin: 0;
	font-size: 0.92rem;
}

.leafs-related-tool-card__name a {
	color: var(--leafs-text);
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: flex-start;
	min-width: 0;
	max-width: 100%;
}

.leafs-related-tool-card__name-core {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	max-width: 100%;
}

.leafs-related-tool-card__name-core > :not(.leafs-related-tool-card__name-t) {
	flex: 0 0 auto;
	flex-shrink: 0;
}

.leafs-related-tool-card__name-t {
	flex: 0 1 auto;
	min-width: 0;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.leafs-related-tool-card__name-core .leafs-url-health-dot {
	margin-left: 0;
}

.leafs-related-tool-card__name a:hover,
.leafs-related-tool-card__name a:focus,
.leafs-related-tool-card__name a:focus-visible {
	color: var(--leafs-link);
	text-decoration: none;
}

.leafs-related-tool-card__desc {
	margin: 0;
	font-size: 0.78rem;
	color: var(--leafs-muted);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(1.35em * 2);
}

.leafs-related-tool-card__actions {
	margin-top: auto;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.leafs-related-tool-card__more,
.leafs-related-tool-card__go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	font-size: 0.8rem;
	padding: 6px 14px;
	border-radius: 999px;
	text-decoration: none !important;
	transition:
		color 0.16s ease,
		background 0.16s ease,
		border-color 0.16s ease,
		box-shadow 0.16s ease;
}

.leafs-related-tool-card__more {
	border: 1px solid var(--leafs-border);
	color: var(--leafs-text);
	background: var(--leafs-surface2);
}

.leafs-related-tool-card__more:hover,
.leafs-related-tool-card__more:focus-visible {
	border-color: color-mix(in srgb, var(--leafs-brand) 45%, var(--leafs-border));
	color: var(--leafs-link);
	background: color-mix(in srgb, var(--leafs-surface2) 88%, var(--leafs-brand));
	box-shadow: 0 2px 10px color-mix(in srgb, var(--leafs-text) 6%, transparent);
	text-decoration: none !important;
	outline: none;
}

.leafs-related-tool-card__more:focus-visible {
	outline: 2px solid var(--leafs-focus-ring, var(--leafs-brand));
	outline-offset: 2px;
}

/* 主按钮：渐变底上保持高对比浅色字，避免沿用旧 hover 的 link 色导致与底色冲突 */
.leafs-related-tool-card__go {
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 55%, transparent);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset;
}

.leafs-related-tool-card__go:hover {
	color: var(--leafs-on-primary);
	text-decoration: none !important;
	/* 与外链类共用 hover 时仍保持渐变底，避免与 .leafs-outbound 纯色冲突 */
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	border-color: color-mix(in srgb, var(--leafs-on-primary) 38%, var(--leafs-brand));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 5px 18px color-mix(in srgb, var(--leafs-brand) 40%, transparent);
}

.leafs-related-tool-card__go:focus-visible {
	color: var(--leafs-on-primary);
	text-decoration: none !important;
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	border-color: color-mix(in srgb, var(--leafs-on-primary) 40%, var(--leafs-brand));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.2) inset,
		0 4px 16px color-mix(in srgb, var(--leafs-brand) 36%, transparent),
		0 0 0 3px color-mix(in srgb, var(--leafs-focus-ring, var(--leafs-brand)) 55%, transparent);
	outline: none;
}

.leafs-related-tool-card__go:active {
	box-shadow:
		0 2px 6px color-mix(in srgb, var(--leafs-text) 12%, transparent) inset,
		0 1px 0 rgba(255, 255, 255, 0.08) inset;
}

/*
 * 相关资源卡片上的「直达官网」同时带 .leafs-outbound--* 健康态类；
 * 深色主题下 html[data-leafs-theme="dark"] .leafs-outbound--* 特异性会压过单独的 .leafs-related-tool-card__go，
 * 导致浅绿/浅红字叠在渐变底上。此处强制与日间同一套主色渐变按钮（健康态仅保留标题旁圆点提示）。
 */
.leafs-related-tool-card__go.leafs-outbound--fail,
.leafs-related-tool-card__go.leafs-outbound--warn,
.leafs-related-tool-card__go.leafs-outbound--proxy,
.leafs-related-tool-card__go.leafs-outbound--ok,
.leafs-related-tool-card__go.leafs-outbound--unchecked {
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 55%, transparent);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset;
}

.leafs-related-tool-card__go.leafs-outbound--fail:hover,
.leafs-related-tool-card__go.leafs-outbound--warn:hover,
.leafs-related-tool-card__go.leafs-outbound--proxy:hover,
.leafs-related-tool-card__go.leafs-outbound--ok:hover,
.leafs-related-tool-card__go.leafs-outbound--unchecked:hover {
	color: var(--leafs-on-primary);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	border-color: color-mix(in srgb, var(--leafs-on-primary) 38%, var(--leafs-brand));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 5px 18px color-mix(in srgb, var(--leafs-brand) 40%, transparent);
}

.leafs-related-tool-card__go.leafs-outbound--fail:focus-visible,
.leafs-related-tool-card__go.leafs-outbound--warn:focus-visible,
.leafs-related-tool-card__go.leafs-outbound--proxy:focus-visible,
.leafs-related-tool-card__go.leafs-outbound--ok:focus-visible,
.leafs-related-tool-card__go.leafs-outbound--unchecked:focus-visible {
	color: var(--leafs-on-primary);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	border-color: color-mix(in srgb, var(--leafs-on-primary) 40%, var(--leafs-brand));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.2) inset,
		0 4px 16px color-mix(in srgb, var(--leafs-brand) 36%, transparent),
		0 0 0 3px color-mix(in srgb, var(--leafs-focus-ring, var(--leafs-brand)) 55%, transparent);
	outline: none;
}

/* 深色：html[data-leafs-theme="dark"] .leafs-outbound--* 含 html 元素，特异性高于上一段双类名，需再覆盖一层 */
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--fail,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--warn,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--proxy,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--ok,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--unchecked {
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 55%, transparent);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset;
}

html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--fail:hover,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--warn:hover,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--proxy:hover,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--ok:hover,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--unchecked:hover {
	color: var(--leafs-on-primary);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	border-color: color-mix(in srgb, var(--leafs-on-primary) 38%, var(--leafs-brand));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.22) inset,
		0 5px 18px color-mix(in srgb, var(--leafs-brand) 40%, transparent);
}

html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--fail:focus-visible,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--warn:focus-visible,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--proxy:focus-visible,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--ok:focus-visible,
html[data-leafs-theme="dark"] .leafs-related-tool-card__go.leafs-outbound--unchecked:focus-visible {
	color: var(--leafs-on-primary);
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	border-color: color-mix(in srgb, var(--leafs-on-primary) 40%, var(--leafs-brand));
	box-shadow:
		0 1px 0 rgba(255, 255, 255, 0.2) inset,
		0 4px 16px color-mix(in srgb, var(--leafs-brand) 36%, transparent),
		0 0 0 3px color-mix(in srgb, var(--leafs-focus-ring, var(--leafs-brand)) 55%, transparent);
	outline: none;
}

/*
 * 多行工具网格（相关资源 / 导航迷你卡 / AI 排行榜等）：健康气泡默认向下会压住下一行。
 * 在这些卡片内改为向上弹出，并与 .leafs-card 一致在展开时抬高层级以免被邻卡盖住。
 */
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card):has(.leafs-outbound[data-leafs-url-tip]:hover),
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card):has(.leafs-outbound[data-leafs-url-tip]:focus-within),
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card):has(.leafs-url-health-tip:hover),
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card):has(.leafs-url-health-tip:focus-within) {
	overflow: visible;
	z-index: 8;
}

:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-url-health-tip__bubble {
	top: auto;
	bottom: calc(100% + 8px);
	transform: translateX(-50%) translateY(4px);
}

:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-url-health-tip:hover .leafs-url-health-tip__bubble,
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-url-health-tip:focus .leafs-url-health-tip__bubble,
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-url-health-tip:focus-within .leafs-url-health-tip__bubble {
	transform: translateX(-50%) translateY(0);
}

:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-outbound[data-leafs-url-tip]::after {
	top: auto;
	bottom: calc(100% + 8px);
	transform: translateX(-50%) translateY(4px);
}

:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-outbound[data-leafs-url-tip]:hover::after,
:is(.leafs-related-tool-card, .leafs-tools-nav-card, .leafs-top-ai-tools-card) .leafs-outbound[data-leafs-url-tip]:focus-visible::after {
	transform: translateX(-50%) translateY(0);
}

/* 整卡悬停仅用阴影加深，避免 transform + 子级 filter 叠加重绘导致闪烁 */
.leafs-related-tool-card:hover {
	box-shadow: var(--leafs-shadow-card-hover);
}

@media (max-width: 1024px) {
	.leafs-tool-single__hero {
		flex-direction: column;
		align-items: flex-start;
	}

	.leafs-tool-single__hero-logo {
		align-self: center;
	}

	.leafs-related-tools__scroller {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.leafs-related-tool-card {
		width: 100%;
	}
}

@media (max-width: 768px) {
	.leafs-tool-single__actions .leafs-btn {
		flex: 1 1 calc(50% - 6px);
		justify-content: center;
	}

	.leafs-tool-info-grid {
		grid-template-columns: 1fr;
	}

	.leafs-related-tools__scroller {
		grid-template-columns: 1fr;
		gap: 12px;
	}
}

/* 登录 / 注册页 */
.leafs-auth-page {
	padding-block: 32px 48px;
	display: flex;
	justify-content: center;
	align-items: flex-start;
}

.leafs-auth-card {
	width: min(440px, 100%);
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: var(--leafs-radius);
	padding: 28px 24px 24px;
	box-shadow: var(--leafs-shadow);
}

.leafs-auth-card__title {
	margin: 0 0 8px;
	font-size: 1.35rem;
}

.leafs-auth-card__lead {
	margin: 0 0 20px;
	font-size: 0.9rem;
	color: var(--leafs-muted);
	line-height: 1.5;
}

.leafs-auth-notice {
	padding: 10px 14px;
	border-radius: 8px;
	margin-bottom: 16px;
	font-size: 0.9rem;
}

.leafs-auth-notice--error {
	background: rgba(239, 68, 68, 0.12);
	border: 1px solid rgba(239, 68, 68, 0.35);
	color: #fecaca;
}

.leafs-auth-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 22px;
}

.leafs-auth-tabs__btn {
	display: inline-flex;
	align-items: center;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 0.88rem;
	font-weight: 600;
	color: var(--leafs-muted);
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
	text-decoration: none;
	transition: color 0.15s, border-color 0.15s, background 0.15s;
}

.leafs-auth-tabs__btn:hover {
	color: var(--leafs-link);
	text-decoration: none;
	border-color: var(--leafs-link);
}

.leafs-auth-tabs__btn.is-active {
	color: #0a0e14;
	background: linear-gradient(135deg, var(--leafs-link), var(--leafs-accent2));
	border-color: transparent;
}

.leafs-auth-form {
	margin: 0;
}

.leafs-auth-field {
	margin: 0 0 16px;
}

.leafs-auth-field label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--leafs-muted);
	margin-bottom: 6px;
}

.leafs-auth-field--inline label {
	font-weight: normal;
	color: var(--leafs-text);
}

.leafs-auth-field-help {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	line-height: 1.35;
	color: var(--leafs-muted);
}

.leafs-input {
	width: 100%;
	padding: 10px 14px;
	border-radius: 10px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-search-bg);
	color: var(--leafs-text);
	font: inherit;
	font-size: 0.95rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.leafs-input:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px var(--leafs-focus-ring);
}

.leafs-auth-field--otp .leafs-auth-otp-row {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: stretch;
}

.leafs-auth-field--otp .leafs-auth-otp-row .leafs-input {
	flex: 1 1 120px;
	min-width: 0;
}

.leafs-auth-field--otp .leafs-otp-send {
	flex: 0 0 auto;
	white-space: nowrap;
	font-size: 0.85rem;
	padding-inline: 12px;
}

.leafs-auth-actions {
	margin-top: 22px;
}

.leafs-auth-actions .leafs-btn {
	width: 100%;
	padding-block: 12px;
}

.leafs-auth-footer {
	margin: 20px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--leafs-border);
	font-size: 0.88rem;
	text-align: center;
}

@media (max-width: 479px) {
	.leafs-auth-card {
		padding: 22px 16px 18px;
	}

	.leafs-auth-tabs__btn {
		flex: 1 1 auto;
		justify-content: center;
		text-align: center;
	}

	.leafs-header__inner {
		gap: 10px;
	}

	.leafs-header__actions {
		width: 100%;
		justify-content: space-between;
	}

	.leafs-lang-switch {
		order: 10;
		flex-basis: 100%;
		width: 100%;
		justify-content: center;
		margin-right: 0;
		margin-top: 4px;
	}
}

/* -------------------------------------------------------------------------
   Home hero (poster + search)
   ------------------------------------------------------------------------- */
.leafs-hero {
	position: relative;
	isolation: isolate;
	min-height: var(--leafs-hero-h-mobile, 400px);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	width: 100%;
}

@media (min-width: 769px) {
	.leafs-hero {
		min-height: var(--leafs-hero-h, 500px);
	}
}

.leafs-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.leafs-hero__solid {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--leafs-hero-solid, #e8eef6);
	transition: background 0.35s ease;
}

html[data-leafs-theme="dark"] .leafs-hero__solid {
	background: var(--leafs-hero-solid-dark, #0d1117);
}

/* 海报夜间：近黑冷色阶铺底，与全页暗色协调；动效 100% 与日间同场景（仅片元底为黑） */
html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__solid {
	background: linear-gradient(180deg, #040406 0%, #000000 45%, #030305 100%);
}

/* 海报日间：与 WebGL 浅底同冷暖的亮灰，避免死白切边 */
html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__solid {
	background: linear-gradient(180deg, #fafbff 0%, #f2f5fb 100%);
}

/* 动态海报 · 日间：细密点阵纹理（PNG 黑底白点 → 反相后以 multiply 叠在浅色动效上） */
.leafs-hero__poster-dot-grid {
	display: none;
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__poster-dot-grid {
	display: block;
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	background-image: url('../images/hero-poster-dot-grid-day.png');
	background-repeat: repeat;
	background-position: 0 0;
	background-size: auto;
	opacity: 0.2;
	filter: invert(1);
	mix-blend-mode: multiply;
}

/* 动态海报 · 夜间：深底细点阵（asset：hero-poster-dot-grid-night.png，平铺满屏） */
html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__poster-dot-grid {
	display: block;
	position: absolute;
	inset: 0;
	z-index: 4;
	pointer-events: none;
	background-image: url('../images/hero-poster-dot-grid-day.png');
	background-repeat: repeat;
	background-position: 0 0;
	background-size: auto;
	opacity: 0.32;
	mix-blend-mode: soft-light;
}

/* ---------- 首页背景海报（大图 + 极淡氛围层；主动感与官网一致靠下方丝带波浪） ---------- */
.leafs-hero--bg-poster .leafs-hero__cover-wrap {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
}

.leafs-hero--bg-poster .leafs-hero__cover-img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	transform: scale(1.06);
	transform-origin: center center;
	will-change: transform;
	animation: leafs-hero-cover-kb 32s ease-in-out infinite alternate;
}

@keyframes leafs-hero-cover-kb {
	0% {
		transform: scale(1.04) translate3d(0.35%, 0, 0);
	}

	100% {
		transform: scale(1.11) translate3d(-0.35%, -0.2%, 0);
	}
}

.leafs-hero__boardmix {
	position: absolute;
	inset: 0;
	z-index: 2;
	overflow: hidden;
	pointer-events: none;
	isolation: isolate;
	transform: translateZ(0);
}

.leafs-hero__boardmix-mesh {
	position: absolute;
	inset: -8%;
	opacity: 0.09;
	background-color: transparent;
	background-image:
		linear-gradient(
			to right,
			color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 18%, rgba(255, 255, 255, 0.04)) 1px,
			transparent 1px
		),
		linear-gradient(
			to bottom,
			color-mix(in srgb, var(--leafs-hero-neural-hex, #a78bfa) 14%, rgba(255, 255, 255, 0.035)) 1px,
			transparent 1px
		),
		radial-gradient(
			ellipse 95% 72% at 50% 108%,
			color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 18%, transparent) 0%,
			transparent 62%
		);
	background-size: 56px 56px, 56px 56px, 100% 100%;
	animation:
		leafs-boardmix-mesh-pan 56s linear infinite,
		leafs-boardmix-mesh-breathe 22s ease-in-out infinite;
	mix-blend-mode: soft-light;
}

@keyframes leafs-boardmix-mesh-breathe {
	0%,
	100% {
		filter: saturate(1) brightness(1);
	}

	50% {
		filter: saturate(1.14) brightness(1.04);
	}
}

@keyframes leafs-boardmix-mesh-pan {
	0% {
		background-position: 0 0, 0 0, center bottom;
	}

	100% {
		background-position: 360px 240px, -280px 180px, center bottom;
	}
}

.leafs-hero__boardmix-orbs {
	position: absolute;
	inset: -12%;
	pointer-events: none;
}

.leafs-hero__boardmix-orb {
	position: absolute;
	display: block;
	border-radius: 50%;
	filter: blur(88px);
	opacity: 0.16;
	mix-blend-mode: soft-light;
	will-change: transform;
}

.leafs-hero__boardmix-orb--1 {
	width: min(72vw, 820px);
	height: min(72vw, 820px);
	left: -18%;
	top: -28%;
	background: radial-gradient(
		circle at 40% 42%,
		color-mix(in srgb, var(--leafs-hero-neural, #60a5fa) 72%, transparent) 0%,
		color-mix(in srgb, var(--leafs-hero-neural-hex, #34d399) 38%, transparent) 52%,
		transparent 72%
	);
	animation: leafs-boardmix-orb-a 26s ease-in-out infinite;
}

.leafs-hero__boardmix-orb--2 {
	width: min(58vw, 640px);
	height: min(58vw, 640px);
	right: -14%;
	top: 12%;
	background: radial-gradient(
		circle at 55% 48%,
		color-mix(in srgb, var(--leafs-hero-neural-hex, #a78bfa) 65%, transparent) 0%,
		color-mix(in srgb, var(--leafs-hero-neural, #38bdf8) 42%, transparent) 55%,
		transparent 75%
	);
	animation: leafs-boardmix-orb-b 32s ease-in-out infinite;
	animation-delay: -8s;
	opacity: 0.14;
}

.leafs-hero__boardmix-orb--3 {
	width: min(48vw, 520px);
	height: min(48vw, 520px);
	left: 22%;
	bottom: -36%;
	background: radial-gradient(
		circle at 50% 38%,
		color-mix(in srgb, var(--leafs-hero-neural, #818cf8) 58%, transparent) 0%,
		color-mix(in srgb, var(--leafs-hero-neural-hex, #f472b6) 35%, transparent) 58%,
		transparent 78%
	);
	animation: leafs-boardmix-orb-c 38s ease-in-out infinite;
	animation-delay: -14s;
	opacity: 0.12;
}

@keyframes leafs-boardmix-orb-a {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	45% {
		transform: translate3d(6%, 10%, 0) scale(1.08);
	}
}

@keyframes leafs-boardmix-orb-b {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1.02);
	}

	50% {
		transform: translate3d(-8%, -6%, 0) scale(1.12);
	}
}

@keyframes leafs-boardmix-orb-c {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	40% {
		transform: translate3d(5%, -8%, 0) scale(1.06);
	}

	78% {
		transform: translate3d(-4%, 6%, 0) scale(1.03);
	}
}

.leafs-hero__boardmix-shimmer {
	position: absolute;
	inset: -35% -60%;
	background: linear-gradient(
		112deg,
		transparent 36%,
		color-mix(in srgb, #ffffff 24%, transparent) 49%,
		color-mix(in srgb, var(--leafs-hero-neural, #93c5fd) 18%, transparent) 51.5%,
		transparent 63%
	);
	opacity: 0;
	animation: leafs-boardmix-shimmer-sweep 9s ease-in-out infinite;
	animation-delay: 1.2s;
	mix-blend-mode: overlay;
	pointer-events: none;
}

@keyframes leafs-boardmix-shimmer-sweep {
	0%,
	14% {
		opacity: 0;
		transform: translate3d(-18%, 0, 0);
	}

	28% {
		opacity: 0.18;
	}

	46% {
		opacity: 0.22;
		transform: translate3d(14%, 4%, 0);
	}

	62%,
	100% {
		opacity: 0;
		transform: translate3d(28%, 8%, 0);
	}
}

/* Boardmix 层：柔光雾团漂移，与网格/扫光叠加以增强层次 */
.leafs-hero__boardmix::after {
	content: "";
	position: absolute;
	inset: -25%;
	z-index: -1;
	background:
		radial-gradient(
			ellipse 65% 48% at 28% 42%,
			color-mix(in srgb, var(--leafs-hero-neural, #60a5fa) 28%, transparent) 0%,
			transparent 58%
		),
		radial-gradient(
			ellipse 55% 42% at 78% 58%,
			color-mix(in srgb, var(--leafs-hero-neural-hex, #c084fc) 22%, transparent) 0%,
			transparent 55%
		);
	opacity: 0.55;
	mix-blend-mode: soft-light;
	animation: leafs-boardmix-blob-drift 26s ease-in-out infinite;
	pointer-events: none;
}

@keyframes leafs-boardmix-blob-drift {
	0%,
	100% {
		transform: translate3d(-4%, 2%, 0) scale(1);
		opacity: 0.45;
	}

	33% {
		transform: translate3d(7%, -3%, 0) scale(1.06);
		opacity: 0.62;
	}

	66% {
		transform: translate3d(3%, 5%, 0) scale(0.97);
		opacity: 0.52;
	}
}

html[data-leafs-theme="dark"] .leafs-hero__boardmix::after {
	mix-blend-mode: screen;
	opacity: 0.75;
}

.leafs-hero--bg-poster .leafs-hero__ribbon-field {
	z-index: 3;
}

.leafs-hero--bg-poster .leafs-hero__unicorn-wrap {
	z-index: 2;
}

.leafs-hero--bg-poster .leafs-hero__particles {
	z-index: 4;
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__boardmix-mesh {
	opacity: 0.075;
}

html[data-leafs-theme="dark"] .leafs-hero__boardmix-mesh {
	opacity: 0.14;
	mix-blend-mode: lighten;
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster.leafs-hero--poster-has-cover .leafs-hero__boardmix-mesh {
	opacity: 0.12;
}

/* 夜间海报（非 WebGL）：纯黑底上拉高丝带电光与网格饱和度，不靠灰底提亮 */
html[data-leafs-theme="dark"] .leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon {
	opacity: 0.5;
	mix-blend-mode: screen;
	filter: blur(64px);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster:not(.leafs-hero--poster-webgl):not(.leafs-hero--poster-has-cover) .leafs-hero__boardmix-mesh {
	mix-blend-mode: screen;
	opacity: 0.22;
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster.leafs-hero--poster-has-cover:not(.leafs-hero--poster-webgl) .leafs-hero__boardmix-mesh {
	mix-blend-mode: screen;
	opacity: 0.17;
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__boardmix-orb {
	opacity: 0.28;
}

html[data-leafs-theme="dark"] .leafs-hero__boardmix-orb {
	mix-blend-mode: screen;
	opacity: 0.22;
}

@media (prefers-reduced-motion: reduce) {
	.leafs-hero--bg-poster .leafs-hero__cover-img {
		animation: none !important;
		transform: scale(1.05);
	}

	.leafs-hero__boardmix-mesh,
	.leafs-hero__boardmix-orb,
	.leafs-hero__boardmix-shimmer,
	.leafs-hero__boardmix::after {
		animation: none !important;
	}

	.leafs-hero__boardmix-shimmer {
		opacity: 0.18;
		transform: none;
	}

	.leafs-hero__boardmix::after {
		opacity: 0.42;
		transform: none;
	}

	.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon-field::before {
		animation: none !important;
		opacity: 0.36;
		transform: none;
	}
}

/*
 * Boardmix 官网同款 WebGL（Unicorn Studio）：昼夜同一套场景与扫光；夜间仅 JSON 内背景片元为黑。
 */
.leafs-hero__unicorn-wrap {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
	pointer-events: none;
	background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__unicorn-wrap,
html[data-leafs-theme="light"] .leafs-hero--bg-neural .leafs-hero__unicorn-wrap {
	background: linear-gradient(180deg, #fafbff 0%, #f4f7fc 100%);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__unicorn-wrap,
html[data-leafs-theme="dark"] .leafs-hero--bg-neural .leafs-hero__unicorn-wrap {
	background: #000000;
}

.leafs-hero__unicorn-host {
	position: absolute;
	inset: 0;
	z-index: 1;
	width: 100%;
	height: 100%;
}

.leafs-hero__unicorn-host canvas {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.leafs-hero--bg-neural .leafs-hero__unicorn-wrap::after,
.leafs-hero--bg-poster.leafs-hero--poster-webgl .leafs-hero__unicorn-wrap::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	pointer-events: none;
	background: linear-gradient(
		118deg,
		transparent 0%,
		rgba(255, 255, 255, 0.08) 42%,
		rgba(255, 255, 255, 0.18) 50%,
		rgba(255, 255, 255, 0.09) 58%,
		transparent 100%
	);
	background-size: 240% 100%;
	background-position: 0% 50%;
	mix-blend-mode: soft-light;
	opacity: 0.42;
	animation: leafs-unicorn-veil-sweep 12s ease-in-out infinite;
}

@keyframes leafs-unicorn-veil-sweep {
	0%,
	100% {
		background-position: 5% 50%;
		opacity: 0.38;
	}

	50% {
		background-position: 95% 50%;
		opacity: 0.48;
	}
}

@media (prefers-reduced-motion: reduce) {
	.leafs-hero__unicorn-wrap {
		opacity: 0.92;
	}

	.leafs-hero--bg-neural .leafs-hero__unicorn-wrap::after,
	.leafs-hero--bg-poster.leafs-hero--poster-webgl .leafs-hero__unicorn-wrap::after {
		animation: none !important;
		opacity: 0.28;
		background-position: 50% 50% !important;
	}
}

/*
 * Particle hero 底色：亮环境冷灰阶；暗环境与海报横幅同一套近黑阶。
 */
.leafs-hero--bg-neural .leafs-hero__solid {
	background: linear-gradient(180deg, #fbfcff 0%, #eef1f8 100%);
}

/*
 * Boardmix.cn 式主视觉：浅色底正中一带横向流动的柔焦色波（青 → 紫 → 玫粉 → 暖橙），
 * 非四角大块 blob；动画以横向漂移 + 轻微起伏为主。
 */
.leafs-hero__ribbon-field {
	position: absolute;
	inset: -14% -6%;
	z-index: 1;
	pointer-events: none;
	overflow: hidden;
}

.leafs-hero__ribbon {
	position: absolute;
	display: block;
	border-radius: 50%;
	filter: blur(76px);
	mix-blend-mode: normal;
	will-change: transform;
}

.leafs-hero__ribbon--1 {
	width: min(118vw, 1680px);
	height: min(40vh, 380px);
	left: -18%;
	top: 26%;
	background: radial-gradient(
		ellipse 74% 70% at 40% 50%,
		rgba(34, 211, 238, 0.52) 0%,
		rgba(125, 211, 252, 0.26) 44%,
		transparent 72%
	);
	opacity: 0.72;
	animation: leafs-ribbon-wave-a 38s ease-in-out infinite;
}

.leafs-hero__ribbon--2 {
	width: min(125vw, 1760px);
	height: min(38vh, 340px);
	left: -6%;
	top: 34%;
	background: radial-gradient(
		ellipse 70% 68% at 46% 48%,
		rgba(124, 58, 237, 0.42) 0%,
		rgba(167, 139, 250, 0.3) 40%,
		rgba(192, 132, 252, 0.14) 62%,
		transparent 76%
	);
	opacity: 0.62;
	animation: leafs-ribbon-wave-b 44s ease-in-out infinite;
	animation-delay: -9s;
}

.leafs-hero__ribbon--3 {
	width: min(112vw, 1580px);
	height: min(42vh, 400px);
	left: 12%;
	top: 30%;
	background: radial-gradient(
		ellipse 76% 72% at 52% 52%,
		rgba(219, 39, 119, 0.38) 0%,
		rgba(244, 114, 182, 0.26) 46%,
		rgba(249, 168, 212, 0.12) 68%,
		transparent 80%
	);
	opacity: 0.58;
	animation: leafs-ribbon-wave-c 41s ease-in-out infinite;
	animation-delay: -16s;
}

.leafs-hero__ribbon--4 {
	width: min(92vw, 1320px);
	height: min(34vh, 300px);
	right: -20%;
	top: 32%;
	background: radial-gradient(
		ellipse 68% 70% at 56% 46%,
		rgba(251, 146, 60, 0.36) 0%,
		rgba(253, 224, 71, 0.22) 48%,
		transparent 76%
	);
	opacity: 0.54;
	animation: leafs-ribbon-wave-d 35s ease-in-out infinite;
	animation-delay: -4s;
}

/* 窄幅辅色带：略快相位，补全色环青绿 / 靛色，增强流动感 */
.leafs-hero__ribbon--5 {
	width: min(95vw, 1500px);
	height: min(32vh, 300px);
	left: -8%;
	top: 40%;
	background: radial-gradient(
		ellipse 78% 68% at 44% 50%,
		rgba(16, 185, 129, 0.4) 0%,
		rgba(45, 212, 191, 0.22) 38%,
		transparent 72%
	);
	opacity: 0.44;
	animation: leafs-ribbon-wave-e 29s ease-in-out infinite;
	animation-delay: -11s;
}

.leafs-hero__ribbon--6 {
	width: min(88vw, 1280px);
	height: min(30vh, 280px);
	right: -12%;
	top: 22%;
	background: radial-gradient(
		ellipse 72% 64% at 52% 48%,
		rgba(79, 70, 229, 0.38) 0%,
		rgba(129, 140, 248, 0.22) 42%,
		transparent 74%
	);
	opacity: 0.4;
	animation: leafs-ribbon-wave-f 33s ease-in-out infinite;
	animation-delay: -19s;
}

@keyframes leafs-ribbon-wave-a {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	33% {
		transform: translate3d(7vw, -2vh, 0) scale(1.05);
	}

	66% {
		transform: translate3d(-4vw, 3vh, 0) scale(1.02);
	}
}

@keyframes leafs-ribbon-wave-b {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1.02);
	}

	40% {
		transform: translate3d(-6vw, 4vh, 0) scale(1.04);
	}

	72% {
		transform: translate3d(5vw, -3vh, 0) scale(0.99);
	}
}

@keyframes leafs-ribbon-wave-c {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	38% {
		transform: translate3d(5vw, 3vh, 0) scale(1.06);
	}

	62% {
		transform: translate3d(-7vw, -2vh, 0) scale(1.01);
	}
}

@keyframes leafs-ribbon-wave-d {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	45% {
		transform: translate3d(-5vw, 2vh, 0) scale(1.07);
	}

	78% {
		transform: translate3d(6vw, -4vh, 0) scale(0.98);
	}
}

@keyframes leafs-ribbon-wave-e {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1.01);
	}

	42% {
		transform: translate3d(8vw, -3vh, 0) scale(1.05);
	}

	71% {
		transform: translate3d(-5vw, 4vh, 0) scale(0.98);
	}
}

@keyframes leafs-ribbon-wave-f {
	0%,
	100% {
		transform: translate3d(0, 0, 0) scale(1);
	}

	38% {
		transform: translate3d(-7vw, -2vh, 0) scale(1.06);
	}

	64% {
		transform: translate3d(5vw, 5vh, 0) scale(1.02);
	}
}

/*
 * 海报 + CSS 丝带（非 WebGL）：Boardmix 场景里彩色条带垂直方向很扁，这里压低色块高度、略增强模糊，
 * 减少四条宽带叠成全屏「静态糖果渐变」的观感。
 */
.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon {
	filter: blur(92px);
}

.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon--1 {
	top: 34%;
	width: min(100vw, 1520px);
	height: min(20vh, 168px);
	opacity: 0.66;
}

.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon--2 {
	top: 37%;
	width: min(108vw, 1580px);
	height: min(18vh, 148px);
	opacity: 0.58;
}

.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon--3 {
	top: 35%;
	left: 14%;
	width: min(98vw, 1420px);
	height: min(19vh, 158px);
	opacity: 0.54;
}

.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon--4 {
	top: 36%;
	width: min(88vw, 1180px);
	height: min(16vh, 138px);
	opacity: 0.5;
}

.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon--5 {
	top: 41%;
	left: -4%;
	width: min(96vw, 1460px);
	height: min(14vh, 128px);
	opacity: 0.42;
}

.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon--6 {
	top: 28%;
	width: min(82vw, 1120px);
	height: min(13vh, 118px);
	opacity: 0.38;
}

/* 海报封面路径：丝带区域底层再加一层极淡横向氛围（pointer-events:none） */
.leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon-field::before {
	content: "";
	position: absolute;
	left: -15%;
	right: -15%;
	top: 30%;
	height: min(36vh, 320px);
	background: radial-gradient(
		ellipse 90% 65% at 50% 50%,
		color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 16%, transparent) 0%,
		color-mix(in srgb, var(--leafs-hero-neural-hex, #a855f7) 10%, transparent) 45%,
		transparent 78%
	);
	opacity: 0.35;
	filter: blur(72px);
	mix-blend-mode: soft-light;
	animation: leafs-ribbon-field-glow 42s ease-in-out infinite;
	pointer-events: none;
	z-index: 0;
}

@keyframes leafs-ribbon-field-glow {
	0%,
	100% {
		transform: translate3d(-2%, 0, 0) scale(1);
		opacity: 0.32;
	}

	50% {
		transform: translate3d(3%, -2%, 0) scale(1.04);
		opacity: 0.44;
	}
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster:not(.leafs-hero--poster-webgl) .leafs-hero__ribbon-field::before {
	mix-blend-mode: screen;
	opacity: 0.42;
}

@media (prefers-reduced-motion: reduce) {
	.leafs-hero__ribbon {
		animation: none !important;
		transform: none !important;
	}
}

@media (max-width: 768px) {
	.leafs-hero__ribbon {
		filter: blur(52px);
	}

	html[data-leafs-theme="dark"] .leafs-hero__ribbon {
		opacity: 0.28;
		filter: blur(48px);
	}

	/* 日间 + 粒子背景：窄屏浅底时 slate 字色（海报在全宽已单独配置） */
	html[data-leafs-theme="light"] .leafs-hero--bg-neural .leafs-hero__inner {
		color: rgba(15, 23, 42, 0.94);
		text-shadow:
			0 1px 0 rgba(255, 255, 255, 0.55),
			0 1px 14px rgba(255, 255, 255, 0.35);
	}

	html[data-leafs-theme="light"] .leafs-hero--bg-neural .leafs-hero__title {
		filter: drop-shadow(0 1px 14px rgba(255, 255, 255, 0.45));
	}

	html[data-leafs-theme="light"] .leafs-hero--bg-neural .leafs-hero__sub {
		color: rgba(51, 65, 85, 0.88);
	}

	html[data-leafs-theme="light"] .leafs-hero--bg-neural .leafs-hero__tag {
		border-color: color-mix(in srgb, var(--leafs-brand) 42%, rgba(15, 23, 42, 0.22));
		background: rgba(255, 255, 255, 0.78);
		color: rgba(15, 23, 42, 0.9);
		box-shadow: 0 2px 14px rgba(15, 23, 42, 0.07);
	}

	html[data-leafs-theme="light"] .leafs-hero--bg-neural .leafs-hero__tag:hover {
		background: rgba(255, 255, 255, 0.94);
		border-color: color-mix(in srgb, var(--leafs-brand) 55%, rgba(15, 23, 42, 0.28));
		box-shadow: 0 6px 22px rgba(15, 23, 42, 0.1);
	}
}

html[data-leafs-theme="dark"] .leafs-hero--bg-neural .leafs-hero__solid {
	background: linear-gradient(180deg, #050508 0%, #000000 42%, #020204 100%);
}

/* 夜间：彩带用 additive 感混合，略加强模糊 */
html[data-leafs-theme="dark"] .leafs-hero__ribbon {
	mix-blend-mode: screen;
	opacity: 0.34;
	filter: blur(72px);
}

html[data-leafs-theme="dark"] .leafs-hero__ribbon--4 {
	opacity: 0.28;
}

.leafs-hero__particles {
	position: absolute;
	inset: 0;
	z-index: 2;
	overflow: hidden;
	pointer-events: none;
}

.leafs-hero__particles-canvas {
	display: block;
	width: 100%;
	height: 100%;
	opacity: 0.88;
}

html[data-leafs-theme="dark"] .leafs-hero__particles-canvas {
	opacity: 0.82;
}

.leafs-hero-particles--reduced .leafs-hero__particles-canvas {
	opacity: 0.62;
}

@media (prefers-reduced-motion: reduce) {
	.leafs-hero__particles-canvas {
		opacity: 0.58;
	}
}


.leafs-hero__media {
	position: absolute;
	inset: 0;
	z-index: 1;
	overflow: hidden;
}

.leafs-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 2;
}

.leafs-hero__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 1;
	opacity: 0;
	transition: opacity 0.5s ease;
	pointer-events: none;
}

.leafs-hero__poster.is-visible {
	opacity: 1;
	z-index: 3;
}

.leafs-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: 4;
	background: linear-gradient(to top, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.35) 42%, rgba(0, 0, 0, 0.12) 100%);
	opacity: var(--leafs-hero-ol, 0.5);
	pointer-events: none;
}

html[data-leafs-theme="dark"] .leafs-hero__overlay {
	opacity: var(--leafs-hero-ol-dark, 0.62);
}

/* 海报仅 WebGL：日间减轻底部死黑、顶部留透，夜间略偏冷蓝以免发灰 */
html[data-leafs-theme="light"] .leafs-hero--bg-poster.leafs-hero--poster-webgl .leafs-hero__overlay {
	background: linear-gradient(
		to top,
		rgba(15, 23, 42, 0.36) 0%,
		rgba(15, 23, 42, 0.12) 44%,
		rgba(255, 255, 255, 0) 92%
	);
}

/* 夜间 WebGL：场景为黑底 JSON；遮罩仅底部加深便于读字（粒子 / 海报一致） */
html[data-leafs-theme="dark"] .leafs-hero--bg-poster.leafs-hero--poster-webgl .leafs-hero__overlay,
html[data-leafs-theme="dark"] .leafs-hero--bg-neural .leafs-hero__overlay {
	background: linear-gradient(
		to bottom,
		transparent 0%,
		transparent 52%,
		rgba(0, 0, 0, 0.45) 85%,
		rgba(0, 0, 0, 0.72) 100%
	);
}

/* 海报 + 可选封面 + 窄幅色带：叠大图时需更强压暗以保证标题对比 */
html[data-leafs-theme="light"] .leafs-hero--bg-poster.leafs-hero--poster-has-cover .leafs-hero__overlay {
	background: linear-gradient(to top, rgba(0, 0, 0, 0.58) 0%, rgba(0, 0, 0, 0.26) 48%, rgba(0, 0, 0, 0.06) 100%);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster.leafs-hero--poster-has-cover .leafs-hero__overlay {
	background: linear-gradient(to top, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.42) 50%, rgba(0, 0, 0, 0.14) 100%);
}

.leafs-hero__vignette {
	position: absolute;
	inset: 0;
	z-index: 5;
	background: radial-gradient(ellipse 90% 70% at 50% 40%, transparent 0%, rgba(0, 0, 0, 0.22) 100%);
	pointer-events: none;
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster.leafs-hero--poster-webgl .leafs-hero__vignette {
	background: radial-gradient(ellipse 92% 74% at 50% 38%, transparent 52%, rgba(15, 23, 42, 0.07) 100%);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster.leafs-hero--poster-webgl .leafs-hero__vignette {
	background: radial-gradient(ellipse 96% 88% at 50% 45%, transparent 32%, rgba(0, 0, 0, 0.72) 100%);
}

/* 粒子海报已有画布层次，关闭边角暗角，避免两侧偏灰、与中心不一致 */
.leafs-hero--bg-neural .leafs-hero__vignette {
	opacity: 0;
}

/* Hero quick panels - rewritten clean layout */
.leafs-hero-panels {
	position: relative;
	margin-top: -10px;
	margin-bottom: 18px;
	z-index: 20;
}

.leafs-hero-panels__inner {
	width: min(calc(100vw - 24px), var(--leafs-hero-panels-w, 1280px));
	margin: 0 auto;
}

.leafs-hero-panels__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	position: relative;
}

.leafs-hero-panel {
	position: relative;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: linear-gradient(180deg, var(--leafs-card), var(--leafs-surface2));
	box-shadow: 0 8px 22px rgba(2, 6, 23, 0.35);
	overflow: visible;
	transition:
		border-color 0.26s ease,
		box-shadow 0.32s ease,
		transform 0.32s cubic-bezier(0.33, 1, 0.68, 1),
		background-size 0.26s ease;
}

.leafs-hero-panel:hover {
	transform: translateY(-5px);
	box-shadow: 0 16px 34px rgba(15, 23, 42, 0.14);
	border-color: color-mix(in srgb, var(--leafs-border) 72%, var(--leafs-text));
}

html[data-leafs-theme="dark"] .leafs-hero-panel {
	border-color: var(--leafs-border);
	background-image:
		linear-gradient(180deg, var(--leafs-card), var(--leafs-surface2)),
		linear-gradient(color-mix(in srgb, var(--leafs-divider) 70%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--leafs-divider) 70%, transparent) 1px, transparent 1px);
	background-size: auto, 24px 24px, 24px 24px;
	background-position: 0 0, 0 0, 0 0;
}

html[data-leafs-theme="dark"] .leafs-hero-panel:hover {
	border-color: color-mix(in srgb, var(--leafs-border) 72%, var(--leafs-text));
	background-image:
		linear-gradient(180deg, var(--leafs-card), var(--leafs-surface2)),
		linear-gradient(color-mix(in srgb, var(--leafs-divider) 85%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--leafs-divider) 85%, transparent) 1px, transparent 1px);
	box-shadow: 0 20px 44px rgba(2, 6, 23, 0.55);
	animation: leafs-card-grid-pan 6s linear infinite;
}

@keyframes leafs-card-grid-pan {
	from {
		background-position: 0 0, 0 0, 0 0;
	}
	to {
		background-position: 0 0, 24px 24px, 24px 24px;
	}
}

.leafs-hero-panel__head {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: start;
	gap: 8px;
	padding: 10px 10px 8px;
	min-height: 58px;
}

.leafs-hero-panel__pill {
	font-size: 10px;
	line-height: 1.1;
	font-weight: 700;
	padding: 4px 8px;
	border-radius: 999px;
	color: color-mix(in srgb, var(--leafs-brand) 72%, #0f172a);
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--leafs-mint) 42%, #ecfdf5) 0%,
		color-mix(in srgb, var(--leafs-brand) 28%, #e0f2fe) 100%
	);
	border: 1px solid color-mix(in srgb, var(--leafs-mint) 44%, transparent);
	letter-spacing: 0.02em;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
	transition: transform 0.26s cubic-bezier(0.33, 1, 0.68, 1), box-shadow 0.26s ease;
}

.leafs-hero-panel:hover .leafs-hero-panel__pill {
	transform: scale(1.03);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.45) inset, 0 3px 10px color-mix(in srgb, var(--leafs-mint) 26%, transparent);
}

.leafs-hero-panel__pill--news {
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--leafs-mint) 58%, #ffffff),
		color-mix(in srgb, var(--leafs-brand) 55%, #bae6fd)
	);
	color: color-mix(in srgb, var(--leafs-brand) 78%, #082f49);
}

.leafs-hero-panel__titleline {
	display: flex;
	align-items: baseline;
	gap: 8px;
	min-width: 0;
}

.leafs-hero-panel__title {
	margin: 0;
	font-size: 16px;
	line-height: 1.2;
	font-weight: 700;
	color: #f8fafc;
}

.leafs-hero-panel__title a {
	color: inherit;
	text-decoration: none;
}

.leafs-hero-panel__date {
	margin-left: auto;
	font-size: 11px;
	color: color-mix(in srgb, var(--leafs-muted) 88%, var(--leafs-text));
	white-space: nowrap;
}

.leafs-hero-panel__desc {
	margin: 4px 0 0;
	font-size: 11px;
	line-height: 1.35;
	color: color-mix(in srgb, var(--leafs-muted) 72%, var(--leafs-text));
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.leafs-hero-panel__arrow {
	width: 20px;
	height: 20px;
	border-radius: 999px;
	border: 1px solid rgba(100, 116, 139, 0.5);
	background: linear-gradient(180deg, rgba(51, 65, 85, 0.5), rgba(30, 41, 59, 0.5));
	position: relative;
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.25);
	transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.leafs-hero-panel__arrow::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 6px;
	height: 6px;
	border-right: 1.5px solid color-mix(in srgb, var(--leafs-mint) 72%, #ffffff);
	border-bottom: 1.5px solid color-mix(in srgb, var(--leafs-mint) 72%, #ffffff);
	transform: translate(-50%, -58%) rotate(45deg);
}

.leafs-hero-panel:hover .leafs-hero-panel__arrow {
	transform: rotate(180deg);
	border-color: color-mix(in srgb, var(--leafs-mint) 52%, transparent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--leafs-mint) 22%, transparent);
}

.leafs-hero-panel__iconstrip {
	margin: 0;
	padding: 7px 10px 10px;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 8px;
	border-top: 1px solid color-mix(in srgb, var(--leafs-mint) 24%, transparent);
}

.leafs-hero-panel__iconstrip li a {
	display: grid;
	place-items: center;
	width: 100%;
	aspect-ratio: 1 / 1;
	border-radius: 8px;
	background: linear-gradient(165deg, rgba(30, 41, 59, 0.9), rgba(15, 23, 42, 0.95));
	border: 1px solid rgba(71, 85, 105, 0.58);
	overflow: hidden;
	transition:
		transform 0.28s cubic-bezier(0.33, 1, 0.68, 1),
		border-color 0.24s ease,
		box-shadow 0.28s ease;
}

.leafs-hero-panel__iconstrip li a:hover {
	transform: scale(1.06) translateY(-2px);
	border-color: color-mix(in srgb, var(--leafs-mint) 42%, transparent);
	box-shadow: 0 8px 18px rgba(2, 6, 23, 0.35);
}

.leafs-hero-panel__tool-iconimg {
	width: 76%;
	height: 76%;
	object-fit: cover;
	border-radius: 6px;
	transition: transform 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}

.leafs-hero-panel__iconstrip li a:hover .leafs-hero-panel__tool-iconimg {
	transform: scale(1.08);
}

.leafs-hero-panel__dropdown {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	opacity: 0;
	transform: translateY(10px) scale(0.985);
	transform-origin: top center;
	filter: blur(2px);
	pointer-events: none;
	transition: opacity 0.2s ease, transform 0.22s cubic-bezier(0.22, 1, 0.36, 1), filter 0.2s ease;
	z-index: 30;
	background: linear-gradient(180deg, var(--leafs-surface2), var(--leafs-surface));
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	padding: 10px;
	box-shadow: 0 16px 30px rgba(2, 6, 23, 0.52);
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown {
	opacity: 1;
	transform: translateY(0) scale(1);
	filter: blur(0);
	pointer-events: auto;
}

/* 1~3 module dropdown aligns to full row width */
.leafs-hero-panels__grid > .leafs-hero-panel:nth-child(1):not(.leafs-hero-panel--news) .leafs-hero-panel__dropdown {
	left: 0;
	width: calc(400% + 36px);
}

.leafs-hero-panels__grid > .leafs-hero-panel:nth-child(2):not(.leafs-hero-panel--news) .leafs-hero-panel__dropdown {
	left: calc(-100% - 12px);
	width: calc(400% + 36px);
}

.leafs-hero-panels__grid > .leafs-hero-panel:nth-child(3):not(.leafs-hero-panel--news) .leafs-hero-panel__dropdown {
	left: calc(-200% - 24px);
	width: calc(400% + 36px);
}

.leafs-hero-panel__list,
.leafs-hero-panel__newslist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.leafs-hero-panel__list--h {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 12px;
}

.leafs-hero-panel__dropdown .leafs-hero-panel__list--h li,
.leafs-hero-panel__dropdown .leafs-hero-panel__newslist li {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.22s ease, transform 0.26s cubic-bezier(0.22, 1, 0.36, 1);
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li,
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li {
	opacity: 1;
	transform: translateY(0);
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li:nth-child(1),
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li:nth-child(1) {
	transition-delay: 0.03s;
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li:nth-child(2),
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li:nth-child(2) {
	transition-delay: 0.05s;
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li:nth-child(3),
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li:nth-child(3) {
	transition-delay: 0.07s;
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li:nth-child(4),
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li:nth-child(4) {
	transition-delay: 0.09s;
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li:nth-child(5),
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li:nth-child(5) {
	transition-delay: 0.11s;
}

.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__list--h li:nth-child(6),
.leafs-hero-panel:hover .leafs-hero-panel__dropdown .leafs-hero-panel__newslist li:nth-child(6) {
	transition-delay: 0.13s;
}

.leafs-hero-panel__list--h li a {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	align-items: center;
	gap: 12px;
	min-height: 92px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid color-mix(in srgb, var(--leafs-mint) 22%, transparent);
	background: linear-gradient(165deg, color-mix(in srgb, var(--leafs-mint) 14%, transparent), rgba(15, 23, 42, 0.12));
	text-decoration: none;
	transition: transform 0.24s cubic-bezier(0.33, 1, 0.68, 1), border-color 0.22s ease, box-shadow 0.26s ease;
}

.leafs-hero-panel__list--h li a:hover {
	transform: translateY(-2px);
	border-color: color-mix(in srgb, var(--leafs-mint) 40%, transparent);
	box-shadow: 0 12px 20px rgba(2, 6, 23, 0.25);
}

.leafs-hero-panel__ddicon {
	width: 58px;
	height: 58px;
	border-radius: 8px;
	overflow: hidden;
	display: grid;
	place-items: center;
	background: rgba(15, 23, 42, 0.58);
	border: 1px solid rgba(100, 116, 139, 0.35);
}

.leafs-hero-panel__ddicon .leafs-hero-panel__tool-iconimg {
	width: 94%;
	height: 94%;
}

.leafs-hero-panel__ddtext {
	min-width: 0;
	display: grid;
	gap: 4px;
}

.leafs-hero-panel__ddtext strong {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	min-width: 0;
	max-width: 100%;
	font-size: 14px;
	line-height: 1.3;
	color: #f8fafc;
	font-weight: 700;
}

.leafs-hero-panel__title-cluster {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
	max-width: 100%;
}

.leafs-hero-panel__title-t {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: calc(100% - 26px);
	font-size: inherit;
	font-weight: inherit;
	color: inherit;
}

.leafs-hero-panel__ddtext strong .leafs-url-health-dot {
	flex-shrink: 0;
	margin-left: 0;
}

.leafs-hero-panel__ddtext em {
	font-size: 12px;
	line-height: 1.3;
	color: rgba(148, 163, 184, 0.96);
	font-style: normal;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.leafs-hero-panel__more-slot {
	display: flex;
	align-items: stretch;
}

.leafs-hero-panel__more--slot {
	width: 100%;
	min-height: 92px;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid color-mix(in srgb, var(--leafs-mint) 30%, transparent);
	background: linear-gradient(
		180deg,
		color-mix(in srgb, var(--leafs-mint) 22%, transparent),
		color-mix(in srgb, var(--leafs-brand) 16%, transparent)
	);
	text-decoration: none;
	color: #ccfbf1;
	box-sizing: border-box;
}

.leafs-hero-panel__more-top {
	font-size: 13px;
	line-height: 1.25;
	font-weight: 700;
	white-space: normal;
	text-align: center;
}

.leafs-hero-panel__more-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	min-width: 112px;
	padding: 0 16px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 1;
	font-weight: 700;
	background: rgba(255, 255, 255, 0.14);
	border: 1px solid rgba(255, 255, 255, 0.2);
	white-space: nowrap;
	box-sizing: border-box;
	transform: translateZ(0);
}

/* Force "more" card to stack vertically (avoid old style override). */
.leafs-hero-panel__list--h .leafs-hero-panel__more-slot > .leafs-hero-panel__more--slot {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}

.leafs-hero-panel__list--h .leafs-hero-panel__more-top {
	display: block;
}

.leafs-hero-panel__list--h .leafs-hero-panel__more-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

.leafs-hero-panel__list--h .leafs-hero-panel__more-top {
	position: relative;
	padding: 0 14px;
}

.leafs-hero-panel__list--h .leafs-hero-panel__more-top::before,
.leafs-hero-panel__list--h .leafs-hero-panel__more-top::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 18px;
	height: 1px;
	background: currentColor;
	opacity: 0.7;
}

.leafs-hero-panel__list--h .leafs-hero-panel__more-top::before {
	left: -8px;
}

.leafs-hero-panel__list--h .leafs-hero-panel__more-top::after {
	right: -8px;
}

.leafs-hero-panel__newspeek {
	margin: 0;
	padding: 8px 10px 10px;
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	border-top: 1px solid rgba(148, 163, 184, 0.32);
}

.leafs-hero-panel__newspeek li {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	gap: 8px;
	align-items: center;
	min-height: 40px;
	padding-top: 2px;
	transition: transform 0.24s cubic-bezier(0.33, 1, 0.68, 1);
}

.leafs-hero-panel__newspeek li:hover {
	transform: translateX(4px);
}

.leafs-hero-panel__newspeek a {
	font-size: 12px;
	color: #e2e8f0;
	text-decoration: none;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	white-space: normal;
	overflow: hidden;
	transition: color 0.22s ease;
}

.leafs-hero-panel__newspeek a:hover {
	color: #f8fafc;
}

.leafs-hero-panel__rank {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 38px;
	height: 28px;
	border-radius: 9px;
	font-size: 11px;
	font-weight: 700;
	color: #2dd4bf;
	background: color-mix(in srgb, var(--leafs-mint) 18%, transparent);
	border: 1px solid color-mix(in srgb, var(--leafs-mint) 28%, transparent);
	transition: transform 0.22s cubic-bezier(0.33, 1, 0.68, 1), box-shadow 0.22s ease, border-color 0.22s ease;
}

.leafs-hero-panel__newspeek li:hover .leafs-hero-panel__rank,
.leafs-hero-panel--news .leafs-hero-panel__newslist li:hover .leafs-hero-panel__rank {
	transform: scale(1.06);
	border-color: color-mix(in srgb, var(--leafs-mint) 42%, transparent);
	box-shadow: 0 5px 12px color-mix(in srgb, var(--leafs-mint) 26%, transparent);
}

.leafs-hero-panel--news .leafs-hero-panel__newslist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 16px;
	padding-top: 6px;
}

.leafs-hero-panel--news .leafs-hero-panel__newslist li {
	display: grid;
	grid-template-columns: 40px minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	min-height: 46px;
}

.leafs-hero-panel--news .leafs-hero-panel__newslist a {
	color: #dbeafe;
	font-size: 12px;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	text-decoration: none;
	transition: color 0.2s ease, transform 0.22s cubic-bezier(0.33, 1, 0.68, 1);
}

.leafs-hero-panel--news .leafs-hero-panel__newslist a:hover {
	color: #f8fafc;
	transform: translateX(3px);
}

.leafs-hero-panel--news .leafs-hero-panel__more {
	margin-top: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 12px;
	border-radius: 8px;
	border: 1px solid color-mix(in srgb, var(--leafs-mint) 32%, transparent);
	background: color-mix(in srgb, var(--leafs-mint) 20%, transparent);
	color: #99f6e4;
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
	min-width: 112px;
	box-sizing: border-box;
}

.leafs-hero-panel__more-wrap {
	margin-top: 14px;
	display: flex;
	justify-content: center;
}

/* Right panel: clearer separation and more breathing room. */
.leafs-hero-panel--news .leafs-hero-panel__dropdown {
	padding: 14px 12px 12px;
}

/* dark mode: align with theme brand tokens */
html[data-leafs-theme="dark"] .leafs-hero-panel {
	border-color: var(--leafs-border);
	background-image:
		linear-gradient(
			180deg,
			var(--leafs-card) 0%,
			var(--leafs-surface2) 100%
		),
		linear-gradient(color-mix(in srgb, var(--leafs-border) 38%, transparent) 1px, transparent 1px),
		linear-gradient(90deg, color-mix(in srgb, var(--leafs-border) 38%, transparent) 1px, transparent 1px);
	box-shadow: 0 10px 24px rgba(2, 6, 23, 0.45);
}

html[data-leafs-theme="dark"] .leafs-hero-panel:hover {
	border-color: color-mix(in srgb, var(--leafs-border) 72%, var(--leafs-text));
	box-shadow: 0 20px 40px rgba(2, 6, 23, 0.58);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__pill {
	/* 浅色渐变胶囊上用深色字，避免与 var(--leafs-text)（浅色）混出「浅底浅字」 */
	color: color-mix(in srgb, var(--leafs-brand) 46%, #030712);
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--leafs-mint) 52%, #ffffff),
		color-mix(in srgb, var(--leafs-mint) 28%, #ffffff)
	);
	border-color: color-mix(in srgb, var(--leafs-mint) 30%, var(--leafs-border));
	box-shadow: 0 1px 0 rgba(15, 23, 42, 0.14) inset;
}

html[data-leafs-theme="dark"] .leafs-hero-panel:hover .leafs-hero-panel__pill {
	box-shadow:
		0 1px 0 rgba(15, 23, 42, 0.16) inset,
		0 3px 10px color-mix(in srgb, var(--leafs-mint) 22%, transparent);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__pill--news {
	background: linear-gradient(
		135deg,
		color-mix(in srgb, var(--leafs-brand) 52%, #ffffff),
		color-mix(in srgb, var(--leafs-brand) 30%, #ffffff)
	);
	color: color-mix(in srgb, var(--leafs-brand) 40%, #030712);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__iconstrip {
	border-top-color: var(--leafs-divider);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__iconstrip li a,
html[data-leafs-theme="dark"] .leafs-hero-panel__list--h li a {
	border-color: var(--leafs-border);
	background: linear-gradient(
		165deg,
		var(--leafs-surface2),
		var(--leafs-surface)
	);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__iconstrip li a:hover,
html[data-leafs-theme="dark"] .leafs-hero-panel__list--h li a:hover {
	border-color: color-mix(in srgb, var(--leafs-border) 72%, var(--leafs-text));
	box-shadow: 0 12px 24px rgba(2, 6, 23, 0.52);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__dropdown {
	background: linear-gradient(
		180deg,
		var(--leafs-surface2) 0%,
		var(--leafs-surface) 100%
	);
	border-color: var(--leafs-border);
	box-shadow: 0 16px 32px rgba(2, 6, 23, 0.62);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__rank {
	color: var(--leafs-text);
	background: var(--leafs-surface);
	border-color: var(--leafs-border);
}

html[data-leafs-theme="dark"] .leafs-hero-panel__date {
	color: color-mix(in srgb, var(--leafs-muted) 28%, var(--leafs-text));
}

html[data-leafs-theme="dark"] .leafs-hero-panel__desc {
	color: color-mix(in srgb, var(--leafs-muted) 38%, var(--leafs-text));
}

html[data-leafs-theme="dark"] .leafs-hero-panel__newspeek a {
	color: color-mix(in srgb, var(--leafs-muted) 22%, var(--leafs-text));
}

html[data-leafs-theme="dark"] .leafs-hero-panel__newspeek a:hover {
	color: var(--leafs-text);
}

html[data-leafs-theme="dark"] .leafs-hero-panel--news .leafs-hero-panel__newslist a {
	color: color-mix(in srgb, var(--leafs-muted) 18%, var(--leafs-text));
}

html[data-leafs-theme="dark"] .leafs-hero-panel--news .leafs-hero-panel__newslist a:hover {
	color: var(--leafs-text);
}

/* day mode */
html:not([data-leafs-theme="dark"]) .leafs-hero-panel {
	background: linear-gradient(180deg, #ffffff, #f8fafc);
	border-color: rgba(203, 213, 225, 0.95);
	box-shadow: 0 8px 20px rgba(15, 23, 42, 0.1);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__title,
html:not([data-leafs-theme="dark"]) .leafs-hero-panel__newspeek a,
html:not([data-leafs-theme="dark"]) .leafs-hero-panel--news .leafs-hero-panel__newslist a {
	color: #0f172a;
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__desc,
html:not([data-leafs-theme="dark"]) .leafs-hero-panel__date,
html:not([data-leafs-theme="dark"]) .leafs-hero-panel__ddtext em {
	color: rgba(71, 85, 105, 0.86);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__newspeek {
	border-top-color: rgba(203, 213, 225, 0.95);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__newspeek a:hover {
	color: var(--leafs-link);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel--news .leafs-hero-panel__newslist a:hover {
	color: var(--leafs-link);
}


html:not([data-leafs-theme="dark"]) .leafs-hero-panel__iconstrip {
	border-top-color: rgba(226, 232, 240, 0.96);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__iconstrip li a,
html:not([data-leafs-theme="dark"]) .leafs-hero-panel__list--h li a {
	background: linear-gradient(160deg, #f8fafc, #f1f5f9);
	border-color: rgba(203, 213, 225, 0.92);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__iconstrip li a:hover {
	border-color: color-mix(in srgb, var(--leafs-mint) 48%, transparent);
	box-shadow: 0 8px 20px rgba(15, 23, 42, 0.1);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel:hover {
	box-shadow: 0 18px 36px rgba(15, 23, 42, 0.12);
	border-color: color-mix(in srgb, var(--leafs-mint) 40%, transparent);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__ddtext strong {
	color: #0f172a;
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__dropdown {
	background: linear-gradient(180deg, #ffffff, #f8fafc);
	border-color: rgba(203, 213, 225, 0.95);
	box-shadow: 0 14px 24px rgba(15, 23, 42, 0.12);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__rank {
	background: #f1f5f9;
	border-color: rgba(203, 213, 225, 0.95);
	color: #334155;
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__more--slot,
html:not([data-leafs-theme="dark"]) .leafs-hero-panel--news .leafs-hero-panel__more {
	background: linear-gradient(180deg, #f1f5f9, #e2e8f0);
	border-color: rgba(203, 213, 225, 0.95);
	color: #334155;
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__more-btn {
	background: rgba(148, 163, 184, 0.16);
	border-color: rgba(148, 163, 184, 0.28);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__arrow {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.95), rgba(241, 245, 249, 0.95));
	border-color: rgba(148, 163, 184, 0.42);
}

html:not([data-leafs-theme="dark"]) .leafs-hero-panel__arrow::before {
	border-right-color: rgba(30, 41, 59, 0.82);
	border-bottom-color: rgba(30, 41, 59, 0.82);
}

@media (max-width: 1100px) {
	.leafs-hero-panels__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.leafs-hero-panels__grid > .leafs-hero-panel:nth-child(1):not(.leafs-hero-panel--news) .leafs-hero-panel__dropdown,
	.leafs-hero-panels__grid > .leafs-hero-panel:nth-child(2):not(.leafs-hero-panel--news) .leafs-hero-panel__dropdown,
	.leafs-hero-panels__grid > .leafs-hero-panel:nth-child(3):not(.leafs-hero-panel--news) .leafs-hero-panel__dropdown {
		width: auto;
		left: 0;
	}
}

@media (max-width: 768px) {
	.leafs-hero-panels {
		display: none !important;
	}
}

@media (max-width: 640px) {
	.leafs-hero-panels {
		margin-top: 8px;
	}
	.leafs-hero-panels__inner {
		width: min(calc(100vw - 16px), var(--leafs-hero-panels-w, 1280px));
	}
	.leafs-hero-panels__grid {
		grid-template-columns: 1fr;
	}
	.leafs-hero-panel__dropdown {
		position: static;
		opacity: 1;
		transform: none;
		filter: none;
		pointer-events: auto;
		margin: 0 10px 10px;
	}
	.leafs-hero-panel__dropdown .leafs-hero-panel__list--h li,
	.leafs-hero-panel__dropdown .leafs-hero-panel__newslist li {
		opacity: 1;
		transform: none;
	}
	.leafs-hero-panel__list--h {
		grid-template-columns: 1fr;
	}
	.leafs-hero-panel__newspeek,
	.leafs-hero-panel--news .leafs-hero-panel__newslist {
		grid-template-columns: 1fr;
	}
}

.leafs-hero__inner {
	position: relative;
	z-index: 6;
	width: 100%;
	max-width: 920px;
	margin-inline: auto;
	padding: 40px 16px 48px;
	text-align: center;
	color: var(--leafs-hero-fg, #fff);
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.28);
}

html[data-leafs-theme="dark"] .leafs-hero__inner {
	color: var(--leafs-hero-fg-dark, #f5f7fa);
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45);
}

.leafs-hero__title {
	margin: 0 0 16px;
	font-size: clamp(1.5rem, 4vw, 2.45rem);
	font-weight: 800;
	letter-spacing: -0.045em;
	line-height: 1.15;
	text-wrap: balance;
	filter: drop-shadow(0 2px 28px rgba(0, 0, 0, 0.28));
}

.leafs-hero__title a {
	color: inherit;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.leafs-hero__title a:hover {
	opacity: 0.9;
}

.leafs-hero__sub {
	margin: 0 auto 28px;
	max-width: 560px;
	font-size: clamp(0.98rem, 2.1vw, 1.14rem);
	line-height: 1.6;
	font-weight: 500;
	color: var(--leafs-hero-muted, rgba(255, 255, 255, 0.88));
	text-wrap: balance;
}

html[data-leafs-theme="dark"] .leafs-hero__sub {
	color: var(--leafs-hero-muted-dark, rgba(245, 247, 250, 0.82));
}

/* 首页背景海报 · 日间： slate 标题 / 钢青副文 / 高通透搜索条（与纯白或封面遮罩统一） */
html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__inner {
	color: rgba(15, 23, 42, 0.94);
	text-shadow:
		0 1px 0 rgba(255, 255, 255, 0.88),
		0 1px 22px rgba(255, 255, 255, 0.55);
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__title {
	color: rgba(15, 23, 42, 0.96);
	filter: drop-shadow(0 1px 18px rgba(255, 255, 255, 0.5));
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__sub {
	color: rgba(51, 65, 85, 0.9);
	text-shadow: none;
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__tag {
	border-color: color-mix(in srgb, var(--leafs-brand) 38%, rgba(15, 23, 42, 0.18));
	background: rgba(255, 255, 255, 0.88);
	color: rgba(30, 41, 59, 0.92);
	box-shadow:
		0 2px 12px rgba(15, 23, 42, 0.06),
		inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero__tag:hover {
	background: rgba(255, 255, 255, 0.97);
	border-color: color-mix(in srgb, var(--leafs-brand) 50%, rgba(15, 23, 42, 0.22));
	box-shadow: 0 6px 20px rgba(15, 23, 42, 0.09);
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster .leafs-hero-search__wrap {
	background: linear-gradient(
		148deg,
		rgba(255, 255, 255, 0.94) 0%,
		rgba(248, 250, 252, 0.9) 100%
	);
	border-color: color-mix(in srgb, var(--leafs-brand) 32%, rgba(15, 23, 42, 0.14));
	box-shadow:
		0 4px 6px -1px rgba(15, 23, 42, 0.05),
		0 20px 46px -14px rgba(15, 23, 42, 0.11),
		inset 0 1px 0 rgba(255, 255, 255, 0.98);
}

html[data-leafs-theme="light"] .leafs-hero--bg-poster.leafs-hero--search-hot .leafs-hero-search__wrap {
	border-color: color-mix(in srgb, var(--leafs-brand) 44%, rgba(15, 23, 42, 0.12));
	box-shadow:
		0 0 32px color-mix(in srgb, var(--leafs-brand) 22%, transparent),
		0 14px 36px rgba(15, 23, 42, 0.08),
		inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

/* 首页背景海报 · 夜间：纯黑底 + 彩带动效上的高对比标题层次 */
html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__inner {
	color: rgba(250, 250, 252, 0.98);
	text-shadow:
		0 2px 12px rgba(0, 0, 0, 0.92),
		0 1px 2px rgba(0, 0, 0, 0.85),
		0 0 42px rgba(99, 102, 241, 0.14);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__title {
	color: #fafafa;
	font-weight: 800;
	letter-spacing: -0.042em;
	line-height: 1.12;
	filter:
		drop-shadow(0 3px 20px rgba(0, 0, 0, 0.82))
		drop-shadow(0 0 36px rgba(129, 140, 248, 0.14));
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__sub {
	color: rgba(203, 213, 225, 0.94);
	font-weight: 500;
	letter-spacing: 0.015em;
	line-height: 1.65;
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__tag {
	border-color: rgba(148, 163, 184, 0.28);
	background: rgba(8, 12, 22, 0.45);
	color: rgba(226, 232, 242, 0.92);
	box-shadow:
		0 2px 14px rgba(0, 0, 0, 0.35),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero__tag:hover {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(186, 198, 218, 0.38);
	color: rgba(241, 245, 249, 0.96);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster .leafs-hero-search__wrap {
	background: linear-gradient(
		155deg,
		rgba(22, 26, 36, 0.88) 0%,
		rgba(10, 13, 20, 0.82) 100%
	);
	border-color: rgba(148, 163, 184, 0.22);
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.45),
		0 22px 48px -12px rgba(0, 0, 0, 0.58),
		inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

html[data-leafs-theme="dark"] .leafs-hero--bg-poster.leafs-hero--search-hot .leafs-hero-search__wrap {
	border-color: color-mix(in srgb, var(--leafs-brand) 48%, rgba(255, 255, 255, 0.12));
	box-shadow:
		0 0 44px rgba(99, 102, 241, 0.22),
		0 14px 42px rgba(0, 0, 0, 0.52),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.leafs-hero-search {
	position: relative;
	z-index: 2;
	max-width: 640px;
	margin: 0 auto;
	width: 92%;
}

.leafs-hero-search__wrap {
	display: flex;
	align-items: center;
	gap: 0;
	min-height: 54px;
	padding: 5px;
	box-sizing: border-box;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, rgba(255, 255, 255, 0.55) 75%, var(--leafs-brand));
	background: linear-gradient(
		145deg,
		rgba(255, 255, 255, 0.78) 0%,
		rgba(255, 255, 255, 0.62) 100%
	);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	box-shadow:
		0 4px 6px -1px rgba(15, 23, 42, 0.06),
		0 18px 42px -12px rgba(15, 23, 42, 0.14),
		inset 0 1px 0 rgba(255, 255, 255, 0.75);
	transition:
		border-color 0.22s ease,
		box-shadow 0.22s ease,
		transform 0.22s ease;
	overflow: visible;
}

html[data-leafs-theme="dark"] .leafs-hero-search__wrap {
	background: linear-gradient(
		155deg,
		rgba(30, 33, 40, 0.82) 0%,
		rgba(18, 21, 26, 0.74) 100%
	);
	border-color: rgba(255, 255, 255, 0.14);
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.35),
		0 20px 44px -14px rgba(0, 0, 0, 0.55),
		inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.leafs-hero-search:focus-within .leafs-hero-search__wrap {
	border-color: color-mix(in srgb, var(--leafs-brand) 55%, rgba(255, 255, 255, 0.45));
	box-shadow:
		0 0 0 3px var(--leafs-focus-ring),
		0 12px 44px rgba(0, 0, 0, 0.18),
		inset 0 1px 0 rgba(255, 255, 255, 0.65);
	transform: translateY(-1px);
}

.leafs-hero--search-hot .leafs-hero-search__wrap {
	border-color: color-mix(in srgb, var(--leafs-brand) 38%, rgba(255, 255, 255, 0.5));
	box-shadow:
		0 0 36px color-mix(in srgb, var(--leafs-brand) 26%, transparent),
		0 14px 40px rgba(0, 0, 0, 0.12),
		inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

html[data-leafs-theme="dark"] .leafs-hero--search-hot .leafs-hero-search__wrap {
	border-color: color-mix(in srgb, var(--leafs-brand) 42%, rgba(255, 255, 255, 0.12));
	box-shadow:
		0 0 40px rgba(99, 102, 241, 0.22),
		0 14px 42px rgba(0, 0, 0, 0.48),
		inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.leafs-hero-search__icon {
	flex: 0 0 44px;
	width: 44px;
	min-width: 44px;
	height: 44px;
	align-self: center;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	position: relative;
}

.leafs-hero-search__icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 20px;
	height: 20px;
	transform: translate(-50%, -50%);
	background: var(--leafs-muted);
	opacity: 0.65;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-4.35-4.35M11 18a7 7 0 100-14 7 7 0 000 14z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='black'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21l-4.35-4.35M11 18a7 7 0 100-14 7 7 0 000 14z'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
}

.leafs-hero-search__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 44px;
	border: 0;
	background: transparent;
	padding: 0 8px 0 0;
	font-size: 1rem;
	line-height: 1.35;
	color: var(--leafs-text);
	outline: none;
	appearance: none;
	-webkit-appearance: none;
	box-shadow: none;
}

.leafs-hero-search__input::-webkit-search-decoration,
.leafs-hero-search__input::-webkit-search-cancel-button {
	-webkit-appearance: none;
	appearance: none;
}

/* 搜索范围：紧邻「搜索」按钮，点击展开列表 */
.leafs-hero-search__scope {
	position: relative;
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	align-self: center;
	min-height: 44px;
	border-left: 1px solid color-mix(in srgb, var(--leafs-muted) 38%, transparent);
	z-index: 2;
}

.leafs-hero-search__scope-trigger {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.28em;
	margin: 0;
	padding: 0 12px 0 12px;
	min-height: 44px;
	min-width: 5.5rem;
	border: 0;
	background: transparent;
	color: var(--leafs-text);
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease;
	border-radius: 999px;
	max-width: min(10.5rem, 36vw);
}

.leafs-hero-search__scope-label {
	min-width: 0;
	flex: 1 1 auto;
	text-align: right;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.leafs-hero-search__scope-chevron {
	flex-shrink: 0;
	display: block;
	box-sizing: border-box;
	width: 0.52em;
	height: 0.52em;
	margin: 0 0 0 0.02em;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: rotate(45deg) translate(-0.02em, -0.05em);
	opacity: 0.62;
}

.leafs-hero-search__scope-trigger:hover {
	background: color-mix(in srgb, var(--leafs-brand) 10%, transparent);
	color: var(--leafs-brand);
}

.leafs-hero-search__scope-trigger[aria-expanded="true"] {
	background: color-mix(in srgb, var(--leafs-brand) 12%, transparent);
}

.leafs-hero-search__scope-trigger[aria-expanded="true"] .leafs-hero-search__scope-chevron {
	transform: rotate(225deg) translate(0.02em, -0.05em);
	opacity: 0.82;
}

.leafs-hero-search__scope-panel {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	left: auto;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: max(100%, 13rem);
	padding: 10px;
	border-radius: 16px;
	background: var(--leafs-card);
	border: 1px solid color-mix(in srgb, var(--leafs-border) 88%, var(--leafs-brand));
	box-shadow:
		0 4px 6px -1px color-mix(in srgb, #0f172a 8%, transparent),
		0 20px 36px -10px color-mix(in srgb, #0f172a 22%, transparent);
	z-index: 40;
	text-align: left;
}

.leafs-hero-search__scope-panel[hidden] {
	display: none !important;
}

.leafs-hero-search__scope-option {
	display: grid;
	grid-template-columns: 1.125rem 1fr;
	align-items: center;
	column-gap: 12px;
	width: 100%;
	margin: 0;
	padding: 10px 12px 10px 12px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--leafs-text);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.015em;
	text-align: left;
	cursor: pointer;
	transition: background 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
	box-sizing: border-box;
}

/* 左侧圆点：与文案栅格对齐，模拟单选列表 */
.leafs-hero-search__scope-option::before {
	content: "";
	grid-column: 1;
	width: 9px;
	height: 9px;
	border-radius: 999px;
	border: 2px solid color-mix(in srgb, var(--leafs-muted) 75%, var(--leafs-border));
	background: transparent;
	justify-self: center;
	transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}

.leafs-hero-search__scope-option:hover {
	background: color-mix(in srgb, var(--leafs-surface2) 88%, var(--leafs-card));
	color: var(--leafs-brand);
}

.leafs-hero-search__scope-option:hover::before {
	border-color: color-mix(in srgb, var(--leafs-brand) 55%, var(--leafs-border));
}

.leafs-hero-search__scope-option.is-active {
	background: color-mix(in srgb, var(--leafs-brand) 11%, var(--leafs-card));
	color: var(--leafs-brand);
	font-weight: 700;
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--leafs-brand) 22%, transparent);
}

.leafs-hero-search__scope-option.is-active::before {
	border-color: var(--leafs-brand);
	background: var(--leafs-brand);
	box-shadow: inset 0 0 0 2px var(--leafs-card);
}

.leafs-hero-search__scope-option-text {
	grid-column: 2;
	min-width: 0;
}

.leafs-hero-search__submit {
	flex: 0 0 auto;
	margin: 0;
	padding: 0 20px;
	min-height: 44px;
	height: 44px;
	align-self: center;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: var(--leafs-on-primary);
	font-weight: 600;
	font-size: 0.92rem;
	line-height: 1;
	cursor: pointer;
	transition: filter 0.2s ease;
	box-shadow: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

.leafs-hero-search__submit:hover {
	filter: brightness(1.06);
}

@media (max-width: 640px) {
	.leafs-hero-search {
		width: 100%;
	}

	.leafs-hero-search__wrap {
		min-height: 50px;
		padding: 3px;
	}

	.leafs-hero-search__icon {
		flex: 0 0 42px;
		width: 42px;
		min-width: 42px;
		height: 42px;
	}

	.leafs-hero-search__input {
		min-height: 42px;
		font-size: 1rem; /* ≥16px，避免 iOS 聚焦放大整页 */
	}

	.leafs-hero-search__scope {
		min-height: 42px;
	}

	.leafs-hero-search__scope-trigger {
		min-height: 42px;
		min-width: 4.25rem;
		max-width: 30vw;
		padding: 0 8px 0 10px;
	}

	.leafs-hero-search__submit {
		min-height: 42px;
		height: 42px;
		padding: 0 14px;
		font-size: 0.875rem;
	}
}

/* 展开搜索范围菜单时避免下拉被 .leafs-hero overflow:hidden 裁切（JS 同步 .leafs-hero--scope-open 兼容无 :has 的浏览器） */
.leafs-hero.leafs-hero--scope-open,
.leafs-hero:has([data-hero-scope-trigger][aria-expanded="true"]) {
	overflow: visible;
}

html[data-leafs-theme="dark"] .leafs-hero-search__scope {
	border-left-color: rgba(255, 255, 255, 0.12);
}

html[data-leafs-theme="dark"] .leafs-hero-search__scope-panel {
	border-color: var(--leafs-border);
	box-shadow:
		0 4px 6px -1px rgba(0, 0, 0, 0.35),
		0 18px 36px -10px rgba(0, 0, 0, 0.45);
}

.leafs-hero-suggest {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 8px);
	z-index: 38;
	text-align: left;
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	box-shadow: var(--leafs-shadow-card-hover);
	max-height: 280px;
	overflow: auto;
}

.leafs-hero-suggest__list {
	list-style: none;
	margin: 0;
	padding: 8px 0;
}

.leafs-hero-suggest__list a {
	display: block;
	padding: 10px 16px;
	color: var(--leafs-text);
	font-size: 0.9rem;
	text-decoration: none;
	transition: background 0.15s ease;
}

.leafs-hero-suggest__list a:hover {
	background: var(--leafs-surface2);
	color: var(--leafs-link);
}

.leafs-hero__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
	justify-content: center;
	margin-top: 26px;
	max-width: 680px;
	margin-inline: auto;
}

.leafs-hero__tag {
	border: 1px solid color-mix(in srgb, rgba(255, 255, 255, 0.5) 70%, var(--leafs-brand));
	background: rgba(255, 255, 255, 0.12);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: inherit;
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	padding: 9px 16px;
	border-radius: 999px;
	cursor: pointer;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	transition:
		background 0.2s ease,
		border-color 0.2s ease,
		transform 0.18s ease,
		box-shadow 0.2s ease;
}

.leafs-hero__tag:hover {
	background: rgba(255, 255, 255, 0.26);
	border-color: rgba(255, 255, 255, 0.85);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.leafs-hero__tag:active {
	transform: translateY(0);
}

html[data-leafs-theme="dark"] .leafs-hero__tag {
	border-color: rgba(255, 255, 255, 0.22);
	background: rgba(0, 0, 0, 0.28);
	box-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}

html[data-leafs-theme="dark"] .leafs-hero__tag:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.38);
}

body.leafs-has-hero .leafs-main.leafs-container {
	padding-top: 20px;
}

/* -------------------------------------------------------------------------
   Auth modal + user center (CSS variables follow global theme)
   ------------------------------------------------------------------------- */

.leafs-auth-modal {
	position: fixed;
	inset: 0;
	z-index: 100050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 16px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.22s ease;
}

.leafs-auth-modal[hidden] {
	display: none !important;
}

.leafs-auth-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}

.leafs-auth-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
	cursor: pointer;
}

.leafs-auth-modal__dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 768px;
	max-height: none;
	overflow: hidden;
	margin: auto;
	padding: 0;
	border-radius: 10px;
	background: #fff;
	color: var(--leafs-text);
	border: 0;
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
	transform: scale(0.95);
	transition: transform 0.22s ease, opacity 0.22s ease;
}

.leafs-auth-modal__dialog .leafs-auth-views {
	flex: 1 1 auto;
	min-height: 0;
}

.leafs-auth-modal.is-open .leafs-auth-modal__dialog {
	transform: scale(1);
}

.leafs-auth-modal__x {
	position: absolute;
	top: 12px;
	right: 16px;
	width: 40px;
	height: 40px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #333;
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
	z-index: 30;
}

/* Ensure split areas fill the dialog height */
.leafs-auth-views {
	height: 100%;
}

.leafs-auth-modal__dialog > .leafs-auth-views,
.leafs-auth-modal__dialog > #leafs-auth-view-main,
.leafs-auth-modal__dialog > #leafs-auth-view-lost {
	height: 100%;
}

.leafs-auth-modal__x:hover {
	background: var(--leafs-border);
}

.leafs-auth-toast {
	margin: 0;
	padding: 10px 14px;
	border-radius: 0;
	background: rgba(0, 0, 0, 0.04);
	font-size: 0.9rem;
	border: 0;
}

.leafs-auth-toast.is-error {
	border-color: #f87171;
	background: rgba(248, 113, 113, 0.12);
	color: var(--leafs-text);
}

.leafs-auth-tabs {
	display: flex;
	gap: 0;
	margin-bottom: 18px;
	border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.leafs-auth-tabs__btn {
	flex: 1;
	padding: 12px 8px;
	border: 0;
	background: transparent;
	color: var(--leafs-muted);
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.leafs-auth-tabs__btn.is-active {
	color: var(--leafs-brand);
	border-bottom-color: var(--leafs-brand);
}

/* Split layout (copied/adapted from b2child/bizhi.css slider style) */
.leafs-auth-split {
	position: relative;
	overflow: hidden;
	min-height: 760px;
}

.leafs-auth-split__form {
	position: absolute;
	top: 0;
	left: 0;
	width: 50%;
	height: 100%;
	min-height: 760px;
	padding: 28px 40px;
	box-sizing: border-box;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	transition: transform 0.6s ease-in-out;
	overflow: hidden;
}

.leafs-auth-split.leafs-auth-split--has-social {
	min-height: 840px;
}

.leafs-auth-split.leafs-auth-split--has-social .leafs-auth-split__form {
	min-height: 840px;
}

.leafs-auth-brand {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 12px;
	width: 100%;
	text-align: center;
}

.leafs-auth-brand__logo .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.leafs-auth-brand__logo img,
.leafs-auth-brand__logo .leafs-auth-brand__img {
	max-height: 28px;
	width: auto;
}

/* 与页头一致：双 Logo 时夜间显示页脚款 */
.leafs-auth-brand--theme-logos .leafs-auth-brand__img--dark {
	display: none;
}

html[data-leafs-theme="dark"] .leafs-auth-brand--theme-logos .leafs-auth-brand__img--light {
	display: none;
}

html[data-leafs-theme="dark"] .leafs-auth-brand--theme-logos .leafs-auth-brand__img--dark {
	display: block;
	width: auto;
	height: auto;
}

/* 登录/注册弹窗内品牌图标略大 */
.leafs-auth-modal .leafs-auth-brand__logo img,
.leafs-auth-modal .leafs-auth-brand__logo .leafs-auth-brand__img {
	max-height: 44px;
}

.leafs-auth-brand__title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--leafs-text);
	text-align: center;
}

/* Remove duplicate top tabs usage in modal (we use slide + inline switch links) */
.leafs-auth-modal .leafs-auth-tabs {
	display: none !important;
}

.leafs-auth-switch {
	margin: 14px 0 0;
	font-size: 0.9rem;
	color: var(--leafs-muted);
	text-align: center;
}

.leafs-auth-switch__link {
	color: var(--leafs-brand);
	font-weight: 700;
	cursor: pointer;
	padding: 0 4px;
	text-decoration: none;
}

.leafs-auth-switch__link:hover {
	color: var(--leafs-brand-hover);
}

/* Promo side should never scroll vertically */
.leafs-auth-split__promo,
.leafs-auth-promo {
	overflow: hidden;
}

.leafs-auth-split__promo {
	position: absolute;
	top: 0;
	left: 50%;
	width: 50%;
	height: 100%;
	overflow: hidden;
	z-index: 10;
	background: linear-gradient(135deg, var(--leafs-brand) 0%, var(--leafs-mint) 100%);
	color: #fff;
	transition: transform 0.6s ease-in-out;
}

.leafs-auth-split.right-panel-active .leafs-auth-split__form {
	transform: translateX(100%);
}

.leafs-auth-split.right-panel-active .leafs-auth-split__promo {
	transform: translateX(-100%);
}

.leafs-auth-promo-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	overflow: hidden;
}

.leafs-auth-promo-orb {
	position: absolute;
	border-radius: 50%;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.07));
	animation: leafsAuthPromoOrb 18s linear infinite;
}

.leafs-auth-promo-orb--1 {
	top: -12%;
	right: -5%;
	width: 180px;
	height: 180px;
	animation-duration: 18s;
}

.leafs-auth-promo-orb--2 {
	bottom: -15%;
	left: -8%;
	width: 200px;
	height: 200px;
	animation-duration: 16s;
	animation-direction: reverse;
}

.leafs-auth-promo-orb--3 {
	top: 35%;
	left: -10%;
	width: 120px;
	height: 120px;
	animation-duration: 22s;
}

.leafs-auth-promo-line {
	position: absolute;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.25), transparent);
	animation: leafsAuthPromoLine 12s ease-in-out infinite;
	opacity: 0.7;
}

.leafs-auth-promo-line--1 {
	width: 50%;
	top: 28%;
	left: -15%;
	animation-duration: 14s;
}

.leafs-auth-promo-line--2 {
	width: 40%;
	bottom: 35%;
	right: -10%;
	animation-duration: 11s;
	animation-delay: 2s;
	animation-direction: reverse;
}

.leafs-auth-promo {
	position: relative;
	z-index: 1;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 40px;
	text-align: center;
	box-sizing: border-box;
}

.leafs-auth-promo__panel {
	display: none;
	width: 100%;
	max-width: 340px;
	margin: 0 auto;
	text-align: center;
}

/* Panel toggle: JS adds is-login / is-register on [data-auth-split] */
.leafs-auth-split.is-login .leafs-auth-promo__panel--login {
	display: block;
}

.leafs-auth-split.is-register .leafs-auth-promo__panel--register {
	display: block;
}

/* Default + explicit state guards to avoid double panels */
.leafs-auth-split .leafs-auth-promo__panel--login,
.leafs-auth-split.is-login .leafs-auth-promo__panel--login {
	display: block;
}

.leafs-auth-split.is-register .leafs-auth-promo__panel--login {
	display: none;
}

.leafs-auth-promo__panel h3 {
	margin: 0 0 14px;
	font-size: 28px;
	font-weight: 800;
}

.leafs-auth-promo__panel p {
	margin: 0 0 22px;
	font-size: 14px;
	line-height: 1.5;
	letter-spacing: 0.4px;
	opacity: 0.95;
}

/* register panel follows same layout as login panel */

.leafs-auth-promo__ghost {
	border-radius: 20px;
	border: 2px solid #fff;
	background: transparent;
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	padding: 12px 45px;
	letter-spacing: 1px;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform 80ms ease-in, background 0.2s ease;
}

.leafs-auth-promo__ghost:hover {
	background: rgba(255, 255, 255, 0.2);
}

.leafs-auth-promo__ghost:active {
	transform: scale(0.95);
}

@keyframes leafsAuthPromoOrb {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

@keyframes leafsAuthPromoLine {
	0%,
	100% {
		transform: translateX(0);
		opacity: 0.35;
	}
	50% {
		transform: translateX(40px);
		opacity: 0.75;
	}
}

/* Inputs look like b2child */
.leafs-auth-form .leafs-auth-input {
	background: #eee;
	border: none;
	padding: 12px 15px;
	margin: 8px 0;
	width: 100%;
	border-radius: 4px;
}

.leafs-auth-submit.leafs-btn--primary {
	border-radius: 20px;
	border: 1px solid var(--leafs-brand);
	background: var(--leafs-brand);
	color: #fff;
	font-size: 12px;
	font-weight: 800;
	padding: 12px 45px;
	letter-spacing: 1px;
	text-transform: uppercase;
	transition: transform 80ms ease-in, filter 0.2s ease;
}

.leafs-auth-submit.leafs-btn--primary:active {
	transform: scale(0.95);
}

.leafs-auth-alt-btn {
	width: 100%;
	margin-top: 10px;
	padding: 12px 18px;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 55%, transparent);
	background: transparent;
	color: var(--leafs-brand);
	font-weight: 700;
	cursor: pointer;
	transition: transform 80ms ease-in, background 0.2s ease, border-color 0.2s ease;
}

.leafs-auth-alt-btn:hover {
	background: color-mix(in srgb, var(--leafs-brand) 10%, transparent);
	border-color: color-mix(in srgb, var(--leafs-brand) 75%, transparent);
	color: var(--leafs-brand-hover);
}

.leafs-auth-alt-btn:active {
	transform: scale(0.98);
}

/* Mobile: hide promo, make full height */
@media (max-width: 600px) {
	.leafs-auth-modal {
		padding: 0;
		padding-bottom: env(safe-area-inset-bottom, 0px);
		align-items: stretch;
	}

	.leafs-auth-modal__dialog {
		max-width: 100%;
		width: 100%;
		max-height: none;
		min-height: 100vh;
		min-height: 100dvh;
		border-radius: 0;
		display: flex;
		flex-direction: column;
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}

	/* 推广区已隐藏时禁止桌面「滑块」位移，否则注册面板会被整体移出视口 */
	.leafs-auth-split.right-panel-active .leafs-auth-split__form,
	.leafs-auth-split.right-panel-active .leafs-auth-split__promo {
		transform: none !important;
	}

	.leafs-auth-split {
		min-height: 0;
		flex: 1 1 auto;
		display: flex;
		flex-direction: column;
	}

	.leafs-auth-split.leafs-auth-split--has-social {
		min-height: 0;
	}

	.leafs-auth-split__form {
		position: relative;
		left: auto;
		top: auto;
		width: 100%;
		min-height: 0;
		flex: 1 1 auto;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}

	.leafs-auth-split.leafs-auth-split--has-social .leafs-auth-split__form {
		min-height: 0;
	}

	.leafs-auth-split__promo {
		display: none;
	}

	/* 手机端：留出关闭按钮空间，避免内容顶到右上角 */
	.leafs-auth-split__form {
		padding: 56px 18px calc(22px + env(safe-area-inset-bottom, 0px));
	}

	#leafs-auth-view-main {
		flex: 1 1 auto;
		min-height: 0;
		display: flex;
		flex-direction: column;
	}

	#leafs-auth-view-lost {
		flex: 1 1 auto;
		min-height: 0;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		padding: 52px 18px calc(22px + env(safe-area-inset-bottom, 0px));
		box-sizing: border-box;
	}

	.leafs-auth-modal__x {
		top: calc(10px + env(safe-area-inset-top, 0px));
		right: max(12px, env(safe-area-inset-right, 0px));
	}
}

/* Dark mode: keep b2 style but harmonize text */
html[data-leafs-theme="dark"] .leafs-auth-modal__dialog {
	background: #0f1115;
	color: #e5e7eb;
}

html[data-leafs-theme="dark"] .leafs-auth-modal__x {
	color: #e5e7eb;
}

html[data-leafs-theme="dark"] .leafs-auth-form .leafs-auth-input {
	background: rgba(255, 255, 255, 0.08);
	color: #e5e7eb;
}

.leafs-auth-panel {
	animation: leafsAuthFade 0.2s ease;
}

.leafs-auth-panel[hidden] {
	display: none !important;
}

@keyframes leafsAuthFade {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.leafs-auth-field {
	margin: 0 0 14px;
}

.leafs-auth-row--tabs {
	gap: 10px;
	margin-bottom: 10px;
}

.leafs-auth-row--tabs .leafs-auth-link {
	padding: 6px 10px;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
	background: transparent;
}

.leafs-auth-row--tabs .leafs-auth-link.is-active {
	color: #fff;
	background: var(--leafs-brand);
	border-color: var(--leafs-brand);
}

.leafs-auth-otp-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
}

.leafs-auth-otp-row .leafs-auth-input {
	margin: 0;
}

.leafs-auth-field label {
	display: block;
	margin-bottom: 6px;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--leafs-text);
}

.leafs-auth-input {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	color: var(--leafs-text);
	font-size: 1rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.leafs-auth-input:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.2);
}

/* Modal overrides: keep b2child slider look inside modal */
.leafs-auth-modal .leafs-auth-field label {
	color: #333;
}

.leafs-auth-modal .leafs-auth-input {
	background: #eee;
	border: none;
	border-radius: 4px;
	padding: 12px 15px;
}

.leafs-auth-modal .leafs-auth-input:focus {
	border: none;
	box-shadow: none;
}

.leafs-auth-footer-note {
	margin-top: 18px;
	padding-top: 14px;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	font-size: 0.85rem;
	text-align: center;
}

.leafs-auth-footer-note a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	background: rgba(0, 0, 0, 0.02);
	color: var(--leafs-brand);
	text-decoration: none;
	transition: transform 80ms ease-in, background 0.2s ease, border-color 0.2s ease;
}

.leafs-auth-footer-note a:hover {
	background: rgba(0, 0, 0, 0.05);
	border-color: rgba(0, 0, 0, 0.18);
	color: var(--leafs-brand-hover);
}

.leafs-auth-footer-note a:active {
	transform: scale(0.98);
}

html[data-leafs-theme="dark"] .leafs-auth-footer-note {
	border-top-color: rgba(255, 255, 255, 0.14);
}

html[data-leafs-theme="dark"] .leafs-auth-footer-note a {
	border-color: rgba(255, 255, 255, 0.18);
	background: rgba(255, 255, 255, 0.06);
	color: #e5e7eb;
}

html[data-leafs-theme="dark"] .leafs-auth-footer-note a:hover {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.24);
}

html[data-leafs-theme="dark"] .leafs-auth-modal .leafs-auth-field label {
	color: #e5e7eb;
}

html[data-leafs-theme="dark"] .leafs-auth-modal .leafs-auth-input {
	background: rgba(255, 255, 255, 0.08);
	color: #e5e7eb;
}

.leafs-auth-input.is-invalid {
	border-color: #ef4444;
}

.leafs-auth-field-error {
	display: block;
	margin-top: 6px;
	font-size: 0.82rem;
	color: #ef4444;
}

.leafs-auth-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0 0 18px;
	font-size: 0.88rem;
}

.leafs-auth-link {
	border: 0;
	background: none;
	padding: 0;
	color: var(--leafs-link);
	cursor: pointer;
	font: inherit;
	text-decoration: none;
}

.leafs-auth-link:hover {
	color: var(--leafs-brand-hover, var(--leafs-brand));
}

.leafs-auth-submit {
	width: 100%;
	margin-top: 8px;
	border-radius: 40px !important;
	padding: 14px 20px !important;
	font-weight: 600 !important;
}

.leafs-auth-submit.is-loading {
	position: relative;
	color: transparent !important;
	pointer-events: none;
}

.leafs-auth-submit.is-loading::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 22px;
	height: 22px;
	margin: -11px 0 0 -11px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
	animation: leafsSpin 0.7s linear infinite;
}

@keyframes leafsSpin {
	to {
		transform: rotate(360deg);
	}
}

.leafs-auth-back {
	margin-bottom: 16px;
}

html[data-leafs-theme="dark"] .leafs-auth-modal__dialog {
	background: #1e2128;
	color: #e8edf2;
	border-color: #2d2f36;
}

html[data-leafs-theme="dark"] .leafs-auth-input {
	background: #14171c;
	border-color: #2d2f36;
	color: #e8edf2;
}

html[data-leafs-theme="dark"] .leafs-auth-modal__x {
	background: #2d2f36;
	color: #e8edf2;
}

html[data-leafs-theme="dark"] .leafs-auth-modal__x:hover {
	background: #3d4149;
}

.leafs-auth-social {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--leafs-border);
	text-align: center;
}

.leafs-auth-social__label {
	display: block;
	font-size: 0.82rem;
	color: var(--leafs-muted);
	margin-bottom: 12px;
}

.leafs-auth-social__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
}

.leafs-auth-social__btn {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	cursor: not-allowed;
	opacity: 0.65;
}

.leafs-auth-social__btn-inner {
	font-size: 0.78rem;
	font-weight: 700;
}

.leafs-auth-social__hint {
	margin: 10px 0 0;
	font-size: 0.78rem;
	color: var(--leafs-muted);
}

.leafs-lost-steps {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-size: 0.82rem;
	color: var(--leafs-muted);
}

.leafs-lost-steps li {
	display: flex;
	align-items: center;
	gap: 10px;
}

.leafs-lost-steps__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
	font-size: 0.72rem;
	font-weight: 700;
	flex-shrink: 0;
}

.leafs-lost-steps li.is-active {
	color: var(--leafs-text);
	font-weight: 600;
}

.leafs-lost-steps li.is-active .leafs-lost-steps__num {
	background: color-mix(in srgb, var(--leafs-brand) 22%, transparent);
	border-color: var(--leafs-brand);
	color: var(--leafs-brand);
}

.leafs-lost-done__icon {
	width: 56px;
	height: 56px;
	margin: 0 auto 14px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--leafs-brand) 25%, transparent);
	color: var(--leafs-brand);
	font-size: 1.75rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.leafs-lost-done__title {
	text-align: center;
	font-weight: 700;
	font-size: 1.05rem;
	margin: 0 0 8px;
}

.leafs-lost-done__text {
	text-align: center;
	font-size: 0.88rem;
	color: var(--leafs-muted);
	margin: 0 0 16px;
}

.leafs-lost-steps--compact {
	margin-bottom: 20px;
}

.leafs-lost-steps--compact li.is-done {
	color: var(--leafs-muted);
}

.leafs-lost-steps--compact li.is-done .leafs-lost-steps__num {
	background: var(--leafs-border);
	font-size: 0.65rem;
}

html[data-leafs-theme="dark"] .leafs-auth-social__btn {
	background: #2d2f36;
	border-color: #3d4149;
}

/* User center */
main.leafs-uc {
	background-color: var(--leafs-uc-page-bg, transparent);
	transition: background-color 0.35s ease;
	border-radius: 0;
}

.leafs-uc {
	padding-bottom: 48px;
}

.leafs-uc__layout {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	max-width: 1200px;
	margin-inline: auto;
	transition: gap 0.25s ease;
}

.leafs-uc__layout--collapsed {
	gap: 16px;
}

.leafs-uc__sidebar {
	flex: 0 0 280px;
	position: sticky;
	top: calc(var(--leafs-header-h, 64px) + 16px);
	transition: flex-basis 0.28s ease, opacity 0.2s ease;
}

.leafs-uc__layout--collapsed .leafs-uc__sidebar {
	flex-basis: 88px;
}

.leafs-uc-sidebar-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin-bottom: 10px;
	padding: 10px;
	min-height: 44px;
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	background: var(--leafs-surface2);
	color: var(--leafs-muted);
	cursor: pointer;
	font: inherit;
	transition:
		background 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease,
		box-shadow 0.15s ease;
}

.leafs-uc-sidebar-toggle__icon {
	display: block;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M15.41 16.59 10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z'/%3E%3C/svg%3E");
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.leafs-uc-sidebar-toggle:hover {
	background: color-mix(in srgb, var(--leafs-surface2) 65%, var(--leafs-brand) 8%);
	border-color: color-mix(in srgb, var(--leafs-brand) 28%, var(--leafs-border));
	color: var(--leafs-text);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.leafs-uc-sidebar-toggle:focus-visible {
	outline: 2px solid var(--leafs-focus-ring, var(--leafs-brand));
	outline-offset: 2px;
}

.leafs-uc__layout--collapsed .leafs-uc-sidebar-toggle__icon {
	transform: rotate(180deg);
}

.leafs-uc__layout--collapsed .leafs-uc-user__meta {
	display: none;
}

.leafs-uc__layout--collapsed .leafs-uc-user {
	justify-content: center;
	padding: 12px 8px;
}

.leafs-uc__layout--collapsed .leafs-uc-nav__text {
	display: none;
}

.leafs-uc__layout--collapsed .leafs-uc-nav__btn {
	justify-content: center;
	padding-inline: 10px;
}

.leafs-uc__layout--collapsed .leafs-uc-nav__badge {
	position: absolute;
	top: 6px;
	right: 6px;
}

.leafs-uc__layout--collapsed .leafs-uc-nav__btn {
	position: relative;
}

.leafs-uc__main {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.leafs-uc-card {
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: 20px;
	padding: 24px;
	box-shadow: var(--leafs-shadow-card);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.leafs-uc-card:hover {
	box-shadow: var(--leafs-shadow-card-hover);
	transform: translateY(-2px);
}

.leafs-uc-panel + .leafs-uc-panel {
	margin-top: 0;
}

.leafs-uc-toast {
	position: fixed;
	top: calc(var(--leafs-header-h, 64px) + 12px);
	left: 50%;
	transform: translateX(-50%);
	z-index: 100040;
	max-width: min(420px, 92vw);
	padding: 12px 18px;
	border-radius: 12px;
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	box-shadow: var(--leafs-shadow-card-hover);
	font-size: 0.92rem;
}

.leafs-uc-toast.is-error {
	border-color: #ef4444;
}

.leafs-uc-user {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
	padding: 16px;
	border-radius: 16px;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
}

.leafs-uc-user__avatar img,
.leafs-uc-user__avatar .avatar {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.leafs-uc-user__name {
	font-weight: 700;
	font-size: 1.05rem;
}

.leafs-uc-user__role {
	font-size: 0.85rem;
	color: var(--leafs-muted);
	margin-top: 2px;
}

.leafs-uc-user__public-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 10px;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--leafs-brand);
	text-decoration: none;
}

.leafs-uc-user__public-link:hover {
	color: color-mix(in srgb, var(--leafs-brand) 88%, var(--leafs-text));
}

.leafs-uc-user__public-icon {
	opacity: 0.85;
	font-weight: 500;
}

.leafs-uc-more-sheet__item--link {
	text-decoration: none;
	color: var(--leafs-brand);
	font-weight: 600;
	cursor: pointer;
	box-sizing: border-box;
}

.leafs-uc-more-sheet__item--link:hover {
	border-color: color-mix(in srgb, var(--leafs-brand) 35%, var(--leafs-border));
	background: color-mix(in srgb, var(--leafs-brand) 8%, var(--leafs-surface2));
}

.leafs-uc-nav-mob {
	display: none;
	margin-bottom: 16px;
}

.leafs-uc-nav-mob__label {
	display: block;
	font-size: 0.82rem;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--leafs-muted);
}

.leafs-uc-nav-select {
	width: 100%;
	padding: 12px 14px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	color: var(--leafs-text);
	font-size: 0.95rem;
}

.leafs-uc-nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.leafs-uc-nav__btn {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	width: 100%;
	text-align: left;
	padding: 12px 14px;
	border: 0;
	border-radius: 12px;
	background: transparent;
	color: var(--leafs-text);
	font-size: 0.92rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease;
	border-left: 3px solid transparent;
}

.leafs-uc-nav__btn .leafs-uc-nav__badge {
	margin-left: auto;
}

.leafs-uc-nav__btn:hover {
	background: var(--leafs-surface2);
}

.leafs-uc-nav__btn.is-active {
	background: color-mix(in srgb, var(--leafs-brand) 18%, transparent);
	color: var(--leafs-brand);
	border-left-color: var(--leafs-brand);
}

.leafs-uc-nav__btn--danger {
	color: #ef4444;
}

.leafs-uc-nav__btn--danger:hover {
	background: rgba(239, 68, 68, 0.08);
}

.leafs-uc-nav__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: #ef4444;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 700;
}

.leafs-uc-panel__title {
	margin: 0 0 18px;
	font-size: 1.25rem;
}

.leafs-uc-panel__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 18px;
}

.leafs-uc-panel__head .leafs-uc-panel__title {
	margin: 0;
}

.leafs-uc-profile-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 20px;
	margin-bottom: 22px;
}

.leafs-uc-profile-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}

.leafs-uc-profile-avatar-wrap img,
.leafs-uc-profile-avatar-wrap .avatar,
.leafs-uc-profile-avatar {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	object-fit: cover;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14);
}

.leafs-uc-fieldset {
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	padding: 14px 16px;
	margin: 0 0 18px;
}

.leafs-uc-fieldset legend {
	padding: 0 6px;
	font-size: 0.88rem;
	font-weight: 600;
}

.leafs-uc-fieldset label {
	display: block;
	margin: 6px 0;
	font-size: 0.9rem;
}

.leafs-uc-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
	font-size: 0.88rem;
}

.leafs-uc-sub-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.leafs-uc-sub-item {
	padding: 18px;
	border-radius: 16px;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.leafs-uc-sub-item:hover {
	box-shadow: var(--leafs-shadow-card-hover);
	transform: translateY(-2px);
}

.leafs-uc-sub-item__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
}

.leafs-uc-sub-item__actions {
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px dashed var(--leafs-border);
}

.leafs-uc-sub-item .leafs-uc-sub-action {
	opacity: 0.45;
	transition: opacity 0.2s ease;
}

.leafs-uc-sub-item:hover .leafs-uc-sub-action {
	opacity: 1;
}

.leafs-uc-skeleton {
	pointer-events: none;
}

/* 避免 display:grid 覆盖 [hidden]，否则切换「我的收藏」等面板后骨架块仍占位显示 */
.leafs-uc-skeleton[hidden] {
	display: none !important;
}

.leafs-uc-skeleton__row,
.leafs-uc-skeleton__card {
	border-radius: 12px;
	background: linear-gradient(
		90deg,
		var(--leafs-surface2) 0%,
		color-mix(in srgb, var(--leafs-border) 40%, var(--leafs-surface2)) 50%,
		var(--leafs-surface2) 100%
	);
	background-size: 200% 100%;
	animation: leafsUcShimmer 1.1s ease-in-out infinite;
}

.leafs-uc-skeleton--list .leafs-uc-skeleton__row {
	height: 72px;
	margin-bottom: 12px;
}

.leafs-uc-skeleton--grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
}

.leafs-uc-skeleton--grid .leafs-uc-skeleton__card {
	height: 100px;
}

@keyframes leafsUcShimmer {
	0% {
		background-position: 100% 0;
	}
	100% {
		background-position: -100% 0;
	}
}

.leafs-uc-content--dim {
	opacity: 0.25;
	transition: opacity 0.15s ease;
}

.leafs-uc-empty {
	text-align: center;
	padding: 24px 12px 8px;
	color: var(--leafs-brand);
}

.leafs-uc-empty__svg {
	width: 120px;
	height: 120px;
	margin: 0 auto 12px;
	display: block;
}

html[data-leafs-theme="dark"] .leafs-uc-empty {
	opacity: 0.92;
}

.leafs-uc-empty__desc {
	color: var(--leafs-text);
	font-size: 0.95rem;
	margin: 0 0 16px;
	max-width: 360px;
	margin-inline: auto;
}

.leafs-uc-empty__cta {
	margin: 0;
}

.leafs-uc-field {
	margin-bottom: 16px;
}

.leafs-uc-field--with-status .leafs-uc-field__control {
	display: flex;
	align-items: center;
	gap: 8px;
}

.leafs-uc-field--with-status .leafs-uc-field__control .leafs-input {
	flex: 1 1 auto;
	min-width: 0;
}

.leafs-uc-field__status {
	flex: 0 0 auto;
	width: 1.5rem;
	text-align: center;
	font-weight: 700;
	font-size: 1rem;
}

.leafs-uc-field__status.is-ok {
	color: #16a34a;
}

.leafs-uc-field__status.is-bad {
	color: #ef4444;
}

.leafs-uc-field__error {
	display: block;
	margin-top: 6px;
	font-size: 0.82rem;
	color: #ef4444;
}

.leafs-uc-field__hint {
	display: block;
	margin-top: 4px;
	font-size: 0.8rem;
}

.leafs-uc-input.leafs-input,
.leafs-uc-input.leafs-textarea {
	border-radius: 12px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.leafs-uc-input:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--leafs-brand) 28%, transparent);
}

.leafs-uc-input.is-invalid {
	border-color: #ef4444;
}

.leafs-uc-bg-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 6px;
}

.leafs-uc-color-input {
	width: 52px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--leafs-border);
	border-radius: 10px;
	cursor: pointer;
	background: transparent;
}

.leafs-uc .leafs-btn.is-disabled,
.leafs-uc .leafs-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
	pointer-events: none;
}

.leafs-uc-bottom-tabs {
	display: none;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 100030;
	background: var(--leafs-card);
	border-top: 1px solid var(--leafs-border);
	padding: 6px 8px calc(8px + env(safe-area-inset-bottom));
	justify-content: space-around;
	align-items: stretch;
	box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
}

.leafs-uc-bottom-tabs__btn {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 6px 4px;
	border: 0;
	background: transparent;
	color: var(--leafs-muted);
	font-size: 0.68rem;
	cursor: pointer;
	border-radius: 10px;
	transition: color 0.15s ease, background 0.15s ease;
}

.leafs-uc-bottom-tabs__btn.is-active {
	color: var(--leafs-brand);
	background: color-mix(in srgb, var(--leafs-brand) 12%, transparent);
}

.leafs-uc-bottom-tabs__icon {
	font-size: 1.15rem;
	line-height: 1;
}

.leafs-uc-more-sheet {
	position: fixed;
	inset: 0;
	z-index: 100045;
}

.leafs-uc-more-sheet[hidden] {
	display: none !important;
}

.leafs-uc-more-sheet__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
}

.leafs-uc-more-sheet__panel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--leafs-card);
	border-radius: 20px 20px 0 0;
	padding: 16px 16px calc(20px + env(safe-area-inset-bottom));
	border: 1px solid var(--leafs-border);
	box-shadow: var(--leafs-shadow-card-hover);
	animation: leafsUcSheetUp 0.22s ease;
}

@keyframes leafsUcSheetUp {
	from {
		transform: translateY(100%);
	}
	to {
		transform: translateY(0);
	}
}

.leafs-uc-more-sheet__title {
	margin: 0 0 12px;
	font-size: 1rem;
}

.leafs-uc-more-sheet__item {
	display: block;
	width: 100%;
	text-align: left;
	padding: 14px 12px;
	margin-bottom: 6px;
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	background: var(--leafs-surface2);
	font: inherit;
	cursor: pointer;
	color: var(--leafs-text);
}

.leafs-uc-more-sheet__item--danger {
	color: #ef4444;
	border-color: rgba(239, 68, 68, 0.35);
}

.leafs-uc-more-sheet__close {
	width: 100%;
	margin-top: 8px;
}

.leafs-uc-badge {
	display: inline-block;
	margin-left: 8px;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	vertical-align: middle;
}

.leafs-uc-badge--pending {
	background: color-mix(in srgb, #f59e0b 22%, transparent);
	color: #b45309;
}

.leafs-uc-badge--rejected {
	background: color-mix(in srgb, #ef4444 20%, transparent);
	color: #b91c1c;
}

.leafs-uc-badge--muted {
	background: var(--leafs-border);
	color: var(--leafs-muted);
}

.leafs-uc-sub-item__time {
	font-size: 0.85rem;
	margin-top: 6px;
}

.leafs-uc-sub-item__rej {
	margin-top: 10px;
	font-size: 0.88rem;
	color: #b91c1c;
}

.leafs-uc-edit-box {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px dashed var(--leafs-border);
}

.leafs-notif-list--uc .leafs-notif-list__row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

.leafs-notif-list--uc li.is-unread .leafs-notif-list__row a,
.leafs-notif-list--uc li.is-unread .leafs-notif-list__row span {
	font-weight: 600;
}

.leafs-notif-list--uc li.is-unread {
	position: relative;
	padding-left: 12px;
}

.leafs-notif-list--uc li.is-unread::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	bottom: 8px;
	width: 4px;
	border-radius: 4px;
	background: var(--leafs-brand);
}

.leafs-notif-list--uc .leafs-notif-list__actions {
	margin-top: 8px;
}

.leafs-uc-guest .leafs-uc-card {
	max-width: 520px;
	margin: 32px auto;
	text-align: center;
}

.leafs-uc-guest .leafs-uc-card p {
	margin-bottom: 16px;
}

@media (min-width: 769px) and (max-width: 1024px) {
	.leafs-uc__sidebar {
		flex-basis: 240px;
	}

	.leafs-uc-card {
		padding: 20px;
	}
}

@media (max-width: 768px) and (min-width: 601px) {
	.leafs-auth-modal__dialog {
		padding: 24px 20px;
		border-radius: 20px;
		max-width: 90vw;
	}
}

@media (max-width: 768px) {
	.leafs-uc {
		padding-bottom: calc(72px + env(safe-area-inset-bottom));
	}

	.leafs-uc__layout {
		flex-direction: column;
		gap: 12px;
	}

	.leafs-uc__layout--collapsed .leafs-uc__sidebar {
		flex-basis: auto;
	}

	.leafs-uc__layout--collapsed .leafs-uc-user__meta,
	.leafs-uc__layout--collapsed .leafs-uc-nav__text {
		display: flex;
	}

	.leafs-uc-sidebar-toggle {
		display: none;
	}

	.leafs-uc__sidebar {
		flex: none;
		width: 100%;
		position: static;
	}

	.leafs-uc-nav {
		display: none;
	}

	.leafs-uc-nav-mob {
		display: none;
	}

	.leafs-uc-bottom-tabs {
		display: flex;
	}

	.leafs-uc-user {
		flex-direction: row;
		margin-bottom: 0;
	}

	.leafs-uc-user__avatar img,
	.leafs-uc-user__avatar .avatar {
		width: 50px;
		height: 50px;
	}

	.leafs-uc-profile-avatar-wrap img,
	.leafs-uc-profile-avatar-wrap .avatar,
	.leafs-uc-profile-avatar {
		width: 80px;
		height: 80px;
	}

	.leafs-uc-sub-item__head {
		flex-direction: column;
		align-items: flex-start;
	}

	#leafs-uc-favorites .leafs-uc-fav-list.leafs-card-list--compact {
		display: flex;
		flex-direction: column;
	}

	.leafs-uc-panel__head--favorites {
		flex-direction: column;
		align-items: stretch;
	}

	.leafs-uc-fav-summary {
		justify-content: center;
		white-space: normal;
		text-align: center;
	}

	#leafs-uc-favorites .leafs-card__thumb {
		width: 50px;
		height: 50px;
		min-width: 50px;
	}

	#leafs-uc-favorites .leafs-card__img {
		width: 50px;
		height: 50px;
		object-fit: cover;
		border-radius: 10px;
	}
}

/* -------------------------------------------------------------------------
   Letter avatar (inline span + img compatibility)
   ------------------------------------------------------------------------- */
.leafs-avatar-letter {
	vertical-align: middle;
	box-sizing: border-box;
}

.leafs-header__avatar.leafs-avatar-letter {
	width: 32px !important;
	min-width: 32px !important;
	height: 32px !important;
	font-size: 13px !important;
}

.leafs-uc-user__avatar .leafs-avatar-letter,
.leafs-uc-profile-avatar-wrap .leafs-avatar-letter {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.14);
}

.leafs-uc-user__avatar img,
.leafs-uc-user__avatar .avatar,
.leafs-uc-user__avatar .leafs-avatar-letter {
	width: 60px;
	height: 60px;
}

.leafs-uc-profile-avatar-wrap img,
.leafs-uc-profile-avatar-wrap .avatar,
.leafs-uc-profile-avatar-wrap .leafs-avatar-letter,
.leafs-uc-profile-avatar {
	width: 96px;
	height: 96px;
}

@media (max-width: 768px) {
	.leafs-uc-user__avatar img,
	.leafs-uc-user__avatar .avatar,
	.leafs-uc-user__avatar .leafs-avatar-letter {
		width: 50px;
		height: 50px;
	}

	.leafs-uc-profile-avatar-wrap img,
	.leafs-uc-profile-avatar-wrap .avatar,
	.leafs-uc-profile-avatar-wrap .leafs-avatar-letter,
	.leafs-uc-profile-avatar {
		width: 80px;
		height: 80px;
	}
}

/* User center: form polish */
.leafs-uc-panel__subtitle {
	font-size: 0.9rem;
	line-height: 1.45;
}

.leafs-uc-panel > .leafs-uc-panel__title + .leafs-uc-panel__subtitle {
	margin: -8px 0 20px;
}

.leafs-uc-panel__head .leafs-uc-panel__subtitle {
	margin: 8px 0 0;
	max-width: 28rem;
}

.leafs-uc-form--polish .leafs-uc-field {
	margin-bottom: 20px;
}

.leafs-uc-form--polish .leafs-input,
.leafs-uc-form--polish .leafs-textarea {
	width: 100%;
	max-width: 520px;
	box-sizing: border-box;
	padding: 12px 14px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	color: var(--leafs-text);
	font-size: 0.95rem;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.leafs-uc-form--polish .leafs-textarea {
	max-width: 100%;
	min-height: 100px;
	resize: vertical;
}

.leafs-uc-form--polish .leafs-input[readonly] {
	background: var(--leafs-surface2);
	opacity: 0.92;
	cursor: default;
}

.leafs-uc-form--polish .leafs-input:focus,
.leafs-uc-form--polish .leafs-textarea:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--leafs-brand) 22%, transparent);
}

html[data-leafs-theme="dark"] .leafs-uc-form--polish .leafs-input,
html[data-leafs-theme="dark"] .leafs-uc-form--polish .leafs-textarea {
	background: #14171c;
	border-color: #2d2f36;
}

html[data-leafs-theme="dark"] .leafs-uc-form--polish .leafs-input[readonly] {
	background: #1a1d24;
}

.leafs-uc-panel__head--favorites {
	align-items: center;
	margin-bottom: 16px;
}

.leafs-uc-panel__head--favorites .leafs-uc-panel__subtitle {
	margin: 8px 0 0;
	max-width: 38rem;
	line-height: 1.5;
}

.leafs-uc-fav-summary {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 8px;
	padding: 10px 16px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--leafs-brand) 8%, var(--leafs-surface2));
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 22%, var(--leafs-border));
	font-size: 0.88rem;
	color: var(--leafs-muted);
	white-space: nowrap;
}

.leafs-uc-fav-summary__num {
	font-size: 1.28rem;
	font-weight: 700;
	color: var(--leafs-text);
	line-height: 1.2;
}

.leafs-card__kind {
	display: inline-block;
	margin: 0 0 8px;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.leafs-card__kind--tool {
	background: color-mix(in srgb, var(--leafs-brand) 16%, transparent);
	color: var(--leafs-link);
	border: 1px solid color-mix(in srgb, var(--leafs-brand) 32%, var(--leafs-border));
}

.leafs-card__kind--post {
	background: color-mix(in srgb, var(--leafs-mint) 18%, transparent);
	color: var(--leafs-text);
	border: 1px solid color-mix(in srgb, var(--leafs-mint) 35%, var(--leafs-border));
}

.leafs-card.is-uc-fav-removing {
	pointer-events: none;
	opacity: 0;
	transform: scale(0.96) translateX(6px);
	transition:
		opacity 0.22s ease,
		transform 0.22s ease;
}

.leafs-uc-favorites-inner {
	margin-top: 4px;
	padding: 16px;
	border-radius: 16px;
	background: var(--leafs-surface2);
	border: 1px solid var(--leafs-border);
}

.leafs-uc-favorites-inner .leafs-stream-ui {
	margin-top: 10px;
}

.leafs-uc-favorites-inner .leafs-pagination {
	margin-top: 18px;
}

.leafs-uc-fav-list.leafs-card-list {
	gap: 14px;
}

.leafs-uc-fav-list.leafs-card-list--compact {
	gap: 12px;
}

@media (min-width: 900px) {
	#leafs-uc-favorites .leafs-uc-fav-list.leafs-card-list--compact {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
		align-items: stretch;
	}

	#leafs-uc-favorites .leafs-uc-fav-list.leafs-card-list--compact .leafs-card {
		margin: 0;
	}
}

.leafs-uc-fav-list .leafs-card {
	border-radius: 14px;
	transition:
		transform 0.18s ease,
		box-shadow 0.18s ease,
		opacity 0.22s ease,
		border-color 0.2s ease;
}

.leafs-uc-fav-list .leafs-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--leafs-shadow-card-hover);
}

.leafs-uc-fav-empty-hint {
	margin: 12px 0 4px;
	padding: 16px 12px;
	text-align: center;
	font-size: 0.9rem;
	line-height: 1.5;
	border-radius: 12px;
	border: 1px dashed var(--leafs-border);
	background: color-mix(in srgb, var(--leafs-surface) 92%, transparent);
}

/* Submit page (收录投稿) — shell, neural backdrop, two-column layout */
.leafs-submit-shell {
	position: relative;
	min-height: 100vh;
	min-height: 100dvh;
	--leafs-hero-neural: var(--leafs-brand, #3b82f6);
	--leafs-hero-neural-hex: #22c55e;
}

.leafs-submit-shell__backdrop {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	pointer-events: none;
}

.leafs-submit-shell__solid {
	position: absolute;
	inset: 0;
	z-index: 0;
	background: var(--leafs-bg, #f4f6f9);
	transition: background 0.35s ease;
}

.leafs-submit-shell .leafs-hero__particles {
	position: absolute;
	inset: 0;
	z-index: 1;
}

.leafs-submit-shell > .leafs-main {
	position: relative;
	z-index: 2;
}

.leafs-submit-shell--neural .leafs-submit-shell__solid {
	background:
		radial-gradient(
			circle at 20% 15%,
			color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 80%, #ffffff 20%) 0%,
			transparent 55%
		),
		radial-gradient(
			circle at 80% 80%,
			color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 55%, #ffffff 45%) 0%,
			transparent 60%
		),
		radial-gradient(
			circle at 50% 40%,
			color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 35%, #ffffff 65%) 0%,
			color-mix(in srgb, var(--leafs-hero-neural, #3b82f6) 5%, #ffffff 95%) 80%
		);
	filter: blur(4px);
	transform: scale(1.04);
}

html[data-leafs-theme="dark"] .leafs-submit-shell--neural .leafs-submit-shell__solid {
	background: linear-gradient(168deg, #0a192f 0%, #061525 52%, #020c18 100%);
	filter: none;
	transform: none;
}

.leafs-submit-shell--neural .leafs-hero__particles-canvas {
	opacity: 0.88;
}

html[data-leafs-theme="dark"] .leafs-submit-shell--neural .leafs-hero__particles-canvas {
	opacity: 0.82;
}

.leafs-submit-page {
	padding-top: 32px;
	padding-bottom: 56px;
}

.leafs-submit-page__inner {
	max-width: 1120px;
	margin-inline: auto;
}

.leafs-submit-page__header {
	margin-bottom: 24px;
	text-align: left;
}

.leafs-submit-page__title-row {
	display: flex;
	align-items: center;
	gap: 14px;
}

.leafs-submit-page__accent {
	width: 4px;
	align-self: stretch;
	min-height: 1.2em;
	border-radius: 2px;
	background: var(--leafs-brand);
	flex-shrink: 0;
}

.leafs-submit-page__title {
	margin: 0;
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.leafs-submit-page__lead {
	margin: 10px 0 0;
	font-size: 0.95rem;
	color: var(--leafs-muted);
	line-height: 1.55;
	max-width: 42em;
}

.leafs-submit-page__notices {
	margin-bottom: 20px;
}

.leafs-submit-page__toast {
	position: fixed;
	bottom: 28px;
	left: 50%;
	transform: translateX(-50%) translateY(12px);
	z-index: 10050;
	max-width: min(92vw, 420px);
	padding: 12px 20px;
	border-radius: 12px;
	font-size: 0.92rem;
	font-weight: 600;
	text-align: center;
	box-shadow: 0 12px 40px rgba(15, 23, 42, 0.18);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}

.leafs-submit-page__toast.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.leafs-submit-page__toast--success {
	background: #16a34a;
	color: #fff;
}

.leafs-submit-page__toast--error {
	background: #dc2626;
	color: #fff;
}

.leafs-submit-page__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(260px, 1fr);
	gap: 28px 32px;
	align-items: start;
}

@media (max-width: 960px) {
	.leafs-submit-page__grid {
		grid-template-columns: 1fr;
	}

	.leafs-submit-page__aside {
		order: -1;
	}
}

.leafs-submit-page__card {
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: 24px;
	padding: 32px;
	box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.04);
}

.leafs-submit-page__card--narrow {
	max-width: 480px;
	margin-inline: auto;
}

@media (max-width: 600px) {
	.leafs-submit-page__card {
		padding: 24px;
	}
}

.leafs-submit-section {
	padding: 22px 0;
	border-bottom: 1px solid var(--leafs-border);
}

.leafs-submit-section:first-of-type {
	padding-top: 0;
}

.leafs-submit-section:last-of-type {
	border-bottom: none;
	padding-bottom: 0;
}

.leafs-submit-section__title {
	margin: 0 0 14px;
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.leafs-submit-section__body {
	padding: 18px 20px;
	border-radius: 14px;
	background: color-mix(in srgb, var(--leafs-surface2, #f1f5f9) 88%, transparent);
	border: 1px solid color-mix(in srgb, var(--leafs-border) 55%, transparent);
}

.leafs-submit-field {
	margin: 0 0 18px;
}

.leafs-submit-field:last-child {
	margin-bottom: 0;
}

.leafs-submit-field__hint {
	margin: 0 0 8px;
	font-size: 0.82rem;
	color: var(--leafs-muted);
	line-height: 1.45;
}

.leafs-submit-field__optional {
	font-weight: 500;
	font-size: 0.8rem;
	color: var(--leafs-muted);
	margin-left: 0;
	line-height: 1;
	transform: translateY(1px);
}

.leafs-submit-field--upload > label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	line-height: 1.2;
}

.leafs-submit-form label {
	display: block;
	margin-bottom: 8px;
	font-weight: 600;
	font-size: 0.88rem;
	color: var(--leafs-text);
}

.leafs-submit-form .required {
	color: #ef4444;
	font-weight: 700;
}

.leafs-submit-form .leafs-input,
.leafs-submit-form .leafs-textarea {
	width: 100%;
	box-sizing: border-box;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	color: var(--leafs-text);
	font-size: 0.95rem;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.leafs-submit-form .leafs-input {
	min-height: 48px;
	padding: 0 14px;
	line-height: 1.3;
}

.leafs-submit-form .leafs-textarea {
	min-height: 100px;
	padding: 12px 14px;
	resize: vertical;
	line-height: 1.5;
}

.leafs-submit-form .leafs-input:focus,
.leafs-submit-form .leafs-textarea:focus {
	outline: none;
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--leafs-brand) 24%, transparent);
}

/* Logo upload */
.leafs-file-upload {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
}

.leafs-file-upload__native {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.leafs-file-upload__ui {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	min-height: 44px;
}

.leafs-file-upload__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 12px;
	border: 2px solid var(--leafs-brand);
	background: color-mix(in srgb, var(--leafs-brand) 8%, var(--leafs-surface));
	color: var(--leafs-brand);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
}

/* 修复：上传按钮是 label，避免被 .leafs-submit-form label 的通用块级样式挤偏 */
.leafs-submit-form .leafs-file-upload__btn {
	display: inline-flex;
	margin-bottom: 0;
	line-height: 1.2;
}

.leafs-file-upload__btn:hover {
	background: color-mix(in srgb, var(--leafs-brand) 16%, var(--leafs-surface));
}

.leafs-file-upload__name {
	display: inline-flex;
	align-items: center;
	min-height: 20px;
	font-size: 0.86rem;
	color: var(--leafs-muted);
	max-width: 220px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.leafs-file-upload__clear {
	border: none;
	background: transparent;
	color: var(--leafs-muted);
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	padding: 4px 0;
}

.leafs-file-upload__clear:hover {
	color: #ef4444;
}

.leafs-file-upload__preview-wrap {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	border-radius: 12px;
	overflow: hidden;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface2);
}

.leafs-file-upload__preview {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Tag field (Tagify-style) */
.leafs-tag-field {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	min-height: 48px;
	padding: 6px 8px 6px 12px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.leafs-tag-field:focus-within {
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--leafs-brand) 22%, transparent);
}

.leafs-tag-field__chips {
	display: contents;
}

.leafs-tag-field__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 4px 4px 10px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--leafs-brand) 14%, var(--leafs-surface));
	color: var(--leafs-text);
	font-size: 0.82rem;
	font-weight: 500;
	max-width: 100%;
}

.leafs-tag-field__chip-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border: none;
	padding: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--leafs-text) 10%, transparent);
	color: var(--leafs-muted);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.leafs-tag-field__chip-remove:hover {
	background: color-mix(in srgb, #ef4444 25%, transparent);
	color: #b91c1c;
}

.leafs-tag-field__input {
	flex: 1 1 140px;
	min-width: 120px;
	min-height: 36px;
	border: none !important;
	background: transparent !important;
	box-shadow: none !important;
	padding: 4px 4px 4px 0 !important;
}

.leafs-tag-field__input:focus {
	outline: none;
	box-shadow: none !important;
}

.leafs-tag-suggestions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 10px;
}

.leafs-tag-suggestions__btn {
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	color: var(--leafs-muted);
	font-size: 0.82rem;
	font-weight: 500;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

.leafs-tag-suggestions__btn:hover {
	border-color: var(--leafs-brand);
	color: var(--leafs-brand);
	background: color-mix(in srgb, var(--leafs-brand) 8%, var(--leafs-surface));
}

/* Category checkboxes — grid + custom box */
.leafs-submit-fieldset {
	margin: 0 0 18px;
	padding: 0;
	border: none;
}

.leafs-submit-fieldset__legend {
	padding: 0;
	margin-bottom: 12px;
	font-weight: 600;
	font-size: 0.88rem;
	color: var(--leafs-text);
}

.leafs-submit-check-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px 12px;
}

@media (min-width: 1100px) {
	.leafs-submit-check-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.leafs-submit-check-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.leafs-submit-check {
	position: relative;
	display: grid;
	grid-template-columns: 20px minmax(0, 1fr);
	align-items: start;
	gap: 10px;
	column-gap: 10px;
	cursor: pointer;
	padding: 10px 12px;
	border-radius: 12px;
	border: 1px solid transparent;
	transition: background 0.15s ease, border-color 0.15s ease;
}

.leafs-submit-check:hover {
	background: color-mix(in srgb, var(--leafs-brand) 6%, var(--leafs-surface));
}

/* 原生 input 叠在自定义方框上，不占第二列，避免与文字重叠 */
.leafs-submit-check__input {
	grid-column: 1;
	grid-row: 1;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	padding: 0;
	border: 0;
	opacity: 0;
	cursor: pointer;
	z-index: 2;
	appearance: none;
	-webkit-appearance: none;
	align-self: start;
	justify-self: start;
}

.leafs-submit-check__box {
	grid-column: 1;
	grid-row: 1;
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	margin: 2px 0 0;
	border-radius: 4px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
	position: relative;
	z-index: 1;
	pointer-events: none;
}

.leafs-submit-check:hover .leafs-submit-check__box {
	border-color: var(--leafs-brand);
}

.leafs-submit-check__input:focus-visible + .leafs-submit-check__box {
	outline: 2px solid var(--leafs-brand);
	outline-offset: 2px;
}

.leafs-submit-check__input:checked + .leafs-submit-check__box {
	background: var(--leafs-brand);
	border-color: var(--leafs-brand);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--leafs-brand) 40%, transparent);
}

.leafs-submit-check__input:checked + .leafs-submit-check__box::after {
	content: "";
	position: absolute;
	inset: 3px 2px 2px 4px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.leafs-submit-check__text {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--leafs-text);
	line-height: 1.35;
}

/* Footer actions */
.leafs-submit-form__footer {
	margin-top: 28px;
	padding-top: 8px;
	text-align: center;
}

.leafs-submit-form__hint {
	margin: 0 0 16px;
	font-size: 0.82rem;
	color: var(--leafs-muted);
}

.leafs-submit-form__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 16px;
	justify-content: center;
	align-items: center;
}

.leafs-submit-form__draft.leafs-btn--ghost {
	border-radius: 999px;
	padding: 12px 22px;
	font-weight: 600;
}

.leafs-submit-form__submit.leafs-btn {
	min-width: 200px;
	width: 200px;
	max-width: 100%;
	border-radius: 40px;
	padding: 14px 28px;
	font-weight: 600;
	border: none;
	color: #fff;
	background: linear-gradient(
		135deg,
		var(--leafs-brand) 0%,
		color-mix(in srgb, var(--leafs-brand) 65%, #0f172a) 100%
	);
	box-shadow: 0 4px 16px color-mix(in srgb, var(--leafs-brand) 35%, transparent);
	transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
}

.leafs-submit-form__submit.leafs-btn:hover:not(:disabled) {
	transform: scale(1.04);
	box-shadow: 0 8px 24px color-mix(in srgb, var(--leafs-brand) 45%, transparent);
}

.leafs-submit-form__submit.leafs-btn:disabled {
	opacity: 0.75;
	cursor: not-allowed;
	transform: none;
}

@media (max-width: 600px) {
	.leafs-submit-form__submit.leafs-btn {
		width: 100%;
	}

	.leafs-submit-form__draft.leafs-btn--ghost {
		width: 100%;
		order: 1;
	}

	.leafs-submit-form__submit.leafs-btn {
		order: 0;
		width: 100%;
	}
}

/* Aside: guide + preview */
.leafs-submit-aside__block {
	background: var(--leafs-card);
	border: 1px solid var(--leafs-border);
	border-radius: 20px;
	padding: 20px 22px;
	margin-bottom: 16px;
	box-shadow: 0 2px 12px rgba(15, 23, 42, 0.04);
}

.leafs-submit-aside__block:last-child {
	margin-bottom: 0;
}

.leafs-submit-aside__title {
	margin: 0 0 12px;
	font-size: 1rem;
	font-weight: 700;
}

.leafs-submit-aside__subtitle {
	margin: 18px 0 8px;
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--leafs-text);
}

.leafs-submit-user {
	display: flex;
	align-items: center;
	gap: 12px;
}

.leafs-submit-user__avatar-img {
	display: block;
	border-radius: 999px;
}

.leafs-submit-user__label {
	display: block;
	font-size: 0.78rem;
	color: var(--leafs-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.leafs-submit-user__name {
	font-weight: 600;
	font-size: 0.95rem;
}

.leafs-submit-user__guest {
	margin: 0;
	font-size: 0.88rem;
	color: var(--leafs-muted);
	line-height: 1.5;
}

.leafs-submit-guide,
.leafs-submit-flow {
	margin: 0;
	padding-left: 1.15em;
	font-size: 0.86rem;
	color: var(--leafs-muted);
	line-height: 1.55;
}

.leafs-submit-guide li + li,
.leafs-submit-flow li + li {
	margin-top: 6px;
}

.leafs-submit-preview__card {
	display: flex;
	gap: 14px;
	padding: 16px;
	border-radius: 16px;
	border: 2px solid color-mix(in srgb, var(--leafs-brand) 55%, var(--leafs-border));
	background: var(--leafs-surface);
}

.leafs-submit-preview__logo {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--leafs-surface2) 100%, transparent);
	background-size: cover;
	background-position: center;
	border: 1px solid var(--leafs-border);
}

.leafs-submit-preview__name {
	font-weight: 700;
	font-size: 1rem;
	color: var(--leafs-text);
}

.leafs-submit-preview__url {
	font-size: 0.78rem;
	color: var(--leafs-brand);
	word-break: break-all;
	margin-top: 2px;
}

.leafs-submit-preview__desc {
	margin: 10px 0 0;
	font-size: 0.84rem;
	color: var(--leafs-muted);
	line-height: 1.5;
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.leafs-submit-preview__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
}

.leafs-submit-preview__tag {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 500;
	background: color-mix(in srgb, var(--leafs-brand) 12%, var(--leafs-surface));
	color: var(--leafs-text);
}

.leafs-submit-page__gate-notice {
	text-align: center;
}

.leafs-submit-page__gate-btn {
	margin-top: 12px;
}

/* Dark theme */
html[data-leafs-theme="dark"] .leafs-submit-page__card,
html[data-leafs-theme="dark"] .leafs-submit-aside__block {
	background: #1e2128;
	border-color: #2d2f36;
}

html[data-leafs-theme="dark"] .leafs-submit-section__body {
	background: color-mix(in srgb, #14171c 92%, transparent);
	border-color: #2d2f36;
}

html[data-leafs-theme="dark"] .leafs-submit-form .leafs-input,
html[data-leafs-theme="dark"] .leafs-submit-form .leafs-textarea,
html[data-leafs-theme="dark"] .leafs-tag-field {
	background: #14171c;
	border-color: #2d2f36;
}

html[data-leafs-theme="dark"] .leafs-tag-suggestions__btn {
	background: #14171c;
	border-color: #2d2f36;
}

html[data-leafs-theme="dark"] .leafs-file-upload__preview-wrap {
	background: #14171c;
	border-color: #2d2f36;
}

@media (prefers-reduced-motion: reduce) {
	.leafs-hero-panel,
	.leafs-hero-panel:hover {
		transition-duration: 0.01ms !important;
		transform: none !important;
	}

	.leafs-hero-panel__pill,
	.leafs-hero-panel:hover .leafs-hero-panel__pill {
		transform: none !important;
	}

	.leafs-hero-panel__iconstrip li a,
	.leafs-hero-panel__iconstrip li a:hover,
	.leafs-hero-panel__tool-iconimg {
		transition: none !important;
		transform: none !important;
	}

	.leafs-hero-panel__dropdown,
	.leafs-hero-panel:hover .leafs-hero-panel__dropdown,
	.leafs-hero-panel__dropdown .leafs-hero-panel__list--h li,
	.leafs-hero-panel__dropdown .leafs-hero-panel__newslist li,
	.leafs-hero-panel__list--h li a,
	.leafs-hero-panel__list--h li a:hover,
	.leafs-hero-panel__newspeek li,
	.leafs-hero-panel__newspeek li:hover,
	.leafs-hero-panel__rank,
	.leafs-hero-panel__newspeek li:hover .leafs-hero-panel__rank,
	.leafs-hero-panel--news .leafs-hero-panel__newslist a,
	.leafs-hero-panel--news .leafs-hero-panel__newslist a:hover {
		transition: none !important;
		transform: none !important;
		filter: none !important;
	}

	html[data-leafs-theme="dark"] .leafs-hero-panel:hover {
		animation: none;
	}
}

/* i18n layout guards (English text tends to be longer) */
html[lang^="en"] .leafs-header__inner,
html[lang^="en"] .leafs-header__meta-cluster {
	gap: clamp(8px, 1.2vw, 14px);
}

html[lang^="en"] .leafs-header-drawer__panel .leafs-nav__list > li > a {
	min-width: 0;
}

@media (min-width: 768px) {
	html[lang^="en"] .leafs-header-drawer__panel .leafs-nav__list > li > a .leafs-menu-text,
	html[lang^="en"] .leafs-header-drawer__panel .leafs-nav__list > li > a .leafs-menu-text__core {
		display: inline-block;
		max-width: 14ch;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}

html[lang^="en"] .leafs-meta-nav__list a,
html[lang^="en"] .leafs-topbar__greeting,
html[lang^="en"] .leafs-header-thin-greeting {
	white-space: normal;
	line-height: 1.3;
}

html[lang^="en"] .leafs-header__toolbar-main .leafs-btn--header-cta,
html[lang^="en"] .leafs-btn--header-cta,
html[lang^="en"] .leafs-btn--login {
	padding-inline: 10px;
	min-width: 0;
}

@media (min-width: 768px) {
	html[lang^="en"] .leafs-header__toolbar-main {
		gap: 4px;
	}

	html[lang^="en"] .leafs-header-drawer__panel .leafs-nav__list > li > a {
		font-size: 0.9rem;
		padding-inline: 0;
	}

	html[lang^="en"] .leafs-btn--header-cta__label,
	html[lang^="en"] .leafs-btn--login {
		display: inline-block;
		max-width: 16ch;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}

html[lang^="en"] .leafs-hero-panel__titleline {
	align-items: flex-start;
	gap: 6px;
}

html[lang^="en"] .leafs-hero-panel__title {
	min-width: 0;
	flex: 1 1 auto;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

html[lang^="en"] .leafs-hero-panel__date {
	flex: 0 0 auto;
	max-width: 42%;
	overflow: hidden;
	text-overflow: ellipsis;
}

html[lang^="en"] .leafs-hero-panel__desc {
	white-space: normal;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	min-height: 2.6em;
}

html[lang^="en"] .leafs-pca__chip,
html[lang^="en"] .leafs-tca__chip {
	max-width: min(100%, 220px);
}

html[lang^="en"] .leafs-pca__chip,
html[lang^="en"] .leafs-tca__chip,
html[lang^="en"] .leafs-pca-tag {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* Home playground: interactions */
.leafs-panel--jq4585,
.leafs-panel--playground {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.leafs-panel--jq4585::after,
.leafs-panel--playground::after {
	content: "";
	position: absolute;
	inset: -40%;
	background: radial-gradient(
		320px circle at var(--leafs-glow-x, 20%) var(--leafs-glow-y, 10%),
		color-mix(in srgb, var(--leafs-brand) 22%, transparent),
		transparent 62%
	);
	opacity: 0;
	transition: opacity 0.25s ease;
	pointer-events: none;
	z-index: -1;
}

.leafs-panel--jq4585:hover::after,
.leafs-panel--playground:hover::after {
	opacity: 0.95;
}

[data-leafs-rotating-text] .leafs-rotating-text__line {
	display: none;
}

[data-leafs-rotating-text] .leafs-rotating-text__line.is-active {
	display: block;
	animation: leafs-slogan-in 0.35s ease;
}

@keyframes leafs-slogan-in {
	from {
		opacity: 0;
		transform: translateY(4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.leafs-playground {
	padding: 14px 16px 16px;
}

.leafs-playground__stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 12px;
}

.leafs-playground__stat {
	background: var(--leafs-surface);
	border: 1px solid var(--leafs-border);
	border-radius: 12px;
	padding: 10px;
}

.leafs-playground__num {
	display: block;
	font-size: 1rem;
	font-weight: 800;
	color: var(--leafs-text);
}

.leafs-playground__label {
	display: block;
	margin-top: 2px;
	font-size: 0.74rem;
	color: var(--leafs-muted);
}

.leafs-playground__cards {
	display: grid;
	gap: 9px;
}

.leafs-playground-sort {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 10px;
}

.leafs-playground-sort__item {
	display: block;
	padding: 9px 9px 8px;
	border-radius: 11px;
	border: 1px solid var(--leafs-border);
	background: var(--leafs-surface);
	text-decoration: none;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.leafs-playground-sort__item strong {
	display: block;
	font-size: 0.75rem;
	color: var(--leafs-text);
}

.leafs-playground-sort__item span {
	display: block;
	margin-top: 3px;
	font-size: 0.7rem;
	color: var(--leafs-muted);
}

.leafs-playground-sort__item:hover {
	transform: translateY(-2px);
	border-color: var(--leafs-brand);
	box-shadow: var(--leafs-shadow-card);
	text-decoration: none;
}

.leafs-playground-sort__item.is-current {
	border-color: color-mix(in srgb, var(--leafs-brand) 70%, var(--leafs-border));
	background: color-mix(in srgb, var(--leafs-brand) 13%, var(--leafs-surface));
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--leafs-brand) 30%, transparent) inset;
}

.leafs-playground-tabs__nav {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
	margin-bottom: 10px;
	padding: 4px;
	border: 1px solid var(--leafs-border);
	border-radius: 999px;
	background: var(--leafs-surface);
}

.leafs-playground-tabs__btn {
	border: 0;
	background: transparent;
	border-radius: 999px;
	padding: 7px 8px;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--leafs-muted);
	cursor: pointer;
	transition: color 0.2s ease, background-color 0.2s ease;
}

.leafs-playground-tabs__btn.is-active {
	background: linear-gradient(135deg, var(--leafs-brand), var(--leafs-mint));
	color: var(--leafs-on-primary);
}

.leafs-playground-tabs__pane {
	animation: leafs-play-tab-in 0.24s ease;
}

@keyframes leafs-play-tab-in {
	from {
		opacity: 0;
		transform: translateY(3px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.leafs-playground__card {
	display: block;
	padding: 10px 11px;
	border-radius: 12px;
	border: 1px solid var(--leafs-border);
	background: color-mix(in srgb, var(--leafs-mint) 7%, var(--leafs-surface));
	text-decoration: none;
	transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.leafs-playground__card strong {
	display: block;
	font-size: 0.82rem;
	color: var(--leafs-text);
}

.leafs-playground__card span {
	display: block;
	margin-top: 3px;
	font-size: 0.74rem;
	color: var(--leafs-muted);
}

.leafs-playground__card:hover {
	transform: translateY(-3px);
	border-color: var(--leafs-brand);
	box-shadow: var(--leafs-shadow-card-hover);
	text-decoration: none;
}

.leafs-playground__tip {
	margin: 11px 0 0;
	font-size: 0.76rem;
	color: var(--leafs-muted);
}

.leafs-reveal {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.48s ease, transform 0.56s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--leafs-reveal-delay, 0ms);
}

.leafs-reveal.is-inview {
	opacity: 1;
	transform: translateY(0);
}

@media (max-width: 768px) {
	.leafs-hide-mobile {
		display: none !important;
	}

	.leafs-playground-sort {
		grid-template-columns: 1fr;
	}

	.leafs-playground-tabs__btn {
		padding: 7px 4px;
		font-size: 0.72rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.leafs-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.leafs-card::after {
		display: none;
	}
}
