/* 频道广场样式 */ ::-webkit-scrollbar { display: none !important; width: 0 !important; height: 0 !important; } .discover-page { display: flex; flex-direction: column; height: 100vh; background: #F6F6F6; overflow: hidden; } /* 分类筛选 */ .filter-bar { flex-shrink: 0; padding: 16rpx 32rpx; white-space: nowrap; background: #FFFFFF; border-bottom: 1rpx solid #F5F5F5; } .filter-tag { display: inline-block; padding: 12rpx 28rpx; border-radius: 999rpx; font-size: 24rpx; font-weight: 500; margin-right: 12rpx; background: #F5F5F5; color: #666; transition: all 0.2s; } .filter-tag.active { background: #1A1A1A; color: #FFF; } /* 网格滚动区 */ .grid-scroll { flex: 1; overflow: hidden; } .grid { display: flex; flex-wrap: wrap; padding: 20rpx 20rpx 0; gap: 16rpx; } .grid-item { width: calc(33.33% - 12rpx); box-sizing: border-box; background: #FFFFFF; border-radius: 28rpx; display: flex; flex-direction: column; align-items: center; padding: 24rpx 12rpx 20rpx; box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.04); } .item-icon { width: 96rpx; height: 96rpx; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 14rpx; overflow: hidden; } .icon-emoji { font-size: 44rpx; } .item-name { font-size: 24rpx; font-weight: 700; color: #333; text-align: center; line-height: 1.3; margin-bottom: 10rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; } /* 类型标签行 */ .item-tag-row { margin-bottom: 14rpx; min-height: 36rpx; display: flex; align-items: center; justify-content: center; } /* 行动按钮(通用容器) */ .sub-btn { width: 100%; height: 60rpx; border-radius: 999rpx; display: flex; align-items: center; justify-content: center; gap: 8rpx; font-size: 22rpx; font-weight: 700; transition: opacity 0.2s, transform 0.15s; } .sub-btn:active { transform: scale(0.95); opacity: 0.85; } /* 已订阅 */ .sub-btn.subscribed { background: #F0F0F0; color: #999; } /* 免费收听 */ .sub-btn.free { background: linear-gradient(135deg, #2ECC71, #27AE60); color: #FFF; box-shadow: 0 4rpx 12rpx rgba(0, 200, 83, 0.25); } /* VIP专享 */ .sub-btn.vip { background: linear-gradient(135deg, #F59E0B, #D97706); color: #FFF; box-shadow: 0 4rpx 12rpx rgba(245, 158, 11, 0.3); } /* 付费订阅 */ .sub-btn.paid { background: linear-gradient(135deg, #FF9D42, #FF7832); color: #FFF; box-shadow: 0 4rpx 12rpx rgba(255, 157, 66, 0.3); } /* ========== 骨架屏 ========== */ @keyframes skele-shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } .skele-bg { background: linear-gradient(90deg, #F0F0F0 25%, #E8E8E8 37%, #F0F0F0 63%); background-size: 400% 100%; animation: skele-shimmer 1.4s ease infinite; } .skeleton-item { background: #FFF; } .skele-circle { width: 96rpx; height: 96rpx; border-radius: 50%; margin-bottom: 14rpx; } .skele-line { width: 80%; height: 28rpx; border-radius: 6rpx; margin-bottom: 24rpx; } .skele-btn { width: 100%; height: 60rpx; border-radius: 999rpx; } /* 空状态 */ .empty-wrap { padding: 80rpx 0; } /* VIP横幅 */ .vip-banner { margin: 32rpx 20rpx; padding: 28rpx; background: linear-gradient(135deg, #1F2937, #111827); border-radius: 32rpx; display: flex; align-items: center; box-shadow: 0 12rpx 32rpx rgba(0, 0, 0, 0.15); } .vip-banner-icon { width: 80rpx; height: 80rpx; border-radius: 50%; background: rgba(251, 191, 36, 0.2); display: flex; align-items: center; justify-content: center; margin-right: 20rpx; flex-shrink: 0; font-size: 36rpx; } .vip-banner-info { flex: 1; overflow: hidden; } .vip-banner-title { display: block; font-size: 26rpx; font-weight: 700; color: #FDE68A; } .vip-banner-desc { display: block; font-size: 20rpx; color: #9CA3AF; margin-top: 4rpx; } .vip-banner-price { background: #FBBF24; color: #1F2937; padding: 12rpx 20rpx; border-radius: 999rpx; font-size: 22rpx; font-weight: 700; flex-shrink: 0; }