.favorites-page { background: #F4F6F0; height: 100vh; padding: 24rpx; box-sizing: border-box; display: flex; flex-direction: column; overflow: hidden; } .category-filter { display: flex; gap: 16rpx; margin-bottom: 24rpx; flex-shrink: 0; } .filter-chip { padding: 12rpx 32rpx; background: #fff; border: 2rpx solid transparent; border-radius: 40rpx; font-size: 26rpx; color: #6B7280; transition: all 0.2s; font-weight: 500; } .filter-chip.active { background: #558B2F; color: #fff; font-weight: 600; box-shadow: 0 4rpx 12rpx rgba(85, 139, 47, 0.2); } .fav-scroll { flex: 1; height: 0; width: 100%; } .fav-list { display: flex; flex-direction: column; gap: 24rpx; } .fav-item { background: white; border-radius: 20rpx; padding: 24rpx; display: flex; gap: 24rpx; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.02); } .fav-item:active { background: #fafafa; } .fav-img { width: 160rpx; height: 160rpx; border-radius: 16rpx; flex-shrink: 0; background: #f0f0f0; } .fav-info { flex: 1; display: flex; flex-direction: column; justify-content: flex-start; min-width: 0; height: 160rpx; } .fav-title { font-size: 30rpx; font-weight: 600; color: #1F2937; margin-bottom: 4rpx; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.4; } .fav-subtitle { font-size: 24rpx; color: #9CA3AF; font-style: italic; margin-bottom: auto; /* Push meta down */ display: block; } .fav-user-row { display: flex; align-items: center; gap: 12rpx; margin-bottom: auto; /* Push meta down */ margin-top: 8rpx; } .user-nickname { font-size: 24rpx; color: #6B7280; } .fav-meta { display: flex; align-items: center; gap: 16rpx; margin-top: 12rpx; } .meta-diff { font-size: 22rpx; color: #F59E0B; background: #FFFBEB; padding: 4rpx 12rpx; border-radius: 8rpx; } .meta-time { font-size: 22rpx; color: #9CA3AF; } .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 0; } .empty-text { font-size: 28rpx; color: #9CA3AF; margin-top: 16rpx; } .loading-footer { padding: 32rpx; display: flex; justify-content: center; } .no-more-text { text-align: center; padding: 32rpx; color: #ccc; font-size: 24rpx; } .delete-btn { background-color: #EF4444; color: white; width: 140rpx; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 28rpx; font-weight: 500; border-top-right-radius: 20rpx; border-bottom-right-radius: 20rpx; }