/* 会员/保证金充值页共用弹窗与 loading */
.modal-mask {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  z-index: 1000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.modal-panel {
  width: 100%;
  background: #fff;
  border-radius: 32rpx 32rpx 0 0;
  padding: 32rpx 28rpx calc(24rpx + env(safe-area-inset-bottom));
}

.modal-title {
  display: block;
  font-size: 34rpx;
  font-weight: 700;
  text-align: center;
  margin-bottom: 8rpx;
}

.modal-sub {
  display: block;
  text-align: center;
  font-size: 24rpx;
  color: #999;
  margin-bottom: 24rpx;
}

.amount-input-wrap {
  display: flex;
  align-items: center;
  border-bottom: 2rpx solid #f0e6d8;
  padding-bottom: 12rpx;
  margin-bottom: 20rpx;
}

.amount-prefix {
  font-size: 40rpx;
  font-weight: 700;
  color: #492f00;
  margin-right: 8rpx;
}

.amount-input {
  flex: 1;
  font-size: 36rpx;
}

.quick-row {
  display: flex;
  flex-wrap: wrap;
  gap: 16rpx;
  margin-bottom: 24rpx;
}

.quick-chip {
  padding: 12rpx 24rpx;
  border-radius: 999rpx;
  background: #f5f5f5;
  font-size: 26rpx;
  color: #666;
}

.quick-chip.active {
  background: #fff3cd;
  color: #492f00;
  font-weight: 600;
}

.modal-actions {
  display: flex;
  gap: 20rpx;
}

.modal-btn {
  flex: 1;
  height: 88rpx;
  border-radius: 44rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30rpx;
}

.modal-btn.cancel {
  background: #f5f5f5;
  color: #666;
}

.modal-btn.confirm {
  background: linear-gradient(90deg, #fae04d, #ffc0a3);
  color: #492f00;
  font-weight: 700;
}

.pay-method-item {
  padding: 28rpx 20rpx;
  border-bottom: 1rpx solid #f0f0f0;
}

.pay-method-name {
  display: block;
  font-size: 30rpx;
  font-weight: 600;
}

.pay-method-desc {
  display: block;
  font-size: 24rpx;
  color: #999;
  margin-top: 6rpx;
}

.balance-item {
  display: flex;
  justify-content: space-between;
  padding: 24rpx 12rpx;
  border-bottom: 1rpx solid #f5f5f5;
  font-size: 28rpx;
}

.balance-need {
  color: #e6a23c;
  font-weight: 600;
}

.confirm-row {
  display: flex;
  justify-content: space-between;
  padding: 16rpx 0;
  font-size: 28rpx;
}

.loading-mask {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.loading-box {
  background: #fff;
  border-radius: 20rpx;
  padding: 40rpx 48rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16rpx;
}

.loading-spinner {
  width: 56rpx;
  height: 56rpx;
  border: 4rpx solid #f0e6d8;
  border-top-color: #f5a623;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}
