/* Professional Card jagged Ticket Border Style */
.ticket-card {
  position: relative;
  background: white;
  border: 1px solid #e2e8f0;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  border-radius: 8px;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.ticket-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
}

.ticket-jagged {
  background-image: radial-gradient(circle at 100% 50%, transparent 6px, #ffffff 6px);
  background-size: 100% 16px;
  background-position: left;
}

.ticket-jagged-right {
  background-image: radial-gradient(circle at 0% 50%, transparent 6px, #ffffff 6px);
  background-size: 100% 16px;
  background-position: right;
}

/* Jagged edge for bottom of ticket */
.jagged-bottom::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -6px;
  left: 0;
  width: 100%;
  height: 12px;
  background-image: linear-gradient(-45deg, white 6px, transparent 0), linear-gradient(45deg, white 6px, transparent 0);
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: 12px 12px;
}

/* Scrollbar Styling */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: #f1f5f9;
}

::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Custom Turn Alert Animations */
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
  20%, 40%, 60%, 80% { transform: translateX(4px); }
}

.shake-effect {
  animation: shake 0.6s cubic-bezier(.36,.07,.19,.97) both;
}

@keyframes neon-pulse {
  0%, 100% { box-shadow: 0 0 15px rgba(16, 185, 129, 0.4), inset 0 0 15px rgba(16, 185, 129, 0.4); }
  50% { box-shadow: 0 0 35px rgba(16, 185, 129, 0.8), inset 0 0 35px rgba(16, 185, 129, 0.8); }
}

.neon-turn-glow {
  animation: neon-pulse 1.8s infinite ease-in-out;
  border-color: #10b981 !important;
}