/* ==========================================================================
 * 雪乃增强组件 v2 (widgets.css)
 * 参照 qwq.sigrika.cc 设计语言：
 *   大圆角卡片、主题色点缀、毛玻璃、入场动画
 *   顶栏弹出式音乐面板 + 装扮面板（外观/壁纸/特效）
 *   右侧栏：音乐卡片 / 文章日历 / 天气预报
 * ========================================================================== */

/* ---------- 通用变量 ---------- */
:root{
	--enh-primary: var(--themecolor, #2f4154);
	--enh-primary-rgb: var(--themecolor-R, 47), var(--themecolor-G, 65), var(--themecolor-B, 84);
	--enh-radius: 14px;
	--enh-shadow: 0 6px 20px rgba(0,0,0,.10);
	--enh-shadow-hover: 0 10px 30px rgba(0,0,0,.16);
}

/* ---------- 右侧栏卡片 ---------- */
#rightbar .enh-widget-card{
	border-radius: var(--enh-radius);
	margin-bottom: 1.25rem;
	overflow: hidden;
	transition: box-shadow .3s, transform .3s;
	animation: enh-fade-up .5s ease both;
}
#rightbar .enh-widget-card:nth-child(2){ animation-delay: .08s; }
#rightbar .enh-widget-card:nth-child(3){ animation-delay: .16s; }
#rightbar .enh-widget-card:hover{
	box-shadow: var(--enh-shadow-hover);
	transform: translateY(-2px);
}
.enh-widget-title{
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 15px;
	font-weight: 700;
	margin-bottom: 14px;
	color: var(--text-main, #3f3f3f);
	position: relative;
	padding-left: 10px;
}
.enh-widget-title::before{
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3px;
	height: 16px;
	border-radius: 3px;
	background: var(--enh-primary);
}
html.darkmode .enh-widget-title{ color: var(--text-main-dark, #d5d5d5); }
.enh-widget-title i{ color: var(--enh-primary); font-size: 14px; }

/* ---------- 入场动画 ---------- */
@keyframes enh-fade-up{
	from{ opacity: 0; transform: translateY(14px); }
	to{ opacity: 1; transform: translateY(0); }
}

/* ==========================================================================
 * 一、音乐播放器（顶栏弹出面板 + 右侧栏卡片）
 * ========================================================================== */
/* 顶栏音乐按钮 */
#navbar_enh_music{
	position: relative;
	transition: transform .2s;
}
#navbar_enh_music:hover{ transform: scale(1.1); }
#navbar_enh_music.enh-active{
	background: var(--enh-primary);
	border-color: var(--enh-primary);
	color: #fff !important;
}
#navbar_enh_music .fa-music{ transition: transform .2s; }
#navbar_enh_music .fa-music.enh-spin{
	animation: enh-rotate 3s linear infinite;
}
@keyframes enh-rotate{
	from{ transform: rotate(0deg); }
	to{ transform: rotate(360deg); }
}

/* 顶栏弹出音乐面板 */
#enh-music-panel{
	position: fixed;
	top: 68px;
	right: 16px;
	width: 360px;
	max-width: calc(100vw - 24px);
	background: rgba(255,255,255,.96);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-radius: 16px;
	box-shadow: 0 18px 50px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.04);
	padding: 18px;
	z-index: 9999;
	opacity: 0;
	transform: translateY(-10px) scale(.98);
	pointer-events: none;
	transition: opacity .25s, transform .25s;
}
html.darkmode #enh-music-panel{
	background: rgba(30,30,36,.96);
	box-shadow: 0 18px 50px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06);
}
#enh-music-panel.enh-open{
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

/* 封面区 */
.enh-music-head{
	display: flex;
	align-items: center;
	gap: 12px;
}
.enh-music-cover-wrap{ flex-shrink: 0; }
.enh-music-cover{
	width: 56px;
	height: 56px;
	border-radius: 50%;
	overflow: hidden;
	position: relative;
	box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.enh-music-cover img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.enh-music-cover.enh-spin img{ animation: enh-rotate 12s linear infinite; }
.enh-music-cover-ph{
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, var(--enh-primary), rgba(var(--enh-primary-rgb), .6));
	color: #fff;
	font-size: 22px;
}
.enh-music-info{
	flex: 1;
	min-width: 0;
}
.enh-music-title{
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--text-main, #3f3f3f);
}
html.darkmode .enh-music-title{ color: #e5e5e5; }
.enh-music-artist{
	font-size: 12px;
	color: #999;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	margin-top: 2px;
}
.enh-music-lrc-btn{
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border: none;
	border-radius: 8px;
	background: transparent;
	color: #888;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	transition: all .2s;
}
.enh-music-lrc-btn:hover{ background: rgba(var(--enh-primary-rgb), .1); color: var(--enh-primary); }
.enh-music-lrc-btn.enh-active{ color: var(--enh-primary); background: rgba(var(--enh-primary-rgb), .12); }

/* 时间/音量行 */
.enh-music-subrow{
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 12px;
	font-size: 11px;
	color: #999;
}
.enh-music-volume{
	display: flex;
	align-items: center;
	gap: 6px;
}
.enh-music-volume > i{ font-size: 14px; cursor: pointer; color: #888; transition: color .2s; }
.enh-music-volume > i:hover{ color: var(--enh-primary); }
.enh-music-vol-track{
	width: 70px;
	height: 4px;
	border-radius: 4px;
	background: rgba(0,0,0,.1);
	position: relative;
	cursor: pointer;
}
html.darkmode .enh-music-vol-track{ background: rgba(255,255,255,.15); }
.enh-music-vol-bar{
	height: 100%;
	border-radius: 4px;
	background: var(--enh-primary);
	width: 70%;
}

/* 进度条 */
.enh-music-progress{
	height: 5px;
	border-radius: 5px;
	background: rgba(0,0,0,.1);
	position: relative;
	cursor: pointer;
	margin-top: 10px;
}
html.darkmode .enh-music-progress{ background: rgba(255,255,255,.15); }
.enh-music-progress-bar{
	height: 100%;
	border-radius: 5px;
	background: linear-gradient(90deg, rgba(var(--enh-primary-rgb), .7), var(--enh-primary));
	width: 0%;
}
.enh-music-progress-thumb{
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,.3);
	border: 2px solid var(--enh-primary);
	left: 0%;
}

/* 控制按钮 */
.enh-music-controls{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 14px;
}
.enh-music-controls button{
	width: 38px;
	height: 38px;
	border: none;
	border-radius: 50%;
	background: rgba(var(--enh-primary-rgb), .1);
	color: var(--enh-primary);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	transition: all .2s;
}
.enh-music-controls button:hover{
	background: var(--enh-primary);
	color: #fff;
	transform: scale(1.08);
}
.enh-music-controls button:active{ transform: scale(.92); }
.enh-music-controls .enh-music-play{
	width: 46px;
	height: 46px;
	background: var(--enh-primary);
	color: #fff;
	font-size: 18px;
	box-shadow: 0 4px 14px rgba(var(--enh-primary-rgb), .4);
}
.enh-music-controls .enh-music-play:hover{ transform: scale(1.1); }
.enh-music-mode.enh-mode-one::after{
	content: '1';
	position: absolute;
	font-size: 9px;
	font-weight: 700;
	margin-left: 10px;
	margin-top: -14px;
	color: var(--enh-primary);
}

/* 抽屉（歌词/列表） */
.enh-music-drawer{
	max-height: 0;
	overflow: hidden;
	transition: max-height .3s;
}
.enh-music-drawer.enh-open{ max-height: 260px; }
.enh-music-drawer-inner{
	padding: 10px 2px 2px;
	border-top: 1px solid rgba(0,0,0,.06);
	margin-top: 12px;
}
html.darkmode .enh-music-drawer-inner{ border-top-color: rgba(255,255,255,.08); }
.enh-music-drawer-box{
	max-height: 240px;
	overflow-y: auto;
	scrollbar-width: thin;
}
.enh-music-drawer-box::-webkit-scrollbar{ width: 4px; }
.enh-music-drawer-box::-webkit-scrollbar-thumb{ background: rgba(0,0,0,.15); border-radius: 4px; }
html.darkmode .enh-music-drawer-box::-webkit-scrollbar-thumb{ background: rgba(255,255,255,.2); }

/* 播放列表项 */
.enh-pl-item{
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 8px;
	border-radius: 10px;
	cursor: pointer;
	transition: background .2s;
}
.enh-pl-item:hover{ background: rgba(var(--enh-primary-rgb), .08); }
.enh-pl-item.enh-pl-active{ background: rgba(var(--enh-primary-rgb), .12); }
.enh-pl-cover{
	width: 36px;
	height: 36px;
	border-radius: 8px;
	overflow: hidden;
	position: relative;
	flex-shrink: 0;
}
.enh-pl-cover img{ width: 100%; height: 100%; object-fit: cover; }
.enh-pl-eq{
	position: absolute;
	inset: 0;
	display: none;
	align-items: center;
	justify-content: center;
	gap: 2px;
	background: rgba(0,0,0,.45);
}
.enh-pl-active .enh-pl-eq{ display: flex; }
.enh-pl-eq span{
	width: 3px;
	height: 10px;
	background: #fff;
	border-radius: 2px;
	animation: enh-eq .8s ease-in-out infinite;
}
.enh-pl-eq span:nth-child(2){ animation-delay: .2s; }
.enh-pl-eq span:nth-child(3){ animation-delay: .4s; }
@keyframes enh-eq{
	0%,100%{ height: 6px; }
	50%{ height: 16px; }
}
.enh-pl-info{ flex: 1; min-width: 0; }
.enh-pl-name{
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--text-main, #3f3f3f);
}
html.darkmode .enh-pl-name{ color: #e0e0e0; }
.enh-pl-artist{
	font-size: 11px;
	color: #999;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.enh-pl-dur{ font-size: 11px; color: #aaa; }

/* 歌词 */
.enh-lrc-box{ text-align: center; padding: 6px 0; }
.enh-lrc-line{
	font-size: 13px;
	color: #999;
	padding: 4px 0;
	transition: all .3s;
	line-height: 1.6;
}
.enh-lrc-line.enh-lrc-active{
	color: var(--enh-primary);
	font-weight: 700;
	font-size: 14.5px;
}

/* 加载 / 错误 */
.enh-music-loading{
	display: none;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: #999;
	font-size: 13px;
	padding: 16px 0;
}
.enh-music-loading:not([style*="display: none"]){ display: flex; }
.enh-music-error{
	display: none;
	text-align: center;
	color: #e74c3c;
	font-size: 13px;
	padding: 14px 0;
}
.enh-music-error button{
	margin-top: 8px;
	border: 1px solid rgba(231,76,60,.4);
	background: transparent;
	color: #e74c3c;
	border-radius: 8px;
	padding: 4px 16px;
	cursor: pointer;
	font-size: 12px;
	transition: all .2s;
}
.enh-music-error button:hover{ background: #e74c3c; color: #fff; }
.enh-spinner{
	width: 16px;
	height: 16px;
	border: 2px solid rgba(var(--enh-primary-rgb), .25);
	border-top-color: var(--enh-primary);
	border-radius: 50%;
	display: inline-block;
	animation: enh-rotate .8s linear infinite;
}

/* ---------- 右侧栏音乐卡片 ---------- */
#enh-music-card .enh-mini-music{
	display: flex;
	align-items: center;
	gap: 12px;
}
#enh-music-card .enh-music-cover-wrap{ width: 52px; height: 52px; }
#enh-music-card .enh-music-cover{ width: 52px; height: 52px; }
#enh-music-card .enh-music-cover.enh-spin img{ animation: enh-rotate 12s linear infinite; }
.enh-mini-toggle{
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: none;
	background: var(--enh-primary);
	color: #fff;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(var(--enh-primary-rgb), .35);
	transition: transform .2s, box-shadow .2s;
	margin-left: auto;
}
.enh-mini-toggle:hover{ transform: scale(1.08); box-shadow: 0 6px 16px rgba(var(--enh-primary-rgb), .45); }
.enh-mini-toggle:active{ transform: scale(.92); }
.enh-mini-title{ font-size: 13.5px; }
.enh-mini-artist{ font-size: 11px; }
.enh-right-music-progress{
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
}
.enh-right-music-progress .enh-music-progress{ flex: 1; margin-top: 0; }
.enh-right-music-time{ font-size: 11px; color: #999; white-space: nowrap; }
.enh-right-music-controls{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 12px;
}
.enh-right-music-controls button{
	width: 34px;
	height: 34px;
	flex-shrink: 0;
	flex-grow: 0;
	border: none;
	border-radius: 50%;
	background: rgba(var(--enh-primary-rgb), .1);
	color: var(--enh-primary);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	transition: all .2s;
}
.enh-right-music-controls button:hover{ background: var(--enh-primary); color: #fff; }
.enh-right-music-controls .enh-music-play{
	width: 42px;
	height: 42px;
	flex-shrink: 0;
	background: var(--enh-primary);
	color: #fff;
	font-size: 16px;
	box-shadow: 0 4px 12px rgba(var(--enh-primary-rgb), .4);
}

/* ==========================================================================
 * 二、文章日历（右侧栏）
 * ========================================================================== */
#enh-calendar{ font-size: 13px; }
.enh-cal-head{
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}
.enh-cal-head button{
	width: 28px;
	height: 28px;
	border: none;
	border-radius: 8px;
	background: rgba(var(--enh-primary-rgb), .08);
	color: var(--enh-primary);
	cursor: pointer;
	font-size: 12px;
	transition: all .2s;
}
.enh-cal-head button:hover{ background: var(--enh-primary); color: #fff; }
.enh-cal-month{
	font-weight: 700;
	font-size: 13px;
	color: var(--text-main, #3f3f3f);
	cursor: pointer;
	user-select: none;
}
html.darkmode .enh-cal-month{ color: #e0e0e0; }
.enh-cal-weekdays{
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	text-align: center;
	font-size: 11px;
	color: #999;
	margin-bottom: 6px;
}
.enh-cal-grid{
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 3px;
}
.enh-cal-day{
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	font-size: 12px;
	color: var(--text-main, #555);
	cursor: default;
	position: relative;
	transition: all .15s;
	user-select: none;
}
html.darkmode .enh-cal-day{ color: #ccc; }
.enh-cal-empty{ visibility: hidden; }
.enh-cal-day.enh-cal-has{ cursor: pointer; color: var(--enh-primary); font-weight: 600; }
.enh-cal-day.enh-cal-has::after{
	content: '';
	position: absolute;
	bottom: 3px;
	left: 50%;
	transform: translateX(-50%);
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--enh-primary);
}
.enh-cal-day.enh-cal-has:hover{ background: rgba(var(--enh-primary-rgb), .12); }
.enh-cal-day.enh-cal-today{
	background: var(--enh-primary);
	color: #fff !important;
	font-weight: 700;
	box-shadow: 0 3px 8px rgba(var(--enh-primary-rgb), .35);
}
.enh-cal-day.enh-cal-today::after{ background: #fff; }
.enh-cal-day.enh-cal-selected{
	background: rgba(var(--enh-primary-rgb), .18);
	color: var(--enh-primary);
	font-weight: 700;
}
.enh-cal-posts{
	margin-top: 10px;
	border-top: 1px dashed rgba(0,0,0,.1);
	padding-top: 10px;
	max-height: 200px;
	overflow-y: auto;
	scrollbar-width: thin;
}
html.darkmode .enh-cal-posts{ border-top-color: rgba(255,255,255,.12); }
.enh-cal-posts-title{
	font-size: 12px;
	font-weight: 700;
	color: var(--enh-primary);
	margin-bottom: 6px;
}
.enh-cal-posts-title i{ margin-right: 4px; }
.enh-cal-post{
	display: flex;
	align-items: flex-start;
	gap: 6px;
	padding: 4px 0;
}
.enh-cal-post-dot{
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--enh-primary);
	flex-shrink: 0;
	margin-top: 6px;
}
.enh-cal-post a{
	color: var(--text-main, #444);
	font-size: 12px;
	text-decoration: none;
	line-height: 1.5;
	transition: color .2s;
}
html.darkmode .enh-cal-post a{ color: #ccc; }
.enh-cal-post a:hover{ color: var(--enh-primary); }
.enh-cal-none{
	font-size: 12px;
	color: #999;
	padding: 6px 0;
}

/* ==========================================================================
 * 三、天气预报（右侧栏）
 * ========================================================================== */
#enh-weather{ font-size: 13px; }
.enh-weather-loading{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: #999;
	padding: 20px 0;
}
.enh-weather-error{
	display: none;
	text-align: center;
	color: #e74c3c;
	font-size: 13px;
	padding: 16px 0;
}
.enh-weather-error i{ display: block; font-size: 28px; margin-bottom: 6px; opacity: .7; }
.enh-weather-retry{
	margin-top: 8px;
	border: 1px solid rgba(231,76,60,.4);
	background: transparent;
	color: #e74c3c;
	border-radius: 8px;
	padding: 4px 16px;
	cursor: pointer;
	font-size: 12px;
	transition: all .2s;
}
.enh-weather-retry:hover{ background: #e74c3c; color: #fff; }
.enh-weather-header{
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.enh-weather-city{
	display: flex;
	align-items: center;
	gap: 5px;
	font-weight: 600;
	color: var(--text-main, #444);
}
html.darkmode .enh-weather-city{ color: #ddd; }
.enh-weather-city i{ color: var(--enh-primary); }
.enh-weather-icon{
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, rgba(var(--enh-primary-rgb), .15), rgba(var(--enh-primary-rgb), .05));
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	color: var(--enh-primary);
}
.enh-weather-main{
	display: flex;
	align-items: baseline;
	gap: 4px;
	margin-top: 8px;
}
.enh-weather-temp{
	font-size: 42px;
	font-weight: 800;
	line-height: 1;
	color: var(--text-main, #333);
	letter-spacing: -2px;
}
html.darkmode .enh-weather-temp{ color: #f0f0f0; }
.enh-weather-unit{ font-size: 14px; color: #999; font-weight: 600; }
.enh-weather-desc{
	font-size: 13px;
	color: var(--enh-primary);
	margin-left: 6px;
	font-weight: 500;
}
.enh-weather-range{
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
	font-size: 12px;
	color: #999;
}
.enh-temp-max b, .enh-temp-min b{ color: var(--text-main, #555); font-weight: 600; }
html.darkmode .enh-temp-max b, html.darkmode .enh-temp-min b{ color: #ccc; }
.enh-weather-ext{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	margin-top: 14px;
	padding-top: 12px;
	border-top: 1px solid rgba(0,0,0,.06);
}
html.darkmode .enh-weather-ext{ border-top-color: rgba(255,255,255,.08); }
.enh-weather-ext-item{
	text-align: center;
	background: rgba(var(--enh-primary-rgb), .05);
	border-radius: 10px;
	padding: 8px 4px;
}
.enh-ext-label{
	font-size: 11px;
	color: #999;
	margin-bottom: 4px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3px;
}
.enh-ext-value{
	font-size: 12px;
	font-weight: 600;
	color: var(--text-main, #555);
}
html.darkmode .enh-ext-value{ color: #ccc; }

/* ==========================================================================
 * 四、装扮面板（参照 qwq.sigrika.cc：外观/壁纸/特效 3-tab）
 * ========================================================================== */
/* 顶栏装扮按钮 */
#navbar_enh_decor{
	transition: transform .2s;
}
#navbar_enh_decor:hover{ transform: scale(1.1); }
#navbar_enh_decor.enh-active{
	background: var(--enh-primary);
	border-color: var(--enh-primary);
	color: #fff !important;
}

/* 装扮面板主体 */
#enh-decor-panel{
	position: fixed;
	top: 68px;
	right: 16px;
	width: 320px;
	max-width: calc(100vw - 24px);
	background: rgba(255,255,255,.97);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	border-radius: 16px;
	box-shadow: 0 18px 50px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.04);
	z-index: 9999;
	opacity: 0;
	transform: translateY(-10px) scale(.98);
	pointer-events: none;
	transition: opacity .25s, transform .25s;
	overflow: hidden;
}
html.darkmode #enh-decor-panel{
	background: rgba(30,30,36,.97);
	box-shadow: 0 18px 50px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06);
}
#enh-decor-panel.enh-open{
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

/* Tab 栏 */
.enh-decor-tabs{
	display: flex;
	border-bottom: 1px solid rgba(0,0,0,.06);
	background: rgba(0,0,0,.02);
}
html.darkmode .enh-decor-tabs{
	border-bottom-color: rgba(255,255,255,.08);
	background: rgba(255,255,255,.02);
}
.enh-decor-tab{
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 11px 4px;
	font-size: 12px;
	font-weight: 500;
	color: #888;
	background: transparent;
	border: none;
	cursor: pointer;
	position: relative;
	transition: color .2s;
}
.enh-decor-tab:hover{ color: var(--enh-primary); }
.enh-decor-tab.enh-active{
	color: var(--enh-primary);
	font-weight: 600;
}
.enh-decor-tab.enh-active::after{
	content: '';
	position: absolute;
	bottom: 0;
	left: 15%;
	right: 15%;
	height: 2px;
	border-radius: 2px;
	background: var(--enh-primary);
}

/* 面板内容区 */
.enh-decor-body{ padding: 14px; max-height: 60vh; overflow-y: auto; scrollbar-width: thin; }
.enh-decor-page{ display: none; }
.enh-decor-page.enh-active{ display: block; animation: enh-fade-in .25s ease; }
@keyframes enh-fade-in{
	from{ opacity: 0; transform: translateY(4px); }
	to{ opacity: 1; transform: translateY(0); }
}

/* 小节标题 */
.enh-decor-section-title{
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--text-main, #444);
	margin: 12px 0 8px;
}
html.darkmode .enh-decor-section-title{ color: #ddd; }
.enh-decor-section-title:first-child{ margin-top: 0; }
.enh-decor-value{
	margin-left: auto;
	font-size: 12px;
	font-weight: 700;
	color: var(--enh-primary);
	background: rgba(var(--enh-primary-rgb), .1);
	padding: 2px 8px;
	border-radius: 6px;
}
.enh-decor-value-sm{
	font-size: 11px;
	font-weight: 700;
	color: var(--enh-primary);
	white-space: nowrap;
}
.enh-decor-reset{
	width: 22px;
	height: 22px;
	border: none;
	border-radius: 6px;
	background: rgba(0,0,0,.05);
	color: #888;
	cursor: pointer;
	font-size: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all .2s;
}
html.darkmode .enh-decor-reset{ background: rgba(255,255,255,.08); }
.enh-decor-reset:hover{ background: var(--enh-primary); color: #fff; }

/* 滑条 */
.enh-decor-slider-wrap{
	position: relative;
	height: 24px;
	border-radius: 8px;
	background: linear-gradient(90deg, #ff5f6d, #ffc371, #7dff6a, #4fc3f7, #9575cd, #ff5f6d);
	display: flex;
	align-items: center;
	padding: 0 6px;
}
.enh-decor-slider-wrap input[type="range"]{
	width: 100%;
	height: 4px;
	-webkit-appearance: none;
	appearance: none;
	background: transparent;
	cursor: pointer;
	outline: none;
}
.enh-decor-slider-wrap input[type="range"]::-webkit-slider-thumb{
	-webkit-appearance: none;
	appearance: none;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--enh-primary);
	box-shadow: 0 2px 6px rgba(0,0,0,.25);
	cursor: grab;
}
.enh-decor-slider-wrap input[type="range"]::-moz-range-thumb{
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #fff;
	border: 2px solid var(--enh-primary);
	cursor: grab;
}
.enh-decor-slider-inline{
	flex: 1;
	margin-left: 8px;
	display: flex;
	align-items: center;
	gap: 8px;
	background: rgba(var(--enh-primary-rgb), .08);
	height: 20px;
}
.enh-decor-slider-inline input[type="range"]{ flex: 1; }

/* 分段按钮 */
.enh-decor-seg{
	display: flex;
	gap: 6px;
}
.enh-decor-seg-btn{
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	padding: 8px 6px;
	border: none;
	border-radius: 10px;
	background: rgba(0,0,0,.05);
	color: #888;
	font-size: 12px;
	cursor: pointer;
	transition: all .2s;
}
html.darkmode .enh-decor-seg-btn{ background: rgba(255,255,255,.08); }
.enh-decor-seg-btn:hover{ color: var(--enh-primary); }
.enh-decor-seg-btn.enh-active{
	background: linear-gradient(135deg, #3a3f5c, #2c3048);
	color: #fff;
	font-weight: 600;
	box-shadow: 0 3px 10px rgba(0,0,0,.25);
}

/* 开关行 */
.enh-decor-rows{
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.enh-decor-row{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 8px 6px;
	border-radius: 10px;
	transition: background .2s;
}
.enh-decor-row:hover{ background: rgba(0,0,0,.03); }
html.darkmode .enh-decor-row:hover{ background: rgba(255,255,255,.04); }
.enh-decor-row-label{
	font-size: 13px;
	color: var(--text-main, #555);
}
html.darkmode .enh-decor-row-label{ color: #ccc; }

/* 开关 */
.enh-switch{
	position: relative;
	width: 40px;
	height: 22px;
	border: none;
	border-radius: 22px;
	background: rgba(0,0,0,.18);
	cursor: pointer;
	transition: background .25s;
	flex-shrink: 0;
}
html.darkmode .enh-switch{ background: rgba(255,255,255,.2); }
.enh-switch.enh-on{ background: var(--enh-primary); }
.enh-switch-knob{
	position: absolute;
	top: 3px;
	left: 3px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0,0,0,.25);
	transition: left .25s;
}
.enh-switch.enh-on .enh-switch-knob{ left: 21px; }

/* ==========================================================================
 * 五、装扮效果应用
 * ========================================================================== */
/* 毛玻璃（html.enh-glass） */
html.enh-glass #rightbar .widget,
html.enh-glass #rightbar .enh-widget-card{
	background: rgba(255,255,255,.72) !important;
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
}
html.enh-glass.darkmode #rightbar .widget,
html.enh-glass.darkmode #rightbar .enh-widget-card{
	background: rgba(30,30,36,.7) !important;
}

/* 扁平卡片（html.enh-flat：去掉边框和阴影） */
html.enh-flat #rightbar .widget,
html.enh-flat #rightbar .enh-widget-card,
html.enh-flat .card{
	box-shadow: none !important;
	border-color: rgba(0,0,0,.06) !important;
}

/* 圆角（--card-radius 变量，由 JS 设置） */
#rightbar .enh-widget-card,
#rightbar .widget{
	border-radius: var(--card-radius, var(--enh-radius)) !important;
}

/* 禁用入场动画 */
html.enh-no-anim #rightbar .enh-widget-card,
html.enh-no-anim #rightbar .widget{
	animation: none !important;
}

/* 列表布局 */
body.enh-list-layout #rightbar .enh-widget-card{ max-width: 100% !important; }

/* ==========================================================================
 * 六、响应式
 * ========================================================================== */
@media (max-width: 991.98px){
	#enh-music-panel, #enh-decor-panel{
		top: 56px;
		right: 10px;
		width: calc(100vw - 20px);
	}
	/* 移动端右侧栏在下方显示 */
	#rightbar{
		order: 3;
		margin-top: 1rem;
	}
}

/* ==========================================================================
 * 七、壁纸 4 种模式 + 卡片效果 + 特效开关（雪乃增强 v3）
 * ========================================================================== */
/* ---- 壁纸背景层 ---- */
.enh-wall-bg{
	position: fixed;
	inset: 0;
	z-index: -2;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	pointer-events: none;
	opacity: 1;
}
.enh-wall-bg-full{
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
	z-index: -2;
	pointer-events: none;
	opacity: 1;
}

/* ---- 默认：横幅壁纸（仅顶栏下方横幅区，背景色兜底） ---- */
html:not(.enh-wall-banner):not(.enh-wall-fullscreen):not(.enh-wall-transparent):not(.enh-wall-solid) .enh-wall-bg,
html.enh-wall-banner .enh-wall-bg{
	opacity: 1;
}
html:not(.enh-wall-fullscreen):not(.enh-wall-transparent) .enh-wall-bg-full{
	opacity: 0;
}

/* ---- 全屏壁纸：铺满全屏，不透明 ---- */
html.enh-wall-fullscreen .enh-wall-bg,
html.enh-wall-fullscreen .enh-wall-bg-full{
	opacity: 1 !important;
}

/* ---- 全屏透明：壁纸可调透明度 + 背景模糊 + 卡片透明 ---- */
html.enh-wall-transparent .enh-wall-bg,
html.enh-wall-transparent .enh-wall-bg-full{
	opacity: var(--enh-wall-opacity, 0.6) !important;
	filter: blur(var(--enh-wall-blur, 8px));
	-webkit-filter: blur(var(--enh-wall-blur, 8px));
}
html.enh-wall-transparent{
	backdrop-filter: none;
}

/* ---- 纯色背景 ---- */
html.enh-wall-solid{
	background-color: var(--enh-solid-color, #1f2430) !important;
}
html.enh-wall-solid .enh-wall-bg,
html.enh-wall-solid .enh-wall-bg-full{
	opacity: 0 !important;
}

/* ---- 壁纸模式 4 按钮自适应（一排放 4 个） ---- */
.enh-decor-seg-4{ gap: 4px; }

/* ---- 卡片样式：阴影 / 透明度 / 圆角 应用于首页文章卡片与右侧栏 ---- */
:root{
	--enh-shadow-strength: 14;
	--enh-card-shadow: 0 1.7rem 4rem rgba(50,50,93,.12), 0 0.5rem 1.5rem rgba(0,0,0,.07);
	--enh-card-bg-opacity: 1;
	--enh-card-bg-opacity-pct: 100%;
}
/* ===== 所有卡片统一应用（文章卡片 / 左栏 / 右栏 / 页脚 / 分页） ===== */
/* 全部卡片选择器：确保任何模式下透明度同步跟随 */
html .post.card,
html #rightbar .widget,
html #rightbar .enh-widget-card,
html #leftbar .widget,
html #leftbar .card,
html .site-footer.card,
html .argon-page,
html #primary .card,
html .card.card-bg,
html .pagination.card,
html .page-footer.card,
html #comments.card,
html .next-page.card,
html .post-content.card{
	box-shadow: var(--enh-card-shadow) !important;
	border-radius: var(--card-radius, var(--enh-radius, 4px)) !important;
}
/* 卡片背景透明度：无论横幅/全屏/透明壁纸/毛玻璃/普通态，统一用 --enh-card-bg-opacity 一个变量 */
/* 亮色模式 */
html .post.card,
html #rightbar .widget,
html #rightbar .enh-widget-card,
html #leftbar .widget,
html #leftbar .card,
html .site-footer.card,
html .argon-page,
html #primary .card,
html .card.card-bg,
html .pagination.card,
html .page-footer.card,
html #comments.card,
html .next-page.card,
html .post-content.card{
	background: rgba(255,255,255, var(--enh-card-bg-opacity, 1)) !important;
	background-color: rgba(255,255,255, var(--enh-card-bg-opacity, 1)) !important;
}
/* 暗色模式 */
html.darkmode .post.card,
html.darkmode #rightbar .widget,
html.darkmode #rightbar .enh-widget-card,
html.darkmode #leftbar .widget,
html.darkmode #leftbar .card,
html.darkmode .site-footer.card,
html.darkmode .argon-page,
html.darkmode #primary .card,
html.darkmode .card.card-bg,
html.darkmode .pagination.card,
html.darkmode .page-footer.card,
html.darkmode #comments.card,
html.darkmode .next-page.card,
html.darkmode .post-content.card{
	background: rgba(30,30,36, var(--enh-card-bg-opacity, 1)) !important;
	background-color: rgba(30,30,36, var(--enh-card-bg-opacity, 1)) !important;
}

/* ---- 扁平卡片（去掉边框和阴影） ---- */
html.enh-flat .post.card,
html.enh-flat #rightbar .widget,
html.enh-flat #rightbar .enh-widget-card,
html.enh-flat .card{
	box-shadow: none !important;
	border-color: rgba(0,0,0,.06) !important;
}

/* ---- 文章布局：列表（单列） vs 网格（瀑布流两列） ---- */
body.enh-list-layout .article-masonry{
	display: block !important;
}
body.enh-list-layout .article-masonry-col{
	width: 100% !important;
	max-width: 100% !important;
}

/* ---- 一键关特效（对准真实特效元素：雪花/桌宠/看板娘/仙女棒光标） ---- */
html.enh-fx-off .post.card,
html.enh-fx-off #rightbar .widget,
html.enh-fx-off #rightbar .enh-widget-card,
html.enh-fx-off .ghost,
html.enh-fx-off .post-preview{
	animation: none !important;
	transition: none !important;
	opacity: 1 !important;
	transform: none !important;
}
html.enh-fx-off .enh-wall-bg-full,
html.enh-fx-off .enh-wall-bg,
html.enh-fx-off #enh-wall-bg{
	animation: none !important;
}
/* 总开关一并隐藏：雪花 canvas / 走动桌宠 / Live2D 看板娘 / 3D 倾斜等装饰特效 */
html.enh-fx-off #snowfall,
html.enh-fx-off #zhuochong-wrap,
html.enh-fx-off #live2dcanvas,
html.enh-fx-off #live2d-widget,
html.enh-fx-off .enh-mouse-fx-layer{
	display: none !important;
}

/* ---- 鼠标点击特效开关 ---- */
html.enh-cursor-off *{ cursor: default !important; }

/* ---- 鼠标移动仙女棒特效开关 ---- */
html.enh-mousefx-off .enh-mouse-fx-layer,
html.enh-mousefx-off canvas.enh-mouse-fx{
	display: none !important;
}

/* ---- 看板娘 / 桌宠 开关（对准真实元素：#live2dcanvas / #zhuochong-wrap） ---- */
html.enh-kanban-off #live2dcanvas,
html.enh-kanban-off #live2d-widget,
html.enh-kanban-off canvas#live2dcanvas,
html.enh-kanban-off .l2dwidget,
html.enh-kanban-off #waifu-toggle,
html.enh-kanban-off #waifu{
	display: none !important;
}
html.enh-pet-off #zhuochong-wrap{
	display: none !important;
}

/* ---- 透明模式调节区块 ---- */
.enh-decor-card-opts{
	margin-top: 8px;
	padding: 10px;
	border-radius: 12px;
	background: rgba(0,0,0,.03);
}
html.darkmode .enh-decor-card-opts{ background: rgba(255,255,255,.05); }
.enh-decor-card-opts .enh-decor-section-title{ margin-top: 0; }

/* ---- 壁纸切换按钮 ---- */
.enh-decor-wall-switch{
	margin-top: 4px;
	background: var(--enh-primary);
	color: #fff;
	font-weight: 600;
}
.enh-decor-wall-switch:hover{ color: #fff; opacity: .85; }

/* ==========================================================================
 * 八、修复播放器图标拉伸 / 占位 / 布局
 * ========================================================================== */
/* 所有播放器图标按钮：防止 FontAwesome 图标被 flex 拉伸变形 */
.enh-music-controls button,
.enh-right-music-controls button,
.enh-mini-toggle,
.enh-music-mode,
.enh-music-prev,
.enh-music-play,
.enh-music-next,
.enh-music-listbtn,
.enh-music-lrc-btn,
.enh-mini-play{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: hidden;
	line-height: 1 !important;
}
.enh-music-controls button i,
.enh-right-music-controls button i,
.enh-mini-toggle i,
.enh-music-mode i,
.enh-music-prev i,
.enh-music-next i,
.enh-music-play i,
.enh-music-listbtn i,
.enh-music-lrc-btn i,
.enh-mini-play i{
	font-size: 14px !important;
	line-height: 1 !important;
	transform: none !important;
	width: auto !important;
	height: auto !important;
}
.enh-music-controls button:hover i,
.enh-right-music-controls button:hover i,
.enh-mini-toggle:hover i{
	transform: none !important;
}
/* 封面图严格正方形裁切，杜绝拉伸 */
.enh-music-cover,
.enh-music-cover-wrap,
#enh-music-panel .enh-music-cover,
#enh-right-music .enh-music-cover{
	overflow: hidden;
	flex-shrink: 0;
}
.enh-music-cover img,
.enh-music-cover-img{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center !important;
}
.enh-pl-cover,
.enh-pl-cover img{
	overflow: hidden;
}
.enh-pl-cover img{
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}
/* 顶栏音乐按钮图标旋转时保持居中 */
#navbar_enh_music{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* ==========================================================================
 * 九、装扮面板：动作按钮 / 切换按钮 / 一键恢复默认（本轮新增美化）
 * ========================================================================== */
/* 切换看板娘 / 切换桌宠 的动作按钮 */
.enh-decor-act{
	flex: 0 0 auto;
	width: auto;
	min-width: 68px;
	padding: 7px 14px;
	background: linear-gradient(135deg, #5b6bf0, #4a56c9);
	color: #fff !important;
	font-weight: 600;
	border-radius: 10px;
	box-shadow: 0 3px 10px rgba(74,86,201,.35);
	transition: all .2s;
}
html.darkmode .enh-decor-act{ background: linear-gradient(135deg, #6c7cf5, #5662d8); }
.enh-decor-act:hover{ color: #fff !important; opacity: .9; transform: translateY(-1px); }
.enh-decor-act:active{ transform: translateY(0); }
/* 点击转圈反馈 */
.enh-decor-act.enh-spin i{ animation: enh-rotate .45s ease-in-out; }
@keyframes enh-rotate{ from{ transform: rotate(0); } to{ transform: rotate(360deg); } }

/* 一键恢复默认设置 容器 + 按钮 + 说明 */
.enh-decor-reset-wrap{
	margin-top: 4px;
	padding: 12px;
	border-radius: 12px;
	background: linear-gradient(135deg, rgba(255,77,109,.08), rgba(255,77,109,.02));
	border: 1px dashed rgba(255,77,109,.4);
}
html.darkmode .enh-decor-reset-wrap{
	background: linear-gradient(135deg, rgba(255,77,109,.12), rgba(255,77,109,.04));
	border-color: rgba(255,77,109,.5);
}
.enh-decor-reset-all-btn{
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 9px 14px;
	border: none;
	border-radius: 10px;
	background: linear-gradient(135deg, #ff4d6d, #e6485f);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 3px 10px rgba(255,77,109,.35);
	transition: all .2s;
}
.enh-decor-reset-all-btn:hover{ opacity: .92; transform: translateY(-1px); }
.enh-decor-reset-all-btn:active{ transform: translateY(0); }
.enh-decor-reset-hint{
	margin: 8px 2px 0;
	font-size: 11px;
	line-height: 1.5;
	color: #999;
	text-align: center;
}
html.darkmode .enh-decor-reset-hint{ color: #888; }

/* ==========================================================================
 * 十、播放器歌单跳转按钮 + 歌曲信息悬浮卡片（本轮新增）
 * ========================================================================== */
/* 右栏音乐卡片底部的「查看完整歌单」按钮 */
.enh-right-music-playlistlink{
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px dashed rgba(0,0,0,.08);
}
html.darkmode .enh-right-music-playlistlink{ border-top-color: rgba(255,255,255,.1); }
.enh-right-music-playlistlink a{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 8px 10px;
	border-radius: 10px;
	background: rgba(var(--enh-primary-rgb), .08);
	color: var(--enh-primary);
	font-size: 12.5px;
	font-weight: 600;
	text-decoration: none;
	transition: all .2s;
}
.enh-right-music-playlistlink a:hover{
	background: var(--enh-primary);
	color: #fff;
}
/* 顶栏面板头部的歌单外链按钮（<a> 复用 .enh-music-lrc-btn 样式） */
#enh-music-panel a.enh-music-lrc-btn{
	text-decoration: none;
	color: #888;
}
#enh-music-panel a.enh-music-lrc-btn:visited{ color: #888; }
#enh-music-panel a.enh-music-lrc-btn:hover{ color: var(--enh-primary); }

/* 歌曲信息悬浮卡片（显示完整歌名/歌手，可选中复制） */
.enh-song-card{
	position: fixed;
	z-index: 10001;
	min-width: 220px;
	max-width: 320px;
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(255,255,255,.98);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border: 1px solid rgba(0,0,0,.08);
	box-shadow: 0 12px 32px rgba(0,0,0,.18);
	opacity: 0;
	transform: translateY(6px);
	pointer-events: none;
	transition: opacity .15s, transform .15s;
	user-select: text;
}
html.darkmode .enh-song-card{
	background: rgba(30,30,36,.98);
	border-color: rgba(255,255,255,.1);
	box-shadow: 0 12px 32px rgba(0,0,0,.5);
}
.enh-song-card.enh-show{
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}
.enh-song-card-title{
	font-size: 13.5px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--text-main, #3f3f3f);
	word-break: break-all;
}
html.darkmode .enh-song-card-title{ color: #e5e5e5; }
.enh-song-card-artist{
	font-size: 12px;
	line-height: 1.5;
	color: #888;
	margin-top: 4px;
	word-break: break-all;
}
.enh-song-card-copy{
	margin-top: 10px;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	border: none;
	border-radius: 8px;
	background: rgba(var(--enh-primary-rgb), .1);
	color: var(--enh-primary);
	font-size: 12px;
	font-weight: 600;
	padding: 5px 12px;
	cursor: pointer;
	transition: all .2s;
}
.enh-song-card-copy:hover{ background: var(--enh-primary); color: #fff; }
