.challenge-card { background: $app-surface; border-radius: 16rpx; margin: 0 20rpx 12rpx 20rpx; padding: 14rpx 16rpx; border-left: 6rpx solid $status-success; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06); } .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4rpx; } .card-title { font-size: 26rpx; font-weight: 700; color: $uni-text-color; } .card-status { font-size: 20rpx; padding: 2rpx 10rpx; border-radius: 999rpx; } .status-active { background: $status-success-soft-2; color: $status-success-strong-2; } .status-completed { background: $facade-fill-slate; color: $uni-text-color-secondary; } .status-cancelled { background: $status-danger-soft; color: $status-danger-deep; } .card-desc { font-size: 22rpx; color: $uni-text-color-secondary; line-height: 1.4; margin-bottom: 8rpx; display: block; } /* 待同意提示区 */ .pending-section { background: $status-warning-soft; border-radius: 10rpx; padding: 10rpx 12rpx; margin-bottom: 6rpx; } .pending-hint { font-size: 22rpx; color: #B45309; font-weight: 600; } /* 成员状态徽标行 */ .member-status-row { display: flex; flex-wrap: wrap; gap: 8rpx; margin-bottom: 6rpx; } .member-status-tag { font-size: 18rpx; padding: 2rpx 10rpx; border-radius: 999rpx; } .member-rejected { background: $status-danger-soft; color: $status-danger-deep; } /* 目标区 */ .target-section { background: $facade-fill-slate-50; border-radius: 10rpx; padding: 10rpx 12rpx; margin-bottom: 6rpx; } .target-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6rpx; } .target-label { font-size: 22rpx; color: $facade-text-slate-deep; font-weight: 600; } .target-value { font-size: 26rpx; color: $status-success; font-weight: 700; } .card-progress { display: flex; align-items: center; gap: 10rpx; margin-top: 2rpx; } .progress-bar-bg { flex: 1; height: 10rpx; background: $uni-border-color-light; border-radius: 999rpx; overflow: hidden; } .progress-bar-fill { height: 100%; background: linear-gradient(90deg, $status-success, $status-success-light-3); border-radius: 999rpx; transition: width 0.5s ease; } .progress-text { font-size: 20rpx; color: $status-success; font-weight: 600; min-width: 90rpx; text-align: right; } /* 成员进度 */ .member-list { margin-top: 2rpx; } .member-row { display: flex; align-items: center; gap: 8rpx; margin-top: 6rpx; } .member-name { font-size: 20rpx; color: $facade-text-slate-deep; width: 90rpx; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .member-bar-wrap { flex: 1; } .member-bar-bg { height: 8rpx; background: $uni-border-color-light; border-radius: 999rpx; overflow: hidden; } .member-bar-fill { height: 100%; background: linear-gradient(90deg, $dim-wisdom, $facade-violet); border-radius: 999rpx; } .member-val { font-size: 18rpx; color: $uni-text-color-secondary; min-width: 80rpx; text-align: right; } .member-done { font-size: 22rpx; color: $status-success; font-weight: 700; } /* 详情行(合并为单行) */ .card-detail-row { display: flex; align-items: center; gap: 6rpx; margin-top: 6rpx; flex-wrap: wrap; } .detail-label { font-size: 20rpx; color: $app-text-subtle; } .detail-val { font-size: 20rpx; color: $facade-text-slate-700; } .detail-val.reward { color: $brand-primary; font-weight: 600; } .detail-val.badge { color: $dim-wisdom; } .card-action { margin-top: 8rpx; display: flex; justify-content: flex-end; } .checkin-btn { padding: 10rpx 18rpx; border-radius: 999rpx; background: $status-success; color: $app-surface; font-size: 22rpx; font-weight: 600; } .respond-btn { padding: 10rpx 24rpx; border-radius: 999rpx; font-size: 22rpx; font-weight: 600; margin-left: 12rpx; } .respond-agree { background: $status-success; color: $app-surface; } .respond-reject { background: $app-surface; color: $status-danger-deep; border: 2rpx solid #FCA5A5; }