body {
  font-size: 1.05rem;
}

.qr-frame {
  text-decoration: none;
  transition: transform 0.15s ease;
}

.qr-frame:hover {
  transform: scale(1.02);
}

.qr-image {
  max-width: min(70vw, 340px);
}

.product-card .btn {
  min-height: 56px;
}

.ticket-card {
  cursor: pointer;
  transition: transform 0.1s ease, box-shadow 0.1s ease;
}

.ticket-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.ticket-card.ticket-new {
  animation: ticket-pop 0.5s ease;
  border-color: var(--bs-success);
}

@keyframes ticket-pop {
  0% { transform: scale(0.9); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

.min-w-0 {
  min-width: 0;
}

@media (max-width: 576px) {
  .navbar .nav-link {
    font-size: 0.95rem;
  }
}
