/* Center site loading states and keep them visually consistent. */
body.g22-custom-chrome .g22-giveaways-loading,
body.g22-custom-chrome .g22-slotsd-loading,
body.g22-custom-chrome .g22-gs-loading,
body.g22-route-daily-spin .ds-state,
body.g22-route-polls .polls-loading,
body.g22-route-bonus-buy .bb-loading,
body.g22-route-bonus-buy-battle .bbb-loading,
body.g22-route-tournaments .tt-loading {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.g22-custom-chrome .g22-giveaways-loading,
body.g22-custom-chrome .g22-slotsd-loading,
body.g22-custom-chrome .g22-gs-loading,
body.g22-route-daily-spin .ds-state,
body.g22-route-polls .polls-loading {
  min-height: 220px !important;
}

/* Hide fallback copy while keeping the loading visuals. */
body.g22-custom-chrome .g22-giveaways-loading,
body.g22-custom-chrome .g22-slotsd-loading,
body.g22-custom-chrome .g22-gs-loading,
body.g22-route-polls .polls-loading,
body.g22-route-bonus-buy .bb-loading,
body.g22-route-bonus-buy-battle .bbb-loading,
body.g22-route-tournaments .tt-loading {
  font-size: 0 !important;
  line-height: 0 !important;
  letter-spacing: 0 !important;
  color: transparent !important;
}

body.g22-route-polls .polls-loading::before,
body.g22-route-bonus-buy .bb-loading::before,
body.g22-route-bonus-buy-battle .bbb-loading::before,
body.g22-route-tournaments .tt-loading::before {
  content: "" !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  border: 2px solid rgba(255, 255, 255, 0.14) !important;
  border-top-color: #8f3dff !important;
  animation: g22FallbackSpin 0.72s linear infinite !important;
}

/* Keep the empty-state shell/icon, but drop the explanatory placeholder text. */
body.g22-route-bonus-buy .bb-empty-state h2,
body.g22-route-bonus-buy .bb-empty-state p,
body.g22-route-bonus-buy-battle .bbb-empty-state h2,
body.g22-route-bonus-buy-battle .bbb-empty-state p,
body.g22-route-tournaments .tt-empty-state h2,
body.g22-route-tournaments .tt-empty-state p {
  display: none !important;
}

body.g22-route-bonus-buy .bb-empty-state,
body.g22-route-bonus-buy-battle .bbb-empty-state,
body.g22-route-tournaments .tt-empty-state {
  gap: 0 !important;
}

/* Replace placeholder labels with neutral shimmer bars. */
body.g22-route-bonus-buy-battle .bbb-participant:has(.bbb-participant-media svg):not(:has(.bbb-participant-media img)) .bbb-participant-provider,
body.g22-route-bonus-buy-battle .bbb-participant:has(.bbb-participant-media svg):not(:has(.bbb-participant-media img)) .bbb-participant-name,
body.g22-route-bonus-buy-battle .bbb-participant:has(.bbb-participant-media svg):not(:has(.bbb-participant-media img)) .bbb-participant-player span:last-child,
body.g22-route-tournaments .tt-slot-row.is-placeholder .tt-slot-name,
body.g22-route-tournaments .tt-slot-row.is-placeholder .tt-slot-player-name,
body.g22-route-tournaments .tt-finalist-card.is-placeholder .tt-finalist-name {
  display: inline-block !important;
  min-height: 0.95em !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.05) 25%, rgba(255, 255, 255, 0.12) 50%, rgba(255, 255, 255, 0.05) 75%) !important;
  background-size: 240% 100% !important;
  animation: g22FallbackShimmer 1.35s ease-in-out infinite !important;
  color: transparent !important;
  text-shadow: none !important;
}

body.g22-route-bonus-buy-battle .bbb-participant:has(.bbb-participant-media svg):not(:has(.bbb-participant-media img)) .bbb-participant-score,
body.g22-route-bonus-buy-battle .bbb-chip.is-empty,
body.g22-route-tournaments .tt-slot-row.is-placeholder .tt-slot-score,
body.g22-route-tournaments .tt-finalist-card.is-placeholder .tt-finalist-score,
body.g22-route-tournaments .tt-payout-chip.is-empty {
  color: transparent !important;
  text-shadow: none !important;
}

@keyframes g22FallbackSpin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes g22FallbackShimmer {
  0% {
    background-position: 100% 0;
  }

  100% {
    background-position: -100% 0;
  }
}
