.section { margin: 16rpx 20rpx; } /* ===== 头部 ===== */ .section-header { display: flex; flex-direction: row; justify-content: space-between; align-items: center; margin-bottom: 16rpx; } .section-header-left { display: flex; flex-direction: row; align-items: center; } .section-icon-wrap { width: 44rpx; height: 44rpx; border-radius: 12rpx; background: linear-gradient(135deg, #FF6B9D, #FF8FB1); display: flex; align-items: center; justify-content: center; margin-right: 12rpx; } .section-icon { font-size: 24rpx; } .section-title { font-size: 32rpx; font-weight: 700; color: $uni-text-color; letter-spacing: 1rpx; } .section-more { display: flex; flex-direction: row; align-items: center; padding: 8rpx 20rpx; background: $facade-fill-slate; border-radius: 24rpx; } .section-more-text { font-size: 24rpx; color: $uni-text-color-secondary; margin-right: 4rpx; } .section-more-arrow { font-size: 20rpx; color: $app-text-subtle; } /* ===== 空状态 ===== */ .empty-state { display: flex; flex-direction: column; align-items: center; padding: 30rpx 0; } .empty-icon { font-size: 64rpx; margin-bottom: 16rpx; } .empty-tip { font-size: 26rpx; color: $app-text-subtle; } /* ===== 活动轮播 ===== */ .activity-carousel { width: 100%; margin: 0 -20rpx; } .activity-swiper { width: 100%; height: 210rpx; } .activity-swiper .swiper-slide { width: 100%; height: 100%; } /* 轮播指示点 */ .swiper-dots { display: flex; justify-content: center; align-items: center; gap: 8rpx; margin-top: 12rpx; } .dot { width: 8rpx; height: 8rpx; border-radius: 50%; background: #D1D5DB; transition: width 0.3s ease, border-radius 0.3s ease, background-color 0.3s ease; } .dot.active { width: 32rpx; border-radius: 4rpx; background: $brand-primary; } /* ===== 活动卡片(行布局) ===== */ .activity-card { background: $app-surface; border-radius: 16rpx; overflow: hidden; box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.06); display: flex; flex-direction: row; height: 100%; } .activity-card:active { opacity: 0.8; } /* 封面图 — 占总宽度1/3,占满卡片高度 */ .card-cover-img { width: 33.33%; height: 100%; flex-shrink: 0; background: $facade-fill-slate; } /* 右侧信息区 — 文字右对齐 */ .card-info { flex: 1; padding: 16rpx; display: flex; flex-direction: column; justify-content: space-between; align-items: stretch; text-align: right; min-width: 0; } /* 标题 */ .card-title { font-size: 28rpx; font-weight: bold; color: $facade-text-strong; margin-bottom: 8rpx; } .line-clamp-1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* 时间和维度标签 */ .card-meta-row { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; margin-bottom: 8rpx; } .card-time { display: flex; flex-direction: row; align-items: center; margin-right: 16rpx; } .meta-icon { font-size: 22rpx; margin-right: 6rpx; } .meta-text { font-size: 24rpx; color: $uni-text-color-secondary; } .card-badges { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8rpx; } .card-badge { width: 36rpx; height: 36rpx; border-radius: 50%; border: 2rpx solid; display: flex; align-items: center; justify-content: center; background: transparent; } .badge-icon { font-size: 20rpx; line-height: 1; } /* 底部:状态 + 价格 */ .card-bottom { display: flex; flex-direction: row; align-items: center; justify-content: flex-end; gap: 12rpx; } .card-status { font-size: 20rpx; padding: 2rpx 10rpx; border-radius: 8rpx; background: $mat-green-tint; color: $mat-green-strong; } .card-status.status-upcoming { background: $mat-blue-tint; color: $mat-blue-strong; } .card-status.status-ended { background: $facade-fill-2; color: $facade-text-muted; } .card-price { font-size: 24rpx; font-weight: bold; color: $brand-primary; } .card-price.member-teaser { color: $brand-primary; text-decoration: underline; } .card-price-free { font-size: 24rpx; font-weight: 600; color: $status-success-2; }