/* 仅保留音频页面专属样式，全局/Logo栏样式全部复用public.css */

/* 页面容器样式补充（匹配public.css） - body/container 基础样式由 public.css 统一管理 */

/* 节目头部信息区 */
.audio-header {
	margin: 0 4vw;
	padding: 4vw;
	background-color: #fff;
	/* margin-bottom: 6vw; */
	border: 1px solid #eee;
	border-radius: 2vw;
	box-sizing: border-box;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.audio-info {
	display: flex;
	gap: 3vw;
	margin-bottom: 3vw;
}

.audio-cover {
	width: 28vw;
	height: 28vw;
	/* border-radius: 2vw; */
	overflow: hidden;
	/* border: 1px solid #f84845; */
	flex-shrink: 0;
}

.audio-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.audio-title-wrap h2 {
	font-size: 4.5vw;
	color: #000;
	margin-bottom: 1vw;
	display: -webkit-box;
	display: -moz-box;
	display: box;
	-webkit-line-clamp: 2;
	-moz-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	-moz-box-orient: vertical;
	box-orient: vertical;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.2;
	max-height: 10.8vw;
	font-size: clamp(3.5vw, 4.5vw, 5vw);
}

.audio-title-wrap p {
	font-size: 3.2vw;
	color: #7b7b7b;
}

/* 收藏按钮 */
.fav-btn {
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1.5vw;
}

.fav-btn .fav-icon {
	width: 5.5vw;
	height: 5.5vw;
	transition: transform 0.2s ease;
}

.fav-btn:active .fav-icon {
	transform: scale(0.85);
}

.fav-btn.fav-active .fav-icon {
	animation: favPop 0.3s ease;
}

@keyframes favPop {
	0% { transform: scale(1); }
	50% { transform: scale(1.3); }
	100% { transform: scale(1); }
}

.audio-desc {
	font-size: 2.7vw;
	color: #7b7b7b;
	line-height: 1.6;
	padding-top: 2vw;
	border-top: 1px dashed #7b7b7b;
}
.audio-desc-inner {
	word-wrap: break-word;
	overflow-wrap: break-word;
	max-height: 50vw;
	overflow-y: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.audio-desc-inner::-webkit-scrollbar {
	display: none;
}

/* 目录区 */
.catalog-wrap {
	background-color: #fff;
	margin: 3vw 4vw;
	/* margin-top: 6vw !important; */
	padding: 0 4vw;
}

.catalog-title {
	font-size: 4.2vw;
	font-weight: bold;
	color: #333;
	padding: 3vw 0;
	border-bottom: 1px solid #cccccc;
}

.last-learn {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 3vw 0;
	border-bottom: 1px solid #cccccc;
}

.last-learn-text {
	font-size: 3.2vw;
	color: #666;
}

.continue-btn {
	background-color: #f84845;
	color: #fff;
	border: none;
	padding: 1vw 3vw;
	border-radius: 4vw;
	font-size: 2.8vw;
}

/* 音频列表 */
.audio-list {
	padding: 2vw 0;
}

.audio-item {
	display: flex;
	align-items: center;
	padding: 3vw 0;
	border-bottom: 1px solid #eee;
}

/* 已学习的item样式 */

.audio-num {
	font-size: 3.2vw;
	color: #999;
	width: 6vw;
	text-align: center;
}

.audio-item.learned .audio-num {
	color: #f84845;
}

.audio-item-content {
	flex: 1;
	margin-left: 0;
}

.audio-item-title {
	font-size: 3.5vw;
	color: #333;
	margin-bottom: 1vw;
}

.audio-item.learned .audio-item-title {
	color: #f84845;
	font-weight: bold;
}

.audio-item-desc {
	font-size: 2.8vw;
	color: #999;
	display: flex;
	gap: 2vw;
}

.learn-percent {
	color: #f84845;
}

/* 底部播放栏 */
.audio-player-bar {
	position: fixed;
	bottom: -100%;
	left: 0;
	width: 100%;
	max-width: 480px;
	background-color: #fff;
	background: #fff1f1;
	border-radius: 5vw 5vw 0 0;
	padding: 2vw 4vw;
	z-index: 99;
	transition: bottom 1s ease-in-out;
}

.player-main {
	display: flex;
	align-items: center;
	gap: 3vw;
	margin-bottom: 2vw;
}

.player-cover {
	width: 10vw;
	height: 10vw;
	border-radius: 1vw;
	overflow: hidden;
}

.player-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.player-info {
	display: none;
}

.player-info-right {
	flex: 1;
	min-width: 0;
}

.player-title {
	font-size: 3.2vw;
	color: #333;
	margin-bottom: 0.5vw;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.player-subtitle {
	font-size: 2.5vw;
	color: #999;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.progress-container {
	display: flex;
	align-items: center;
	gap: 1vw;
}

.player-controls-row {
	display: flex;
	align-items: center;
	gap: 2vw;
	margin-top: 2vw;
}

.player-buttons {
	display: flex;
	gap: 1vw;
}

.control-btn {
	background-color: #fff;
	box-shadow: 0vw 0.1vw 1.6vw 0.1vw rgba(235, 64, 62, 0.2);
	color: #fff;
	border: none;
	/* padding: 1.0vw; */
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 8vw;
	height: 8vw;
}

.control-btn img {
	width: 80%;
	height: 80%;
	object-fit: contain;
	border-radius: 50%;
}

/* 放大播放暂停图标 */
.control-btn.play-btn img {
	transform: scale(1.3);
}

.progress-container {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 1vw;
}

.current-time,
.total-time {
	font-size: 2.5vw;
	color: #999;
	width: 10vw;
	text-align: center;
}

.progress-bar {
	flex: 1;
	height: 2vw;
	background-color: #eee;
	border-radius: 1vw;
	position: relative;
	cursor: pointer;
	touch-action: none;
}

.progress {
	height: 100%;
	background-color: #f84845;
	border-radius: 1vw;
	position: absolute;
	left: 0;
	top: 0;
}

.progress-handle {
	width: 6vw;
	height: 6vw;
	background-color: #f84845;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	cursor: pointer;
	box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
	touch-action: none;
}

/* 清除浮动 */
.audio-player-bar::after {
	content: "";
	display: table;
	clear: both;
}

/* 分页控件 */
.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 3vw 0;
	gap: 2vw;
	margin-bottom: 5vw;
}

.prev-page,
.next-page {
	background-color: #f84845;
	color: #fff;
	border: none;
	padding: 1.5vw 3vw;
	border-radius: 4vw;
	font-size: 2.8vw;
	cursor: pointer;
}

.page-info {
	display: flex;
	align-items: center;
	gap: 1vw;
	font-size: 3vw;
	color: #666;
}

.page-input {
	width: 10vw;
	height: 6vw;
	border: 1px solid #ddd;
	border-radius: 1vw;
	text-align: center;
	font-size: 3vw;
	padding: 0;
}

.total-pages {
	color: #f84845;
	font-weight: bold;
}
