.order-page { background: #f7f8fa; min-height: 100vh; padding-bottom: 120rpx; } /* 包车主题 */ .charter-theme { background: linear-gradient(180deg, #1a1a1a 0%, #2d2d2d 100%); } /* 活动头部 */ .activity-header { background: linear-gradient(135deg, #FFA940 0%, #FF8C00 100%); padding: 40rpx 32rpx; color: #fff; } .charter-theme .activity-header { background: linear-gradient(135deg, #d4af37 0%, #f4d03f 100%); color: #1a1a1a; } .activity-title { font-size: 40rpx; font-weight: bold; text-align: center; } /* 班次信息卡片 */ .schedule-card { background: #fff; margin: 32rpx; border-radius: 20rpx; padding: 32rpx; box-shadow: 0 4rpx 20rpx rgba(0,0,0,0.08); } .charter-card { background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%); border: 2rpx solid #d4af37; box-shadow: 0 8rpx 32rpx rgba(212, 175, 55, 0.3); } .schedule-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 32rpx; padding-bottom: 20rpx; border-bottom: 2rpx solid #f0f0f0; } .charter-card .schedule-header { border-bottom-color: #444; } .schedule-title { font-size: 36rpx; font-weight: bold; color: #333; } .charter-card .schedule-title { color: #d4af37; } .schedule-type { background: #FFA940; color: #fff; padding: 8rpx 20rpx; border-radius: 20rpx; font-size: 24rpx; font-weight: bold; } .charter-card .schedule-type { background: #d4af37; color: #1a1a1a; } .schedule-details { margin-bottom: 24rpx; } .detail-row { display: flex; justify-content: space-between; margin-bottom: 20rpx; } .label { font-size: 28rpx; color: #666; width: 180rpx; flex-shrink: 0; } .charter-card .label { color: #ccc; } .value { font-size: 28rpx; color: #333; flex: 1; text-align: right; } .charter-card .value { color: #fff; } .value.price { color: #FFA940; font-weight: bold; font-size: 32rpx; } .charter-card .value.price { color: #d4af37; } .policy-info { background: #f8f9fa; padding: 20rpx; border-radius: 12rpx; border-left: 4rpx solid #FFA940; } .charter-card .policy-info { background: #333; border-left-color: #d4af37; } .policy-text { font-size: 24rpx; color: #666; } .charter-card .policy-text { color: #ccc; } /* 折扣选择区域 */ .discount-section { background: #fff; margin: 32rpx; border-radius: 20rpx; box-shadow: 0 4rpx 20rpx rgba(0,0,0,0.08); overflow: hidden; } .member-info { padding: 24rpx 32rpx; border-bottom: 1rpx solid #f0f0f0; } .member-level { display: flex; align-items: center; gap: 12rpx; } .level-icon { font-size: 32rpx; } .level-name { font-size: 28rpx; font-weight: bold; color: #333; } .discount-text { font-size: 24rpx; color: #4A90C2; background: rgba(74, 144, 194, 0.1); padding: 4rpx 12rpx; border-radius: 12rpx; } .coupon-section { padding: 24rpx 32rpx; display: flex; justify-content: space-between; align-items: center; } .coupon-info { display: flex; align-items: center; gap: 12rpx; flex: 1; } .coupon-icon { font-size: 32rpx; } .coupon-selected { font-size: 28rpx; color: #4A90C2; font-weight: bold; } .coupon-placeholder { font-size: 28rpx; color: #999; } .arrow { font-size: 24rpx; color: #999; } /* 各个区块 */ .phone-section, .passenger-section, .price-section { margin: 32rpx; background: #fff; border-radius: 20rpx; padding: 32rpx; box-shadow: 0 4rpx 20rpx rgba(0,0,0,0.08); } .charter-theme .phone-section, .charter-theme .passenger-section { background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%); border: 2rpx solid #d4af37; box-shadow: 0 8rpx 32rpx rgba(212, 175, 55, 0.3); } .charter-price { background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%); border: 2rpx solid #d4af37; box-shadow: 0 8rpx 32rpx rgba(212, 175, 55, 0.3); } .section-title { font-size: 32rpx; font-weight: bold; color: #333; margin-bottom: 24rpx; } .charter-theme .section-title { color: #d4af37; } .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24rpx; } .passenger-count { background: #FFA940; color: #fff; padding: 8rpx 16rpx; border-radius: 20rpx; font-size: 24rpx; font-weight: bold; } .charter-theme .passenger-count { background: #d4af37; color: #1a1a1a; } /* 手机号区域 */ .phone-display { background: #f8f9fa; padding: 24rpx; border-radius: 12rpx; border: 2rpx solid #e9ecef; } .charter-theme .phone-display { background: #333; border-color: #555; } .phone-info { display: flex; align-items: center; gap: 16rpx; } .phone-icon { font-size: 32rpx; } .phone-number { font-size: 32rpx; font-weight: bold; color: #333; flex: 1; } .charter-theme .phone-number { color: #fff; } .phone-status { background: #52c41a; color: #fff; padding: 4rpx 12rpx; border-radius: 16rpx; font-size: 22rpx; } .phone-btn { width: 100%; background: linear-gradient(135deg, #FFA940 0%, #FF8C00 100%); color: #fff; border: none; border-radius: 50rpx; padding: 24rpx 0; font-size: 32rpx; font-weight: bold; display: flex; align-items: center; justify-content: center; gap: 12rpx; box-shadow: 0 8rpx 24rpx rgba(255, 169, 64, 0.3); } .charter-btn { background: linear-gradient(135deg, #d4af37 0%, #f4d03f 100%); color: #1a1a1a; box-shadow: 0 8rpx 24rpx rgba(212, 175, 55, 0.4); } .btn-icon { font-size: 28rpx; } /* 乘车人列表 */ .passenger-list { margin-bottom: 24rpx; } .passenger-item { display: flex; justify-content: space-between; align-items: center; background: #f8f9fa; padding: 24rpx; border-radius: 12rpx; margin-bottom: 16rpx; border: 2rpx solid #e9ecef; } .charter-theme .passenger-item { background: #333; border-color: #555; } .passenger-info { flex: 1; } .passenger-name { font-size: 32rpx; font-weight: bold; color: #333; margin-bottom: 8rpx; } .charter-theme .passenger-name { color: #fff; } .passenger-details { display: flex; gap: 16rpx; margin-bottom: 8rpx; } .id-type { background: #FFA940; color: #fff; padding: 4rpx 12rpx; border-radius: 16rpx; font-size: 22rpx; } .charter-theme .id-type { background: #d4af37; color: #1a1a1a; } .id-number { font-size: 26rpx; color: #666; } .charter-theme .id-number { color: #ccc; } .passenger-phone { font-size: 26rpx; color: #666; } .charter-theme .passenger-phone { color: #ccc; } .delete-btn { background: #ff4d4f; color: #fff; border: none; border-radius: 20rpx; padding: 12rpx 24rpx; font-size: 24rpx; } .add-passenger-btn { width: 100%; background: #f8f9fa; color: #FFA940; border: 2rpx solid #FFA940; border-radius: 50rpx; padding: 20rpx 0; font-size: 28rpx; font-weight: bold; display: flex; align-items: center; justify-content: center; gap: 12rpx; } .charter-theme .add-passenger-btn { background: #333; color: #d4af37; border-color: #d4af37; } .passenger-tip { text-align: center; margin-top: 16rpx; } .tip-text { font-size: 24rpx; color: #999; } /* 价格区域 */ .price-breakdown { margin-bottom: 24rpx; } .price-item { display: flex; justify-content: space-between; margin-bottom: 16rpx; } .price-label { font-size: 28rpx; color: #666; } .charter-price .price-label { color: #ccc; } .price-value { font-size: 28rpx; color: #333; font-weight: bold; } .price-item.discount .price-label { color: #52C41A; } .discount-value { color: #52C41A !important; } .charter-price .price-value { color: #fff; } .total-price { display: flex; justify-content: space-between; align-items: center; padding-top: 24rpx; border-top: 2rpx solid #f0f0f0; } .charter-price .total-price { border-top-color: #444; } .total-label { font-size: 32rpx; font-weight: bold; color: #333; } .charter-price .total-label { color: #d4af37; } .total-value { font-size: 40rpx; font-weight: bold; color: #FFA940; } .charter-price .total-value { color: #d4af37; } /* 支付区域 */ .pay-section { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; padding: 24rpx 32rpx; box-shadow: 0 -4rpx 20rpx rgba(0,0,0,0.1); } .charter-theme .pay-section { background: #1a1a1a; border-top: 2rpx solid #d4af37; } .pay-btn { width: 100%; background: linear-gradient(135deg, #FFA940 0%, #FF8C00 100%); color: #fff; border: none; border-radius: 50rpx; padding: 28rpx 0; font-size: 36rpx; font-weight: bold; display: flex; align-items: center; justify-content: center; gap: 16rpx; box-shadow: 0 8rpx 24rpx rgba(255, 169, 64, 0.3); } .charter-pay-btn { background: linear-gradient(135deg, #d4af37 0%, #f4d03f 100%); color: #1a1a1a; box-shadow: 0 8rpx 24rpx rgba(212, 175, 55, 0.4); } .pay-icon { font-size: 32rpx; } /* 乘车人选择器模态框 */ .passenger-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; animation: fadeIn 0.3s ease; } .passenger-modal-content { background: #fff; border-radius: 24rpx; width: calc(100% - 64rpx); max-width: 640rpx; max-height: 80vh; overflow: hidden; animation: slideUp 0.3s ease; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { opacity: 0; transform: translateY(40rpx); } to { opacity: 1; transform: translateY(0); } } .passenger-modal-header { display: flex; align-items: center; justify-content: space-between; padding: 32rpx; border-bottom: 1rpx solid #f0f0f0; background: rgba(74, 144, 194, 0.05); } .passenger-modal-title { font-size: 36rpx; font-weight: bold; color: #2c3e50; } .passenger-modal-close { background: transparent; border: none; font-size: 32rpx; color: #999; padding: 8rpx; line-height: 1; } .passenger-modal-body { max-height: 50vh; overflow-y: auto; padding: 24rpx 32rpx; } .no-saved-passengers { text-align: center; padding: 80rpx 32rpx; } .no-passengers-icon { font-size: 100rpx; margin-bottom: 24rpx; opacity: 0.6; } .no-passengers-text { font-size: 32rpx; color: #666; margin-bottom: 12rpx; font-weight: 600; } .no-passengers-desc { font-size: 26rpx; color: #999; } .saved-passenger-list { margin-top: 16rpx; } .saved-passenger-item { display: flex; align-items: center; justify-content: space-between; background: rgba(74, 144, 194, 0.05); border-radius: 16rpx; padding: 24rpx; margin-bottom: 16rpx; border: 2rpx solid rgba(74, 144, 194, 0.1); transition: all 0.3s ease; } .saved-passenger-item:active { background: rgba(74, 144, 194, 0.1); transform: scale(0.98); } .saved-passenger-info { flex: 1; } .saved-passenger-name { font-size: 32rpx; font-weight: 600; color: #2c3e50; margin-bottom: 8rpx; } .saved-passenger-details { display: flex; align-items: center; margin-bottom: 8rpx; } .saved-passenger-type { font-size: 24rpx; color: #4A90C2; background: rgba(74, 144, 194, 0.1); padding: 4rpx 12rpx; border-radius: 12rpx; margin-right: 12rpx; } .saved-passenger-id { font-size: 26rpx; color: #666; font-family: 'Courier New', monospace; } .saved-passenger-phone { font-size: 26rpx; color: #666; font-family: 'Courier New', monospace; } .select-icon { font-size: 32rpx; color: #4A90C2; margin-left: 16rpx; } .passenger-modal-actions { display: flex; padding: 24rpx 32rpx 32rpx; gap: 16rpx; border-top: 1rpx solid #f0f0f0; background: rgba(74, 144, 194, 0.02); } .passenger-action-btn { flex: 1; padding: 24rpx 16rpx; border-radius: 50rpx; font-size: 28rpx; font-weight: 600; border: none; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 8rpx; } .passenger-action-btn.secondary { background: #f8f9fa; color: #666; border: 2rpx solid #e9ecef; } .passenger-action-btn.secondary:active { background: #e9ecef; } .passenger-action-btn.primary { background: linear-gradient(135deg, #4A90C2 0%, #357ABD 100%); color: #fff; box-shadow: 0 4rpx 16rpx rgba(74, 144, 194, 0.3); } .passenger-action-btn.primary:active { transform: translateY(1rpx); box-shadow: 0 2rpx 8rpx rgba(74, 144, 194, 0.2); }