.game-launcher {
  position: absolute;
  inset: 0;
  z-index: 70;
  overflow: hidden;
  color: #f4f8ff;
  background:
    radial-gradient(circle at 85% 5%, rgba(114, 75, 255, .28), transparent 35%),
    radial-gradient(circle at 5% 92%, rgba(0, 210, 235, .17), transparent 34%),
    linear-gradient(165deg, #07142b, #0b1d3d 52%, #07162f);
}
.game-launcher-content { height: 100%; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.launcher-shell {
  position: relative;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: calc(var(--safe-top) + 18px) 16px calc(var(--safe-bottom) + 24px);
}
.launcher-shell::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .16;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size: 26px 26px;
}
.launcher-close {
  position: absolute;
  z-index: 4;
  top: calc(var(--safe-top) + 26px);
  right: 25px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  padding: 0 0 2px;
  font-size: 24px;
  line-height: 1;
  color: #fff;
  background: rgba(6, 17, 42, .72);
  backdrop-filter: blur(8px);
  cursor: pointer;
}
.launcher-game {
  position: relative;
  overflow: hidden;
  border-radius: 25px;
  background: linear-gradient(145deg, rgba(27, 53, 100, .94), rgba(12, 31, 68, .96));
  border: 1px solid rgba(150, 188, 238, .16);
  box-shadow: 0 20px 45px rgba(0, 4, 20, .35), inset 0 1px 0 rgba(255, 255, 255, .08);
}
.launcher-game-media { position: relative; aspect-ratio: 2 / 1; overflow: hidden; background: #161945; }
.launcher-game-media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 45%;
  background: linear-gradient(transparent, rgba(8, 20, 48, .92));
}
.launcher-game-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.launcher-test-badge {
  position: absolute;
  z-index: 2;
  left: 11px;
  top: 11px;
  padding: 5px 8px;
  border-radius: 999px;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .09em;
  color: #d8faff;
  background: rgba(7, 24, 55, .78);
  border: 1px solid rgba(126, 227, 242, .24);
  backdrop-filter: blur(7px);
}
.launcher-game-copy { position: relative; padding: 15px 16px 17px; }
.launcher-game-kicker {
  display: block;
  margin-bottom: 3px;
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #73e7f5;
}
.launcher-game-copy h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 24px;
  line-height: 1.12;
  color: #fff;
}
.launcher-game-copy p { margin: 7px 0 0; font-size: 11px; line-height: 1.45; font-weight: 700; color: #8ea6c7; }
.launcher-game.compact {
  display: grid;
  grid-template-columns: 116px 1fr;
  min-height: 105px;
  border-radius: 20px;
}
.launcher-game.compact .launcher-game-media { min-height: 100%; aspect-ratio: auto; }
.launcher-game.compact .launcher-game-media::after {
  inset: 0;
  height: auto;
  background: linear-gradient(90deg, transparent 55%, rgba(12, 31, 68, .92));
}
.launcher-game.compact .launcher-test-badge { left: 7px; top: 7px; padding: 4px 6px; font-size: 6px; }
.launcher-game.compact .launcher-game-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 12px 13px 12px 8px;
}
.launcher-game.compact .launcher-game-copy h2 { font-size: 18px; }
.launcher-game.compact .launcher-game-copy p {
  display: -webkit-box;
  margin-top: 5px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  font-size: 9px;
}
.launcher-loading-panel,
.launcher-state-card,
.launcher-queue-card {
  position: relative;
  flex: 1;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 18px;
  border-radius: 25px;
  text-align: center;
  background: linear-gradient(155deg, rgba(22, 49, 92, .9), rgba(9, 28, 63, .94));
  border: 1px solid rgba(143, 182, 231, .14);
  box-shadow: 0 18px 40px rgba(0, 5, 23, .28), inset 0 1px 0 rgba(255, 255, 255, .06);
}
.launcher-candy-loader {
  height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-bottom: 15px;
}
.launcher-candy-loader span {
  width: 18px;
  height: 18px;
  border-radius: 6px 11px;
  background: linear-gradient(145deg, #ff86bf, #ff3f8e);
  box-shadow: 0 5px 14px rgba(255, 63, 142, .28), inset 2px 2px 3px rgba(255,255,255,.35);
  animation: launcherCandy 1s ease-in-out infinite;
}
.launcher-candy-loader span:nth-child(2) { background: linear-gradient(145deg, #ffe77e, #ffb703); animation-delay: .15s; }
.launcher-candy-loader span:nth-child(3) { background: linear-gradient(145deg, #8bf6ff, #28bcd7); animation-delay: .3s; }
@keyframes launcherCandy {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-16px) rotate(18deg); }
}
.launcher-loading-panel > strong { font-family: var(--font-display); font-size: 18px; color: #f6f9ff; }
.launcher-loading-panel > p { margin: 5px 0 18px; font-size: 10.5px; font-weight: 700; color: #7891b2; }
.launcher-load-track,
.launcher-queue-track {
  width: min(100%, 310px);
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(3, 14, 39, .75);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, .28);
}
.launcher-load-track i,
.launcher-queue-track i {
  display: block;
  width: 8%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #6d54f7, #39d9ea);
  box-shadow: 0 0 12px rgba(57, 217, 234, .4);
  transition: width .75s ease;
}
.launcher-connection {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 13px;
  font-size: 8.5px;
  font-weight: 900;
  color: #6382a5;
}
.launcher-connection i,
.launcher-queue-meta i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #62e8ae;
  box-shadow: 0 0 0 4px rgba(98, 232, 174, .08);
  animation: launcherPulse 1.4s ease-in-out infinite;
}
@keyframes launcherPulse { 50% { opacity: .35; transform: scale(.8); } }
.launcher-state-icon {
  width: 70px;
  height: 70px;
  display: grid;
  place-items: center;
  margin-bottom: 14px;
  border-radius: 23px;
  font-size: 34px;
  background: linear-gradient(145deg, rgba(255, 193, 61, .22), rgba(255, 135, 41, .1));
  border: 1px solid rgba(255, 208, 103, .2);
}
.launcher-state-icon .wallet-ico {
  width: 34px;
  height: 34px;
  color: #ffd166;
}
.launcher-state-icon.success {
  border-radius: 50%;
  color: #062b24;
  background: linear-gradient(145deg, #94ffd0, #49d4a7);
  box-shadow: 0 10px 28px rgba(73, 212, 167, .22);
}
.launcher-state-kicker {
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #71e0ee;
}
.launcher-state-card h3,
.launcher-queue-card h3 { margin: 5px 0 7px; font-family: var(--font-display); font-size: 24px; color: #fff; }
.launcher-state-card > p,
.launcher-queue-card > p {
  max-width: 325px;
  margin: 0 0 15px;
  font-size: 11px;
  line-height: 1.5;
  font-weight: 700;
  color: #8ba3c3;
}
.launcher-state-card > p strong { color: #dce8fa; }
.launcher-balance-zero {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding: 12px 13px;
  border-radius: 14px;
  background: rgba(4, 18, 47, .52);
  border: 1px solid rgba(145, 181, 226, .1);
}
.launcher-balance-zero span { font-size: 10px; font-weight: 800; color: #7089aa; }
.launcher-balance-zero strong { font-family: var(--font-display); font-size: 15px; color: #ffcf67; }
.launcher-balance-zero.bonus {
  border-color: rgba(255, 207, 103, .22);
  background: linear-gradient(135deg, rgba(255, 188, 72, .1), rgba(4, 18, 47, .62));
}
.bonus-game-lock > p:last-of-type {
  margin-top: -2px;
  font-size: 11px;
}

/* Selo com halo pulsante: reforça o estado de espera sem parecer um erro. */
.bonus-lock-badge {
  position: relative;
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  margin-bottom: 15px;
  border-radius: 24px;
  border: 1px solid rgba(255, 208, 103, .24);
  background: linear-gradient(150deg, rgba(255, 193, 61, .22), rgba(109, 84, 247, .14));
  animation: bonusBadgeIn .5s cubic-bezier(.2, .9, .25, 1.35) both;
}
.bonus-lock-badge i {
  position: absolute;
  inset: -6px;
  border-radius: 28px;
  border: 1px solid rgba(255, 207, 103, .35);
  animation: bonusBadgeHalo 2.4s ease-out infinite;
}
.bonus-lock-badge svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: #ffd166;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 3px 10px rgba(255, 183, 3, .35));
}
.launcher-theme-tournament .bonus-lock-badge svg { stroke: #ffe08a; }
@keyframes bonusBadgeIn {
  from { opacity: 0; transform: translateY(8px) scale(.86); }
}
@keyframes bonusBadgeHalo {
  0% { opacity: .5; transform: scale(.94); }
  70% { opacity: 0; transform: scale(1.12); }
  100% { opacity: 0; transform: scale(1.12); }
}

.bonus-lock-steps {
  width: 100%;
  display: grid;
  gap: 7px;
  margin: 0 0 15px;
  padding: 0;
  list-style: none;
}
.bonus-lock-steps li {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border-radius: 13px;
  border: 1px solid rgba(145, 181, 226, .1);
  background: rgba(4, 18, 47, .5);
  animation: bonusStepIn .38s ease both;
  animation-delay: calc(.08s * var(--step, 0) + .1s);
}
.bonus-lock-steps span {
  flex: 1;
  text-align: left;
  font-size: 10.5px;
  font-weight: 800;
  color: #a7bcd8;
}
.bonus-lock-steps b {
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #62e8ae;
}
.bonus-lock-steps i {
  position: relative;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  border-radius: 50%;
  background: rgba(98, 232, 174, .16);
  border: 1px solid rgba(98, 232, 174, .5);
}
.bonus-lock-steps .is-done i::after {
  content: "";
  position: absolute;
  left: 4.5px;
  top: 3px;
  width: 4px;
  height: 7px;
  border-right: 1.7px solid #62e8ae;
  border-bottom: 1.7px solid #62e8ae;
  transform: rotate(42deg);
}
.bonus-lock-steps .is-pending {
  border-color: rgba(255, 207, 103, .26);
  background: linear-gradient(135deg, rgba(255, 188, 72, .12), rgba(4, 18, 47, .6));
}
.bonus-lock-steps .is-pending b { color: #ffcf67; }
.bonus-lock-steps .is-pending span { color: #e7effb; }
.bonus-lock-steps .is-pending i {
  background: rgba(255, 207, 103, .16);
  border-color: rgba(255, 207, 103, .55);
  border-top-color: transparent;
  animation: launcherOrbit 1.1s linear infinite;
}
@keyframes bonusStepIn {
  from { opacity: 0; transform: translateY(6px); }
}
@keyframes launcherOrbit { to { transform: rotate(360deg); } }
.launcher-primary {
  width: 100%;
  min-height: 49px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 14px;
  padding: 12px 16px;
  font-family: var(--font-display);
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #6d54f7, #327fcf);
  box-shadow: 0 8px 20px rgba(52, 57, 167, .3), inset 0 1px 0 rgba(255, 255, 255, .2);
  cursor: pointer;
}
.launcher-primary.gold {
  color: #321a05;
  background: linear-gradient(180deg, #ffe286, #ffb703);
  box-shadow: 0 8px 20px rgba(255, 183, 3, .18), inset 0 1px 0 rgba(255, 255, 255, .5);
}
.launcher-primary b { font-size: 18px; }
.launcher-secondary {
  margin-top: 8px;
  border: 0;
  padding: 8px 12px;
  font-family: var(--font-ui);
  font-size: 10px;
  font-weight: 900;
  color: #7189a9;
  background: transparent;
  cursor: pointer;
}
.launcher-state-card > small,
.launcher-no-time { margin-top: 9px; font-size: 8px; line-height: 1.4; font-weight: 700; color: #526b8d; }
.launcher-queue-card { justify-content: flex-start; min-height: 430px; padding-top: 21px; }
.launcher-server-icon { height: 44px; display: flex; align-items: flex-end; gap: 5px; margin-bottom: 10px; }
.launcher-server-icon i {
  display: block;
  width: 9px;
  height: 20px;
  border-radius: 4px 4px 2px 2px;
  background: linear-gradient(180deg, #69e9f5, #536ee6);
  box-shadow: 0 0 12px rgba(83, 110, 230, .28);
  animation: launcherServer 1.2s ease-in-out infinite;
}
.launcher-server-icon i:nth-child(2) { height: 34px; animation-delay: .15s; }
.launcher-server-icon i:nth-child(3) { height: 26px; animation-delay: .3s; }
@keyframes launcherServer { 50% { opacity: .4; transform: scaleY(.75); transform-origin: bottom; } }
.launcher-wait-panel {
  width: 100%;
  position: relative;
  overflow: hidden;
  margin: 2px 0 15px;
  padding: 18px 14px;
  border-radius: 17px;
  background:
    radial-gradient(circle at 80% 20%, rgba(81, 224, 239, .1), transparent 42%),
    rgba(4, 18, 48, .55);
  border: 1px solid rgba(121, 164, 219, .11);
}
.launcher-wait-pulse {
  position: absolute;
  left: 50%;
  top: -18px;
  width: 90px;
  height: 90px;
  border-radius: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(88, 221, 239, .18), transparent 70%);
  animation: launcherPulse 2s ease-in-out infinite;
  pointer-events: none;
}
.launcher-wait-panel strong {
  display: block;
  position: relative;
  font-family: var(--font-display);
  font-size: 20px;
  color: #fff;
}
.launcher-wait-panel span {
  display: block;
  position: relative;
  margin-top: 5px;
  font-size: 10px;
  font-weight: 800;
  color: #7f98b8;
}
.launcher-wait-panel span.launcher-queue-label {
  margin-top: 0;
  font-size: 9.5px;
  font-weight: 900;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: #8fa7c6;
}
.launcher-wait-panel strong.launcher-queue-position {
  margin-top: 6px;
  font-size: 44px;
  line-height: 1.05;
  letter-spacing: -0.5px;
  color: #9fe4ff;
  background: none;
  -webkit-text-fill-color: currentColor;
  text-shadow: 0 6px 20px rgba(56, 176, 255, .35);
}
.launcher-wait-panel span.launcher-queue-hint {
  margin-top: 3px;
  color: #8fa7c6;
}
.launcher-theme-tournament .launcher-wait-panel strong.launcher-queue-position {
  color: #ffd166;
  text-shadow: 0 6px 20px rgba(255, 183, 3, .32);
}
.launcher-theme-tournament .launcher-wait-panel span.launcher-queue-label,
.launcher-theme-tournament .launcher-wait-panel span.launcher-queue-hint {
  color: #c8a9df;
}
.launcher-queue-track { width: 100%; }
.launcher-queue-meta {
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 8px 0 14px;
  font-size: 8.5px;
  font-weight: 800;
  color: #6881a2;
}
.launcher-queue-meta > span {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #85a2c5;
}
.launcher-reservation {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 13px;
  padding: 10px 11px;
  border-radius: 13px;
  text-align: left;
  background: rgba(58, 210, 147, .07);
  border: 1px solid rgba(82, 224, 163, .11);
}
.launcher-reservation > span {
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 900;
  color: #082b25;
  background: #68e8b2;
}
.launcher-reservation div { display: flex; flex-direction: column; }
.launcher-reservation strong { font-size: 10px; color: #aaf3d2; }
.launcher-reservation small { font-size: 8px; color: #63819b; }
.launcher-final-loader {
  width: 100%;
  height: 5px;
  overflow: hidden;
  margin-top: 8px;
  border-radius: 999px;
  background: rgba(2, 15, 39, .65);
}
.launcher-final-loader i {
  display: block;
  width: 35%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, #64ecc8, transparent);
  animation: launcherFinal 1s linear infinite;
}
@keyframes launcherFinal { from { transform: translateX(-100%); } to { transform: translateX(300%); } }

/* Championship theme */
.launcher-theme-tournament::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 18%, rgba(53, 93, 255, .22), transparent 32%),
    radial-gradient(circle at 88% 24%, rgba(255, 44, 93, .22), transparent 34%),
    linear-gradient(155deg, rgba(12, 8, 42, .5), rgba(39, 8, 48, .28));
}
.launcher-game.tournament {
  border-color: rgba(255, 197, 74, .32);
  background: linear-gradient(145deg, rgba(42, 24, 91, .96), rgba(45, 12, 58, .96));
  box-shadow: 0 20px 45px rgba(4, 0, 24, .42), inset 0 1px 0 rgba(255, 226, 145, .14);
}
.launcher-game.tournament .launcher-game-media::after {
  background: linear-gradient(transparent, rgba(27, 8, 48, .94));
}
.launcher-game.tournament.compact .launcher-game-media::after {
  background: linear-gradient(90deg, transparent 50%, rgba(35, 12, 59, .96));
}
.launcher-game.tournament .launcher-test-badge {
  color: #fff1b4;
  border-color: rgba(255, 210, 99, .28);
  background: rgba(36, 11, 54, .82);
}
.launcher-game.tournament .launcher-game-kicker { color: #ffd166; }
.launcher-theme-tournament .launcher-loading-panel,
.launcher-theme-tournament .launcher-state-card,
.launcher-theme-tournament .launcher-queue-card {
  background:
    radial-gradient(circle at 85% 0%, rgba(211, 44, 93, .13), transparent 34%),
    radial-gradient(circle at 10% 100%, rgba(48, 82, 230, .16), transparent 38%),
    linear-gradient(155deg, rgba(31, 25, 82, .94), rgba(31, 10, 52, .96));
  border-color: rgba(255, 196, 78, .16);
  box-shadow: 0 18px 44px rgba(5, 0, 27, .38), inset 0 1px 0 rgba(255, 226, 157, .07);
}
.launcher-theme-tournament .launcher-state-kicker { color: #ffd166; }
.launcher-theme-tournament .launcher-candy-loader span {
  border-radius: 50%;
  background: linear-gradient(145deg, #ffe589, #ffb703);
  box-shadow: 0 5px 15px rgba(255, 183, 3, .28), inset 2px 2px 3px rgba(255,255,255,.42);
}
.launcher-theme-tournament .launcher-candy-loader span:nth-child(2) {
  background: linear-gradient(145deg, #ff7597, #d9255c);
}
.launcher-theme-tournament .launcher-candy-loader span:nth-child(3) {
  background: linear-gradient(145deg, #8e9dff, #495ee8);
}
.launcher-theme-tournament .launcher-load-track i,
.launcher-theme-tournament .launcher-queue-track i {
  background: linear-gradient(90deg, #445fe8, #d72b61 58%, #ffd166);
  box-shadow: 0 0 14px rgba(255, 190, 62, .32);
}
.launcher-theme-tournament .launcher-server-icon i {
  background: linear-gradient(180deg, #ffe184, #d52b5e);
  box-shadow: 0 0 13px rgba(221, 50, 92, .34);
}
.launcher-theme-tournament .launcher-wait-panel {
  background:
    radial-gradient(circle at 50% 5%, rgba(255, 191, 57, .12), transparent 44%),
    rgba(17, 8, 48, .62);
  border-color: rgba(255, 200, 75, .13);
}
.launcher-theme-tournament .launcher-wait-pulse {
  background: radial-gradient(circle, rgba(255, 190, 62, .2), transparent 70%);
}
.launcher-theme-tournament .launcher-reservation {
  background: rgba(255, 183, 3, .07);
  border-color: rgba(255, 207, 87, .13);
}
.launcher-theme-tournament .launcher-reservation > span {
  color: #381506;
  background: linear-gradient(145deg, #ffe68b, #ffb703);
}
.launcher-theme-tournament .launcher-reservation strong { color: #ffe6a0; }
.launcher-theme-tournament .launcher-primary {
  color: #fff9e8;
  background: linear-gradient(135deg, #d6275c, #7a2ab1 58%, #3e55da);
  box-shadow: 0 8px 22px rgba(126, 31, 111, .34), inset 0 1px 0 rgba(255, 225, 154, .2);
}
.launcher-theme-tournament .launcher-primary.gold {
  color: #351506;
  background: linear-gradient(180deg, #ffe78d, #ffb703);
  box-shadow: 0 8px 22px rgba(255, 183, 3, .2), inset 0 1px 0 rgba(255,255,255,.5);
}
.launcher-theme-tournament .launcher-state-icon.success {
  color: #351506;
  background: linear-gradient(145deg, #fff0a8, #ffb703);
  box-shadow: 0 10px 28px rgba(255, 183, 3, .24);
}

@media (max-height: 680px) {
  .launcher-shell { gap: 10px; padding-top: calc(var(--safe-top) + 10px); }
  .launcher-game:not(.compact) { display: grid; grid-template-columns: 130px 1fr; }
  .launcher-game:not(.compact) .launcher-game-media { min-height: 120px; aspect-ratio: auto; }
  .launcher-game:not(.compact) .launcher-game-copy { display: flex; flex-direction: column; justify-content: center; }
  .launcher-loading-panel { min-height: 280px; }
}
