page { background-color: #FAFAFA; height: 100%; } .container { min-height: 100%; padding: 0 40rpx 40rpx; } /* 顶部标题 */ .header { display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: 40rpx 0; margin-bottom: 20rpx; } .back-btn { font-size: 36rpx; color: #A0A0A0; padding: 20rpx; margin-left: -20rpx; } .header-title { font-family: "Noto Serif SC", serif; font-size: 32rpx; color: #2D2D2D; letter-spacing: 4rpx; } .header-spacer { width: 76rpx; } /* 收藏列表 */ .favorites-scroll { height: calc(100vh - 200rpx); } .favorites-grid { display: flex; flex-direction: column; gap: 30rpx; } .favorite-item { background: #FFFFFF; border-radius: 16rpx; padding: 40rpx; box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.04); transition: transform 0.2s; } .favorite-item:active { transform: scale(0.98); } .favorite-item .name { font-family: "Noto Serif SC", serif; font-size: 48rpx; color: #2D2D2D; margin-bottom: 16rpx; letter-spacing: 8rpx; } .favorite-item .origin { font-size: 24rpx; color: #888888; line-height: 1.6; } /* 空状态 */ .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding-top: 200rpx; } .empty-icon { font-family: "Noto Serif SC", serif; font-size: 120rpx; color: #E0E0E0; margin-bottom: 40rpx; } .empty-text { font-family: "Noto Serif SC", serif; font-size: 32rpx; color: #A0A0A0; letter-spacing: 4rpx; margin-bottom: 20rpx; } .empty-subtext { font-size: 24rpx; color: #C0C0C0; } /* 半屏弹窗 */ .detail-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.3); z-index: 100; opacity: 0; visibility: hidden; transition: all 0.3s ease; display: flex; align-items: flex-end; } .detail-modal.visible { opacity: 1; visibility: visible; } .detail-content { width: 100%; background: #FFFFFF; border-radius: 40rpx 40rpx 0 0; padding: 60rpx 50rpx 80rpx; transform: translateY(100%); transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); } .detail-modal.visible .detail-content { transform: translateY(0); } .detail-close { position: absolute; top: 30rpx; right: 40rpx; font-size: 48rpx; color: #C0C0C0; padding: 20rpx; } .detail-name { font-family: "Noto Serif SC", serif; font-size: 72rpx; color: #2D2D2D; text-align: center; margin-bottom: 30rpx; letter-spacing: 16rpx; } .detail-origin { font-size: 26rpx; color: #888888; text-align: center; margin-bottom: 40rpx; line-height: 1.8; } .detail-desc { font-size: 28rpx; color: #4A4A4A; line-height: 2; text-align: justify; margin-bottom: 40rpx; padding: 0 20rpx; } .detail-meta { display: flex; justify-content: center; gap: 40rpx; margin-bottom: 50rpx; } .detail-tone, .detail-score { font-size: 22rpx; color: #A0A0A0; letter-spacing: 2rpx; } .detail-actions { display: flex; justify-content: center; gap: 40rpx; } .detail-btn { padding: 20rpx 60rpx; border-radius: 40rpx; font-size: 26rpx; letter-spacing: 4rpx; transition: all 0.2s; } .share-btn { background: #2D2D2D; color: #FFFFFF; } .share-btn:active { background: #1A1A1A; } .remove-btn { background: #F5F5F5; color: #888888; } .remove-btn:active { background: #E8E8E8; }