/* Bingo card: marked state */
.bingo-cell {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.bingo-cell-marked {
  background-image: linear-gradient(135deg, #4285F4, #34A853);
  color: white !important;
  border-color: transparent !important;
  position: relative;
  transform: scale(0.98);
  box-shadow: 0 4px 12px rgba(66, 133, 244, 0.25);
}
.bingo-cell-marked::after {
  content: "✓";
  position: absolute;
  top: 4px;
  right: 6px;
  font-size: 12px;
  opacity: 0.85;
}

/* Schedule card: live state */
.slot-card {
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
}
.slot-card.is-live {
  border-color: #EA4335;
  box-shadow: 0 0 0 3px rgba(234, 67, 53, 0.18), 0 10px 30px rgba(234, 67, 53, 0.12);
  transform: translateY(-2px);
}
.slot-card.is-live::before {
  content: "";
  position: absolute;
}
.slot-card.is-live h3 {
  color: #EA4335;
}
.slot-card.is-live .slot-countdown {
  color: #EA4335;
  font-weight: 700;
}

/* Win flash */
@keyframes bingoFlash {
  0%   { box-shadow: inset 0 0 0 0 rgba(52, 168, 83, 0); }
  20%  { box-shadow: inset 0 0 80px 20px rgba(52, 168, 83, 0.35); }
  100% { box-shadow: inset 0 0 0 0 rgba(52, 168, 83, 0); }
}
.bingo-flash {
  animation: bingoFlash 2s ease-out;
}

/* Slight clip on mobile: no horizontal overflow from twitter widgets */
body { overflow-x: hidden; }

/* iframe inside the live-chat container fills the box */
#live-chat-container iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 480px;
  border: 0;
}

/* Phase gating: bingo locked vs live */
.bingo-locked { display: none; }
.bingo-live   { display: block; }

body[data-phase="pre-event"] .bingo-locked { display: block; }
body[data-phase="pre-event"] .bingo-live   { display: none; }

/* Phase gating: predictions call-out visible only pre-event + warmup */
#predictions { display: none; }
body[data-phase="pre-event"] #predictions,
body[data-phase="warmup"]    #predictions { display: block; }
