/* == Tickets Portion == */
.ticket-list { display: grid; gap: 10px; }
.ticket-row {
  display: grid; grid-template-columns: 1fr auto auto; gap: 20px;
  align-items: center; padding: 15px; border: 1px solid var(--border); border-radius: 10px;
}
.ticket-row.selected { border-color: #14864e; background: #fbfaff; }
.ticket-main { display: flex; gap: 10px; min-width: 0; }
.ticket-radio {
  width: 17px; height: 17px; margin-top: 2px; flex: 0 0 auto;
  border: 1.5px solid #c9ceda; border-radius: 50%;
}
.ticket-row.selected .ticket-radio { border: 4px solid var(--primary); }
.ticket-name { font-weight: 750; font-size: 14px;}
.ticket-description { color: var(--muted); font-size: 12px; margin-top: 2px; }
.ticket-price { white-space: nowrap; text-align: right; }
.ticket-price strong { display: block; }
.ticket-price span { color: var(--muted); font-size: 11px; }
.quantity { display: flex; align-items: center; border: 1px solid #dfe2ea; border-radius: 8px; overflow: hidden; background: #fff; }
.quantity button, .quantity span { width: 34px; height: 34px; border: 0; display: grid; place-items: center; background: #fff; }
.quantity button:hover { background: var(--primary-soft); color: var(--primary); }
.quantity span { border-left: 1px solid #e5e7ed; border-right: 1px solid #e5e7ed; font-weight: 700; }
.ticket-quota-badge { 
    display: inline-flex; align-items: center; margin-top: 6px; padding: 3px 8px; border-radius: 999px; 
    background: #a6fb8e; color: #475569; font-size: 12px; font-weight: 500; line-height: 1.2; 
} 
.quantity-input { width: 48px; text-align: center; border: 0; outline: none; background: transparent; font-size: 15px; font-weight: 600; } 
/* Remove browser number-spinner buttons */ 
.quantity-input::-webkit-outer-spin-button, .quantity-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } 
.quantity-input[type="number"] { -moz-appearance: textfield; }



/* == Tickets Portion (Sold Out) == */
.ticket-row.sold-out { background: #f3f4f6; border-color: #d1d5db; color: #9ca3af; opacity: 0.75; cursor: not-allowed; }
/* Grey out everything inside the sold-out card */
.ticket-row.sold-out .ticket-main,
.ticket-row.sold-out .ticket-name,
.ticket-row.sold-out .ticket-description,
.ticket-row.sold-out .ticket-price,
.ticket-row.sold-out .ticket-price strong,
.ticket-row.sold-out .ticket-price span {
  color: #9ca3af;
}
/* Radio */
.ticket-row.sold-out .ticket-radio { background: #d1d5db; border-color: #c4c8ce; }
/* Quantity controls */
.ticket-row.sold-out .quantity { opacity: 0.6; }
.ticket-row.sold-out .quantity button, .ticket-row.sold-out .quantity input {
  background: #e5e7eb; border-color: #d1d5db; color: #9ca3af; cursor: not-allowed;
}
/* Sold out badge */
.ticket-row.sold-out .sold-out-badge {
  display: inline-block; margin-top: 6px; padding: 3px 8px; border-radius: 4px;
  background: #ff8e8e; color: #641010; font-size: 12px; font-weight: 600;
}
.bundle-offer { 
  display: inline-block; margin-top: 6px; padding: 3px 8px; border-radius: 4px;
  background: #e5ccb1; color: #473707 !important; font-weight: 600;
}



/* == Order Summary Portion == */
.summary-date { display: flex; justify-content: space-between; gap: 10px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.summary-date span, .muted { display: block; color: var(--muted); font-size: 12px; }
.summary-date strong { display: block; margin-top: 4px; font-size: 13px; }


/* == Discount input portion == */
.discount-input { display: flex; gap: 8px; align-items: stretch; }
.discount-input input { flex: 1; min-width: 0; }
.discount-input button { flex-shrink: 0; }
/* Stack only on screens <= 400px */
@media (max-width: 400px) {
  .discount-input { flex-direction: column; }
  .discount-input button { width: 100%; }
}