/* 积分头部 */ .points-header { background: linear-gradient(135deg, var(--accent-color), #FFC93C); border-radius: 20rpx; padding: 30rpx; margin-bottom: 20rpx; } .points-info { text-align: center; margin-bottom: 24rpx; } .points-info .label { display: block; font-size: 26rpx; color: rgba(0, 0, 0, 0.6); margin-bottom: 8rpx; } .points-info .value { font-size: 64rpx; font-weight: 700; color: #333; } .points-actions { display: flex; justify-content: center; gap: 60rpx; } .action-btn { display: flex; flex-direction: column; align-items: center; } .action-btn image { width: 48rpx; height: 48rpx; margin-bottom: 8rpx; } .action-btn text { font-size: 24rpx; color: rgba(0, 0, 0, 0.7); } /* 商品区域 */ .products-section { background: #fff; border-radius: 20rpx; padding: 24rpx; } .section-title { font-size: 32rpx; font-weight: 600; margin-bottom: 20rpx; } .products-grid { display: flex; flex-wrap: wrap; gap: 20rpx; } .product-item { width: calc(50% - 10rpx); background: var(--light-bg); border-radius: 16rpx; overflow: hidden; } .product-image { width: 100%; height: 280rpx; background: #eee; } .product-info { padding: 16rpx; } .product-name { display: block; font-size: 28rpx; font-weight: 500; margin-bottom: 8rpx; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .product-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8rpx; } .points-need { display: flex; align-items: baseline; color: var(--primary-color); } .points-need .num { font-size: 32rpx; font-weight: 600; } .points-need .unit { font-size: 22rpx; margin-left: 4rpx; } .stock { font-size: 22rpx; color: var(--text-secondary); } .store-name { font-size: 22rpx; color: var(--secondary-color); } /* 商品弹窗 */ .product-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.6); display: flex; align-items: flex-end; z-index: 999; } .modal-content { background: #fff; border-radius: 30rpx 30rpx 0 0; padding: 30rpx; width: 100%; max-height: 80vh; } .modal-image { width: 100%; height: 400rpx; border-radius: 16rpx; margin-bottom: 20rpx; } .modal-info { margin-bottom: 30rpx; } .modal-name { display: block; font-size: 36rpx; font-weight: 600; margin-bottom: 12rpx; } .modal-desc { display: block; font-size: 26rpx; color: var(--text-secondary); margin-bottom: 16rpx; } .modal-meta { display: flex; align-items: center; gap: 20rpx; margin-bottom: 16rpx; } .modal-meta .points-need .num { font-size: 40rpx; } .original-price { font-size: 24rpx; color: var(--text-secondary); text-decoration: line-through; } .store-info { display: flex; align-items: center; margin-bottom: 8rpx; } .store-label { font-size: 26rpx; color: var(--text-secondary); margin-right: 8rpx; } .store-info .store-name { font-size: 26rpx; } .store-address { font-size: 24rpx; color: var(--text-secondary); } .btn-exchange { width: 100%; background: linear-gradient(135deg, var(--primary-color), var(--primary-light)); color: #fff; border: none; border-radius: 40rpx; padding: 24rpx; font-size: 32rpx; font-weight: 500; } .btn-exchange[disabled] { background: #ccc; } /* 空状态 */ .empty-state { padding: 100rpx 0; } .empty-state image { width: 200rpx; height: 200rpx; }