.ui-act { background: var(--color-bg-card); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); margin-bottom: var(--spacing-3); } .ui-act__cover { position: relative; width: 100%; height: 240rpx; background: var(--color-bg-disabled); } .ui-act__cover-img { width: 100%; height: 100%; display: block; } .ui-act__cover-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--color-primary-light); } .ui-act__cover-icon { width: 80rpx; height: 80rpx; background: var(--color-primary); opacity: 0.4; border-radius: var(--radius-md); } .ui-act__fee-badge { position: absolute; top: var(--spacing-2); right: var(--spacing-2); padding: 6rpx 14rpx; border-radius: var(--radius-full); font-size: var(--font-size-xs); font-weight: var(--font-weight-medium); color: #FFFFFF; } .ui-act__fee-badge--free { background: var(--color-success); } .ui-act__fee-badge--paid { background: var(--color-text-tertiary); } .ui-act__body { padding: var(--spacing-3) var(--spacing-4); } .ui-act__title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-text-primary); line-height: var(--line-height-tight); margin-bottom: var(--spacing-1); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .ui-act__meta { font-size: var(--font-size-sm); color: var(--color-text-tertiary); line-height: var(--line-height-normal); margin-top: 4rpx; } .ui-act__organizer { color: var(--color-text-secondary); } .ui-act__intro { margin-top: var(--spacing-2); font-size: var(--font-size-md); color: var(--color-text-secondary); line-height: var(--line-height-relaxed); display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; } .ui-act__footer { display: flex; justify-content: space-between; align-items: center; margin-top: var(--spacing-3); } .ui-act__capacity { font-size: var(--font-size-xs); color: var(--color-text-tertiary); } .ui-act--compact { display: flex; height: 200rpx; } .ui-act--compact .ui-act__cover { width: 200rpx; height: 200rpx; flex-shrink: 0; } .ui-act--compact .ui-act__body { flex: 1; min-width: 0; padding: var(--spacing-2) var(--spacing-3); } .ui-act--compact .ui-act__intro { display: none; }