/* Unify modal — product row */
#unifyDateList .product-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
}

#unifyDateList .product-row .product-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--bs-primary-bg-subtle, #eef5ff);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
}

#unifyDateList .product-row .product-info {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 8px 12px;
  width: 100%;
}

#unifyDateList .product-row .product-name {
  font-weight: 600;
  line-height: 1.2;
}

#unifyDateList .product-row .product-meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-self: end;
}

#unifyDateList .product-row .badge-date {
  font-weight: 600;
}

#unifyDateList .product-row .badge-qty {
  background: var(--bs-secondary-bg-subtle, #f2f3f5);
  color: var(--bs-secondary-color, #6c757d);
}

/* Small screens: stack name and meta */
@media (max-width: 576px) {
  #unifyDateList .product-row .product-info {
    grid-template-columns: 1fr;
  }
  #unifyDateList .product-row .product-meta {
    justify-self: start;
  }
}

#unifyDateList .list-group-item-success { border-left: 4px solid var(--bs-success); }
#unifyDateList .list-group-item-danger  { border-left: 4px solid var(--bs-danger); }



/* Botón con look & feel de input */
.qty-pseudo-input{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  height:36px;
  padding:0 10px;
  border:1px solid var(--bs-border-color, #dee2e6);
  background:#fff;
  border-radius:.375rem;
  font-weight:600;
  line-height:1;
  cursor:pointer;
  transition:.15s ease-in-out;
}
.qty-pseudo-input:hover{
  box-shadow:0 0 0 .25rem rgba(13,110,253,.15);
}
.qty-pseudo-input:active{
  transform: translateY(1px);
}
.qty-pseudo-input .qty-value{
  font-variant-numeric: tabular-nums;
}

#updateQtyRange .badge { margin-left:.25rem; }


/* Circular spinner */
.pp-spinner {
  width: 48px; height: 48px;
  border-radius: 50%;
  border: 3px solid rgba(13,110,253,.15);
  border-top-color: #0d6efd;
  animation: pp-rotate 1s linear infinite;
}
@keyframes pp-rotate { to { transform: rotate(360deg); } }

/* Animated dots */
.pp-dots {
  display: inline-flex; gap: 6px;
}
.pp-dots span {
  width: 6px; height: 6px; border-radius: 50%;
  background: #0d6efd; opacity: .35;
  animation: pp-bounce 1.2s infinite;
}
.pp-dots span:nth-child(2){ animation-delay: .2s; }
.pp-dots span:nth-child(3){ animation-delay: .4s; }
@keyframes pp-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: .35; }
  40% { transform: translateY(-4px); opacity: 1; }
}

/* Lock badge */
.pp-lock-badge {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(13,110,253,.08); color: #0d6efd; font-size: 20px;
}

/* Optional: soften modal */
#paymentProcessingModal .modal-content {
  border-radius: 16px;
}

/* Terms & Conditions UI */
.tnc-check {
  font-size: .85rem;
  line-height: 1.4;
}
.tnc-check .form-check-input {
  margin-top: .15rem;
  transform: scale(0.9);
}
.tnc-check a {
  text-decoration: underline dotted;
}
.tnc-attn {
  border-radius: .5rem;
  animation: tnc-pulse .6s ease;
}
@keyframes tnc-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(13,110,253,.35); }
  100% { box-shadow: 0 0 0 .55rem rgba(13,110,253,0); }
}
