
*{box-sizing:border-box}
:root{--gg-gold:#D6AA3A;--gg-black:#080A0D;--gg-graphite:#14171C;--gg-white:#F5F5F3;--bg:var(--gg-black);--card:var(--gg-graphite);--line:rgba(245,245,243,.13);--gold:var(--gg-gold);--gold2:#E6C35C;--text:var(--gg-white);--muted:#A2A7AE;--green:#36d399;--red:#fb7185;--blue:#7BA7C7;--violet:#9A8FBF;--gg-space-1:4px;--gg-space-2:8px;--gg-space-3:12px;--gg-space-4:16px;--gg-space-6:24px;--gg-space-8:32px;--gg-space-12:48px;--gg-space-16:64px;--gg-radius-sm:6px;--gg-radius-md:10px;--gg-radius-lg:16px;--gg-transition-fast:150ms ease;--gg-transition-default:220ms ease}
body{margin:0;background:linear-gradient(rgba(245,245,243,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(245,245,243,.035) 1px,transparent 1px),radial-gradient(circle at 50% -20%,rgba(214,170,58,.10),transparent 36rem),var(--bg);background-size:44px 44px,44px 44px,auto,auto;color:var(--text);font-family:Inter,system-ui,Arial,sans-serif;min-height:100vh}
button,input{font:inherit}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed}.hide{display:none!important}.shell{max-width:560px;margin:auto;min-height:100vh;padding:14px 14px 94px}
.top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.brand{display:flex;align-items:center;gap:10px}.logo{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,var(--gold2),#D6AA3A);display:grid;place-items:center;color:#111;font-weight:1000;box-shadow:0 8px 24px #D6AA3A30}.brand b{color:var(--gold2)}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.wallet{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:8px 11px;text-align:right}.wallet small{display:block;color:var(--muted);font-size:9px}.wallet b{color:var(--gold2);font-size:14px}
.hero{background:linear-gradient(145deg,#14171C,#080A0D);border:1px solid rgba(245,245,243,.18);border-radius:24px;padding:20px;position:relative;overflow:hidden;margin-bottom:14px}.hero:after{content:"VS";position:absolute;right:-6px;top:4px;font-size:96px;font-weight:1000;color:#ffffff07;transform:rotate(-8deg)}.tag{font-size:10px;color:var(--gold2);font-weight:900;letter-spacing:1px}.hero h1{font-size:28px;line-height:1.05;margin:8px 0}.hero p{font-size:12px;color:var(--muted);line-height:1.5;max-width:360px}
.cta{border:0;border-radius:14px;padding:13px 16px;font-weight:900;cursor:pointer}.gold{background:linear-gradient(135deg,var(--gold2),#D6AA3A);color:#111}.ghost{background:#14171C;color:#F5F5F3;border:1px solid rgba(245,245,243,.18)}.redbtn{background:#351c27;color:#fecdd3;border:1px solid #663044}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.card{background:linear-gradient(to bottom,rgba(212,175,55,.30) 0%,rgba(212,175,55,.03) 100%);border:1px solid var(--gg-gold-border);box-shadow:var(--gg-gold-shadow);border-radius:18px;padding:14px;text-align:center;display:flex;flex-direction:column;align-items:center}.card h3{margin:5px 0;font-size:16px}.card p{margin:0;color:var(--muted);font-size:10px;line-height:1.4}.card .price{font-size:20px;font-weight:1000;color:var(--gold2);margin:10px 0}.card button{width:100%}
.bottom.adminMode{grid-template-columns:repeat(6,1fr)}
.bottom{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);background:rgba(8,10,13,.93);backdrop-filter:blur(14px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:8px 6px max(8px,env(safe-area-inset-bottom));z-index:20}.nav{background:none;border:0;color:#A2A7AE;font-size:9px;padding:6px}.nav b{display:block;font-size:17px;margin-bottom:2px}.nav.active{color:var(--gold2)}
.screen{animation:in .18s ease}@keyframes in{from{opacity:.2;transform:translateY(4px)}}.panel{background:#14171C;border:1px solid var(--line);border-radius:20px;padding:15px;margin-bottom:12px}.panel h2{font-size:16px;margin:0 0 5px}.sub{font-size:10px;color:var(--muted);line-height:1.5}
.matchBox{text-align:center;padding:30px 15px}.pulse{width:90px;height:90px;border-radius:50%;border:2px solid var(--gold);display:grid;place-items:center;margin:15px auto;font-size:28px;font-weight:1000;color:var(--gold2);animation:ggMatchmakingPulse 1.6s ease-in-out infinite}
@keyframes ggMatchmakingPulse{0%{box-shadow:0 0 0 0 #D6AA3A30,0 0 0 0 #D6AA3A18}70%{box-shadow:0 0 0 12px #D6AA3A00,0 0 0 24px #D6AA3A00}100%{box-shadow:0 0 0 0 #D6AA3A00,0 0 0 0 #D6AA3A00}}
/* GG_MATCH_SCREEN_RULES — bloco de regras visivel durante a busca (ver
   docs/GG_MATCH_STANDARD.md). Fica exposto (nao atras de um toque
   em "?") de proposito: o tempo de fila e' o momento certo pro jogador ler
   a regra ANTES da partida comecar, nao depois de perder por nao saber. */
.matchRulesBox{margin-top:12px;padding:12px 14px;border:1px solid rgba(214,170,58,.22);border-radius:var(--gg-radius-md);background:linear-gradient(180deg,#14171C,#0c0e12);text-align:left}
.matchRulesBox small{display:block;color:var(--gold2);font-size:9px;letter-spacing:.08em;font-weight:900;margin-bottom:6px}
.matchRulesBox ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:4px}
.matchRulesBox li{font-size:11px;color:var(--muted);line-height:1.4}
.matchRulesBox li::marker{color:var(--gold)}
.duelHead{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.fighter{background:#131d2e;border:1px solid var(--line);border-radius:16px;padding:10px;text-align:center}.fighter b{display:block;font-size:12px}.fighter small{color:var(--muted);font-size:9px}.vs{font-weight:1000;color:var(--gold2)}
.timer{text-align:center;font-size:34px;font-weight:1000;color:var(--gold2);margin:12px 0 4px}.instruction{text-align:center;color:var(--muted);font-size:11px;margin-bottom:12px}
/* GG_GRID_MATCH_FIT_VIEWPORT_R213 — pedido do operador: a tela de partida do
   Grid Duel (grade de numeros/letras) exigia rolar pra baixo no PC pra
   aparecer inteira. Removido o banner de regra repetido (ja mostrado na
   espera) e reduzida a folga vertical do cabecalho SO' na tela de jogo ao
   vivo (#game), sem afetar .duelHead/.timer/.instruction usados em outras
   telas (treino, outros jogos). */
.duelHeadCompact .fighter{padding:6px}
.timerCompact{margin:4px 0 2px;font-size:28px}
.instructionCompact{margin-bottom:6px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.tile{aspect-ratio:1;border-radius:16px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:var(--text);font-size:22px;font-weight:1000;display:grid;place-items:center;cursor:pointer;user-select:none}.tile:active{transform:scale(.96)}.tile.ok{background:#143126;border-color:#287b5b;color:#86efac}.tile.bad{background:#351b25;border-color:#7c3048;color:#fecdd3}
.scorebar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.scorebar div{background:#14171C;border-radius:12px;padding:9px;text-align:center}.scorebar small{display:block;color:var(--muted);font-size:8px}.scorebar b{font-size:13px}
/* GG_GRID_DESKTOP_768_FIT_R1 — em 1366x768 a grade usava toda a largura
   de 532px do shell e, por ser quadrada, empurrava o placar para fora da
   viewport. No desktop baixo, limita somente a partida real pela altura
   disponivel; treino/mobile e a area de toque continuam inalterados. */
@media (min-width:700px) and (max-height:900px){
  #game .ggBackBtn{min-height:32px;margin-bottom:6px}
  #game .grid{width:min(100%,48vh);margin-inline:auto;gap:7px}
  #game .tile{border-radius:12px;font-size:20px}
  #game .scorebar{width:min(100%,48vh);margin:8px auto 0}
  #game .scorebar div{padding:7px}
  #game .modeLive{margin-top:4px;padding-block:3px}
  #game .gridPenaltyFlash{min-height:20px;margin-top:3px}
}
.result{text-align:center}.trophy{font-size:54px;margin:8px}.result h2{font-size:25px;margin:5px}.resultGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.resultGrid div{background:#131d2e;border-radius:14px;padding:12px}.resultGrid small{display:block;color:var(--muted);font-size:9px}
.rankRow{display:flex;justify-content:space-between;align-items:center;padding:11px 3px;border-bottom:1px solid #202b40;font-size:12px}.rankRow small{color:var(--muted)}
.auth{width:min(400px,calc(100vw - 24px));max-width:400px;margin:10vh auto;padding:20px;box-sizing:border-box;overflow:hidden}.field{width:100%;padding:13px;border-radius:13px;border:1px solid var(--line);background:var(--card);color:white;margin:6px 0}.authBtns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:8px}.authBtns .cta{min-width:0;white-space:normal}.msg{font-size:11px;color:var(--red);margin-top:9px}
.loginRemember{display:flex;align-items:center;gap:8px;color:#A2A7AE;font-size:10px;margin:8px 2px 2px}.loginRemember input{accent-color:var(--gold);width:16px;height:16px}

.adm{border-color:rgba(214,170,58,.4);background:rgba(214,170,58,.06)}.admGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admGrid div{background:#14171C;border:1px solid rgba(245,245,243,.14);border-radius:13px;padding:10px}.admGrid small{display:block;color:var(--muted);font-size:8px}.admGrid b{color:var(--gold2)}
.classicRooms{display:grid;grid-template-columns:1fr 1fr;gap:10px}.classicRoom{background:#14171C;border:1px solid var(--line);border-radius:18px;padding:13px}.classicRoom.joined{border-color:var(--gold)}.classicRoom .head{display:flex;justify-content:space-between;font-size:10px}.classicRoom .head span:last-child{color:var(--blue)}.classicRoom h3{margin:7px 0 3px}.classicRoom p{font-size:9px;color:var(--muted);margin:0}.classicRoom button{width:100%;margin-top:9px}
.classicNums{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.num{aspect-ratio:1;border-radius:13px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:white;font-weight:900}.num.mine{background:#143126;border-color:#287b5b}.num.taken{opacity:.45}.num.win{border-color:var(--gold2);box-shadow:0 0 16px #D6AA3A33}.classicHead{display:flex;justify-content:space-between;align-items:center;gap:10px}.classicHead .big{font-size:25px;font-weight:1000;color:var(--gold2)}

/* ===== GG UX V10.5.1 • RANKINGS + ADM BÔNUS ===== */
/* GG_RANKING_V2_R76 — abas de jogo em linha unica com scroll horizontal
   (eram grid de 3 colunas que quebrava em varias linhas com 8 abas; no
   mobile virava uma coluna unica de 8 botoes empilhados — revisado por
   pedido explicito de responsividade dos filtros). */
.rankTabs{display:flex;gap:7px;margin:12px 0;padding-right:26px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;cursor:grab;mask-image:linear-gradient(to right,#000 calc(100% - 30px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 30px),transparent 100%)}
.rankTabs.ggDragging{cursor:grabbing;user-select:none}
.rankTabs::-webkit-scrollbar{display:none}
.rankTab{flex:0 0 auto;white-space:nowrap;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#A2A7AE;border-radius:12px;padding:10px 12px;font-size:10px;font-weight:900;cursor:pointer}
.rankTab.active{border-color:var(--gold);color:var(--gold2);background:#211b0d}
.rankHero{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0;padding:12px;border-radius:16px;background:#14171C;border:1px solid var(--line);cursor:pointer}
.rankHero:active{transform:scale(.99)}
.rankHero small{display:block;color:var(--muted);font-size:9px}.rankHero b{font-size:16px}
/* GG_RANKING_V2_R76 — .rankPos agora acumula posicao/medalha + o
   indicador de tendencia (eram 2 filhos sobre "display:grid;
   place-items:center", que sobrepunha os dois no centro — trocado para
   coluna empilhada). */
.rankPos{min-width:38px;height:38px;padding:2px 0;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#171f2f;border:1px solid rgba(245,245,243,.18);font-weight:1000}
.rankPos .ggRankTrend{font-size:9px;min-width:0}
.rankName{text-align:center}
.rankMetric{text-align:center}.rankMetric b{display:block;color:var(--gold2)}.rankMetric small{color:var(--muted)}
/* GG_RANKING_V2_R76 — indicador de tendencia (posicao anterior real,
   nunca aleatoria — ver backend/ranking.js attachTrend). */
.ggRankTrend{display:inline-flex;align-items:center;justify-content:center;min-width:18px;font-weight:1000;font-size:12px}
.ggRankTrend.ggUp{color:var(--green)}.ggRankTrend.ggDown{color:var(--red)}.ggRankTrend.ggFlat{color:var(--muted)}
/* Linha fixa do proprio usuario quando fora do Top 25 — visualmente
   diferente do restante (moldura dourada, mesmo padrao do
   docs/GG_VISUAL_STANDARD.md), nunca duplicada se ja estiver no Top 25. */
.rankMeRow{border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow);border-radius:16px;padding:12px;margin:12px 0}
.rankMeRow .rankMeLabel{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--gold2);text-transform:uppercase;margin-bottom:8px;text-align:center}
.rankMeGap{margin:-4px 0 10px;padding:8px 10px;border-radius:12px;background:rgba(212,175,55,.08);border:1px solid rgba(212,175,55,.25);text-align:center;font-size:11px;color:#F5F5F3}
.rankMeGap b{color:var(--gold2)}
.rankMeRow .rankMeGap{margin-top:9px;background:none;border:0;border-top:1px solid rgba(212,175,55,.25);border-radius:0;padding:9px 0 0}
.ggRankMe{border-color:var(--gold)!important;background:linear-gradient(145deg,rgba(212,175,55,.14),#14171C)!important}
/* GG_RANKING_V2_R76 — titulos/textos do topo da aba Ranking centralizados
   (pedido explicito); escopado a #ranking para nao afetar .ggScreenIntro/
   .panel de outras telas que usam as mesmas classes genericas. */
#ranking .ggScreenIntro{text-align:center}
#ranking .panel>h2,#ranking .panel>.sub{text-align:center}
.ggRankMoneyNote{margin:8px 0 4px;padding:9px 10px;border-radius:12px;background:#0b1b2c;border:1px solid #234360;color:#9cc9ef;font-size:9px;line-height:1.45;text-align:center}
.ggRankMoneyNote b{color:#cfe6fb}
.admBonusBox{margin-top:13px;padding:13px;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:18px}
.admBonusTools{display:grid;grid-template-columns:1.4fr .8fr;gap:8px;margin-top:10px}
.admBonusTools input,.admBonusTools select{width:100%;box-sizing:border-box;background:#080A0D;color:#F5F5F3;border:1px solid rgba(245,245,243,.18);border-radius:12px;padding:11px;outline:none}
.admBonusActions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}
.admBonusActions button{padding:10px 6px;font-size:9px}
.admUserList{margin-top:10px;max-height:520px;overflow:auto;border-top:1px solid #202b40}
.admUserRoleTag{display:inline-block;margin-top:4px;padding:2px 7px;border-radius:8px;font-size:.62rem;font-weight:800;letter-spacing:.03em;background:#1c2436;color:var(--muted)}
.admUserRoleTag--mod{background:rgba(139,92,246,.18);color:#c4b5fd}
.admUserRoleTag--beta{background:rgba(214,170,58,.18);color:var(--gg-gold)}
.admUserRow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #202b40;cursor:pointer}
.admUserRow:hover{background:#ffffff05}.admUserRow.active{background:#D6AA3A0d}
.admUserRow small{display:block;color:var(--muted);font-size:9px}.admUserRow b{font-size:11px}.admUserBal{color:var(--gold2);white-space:nowrap}
.admBonusStatus{margin-top:8px;color:var(--muted);font-size:10px;line-height:1.4}
.liveBotNote{margin-top:9px;padding:9px 10px;border:1px solid #234360;background:#0b1b2c;border-radius:12px;color:#9cc9ef;font-size:10px;line-height:1.4}.liveDot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 10px #22c55e;margin-right:6px}.adminNavBadge{font-size:8px;color:var(--gold2)}
@media(max-width:410px){.admBonusTools{grid-template-columns:1fr}.admBonusActions{grid-template-columns:1fr 1fr 1fr}}

@media(max-width:410px){.cards,.classicRooms{grid-template-columns:1fr}.grid{gap:7px}.tile{border-radius:13px}}

.classicDetailHero{
  background:linear-gradient(145deg,#14171C,#080A0D);
  border:1px solid rgba(245,245,243,.18);border-radius:22px;padding:16px;margin-bottom:12px
}
.classicDetailTop{display:flex;justify-content:space-between;gap:12px;align-items:center}
.classicDetailTop h2{margin:0;font-size:20px}
.classicDetailTop .roomPrice{font-size:22px;font-weight:1000;color:var(--gold2)}
.classicKpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.classicKpi{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:9px;text-align:center}
.classicKpi small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}
.classicKpi b{display:block;margin-top:4px;font-size:13px}
.classicNumbersBox{background:#14171C;border:1px solid var(--line);border-radius:20px;padding:14px}
.classicNumbersTitle{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.classicNumbersTitle b{font-size:14px}.classicNumbersTitle span{font-size:10px;color:var(--muted)}
.classicNumsBig{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.classicNumsBig .num{min-height:62px;aspect-ratio:auto;font-size:18px;position:relative}
.classicNumsBig .num small{display:block;font-size:8px;font-weight:700;margin-top:3px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.classicNumsBig .num.mine small{color:#86efac}.classicNumsBig .num.taken small{color:#fecdd3}
.classicInfoRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.classicInfo{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:10px}
.classicInfo small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}
.classicInfo b{display:block;margin-top:4px;font-size:12px}
.classicActionBar{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
@media(max-width:430px){
  .classicKpis{grid-template-columns:repeat(2,1fr)}
  .classicNumsBig{gap:7px}
  .classicNumsBig .num{min-height:56px}
}


.navalHero{background:linear-gradient(145deg,#10263b,#0d1725);border:1px solid #285273;border-radius:22px;padding:18px;margin-bottom:12px;position:relative;overflow:hidden}
.navalHero:after{content:"NB";position:absolute;right:10px;bottom:-15px;font-size:64px;font-weight:1000;opacity:.06}
.navalBoard{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;margin:12px auto 0;max-width:420px;background:#14171C;border-radius:14px;padding:6px}.sea{aspect-ratio:1;border-radius:7px;border:1px solid rgba(245,245,243,.16);background-color:#14171C;background-size:80%;background-position:center;background-repeat:no-repeat;color:#F5F5F3;font-size:10px;font-weight:900;text-shadow:0 1px 3px #000,0 0 6px #000;display:grid;place-items:center;cursor:pointer;min-width:0}.sea.ship{background-color:#14171C;background-image:url(../assets/gridvault/cofre.png);border-color:rgba(245,245,243,.22)}.sea.hit{background-color:#3a0f18;background-image:url(../assets/gridvault/cofre_aberto.png);border-color:#dc5a75;color:#fff}.sea.hitAnim{background-color:#3a0f18;background-image:url(../assets/gridvault/cofre_explodindo_animacao.gif);border-color:#E6C35C;color:#fff}.sea.miss{background-color:#14171C;background-image:url(../assets/gridvault/chao_destruido.png);border-color:#3f7da3;color:#93c5fd}.sea.aimed{border-color:#D6AA3A;box-shadow:0 0 0 2px rgba(214,170,58,.55) inset;background-color:rgba(214,170,58,.22)}.sea.disabled{cursor:default}.navalSingleBoard .navalBoardBig{max-width:480px;margin-left:auto;margin-right:auto}.navalBoardBig .sea{font-size:12px}.navalTitle{display:flex;justify-content:space-between;align-items:center;gap:10px}.navalTurn{font-size:24px;font-weight:1000;color:var(--gold2)}.navalFleet{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.fleetCard{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:12px;padding:8px;text-align:center}.fleetCard small{display:block;color:var(--muted);font-size:8px}.fleetCard b{font-size:11px}.navalStatus{padding:10px;border-radius:13px;background:#14171C;border:1px solid rgba(245,245,243,.18);margin-top:10px;font-size:11px;color:#F5F5F3}
.navalCenterModal{position:fixed;inset:0;background:rgba(8,10,13,.85);z-index:9000;display:flex;align-items:center;justify-content:center;padding:18px}
.navalCenterModal.hide{display:none}
.navalCenterModalCard{width:min(360px,100%);background:var(--card);border:1px solid rgba(245,245,243,.18);border-radius:20px;padding:20px;text-align:center}
.navalCenterModalCard .sub{margin-top:6px}
.navalCenterModalCard .pulse{margin:0 auto 8px}
/* GG_NAVAL_CENTER_MODAL_ALIGN_R138 — pedido do operador: os titulos das 3
   janelas centralizadas (resultado/aguardando/eliminado) reaproveitavam
   .navalTitle, que e' flex+space-between (feito pra caber 2 itens lado a
   lado nos paineis normais) -- dentro do modal, com 1 item so, o flex
   grudava o texto na ESQUERDA em vez de centralizar, ignorando o
   text-align:center do .navalCenterModalCard. Classe propria, sem flex. */
.navalCenterModalTitle{font-weight:1000;font-size:15px;text-align:center;margin-bottom:2px}
/* GG_NAVAL_REVEAL_CELEBRATION_R135/R138 — destaque grande e comemorativo
   dos acertos/valor encontrado nesta salva, agrupado num cartao unico
   (fundo + borda) pra ficar organizado em vez de numeros soltos flutuando
   no meio do texto. */
.navalRevealStatBox{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:16px;padding:16px 10px 14px;margin:14px 0 10px;text-align:center;display:flex;flex-direction:column;align-items:center}
.navalRevealHitsNum{width:100%;text-align:center;font-size:46px;font-weight:1000;line-height:1;color:var(--gold2);text-shadow:0 0 22px rgba(212,175,55,.5);animation:navalRevealPop .45s ease-out}
.navalRevealHitsNum.zero{color:#A2A7AE;text-shadow:none;animation:none}
.navalRevealHitsLabel{width:100%;text-align:center;font-size:10px;letter-spacing:1.4px;color:var(--muted);font-weight:900;margin-top:2px}
.navalRevealMoney{width:100%;text-align:center;font-size:24px;font-weight:1000;color:#4ade80;margin-top:10px}
.navalRevealMoney.zero{color:#A2A7AE}
@keyframes navalRevealPop{0%{transform:scale(.55);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
.navalStatus.myTurn{background:#102d21;border-color:#2d7a56;color:#86efac;box-shadow:0 0 0 1px #22c55e22}.navalStatus.opTurn{background:#341b24;border-color:#7c3048;color:#fecdd3}.navalTurn.myTurn{color:#4ade80}.navalTurn.opTurn{color:var(--red)}
.rematchBox{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.rematchHint{margin-top:8px;font-size:9px;color:var(--muted);min-height:14px}@media(max-width:410px){.rematchBox{grid-template-columns:1fr}}

/* GG_ONBOARDING_TOUR_R1 (2026-09-05) — pedido do operador: "tutoria de
   primeiro acesso... tela escurece e foca no botao/opcao". Escurece a
   tela inteira exceto um "buraco" recortado em volta do elemento em
   destaque (truque de box-shadow com espalhamento gigante em vez de
   overlay+clip-path, funciona em qualquer navegador sem SVG mask) e
   mostra um cartao explicando o elemento. So aparece uma vez por conta
   (ver ggMaybeShowOnboardingTour em gg-app.js).
   GG_ONBOARDING_TOUR_ARROW_REMOVED_R2 (2026-09-05) — a setinha (losango
   rotacionado) ficava so' uma faixa reta no meio da tela em vez de
   apontar pro elemento (bug real reportado pelo operador); removida a
   pedido, o "buraco" recortado ja deixa claro qual elemento e' o alvo. */
.ggTourHole{position:fixed;z-index:9998;border-radius:14px;box-shadow:0 0 0 9999px rgba(4,5,7,.82);border:2px solid var(--gold);pointer-events:none;transition:top .28s ease,left .28s ease,width .28s ease,height .28s ease;background:transparent}
.ggTourCard{position:fixed;z-index:9999;width:min(300px,86vw);background:var(--card);border:1px solid rgba(214,170,58,.35);border-radius:16px;padding:16px;box-shadow:0 12px 32px -8px rgba(0,0,0,.6);transition:top .28s ease,left .28s ease}
.ggTourCard.hide{display:none}
.ggTourStepLabel{font-size:9px;font-weight:900;letter-spacing:.12em;color:var(--gold)}
.ggTourTitle{font-size:14px;font-weight:1000;margin:5px 0 4px;color:var(--text,#F5F5F3)}
.ggTourText{font-size:11.5px;line-height:1.5;color:var(--muted)}
.ggTourActions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}
.ggTourActions button{flex:0 0 auto}

.botBadge{display:inline-block;padding:3px 6px;border-radius:999px;background:#312e1c;border:1px solid #6b5b23;color:var(--gold2);font-size:8px;font-weight:900;letter-spacing:.5px}
.botBtn{display:none;margin-top:8px;width:100%}.botBtn.show{display:block}
.botHint{margin-top:10px;padding:9px;border-radius:12px;background:rgba(214,170,58,.06);border:1px solid #443d1d;color:#c9bd82;font-size:10px;line-height:1.45}
.trainingFlag{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:999px;background:#1b1a10;border:1px solid #4f4822;color:var(--gold2);font-size:9px;font-weight:900}


.newGames{margin-bottom:14px}
.newGamesHead{display:flex;justify-content:space-between;align-items:end;margin:0 2px 9px}
.newGamesHead b{font-size:14px}.newGamesHead span{font-size:10px;color:var(--muted)}
.newGameCard{background:var(--gg-gold-bg);border:1px solid var(--gg-gold-border);box-shadow:var(--gg-gold-shadow);border-radius:24px;padding:20px;position:relative;overflow:hidden;min-height:235px}
.newGameCard:after{content:attr(data-mark);position:absolute;right:8px;bottom:-12px;font-size:92px;font-weight:1000;color:#ffffff08}
.newGameTag{font-size:10px;color:var(--gold2);font-weight:900;letter-spacing:1px}
.newGameTitle{font-size:28px;line-height:1.05;margin:8px 0 7px}
.newGameDesc{font-size:12px;color:var(--muted);line-height:1.5;max-width:360px;margin-bottom:14px}
.newGameMeta{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.newGameMeta span{padding:5px 7px;border-radius:999px;background:#14171C;border:1px solid var(--line);color:#A2A7AE;font-size:9px}
.newGameDots{display:flex;gap:6px;justify-content:center;margin-top:9px}
.newGameDot{width:7px;height:7px;border-radius:999px;border:0;background:#3a465b;padding:0}
.newGameDot.active{width:20px;background:var(--gold2)}


.freeValueBox{background:#14171C;border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:12px}
.freeValueBox h3{margin:0 0 6px;font-size:15px}.freeValueBox p{margin:0 0 10px;color:var(--muted);font-size:10px;line-height:1.45}
.freeValueRow{display:grid;grid-template-columns:1fr auto;gap:8px}
.freeValueRow input{width:100%;background:#14171C;border:1px solid rgba(245,245,243,.18);color:#fff;border-radius:12px;padding:11px}
.freeInstance{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:10px;margin-top:8px}
.freeInstance small{display:block;color:var(--muted);font-size:9px}.freeInstance b{font-size:12px}


.bonus2xBox{margin-top:12px;background:#14170f;border:1px solid #5c4f1f;border-radius:15px;padding:11px}
.bonus2xTop{display:flex;justify-content:space-between;align-items:center;gap:10px}
.bonus2xTop b{font-size:12px;color:var(--gold2)}.bonus2xTop span{font-size:10px;color:#b8ad76}
.bonusTrack{height:9px;background:#232719;border:1px solid #3c4024;border-radius:999px;overflow:hidden;margin-top:8px}
.bonusFill{height:100%;background:linear-gradient(90deg,#d99b17,var(--gold2));border-radius:999px}
.bonus2xReady{margin-top:8px;padding:8px;border-radius:11px;text-align:center;background:#322512;border:1px solid #8b6720;color:var(--gold2);font-size:11px;font-weight:1000;letter-spacing:.4px}
.bonus2xRound{animation:bonusPulse 1s infinite alternate}
@keyframes bonusPulse{from{box-shadow:0 0 0 #D6AA3A00}to{box-shadow:0 0 24px #D6AA3A35}}


.multiHint{margin-top:8px;padding:8px 9px;border-radius:11px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:#A2A7AE;font-size:9px;line-height:1.45}
.myNumbers{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.myNumbers span{display:inline-grid;place-items:center;min-width:25px;height:25px;border-radius:8px;background:#143126;border:1px solid #287b5b;color:#86efac;font-size:10px;font-weight:900}
.navalPlacement{background:#14171C;border:1px solid var(--line);border-radius:20px;padding:14px}
.navalRankRow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 4px;border-bottom:1px solid #1c2638;font-size:12px}
.navalRankRow:last-child{border-bottom:none}
.navalRankPos{width:20px;font-weight:900;color:#94a3b8}
.navalRankRow.me{background:rgba(212,175,55,.08);border-radius:10px}
.navalRankNick{flex:1;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.navalRankStats{display:flex;gap:10px;font-weight:800;color:#F5F5F3;font-size:11px}
.navalRankStats b{color:#D6AA3A}
.navalRankRow.dead{opacity:.55}
.navalBoard button.outsideRound{opacity:.25;background:#0a0f18;cursor:not-allowed}
.starShell{display:grid;gap:12px}
.starHero{background:linear-gradient(145deg,#061627,#15162c 55%,#241220);border:1px solid #28445f;border-radius:18px;padding:16px;position:relative;overflow:hidden}
.starHero:after{content:"";position:absolute;inset:auto -20px -70px auto;width:180px;height:180px;background:radial-gradient(circle,#D6AA3A44,transparent 64%);pointer-events:none}
.starMenuGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.starGameLayout{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}
.starCanvasBox{background:#060b15;border:1px solid #26364f;border-radius:14px;overflow:hidden}
#starCanvas{display:block;width:100%;height:min(46vh,460px);min-height:300px;touch-action:none}
.starHud{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.starHudItem{background:#14171C;border:1px solid #26364f;border-radius:10px;padding:8px;text-align:center}
.starHudItem small{display:block;color:var(--muted);font-size:9px;font-weight:900}
.starHudItem b{font-size:16px;color:var(--text)}
.starBracket{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.starBracketNode{background:#14171C;border:1px solid #26364f;border-radius:10px;padding:8px;text-align:center}
.starBracketNode.active{border-color:#D6AA3A;box-shadow:0 0 0 1px #D6AA3A33}
.starBracketNode.done{border-color:#34d399;color:#86efac}
.starBracketNode small{display:block;font-size:8px;color:var(--muted)}
.starRank{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #202b3f;padding:7px 0;font-size:12px}
.starRank.me{color:#D6AA3A;font-weight:900}
.starTouch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.starTouch button{min-height:46px}
@media(max-width:760px){
 .starHud{grid-template-columns:repeat(2,minmax(0,1fr))}
 .starMenuGrid{grid-template-columns:1fr}
 #starCanvas{height:46vh;min-height:320px}
}
.placeHeader{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}.placeHeader b{font-size:14px}
.orientationRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.orientationRow button.active{border-color:var(--gold2);color:var(--gold2);background:#282313}
.placeFleet{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0}
.placeFleet div{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:11px;padding:8px;text-align:center}
.placeFleet small{display:block;color:var(--muted);font-size:8px}.placeFleet b{font-size:11px}.placeFleet .done{color:#86efac}
.placeActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;margin-bottom:24px}
/* GG_NAVAL_PLACEMENT_MOBILE_FIT_R225 (R129 — cap tambem em desktop/tablet:
   `.shell` largo (ate 1500px, grid-arena-standard.css) deixava .navalBoard
   crescer junto por causa do aspect-ratio:1 nas 10 colunas, virando um
   tabuleiro de ~900px de altura sozinho e forcando rolagem pra jogar mesmo
   em telas grandes — max-width:420px no .navalBoard base (acima) resolve
   isso em qualquer largura). Este bloco so' aperta AINDA MAIS (300px) em
   celulares pequenos, onde painel + cabecalho + orientacao + frota + acoes
   juntos ja preenchem a tela mesmo com o tabuleiro no tamanho normal. */
@media(max-width:480px){
  #navalPlace .panel{padding:12px}
  #navalPlace .panel h2{margin:4px 0}
  .navalPlacement{padding:10px}
  .placeHeader{margin-bottom:6px}
  .orientationRow{gap:6px;margin:7px 0}
  .orientationRow button{min-height:38px}
  .navalBoard{max-width:300px;margin:10px auto 0;gap:3px;padding:5px}
  .placeFleet{gap:5px;margin:8px 0}
  .placeFleet div{padding:6px}
  .placeActions{gap:6px;margin-top:8px;margin-bottom:12px}
}
.sea.preview{background:rgba(214,170,58,.14);border-color:rgba(214,170,58,.4)}.sea.placed{background:#14171C;border-color:rgba(245,245,243,.2);color:#F5F5F3}
/* GG_NAVAL_BATTLE_SHIPS_R1 — reskin visual do Naval de volta pro tema
   tradicional (navios/frota/afundar), removendo os sprites de "cofre"
   (assets/gridvault/*.png) por cores planas usando as MESMAS variaveis
   de tema ja usadas no resto do app (--gold/--gold2/--blue/--red), sem
   introduzir paleta nova nem depender de asset externo. */
.navalHero:after{content:"NB"}
.sea.ship{background-color:rgba(214,170,58,.16)!important;background-image:none!important;border-color:var(--gold2)!important;color:var(--gold2)}
.sea.hit{background-color:rgba(251,113,133,.28)!important;background-image:none!important;border-color:var(--red)!important;color:#fff;box-shadow:0 0 10px rgba(251,113,133,.35)}
.sea.hitAnim{background-color:rgba(251,113,133,.28)!important;background-image:none!important;border-color:var(--gold2)!important;color:#fff;animation:navalHitPulse 1.1s ease-in-out infinite}
.sea.miss{background-color:rgba(56,189,248,.08)!important;background-image:none!important;border-color:rgba(56,189,248,.35)!important;color:var(--blue)}
.sea.aimed{border-color:var(--blue)!important;box-shadow:0 0 0 2px rgba(56,189,248,.5) inset!important;background-color:rgba(56,189,248,.18)!important}
@keyframes navalHitPulse{0%,100%{box-shadow:0 0 6px rgba(214,170,58,.35)}50%{box-shadow:0 0 16px rgba(214,170,58,.65)}}
.navalPlacement{background:linear-gradient(160deg,#14171C,#080A0D);border-color:rgba(245,245,243,.18)}
.orientationRow{display:grid!important}
.orientationRow button.active{border-color:var(--gold2);color:var(--gold2);background:rgba(214,170,58,.12)}
.placeFleet div{background:linear-gradient(160deg,#14171C,#080A0D);border-color:#22344a}
.navalFleet .fleetCard{background:linear-gradient(160deg,#14171C,#080A0D);border-color:#22344a}
.navalStatus{background:linear-gradient(160deg,#14171C,#080A0D)}
.navalRankRow.me{background:rgba(214,170,58,.1)}


.penaltyHero{background:linear-gradient(145deg,#12311f,#0d1f18);border:1px solid #25583c;border-radius:22px;padding:18px;margin-bottom:12px;position:relative;overflow:hidden}
.penaltyHero:after{content:"PD";position:absolute;right:8px;bottom:-15px;font-size:64px;font-weight:1000;opacity:.06}
.penaltyArena{padding-bottom:14px}
.penaltyScore{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;margin:12px 0 14px}
.pTeam{min-height:108px;text-align:center;background:linear-gradient(160deg,rgba(17,28,45,.92),rgba(10,18,31,.92));border:1px solid rgba(245,245,243,.18);border-radius:10px;padding:13px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.pTeam b{display:block;font-size:15px}.pTeam small{font-size:9px;color:var(--muted);font-weight:1000;text-transform:uppercase;margin-top:6px;padding:3px 8px;border-radius:999px;border:1px solid transparent}
.pTeam small.roleAttack,.turnCard .role.roleAttack{color:#E6C35C;background:rgba(214,170,58,.14);border-color:rgba(214,170,58,.45);text-shadow:0 0 12px rgba(214,170,58,.45)}
.pTeam small.roleKeeper,.turnCard .role.roleKeeper{color:#93c5fd;background:rgba(96,165,250,.14);border-color:rgba(96,165,250,.42);text-shadow:0 0 12px rgba(96,165,250,.45)}
.pTeam small.roleWait,.turnCard .role.roleWait{color:#A2A7AE;background:rgba(148,163,184,.1);border-color:rgba(148,163,184,.22)}
.pScore{font-size:28px;font-weight:1000;color:var(--gold2);text-shadow:0 0 16px rgba(214,170,58,.25);white-space:nowrap}
.kickDots{display:flex;gap:6px;justify-content:center;margin-top:10px}.kickDot{width:11px;height:11px;border-radius:50%;background:#2f3c50;border:1px solid #52627a}.kickDot.goalDot{background:#22c55e;border-color:#86efac}.kickDot.missDot{background:#ef4444;border-color:#fca5a5}
.turnCard{background:transparent;border:0;border-radius:0;padding:0;text-align:center;margin:0}.turnCard .role{display:inline-flex;align-items:center;justify-content:center;min-width:96px;font-size:11px;color:var(--gold2);font-weight:1000;letter-spacing:.7px;padding:5px 12px;border-radius:999px;border:1px solid transparent}.turnCard h3{margin:6px 0 0;color:#F5F5F3;font-size:12px}.turnCard p{margin:2px 0 0;color:var(--muted);font-size:10px}
.goal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,76px);gap:10px;background:transparent;border:0;border-radius:0;padding:0;margin-top:12px;position:relative}
.goalZone{border:1px solid rgba(245,245,243,.14);background:linear-gradient(160deg,#14171C,#080A0D);color:#A2A7AE;border-radius:8px;font-size:11px;font-weight:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;cursor:pointer;line-height:1.2;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 10px 24px rgba(0,0,0,.22)}
.goalZone:hover,.goalZone.selected{background:linear-gradient(160deg,#233955,#172942);border-color:#60a5fa;color:#fff;box-shadow:0 0 0 1px rgba(96,165,250,.45),0 0 24px rgba(96,165,250,.22)}
.goalZone .penZoneMarker{display:block;margin-top:4px;font-size:8px;color:var(--gold2);font-weight:1000}
.penaltyProgressTrack{height:4px;margin:14px 10px 14px;border-radius:999px;background:#273346;overflow:hidden}
.penaltyProgressTrack i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f5c85b,#c7962a);box-shadow:0 0 14px rgba(214,170,58,.35);transition:width .2s ease}
.penaltyResultBox{width:min(360px,100%);margin:0 auto;background:linear-gradient(160deg,rgba(17,28,45,.94),rgba(10,18,31,.94));border:1px solid rgba(245,245,243,.18);border-radius:10px;padding:13px;text-align:center}
.penaltyResultBox .tag{font-size:9px}.penaltyResultFlash{min-height:62px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(245,245,243,.14);border-radius:8px;margin-top:7px;background:#111d30;color:var(--muted);font-size:34px;font-weight:1000;font-style:italic;text-shadow:none}
.penaltyResultFlash.goal{color:#ffe678;text-shadow:0 0 18px rgba(255,230,120,.6)}.penaltyResultFlash.save{color:#93c5fd;text-shadow:0 0 18px rgba(96,165,250,.5)}.penaltyResultFlash.wait{font-size:15px;font-style:normal;color:#A2A7AE}.penaltyResultFlash.wait.roleAttack{color:#E6C35C;border-color:rgba(214,170,58,.45);background:linear-gradient(160deg,rgba(78,57,18,.72),rgba(17,29,48,.95));box-shadow:0 0 18px rgba(214,170,58,.16)}.penaltyResultFlash.wait.roleKeeper{color:#93c5fd;border-color:rgba(96,165,250,.42);background:linear-gradient(160deg,rgba(20,46,83,.72),rgba(17,29,48,.95));box-shadow:0 0 18px rgba(96,165,250,.16)}
.penaltyFinalPanel{padding:16px;border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow);border-radius:16px;text-align:center}
.penaltyFinalHead .tag{font-size:9px}.penaltyFinalHead h2{margin:8px 0 0;font-size:28px;font-weight:1000}.penaltyFinalHead h2.win{color:#86efac;text-shadow:0 0 18px rgba(34,197,94,.32)}.penaltyFinalHead h2.loss{color:#fecdd3;text-shadow:0 0 18px rgba(248,113,113,.28)}
.penaltyFinalAmount{margin-top:10px;padding:12px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.18)}.penaltyFinalAmount small{display:block;font-size:9px;color:var(--muted);font-weight:1000;text-transform:uppercase}.penaltyFinalAmount b{display:block;margin-top:3px;font-size:24px;font-weight:1000}.penaltyFinalAmount.win b{color:#86efac}.penaltyFinalAmount.loss b{color:#fecdd3}.penaltyFinalAmount.neutral b{color:#F5F5F3}
.penaltyFinalData{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.penaltyFinalData div{padding:10px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.14)}.penaltyFinalData small{display:block;font-size:8px;color:var(--muted);font-weight:1000;text-transform:uppercase}.penaltyFinalData b{display:block;margin-top:3px;font-size:13px;color:#F5F5F3}
.penaltyFinalPlayers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.penaltyFinalPlayer{padding:12px 8px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.18);text-align:center}.penaltyFinalPlayer.me{border-color:rgba(214,170,58,.55);background:#201a0b}.penaltyFinalPlayer img{width:42px;height:42px;border-radius:12px;object-fit:cover;border:1px solid #41546f}.penaltyFinalPlayer b{display:block;margin-top:6px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.penaltyFinalPlayer small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.penaltyFinalPlayerStats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:9px}.penaltyFinalPlayerStats span{padding:6px 3px;border-radius:8px;background:#0a101b;border:1px solid rgba(245,245,243,.14);font-size:8px;color:#A2A7AE}.penaltyFinalPlayerStats strong{display:block;margin-top:2px;font-size:12px;color:#F5F5F3}
@media(max-width:430px){.penaltyScore{gap:7px}.pTeam{min-height:96px;padding:10px 7px}.pTeam b{font-size:12px}.pScore{font-size:22px}.goal{grid-template-rows:repeat(2,66px);gap:7px}.goalZone{font-size:9px}.penaltyResultFlash{font-size:28px}}
@media(max-width:430px){.penaltyFinalPanel{padding:14px}.penaltyFinalHead h2{font-size:24px}.penaltyFinalAmount b{font-size:21px}.penaltyFinalPlayers{gap:8px}.penaltyFinalPlayer{padding:10px 6px}.penaltyFinalPlayerStats{grid-template-columns:1fr}.penaltyFinalData b{font-size:12px}}

/* GG_BLUFF_R1 — jogo novo de blefe/cartas 1v1. Reaproveita .penaltyScore/
   .pTeam/.pScore/.turnCard/.kickClock/.penaltyResultFlash/.penaltyFinalPanel
   (acima) para cabecalho/relogio/resultado; so a mao de cartas e' um
   componente novo. */
.bluffHandPanel{margin-top:16px;text-align:center}
.bluffHandPanel small{display:block;color:var(--gold2);font-size:9px;letter-spacing:.08em;font-weight:900;margin-bottom:8px}
.bluffHand{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.bluffCard{width:52px;height:74px;border-radius:8px;border:1px solid rgba(245,245,243,.22);background:linear-gradient(160deg,#181c24,#0b0d12);color:#F5F5F3;font-size:22px;font-weight:1000;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 8px 18px rgba(0,0,0,.28);transition:transform .12s,border-color .12s,box-shadow .12s}
.bluffCard:hover:not(:disabled){transform:translateY(-3px)}
.bluffCard.selected{border-color:#60a5fa;box-shadow:0 0 0 1px rgba(96,165,250,.45),0 0 20px rgba(96,165,250,.24)}
.bluffCard:disabled{cursor:default;opacity:.55}
.bluffRevealBad{color:#fecdd3!important;background:#2a1418!important;border-color:rgba(248,113,113,.4)!important;font-size:13px!important;font-style:normal!important;font-weight:800!important;padding:10px!important}
.bluffRevealGood{color:#86efac!important;background:#0f2417!important;border-color:rgba(34,197,94,.4)!important;font-size:13px!important;font-style:normal!important;font-weight:800!important;padding:10px!important}
/* GG_BLUFF_PILE_SEQUENCE_UI_R1 — monte mostrado como cartas viradas
   acumulando (numero = valor DECLARADO daquela jogada, nunca o valor real
   -- isso continua secreto ate' alguem duvidar). .bluffPileFly anima a
   carta voando pra quem perdeu o monte (blefe pego / duvida errada). */
.bluffSequenceBox{display:flex;flex-direction:column;align-items:center;gap:3px}
.bluffSequenceBox small{font-size:8px;color:var(--muted);font-weight:1000;letter-spacing:.06em;text-transform:uppercase;white-space:normal;text-align:center}
.bluffSequenceBox.pending{animation:bluffSequencePulse 1s ease-in-out infinite}
.bluffSequenceBox.pending small{color:#fca5a5}
.bluffSequenceBox.pending #bluffSequenceValue{color:#fca5a5;text-shadow:0 0 16px rgba(248,113,113,.4)}
@keyframes bluffSequencePulse{0%,100%{opacity:1}50%{opacity:.6}}
.bluffPileRow{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:40px;margin:10px 0}
.bluffPileCard{width:30px;height:40px;border-radius:6px;border:1px solid rgba(214,170,58,.4);background:linear-gradient(160deg,#20242c,#0c0e13);color:var(--gold2);font-size:13px;font-weight:1000;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 4px 10px rgba(0,0,0,.3);animation:bluffPileAppear .18s ease-out;transition:transform .5s cubic-bezier(.3,.7,.4,1),opacity .5s ease-in}
@keyframes bluffPileAppear{from{transform:scale(.4) translateY(-10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
.bluffPileCard.bluffPileFly{transform:translate(var(--dx),var(--dy)) scale(.5) rotate(12deg);opacity:0}
@media(max-width:430px){.bluffCard{width:44px;height:64px;font-size:18px}.bluffPileCard{width:24px;height:32px;font-size:11px}}


/* GG_BLUFF_REDESIGN_R2 — mesa de duelo: base Gold Grid; coral e mint sao
   reservados para risco e turno, sem alterar qualquer regra do jogo. */
#bluffGame{max-width:1180px}
#bluffGame .ggBackBtn{position:relative;z-index:1}
.bluffTable{margin-top:12px;padding:16px;background:radial-gradient(circle at 50% 34%,rgba(214,170,58,.09),transparent 34%),linear-gradient(135deg,#14171C,#080A0D);border:1px solid rgba(245,245,243,.14);border-radius:16px;box-shadow:0 18px 42px rgba(0,0,0,.28);overflow:hidden}
.bluffGameTop{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid rgba(245,245,243,.1)}
.bluffGameTop>div:first-child{display:flex;align-items:center;gap:10px}.bluffGameTop b{font-size:13px;letter-spacing:.08em;color:var(--gg-white);white-space:nowrap}.bluffRuleHint{color:var(--muted);font-size:11px;text-align:right}
.bluffArena{max-width:840px;margin:0 auto;padding:22px 0 18px;background-image:linear-gradient(rgba(245,245,243,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(245,245,243,.025) 1px,transparent 1px);background-size:24px 24px}
.bluffScoreboard{margin:0;gap:26px}.bluffScoreboard .pTeam{min-height:94px;padding:12px;background:#14171C;border-color:rgba(245,245,243,.16);transition:border-color .22s,box-shadow .22s,background .22s}.bluffScoreboard .pTeam.is-active{border-color:rgba(79,209,165,.72);background:linear-gradient(145deg,rgba(79,209,165,.12),#14171C);box-shadow:0 0 0 1px rgba(79,209,165,.16),0 12px 26px rgba(0,0,0,.2)}
.bluffScoreboard .pTeam b{font-size:16px}.bluffScoreboard .pTeam small{margin-top:5px;color:var(--muted)}
.bluffSequenceBox{width:116px;height:116px;justify-content:center;gap:0;border:2px solid var(--gg-gold);border-radius:50%;background:radial-gradient(circle,rgba(214,170,58,.18),rgba(8,10,13,.92) 68%);box-shadow:0 0 0 7px rgba(214,170,58,.06),0 14px 28px rgba(0,0,0,.28)}
.bluffSequenceBox small{color:var(--muted);font-size:8px;line-height:1.15}.bluffSequenceBox #bluffSequenceValue{font-size:45px;line-height:1;color:var(--gg-gold);font-variant-numeric:tabular-nums;text-shadow:none}.bluffSequenceBox i{font-size:7px;font-style:normal;font-weight:900;letter-spacing:.1em;color:var(--gg-gold);margin-top:3px}
.bluffDecisionPanel{max-width:590px;margin:18px auto 0;padding:14px 16px;background:rgba(8,10,13,.74);border:1px solid rgba(245,245,243,.13);border-radius:12px}.bluffDecisionPanel .role{background:rgba(214,170,58,.1);border-color:rgba(214,170,58,.28);color:var(--gg-gold)}.bluffDecisionPanel h3{max-width:480px;margin:8px auto 0;font-size:13px;line-height:1.4}.bluffDecisionActions{min-height:0;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px}
#bluffGame .cta.redbtn{min-width:176px;min-height:48px;margin:0!important;border:1px solid rgba(242,107,94,.75);border-radius:8px;background:#F26B5E;color:#080A0D;box-shadow:none}#bluffGame .cta.redbtn:hover{background:#ff8377}
.bluffHandPanel{max-width:840px;margin:0 auto;padding:14px 0 0;text-align:center;border-top:1px solid rgba(245,245,243,.1)}.bluffHandHeader{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.bluffHandHeader small{display:block;color:var(--gg-gold);font-size:10px;letter-spacing:.1em;font-weight:900}.bluffHandHeader span{color:var(--muted);font-size:10px}
.bluffHand{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.bluffCard{width:58px;height:82px;border-radius:10px;border:1px solid #d9d4c8;background:linear-gradient(145deg,#F7F4ED,#e5e0d5);color:#0C1220;font-size:28px;font-weight:1000;font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 7px 15px rgba(0,0,0,.25);transition:transform .15s,border-color .15s,box-shadow .15s}.bluffCard:hover:not(:disabled),.bluffCard:focus-visible:not(:disabled){transform:translateY(-8px);border-color:var(--gg-gold);outline:0;box-shadow:0 0 0 2px rgba(214,170,58,.36),0 14px 22px rgba(0,0,0,.28)}.bluffCard.selected{transform:translateY(-12px);border:2px solid var(--gg-gold);box-shadow:0 0 0 2px rgba(214,170,58,.24),0 16px 25px rgba(0,0,0,.3)}.bluffCard:disabled{cursor:default;opacity:.6}
.bluffRevealBad{color:#F7F4ED!important;background:rgba(242,107,94,.16)!important;border-color:rgba(242,107,94,.55)!important;font-size:13px!important;font-style:normal!important;font-weight:800!important;padding:10px!important}.bluffRevealGood{color:#F7F4ED!important;background:rgba(79,209,165,.13)!important;border-color:rgba(79,209,165,.5)!important;font-size:13px!important;font-style:normal!important;font-weight:800!important;padding:10px!important}
.bluffSequenceBox.pending{border-color:#F26B5E}.bluffSequenceBox.pending small,.bluffSequenceBox.pending i{color:#F26B5E}.bluffSequenceBox.pending #bluffSequenceValue{color:#F26B5E;text-shadow:none}
.bluffPileRow{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;min-height:44px;margin:10px 0}.bluffPileCard{width:32px;height:44px;border-radius:7px;border:1px solid rgba(214,170,58,.52);background:linear-gradient(145deg,#16243A,#0C1220);color:var(--gg-gold);font-size:13px;font-weight:1000;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 4px 10px rgba(0,0,0,.3)}
@media(max-width:600px){#bluffGame{padding-left:10px;padding-right:10px}.bluffTable{margin-top:8px;padding:12px;border-radius:12px}.bluffGameTop{align-items:flex-start}.bluffGameTop b{font-size:11px}.bluffRuleHint{max-width:138px;font-size:9px;line-height:1.35}.bluffArena{padding:16px 0 14px;background-size:20px 20px}.bluffScoreboard{gap:8px}.bluffScoreboard .pTeam{min-height:76px;padding:8px 5px}.bluffScoreboard .pTeam b{font-size:12px;max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bluffScoreboard .pTeam small{font-size:8px;padding:0;border:0}.bluffSequenceBox{width:82px;height:82px;border-width:1px;box-shadow:0 0 0 4px rgba(214,170,58,.06)}.bluffSequenceBox #bluffSequenceValue{font-size:32px}.bluffSequenceBox small{font-size:7px}.bluffSequenceBox i{font-size:6px}.bluffDecisionPanel{margin-top:13px;padding:12px 10px}.bluffDecisionPanel h3{font-size:11px}.bluffDecisionActions{flex-direction:column;gap:7px}.bluffDecisionActions .kickClock{margin:0}.bluffHandPanel{padding-top:12px}.bluffHandHeader span{font-size:9px}.bluffHand{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:10px 3px 5px;-webkit-overflow-scrolling:touch}.bluffCard{flex:0 0 48px;width:48px;height:68px;font-size:23px}.bluffCard:hover:not(:disabled){transform:none}.bluffCard.selected{transform:translateY(-7px)}.bluffPileCard{width:25px;height:35px;font-size:11px}}

/* GG_BLUFF_COMMAND_REDESIGN_R3 — composicao inspirada na central tática:
   somente tokens Gold Grid, sem adicionar paleta de marca ao jogo. */
#bluffGame .bluffTable{padding:0;background:var(--gg-black);border-radius:10px;box-shadow:none}
#bluffGame .bluffGameTop{min-height:58px;padding:12px 16px;background:var(--gg-graphite);border-bottom:1px solid var(--line)}
#bluffGame .bluffGameTop b{font-size:12px;color:var(--gg-white)}
#bluffGame .bluffRuleHint{color:var(--muted)}
.bluffCommandBar{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border-bottom:1px solid var(--line);background:var(--line)}
.bluffCommandBar>div{min-height:58px;padding:10px 16px;background:var(--gg-black);display:flex;flex-direction:column;justify-content:center}.bluffCommandBar small{font-size:8px;letter-spacing:.08em;font-weight:900;color:var(--muted)}.bluffCommandBar b{margin-top:3px;font-size:14px;color:var(--gg-white);font-variant-numeric:tabular-nums}.bluffCommandBar>div:nth-child(2) b{color:var(--gg-gold)}
.bluffCommandLayout{max-width:none;display:grid;grid-template-columns:minmax(160px,.75fr) minmax(320px,1.65fr) minmax(160px,.75fr);align-items:stretch;gap:12px;padding:16px;background-image:linear-gradient(rgba(245,245,243,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(245,245,243,.025) 1px,transparent 1px);background-size:28px 28px}
.bluffSeat{display:flex;flex-direction:column;gap:8px}.bluffSeat>small{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.bluffSeatOpponent{text-align:right}.bluffSeat .pTeam{flex:1;min-height:126px;padding:14px 10px;border-radius:8px;background:var(--gg-graphite);border-color:var(--line);box-shadow:none}.bluffSeat .pTeam.is-active{background:var(--gg-gold-bg);border-color:var(--gg-gold-border);box-shadow:none}.bluffSeat .pTeam b{font-size:15px}.bluffSeat .pTeam small{color:var(--muted)}
.bluffCommandLayout .bluffDecisionPanel{max-width:none;margin:0;padding:14px;background:var(--gg-graphite);border-color:var(--line);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center}.bluffBoardLabel{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px}.bluffBoardLabel>span{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.bluffCommandLayout .bluffDecisionPanel .role{font-size:9px;padding:4px 8px;background:transparent;border-color:var(--gg-gold-border);color:var(--gg-gold)}
.bluffCommandLayout .bluffSequenceBox{width:104px;height:104px;margin:12px 0 6px;border:1px solid var(--gg-gold);border-radius:8px;background:var(--gg-black);box-shadow:inset 0 0 0 4px rgba(214,170,58,.06)}.bluffCommandLayout .bluffSequenceBox #bluffSequenceValue{font-size:42px}.bluffCommandLayout .bluffSequenceBox.pending{border-color:var(--gg-gold)}.bluffCommandLayout .bluffSequenceBox.pending small,.bluffCommandLayout .bluffSequenceBox.pending i,.bluffCommandLayout .bluffSequenceBox.pending #bluffSequenceValue{color:var(--gg-gold)}
.bluffCommandLayout .bluffPileRow{min-height:38px;margin:4px 0 8px}.bluffCommandLayout .bluffPileCard{width:27px;height:38px;border-radius:4px;background:var(--gg-black);border-color:var(--gg-gold-border);color:var(--gg-gold)}.bluffCommandLayout .bluffDecisionPanel h3{font-size:12px}.bluffCommandLayout .bluffDecisionActions{width:100%;margin-top:8px}.bluffCommandLayout .kickClock{margin:0}
#bluffGame .cta.redbtn{min-width:150px;border:1px solid var(--gg-gold);border-radius:2px;background:var(--gg-gold);color:var(--gg-black)}#bluffGame .cta.redbtn:hover,#bluffGame .cta.redbtn:focus-visible{background:#e3ba59;color:var(--gg-black)}
#bluffGame .bluffHandPanel{max-width:none;margin:0;padding:14px 16px 16px;background:var(--gg-black);border-top:1px solid var(--line)}#bluffGame .bluffHandHeader small{color:var(--gg-gold)}#bluffGame .bluffHandHeader span{color:var(--muted)}#bluffGame .bluffCard{border-radius:6px;border-color:rgba(245,245,243,.7);background:var(--gg-white);color:var(--gg-black);box-shadow:none}#bluffGame .bluffCard:hover:not(:disabled),#bluffGame .bluffCard:focus-visible:not(:disabled),#bluffGame .bluffCard.selected{border-color:var(--gg-gold);box-shadow:0 0 0 2px rgba(214,170,58,.28);outline:0}
#bluffGame .bluffRevealBad,#bluffGame .bluffRevealGood{color:var(--gg-white)!important;background:var(--gg-gold-bg)!important;border-color:var(--gg-gold-border)!important}
@media(max-width:600px){#bluffGame .bluffGameTop{padding:10px 12px;min-height:54px}.bluffCommandBar>div{min-height:52px;padding:8px 10px}.bluffCommandBar b{font-size:12px}.bluffCommandLayout{display:flex;flex-direction:column;gap:10px;padding:12px;background-size:22px 22px}.bluffSeat{gap:5px}.bluffSeat .pTeam{min-height:64px;flex:none}.bluffSeatOpponent{text-align:left}.bluffSeatOpponent{order:0}.bluffSeatMe{order:2}.bluffCommandLayout .bluffDecisionPanel{order:1;min-height:276px}.bluffCommandLayout .bluffSequenceBox{width:92px;height:92px;margin:8px 0 4px}.bluffCommandLayout .bluffSequenceBox #bluffSequenceValue{font-size:37px}.bluffCommandLayout .bluffDecisionActions{flex-direction:column}.bluffCommandLayout .bluffPileCard{width:24px;height:34px}.bluffCommandLayout .bluffDecisionPanel h3{font-size:11px}.bluffHand{padding-top:8px}}

/* GG_BLUFF_CARD_DUEL_REDESIGN_R4 — mesa de cartas, sem referencias navais.
   Usa apenas preto, grafite, off-white, muted e dourado do sistema Gold Grid. */
#bluffGame .bluffTable{max-width:820px;margin:12px auto 0;background:var(--gg-black);border:1px solid var(--line);border-radius:10px;box-shadow:none}
#bluffGame .bluffGameTop{padding:12px 16px;min-height:54px;background:var(--gg-graphite);border-bottom:1px solid var(--line)}
.bluffDuelStatus{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.bluffDuelStatus>div{padding:9px 14px;display:flex;flex-direction:column;gap:3px;border-right:1px solid var(--line)}.bluffDuelStatus>div:last-child{border:0}.bluffDuelStatus small{font-size:8px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.bluffDuelStatus b{font-size:12px;color:var(--gg-white);font-variant-numeric:tabular-nums}.bluffDuelStatus>div:nth-child(2) b{color:var(--gg-gold)}
.bluffCardTable{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1.5fr) minmax(0,1fr);align-items:center;gap:14px;padding:18px 16px;background-image:linear-gradient(rgba(245,245,243,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(245,245,243,.025) 1px,transparent 1px);background-size:24px 24px}.bluffPlayerPanel{display:flex;flex-direction:column;gap:7px}.bluffPlayerPanel>small{font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.bluffOpponentPanel{text-align:left}.bluffMePanel{text-align:right}.bluffPlayerPanel .pTeam{min-height:104px;padding:12px 8px;background:var(--gg-graphite);border:1px solid var(--line);border-radius:8px;box-shadow:none}.bluffPlayerPanel .pTeam.is-active{background:var(--gg-gold-bg);border-color:var(--gg-gold-border);box-shadow:none}.bluffPlayerPanel .pTeam b{font-size:14px}.bluffPlayerPanel .pTeam small{color:var(--muted)}
.bluffCardTable .bluffDecisionPanel{max-width:none;min-height:270px;margin:0;padding:14px;background:var(--gg-graphite);border:1px solid var(--line);border-radius:8px;box-shadow:none}.bluffCardTable .bluffBoardLabel{width:100%;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.08em}.bluffCardTable .bluffSequenceBox{width:116px;height:116px;margin:12px auto 8px;border:1px solid var(--gg-gold);border-radius:50%;background:var(--gg-black);box-shadow:inset 0 0 0 5px rgba(214,170,58,.06)}.bluffCardTable .bluffSequenceBox #bluffSequenceValue{font-size:47px}.bluffCardTable .bluffSequenceBox.pending{border-color:var(--gg-gold)}.bluffCardTable .bluffSequenceBox.pending small,.bluffCardTable .bluffSequenceBox.pending i,.bluffCardTable .bluffSequenceBox.pending #bluffSequenceValue{color:var(--gg-gold)}.bluffCardTable .bluffPileRow{margin:4px 0 8px;min-height:38px}.bluffCardTable .bluffPileCard{width:27px;height:38px;background:var(--gg-black);border-color:var(--gg-gold-border);border-radius:4px;color:var(--gg-gold);box-shadow:none}.bluffCardTable .bluffDecisionPanel h3{font-size:12px}.bluffCardTable .bluffDecisionActions{margin-top:8px}
#bluffGame .cta.redbtn{min-width:154px;min-height:44px;margin:0!important;background:var(--gg-gold);border:1px solid var(--gg-gold);border-radius:2px;color:var(--gg-black);box-shadow:none}#bluffGame .cta.redbtn:hover,#bluffGame .cta.redbtn:focus-visible{background:#e0b752;color:var(--gg-black)}
#bluffGame .bluffHandPanel{max-width:none;padding:14px 16px 16px;background:var(--gg-black);border-top:1px solid var(--line)}#bluffGame .bluffCard{width:56px;height:78px;border-radius:6px;background:var(--gg-white);border-color:rgba(245,245,243,.65);color:var(--gg-black);box-shadow:none}#bluffGame .bluffCard:hover:not(:disabled),#bluffGame .bluffCard:focus-visible:not(:disabled),#bluffGame .bluffCard.selected{border-color:var(--gg-gold);box-shadow:0 0 0 2px rgba(214,170,58,.28);outline:0}#bluffGame .bluffRevealBad,#bluffGame .bluffRevealGood{background:var(--gg-gold-bg)!important;border-color:var(--gg-gold-border)!important;color:var(--gg-white)!important}
/* GG_BLUFF_REVEAL_TEXT_FIX_R1 — #bluffRevealBanner reaproveita
   .penaltyResultFlash (pensado pra uma palavra curta tipo "GOL"/"DEFESA",
   34px italico) mas na verdade mostra frases inteiras ("Fulano descartou
   uma carta... ninguem duvidou"). Sem correcao, o evento PASS (o mais
   comum -- ninguem duvidou) nao ganha nenhuma das classes
   .bluffRevealGood/.bluffRevealBad (essas so' sao aplicadas em CHALLENGE,
   ver renderGame em bluff/ui.js) e cai no estilo base gigante, quebrando a
   margem da tela (reportado pelo operador). */
#bluffRevealBanner{font-size:13px;font-style:normal;font-weight:800;line-height:1.4;padding:10px;text-align:center;white-space:normal;word-break:break-word;min-height:0}
/* GG_BLUFF_4P_R1 — 3 cards de adversario (era 1 rival fixo) empilhados
   dentro do mesmo painel de antes; cada .pTeam ganha data-uid via JS
   (ui.js renderOpponents) pra' identificar quem esta jogando/pode duvidar. */
.bluffOpponentsRow{display:flex;flex-direction:column;gap:6px}
.bluffOpponentsRow .pTeam{min-height:auto;padding:9px 7px}
.bluffOpponentsRow .pTeam b{font-size:12px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bluffOpponentsRow .pTeam small{font-size:8px;margin-top:3px}
@media(max-width:600px){.bluffOpponentsRow{flex-direction:row;flex-wrap:wrap;gap:5px}.bluffOpponentsRow .pTeam{flex:1 1 30%;min-width:82px;padding:7px 5px}.bluffOpponentsRow .pTeam b{font-size:11px;max-width:100%}}
@media(max-width:600px){#bluffGame .bluffTable{margin-top:8px}.bluffDuelStatus>div{padding:8px 9px}.bluffDuelStatus b{font-size:10px}.bluffCardTable{display:flex;flex-direction:column;gap:10px;padding:12px;background-size:20px 20px}.bluffPlayerPanel{width:100%;gap:4px}.bluffOpponentPanel{order:0}.bluffCardTable .bluffDecisionPanel{order:1;width:100%;min-height:250px}.bluffMePanel{order:2;text-align:left}.bluffPlayerPanel .pTeam{min-height:62px;padding:8px}.bluffCardTable .bluffSequenceBox{width:96px;height:96px;margin:8px auto 5px}.bluffCardTable .bluffSequenceBox #bluffSequenceValue{font-size:38px}.bluffCardTable .bluffDecisionActions{flex-direction:column}.bluffCardTable .bluffPileCard{width:24px;height:34px}.bluffCardTable .bluffDecisionPanel h3{font-size:11px}#bluffGame .bluffHand{padding-top:8px}#bluffGame .bluffCard{flex:0 0 48px;width:48px;height:68px;font-size:23px}}

/* GG_NAVAL_BATTLE_REDESIGN_R1 — central de comando naval com o mapa como
   foco; somente tokens visuais oficiais Gold Grid. */
#navalGame{max-width:1180px}#navalGame .gameRuleTop{margin-bottom:8px}
.navalCommandShell{background:var(--gg-black);border:1px solid var(--line);border-radius:10px;overflow:hidden}.navalCommandHead{min-height:72px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--gg-graphite);border-bottom:1px solid var(--line)}.navalCommandHead h2{margin:3px 0 0;font-size:19px;letter-spacing:.04em}.navalCommandHead>div:first-child>small{display:block;margin-top:3px;font-size:10px;color:var(--muted)}.navalShotMetric{min-width:126px;padding-left:16px;border-left:1px solid var(--line);text-align:right}.navalShotMetric small{display:block;font-size:8px;font-weight:900;letter-spacing:.08em;color:var(--muted)}.navalShotMetric b{display:block;margin-top:3px;color:var(--gg-gold);font-size:22px;font-variant-numeric:tabular-nums}
#navalGame .navalStatus{margin:0;padding:10px 16px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--gg-black);color:var(--gg-white);font-size:11px;text-align:center}#navalGame #navalRoundBanner{margin:10px auto 0!important;width:max-content}
.navalCommandLayout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(230px,.72fr);gap:12px;padding:14px;background-image:linear-gradient(rgba(245,245,243,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(245,245,243,.025) 1px,transparent 1px);background-size:24px 24px}.navalMapPanel,.navalOpsPanel{background:var(--gg-graphite);border:1px solid var(--line);border-radius:8px;padding:12px}.navalMapPanel .navalTitle{padding-bottom:9px;border-bottom:1px solid var(--line)}.navalMapPanel .navalTitle b{font-size:11px;letter-spacing:.06em}.navalMapPanel .navalTitle .sub{font-size:9px;text-align:right}.navalMapPanel .navalBoard{max-width:550px;margin:12px auto 0;padding:7px;gap:3px;border-radius:6px;background:var(--gg-black)}#navalGame .sea{border-radius:2px;border-color:rgba(245,245,243,.15);background-color:var(--gg-graphite);background-image:none!important;box-shadow:none}#navalGame .sea:focus-visible{outline:2px solid var(--gg-gold);outline-offset:1px}#navalGame .sea.aimed{border-color:var(--gg-gold);background-color:rgba(214,170,58,.18);box-shadow:inset 0 0 0 1px var(--gg-gold)}#navalGame .sea.hit,#navalGame .sea.hitAnim{background-color:rgba(214,170,58,.22);border-color:var(--gg-gold);color:var(--gg-gold)}#navalGame .sea.hit:after,#navalGame .sea.hitAnim:after{content:"×";font-size:16px;line-height:1}#navalGame .sea.miss{background-color:var(--gg-black);border-color:rgba(162,167,174,.55);color:var(--muted)}#navalGame .sea.miss:after{content:"•";font-size:17px;line-height:1}
.navalOpsPanel{display:flex;flex-direction:column}.navalOpsTitle{padding-bottom:9px;border-bottom:1px solid var(--line);font-size:10px;font-weight:900;letter-spacing:.08em;color:var(--muted)}#navalGame .navalFleet{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.navalOpsPanel .fleetCard{min-height:64px;padding:10px 8px;background:var(--gg-black);border-color:var(--line);border-radius:6px;text-align:left}.navalOpsPanel .fleetCard small{font-size:8px;letter-spacing:.06em}.navalOpsPanel .fleetCard b{display:block;margin-top:4px;font-size:15px;color:var(--gg-white);font-variant-numeric:tabular-nums}.navalOpsPanel .fleetCard:nth-child(2) b,.navalOpsPanel .fleetCard:nth-child(3) b,.navalOpsPanel .fleetCard:nth-child(4) b{color:var(--gg-gold)}.navalOpsHint{margin-top:auto;padding:10px 0;color:var(--muted);font-size:10px;line-height:1.4}.navalOpsPanel #navalConfirmShots{width:100%;min-height:48px;border-radius:2px}.navalOpsPanel #navalConfirmShots:disabled{opacity:.48}
@media(max-width:600px){#navalGame{padding-left:10px;padding-right:10px}.navalCommandHead{min-height:62px;padding:11px 12px}.navalCommandHead h2{font-size:16px}.navalShotMetric{min-width:106px;padding-left:10px}.navalShotMetric b{font-size:18px}.navalCommandLayout{display:flex;flex-direction:column;padding:10px;gap:10px;background-size:20px 20px}.navalMapPanel,.navalOpsPanel{padding:10px}.navalMapPanel .navalBoard{max-width:100%;padding:5px;gap:2px}.navalOpsPanel .fleetCard{min-height:56px;padding:8px}.navalOpsHint{margin-top:0}.navalOpsPanel #navalConfirmShots{min-height:48px}.navalMapPanel .navalTitle .sub{max-width:130px}.navalShotMetric small{font-size:7px}}

/* GG_NAVAL_PLACEMENT_REDESIGN_R2 — tela de posicionar a frota no mesmo
   padrao visual da central de comando de ataque (R1 acima); so chrome
   (cores/layout), nenhuma mudanca de regra ou mecanica. */
#navalPlace .navalPlacement{background:var(--gg-black);border:1px solid var(--line);border-radius:10px;padding:0;overflow:hidden}
#navalPlace .placeHeader{margin:0;padding:14px 16px;background:var(--gg-graphite);border-bottom:1px solid var(--line)}
#navalPlace .placeHeader b{font-size:13px;letter-spacing:.04em;color:var(--gg-white)}
#navalPlace .placeHeader span{font-size:10px;color:var(--muted)}
#navalPlace .orientationRow{margin:14px 16px 0}
#navalPlace .orientationRow button{border-radius:2px}
#navalPlace .orientationRow button.active{background:var(--gg-gold-bg);border-color:var(--gg-gold-border);color:var(--gg-gold)}
#navalPlace .navalBoard{position:relative;max-width:420px;margin:14px auto 0;padding:7px;gap:3px;border-radius:6px;background:var(--gg-graphite)}
#navalPlace .sea{border-radius:2px;border-color:rgba(245,245,243,.15);background-color:var(--gg-black)}
#navalPlace .placeFleet{margin:14px 16px 0}
#navalPlace .placeFleet div{background:var(--gg-graphite);border:1px solid var(--line);border-radius:6px;text-align:left;padding:8px 10px}
#navalPlace .placeFleet small{color:var(--muted);letter-spacing:.05em}
#navalPlace .placeActions{margin:16px 16px 16px}
#navalPlace #confirmFleet{border-radius:2px}
@media(max-width:480px){#navalPlace .navalBoard{max-width:300px;margin:10px auto 0;gap:3px;padding:5px}}

/* GG_NAVAL_ICONS_ANIM_R1 — icones novos (navio/mira/explosao/respingo) e
   animacoes de impacto, pedido do operador ("mesmo capricho aplicado no
   Blefe"). SVGs inline minimalistas, tingidos so com as cores oficiais ja
   usadas no board (--gg-gold pro navio/acerto/mira, --muted pro respingo),
   sem introduzir paleta nova. Board continua 100% CSS -- ui.js so alterna
   classes (ship/aimed/hit/hitAnim/miss/missAnim), nenhuma mudanca de
   markup por celula. */
#navalPlace .sea.ship{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23D6AA3A' d='M2 15c2.6 3.6 6.2 5.4 10 5.4s7.4-1.8 10-5.4c-2.4 1-6.2 1.8-10 1.8s-7.6-.8-10-1.8z'/><rect x='9' y='4.5' width='6' height='8' rx='1.2' fill='%23D6AA3A'/><rect x='11' y='2' width='2' height='3' fill='%23D6AA3A'/></svg>")!important;background-size:62%!important;background-position:center!important;background-repeat:no-repeat!important}
#navalGame .sea.aimed{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='6.5' fill='none' stroke='%23D6AA3A' stroke-width='1.6'/><path d='M12 1v5M12 18v5M1 12h5M18 12h5' stroke='%23D6AA3A' stroke-width='1.6'/></svg>")!important;background-size:56%!important;background-position:center!important;background-repeat:no-repeat!important;animation:navalAimPulse 1.1s ease-in-out infinite}
@keyframes navalAimPulse{0%,100%{box-shadow:inset 0 0 0 1px var(--gg-gold)}50%{box-shadow:inset 0 0 0 1px var(--gg-gold),0 0 10px rgba(214,170,58,.55)}}
#navalGame .sea.hit,#navalGame .sea.hitAnim{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23D6AA3A' d='M12 2l1.6 5.2L19 6l-2.4 4.8L22 12l-5.4 1.2L19 18l-5.4-1.2L12 22l-1.6-5.2L5 18l2.4-4.8L2 12l5.4-1.2L5 6l5.4 1.2z'/></svg>")!important;background-size:50%!important;background-position:center!important;background-repeat:no-repeat!important}
#navalGame .sea.hit:after,#navalGame .sea.hitAnim:after{content:none!important}
#navalGame .sea.hitAnim{animation:navalExplode 1.85s ease-out;position:relative}
#navalGame .sea.hitAnim::before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle,rgba(214,170,58,.6),transparent 70%);animation:navalShock .6s ease-out;pointer-events:none}
@keyframes navalExplode{0%{transform:scale(.3) rotate(-25deg);opacity:.2}25%{transform:scale(1.4) rotate(6deg);opacity:1}45%{transform:scale(.9) rotate(-4deg)}100%{transform:scale(1) rotate(0)}}
@keyframes navalShock{0%{transform:scale(.2);opacity:.9}100%{transform:scale(2.6);opacity:0}}
#navalGame .sea.miss{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='2.6' fill='%23A2A7AE'/><circle cx='12' cy='12' r='6.5' fill='none' stroke='%23A2A7AE' stroke-width='1.3' opacity='.65'/><circle cx='12' cy='12' r='10' fill='none' stroke='%23A2A7AE' stroke-width='1' opacity='.32'/></svg>")!important;background-size:68%!important;background-position:center!important;background-repeat:no-repeat!important}
#navalGame .sea.miss:after{content:none!important}
#navalGame .sea.missAnim{animation:navalSplash .6s ease-out}
@keyframes navalSplash{0%{transform:scale(.35);opacity:.25}60%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}

/* GG_NAVAL_HULL_OVERLAY_R1 — casco continuo (ver renderShipHulls em
   naval/ui.js), posicionado em cima das celulas via left/top/width/height
   calculados por JS. Navio de 1 celula (submarino) fica um circulo com
   escotilha central (sem classe h/v).
   GG_NAVAL_HULL_ICON_R231 — pedido do usuario: o casco de 2-4 celulas era
   so' uma capsula lisa (border-radius:50%), sem nada de navio de verdade.
   Agora tem proa/popa em ponta (clip-path) + quilha central + linhas de
   costado (conves segmentado), com a direcao certa conforme a classe h/v
   que renderShipHulls adiciona (largura>=altura => horizontal). */
.navalHull{position:absolute;z-index:2;pointer-events:none;overflow:hidden;border-radius:50%;background:linear-gradient(180deg,#f3d688,var(--gg-gold) 45%,#a3801f);border:1px solid #85661d;box-shadow:0 3px 8px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.4);animation:navalHullDrop .22s ease-out}
.navalHull:not(.h):not(.v):after{content:"";position:absolute;inset:18% 30%;border-radius:50%;background:radial-gradient(circle,rgba(8,10,13,.35),transparent 70%)}
.navalHull.h,.navalHull.v{border-radius:22%;clip-path:polygon(50% 0%,92% 12%,100% 50%,92% 88%,50% 100%,8% 88%,0% 50%,8% 12%)}
.navalHull.h:before{content:"";position:absolute;top:calc(50% - 1px);left:9%;right:9%;height:2px;background:rgba(8,10,13,.42);border-radius:2px}
.navalHull.v:before{content:"";position:absolute;left:calc(50% - 1px);top:9%;bottom:9%;width:2px;background:rgba(8,10,13,.42);border-radius:2px}
.navalHull.h:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 21%,rgba(8,10,13,.2) 21% 23%)}
.navalHull.v:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 21%,rgba(8,10,13,.2) 21% 23%)}
@keyframes navalHullDrop{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}

.walletTestBox{background:#14171C;border:1px solid var(--line);border-radius:18px;padding:14px;margin-top:12px}
.walletTestBox h3{margin:0 0 5px;font-size:15px}.walletTestBox p{margin:0;color:var(--muted);font-size:10px;line-height:1.45}
.walletActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.walletSimBtn{padding:12px;border-radius:13px;font-weight:900;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#F5F5F3}
.walletSimBtn.deposit{border-color:#286b50;background:#123323;color:#86efac}
.walletSimBtn.withdraw{border-color:#735b24;background:#302713;color:#fde68a}
.walletHistory{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.walletHistoryRow{display:flex;justify-content:space-between;gap:10px;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:11px;padding:9px;font-size:10px}
.walletHistoryRow small{display:block;color:var(--muted);margin-top:2px}.walletHistoryRow .in{color:#86efac}.walletHistoryRow .out{color:#fde68a}
.simModal{position:fixed;inset:0;background:rgba(8,10,13,.85);display:flex;align-items:flex-end;justify-content:center;z-index:60;padding:14px}
.simModalCard{width:min(520px,100%);background:var(--card);border:1px solid rgba(245,245,243,.18);border-radius:22px 22px 16px 16px;padding:17px}
.simModalCard h3{margin:0 0 5px}.simModalCard p{font-size:10px;color:var(--muted);line-height:1.45}.simModalCard input{width:100%;background:#14171C;border:1px solid rgba(245,245,243,.18);color:white;border-radius:12px;padding:12px;font-size:16px;margin:10px 0}.simModalBtns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ggStakeRequiredModal{position:fixed;inset:0;background:rgba(8,10,13,.85);display:flex;align-items:center;justify-content:center;z-index:65000;padding:18px}
.ggStakeRequiredModal.hide{display:none!important}
.ggStakeRequiredCard{width:min(360px,100%);background:var(--gg-gold-bg);border:1px solid var(--gg-gold-border);box-shadow:var(--gg-gold-shadow);border-radius:20px;padding:20px;text-align:center}
.ggStakeRequiredCard h3{margin:7px 0 6px;font-size:18px}.ggStakeRequiredCard p{margin:0 0 14px;color:var(--muted);font-size:12px;line-height:1.45}
.ggStakeRequiredIcon{width:48px;height:48px;border-radius:16px;margin:0 auto 8px;display:grid;place-items:center;background:linear-gradient(135deg,var(--gold2),#D6AA3A);color:#111;font-weight:1000}
.botPenaltyInfo{margin-top:9px;padding:8px;border-radius:11px;background:rgba(214,170,58,.06);border:1px solid #443d1d;color:#d5c98b;font-size:10px;line-height:1.4}


.kickClock{
  margin:10px 0;padding:10px;border-radius:13px;
  background:#14171C;border:1px solid var(--line);text-align:center
}
.kickClock small{display:block;color:var(--muted);font-size:9px}
.kickClock b{display:block;margin-top:3px;font-size:24px;color:var(--gold2)}

/* GG_PENALTY_ENGINE_R150 — reconstrucao da mecanica (duelo simultaneo de
   canto): botao desabilitado enquanto nao e' minha vez ou eu ja escolhi
   nesta cobranca; destaque de revelacao mostra os dois cantos escolhidos
   (chute em dourado, defesa em azul) por cima da grade normal, sem
   bloquear a proxima escolha. */
.goalZone:disabled{cursor:default;opacity:.74}
.goalZone.shotReveal{
  background:#6b4c20!important;
  border:2px solid var(--gold2)!important;
  color:#fff!important;
  box-shadow:0 0 22px #D6AA3A55;
  animation:shotRevealPulse .45s infinite alternate;
}
.goalZone.shotReveal:after{
  content:"⚽ CHUTE";
  display:block;
  font-size:8px;
  margin-top:4px;
  color:var(--gold2);
}
.goalZone.keeperReveal{
  background:#17395f!important;
  border:2px solid #60a5fa!important;
  color:#fff!important;
  box-shadow:0 0 22px #60a5fa55;
}
.goalZone.keeperReveal:after{
  content:"🧤 DEFESA";
  display:block;
  font-size:8px;
  margin-top:4px;
  color:#93c5fd;
}
@keyframes shotRevealPulse{
  from{transform:scale(1)}
  to{transform:scale(1.025)}
}


.walletSplit{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.walletSplit div{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:11px;padding:8px;text-align:center}
.walletSplit small{display:block;color:var(--muted);font-size:8px}.walletSplit b{display:block;margin-top:3px;font-size:12px}
.txTag{font-size:8px;color:var(--muted);margin-top:2px}

.payHero{background:var(--gg-gold-bg);border:1px solid var(--gg-gold-border);box-shadow:var(--gg-gold-shadow);border-radius:22px;padding:18px;margin-bottom:12px}
.payHero h2{margin:6px 0}.payHero p{margin:0;color:#91a4b7;font-size:10px;line-height:1.5}
.payBalance{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.payBalance div{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:10px;text-align:center}
.payBalance small{display:block;color:var(--muted);font-size:8px}.payBalance b{display:block;margin-top:4px;font-size:14px}
.payTabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.payTab{border:1px solid rgba(245,245,243,.18);background:#111b2b;color:#A2A7AE;padding:11px;border-radius:12px;font-weight:900}
.payTab.active{border-color:var(--gold2);color:var(--gold2);background:#282313}
.payPanel{background:#14171C;border:1px solid var(--line);border-radius:19px;padding:14px}
.quickValues{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:10px 0}
.quickValues button{padding:10px 5px;border-radius:11px;border:1px solid #2a3b56;background:#14171C;color:#F5F5F3;font-weight:900}
.quickValues button.active{border-color:var(--gold2);color:var(--gold2);background:#292313}
.payInput{width:100%;padding:13px;border-radius:12px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#fff;font-size:16px;box-sizing:border-box}
.pixKeyBox{margin-top:10px;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:10px}
.pixKeyBox small{display:block;color:var(--muted);font-size:8px}.pixKey{font-size:10px;word-break:break-all;margin-top:5px;color:#F5F5F3}
.qrMock{width:170px;height:170px;margin:14px auto 8px;background:
repeating-linear-gradient(45deg,#fff 0 6px,#111 6px 12px),
repeating-linear-gradient(-45deg,transparent 0 8px,#111 8px 13px);
border:10px solid white;border-radius:8px;display:grid;place-items:center;color:#111;font-weight:1000;font-size:11px;text-align:center}
.securityNote{margin-top:10px;padding:10px;border-radius:12px;background:#171d15;border:1px solid #3f5731;color:#b8d6aa;font-size:9px;line-height:1.5}
.blockNote{margin-top:10px;padding:10px;border-radius:12px;background:#2c1719;border:1px solid #71383e;color:#fecaca;font-size:9px;line-height:1.5}
.withdrawPreview{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.withdrawPreview div{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:11px;padding:9px;text-align:center}
.withdrawPreview small{display:block;color:var(--muted);font-size:8px}.withdrawPreview b{display:block;margin-top:3px}
.payHistory{margin-top:10px;display:flex;flex-direction:column;gap:6px}.payHistoryRow{display:flex;justify-content:space-between;gap:8px;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:11px;padding:9px;font-size:9px}
.statusPill{padding:3px 6px;border-radius:999px;border:1px solid #46556c;font-size:8px;font-weight:900}
.statusPill.pending{color:#fde68a;border-color:#786327}.statusPill.blocked,.statusPill.failed{color:#fecaca;border-color:#783740}.statusPill.simulated{color:#bfdbfe;border-color:#315f88}.statusPill.paid{color:#86efac;border-color:#2f7a58;background:#102d21}


.realQr{width:190px;min-height:190px;margin:14px auto 8px;background:white;border:10px solid white;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.realQr img{width:190px;height:190px;display:block}
.copyPasteBox{margin-top:10px;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:10px}
.copyPasteBox small{display:block;color:var(--muted);font-size:8px}
.copyPasteCode{margin-top:5px;font-family:monospace;font-size:8px;color:#F5F5F3;word-break:break-all;max-height:64px;overflow:auto}
.qrRevealWrap{display:none;margin-top:12px}
.qrRevealWrap.show{display:block}
.qrRevealHint{margin-top:10px;padding:11px;border-radius:12px;background:#14171C;border:1px dashed #33435f;color:#91a4b7;font-size:9px;text-align:center;line-height:1.45}

/* V6.3 UX */
.topBalances{display:flex;gap:6px;align-items:stretch}.balancePill{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:7px 9px;text-align:right;min-width:82px}.balancePill small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase}.balancePill b{display:block;margin-top:2px;font-size:11px}.balancePill.bonus b{color:var(--gold2)}.balancePill.real b{color:#86efac}
.welcomeCopy{text-align:center;color:#b8c5d8;font-size:11px;line-height:1.55;margin:0 auto 14px;max-width:340px}.loginRights{text-align:center;color:#66778f;font-size:8px;line-height:1.5;margin-top:16px}.bonusNotice{margin:12px 0;background:linear-gradient(145deg,#2b2412,rgba(214,170,58,.06));border:1px solid #6e5a20;border-radius:18px;padding:14px}.bonusNotice h3{margin:0 0 5px;color:var(--gold2);font-size:14px}.bonusNotice p{margin:0;color:#d0c58e;font-size:10px;line-height:1.5}.bonusNotice button{margin-top:10px;width:100%}
.profileTabs{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:12px 0}.profileTab{padding:10px 6px;border-radius:11px;border:1px solid rgba(245,245,243,.18);background:#111b2b;color:#A2A7AE;font-weight:900;font-size:9px}.profileTab.active{border-color:var(--gold2);color:var(--gold2);background:#282313}.profilePane{display:none}.profilePane.active{display:block}.historyOnly{max-height:52vh;overflow:auto;padding-right:2px}.profileWalletCards{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.profileWalletCard{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:13px;padding:11px;text-align:center}.profileWalletCard small{display:block;color:var(--muted);font-size:8px}.profileWalletCard b{display:block;margin-top:4px;font-size:15px}.humanFirst{margin-top:9px;padding:9px;border-radius:11px;background:#14171C;border:1px solid #27354d;color:#A2A7AE;font-size:9px;line-height:1.45}.liveBotNote{margin-top:10px;padding:9px;border-radius:12px;background:#10201a;border:1px solid #244f3d;color:#9de3c2;font-size:9px;line-height:1.45}.liveDot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);margin-right:6px;animation:pulse 1.2s infinite}.botBtn{display:none!important}.botBadge{display:none!important}
.bottom{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:center}.bottom.adminMode{grid-template-columns:repeat(5,minmax(0,1fr))}.bottom .nav{width:100%;min-width:0}
@media(max-width:410px){.topBalances{gap:4px}.balancePill{min-width:70px;padding:6px 7px}.balancePill b{font-size:10px}}


.gameRuleTop{
  margin:0 0 10px;padding:10px 12px;border-radius:14px;
  background:#14171C;border:1px solid #2a3b56;color:#F5F5F3;
  font-size:10px;line-height:1.45
}
.gameRuleTop b{color:var(--gold2);letter-spacing:.4px}
.gameRuleTop .strong{color:#fff;font-weight:900}
.gridModeBox{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.ggEntryReadOnly{margin-top:14px;padding:12px;border-radius:14px;border:1px solid var(--line);background:rgba(212,175,55,.06);text-align:center}
.ggEntryReadOnly small{display:block;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.ggEntryReadOnly b{display:block;font-size:20px;color:#D6AA3A}
.gridModeBtn{border:1px solid var(--line);background:#14171C;color:#F5F5F3;border-radius:13px;padding:11px;font-weight:1000}
.gridModeBtn.active{background:rgba(214,170,58,.14);border-color:var(--gold);color:var(--gold2);box-shadow:0 0 0 1px #D6AA3A44 inset}
.gridPenaltyFlash{min-height:28px;text-align:center;margin:7px 0 0;font-size:12px;font-weight:1000;color:var(--red)}
.gridPenaltyFlash.pop{animation:penaltyPop .35s ease}
@keyframes penaltyPop{0%{transform:scale(.75);opacity:.2}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1);opacity:1}}
.classicRewardsPaused{margin-top:10px;padding:10px 12px;border-radius:13px;background:#1b1520;border:1px solid #5b3146;color:#fda4af;font-size:10px;line-height:1.45}
.classicRewardsPaused b{color:#fecdd3}
.defenseConfirmed{
  margin-top:8px;padding:9px;border-radius:11px;
  background:#123723;border:1px solid #2e7b4f;color:#86efac;
  font-size:10px;font-weight:900;text-align:center
}

/* GG_GRID_PREMATCH_CONSOLIDATE_R99 — a regra #gridBotBtn{display:block
   !important;margin-top:0} foi removida: era so' pra forcar visibilidade
   dentro do antigo .matchActions (grid 2 colunas em "match"). O botao
   agora mora em "duel", com a classe .ggPreMatchTrain (sempre visivel,
   margin-top:8px padrao, mesmo espacamento dos outros botoes secundarios). */
.matchWaitClock{min-width:88px;padding:10px 12px;border-radius:13px;background:#0b1321;border:1px solid #2d3d57;text-align:center}
.matchWaitClock small{display:block;font-size:8px;color:var(--muted);font-weight:900}
.matchWaitClock b{display:block;margin-top:2px;font-size:18px;color:var(--gold2)}
.matchActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.matchActions .cta{margin:0}
.modeLive{display:inline-flex;padding:5px 8px;border-radius:999px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:var(--gold2);font-size:9px;font-weight:1000;margin-top:8px}
.trainingTop{display:flex;justify-content:space-between;gap:10px;align-items:center}
.trainingStatus{font-size:9px;color:var(--muted);margin-top:4px}
.trainingResult{min-height:18px;text-align:center;color:#86efac;font-size:10px;font-weight:900;margin:8px 0}

.signupField{margin-top:8px}
.signupHelp{font-size:9px;line-height:1.45;color:var(--muted);margin:7px 2px 0}
.verifyBox{margin-top:12px;padding:15px;border:1px solid #36506f;border-radius:16px;background:#0d1726;text-align:left}
.verifyBox h3{margin:0 0 7px;color:#fff}
.verifyBox p{margin:5px 0;color:#aab7c7;font-size:10px;line-height:1.5}
.verifyEmail{display:block;margin:8px 0;padding:10px;border-radius:12px;background:#101e31;color:var(--gold2);font-weight:1000;word-break:break-all}
.verifyActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.verifyActions .cta{margin:0}
.usernameModal{position:fixed;inset:0;background:#04070dcc;z-index:10000;display:flex;align-items:center;justify-content:center;padding:18px}
.usernameModal.hide{display:none}
.usernameCard{width:min(430px,100%);background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:20px;padding:18px;box-shadow:0 25px 70px #000a}
.usernameCard h2{margin:0 0 7px}
.usernameCard p{color:#9cabbc;font-size:10px;line-height:1.5}
.usernamePreview{font-size:9px;color:var(--gold2);margin-top:6px;min-height:15px}


.colorHero{padding:16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(135deg,#111a2a,#080A0D)}
.colorRule{margin-top:10px;padding:12px;border-radius:14px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:#F5F5F3;font-size:10px;line-height:1.55}
.colorRule b{color:var(--gold2)}
.colorArena{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.colorTile{min-height:126px;border:0;border-radius:20px;font-weight:1000;font-size:20px;letter-spacing:.3px;box-shadow:0 10px 25px #0005;transition:transform .08s ease,filter .12s ease}
.colorTile:active{transform:scale(.96)}
.colorTile[disabled]{opacity:.68}
.colorTile.picked-safe{opacity:1;outline:4px solid #22c55e;outline-offset:-4px}
.colorTile.picked-unsafe{opacity:1;outline:4px solid #ef4444;outline-offset:-4px}
.colorCue{margin:12px 0 6px;padding:15px;border-radius:15px;background:#070c14;border:1px solid rgba(245,245,243,.18);text-align:center}
.colorCue small{display:block;color:var(--muted);font-size:8px;font-weight:900}
.colorCue b{display:block;margin-top:5px;font-size:26px;font-weight:1000}
.colorHud{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.colorHud>div{padding:10px;border-radius:13px;background:#14171C;border:1px solid var(--line);text-align:center}
.colorHud small{display:block;color:var(--muted);font-size:8px;font-weight:900}
.colorHud b{display:block;margin-top:3px;font-size:16px}
.colorTimerBar{height:8px;background:#101927;border-radius:99px;overflow:hidden;margin-top:10px}
.colorTimerBar i{display:block;height:100%;width:100%;background:var(--gold2);transform-origin:left center}
.colorStatus{text-align:center;margin-top:10px;font-size:11px;font-weight:900;color:#F5F5F3;min-height:18px}
.colorStatus.good{color:#86efac}.colorStatus.bad{color:var(--red)}
.colorVs{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;border-radius:15px;background:#14171C;border:1px solid var(--line);margin-top:10px}
.colorVs div{min-width:0}.colorVs b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.colorVs small{color:var(--muted)}
.colorPlayers{position:relative;height:0;margin-top:0;overflow:visible}
.colorPlayerChip{padding:5px 9px;border-radius:10px;background:#14171C;border:1px solid var(--line);font-size:10px;font-weight:900;color:#F5F5F3}
.colorPlayerChip.me{border-color:#D6AA3A;color:#D6AA3A}
.colorPlayerChip.eliminated{opacity:.45;text-decoration:line-through}
/* GG_COLOR_RANK_WAIT_STATS_R164 — lista da tela "Aguardando o fim da
   partida": cards com icone/nome/%wins/acertos/tempo medio de reacao.
   GG_COLOR_RANK_LIST_NO_SCROLL_R229 — pedido do usuario: a barra de
   rolagem interna (altura maxima fixa) foi removida — a lista cresce
   naturalmente com a pagina, sem scroll proprio. */
.colorRankList{margin-top:12px;display:grid;gap:8px}
.colorRankRow{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:13px;background:#14171C;border:1px solid var(--line)}
.colorRankRow.me{border-color:#D6AA3A}
.colorRankRow.eliminated{opacity:.55}
.colorRankRow img{width:34px;height:34px;border-radius:10px;object-fit:cover;border:1px solid rgba(245,245,243,.18);flex:0 0 34px}
.colorRankInfo{flex:1;min-width:0}
.colorRankInfo b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.colorRankInfo small{display:block;margin-top:2px;color:var(--muted);font-size:8px}
.colorRankStats{display:flex;gap:10px;flex:0 0 auto;text-align:center}
.colorRankStats small{display:block;color:var(--muted);font-size:7px;font-weight:1000}
.colorRankStats b{display:block;margin-top:2px;font-size:11px;color:var(--gold2)}
/* GG_COLOR_ROUND_REVEAL_R179 — badge de acerto/erro/sem-resposta na janela
   central de validacao entre rodadas. Reaproveita .colorRankRow/List pro
   layout da linha (icone+nome), so adiciona a badge de resultado. */
.colorRevealBadge{flex:0 0 auto;font-size:9px;font-weight:1000;padding:5px 9px;border-radius:999px}
.colorRevealBadge.safe{background:#0f2e1c;color:#4ade80;border:1px solid #16653d}
.colorRevealBadge.unsafe{background:#2e1116;color:#f87171;border:1px solid #7f1d2c}
.colorRevealBadge.timeout{background:#241c0c;color:#D6AA3A;border:1px solid #6b5410}
/* GG_R69_COLOR_LOSER_TOAST_OVERLAP — pedido do usuario: quando varias
   eliminacoes chegavam juntas, cada aviso empilhava na flow normal e
   empurrava o resto da tela pra baixo. Agora cada toast e position:absolute
   dentro de um container de ALTURA FIXA (nunca cresce) — avisos
   simultaneos se sobrepoem no mesmo lugar em vez de esticar o layout. */
.colorLoserToast{position:absolute;left:50%;bottom:0;transform:translate(-50%,14px);opacity:0;background:#1c1120;border:1px solid #7c3048;color:#fecdd3;border-radius:10px;padding:6px 14px;font-size:11px;font-weight:900;white-space:nowrap;pointer-events:none;animation:ggColorLoserToast 2s ease forwards}
@keyframes ggColorLoserToast{
  0%{opacity:0;transform:translate(-50%,14px)}
  14%{opacity:1;transform:translate(-50%,0)}
  78%{opacity:1;transform:translate(-50%,0)}
  100%{opacity:0;transform:translate(-50%,-16px)}
}
/* GG_GRID_FINISHER_TOAST_R105 — pedido do usuario: mesmo aviso do Color
   Trap (spawnLoserToast, ver games/color/ui.js) pra quem TERMINA a
   sequencia no GRID, mas verde (terminar e' bom aqui, diferente do Color
   onde cair nesse aviso e' eliminacao). Reaproveita a mesma animacao
   ggColorLoserToast (fade + sobe), so' as cores mudam. */
.gridFinisherToast{position:absolute;left:50%;bottom:0;transform:translate(-50%,14px);opacity:0;background:#0f2418;border:1px solid #1f7a4d;color:#bbf7d0;border-radius:10px;padding:6px 14px;font-size:11px;font-weight:900;white-space:nowrap;pointer-events:none;animation:ggColorLoserToast 2s ease forwards}
/* GG_RESULT_SCREEN_STANDARD_R181 — .colorResultAmount continua em uso por
   GRID/REFLEX/MEMORY (#gridResultAmount/#reflexResultAmount/
   #memoryResultAmount) mesmo depois do Color Trap migrar pro componente
   impFinalAmount — nao remover so' porque o Color parou de usar. */
.colorResultAmount{margin-top:8px;font-size:20px;font-weight:1000}
.colorResultAmount.win{color:var(--green,#36d399)}
.colorResultAmount.loss{color:var(--red,#fb7185)}
.colorRoundBar{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:var(--muted);font-weight:800}
.colorLobbyBox{margin-top:10px;text-align:center}
.colorLobbyBox b{display:block;font-size:16px;margin-top:2px}
.colorBotCompact{margin-top:10px;text-align:center}


.homeFilterBar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 10px}
.homeFilterBtn{padding:10px 7px;border-radius:12px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#F5F5F3;font-size:9px;font-weight:1000}
.homeFilterBtn.active{background:rgba(214,170,58,.14);color:var(--gold2);border-color:var(--gold)}
.newBadge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:rgba(214,170,58,.14);border:1px solid rgba(214,170,58,.4);color:var(--gold2);font-size:8px;font-weight:1000;margin-bottom:7px}
.gameAccessMeta{display:flex;justify-content:space-between;gap:8px;margin-top:8px;font-size:8px;color:#A2A7AE}
.gameAccessMeta b{color:#fff}


.impHero{padding:16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(135deg,var(--card),#080A0D)}
.impRule{margin-top:10px;padding:12px;border-radius:14px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:#F5F5F3;font-size:10px;line-height:1.55}
.impRule b{color:var(--gold2)}
/* GG_IMPOSTOR_GAME_REDESIGN_R157 — partida real (#impostorGame) e o
   treino contra bot (#impostorBotGame) usam o mesmo sistema visual: squad
   de 4 cards, anel de progresso da rodada, badge de funcao, painel de
   categoria. Substitui .impPlayer/.impRole/.impPhase (removidas, sem mais
   uso depois desta migracao). */
.impSquad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.impSeatCard{position:relative;padding:10px 5px;border-radius:14px;background:#14171C;border:1px solid var(--line);text-align:center}
.impSeatCard.me{border-color:rgba(214,170,58,.45);background:#241d09}
.impSeatCard.suspect{border-color:#ef4444;box-shadow:0 0 0 1px rgba(239,68,68,.4)}
.impSeatIcon{width:38px;height:38px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:1000;font-size:14px;color:#fff}
.impSeatCard img{width:38px;height:38px;margin:0 auto;display:block;border-radius:50%;object-fit:cover;border:1px solid rgba(245,245,243,.18)}
.impSeatCard b{display:block;margin-top:6px;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.impSeatCard small{display:block;color:var(--muted);font-size:7px;margin-top:1px}
.impSuspectBtn{position:absolute;top:3px;right:3px;width:18px;height:18px;border-radius:50%;border:1px solid var(--line);background:rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;cursor:pointer;opacity:.55;padding:0}
.impSuspectBtn.active{opacity:1;border-color:#ef4444;background:rgba(239,68,68,.3)}
.impStatusRow{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:8px;margin-top:12px}
.impStatCard{padding:11px 6px;border-radius:15px;background:#0b1320;border:1px solid rgba(245,245,243,.18);text-align:center}
.impStatCard>small{display:block;color:var(--muted);font-size:8px;font-weight:1000;letter-spacing:.03em}
.impRoundRing{width:48px;height:48px;border-radius:50%;margin:8px auto 0;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--gold) calc(var(--pct,25)*1%),#1c2739 0)}
.impRoundRing span{width:38px;height:38px;border-radius:50%;background:#0b1320;display:flex;align-items:center;justify-content:center;font-weight:1000;font-size:11px;color:var(--text)}
.impStatCard.impRoleCard b{display:block;margin-top:9px;font-size:16px;font-weight:1000}
.impStatCard.impRoleCard.impostor b{color:var(--gold2)}
.impStatCard.impRoleCard.crew b{color:#7dd3fc}
.impStatCard.impValueCard b{display:block;margin-top:9px;font-size:17px;font-weight:1000}
.impCategoryPanel{margin-top:12px;padding:16px;border-radius:16px;background:linear-gradient(160deg,#122037,#14171C);border:1px solid #35506f;text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 14px 32px rgba(0,0,0,.18)}
.impCategoryPanel .tag{display:inline-flex;margin-bottom:8px;padding:5px 10px;border-radius:999px;border:1px solid rgba(214,170,58,.38);background:rgba(214,170,58,.1);color:var(--gold2);font-size:8px;font-weight:1000}
/* GG_IMPOSTOR_WORD_EMPHASIS_R166 — a palavra secreta (o que o tripulante
   precisa dar pista sobre) e' a informacao critica da tela; a categoria e'
   so contexto de apoio. Antes a categoria usava .impCategoryPanel h3 (22px,
   caixa destacada) e a palavra usava .sub (10px, cinza apagado) — invertido
   do que importa mais pro jogador ler rapido. .impCategoryLabel agora leva
   a categoria (pequena, acima), .impWordBig leva a palavra (grande, caixa
   destacada, no lugar onde h3 estava). */
.impCategoryPanel .impCategoryLabel{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin:0 0 4px}
.impCategoryPanel .impWordBig,.impCategoryPanel h3{display:inline-flex;align-items:center;justify-content:center;min-width:min(220px,100%);margin:2px 0 6px;padding:10px 16px;border-radius:12px;background:#0a101b;border:1px solid #4b6284;font-size:26px;font-weight:1000;letter-spacing:.06em;color:#F5F5F3;text-shadow:0 0 14px rgba(125,211,252,.2)}
.impScoreLine{margin-top:8px;padding-top:8px;border-top:1px solid rgba(245,245,243,.18);font-size:11px;color:var(--muted)}
.impScoreLine b{color:var(--gold2);font-size:13px}
.impChat{height:250px;overflow:auto;margin-top:10px;padding:10px;border-radius:15px;background:#080e17;border:1px solid var(--line)}
.impMsg{padding:8px 9px;margin-bottom:7px;border-radius:12px;background:#14171C}
.impMsg.system{background:#19170c;border:1px solid #534415}
.impMsg .who{font-size:8px;color:var(--gold2);font-weight:1000}
.impMsg .txt{font-size:10px;color:#F5F5F3;line-height:1.4;word-break:break-word;margin-top:2px}
.impComposer{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:8px}
.impComposer input{min-width:0}
.impVote{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.impVote button{padding:12px;border-radius:13px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#fff;font-weight:1000}
.impVote button.selected{border-color:var(--gold);color:var(--gold2);background:rgba(214,170,58,.10)}
.impVoteModal{position:fixed;inset:0;z-index:65020;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(5,8,13,.82);backdrop-filter:blur(5px)}
.impVoteModal.hide{display:none!important}
.impVoteCard{width:min(430px,100%);padding:16px;border-radius:16px;border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow);text-align:center}
.impVoteCard h3{margin:8px 0 4px;font-size:22px;color:#fff;font-weight:1000}
.impVoteCard .sub{font-size:10px;line-height:1.45}
.impVoteCard .impVote,.impVoteCard .impBotChoices{grid-template-columns:1fr;gap:9px;margin-top:12px}
.impVoteCard .impVote button,.impVoteCard .impBotChoices button{text-align:center;border-color:rgba(214,170,58,.4);background:#17110a;color:#E6C35C}
/* GG_MATCH_SCREEN_STANDARD — contador grande (42px) das telas de match
   com sala fixa pequena (Penalty=2, Impostor=4). Ver docs/
   GG_MATCH_STANDARD.md. Classe unica (nao duplicar) — nao usar em
   Grid/Reflex/Memory/Naval, que usam .ggLobbyCount (20px) com o texto mais
   longo "X / 10 jogadores"; 42px quebraria linha nesse formato. */
.ggLobbyCountBig{font-size:42px;font-weight:1000;color:var(--gold2);text-align:center;margin:12px 0}
/* GG_R153_LOBBY_COUNT_STANDARDIZE — contador "X / Y jogadores" das telas
   de busca com sala variavel (GRID/REFLEX/MEMORY/NAVAL/COLOR). Fonte menor
   que .ggLobbyCountBig (42px) porque o texto completo "X / Y jogadores" e'
   mais longo que o formato compacto "X/4" — 42px quebraria linha em telas
   estreitas. Ver docs/GG_MATCH_STANDARD.md. */
.ggLobbyCount{font-size:20px;font-weight:1000;color:var(--gold2);text-align:center;margin:10px 0}
/* GG_PENALTY_MATCH_LOBBY_R155 — lista "adversario encontrado" (icone,
   nome, %wins, ordem de entrada), primeiro uso em Penalty, pensada pra
   ser reutilizavel nos demais jogos depois. */
.ggFoundList{display:grid;gap:8px;margin-top:12px;text-align:left}
.ggFoundCard{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:#14171C;border:1px solid var(--line)}
.ggFoundCard img{width:38px;height:38px;border-radius:10px;object-fit:cover;border:1px solid rgba(245,245,243,.18);flex:0 0 38px}
.ggFoundCardInfo{flex:1;min-width:0}
.ggFoundCardInfo b{display:block;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ggFoundCardInfo small{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.ggFoundCardRate{flex:0 0 auto;font-weight:1000;font-size:13px;color:var(--gold2)}
.impRoundResult{padding:16px;border-radius:16px;background:#14171C;border:1px solid rgba(245,245,243,.18);text-align:center;margin-top:10px}
.impWinners{display:grid;gap:7px;margin-top:10px}
.impWinner{display:flex;justify-content:space-between;gap:10px;padding:10px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.impFinalPanel{padding:16px;border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow);border-radius:16px;text-align:center}
.impFinalHead .tag{font-size:9px}
/* GG_RESULT_SCREEN_STANDARD_R181 — achado real: o h2 do titulo (ex.:
   #impFinalTitle/#colorResultTitle) e' IRMAO de .impFinalHead no DOM, nao
   filho dele — a regra ".impFinalHead h2.win" nunca batia de verdade
   (cor de vitoria/derrota nao aplicava, so o texto aparecia sem
   destaque). Escopada em .impFinalPanel (o pai comum de verdade) em vez
   de .impFinalHead. */
.impFinalPanel h2{margin:8px 0 0;font-size:28px;font-weight:1000}.impFinalPanel h2.win{color:#86efac;text-shadow:0 0 18px rgba(34,197,94,.32)}.impFinalPanel h2.loss{color:#fecdd3;text-shadow:0 0 18px rgba(248,113,113,.28)}.impFinalPanel h2.neutral{color:#F5F5F3}
.impFinalAmount{margin-top:10px;padding:12px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.18)}.impFinalAmount small{display:block;font-size:9px;color:var(--muted);font-weight:1000;text-transform:uppercase}.impFinalAmount b{display:block;margin-top:3px;font-size:24px;font-weight:1000}.impFinalAmount.win b{color:#86efac}.impFinalAmount.loss b{color:#fecdd3}.impFinalAmount.neutral b{color:#F5F5F3}
.impFinalData{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.impFinalData div{padding:10px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.14)}.impFinalData small{display:block;font-size:8px;color:var(--muted);font-weight:1000;text-transform:uppercase}.impFinalData b{display:block;margin-top:3px;font-size:13px;color:#F5F5F3}
.impFinalPlayers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.impFinalPlayer{padding:12px 8px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.18);text-align:center}.impFinalPlayer.me{border-color:rgba(214,170,58,.55);background:#201a0b}.impFinalAvatar{width:42px;height:42px;margin:0 auto;border-radius:12px;display:flex;align-items:center;justify-content:center;border:1px solid #41546f;background:#111827;color:#fff;font-size:18px;font-weight:1000}.impFinalPlayer b{display:block;margin-top:6px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.impFinalPlayer small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.impFinalPlayerStats{display:grid;grid-template-columns:repeat(2,1fr);gap:5px;margin-top:9px}.impFinalPlayerStats span{padding:6px 3px;border-radius:8px;background:#0a101b;border:1px solid rgba(245,245,243,.14);font-size:8px;color:#A2A7AE}.impFinalPlayerStats strong{display:block;margin-top:2px;font-size:12px;color:#F5F5F3}
/* GG_FINAL_SCREEN_ODD_ITEM_CENTER_FIX -- .impFinalData/.impFinalPlayers sao
   grids de 2 colunas compartilhados por TODOS os jogos (renderFinalData
   e renderFinalPlayers em cada games-slash-jogo-slash-ui.js). Com um
   numero IMPAR de itens (ex.: MEMORY showTrainingResult manda so 1 stat;
   jogos MULTIPLAYER como GRID/MEMORY/COLOR/GRID_ARCADE podem terminar
   com 3/5/7/9 jogadores), o ultimo item ficava sozinho na coluna
   esquerda, com um vao vazio do lado direito -- e' o "desalinhado"
   visivel na tela final. :last-child:nth-child(odd) so bate quando a
   posicao do ultimo item e impar (ou seja, a lista inteira tem numero
   impar de itens); nesse caso ele ocupa as 2 colunas e centraliza. Nao
   afeta listas com numero par de itens. */
.impFinalData>:last-child:nth-child(odd),.impFinalPlayers>:last-child:nth-child(odd){grid-column:1/-1;max-width:calc(50% - 5px);margin-left:auto;margin-right:auto}
@media(max-width:430px){.impFinalPanel{padding:14px}.impFinalHead h2{font-size:24px}.impFinalAmount b{font-size:21px}.impFinalPlayers{gap:8px}.impFinalPlayer{padding:10px 6px}.impFinalPlayerStats{grid-template-columns:1fr}.impFinalData b{font-size:12px}}


.modeFilterBar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 14px}
.modeFilterBtn{padding:10px 6px;border-radius:12px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#F5F5F3;font-size:9px;font-weight:1000}
.modeFilterBtn.active{background:rgba(214,170,58,.14);color:var(--gold2);border-color:var(--gold)}
.modeCard{transition:transform .12s ease}
.modeCard .modeAccess{display:block;margin-top:5px;color:#728198;font-size:8px}
.betaBotBox{margin-top:10px;padding:12px;border-radius:14px;background:#14171C;border:1px solid rgba(214,170,58,.45)}
.betaBotBox.hide{display:none}
.betaBotBox p{margin:6px 0 9px;color:#9aabc0;font-size:9px;line-height:1.45}
.betaDiff{display:inline-flex;padding:4px 8px;border-radius:999px;background:#33270a;color:var(--gold2);font-size:8px;font-weight:1000}
.supportCard{margin:14px 0;padding:14px;border-radius:16px;border:1px solid rgba(245,245,243,.18);background:#0f1827}
.supportCard h3{margin:0 0 5px}.supportCard p{margin:0 0 10px;color:#94a3b8;font-size:9px;line-height:1.5}
.supportActions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ggBetaTesterLink{display:block;margin:10px auto 0;background:none;border:0;color:var(--muted);font-size:11px;font-weight:700;text-decoration:underline;cursor:pointer;padding:4px}
.supportActions a{text-decoration:none;text-align:center}
.feedbackPanel{position:fixed;inset:0;background:rgba(8,10,13,.9);z-index:15000;display:flex;align-items:flex-end;justify-content:center}
.feedbackPanel.hide{display:none}
.feedbackCard{width:min(560px,100%);background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:22px 22px 0 0;padding:16px;max-height:85vh;overflow:auto}
.feedbackCard textarea{width:100%;min-height:120px;resize:vertical}
.feedbackList{display:grid;gap:8px;margin-top:10px}
.feedbackItem{padding:10px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.feedbackItem .meta{font-size:8px;color:var(--muted)}.feedbackItem .txt{margin-top:4px;font-size:10px;line-height:1.45;white-space:pre-wrap}
.admBetaBtn{padding:6px 9px!important;font-size:8px!important;min-width:72px}
.admBetaOn{border-color:var(--gold)!important;color:var(--gold2)!important;background:#33270a!important}


.reconGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
.reconCard{padding:12px;border-radius:14px;background:#14171C;border:1px solid var(--line)}
.reconCard small{display:block;color:var(--muted);font-size:8px;margin-bottom:5px}
.reconCard b{font-size:18px}
.reconStatus{margin-top:10px;padding:10px;border-radius:12px;background:#14171C;border:1px solid var(--line);font-size:9px;line-height:1.5}
.reconTable{display:grid;gap:7px;margin-top:10px}
.reconRow{padding:10px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.reconRow b{display:block;font-size:10px}
.reconRow small{display:block;color:var(--muted);font-size:8px;margin-top:3px;word-break:break-all}
.reconOk{border-color:#2f7d55!important}
.reconWarn{border-color:#8b6a1f!important}
.reconBad{border-color:#8d3434!important}


/* =========================================================
   GOLD GRID V6.12 — UX/UI REFRESH
   ========================================================= */
:root{
 --gg-radius:18px;
 --gg-gap:12px;
 /* GG_OFFICIAL_VISUAL_GOLD_PANEL — ver docs/GG_VISUAL_STANDARD.md.
    Padrao visual oficial de "janela em destaque" do site (hero da Home,
    Destaques, cards de jogo): fundo em degrade dourado translucido sobre
    o navy do app, borda dourada semi-transparente e sombra suave. Toda
    janela nova desse tipo deve usar --gg-gold-border/--gg-gold-bg/
    --gg-gold-shadow (ou a classe .ggGoldPanel) em vez de recriar cores. */
 --gg-gold-border:rgba(212,175,55,.42);
 --gg-gold-bg:linear-gradient(145deg,rgba(212,175,55,.10),rgba(255,255,255,.02));
 --gg-gold-shadow:0 12px 32px rgba(0,0,0,.18);
}
.ggGoldPanel{border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow)}
body{letter-spacing:.01em}
.panel{border-radius:var(--gg-radius)}
.ggFilasGameRow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;margin-top:8px}
.ggFilasGameRow b{font-size:13px}
.ggFilasGameRow small{display:block;color:var(--muted);font-size:10px;margin-top:2px}
.ggFilasGameMain{display:flex;align-items:center;gap:9px;min-width:0}
.ggFilasGameMain>div{min-width:0}
.ggFilasMiniIcon{width:30px;height:30px;min-width:30px;border-radius:8px;border:1px solid rgba(214,170,58,.34);background:#080a0d;display:grid;place-items:center;overflow:hidden}
.ggFilasMiniIcon img{width:100%;height:100%;display:block;object-fit:cover}
.ggFilasTitle{display:flex;align-items:center;gap:8px}
.ggFilasTitle .ggFilasMiniIcon{width:32px;height:32px;min-width:32px}
.ggFilasPendIcon{width:34px;height:34px;border-radius:9px;border:1px solid rgba(214,170,58,.34);background:#080a0d;overflow:hidden;margin-bottom:4px}
.ggFilasPendIcon img{width:100%;height:100%;display:block;object-fit:cover}
.ggFilasStatusHead{display:flex!important;align-items:center;gap:8px;margin-bottom:6px!important}
.ggFilasStatusHead img{width:26px;height:26px;border-radius:7px;border:1px solid rgba(214,170,58,.34);background:#080a0d}
.ggFilasAllClear{display:flex;align-items:center;justify-content:center;gap:8px}
.ggFilasAllClear img{width:28px;height:28px;border-radius:8px;border:1px solid rgba(214,170,58,.34);background:#080a0d}
.ggNavSvgIcon{width:19px;height:19px;display:block;margin:0 auto 2px;border-radius:5px}
.ggFilasBadge{font-size:9px;font-weight:800;padding:4px 8px;border-radius:8px;white-space:nowrap}
.ggFilasBadge.ok{background:rgba(34,197,94,.15);color:#4ade80}
.ggFilasBadge.warn{background:rgba(234,179,8,.15);color:#D6AA3A}
.ggFilasBadge.critical{background:rgba(239,68,68,.18);color:#f87171}
/* GG_FILAS_REVAMP_R80 — card de pendencia centralizado (era uma linha
   flex justify-between "titulo ..... botao", pedido explicito pra
   organizar/centralizar titulo, numero e "mais antigo" verticalmente). */
/* GG_FILAS_COMPACT_R81 — card ficou grande demais (14px de padding +
   botao full-width empilhado); reduzido e posto em grade 2 colunas
   (era 1 card por linha, ocupando quase a tela toda em mobile). */
.ggFilasPendGrid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:4px}
@media(max-width:360px){.ggFilasPendGrid{grid-template-columns:1fr}}
.ggFilasPendCard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:9px 8px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02)}
.ggFilasPendCard b.ggFilasPendTitle{font-size:8px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ggFilasPendCard b.ggFilasPendCount{font-size:14px;color:var(--text)}
.ggFilasPendCard small{color:var(--muted);font-size:8px}
.ggFilasPendCard button{margin-top:6px;padding:6px 10px;font-size:9px;min-height:0;width:auto}
.ggFilasSectionHead{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ggFilasSectionHead h2{margin:0}
.ggFilasNormalLabel{font-size:11px;font-weight:800;color:var(--muted)}
.ggFilasAllClear{padding:14px;border-radius:13px;border:1px solid #2f7a58;background:rgba(74,222,128,.06);color:#4ade80;text-align:center;font-size:11px;font-weight:800}
/* Saude das Filas: throughput + grupos de status mapeados dos estados
   REAIS do backend (SAUDAVEL/ATENCAO/CRITICO em queues-overview.js) —
   Dead-letter fica sempre vazio hoje porque nao existe DLQ real de
   matchmaking nesta versao (ver nota no card). */
.ggFilasThroughput{text-align:center;padding:12px;border-radius:13px;background:rgba(255,255,255,.03);border:1px solid var(--line);margin-bottom:10px}
.ggFilasThroughput b{display:block;font-size:16px;color:var(--gold2)}
.ggFilasThroughput small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.ggFilasStatusGroups{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ggFilasStatusCard{padding:11px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.02)}
.ggFilasStatusCard b{display:block;font-size:10px;font-weight:900;letter-spacing:.03em;margin-bottom:6px}
.ggFilasStatusCard ul{margin:0;padding-left:16px;font-size:10px;color:var(--text);line-height:1.6}
.ggFilasStatusCard li{margin-bottom:6px}
.ggFilasResolveBtn{display:inline-block;margin-left:4px;padding:3px 8px;font-size:8px;min-height:0;vertical-align:middle;width:auto}
.ggFilasStatusCard small{display:block;color:var(--muted);font-size:9px;line-height:1.5}
.ggFilasStatusCard.ggFilasOk{border-color:#2f7a58}.ggFilasStatusCard.ggFilasOk b{color:#4ade80}
.ggFilasStatusCard.ggFilasInfo{border-color:rgba(245,245,243,.18)}.ggFilasStatusCard.ggFilasInfo b{color:#93c5fd}
.ggFilasStatusCard.ggFilasWarn{border-color:#7a611f}.ggFilasStatusCard.ggFilasWarn b{color:#D6AA3A}
.ggFilasStatusCard.ggFilasCritical{border-color:#7a2f2f}.ggFilasStatusCard.ggFilasCritical b{color:#f87171}
.ggFilasStatusCard.ggFilasDead{border-color:#3a3a44;opacity:.75}.ggFilasStatusCard.ggFilasDead b{color:#9aa3b2}
@media(max-width:410px){.ggFilasStatusGroups{grid-template-columns:1fr}}
.ggFilasLegend{margin-top:10px;padding:10px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.ggFilasLegend div{font-size:9px;color:var(--muted);line-height:1.6}
.ggFilasLegend b{color:var(--text)}
/* Responsavel/claim (KYC) — quem assumiu, quem decidiu. */
.ggClaimTag{display:inline-block;margin-top:4px;font-size:9px;padding:3px 7px;border-radius:999px}
.ggClaimTag.ggClaimMine{background:rgba(247,183,49,.15);color:var(--gold2)}
.ggClaimTag.ggClaimOther{background:rgba(255,255,255,.06);color:var(--muted)}
.ggFilasDoneIcon{font-size:34px}
.ggQueueCount{color:var(--muted);font-size:11px;margin-bottom:10px}
.ggQueueRow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:13px;margin-top:8px;background:rgba(255,255,255,.02)}
.ggQueueRowClickable{cursor:pointer}
.ggQueueRowClickable:active{transform:scale(.99)}
.ggQueueRow b{display:block;font-size:13px}
.ggQueueRow small{display:block;color:var(--muted);font-size:10px;margin-top:3px;line-height:1.5}
.ggQueueRowActions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}
.ggQueueRowActions button{white-space:nowrap}
.ggQueueEmpty{padding:20px 10px;text-align:center;color:var(--muted);font-size:12px}
.ggQueueError{padding:14px;border-radius:12px;background:rgba(239,68,68,.1);color:#fda4af;font-size:12px;text-align:center}
.ggQueueDetail{padding:12px;border:1px solid var(--line);border-radius:14px;margin-top:6px}
.ggQueueDetail dl{margin:0;display:grid;grid-template-columns:auto 1fr;align-items:start;gap:10px 10px;font-size:12px}
.ggQueueDetail dt{color:var(--muted)}
.ggQueueDetail dd{margin:0;word-break:break-word}
.ggQueueDetailActions{display:flex;gap:8px;margin-top:12px}
.ggQueueDetailActions button{flex:1}
.ggQueueBack{margin-bottom:10px}
.ggHero{
 margin:12px 0 14px;padding:18px;border:1px solid var(--gg-gold-border);
 border-radius:22px;background:var(--gg-gold-bg);
 box-shadow:var(--gg-gold-shadow);
 text-align:center
}
.ggHeroEyebrow{font-size:11px;font-weight:900;letter-spacing:.18em;color:#D6AA3A}
.ggHero h2{margin:7px 0 5px;font-size:25px;line-height:1.05}
.ggHero p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}
/* GG_R61_HOME_TOP_FILTERS — hero compacto, posicionado logo abaixo da
   barra .top (marca/saldos) para ficar visualmente associado a ela e
   a navegacao inferior "Inicio". So reduz espacamento/tipografia da
   parte decorativa (eyebrow/h2/p) — wallet/stake/format continuam do
   mesmo tamanho (sao os "controles principais"). */
.ggHeroCompact{margin:8px 0 10px;padding:12px 16px}
.ggHeroCompact .ggHeroEyebrow{font-size:9px}
.ggHeroCompact h2{font-size:16px;margin:3px 0 2px}
.ggHeroCompact p{font-size:10px}
.ggFormatSection.hide{display:none}
.ggQuickWallet{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.ggActiveWalletBox{margin-top:14px}
.ggActiveWalletLabel{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase;margin-bottom:6px}
.ggWalletCard{padding:12px;border-radius:15px;background:rgba(0,0,0,.22);border:1px solid var(--line);position:relative;opacity:.7;filter:grayscale(.25);cursor:pointer;transition:transform .1s ease}
.ggWalletCard:active{transform:scale(.98)}
.ggWalletCard.ggWalletActive{opacity:1;filter:none;border-color:#D6AA3A;background:linear-gradient(145deg,rgba(212,175,55,.16),rgba(0,0,0,.22));box-shadow:0 0 0 2px rgba(212,175,55,.35)}
.ggWalletCard.ggWalletDisabled{cursor:not-allowed;opacity:.45;filter:grayscale(.7)}
.ggWalletTag{display:inline-block;margin-top:5px;padding:2px 7px;border-radius:7px;font-size:8px;font-weight:800;letter-spacing:.04em;background:rgba(34,197,94,.18);color:#4ade80}
.ggWalletTag.off{background:rgba(255,255,255,.08);color:var(--muted)}
.ggWalletCard span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.ggWalletCard strong{display:block;margin-top:4px;font-size:18px}
.ggPrimaryPlay{margin-top:12px;width:100%;min-height:50px;font-size:14px}
.ggStakeBar{margin-top:14px;padding:12px;border-radius:16px;border:1px solid var(--line);background:rgba(0,0,0,.18)}
.ggStakeBar.ggStakePulse{animation:ggStakePulseAnim 1.2s ease}
@keyframes ggStakePulseAnim{0%,100%{box-shadow:none}40%{box-shadow:0 0 0 3px rgba(214,170,58,.55)}}
.ggStakeBarLabel{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--muted);margin-bottom:8px;text-transform:uppercase}
.ggStakeBarBtns{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.ggStakeBarBtns.ggHideR1{grid-template-columns:repeat(4,1fr)}.ggStakeBarBtns.ggHideR1 [data-stake-btn="1"]{display:none}
.ggStakeBtn{min-height:44px;padding:6px 2px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);font-weight:800;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer}
.ggStakeBtn.active{border-color:#D6AA3A;background:linear-gradient(145deg,rgba(212,175,55,.4),rgba(212,175,55,.12));color:#D6AA3A;box-shadow:0 0 0 2px rgba(212,175,55,.35),0 4px 14px rgba(212,175,55,.25);transform:translateY(-1px);font-weight:900}
.ggStakeBtnCount{font-size:9px;font-weight:700;color:var(--muted)}
.ggStakeBtn.active .ggStakeBtnCount{color:#D6AA3A}
.ggGameStakeCount{margin-top:6px;font-size:10px;font-weight:700;color:var(--muted)}
@media(max-width:380px){
 .ggStakeBtn{font-size:11px;min-height:40px}
}
.ggSectionTitle{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:18px 2px 9px}
.ggSectionTitle h3{margin:0;font-size:16px}
.ggSectionTitle small{color:var(--muted);font-size:10px}
.ggTrustStrip{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 4px}
.ggTrustItem{padding:9px 6px;text-align:center;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.025);font-size:9px;color:var(--muted)}
.ggTrustItem b{display:block;color:var(--text);font-size:10px;margin-bottom:2px}
.ggRulesGrid{display:grid;gap:9px}
.ggRule{padding:13px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.025)}
.ggRule b{display:block;margin-bottom:4px;font-size:12px}
.ggRule p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.ggStatusHuman{font-weight:800}
@media(max-width:420px){
 .ggHero{padding:15px}
 .ggHero h2{font-size:22px}
}


/* =========================================================
   GOLD GRID V6.13 — FULL UX PASS
   ========================================================= */
.ggScreenIntro{
 margin:8px 0 14px;padding:14px 15px;border:1px solid var(--line);
 border-radius:18px;background:rgba(255,255,255,.025)
}
.ggScreenIntro b{display:block;font-size:15px;margin-bottom:4px}
.ggScreenIntro span{color:var(--muted);font-size:11px;line-height:1.45}
.ggMiniGuide{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}
.ggMiniGuide div{padding:9px 7px;border-radius:12px;background:rgba(0,0,0,.18);border:1px solid var(--line);text-align:center;font-size:9px;color:var(--muted)}
.ggMiniGuide b{display:block;color:var(--text);font-size:10px;margin-bottom:2px}
.ggGameLegend{
 margin:8px 0 12px;padding:11px 12px;border-radius:14px;border:1px solid rgba(212,175,55,.25);
 background:rgba(212,175,55,.05);font-size:10px;color:var(--muted);line-height:1.45
}
.ggGameLegend b{color:var(--text)}
.ggProfileSecurityNote{
 margin-top:8px;padding:10px 12px;border-radius:13px;border:1px solid var(--line);
 background:rgba(255,255,255,.025);font-size:10px;color:var(--muted);line-height:1.45
}
.ggFooterPromise{
 margin:18px 0 80px;text-align:center;color:var(--muted);font-size:9px;line-height:1.5
}
.ggFooterPromise b{color:var(--text)}
.bottom{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.nav{transition:.18s ease}
.nav.active{transform:translateY(-1px)}
.cta{transition:transform .12s ease,opacity .12s ease}
.cta:active{transform:scale(.985)}


/* =========================================================
   GOLD GRID V6.13.3 — SYNC & NAVIGATION
   ========================================================= */
.ggSyncValue.is-loading{
  opacity:.55;
}
.ggBackBtn{
  display:inline-flex;align-items:center;gap:7px;
  min-height:38px;padding:0 13px;margin:0 0 12px;
  border-radius:12px;border:1px solid var(--line);
  background:rgba(255,255,255,.035);color:var(--text);
  font-weight:800;font-size:11px
}
.ggBackBtn:active{transform:scale(.98)}
.ggAdmOverview{
  display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px
}
.ggAdmMetric{
  padding:13px;border-radius:15px;border:1px solid var(--line);
  background:rgba(0,0,0,.18)
}
.ggAdmMetric small{
  display:block;color:var(--muted);font-size:9px;
  text-transform:uppercase;letter-spacing:.08em
}
.ggAdmMetric b{display:block;font-size:18px;margin-top:4px}
.ggAdmCurrent{
  margin-top:10px;padding:10px 12px;border:1px solid rgba(212,175,55,.28);
  border-radius:13px;background:rgba(212,175,55,.055);
  color:var(--muted);font-size:10px;line-height:1.45
}
.ggAdmCurrent b{color:var(--text)}
.ggEmptyState{
  padding:22px 14px;text-align:center;color:var(--muted);
  border:1px dashed var(--line);border-radius:16px
}
.ggEmptyState b{display:block;color:var(--text);margin-bottom:5px}
.ggRoomState{
  display:flex;gap:6px;flex-wrap:wrap;margin-top:7px
}
.ggRoomState span{
  padding:5px 8px;border-radius:999px;border:1px solid var(--line);
  font-size:9px;color:var(--muted)
}
.ggResetWarning{
  margin-top:10px;padding:10px 12px;border-radius:13px;
  border:1px solid rgba(251,113,133,.3);background:rgba(251,113,133,.05);
  color:var(--muted);font-size:10px;line-height:1.45
}


/* =========================================================
   GOLD GRID V6.13.4 — REFLEX GRID + MEMORY GRID
   ========================================================= */
.reflexHero,.memoryHero{
  padding:16px;border-radius:18px;border:1px solid var(--line);
  background:linear-gradient(135deg,var(--card),#080A0D);position:relative;overflow:hidden
}
.reflexHero:after{content:"⚡";position:absolute;right:10px;bottom:-18px;font-size:88px;opacity:.055}
.memoryHero:after{content:"✦";position:absolute;right:10px;bottom:-18px;font-size:88px;opacity:.055}
.quickRule{margin-top:10px;padding:12px;border-radius:14px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:#F5F5F3;font-size:10px;line-height:1.55}
.quickRule b{color:var(--gold2)}
.quickArena{background:#14171C;border:1px solid var(--line);border-radius:20px;padding:14px;margin-top:10px}
.quickVs{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px;border-radius:15px;background:#14171C;border:1px solid var(--line);margin-bottom:10px}
.quickVs div{min-width:0}.quickVs small{display:block;color:var(--muted);font-size:8px}.quickVs b{display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quickStatus{text-align:center;margin:0 0 10px;padding:10px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.18);color:#F5F5F3;font-size:11px;font-weight:900;min-height:37px}
.quickHud{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.quickHud>div{padding:10px;border-radius:13px;background:#14171C;border:1px solid var(--line);text-align:center}
.quickHud small{display:block;color:var(--muted);font-size:8px;font-weight:900}.quickHud b{display:block;margin-top:3px;font-size:15px}
.reflexGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.reflexCell{aspect-ratio:1;border-radius:14px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#A2A7AE;font-weight:1000;font-size:18px;display:grid;place-items:center;user-select:none;touch-action:manipulation}
.reflexCell.live{background:rgba(214,170,58,.14);border-color:var(--gold);color:var(--gold2);box-shadow:0 0 24px #D6AA3A33;animation:ggReflexPop .16s ease}
.reflexCell.good{background:#143126;border-color:#287b5b;color:#86efac}.reflexCell.bad{background:#351b25;border-color:#7c3048;color:#fecdd3}
/* GG_REFLEX_TRAP_R112 — celula armadilha (vermelha), revelada junto com a
   correta (.live, dourada) numa unica rodada por partida. */
.reflexCell.trap{background:#3a0a0a;border-color:#dc2626;color:#fca5a5;box-shadow:0 0 24px #dc262655;animation:ggReflexPop .16s ease}
@keyframes ggReflexPop{from{transform:scale(.72);opacity:.25}to{transform:scale(1);opacity:1}}
/* Em desktop baixo (referencia obrigatoria 1366x768), a grade quadrada
   deixa de usar toda a largura do shell. O aviso repetido some somente na
   partida ao vivo; as regras continuam visiveis na pre-partida. */
@media (min-width:700px) and (max-height:900px){
  #reflexGame .ggBackBtn{min-height:32px;margin-bottom:6px}
  #reflexGame .gameRuleTop{display:none}
  #reflexGame .quickVs{padding:7px;margin-bottom:6px}
  #reflexGame .quickArena{padding:10px;margin-top:6px}
  #reflexGame .quickStatus{padding:7px;margin-bottom:6px;min-height:31px}
  #reflexGame .reflexGrid{width:min(100%,48vh);margin-inline:auto;gap:6px}
  #reflexGame .reflexCell{border-radius:11px}
  #reflexGame .quickHud{width:min(100%,48vh);margin:7px auto 0}
  #reflexGame .quickHud>div{padding:7px}
}
.memoryGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-width:360px;margin:0 auto}
.memoryCell{aspect-ratio:1;border-radius:16px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#F5F5F3;font-weight:1000;font-size:20px;display:grid;place-items:center;user-select:none}
.memoryCell.flash{background:rgba(214,170,58,.14);border-color:var(--gold);color:var(--gold2);box-shadow:0 0 24px #D6AA3A33}
.memoryCell.pick{background:#17354d;border-color:#3f7da3;color:#93c5fd}
.memoryCell.good{background:#143126;border-color:#287b5b;color:#86efac}
.memoryCell.bad{background:#351b25;border-color:#7c3048;color:#fecdd3}
.quickResult{text-align:center;padding:20px;border-radius:18px;background:#14171C;border:1px solid var(--line)}
.quickResult .big{font-size:34px;font-weight:1000;margin:6px 0}


/* =========================================================
   GOLD GRID V6.13.5 — BETA ONBOARDING + REQUESTS
   ========================================================= */
.ggBetaWelcome{position:fixed;inset:0;background:#02060bd9;z-index:20000;display:flex;align-items:flex-end;justify-content:center;padding:12px}
.ggBetaWelcome.hide{display:none}
.ggBetaWelcomeCard{width:min(560px,100%);max-height:90vh;overflow:auto;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:24px 24px 16px 16px;padding:18px;box-shadow:0 -18px 60px #0008}
.ggBetaWelcomeCard h2{margin:6px 0 7px;font-size:22px}
.ggBetaWelcomeCard p{color:#A2A7AE;font-size:11px;line-height:1.55;margin:7px 0}
.ggBetaWelcomeBadge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#33270a;border:1px solid rgba(214,170,58,.45);color:var(--gold2);font-size:9px;font-weight:1000}
.ggBetaWelcomeGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.ggBetaWelcomeInfo{padding:11px;border-radius:13px;background:#14171C;border:1px solid var(--line)}
.ggBetaWelcomeInfo b{display:block;font-size:11px;margin-bottom:3px}.ggBetaWelcomeInfo span{font-size:9px;color:var(--muted);line-height:1.4}
.ggBetaWelcomeInfoWide{grid-column:1/-1}
.ggBetaWelcomeActions{display:grid;gap:8px;margin-top:12px}
.ggRequestMsg{min-height:18px;margin-top:8px;font-size:10px;color:var(--muted);line-height:1.4}
.ggSupportRequestBtn{font-size:9px!important;padding:11px 8px!important}
.ggSupportBonusBtn{margin-top:8px;width:100%}
.ggRequestAdminList{display:grid;gap:8px;margin-top:10px}
.ggRequestAdminItem{padding:11px;border-radius:13px;background:#14171C;border:1px solid var(--line)}
.ggRequestAdminItem b{display:block;font-size:11px}.ggRequestAdminItem small{display:block;color:var(--muted);font-size:8px;margin-top:3px}
.ggRequestAdminActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.ggRequestStatus{display:inline-flex;margin-top:6px;padding:4px 7px;border-radius:999px;border:1px solid #5a6677;color:#A2A7AE;font-size:8px;font-weight:900}
.ggRequestStatus.pending{border-color:rgba(214,170,58,.4);color:var(--gold2);background:#2d230b}
.ggRequestStatus.resolved{border-color:#2f7a58;color:#86efac;background:#102d21}
@media(max-width:410px){.ggBetaWelcomeGrid{grid-template-columns:1fr}.ggRequestAdminActions{grid-template-columns:1fr}}


/* =========================================================
   GOLD GRID V6.13.7 — PERFIL 2.0
   ========================================================= */
/* GG_PROFILE_REVAMP_R77 — card principal centralizado (padrao "Gold
   Panel" de docs/GG_VISUAL_STANDARD.md), sem os 4 status rows antigos
   (E-mail/Beta/Bonus/Conta — removidos, ver Minha Conta pro que os
   substituiu). */
.ggProfileCard2{padding:22px 16px;border-radius:22px;border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow);margin-bottom:12px;text-align:center}
.ggProfileIdentity{display:flex;flex-direction:column;align-items:center;gap:10px}
.ggProfileIdentity h2{margin:0;font-size:19px}.ggProfileIdentity p{margin:0;color:var(--muted);font-size:11px;word-break:break-word}
.ggProfileBadge{padding:6px 10px;border-radius:999px;border:1px solid #3b4a63;background:#121c2b;font-size:8px;font-weight:1000;color:#F5F5F3;white-space:nowrap}
.ggProfileBadge.beta{border-color:rgba(214,170,58,.4);background:rgba(214,170,58,.10);color:var(--gold2)}
.ggProfileBadge.verified{border-color:#2f7a58;background:#102d21;color:#86efac}
.ggProfileSummary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.ggProfileSummary>div{padding:11px;border-radius:13px;background:#14171C;border:1px solid rgba(245,245,243,.18);text-align:center}
.ggProfileSummary small{display:block;color:var(--muted);font-size:8px}.ggProfileSummary b{display:block;margin-top:3px;font-size:14px}
.ggProfileMenu{display:grid;gap:8px}
.ggProfileMenuBtn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border-radius:14px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#F5F5F3;text-align:left}
.ggProfileMenuBtn .left{display:flex;align-items:center;gap:10px;min-width:0}.ggProfileMenuBtn .ico{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#14171C;border:1px solid rgba(245,245,243,.18);font-size:16px}
.ggProfileMenuBtn b{display:block;font-size:11px}.ggProfileMenuBtn small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.ggProfileMenuBtn .arrow{color:#71829c;font-size:18px}
/* GG_PROFILE_REVAMP_R77 — bloco de status em "Minha Conta" (Rank atual /
   Membro desde / Segurança da conta), centralizado, cada linha reusa a
   MESMA fonte de dados das telas ja existentes (ranking, Auth,
   Verificacao da Conta) — nunca duplica logica/estado proprio. */
.ggAccountStatGrid{display:flex;flex-direction:column;gap:8px}
.ggAccountStat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;padding:12px;border-radius:13px;background:#14171C;border:1px solid rgba(245,245,243,.18)}
.ggAccountStatIcon{font-size:20px;line-height:1}
.ggAccountStat small{color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.ggAccountStat b{font-size:13px;color:var(--text)}
.ggProfileSheet{position:fixed;inset:0;background:#02060bd9;z-index:22000;display:none;align-items:flex-end;justify-content:center;padding:12px}
.ggProfileSheet.open{display:flex}
.ggProfileSheetCard{width:min(560px,100%);max-height:90vh;overflow:auto;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:24px 24px 16px 16px;padding:18px}
.ggProfileSheetTop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.ggProfileSheetTop h2{margin:0;font-size:18px}
.ggProfileSheetClose{border:1px solid rgba(245,245,243,.18);background:#111b2b;color:#fff;border-radius:10px;padding:8px 10px;font-weight:900}
.ggProfileSheetSection{padding:12px;border-radius:14px;background:#14171C;border:1px solid var(--line);margin-bottom:9px}
.ggProfileSheetSection h3{margin:0 0 5px;font-size:12px;text-align:center}.ggProfileSheetSection>p{margin:0;color:var(--muted);font-size:10px;line-height:1.5;text-align:center}
.ggLegalMenu{display:grid;gap:8px}
.ggLegalMenu button{width:100%;text-align:left;padding:13px;border-radius:13px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#F5F5F3;font-weight:900}
.ggSheetActions{display:grid;gap:8px;margin-top:10px}
@media(max-width:410px){.ggProfileSummary{grid-template-columns:1fr}}


/* V6.13.9 • Countdown + Bot Lab Beta */
.ggStartOverlay{position:fixed;inset:0;background:#02060bef;z-index:30000;display:none;align-items:center;justify-content:center;text-align:center}
.ggStartOverlay.show{display:flex}.ggStartBox{width:min(340px,86vw);padding:24px;border-radius:24px;border:1px solid #5a4514;background:linear-gradient(145deg,var(--card),#080A0D);box-shadow:0 24px 80px #000b}
.ggStartGame{font-size:10px;color:var(--muted);font-weight:1000;letter-spacing:.12em}.ggStartNum{font-size:78px;line-height:1;font-weight:1000;color:var(--gold2);margin:10px 0;text-shadow:0 0 34px #D6AA3A55}.ggStartNum.go{font-size:32px;color:#86efac}
.trainingOnlyBadge{display:inline-flex;padding:5px 8px;border-radius:999px;background:rgba(214,170,58,.10);border:1px solid rgba(214,170,58,.45);color:var(--gold2);font-size:8px;font-weight:1000}
.betaBotInline{margin-top:8px;width:100%}.betaBotInline.hide{display:none}
.classicBotNums{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.classicBotNums button{aspect-ratio:1;border-radius:13px;border:1px solid #30405c;background:#162237;color:#F5F5F3;font-weight:1000;font-size:18px}.classicBotNums button.bot{background:#2a1d10;border-color:rgba(214,170,58,.4);color:var(--gold2)}.classicBotNums button.mine{background:#123723;border-color:#2e7b4f;color:#86efac}
.impBotClues{display:grid;gap:7px;margin-top:10px}.impBotClue{padding:10px;border-radius:12px;background:#14171C;border:1px solid var(--line);font-size:10px}.impBotChoices{display:grid;gap:8px;margin-top:10px}.impBotChoices button{padding:12px;border-radius:12px;border:1px solid #2f405c;background:#14171C;color:#F5F5F3;text-align:left;font-weight:900}


/* =========================================================
   GOLD GRID V6.14.1 — AVATARES 32x32
   ========================================================= */
.ggAvatar{width:32px;height:32px;object-fit:cover;border-radius:10px;border:1px solid rgba(245,245,243,.18);background:#080A0D;image-rendering:auto;flex:0 0 32px}
.ggAvatar.big{width:58px;height:58px;border-radius:16px;flex-basis:58px}
.ggProfileAvatarHead{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}
.ggAvatarPicker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.ggAvatarChoice{padding:8px;border:1px solid rgba(245,245,243,.18);border-radius:13px;background:#14171C;text-align:center}
.ggAvatarChoice img{width:44px;height:44px;object-fit:cover;border-radius:12px;border:1px solid rgba(245,245,243,.18)}
.ggAvatarChoice.active{border-color:var(--gold);background:#241d09;box-shadow:0 0 0 1px #D6AA3A33}
.ggAvatarChoice.locked{opacity:.55}
.ggAvatarChoice small{display:block;margin-top:5px;color:var(--muted);font-size:8px}
.ggVsAvatarWrap{display:flex;align-items:center;gap:7px;min-width:0}
.rankAvatar{width:34px;height:34px;border-radius:10px;object-fit:cover;border:1px solid rgba(245,245,243,.18);flex:0 0 34px}


/* V6.14.2 • Bots com bônus + Replay + Impostor Lab V2 */
.impBotStage{display:grid;gap:10px}
.impBotRoundFlash{padding:11px;border-radius:13px;border:1px solid rgba(245,245,243,.18);background:#14171C;font-size:11px;font-weight:900;text-align:center}
.impBotRoundFlash.good{border-color:#2e7b4f;background:#123723;color:#86efac}.impBotRoundFlash.bad{border-color:#7e3449;background:#3a1d27;color:#fecdd3}
.impBotEnd{margin-top:12px;padding:16px;border-radius:18px;border:1px solid #3a4a66;background:linear-gradient(145deg,var(--card),#080A0D);text-align:center}
.impBotEnd.hide{display:none}.impBotEnd .icon{width:42px;height:42px;margin:0 auto}.impBotEnd h3{margin:6px 0 4px;font-size:20px}.impBotEnd p{margin:0;color:#A2A7AE;font-size:10px;line-height:1.5}
.impBotEndGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.impBotEndGrid>div{padding:10px;border-radius:12px;background:#14171C;border:1px solid rgba(245,245,243,.18)}.impBotEndGrid small{display:block;color:var(--muted);font-size:7px}.impBotEndGrid b{display:block;margin-top:3px;font-size:13px}
.ggBotWagerNote{margin-top:9px;padding:9px 10px;border-radius:12px;background:#231b09;border:1px solid rgba(214,170,58,.45);color:var(--gold2);font-size:9px;font-weight:900;line-height:1.4}


/* ===== GOLD GRID V6.14.4 • ADM 2.0 ===== */
.ggAdm2Hero{background:linear-gradient(145deg,#14171C,#080A0D);border:1px solid rgba(245,245,243,.18);border-radius:22px;padding:17px;margin-bottom:12px}
.ggAdm2HeroTop{display:flex;justify-content:space-between;gap:10px;align-items:center}
.ggAdm2Hero h2{margin:4px 0;font-size:21px}.ggAdm2Hero .sub{max-width:390px}
.ggAdm2Metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px}
.ggAdm2Metric{background:#14171C;border:1px solid var(--line);border-radius:14px;padding:11px}
.ggAdm2Metric small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.6px}
.ggAdm2Metric b{display:block;margin-top:5px;font-size:17px}
.ggAdm2Menu{display:flex;flex-direction:column;gap:9px}
.ggAdm2Card{width:100%;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:11px;text-align:left;background:#14171C;border:1px solid var(--line);border-radius:18px;padding:13px;color:var(--text);cursor:pointer}
.ggAdm2Card:active{transform:scale(.99)}.ggAdm2Icon{width:42px;height:42px;border-radius:13px;background:#14171C;border:1px solid var(--line);display:grid;place-items:center;font-size:20px}
.ggAdm2Card b{display:block;font-size:12px}.ggAdm2Card small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.ggAdm2Arrow{font-size:20px;color:#A2A7AE}
.ggAdm2Card.danger{border-color:#633044;background:#21131a}.ggAdm2Card.danger .ggAdm2Icon{border-color:#633044;background:#2a151e}
.ggAdm2Sheet{position:fixed;inset:0;background:rgba(8,10,13,.85);z-index:21000;display:flex;align-items:flex-end;justify-content:center;padding:12px}
.ggAdm2SheetCard{width:min(640px,100%);max-height:94vh;overflow:auto;background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:24px 24px 16px 16px;padding:16px}
.ggAdm2SheetHead{display:flex;justify-content:space-between;align-items:center;gap:10px;position:sticky;top:-16px;background:#14171C;padding:14px 0 10px;z-index:2}
.ggAdm2SheetHead h3{margin:0;font-size:18px}.ggAdm2Close{width:38px;height:38px;border-radius:12px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:white;font-weight:900}
.ggAdm2Module{display:none}.ggAdm2Module.active{display:block}
.ggAdmUserSummary{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;background:#14171C;border:1px solid var(--line);border-radius:17px;padding:13px;margin-bottom:10px}
.ggAdmUserAvatar{width:58px;height:58px;border-radius:16px;object-fit:cover;border:1px solid #4a3d1c;background:var(--bg)}
.ggAdmUserSummary h3{margin:0;font-size:17px}.ggAdmUserSummary small{display:block;color:var(--muted);margin-top:3px;font-size:9px}
.ggAdmUserKpis{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.ggAdmUserKpis div{background:#14171C;border:1px solid var(--line);border-radius:13px;padding:9px}.ggAdmUserKpis small{display:block;color:var(--muted);font-size:8px}.ggAdmUserKpis b{display:block;margin-top:4px;font-size:11px}
.ggAdmUserActions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.ggAdmRoleBox{margin-top:10px;padding:11px;border-radius:13px;background:#14171C;border:1px solid var(--line)}
.ggAdmRoleBox>small{display:block;color:var(--muted);font-size:8px;font-weight:900;letter-spacing:.06em}
.ggAdm2SectionTitle{font-size:11px;color:var(--gold2);font-weight:900;letter-spacing:.7px;margin:14px 2px 8px}
.ggAdmCritical{padding:12px;border-radius:15px;background:#21131a;border:1px solid #633044;color:#fecdd3;font-size:10px;line-height:1.5;margin-bottom:10px}
@media(min-width:500px){.ggAdm2Metrics{grid-template-columns:repeat(4,1fr)}}

/* ===== GOLD GRID — ADMIN REPORTS / BI V1 ===== */
#adminReports{padding-bottom:40px}
.ggRepTop{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ggRepTop h2{margin:0;font-size:18px;letter-spacing:.3px}
.ggRepBackBtn{background:#14171C;border:1px solid var(--line);color:var(--text);border-radius:12px;padding:9px 13px;font-weight:800;cursor:pointer}
.ggRepFilters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.ggRepPeriodBar{display:flex;flex-wrap:wrap;gap:6px}
.ggRepPeriodBtn{white-space:nowrap;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#A2A7AE;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:900;cursor:pointer}
.ggRepPeriodBtn.active{border-color:var(--gold);background:#2b2209;color:var(--gold2)}
.ggRepCustomRange{display:flex;gap:6px;align-items:center}
.ggRepCustomRange input{background:#14171C;border:1px solid var(--line);border-radius:10px;color:var(--text);padding:8px}
.ggRepGameFilter{background:#14171C;border:1px solid var(--line);border-radius:12px;color:var(--text);padding:9px 10px;font-size:11px}
.ggRepPeriodLabel{font-size:10px;color:var(--muted);margin:6px 2px 14px;letter-spacing:.3px}
.ggRepKpiRow{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:9px}
.ggRepKpi{background:#14171C;border:1px solid var(--line);border-radius:16px;padding:12px}
.ggRepKpi small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.5px}
.ggRepKpi b{display:block;margin-top:6px;font-size:16px}
.ggRepKpi.warn{border-color:#6c5518;background:#221b09}
.ggRepSection{margin-top:22px}
.ggRepSectionTitle{font-size:11px;color:var(--gold2);font-weight:900;letter-spacing:.7px;margin-bottom:10px}
.ggRepTableWrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
.ggRepTable{width:100%;border-collapse:collapse;font-size:11px;min-width:640px}
.ggRepTable th{text-align:left;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.4px;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.ggRepTable td{padding:9px 10px;border-bottom:1px solid #14171C;white-space:nowrap}
.ggRepTable tr:last-child td{border-bottom:none}
.ggRepTable tr.clickable{cursor:pointer}
.ggRepTable tr.clickable:hover td{background:#14171C}
.ggRepRanking{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.ggRepRankChip{background:#14171C;border:1px solid var(--line);border-radius:12px;padding:8px 11px;font-size:10px}
.ggRepRankChip b{color:var(--gold2)}
.ggRepFunnel{display:flex;flex-direction:column;gap:6px}
.ggRepFunnelStep{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:#14171C;border:1px solid var(--line);border-radius:12px;padding:9px 12px}
.ggRepFunnelStep .bar{grid-column:1/-1;height:6px;border-radius:6px;background:#14171C;overflow:hidden}
.ggRepFunnelStep .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2))}
.ggRepGrid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ggRepAlerts{display:flex;flex-direction:column;gap:8px}
.ggRepAlert{background:#221b09;border:1px solid #6c5518;border-radius:12px;padding:10px 12px;font-size:11px;color:#ffe1a8}
.ggRepAlertEmpty{background:#14171C;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:11px;color:var(--muted)}
.ggRepChart{background:#14171C;border:1px solid var(--line);border-radius:14px;padding:10px;overflow-x:auto}
.ggRepChart svg{display:block}
@media(min-width:720px){.ggRepKpiRow{grid-template-columns:repeat(4,1fr)}}

/* ===== GOLD GRID V6.14.5 • ADM WORKFLOW ===== */
.ggAdmPendingStrip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}
.ggAdmPending{background:#080A0D;border:1px solid var(--line);border-radius:13px;padding:9px}
.ggAdmPending small{display:block;color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.5px}
.ggAdmPending b{display:block;font-size:14px;margin-top:3px}.ggAdmPending.attn{border-color:#6c5518;background:#221b09}
.ggAdmFilterBar{display:flex;gap:7px;overflow:auto;padding:2px 0 9px;scrollbar-width:none}.ggAdmFilterBar::-webkit-scrollbar{display:none}
.ggAdmFilter{white-space:nowrap;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#A2A7AE;border-radius:999px;padding:8px 11px;font-size:9px;font-weight:900}
.ggAdmFilter.active{border-color:var(--gold);background:#2b2209;color:var(--gold2)}
.feedbackItem.ggFbNew{border-color:#6f5719;background:#191609}.feedbackItem.ggFbSeen{border-color:#2b466f}.feedbackItem.ggFbResolved{opacity:.72}
.ggAdmStatusPill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;border:1px solid #33415d;font-size:7px;font-weight:1000;margin-top:6px}
.ggAdmStatusPill.NEW{border-color:#7c611a;background:rgba(214,170,58,.10);color:var(--gold2)}
.ggAdmStatusPill.SEEN{border-color:#285078;background:#10263a;color:#93c5fd}
.ggAdmStatusPill.RESOLVED{border-color:#276344;background:#102c20;color:#86efac}
.ggAdmWorkflowActions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.ggAdmWorkflowActions .cta{padding:10px 8px;font-size:9px}
.ggAdmEmpty{padding:18px;border:1px dashed #33415d;border-radius:14px;text-align:center;color:var(--muted);font-size:10px}
.ggRequestAdminItem.resolvedHistory{opacity:.7}
.ggAdmTinyNote{margin-top:9px;color:#7f90a9;font-size:8px;line-height:1.45}


/* ===== GOLD GRID V6.14.6 • RANKING GLOBAL ===== */
.ggRankGlobalHero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin:10px 0 14px;padding:14px;border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);box-shadow:var(--gg-gold-shadow);border-radius:18px}
.ggRankGlobalHero small{display:block;color:#c8b778;font-size:8px;text-transform:uppercase;letter-spacing:.7px}.ggRankGlobalHero b{display:block;font-size:22px;margin-top:3px;color:var(--gold2)}
.ggRankGlobalHero .ggRankCrown{order:-1}
.ggRankCrown{width:32px;height:32px}
.rankTab[data-rankgame="global"]{border-color:#6f5719}.rankTab[data-rankgame="global"].active{background:#3a2b08;color:var(--gold2);border-color:var(--gold)}
.rankHero.ggTop1{border-color:#80651c;background:linear-gradient(145deg,#211b09,#14171C)}
.rankHero.ggTop2{border-color:#526077}.rankHero.ggTop3{border-color:#67452d}
.ggRankBreakdown{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.ggRankBreakdown span{font-size:7px;color:#A2A7AE;border:1px solid rgba(245,245,243,.14);border-radius:999px;padding:3px 5px;background:#14171C}
.ggRankJackpotGrid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.ggRankJackpotGrid{grid-template-columns:1fr 1fr}}
.ggRankJackpotCard{text-align:center}
.ggRankJackpotCard[data-mode="CASH"]{border-color:#1f7a4a}
.ggRankJackpotBalance{display:flex;align-items:baseline;justify-content:center;gap:4px;margin:10px 0 4px}
.ggRankJackpotBalance span{font-size:12px;color:#A2A7AE}
.ggRankJackpotBalance b{font-size:30px;color:var(--gold2)}
.ggRankJackpotCard[data-mode="CASH"] .ggRankJackpotBalance b{color:#39d98a}
.ggRankJackpotTop3{margin-top:14px;display:flex;flex-direction:column;gap:6px;text-align:left}
.ggRankJackpotTop3Row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid rgba(245,245,243,.14);border-radius:12px;background:#14171C}
.ggRankJackpotTop3Row .ggRJPos{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;border-radius:50%;font-size:10px;font-weight:900;background:#0a0f18;border:1px solid rgba(193,205,215,.32);color:#dbe3ee}
.ggRankJackpotTop3Row .ggRJPos.ggRJPos1{border-color:rgba(255,200,61,.55);background:linear-gradient(145deg,rgba(255,200,61,.28),rgba(255,200,61,.08));color:var(--gold2)}
.ggRankJackpotTop3Row .ggRJPos.ggRJPos3{border-color:rgba(201,137,87,.5);background:rgba(201,137,87,.12);color:#e0b28c}
.ggRankJackpotTop3Row .ggRJNick{flex:1;margin:0 8px;font-size:11px;color:#dbe3ee;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ggRankJackpotTop3Row .ggRJPts{font-size:10px;color:#A2A7AE;margin-right:8px}
.ggRankJackpotTop3Row .ggRJPrize{font-size:11px;color:var(--gold2);font-weight:600}
.ggRankJackpotTop3Empty{font-size:11px;color:#6b7688;text-align:center;padding:10px 0}
.ggRankHow{margin:14px 0 12px;padding:14px 0;border-top:1px solid #2a3850;border-bottom:1px solid #2a3850}
.ggRankHowHead{width:100%;display:flex;align-items:center;gap:10px;text-align:left;background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit}
.ggRankHowHeadText{flex:1;text-align:center}
.ggRankHowHeadText b{display:block;color:var(--gold2);font-size:13px}
.ggRankHowHeadText span{display:block;margin-top:4px;color:#9aabc1;font-size:10px;line-height:1.45}
.ggRankHowArrow{flex:0 0 auto;color:var(--gold2);font-size:14px;transition:transform .2s ease}
#ggRankHowToggle[aria-expanded="true"] .ggRankHowArrow{transform:rotate(180deg)}
.ggRankHowBody{margin-top:10px}
.ggRankHowGrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.ggRankHowItem{padding:10px 2px;border-top:1px solid #202d42}
.ggRankHowItem b{display:block;color:#eef3fa;font-size:10px}
.ggRankHowItem span{display:block;margin-top:4px;color:#91a1b7;font-size:9px;line-height:1.5}
.ggRankPayout{display:grid;grid-template-columns:repeat(3,1fr);margin-top:11px;border:1px solid #4f431f}
.ggRankPayout div{padding:9px 6px;text-align:center;background:rgba(214,170,58,.06);border-right:1px solid #4f431f}
.ggRankPayout div:last-child{border-right:0}
.ggRankPayout small{display:block;color:#a99a65;font-size:8px}
.ggRankPayout b{display:block;margin-top:3px;color:var(--gold2);font-size:15px}
.ggRankPoolSource{margin:0 0 10px;padding:10px 0;border-bottom:1px solid #202d42;color:#9aabc1;font-size:9px;line-height:1.5;text-align:center}
@media(max-width:520px){.ggRankHowGrid{grid-template-columns:1fr}.ggRankHowItem{padding:9px 2px}.ggRankPayout b{font-size:13px}}


/* ===== GOLD GRID V6.14.7 • SALAS 2.0 ===== */
.ggRoomsHero{background:linear-gradient(145deg,#14171C,#080A0D);border:1px solid rgba(245,245,243,.18);border-radius:22px;padding:16px;margin-bottom:12px}
.ggRoomsHero h2{margin:0 0 5px;font-size:21px}.ggRoomsHero .sub{max-width:470px}
.ggRoomsFilters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.ggRoomsFilter{border:1px solid rgba(245,245,243,.18);background:#14171C;color:#c7d2e3;border-radius:14px;padding:10px 6px;font-size:10px;font-weight:900}
.ggRoomsFilter small{display:block;color:#8292aa;font-size:7px;margin-top:3px;font-weight:600}
.ggRoomsFilter.active{border-color:var(--gold);background:rgba(214,170,58,.10);color:var(--gold2)}
.ggRoomsNotice{padding:11px 12px;border-radius:15px;background:#1f1820;border:1px solid #673246;color:#fecdd3;font-size:9px;line-height:1.45;margin-bottom:12px}
.ggRoomsSectionHead{display:flex;justify-content:space-between;align-items:end;gap:10px;margin:16px 0 10px}
.ggRoomsSectionHead h3{margin:0;font-size:18px}.ggRoomsSectionHead small{color:#7f90a9;font-size:8px}
.ggRoomsGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.ggRoomCard{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:20px;padding:13px;display:flex;flex-direction:column;min-height:178px}
.ggRoomCard.hot{border-color:rgba(214,170,58,.45);background:linear-gradient(145deg,rgba(214,170,58,.06),#14171C)}
.ggRoomTop{display:flex;justify-content:space-between;gap:8px;align-items:center}
.ggRoomCode{font-size:10px;font-weight:1000;letter-spacing:.5px}.ggRoomStatus{font-size:8px;color:#54c7ff}
.ggRoomValue{font-size:23px;font-weight:1000;margin:7px 0 2px}.ggRoomSub{color:var(--muted);font-size:8px;line-height:1.4}
.ggRoomStats{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}
.ggRoomChip{padding:4px 7px;border-radius:999px;border:1px solid rgba(245,245,243,.18);background:#14171C;color:#91a1b8;font-size:7px}
.ggRoomAction{margin-top:auto}
.ggRoomWide{grid-column:1/-1;min-height:auto;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
.ggRoomWide .ggRoomAction{margin:0}
.ggPvPGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.ggPvPCard{background:#14171C;border:1px solid rgba(245,245,243,.18);border-radius:18px;padding:13px;min-height:150px;display:flex;flex-direction:column}
.ggPvPTag{font-size:8px;color:var(--gold2);font-weight:1000;letter-spacing:.5px}.ggPvPCard h4{margin:5px 0 4px;font-size:15px}.ggPvPCard p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}
.ggPvPFooter{display:flex;justify-content:space-between;align-items:center;gap:7px;margin-top:auto;padding-top:11px}
.ggBotBadge{padding:4px 6px;border-radius:999px;border:1px solid rgba(214,170,58,.45);background:#241d09;color:var(--gold2);font-size:7px;font-weight:900}
.ggRoomsBetaBox{padding:12px;border-radius:16px;background:#15180e;border:1px solid #5e4b18;margin-top:12px}
.ggRoomsBetaBox b{display:block;color:var(--gold2);font-size:10px}.ggRoomsBetaBox p{margin:4px 0 0;color:#9fb0c5;font-size:8px;line-height:1.45}
@media(min-width:560px){.ggRoomsGrid,.ggPvPGrid{grid-template-columns:repeat(3,1fr)}.ggRoomWide{grid-column:auto;display:flex;flex-direction:column;align-items:stretch}}


/* ===== GOLD GRID V6.14.9 • UI PADRONIZADA ===== */
.ggGameCardUnified{position:relative}
.ggGameCardUnified .modeCardIcon,
.ggGameCardUnified .gameIcon,
.ggGameCardUnified .modeIcon{
  color:var(--gold2) !important;
  filter:none !important;
}
.ggGameCardUnified .modeCardIcon,
.ggGameCardUnified .gameIcon{font-size:30px;line-height:1}
.ggGoldIcon{color:var(--gold2)!important;font-weight:1000}
/* GG_MATCH_ICON_R133 — pedido do operador (2026-09-04): mesmos icones por
   jogo (ja usados nos cards da Home) tambem nas telas de busca/resultado
   (.pulse "Procurando jogadores", .trophy do resultado do Star Arena). */
img.ggGoldIcon{width:56px;height:56px;display:block}
.trophy img.ggGoldIcon{width:64px;height:64px;margin:0 auto}
.ggGameCardUnified .cta,
.ggGameCardUnified button.cta{
  min-height:54px;
  border-radius:16px;
}
.ggGameCardUnified .sub,
.ggGameCardUnified p{
  min-height:38px;
}
.ggGameCardUnified h3,
.ggGameCardUnified h4{
  min-height:24px;
}
.ggRoomCard .ggRoomCode,
.ggRoomStatus,
.ggPvPTag,
.tag{color:var(--gold2)}
.ggRoomAction,.ggPvPCard .cta{border-radius:16px}
.ggRoomsHero{padding-bottom:14px}
.ggRoomsFilters{display:none!important}
[data-room-group="pvp"],[data-room-group="beta"]{display:none!important}
.ggRoomsNotice{margin-top:0}
.ggRoomCard{min-height:178px}
.ggRoomWide{min-height:auto}
.ggClassicShortcutLabel{font-size:8px;color:var(--muted);margin-top:4px}


/* ===== GOLD GRID V6.14.10 • UX CARDS + PRÉ-PARTIDA ===== */
.ggModeMeta{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:9px 0 10px;min-height:24px}
.ggModeChip{display:inline-flex;align-items:center;min-height:22px;padding:0 9px;border:1px solid rgba(245,245,243,.18);border-radius:999px;color:#A2A7AE;background:#14171C;font-size:8px;font-weight:900;letter-spacing:.25px}
.ggModeChip.gold{border-color:#71591b;color:var(--gold2);background:#211b0d}
.ggModeChip.bot{border-color:#28546b;color:#7dd7ff;background:#0a1b27}
.ggUniqueGameIcon{color:var(--gold2)!important;font-size:28px!important;font-weight:1000;line-height:1;display:inline-block}
/* GG_GAME_ICONS_R131 — pedido do operador (2026-09-04): icones proprios por
   jogo (frontend/assets/icons/gg-game-*.svg) substituem as iniciais de
   2 letras. O SVG ja vem com a propria moldura (fundo preto, borda dourada,
   mesmo padrao gg-trophy/gg-gamepad) — .price.ggPriceIcon tira a moldura
   duplicada que a .price generica desenha (border/background via
   grid-arena-standard.css), pra nao ficar quadrado dentro de quadrado. */
.price.ggPriceIcon{border:0!important;background:none!important;padding:0!important}
.price.ggPriceIcon img{width:100%;height:100%;display:block}
.ggPreMatchOverlay{position:fixed;inset:0;z-index:12000;background:rgba(2,7,15,.84);display:none;align-items:flex-end;justify-content:center;padding:14px}
.ggPreMatchOverlay.show{display:flex}
.ggPreMatchPanel{width:min(100%,560px);max-height:calc(100vh - 28px);overflow-y:auto;background:#10141b;background-image:linear-gradient(145deg,#181511 0%,#10141b 44%,#080a0d 100%);border:1px solid var(--gg-gold-border);border-radius:26px;padding:20px;box-shadow:0 -18px 60px rgba(0,0,0,.45),var(--gg-gold-shadow)}
.ggPreMatchTop{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.ggPreMatchEyebrow{color:var(--gold2);font-size:9px;font-weight:1000;letter-spacing:1px}
.ggPreMatchPanel h2{margin:5px 0 4px;font-size:25px}
.ggPreMatchClose{width:44px;height:44px;border:1px solid #33435e;background:#142036;color:#fff;border-radius:14px;font-size:24px}
.ggPreMatchTitleRow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ggPreMatchTitleRow h2{margin:0}
.ggPreMatchInfoBtn{width:24px;height:24px;min-width:24px;border-radius:50%;border:1px solid var(--gg-gold-border);background:var(--gg-gold-bg);color:var(--gold2);font-size:13px;font-weight:900;line-height:1;padding:0;margin-top:4px}
.ggPreMatchInfoBtn[aria-expanded="true"]{background:var(--gold2);color:#1a1300}
.ggPreMatchRule{color:#93a1b6;font-size:12px;line-height:1.5;margin:0 0 16px}
.ggPreMatchGrid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0 16px}
.ggPreMatchInfo{border:1px solid rgba(245,245,243,.18);background:#0a1322;border-radius:15px;padding:11px}
.ggPreMatchInfo small{display:block;color:#A2A7AE;font-size:8px;font-weight:900;letter-spacing:.7px;margin-bottom:5px}
.ggPreMatchInfo b{display:block;color:#fff;font-size:12px}
.ggPreMatchStats{display:flex;gap:8px;margin:0 0 14px}
.ggPreMatchStatItem{flex:1;text-align:center;background:#14171C;border:1px solid var(--line);border-radius:12px;padding:8px 6px}
.ggPreMatchStatItem small{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.4px}
#ggPreMatchJackpotLabel{display:flex;align-items:center;justify-content:center;gap:4px}
#ggPreMatchJackpotLabel::before{content:"";width:11px;height:11px;flex:0 0 auto;background:url(../assets/icons/gg-trophy.svg) center/contain no-repeat}
.ggPreMatchStatItem b{display:block;font-size:15px;margin-top:2px;color:var(--gold2)}
.ggPreMatchMoneyBox{display:flex;gap:8px;margin:0 0 14px}
.ggPreMatchMoneyItem{flex:1;text-align:center;background:var(--gg-gold-bg);border:1px solid var(--gg-gold-border);border-radius:14px;padding:12px 8px}
.ggPreMatchMoneyItem small{display:block;color:#c8b778;font-size:9px;font-weight:900;letter-spacing:.5px}
.ggPreMatchMoneyItem b{display:block;font-size:22px;margin-top:4px;color:var(--gold2)}
.ggPreMatchRulesBox{border:1px solid rgba(245,245,243,.18);background:#0a1322;border-radius:16px;padding:13px 14px;margin-bottom:14px}
.ggPreMatchRulesBox>small{display:block;color:#A2A7AE;font-size:9px;font-weight:900;letter-spacing:.7px;margin-bottom:8px}
.ggPreMatchRulesList{margin:0;padding:0 0 0 16px;color:#c7d1e0;font-size:12.5px;line-height:1.6;display:grid;gap:5px}
.ggPreMatchRulesList li{padding-left:2px}
.ggPreMatchNote{border:1px solid #5d4b1c;background:#1c190e;color:#c9b66f;border-radius:14px;padding:10px;font-size:9px;line-height:1.45;margin-bottom:12px}
.ggPreMatchPlay{width:100%;min-height:58px;border:0;border-radius:17px;background:linear-gradient(135deg,var(--gold2),#f6a900);color:#111;font-size:17px;font-weight:1000}
.ggPreMatchTrain{width:100%;margin-top:8px;min-height:48px;border:1px solid #28546b;border-radius:14px;background:#0a1b27;color:#7dd7ff;font-weight:900}
.ggPreMatchTrain.hide{display:none}
.ggPreMatchBots9{width:100%;margin-top:8px;min-height:48px;border:1px solid rgba(214,170,58,.45);border-radius:14px;background:rgba(214,170,58,.10);color:var(--gold2);font-weight:900;font-size:12px}
.ggPreMatchBots9.hide{display:none}
.ggPreMatchCancel{width:100%;margin-top:8px;min-height:44px;border:1px solid rgba(245,245,243,.18);border-radius:14px;background:#101b2e;color:#A2A7AE;font-weight:900}
.ggPreMatchMoreToggle{width:100%;margin-top:10px;min-height:38px;border:0;background:transparent;color:#93a1b6;font-weight:800;font-size:11px;letter-spacing:.06em;display:flex;align-items:center;justify-content:center;gap:6px}
.ggPreMatchMoreArrow{display:inline-block;transition:transform .2s ease}
.ggPreMatchMoreToggle[aria-expanded="true"] .ggPreMatchMoreArrow{transform:rotate(180deg)}
.ggPreMatchMoreWrap{margin-top:2px}
.ggPreMatchMoreWrap.hide{display:none}
.ggPreMatchColorModeWrap{margin-top:10px}
.ggPreMatchColorModeWrap.hide{display:none}
.ggPreMatchColorModeWrap .modeFilterBar{grid-template-columns:repeat(2,1fr);max-width:340px;margin-left:auto;margin-right:auto}
#ggPreMatchNavalModeWrap .modeFilterBar{grid-template-columns:repeat(3,1fr);max-width:none}
.ggPreMatchColorModeLabel{color:#A2A7AE;font-size:9px;font-weight:900;letter-spacing:.7px;margin-bottom:6px}
/* GG_RANKING_PLAYER_SHEET_R76 — resumo de jogador (reaproveita .ggPreMatch*). */
.ggPlayerSheetAvatar{width:56px;height:56px;border-radius:16px;object-fit:cover;border:1px solid rgba(245,245,243,.18);margin-bottom:6px}
.ggPlayerSheetPosRow{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}
.ggPlayerSheetPos{font-size:15px;font-weight:1000;color:var(--gold2)}
.ggCenterInfo{text-align:center}
.ggPlayerSheetGamesLabel{margin:14px 0 6px;font-size:9px;font-weight:900;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;text-align:center}
#ggPlayerSheetGamesList .rankRow{border-bottom:1px solid #1c2740}
#ggPlayerSheetGamesList .rankRow:last-child{border-bottom:0}


/* GG_VERIFY_PROFILE_61501 */
.ggVerifyBox{margin-top:10px;padding:12px;border-radius:14px;background:#14171C;border:1px solid var(--line)}
.ggVerifyTop{display:flex;justify-content:space-between;gap:10px;align-items:center}
.ggVerifyTop b{font-size:12px}.ggVerifyTop span{font-size:9px;color:var(--muted)}
.ggVerifyBar{height:7px;background:#1b2638;border-radius:999px;overflow:hidden;margin-top:9px}
.ggVerifyBar i{display:block;height:100%;background:#f6c453}
.ggVerifySteps{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.ggVerifyStep{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.ggVerifyStep .l{display:flex;align-items:center;gap:9px}.ggVerifyStep .ico{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#14171C;border:1px solid rgba(245,245,243,.18);font-weight:900}
.ggVerifyStep b{display:block;font-size:11px}.ggVerifyStep small{display:block;color:var(--muted);font-size:8px;margin-top:2px}
.ggVerifyOk{color:#86efac;font-size:9px;font-weight:900}.ggVerifyPending{color:#fde68a;font-size:9px;font-weight:900}.ggVerifyNext{color:#93a4ba;font-size:9px;font-weight:900}


/* GG_CPF_PROFILE_61502 */
.ggCpfForm{margin-top:10px;padding:12px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.ggCpfForm input{width:100%;box-sizing:border-box;margin-top:7px;padding:11px;border-radius:10px;border:1px solid rgba(245,245,243,.18);background:#080A0D;color:#F5F5F3;outline:none}
.ggCpfForm .hint{font-size:8px;color:var(--muted);line-height:1.45;margin-top:6px}


/* GG_PHONE_PROFILE_61503 */
.ggPhoneForm{margin-top:10px;padding:12px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.ggPhoneForm input{width:100%;box-sizing:border-box;margin-top:7px;padding:11px;border-radius:10px;border:1px solid rgba(245,245,243,.18);background:#080A0D;color:#F5F5F3;outline:none}
.ggPhoneForm .hint{font-size:8px;color:var(--muted);line-height:1.45;margin-top:6px}


/* GG_PHONE_OTP_PROFILE_61504 */
.ggOtpBox{margin-top:10px;padding:12px;border-radius:12px;background:#14171C;border:1px solid var(--line)}
.ggOtpBox input{width:100%;box-sizing:border-box;margin-top:7px;padding:11px;border-radius:10px;border:1px solid rgba(245,245,243,.18);background:#080A0D;color:#F5F5F3;outline:none}
.ggOtpBox .hint{font-size:8px;color:var(--muted);line-height:1.45;margin-top:6px}
.ggOtpSecure{margin-top:8px;padding:9px;border-radius:10px;background:#101b14;border:1px solid #34523b;color:#9dd7aa;font-size:8px;line-height:1.45}


/* GG_FIREBASE_CONFIG_DIAG_61506 */
.ggFirebaseDiag{font-size:8px;color:var(--muted);margin-top:6px}

/* GG_RG_DOM_MOUNT_61510 */
.ggRgMount{margin-top:12px;padding:12px;border-radius:14px;background:#14171C;border:1px solid var(--line)}
.ggRgMount h3{margin:0 0 8px;font-size:15px}
.ggRgMount input{width:100%;box-sizing:border-box;margin-top:7px;padding:10px;border-radius:10px;border:1px solid rgba(245,245,243,.18);background:#080A0D;color:#F5F5F3}
.ggRgMountGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.ggRgMountFile{padding:10px;border-radius:10px;border:1px dashed #3b4d69;background:#080A0D;font-size:10px}
.ggRgMountFile input{padding:0;border:0;background:transparent;font-size:8px}
.ggRgMountSecure{font-size:8px;color:#9dd7aa;line-height:1.45;margin-top:8px;padding:8px;border:1px solid #34523b;border-radius:10px;background:#101b14}

/* GG_RG_CAMERA_DIRECT_61513 */
.ggRgCameraActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.ggRgCameraBtn{padding:11px 8px;border-radius:10px;border:1px solid #3b4d69;background:#111c2d;color:#F5F5F3;font-weight:800}
.ggRgCameraBtn.ok{border-color:#3d6748;color:#9ee6aa}
.ggRgNativeHidden{display:none!important}
#ggRgCamOverlay{position:fixed;inset:0;z-index:999999;background:#02050bcc;display:none;align-items:center;justify-content:center;padding:14px}
#ggRgCamOverlay.show{display:flex}
#ggRgCamCard{width:min(96vw,560px);background:#14171C;border:1px solid #33415b;border-radius:16px;padding:12px}
#ggRgCamVideo{display:block;width:100%;max-height:68vh;object-fit:contain;background:#000;border-radius:12px}
.ggRgCamRow{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.ggRgCamRow button{padding:12px;border-radius:10px;font-weight:900}


/* GG_VERIFY_UX_61514 */
.ggVerifyStep.ggUxDone{min-height:54px!important;padding:10px 12px!important;opacity:.96}
.ggVerifyStep.ggUxDone small{display:none!important}
.ggVerifyStep.ggUxCurrent{border-color:#526889!important;box-shadow:0 0 0 1px rgba(113,144,192,.08) inset}
.ggRgMemoryFile.ggUxHideOldUpload{display:none!important}
.ggRgMemoryGrid.ggUxHideOldUpload{display:none!important}
.ggRgMemoryBox.ggUxDocumentCard{padding:14px!important}
.ggRgMemoryBox.ggUxDocumentCard>[data-gg-rg-auto-note],
.ggRgMemoryBox.ggUxDocumentCard>.ggRgMemorySecure:not(.ggUxPrivacy){display:none!important}
.ggUxStageCaption{font-size:11px;line-height:1.4;color:#91a0b8;margin:4px 0 10px}
.ggUxPrivacy{margin-top:10px!important;font-size:9px!important;color:#9db9a3!important}
.ggUxProgressLine{height:8px;background:#18243a;border-radius:99px;overflow:hidden;margin-top:8px}
.ggUxProgressFill{height:100%;background:linear-gradient(90deg,#ffd160,#ffae12);border-radius:99px;transition:width .25s ease}
.ggUxProgressMeta{display:flex;justify-content:space-between;gap:10px;font-weight:800}
.ggUxSmsHint{font-size:9px;color:var(--muted);line-height:1.4;margin-top:8px}
.ggUxSectionTitle{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ggUxSectionTitle .ggUxBadge{font-size:9px;font-weight:900;padding:5px 8px;border-radius:999px;background:#172238;border:1px solid #2f405f;color:#c7d3e8}
