/* Table-balancing advice on the seats (Premium): the empty seat that needs a player pulses red with a Knight-Rider sweep,
   and the player who should move glows amber. Used by the desk's seating list and by the seating chart screen. */
@keyframes kr-sweep { from { background-position: -50% 0; } to { background-position: 150% 0; } }
@keyframes kr-glow {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255, 32, 64, .55), 0 0 6px rgba(255, 32, 64, .25); }
  50%      { box-shadow: 0 0 0 1px rgba(255, 32, 64, 1),   0 0 20px 2px rgba(255, 32, 64, .85); }
}
@keyframes kr-amber {
  0%, 100% { box-shadow: 0 0 0 1px rgba(255, 176, 32, .5), 0 0 4px rgba(255, 176, 32, .2); }
  50%      { box-shadow: 0 0 0 1px rgba(255, 176, 32, 1), 0 0 14px 1px rgba(255, 176, 32, .7); }
}
.seat-row.seat-needs, .sl-seat.needs, .pt-seat.needs .pt-chip {
  background-color: rgba(255, 32, 64, .12);
  background-image: linear-gradient(90deg, transparent 0, rgba(255, 32, 64, 0) 8%, rgba(255, 32, 64, .85) 50%, rgba(255, 32, 64, 0) 92%, transparent 100%);
  background-size: 38% 100%; background-repeat: no-repeat;
  animation: kr-sweep .85s ease-in-out infinite alternate, kr-glow 1.7s ease-in-out infinite;
}
.seat-row.seat-needs, .sl-seat.needs { border-radius: 8px; }
.seat-needs .seat-vacant, .sl-seat.needs .sl-seat-name, .pt-seat.needs .pt-seat-name { color: #ff6f85 !important; font-weight: 800; letter-spacing: .06em; font-style: normal; opacity: 1 !important; }
.pt-seat.needs .pt-chip { color: #fff; border-color: #ff2040 !important; }
.seat-row.seat-leaving, .sl-seat.leaving, .pt-seat.leaving .pt-chip { animation: kr-amber 1.5s ease-in-out infinite; border-radius: 8px; }
.pt-seat.leaving .pt-chip { border-radius: 50%; }
.seat-row.seat-leaving .seat-name::after, .sl-seat.leaving .sl-seat-name::after { content: "  → moves"; color: #ffb020; font-weight: 700; font-size: .85em; }
@media (prefers-reduced-motion: reduce) {
  .seat-row.seat-needs, .sl-seat.needs, .pt-seat.needs .pt-chip { animation: none; box-shadow: 0 0 0 2px #ff2040; background-image: none; }
  .seat-row.seat-leaving, .sl-seat.leaving, .pt-seat.leaving .pt-chip { animation: none; box-shadow: 0 0 0 2px #ffb020; }
}
/* on the big screen the empty seat has to be seen from across a room */
.pt-seat.vacant.needs { opacity: 1 !important; }
.pt-seat.needs .pt-chip { transform: scale(1.5); }
.pt-seat.needs .pt-seat-name { font-size: 16px; text-shadow: 0 0 10px rgba(255, 32, 64, .9); margin-top: 10px; }
