/* 页面容器 */ .page-container { min-height: 100vh; background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%); font-family: 'PingFang SC', 'Helvetica Neue', Arial, sans-serif; display: flex; flex-direction: column; box-sizing: border-box; } /* 步骤指示器 */ .step-indicator { display: flex; align-items: center; justify-content: space-between; padding: 32rpx; background: #FFFFFF; box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.05); margin-bottom: 24rpx; width: 100%; box-sizing: border-box; } .step-item { display: flex; flex-direction: column; align-items: center; flex: 1; } .step-number { width: 48rpx; height: 48rpx; border-radius: 50%; background: #E5E5E5; display: flex; align-items: center; justify-content: center; font-size: 24rpx; font-weight: 600; color: #999; margin-bottom: 8rpx; transition: all 0.3s ease; } .step-text { font-size: 20rpx; color: #999; transition: all 0.3s ease; } .step-item.active .step-number { background: #007AFF; color: #FFFFFF; box-shadow: 0 0 0 8rpx rgba(0,122,255,0.1); } .step-item.active .step-text { color: #007AFF; font-weight: 500; } .step-line { flex: 1; height: 2rpx; background: #E5E5E5; margin: 0 16rpx; transition: all 0.3s ease; } .step-line.active { background: #007AFF; } /* 头部样式 */ .page-header { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10rpx); box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.05); padding: 28rpx 0; text-align: center; position: sticky; top: 0; z-index: 10; } .header-title { font-size: 30rpx; font-weight: 700; color: #2c3e50; letter-spacing: 1rpx; } /* 主要内容区域 */ .main-content { flex: 1; padding: 24rpx; display: flex; flex-direction: column; gap: 24rpx; padding-bottom: 48rpx; box-sizing: border-box; } /* 卡片基础样式 */ .info-card, .control-card, .result-card { background: rgba(255, 255, 255, 0.95); border-radius: 24rpx; padding: 32rpx; box-shadow: 0 6rpx 24rpx rgba(0,0,0,0.08); backdrop-filter: blur(12rpx); border: 1rpx solid rgba(255, 255, 255, 0.4); transition: all 0.3s ease; box-sizing: border-box; } .info-card:hover, .control-card:hover, .result-card:hover { box-shadow: 0 8rpx 32rpx rgba(0,0,0,0.12); transform: translateY(-4rpx); background: rgba(255, 255, 255, 0.98); } /* 卡片标题 */ .card-subtitle { font-size: 26rpx; font-weight: 600; color: #64748b; margin-bottom: 24rpx; padding-bottom: 16rpx; border-bottom: 1rpx solid #f1f5f9; } /* 信息行样式 */ .info-row { display: flex; justify-content: space-between; align-items: center; padding: 16rpx 0; border-bottom: 1rpx solid #f8fafc; } .info-row:last-child { border-bottom: none; } .info-label { font-size: 26rpx; color: #64748b; font-weight: 500; } .info-value { font-size: 26rpx; font-weight: 600; color: #2c3e50; } .info-value.price { color: #ef4444; font-size: 32rpx; font-weight: 700; } /* 提示信息 */ .info-hint { font-size: 22rpx; color: #94a3b8; text-align: center; margin-top: 20rpx; padding-top: 20rpx; border-top: 1rpx solid #f1f5f9; } /* 数量控制 */ .quantity-box { display: flex; align-items: center; gap: 24rpx; margin-top: 12rpx; justify-content: center; } .quantity-btn { width: 80rpx; height: 80rpx; border-radius: 40rpx; font-size: 36rpx; font-weight: bold; background: rgba(255, 255, 255, 0.9); color: #3b82f6; border: 2rpx solid rgba(96, 165, 250, 0.4); backdrop-filter: blur(12rpx); display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.08); } .quantity-btn:hover { background: rgba(59, 130, 246, 0.1); border-color: rgba(59, 130, 246, 0.6); transform: scale(1.1); } .quantity-btn.minus:hover { background: rgba(239, 68, 68, 0.1); border-color: rgba(239, 68, 68, 0.6); color: #ef4444; } .quantity-btn.plus:hover { background: rgba(16, 185, 129, 0.1); border-color: rgba(16, 185, 129, 0.6); color: #10b981; } .quantity-input { width: 160rpx; height: 80rpx; border: 2rpx solid rgba(96, 165, 250, 0.4); border-radius: 16rpx; padding: 0 24rpx; font-size: 28rpx; font-weight: 600; text-align: center; color: #2c3e50; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(12rpx); box-shadow: inset 0 2rpx 8rpx rgba(0,0,0,0.08); box-sizing: border-box; } /* 按钮区域 */ .button-section { margin-top: 12rpx; } .button-section.bottom { margin-top: 20rpx; } /* 按钮样式 */ .primary-btn { width: 100%; height: 92rpx; line-height: 92rpx; font-size: 28rpx; font-weight: 600; border-radius: 46rpx; background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%); color: #fff; border: none; box-shadow: 0 6rpx 24rpx rgba(59, 130, 246, 0.4); transition: all 0.3s ease; text-align: center; } .primary-btn:hover { transform: translateY(-4rpx); box-shadow: 0 8rpx 32rpx rgba(59, 130, 246, 0.5); } .secondary-btn { width: 100%; height: 84rpx; line-height: 84rpx; font-size: 26rpx; font-weight: 600; border-radius: 42rpx; background: rgba(255, 255, 255, 0.95); color: #3b82f6; border: 2rpx solid rgba(59, 130, 246, 0.4); backdrop-filter: blur(12rpx); transition: all 0.3s ease; text-align: center; box-shadow: 0 4rpx 16rpx rgba(0,0,0,0.08); } .secondary-btn:hover { background: rgba(59, 130, 246, 0.08); border-color: rgba(59, 130, 246, 0.6); transform: translateY(-4rpx); box-shadow: 0 6rpx 24rpx rgba(59, 130, 246, 0.3); } /* 结果卡片 */ .result-card { animation: fadeInUp 0.6s ease-out; } @keyframes fadeInUp { from { opacity: 0; transform: translateY(30rpx); } to { opacity: 1; transform: translateY(0); } } /* 结果行 */ .result-row { display: flex; justify-content: space-between; align-items: center; padding: 20rpx 0; } .result-label { font-size: 26rpx; color: #64748b; font-weight: 500; } .result-value { font-size: 36rpx; font-weight: 700; color: #ef4444; text-shadow: 0 2rpx 4rpx rgba(239, 68, 68, 0.2); } /* 结果提示 */ .result-hint { font-size: 22rpx; color: #94a3b8; text-align: center; margin-top: 16rpx; padding-top: 16rpx; border-top: 1rpx solid #f1f5f9; line-height: 1.5; } /* 响应式设计 */ @media (max-width: 750rpx) { .main-content { padding: 20rpx; gap: 20rpx; } .info-card, .control-card, .result-card { padding: 28rpx; } .header-title { font-size: 28rpx; } .card-subtitle { font-size: 24rpx; margin-bottom: 20rpx; } .info-label, .info-value { font-size: 24rpx; } .info-value.price { font-size: 30rpx; } .result-value { font-size: 32rpx; } .quantity-box { gap: 20rpx; } .quantity-btn { width: 72rpx; height: 72rpx; font-size: 32rpx; } .quantity-input { width: 140rpx; height: 72rpx; font-size: 26rpx; } .primary-btn { height: 84rpx; line-height: 84rpx; font-size: 26rpx; } .secondary-btn { height: 76rpx; line-height: 76rpx; font-size: 24rpx; } } /* 小屏幕设备适配 */ @media (max-width: 375rpx) { .main-content { padding: 16rpx; gap: 16rpx; } .info-card, .control-card, .result-card { padding: 24rpx; } .header-title { font-size: 26rpx; } .card-subtitle { font-size: 22rpx; margin-bottom: 16rpx; } .info-label, .info-value { font-size: 22rpx; } .info-value.price { font-size: 28rpx; } .result-value { font-size: 28rpx; } .quantity-box { gap: 16rpx; } .quantity-btn { width: 64rpx; height: 64rpx; font-size: 28rpx; } .quantity-input { width: 120rpx; height: 64rpx; font-size: 24rpx; } .primary-btn { height: 76rpx; line-height: 76rpx; font-size: 24rpx; } .secondary-btn { height: 68rpx; line-height: 68rpx; font-size: 22rpx; } }