/* GABA3 — Sala Juegos — reglas propias extraídas de estilo.css.
   Generado automáticamente: mismas declaraciones, mismos selectores,
   sin cambios visuales. */

.gaming-page{margin:0;min-height:100vh;background:#06101d;color:#fff;font-family:Inter,Arial,sans-serif}
/* Bug real de auditoria (2026-09-13, desktop): existe uma regra global em
   estilo.css (`body:not(.pagina-sala) main{padding-top:118px!important}`)
   pensada só pra portada (index.html) — reserva espaço pro cabeçalho fixo
   de lá. O <body> da sala de Jogos é o único que nunca ganhou a classe
   "pagina-sala" que as outras salas têm, então herdava esse vão vazio de
   118px sem nenhum motivo, empurrando todo o conteúdo (vídeo, abas,
   vídeos recentes) pra baixo e espremendo a fileira de baixo. */
body.gaming-page main{padding-top:0!important}
.gaming-header{min-height:68px;display:flex;gap:20px;align-items:center;padding:0 28px;background:#081421;border-bottom:1px solid #1d3955;position:sticky;top:0;z-index:30}
.gaming-brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:24px}
.gaming-brand .marca-icono{width:38px;height:38px;display:grid;place-items:center;color:#fff}
.gaming-header>div{display:grid;gap:3px}
.gaming-header small{color:#9fb4c7}
.gaming-live{color:#5ae17b;font-weight:800;margin-left:auto;color:var(--gaba3-verde-brillante)!important}
.gaming-header button,
.gaming-actions button,
.gaming-owner button,
.gaming-chat form button{background:#0d75df;border:1px solid #40a3ff;color:#fff;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer;border-color:transparent!important;
    color:#061408!important;
    background:linear-gradient(135deg,var(--gaba3-verde-brillante),var(--gaba3-verde))!important;
    box-shadow:0 9px 22px rgba(85,201,0,.22)!important;
    transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,background .22s ease}
.gaming-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;padding:20px;max-width:1500px;margin:auto;min-height:calc(100dvh - 108px);grid-template-columns:minmax(0,1fr) minmax(290px,340px);gap:16px;padding:16px;max-width:1500px}
.gaming-stage,
.gaming-chat,
.gaming-owner{background:#0a1726;border:1px solid #1c3853;border-radius:16px}
.gaming-stream{min-height:62vh;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 50% 40%,#174d78,#07111f 70%);border-radius:15px;min-height:clamp(350px,62vh,720px);overflow:hidden;position:relative;flex:1 1 auto;min-height:clamp(480px,68vh,800px)}
.gaming-stream span{font-size:12px;letter-spacing:.14em;color:#6cc8ff}
.gaming-stream h1{font-size:clamp(26px,4vw,48px);margin:.5em}
.gaming-stream p{color:#a9bfd0}
.gaming-stage{padding:12px;position:relative;min-width:0;display:flex;flex-direction:column;min-height:0;background:radial-gradient(circle at 50% 40%,#214d1f,#07110a 70%)}
.gaming-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:14px}
.gaming-actions button:first-child{font-size:22px;padding:6px 14px}
.gaming-chat{display:flex;flex-direction:column;min-height:620px;padding:14px;min-width:0;min-height:0;height:calc(100dvh - 148px)}
.gaming-chat header{display:flex;justify-content:space-between;border-bottom:1px solid #1c3853;padding-bottom:12px}
.gaming-chat header button{padding:2px 8px;background:transparent;border:0}
.gaming-messages{flex:1;overflow:auto;max-height:520px;min-height:0;max-height:none!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.gaming-messages p{padding:9px;border-radius:8px;background:#102237;margin:8px 0}
.gaming-chat form{display:flex;gap:8px;flex:none;padding-top:10px}
.gaming-chat input{min-width:0;flex:1;background:#07111f;border:1px solid #26435d;border-radius:8px;color:#fff;padding:10px}
.gaming-chat small{color:#9fb4c7;margin-top:12px}
.gaming-chat.collapsed .gaming-messages,
.gaming-chat.collapsed form,
.gaming-chat.collapsed small{display:none}
.gaming-chat.collapsed{min-height:0}
.gaming-owner{max-width:1460px;margin:0 auto 28px;padding:18px}
.gaming-owner button{margin:0 8px 8px 0}
.gaming-owner p{display:flex;gap:8px;align-items:center}
.gaming-header .gaming-brand{margin-right:4px}
.gaming-header .gaming-brand img{width:42px!important;height:42px!important}
.gaming-header .gaming-brand b{font-size:19px}
.gaming-header #gaming-connection{font-size:12px;color:#a9bfd0}
.gaming-header #gaming-connection[data-state="online"]{color:#76ea8e}
.gaming-header #gaming-connection[data-state="pending"]{color:#ffd36a}
.gaming-header .gaming-leave{background:#342028!important;border-color:#8f3d4d!important}
.gaming-live[data-status="DRAFT"],
.gaming-live[data-status="ENDED"],
.gaming-live[data-status="CANCELLED"]{color:#a9bfd0!important}
.gaming-live[data-status="SCHEDULED"],
.gaming-live[data-status="PAUSED"]{color:#ffd36a!important}
.gaming-notice{position:fixed;z-index:50;left:50%;top:82px;transform:translateX(-50%);max-width:min(90vw,640px);margin:0;padding:11px 16px;border-radius:10px;background:#102237;border:1px solid #2b5274;color:#fff;box-shadow:0 14px 35px #0008}
.gaming-notice[data-kind="error"]{border-color:#c3505c;background:#3a1920}
.gaming-notice[data-kind="success"]{border-color:#4aa95c;background:#14351d}
.gaming-stream>div{max-width:650px;padding:30px}
.gaming-stream #gaming-stage-status{display:inline-block;border:1px solid #65cb76;border-radius:999px;padding:6px 10px;background:#0b2412;color:#a9ffb5}
.gaming-stream #gaming-live-copy{display:block;margin-top:14px;color:#c7d7e3}
.gaming-actions button:disabled{opacity:.48;cursor:not-allowed;transform:none!important;box-shadow:none!important}
.gaming-chat header>div{display:grid;gap:3px}
.gaming-chat header small{color:#a9bfd0;font-size:12px}
.gaming-participants{list-style:none;margin:12px 0 4px;padding:0;display:flex;gap:6px;overflow:auto}
.gaming-participants li{display:grid;grid-template-columns:25px max-content;align-items:center;column-gap:5px;min-width:max-content;color:#d9e8f5;font-size:12px}
.gaming-participants li small{grid-column:2;color:#84a1b7}
.gaming-blocked-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px}
.gaming-blocked-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid #5c2020;border-radius:8px;background:#1a0d0d;color:#ffb3ba;font-size:11.5px}
.gaming-blocked-list li button{flex:none;border:1px solid #5c9e49!important;background:#132313!important;color:#eaffdf!important;border-radius:7px;padding:5px 8px;font-size:11px}
.gaming-avatar{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#214d1f;color:#baff9f;font-weight:900}
.gaming-message{display:grid;grid-template-columns:max-content 1fr max-content;gap:7px;align-items:start;padding:9px;border-radius:8px;background:#102237;margin:8px 0;word-break:break-word}
.gaming-message-meta{display:flex;align-items:center;gap:4px}
.gaming-message-block{border:0!important;background:transparent!important;color:#ff8b96!important;opacity:.55;padding:0!important;font-size:12px;cursor:pointer;line-height:1}
.gaming-message-block:hover{opacity:1}
.gaming-message b{color:#a9ffb5;font-size:12px}
.gaming-message time{font-size:10px;color:#91a9bc}
.gaming-mobile-bubble{display:none}
@media(orientation:landscape) and (max-width:850px){.gaming-stream{min-height:calc(100dvh - 118px)}.gaming-chat{max-width:340px;left:auto;bottom:8px}.gaming-chat.collapsed{transform:translateY(calc(100% - 49px))}.gaming-page .gaming-stage,
.gaming-page .gaming-stream{height:100dvh;min-height:100dvh!important}.gaming-page .gaming-mobile-bubble{right:max(12px,env(safe-area-inset-right,12px));bottom:max(12px,env(safe-area-inset-bottom,12px))}.gaming-page .gaming-chat{inset:auto max(10px,env(safe-area-inset-right,10px)) max(10px,env(safe-area-inset-bottom,10px)) auto!important;width:min(370px,48vw)!important;height:min(78dvh,440px)!important;max-height:min(78dvh,440px)!important}}
.gaming-brand img.marca-icono{display:block;width:108px;height:72px;object-fit:contain;background:transparent!important;box-shadow:none!important;border-radius:0!important;padding:0!important;clip-path:none!important}
.gaming-page.gaming-normal{min-height:100dvh;background:#050a10;color:#fff;padding:18px;background:#020604}
.gaming-normal-header{position:sticky;top:0;z-index:30;min-height:72px;padding:8px 28px;background:linear-gradient(100deg,#21140d,#432818 50%,#21140d);border-bottom:2px solid #935721;box-shadow:0 5px 20px #0008}
.gaming-normal-header .gaming-brand{margin-right:4px}
.gaming-profile{display:flex!important;align-items:center;gap:10px;min-width:0;flex:1}
.gaming-profile>div{min-width:0}
.gaming-profile b{display:block;font-size:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gaming-profile small{display:block;max-width:46vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d1dbca}
.gaming-owner-avatar{width:46px;height:46px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #b6ff8b;border-radius:50%;background:#102414;color:#eaffdd;font-weight:900;font-size:20px}
.gaming-owner-menu-toggle{width:42px;height:42px;padding:0!important;font-size:21px!important;background:#07180d!important;border-color:#83ee57!important}
.gaming-normal .gaming-stage{padding:0;overflow:hidden;background:#071009;border-color:#264c20}
.gaming-normal-player{min-height:calc(100dvh - 128px);background:radial-gradient(circle at 50% 42%,#214d1f,#07110a 70%)}
.gaming-video-host{position:relative;width:100%;height:100%;min-height:inherit;display:grid;place-items:center;text-align:center;overflow:hidden}
/* `.gaming-stream>div` (mais acima neste arquivo) dá padding:30px e
   max-width:650px pensado pro texto do placeholder ("Nenhum vídeo
   publicado") — mas o mesmo nó também vira o <video> real quando existe
   conteúdo, e essa mesma regra encolhia o vídeo de verdade pra uma
   caixinha no meio da tela, com barras pretas nas laterais. ID pra
   garantir que ganha da combinação classe+elemento. */
#gaming-video-host{padding:0!important;max-width:none!important;box-sizing:border-box!important}
.gaming-video-host>span{font-size:12px;letter-spacing:.12em;color:#b8ff93}
.gaming-video-host h1{margin:10px 22px 4px;font-size:clamp(24px,4vw,48px)}
.gaming-video-host p{margin:0 22px;color:#c4d3c3}
.gaming-published-video{width:100%;height:100%;min-height:inherit;object-fit:contain;background:#000}
.gaming-normal-actions{position:absolute;right:18px;top:50%;z-index:4;display:grid;transform:translateY(-50%);padding:0!important;background:transparent!important}
.gaming-normal-actions button{width:58px;min-height:58px;display:grid;place-items:center;gap:2px;padding:8px!important;border-radius:50%!important;background:#07140ce8!important;border-color:#75d854!important;color:#eaffdf!important;box-shadow:0 8px 18px #000a}
.gaming-normal-actions button small{font-size:9px;white-space:nowrap}
.gaming-normal-actions .gaming-go-live{width:max-content;min-width:124px;border-radius:999px!important;background:#398815!important;color:#fff!important}
.gaming-normal-actions .gaming-go-live small{font-size:12px}
.gaming-normal .gaming-chat{height:calc(100dvh - 104px);min-height:0;border-color:#315c2b;background:#09140c}
/* Madeira escura, igual ao chat/sidebar/cinta — antes era verde chapado,
   destoava do resto da sala ("elegante" pedido pelo dono). */
.gaming-owner-menu{position:fixed;z-index:60;top:86px;right:18px;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 110px);overflow:auto;padding:16px;border:1px solid #7A4E27;border-radius:16px;background:linear-gradient(180deg, rgba(20,12,4,.88), rgba(6,4,2,.94)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;box-shadow:0 18px 50px #000d}
.gaming-owner-menu[hidden]{display:none}
.gaming-owner-menu header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.gaming-owner-menu header button{border:0;background:transparent;color:#fff;font-size:25px}
.gaming-owner-menu nav{display:flex;gap:7px;overflow:auto;margin-bottom:14px}
.gaming-owner-menu nav button{flex:0 0 auto;background:#1a1108;border:1px solid #7A4E27;color:#e8ddce;border-radius:9px;padding:9px}
.gaming-owner-menu nav button.active{border-color:#8fe84f;color:#c8ffa0}
.gaming-owner-menu section{display:grid;gap:10px}
.gaming-owner-menu section[hidden]{display:none!important}
.gaming-file-picker{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid #7A4E27!important;border-radius:9px;background:#1a1108!important;color:#8fe84f!important;cursor:pointer}
.gaming-file-picker:hover{border-color:#8fe84f!important}
.gaming-owner-menu label{display:grid;gap:5px;color:#e8ddce;font-size:13px;font-weight:700}
.gaming-owner-menu input:not([type=checkbox]),
.gaming-owner-menu select,
.gaming-owner-menu textarea{box-sizing:border-box;width:100%;border:1px solid #5c4026;border-radius:9px;background:#150d06cc;color:#fff;padding:10px;font:inherit}
.gaming-owner-menu textarea{min-height:78px;resize:vertical}
.gaming-owner-menu section>button,
.gaming-upload-form button{border:0;border-radius:10px;background:#63ce27;color:#071008;padding:11px;font-weight:900}
.gaming-check{display:flex!important;align-items:center;gap:8px}
.gaming-video-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #ffffff16}
.gaming-video-row b{margin-right:auto}
.gaming-video-row button{border:1px solid #5c9e49;background:#132313;color:#eaffdf;border-radius:8px;padding:7px 10px}
.gaming-video-row img{width:32px;height:32px;border-radius:8px;object-fit:cover;flex:none}
/* Cinta de jogos cadastrados, mostrada na hora de entrar ao vivo — cada
   cartão seleciona o jogo com um toque, em vez de digitar o nome. */
.gaming-game-ribbon{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px}
.gaming-game-ribbon button{flex:0 0 auto;width:72px;display:grid;justify-items:center;gap:4px;border:1px solid #7A4E27!important;border-radius:10px;background:#150d06!important;padding:6px!important;color:#cfd8cf;font-size:10.5px;text-align:center}
.gaming-game-ribbon button.active{border-color:#2ECC71!important;color:#fff}
.gaming-game-ribbon img{width:40px;height:40px;border-radius:8px;object-fit:cover}
.gaming-game-ribbon span{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:#2a1d10;font-size:16px}
.gaming-game-ribbon b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:64px}
.gaming-page.gaming-normal .gaming-normal-header{max-width:1520px;margin:0 auto 10px;height:auto;min-height:104px;padding:12px 22px;border:1px solid #70431e;border-radius:28px;background:linear-gradient(180deg, rgba(4,6,4,.22), rgba(4,6,4,.42)),url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;box-shadow:inset 0 1px #c2874a66,0 18px 40px #0008}
/* Botão de transmissão vem pro cabeçalho — só o ícone, sem caixa, igual
   ao padrão da sala de criador de conteúdo. */
.gaming-page.gaming-normal .gaming-normal-header .gaming-go-live,
.gaming-page.gaming-normal .gaming-normal-header .gaming-leave,
.gaming-page.gaming-normal .gaming-normal-header .gaming-header-record{width:auto;min-width:0;height:auto;min-height:0;display:grid;place-items:center;padding:6px!important;border:none!important;border-radius:0!important;background:transparent!important;color:#fff!important;box-shadow:none!important;font-size:0}
.gaming-page.gaming-normal .gaming-normal-header .gaming-go-live span,
.gaming-page.gaming-normal .gaming-normal-header .gaming-leave span,
.gaming-page.gaming-normal .gaming-normal-header .gaming-header-record span{display:grid}
.gaming-page.gaming-normal .gaming-normal-header .gaming-go-live svg,
.gaming-page.gaming-normal .gaming-normal-header .gaming-leave svg,
.gaming-page.gaming-normal .gaming-normal-header .gaming-header-record svg{width:24px;height:24px}
.gaming-page.gaming-normal .gaming-normal-header .gaming-go-live:hover,
.gaming-page.gaming-normal .gaming-normal-header .gaming-leave:hover,
.gaming-page.gaming-normal .gaming-normal-header .gaming-header-record:hover{color:#9dff6f!important}
.gaming-page.gaming-normal.gaming-live-active .gaming-normal-header .gaming-go-live{color:#ff5b6b!important}
.gaming-upload-hint{margin:-4px 0 4px;font-size:12px;color:#9ab09b;opacity:.85}
/* Gravação da própria partida, direto no navegador. */
#gaming-stream{position:relative}
.gaming-record-bar{position:absolute;z-index:6;top:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;background:#1a0507e6;border:1px solid #c0202066;box-shadow:0 8px 20px #0008}
.gaming-record-bar[hidden]{display:none!important}
.gaming-record-dot{width:9px;height:9px;border-radius:50%;background:#ff3b4a;animation:gamingRecordPulse 1.4s ease-in-out infinite}
@keyframes gamingRecordPulse{0%,100%{opacity:1}50%{opacity:.35}}
#gaming-record-timer{color:#ffd7db;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums}
.gaming-record-bar button{width:30px;height:30px;display:grid;place-items:center;padding:0!important;border:none!important;border-radius:50%!important;background:rgba(255,255,255,.1)!important;color:#fff!important}
.gaming-record-bar button:hover{background:rgba(255,255,255,.2)!important}
.gaming-record-preview{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;background:#000d;padding:18px;box-sizing:border-box}
.gaming-record-preview[hidden]{display:none!important}
.gaming-record-preview video{flex:1;min-height:0;width:100%;border-radius:12px;background:#000}
.gaming-record-preview-actions{display:flex;gap:10px;justify-content:center;margin-top:14px}
.gaming-record-preview-actions button,
.gaming-record-preview-actions a{border-radius:999px;padding:10px 20px;font-weight:800;font-size:13.5px;cursor:pointer;text-decoration:none;text-align:center}
#gaming-record-discard{background:transparent!important;border:1px solid #6b4a22!important;color:#ffd75e!important}
#gaming-record-download{background:#1a1108;border:1px solid #6b4a22;color:#ffd75e}
.gaming-record-publish{background:linear-gradient(135deg,#8fe860,#55c900)!important;border:none!important;color:#0b1c04!important}
.gaming-record-preview .gaming-upload-hint{text-align:center;margin-top:8px}
.gaming-page.gaming-normal .gaming-brand{display:grid;place-items:center;width:auto;padding:6px;color:#fff;font-size:0}
.gaming-page.gaming-normal .gaming-brand svg{width:24px;height:24px}
.gaming-page.gaming-normal .gaming-brand:hover{color:#9dff6f}
/* Seguir a sala — botão de texto normal, não é ícone solto. */
.gaming-page.gaming-normal .gaming-follow{background:#398815!important;border:none!important;color:#fff!important;border-radius:999px;padding:8px 16px!important;font-size:13px;font-weight:800}
.gaming-page.gaming-normal .gaming-follow[hidden]{display:none!important}
/* Estatísticas — mesmo cartão da sala de criador de conteúdo. */
.gaming-stats{display:flex!important;flex:none!important;gap:10px}
.gaming-stats[hidden]{display:none!important}
.gaming-stats span,.gaming-stats button{display:inline-flex!important;width:fit-content!important;flex:0 0 auto!important;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(255,201,40,.3);color:#ffd75e;font-size:12.5px;font-weight:800;white-space:nowrap;cursor:pointer}
.gaming-stats span[hidden],.gaming-stats button[hidden]{display:none!important}
.gaming-stats svg{flex:none;opacity:.9}
/* Gravar fica perto de "Entrar ao vivo", mas com respiro — não colado. */
.gaming-page.gaming-normal .gaming-normal-header .gaming-header-record{margin-left:auto;margin-right:18px}
/* Estatísticas coladas na borda direita do cabeçalho não deixavam nenhum
   espaço livre pro ícone flutuante de suporte (fica sempre no canto
   superior direito, em toda sala) — puxa o grupo um pouco pra esquerda,
   abrindo uma folga real na borda pra ele nunca ficar em cima de nada. */
.gaming-page.gaming-normal .gaming-normal-header #gaming-stats{margin-right:54px}
/* Setas de navegação entre as partidas publicadas — só aparecem com o
   mouse em cima do vídeo, igual à sala de criador de conteúdo. */
.gaming-arrow{position:absolute;top:50%;z-index:5;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;border:0!important;border-radius:50%!important;background:#071008a6!important;color:#eaffdf!important;opacity:0;transition:opacity .18s ease;cursor:pointer}
.gaming-arrow[hidden]{display:none!important}
.gaming-arrow svg{width:24px;height:24px}
#gaming-stream:hover .gaming-arrow:not(:disabled),
.gaming-arrow:focus-visible{opacity:1}
.gaming-arrow:disabled{opacity:0!important;cursor:not-allowed}
#gaming-previous{left:14px}
#gaming-next{right:14px}
.gaming-page.gaming-live-active .gaming-arrow{display:none!important}
/* Mesma identidade visual do chat da sala de comércio (verde + dourado,
   papel de parede GABA3) — é a mesma plataforma, o chat não pode parecer
   outro produto só porque está numa sala diferente. */
.gaming-page.gaming-normal .gaming-chat{border:1px solid #294d2f!important;
  border-left:1px solid #caa23c!important;
  border-radius:15px!important;
  background:linear-gradient(145deg,#0b120d,#07100a)!important;
  box-shadow:0 14px 30px #0005!important}
.gaming-page.gaming-normal .gaming-chat header{min-height:44px!important;padding:0 14px!important;border-bottom:1px solid #ffffff12!important}
.gaming-page.gaming-normal .gaming-chat header b{color:#8fff67!important;font-size:13px!important;font-weight:900!important;letter-spacing:.02em;text-transform:uppercase}
.gaming-page.gaming-normal .gaming-chat .gaming-messages{background-color:#0c150b;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='190'%20height='190'%3E%3Ctext%20x='6'%20y='36'%20transform='rotate(-16%206%2036)'%20font-family='Segoe%20UI,Arial,sans-serif'%20font-size='15'%20font-weight='700'%20fill='rgba(150,255,110,0.07)'%3EGABA3%3C/text%3E%3Ctext%20x='96'%20y='96'%20transform='rotate(-16%2096%2096)'%20font-family='Segoe%20UI,Arial,sans-serif'%20font-size='15'%20font-weight='700'%20fill='rgba(150,255,110,0.07)'%3EGABA3%3C/text%3E%3Ctext%20x='16'%20y='156'%20transform='rotate(-16%2016%20156)'%20font-family='Segoe%20UI,Arial,sans-serif'%20font-size='15'%20font-weight='700'%20fill='rgba(150,255,110,0.07)'%3EGABA3%3C/text%3E%3C/svg%3E");
  background-repeat:repeat;background-size:190px 190px;padding:11px!important}
.gaming-page.gaming-normal .gaming-chat .gaming-message{background:transparent!important;padding:0!important;margin:0 0 9px!important}
.gaming-page.gaming-normal .gaming-chat .gaming-message b{color:#8fff67!important;font-size:10px!important}
.gaming-page.gaming-normal .gaming-chat .gaming-message span{color:#dce9d9!important;font-size:11px!important;line-height:1.35}
.gaming-page.gaming-normal .gaming-chat .gaming-message time{color:#8aa58d!important;font-size:9px!important}
.gaming-page.gaming-normal .gaming-chat form{padding:9px!important;border-top:1px solid #ffffff12!important;background:transparent!important}
.gaming-page.gaming-normal .gaming-chat input{background:#0b130c!important;border:1px solid #ffffff1c!important;border-radius:9px!important;color:#fff!important;font-size:11px!important}
.gaming-page.gaming-normal .gaming-chat input:focus{border-color:#72e854!important;outline:none}
.gaming-page.gaming-normal .gaming-owner-avatar{width:72px;height:72px;border-color:#f7bc22;background:#101914;font-size:24px}
.gaming-page.gaming-normal .gaming-profile b{font-size:clamp(22px,3vw,34px)}
.gaming-page.gaming-normal .gaming-profile small{font-size:17px;color:#fff;max-width:680px}
.gaming-page.gaming-normal #gaming-status,
.gaming-page.gaming-normal #gaming-viewers{display:none}
.gaming-page.gaming-normal .gaming-owner-menu-toggle{font-size:30px;line-height:1;background:transparent!important;border:0!important;color:#fff!important}
/* Dois painéis fixos, sempre visíveis, igual às outras salas (comércio,
   criador de conteúdo): vídeos de um lado, chat do outro — nunca um por
   cima escondendo o outro. Só na versão web — a versão móvel é totalmente
   diferente e continua com o próprio layout, sem mexer aqui. Por isso vai
   dentro de min-width:851px: assim nenhuma guerra de especificidade de
   CSS pode fazer isso vazar pro celular sem querer. */
@media(min-width:851px){.gaming-page.gaming-normal .gaming-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:16px;max-width:1520px;margin:auto;padding:0;align-items:stretch}
.gaming-page.gaming-normal .gaming-chat{display:flex!important;position:static!important;inset:auto!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;z-index:auto;width:100%!important;height:100%!important;min-height:520px!important;max-height:none!important;margin:0!important;border:1px solid #315c2b!important;border-radius:16px!important;background:#09140cf8!important;box-shadow:0 20px 60px #000b}}
.gaming-page.gaming-normal .gaming-stage{position:relative;padding:0;overflow:hidden;border:1px solid #594426;border-radius:28px;background:#000}
.gaming-page.gaming-normal .gaming-normal-player{height:min(calc(100dvh - 180px),900px);min-height:520px;background:#000}
.gaming-page.gaming-normal .gaming-video-host{background:#000}
.gaming-page.gaming-normal .gaming-video-host>span,
.gaming-page.gaming-normal .gaming-video-host h1,
.gaming-page.gaming-normal .gaming-video-host p{display:none}
/* Fileira horizontal, madeira escura, embaixo do vídeo — igual à sala do
   criador de conteúdo. Só o glifo, sem caixa nem legenda. */
.gaming-page.gaming-normal .gaming-actions.gaming-normal-actions{position:static!important;display:flex!important;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin:14px 0 0;padding:10px 14px!important;border:1px solid #2a2015;border-radius:16px;background:linear-gradient(180deg, rgba(4,6,4,.32), rgba(4,6,4,.42)),url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;transform:none;max-width:none;overflow:visible}
.gaming-page.gaming-normal .gaming-normal-actions button{width:48px;height:48px;min-height:0;display:grid;place-items:center;border:0!important;border-radius:12px!important;background:transparent!important;color:#cfe8c9!important;font-size:22px;padding:0!important;text-shadow:none;box-shadow:none}
.gaming-page.gaming-normal .gaming-normal-actions button[hidden]{display:none!important}
.gaming-page.gaming-normal .gaming-normal-actions button:hover{color:#fff!important;background:rgba(255,255,255,.08)!important}
#gaming-reaction.active,#gaming-reaction-desktop.active{color:#ff5c7a!important}
.gaming-page.gaming-normal .gaming-normal-actions button small{display:none}
.gaming-page.gaming-normal .gaming-owner-menu{top:12px;right:12px;bottom:12px;max-height:none;border-radius:22px}
.gaming-brand:has(img.marca-icono){gap:5px;align-items:center}
@media(max-width:700px){.gaming-brand:has(img.marca-icono){gap:4px}}
/* Gravar é recurso só da versão web (no celular quem grava é o próprio
   Android) — no cabeçalho apertado do celular esse ícone só disputava
   espaço com o nome da sala sem servir pra nada. */
@media(max-width:850px){#gaming-record-toggle{display:none!important}
/* Sem espaço pra tudo no cabeçalho estreito do celular — estatísticas
   (só o dono vê) cedem lugar pro nome da sala, que é o que importa aqui. */
#gaming-stats{display:none!important}}
/* Ao vivo no celular, tudo some (o jogo ocupa a tela inteira) — só fica
   essa bolinha da marca GABA3, arrastável, no canto onde ficava a casinha
   de início, mostrando em letra pequena quantas pessoas estão assistindo
   agora. Não abre mais chat nenhum (não existe chat ao vivo no celular). */
.gaming-page.gaming-normal.gaming-live-active .gaming-mobile-bubble{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:0;
  left:max(8px,env(safe-area-inset-left,8px))!important;top:max(8px,env(safe-area-inset-top,8px))!important;right:auto!important;bottom:auto!important;
  width:30px!important;height:30px!important;padding:0!important;cursor:grab}
.gaming-page.gaming-normal.gaming-live-active .gaming-mobile-bubble img{width:15px!important;height:15px!important}
.gaming-page.gaming-normal.gaming-live-active .gaming-mobile-bubble small{color:#eaffdf;font-size:7px;font-weight:800;line-height:1}
/* Deitado (a maioria dos jogos tipo Free Fire se joga assim), a bolinha
   fica ainda mais discreta, num canto que não atrapalha o polegar. */
@media(orientation:landscape) and (max-width:850px){.gaming-page.gaming-normal.gaming-live-active .gaming-mobile-bubble{width:26px!important;height:26px!important}
.gaming-page.gaming-normal.gaming-live-active .gaming-mobile-bubble img{width:13px!important;height:13px!important}
.gaming-page.gaming-normal.gaming-live-active .gaming-mobile-bubble small{font-size:6px}}
/* Celular: comentários é um ícone que abre uma gaveta por cima do vídeo
   (igual às salas de vídeos curtos) — não um painel permanente, isso é só
   pra web. Durante uma transmissão ao vivo não existe chat nenhum aqui: o
   jogo ocupa a tela inteira, só ícones, sem conversa (regra colocada por
   último de propósito pra vencer qualquer regra antiga de celular). */
.gaming-page.gaming-normal .gaming-mobile-only{display:none!important}
.gaming-chat-backdrop{position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.5);display:none}
.gaming-chat-backdrop[hidden]{display:none!important}
/* Base incondicional (sem media query) — sem isso, no computador (que
   nunca entra no @media abaixo) esses elementos caem no display padrão
   do navegador (nav/li/button viram visíveis sozinhos). Só existem no
   celular; o @media abaixo decide QUANDO aparecem lá dentro. */
.gaming-panel-tabs,
.gaming-reactions-row,
.gaming-mobile-bubble-dot{display:none}
/* Wrapper do chat + cartões da direita: no celular é "invisível"
   (display:contents), o chat continua filho direto do body pra sua
   posição fixa funcionar normalmente; no computador vira uma coluna de
   verdade, esticada (ver regra dentro do @media abaixo). */
.gaming-right-column{display:contents}
.gaming-header button:hover,
.gaming-actions button:hover,
.gaming-owner button:hover,
.gaming-chat form button:hover{transform:translateY(-1px);filter:brightness(1.06);box-shadow:0 12px 28px rgba(85,201,0,.32)!important}
@media(max-width:850px){.gaming-header>span:not(.gaming-live){display:none}.gaming-brand b{display:none}.gaming-header{padding:0 14px;gap:10px;min-height:58px;padding:calc(env(safe-area-inset-top) + 6px) 10px 7px;gap:7px;flex-wrap:wrap}.gaming-header .gaming-brand b{font-size:16px}.gaming-header .gaming-brand img{width:35px!important;height:35px!important}
/* Bug real de auditoria (2026-09-13, celular): esta regra antiga (pensada
   pro bloco de identidade, quando ele ainda era um <div> puro) também
   batia sem querer no .gaba3-ad-slot (também é um <div> filho direto de
   .gaming-header) — o slot de publicidade ganhava flex:1 igual ao nome do
   jogador e disputava espaço com ele, espremendo o nome pra "a…". Excluído
   explicitamente aqui. */
.gaming-header>div:not(.gaba3-ad-slot){min-width:0;flex:1}.gaming-header>div strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Mesmo bug: sem nenhuma regra própria pro mobile, o slot de publicidade
   tentava viver espremido dentro da fileira de identidade, sobrepondo os
   ícones ao lado. Tentei jogar pra própria linha (flex:0 0 100%), mas o
   cabeçalho compacto (.gaming-normal-header) força flex-wrap:nowrap mais
   embaixo no arquivo — nunca quebra linha. Nessa fileira única e compacta
   não sobra espaço decente pra um cartão de anúncio; escondido aqui, mesmo
   critério já usado pros ícones "só desktop" desta mesma cabeceira. */
.gaming-header .gaba3-ad-slot{display:none!important}.gaming-header #gaming-connection,
.gaming-header #gaming-viewers{display:none}.gaming-header button{padding:8px 9px;font-size:12px}.gaming-header #gaming-fullscreen{margin-left:auto}.gaming-layout{grid-template-columns:1fr;padding:12px;gap:0;padding:0;display:block}.gaming-stage{padding:0;border:0;border-radius:0;background:#050a10}.gaming-stream{min-height:45vh;min-height:calc(100dvh - 210px);border-radius:0}.gaming-stream>div{padding:22px 18px}.gaming-stream h1{font-size:clamp(24px,8vw,36px)}.gaming-actions{position:relative;padding:11px 12px 16px;justify-content:center;background:#07111f}.gaming-actions button{padding:9px 10px;font-size:12px}.gaming-chat{position:fixed;z-index:20;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));min-height:0;max-height:60dvh;border-radius:14px;background:#081421f5;box-shadow:0 12px 40px #000b;transition:transform .22s ease}.gaming-chat.collapsed{display:block;transform:translateY(calc(100% - 49px));min-height:0}.gaming-chat header{padding:11px 12px}.gaming-chat header button{display:block}.gaming-chat .gaming-messages{max-height:30dvh}.gaming-chat.collapsed .gaming-participants{display:none}.gaming-chat form{padding-bottom:8px}.gaming-bubble{pointer-events:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;border:1px solid #365068;border-radius:999px;background:#102237ee;color:#fff;padding:8px 12px;animation:gamingBubble .2s ease-out}.gaming-owner{margin:12px;padding:12px}.gaming-notice{top:calc(env(safe-area-inset-top) + 72px)}.gaming-page .navegacao-global-sala{display:none!important}.gaming-page{padding-bottom:env(safe-area-inset-bottom);min-height:100dvh;overflow:hidden;background:#050a10;padding:0!important}.gaming-page .gaming-header{display:none!important}.gaming-page .gaming-layout{display:block;min-height:100dvh;padding:0!important}.gaming-page .gaming-stage{position:relative;width:100%;height:100dvh;min-height:100dvh;padding:0!important;border:0!important;border-radius:0!important;background:#050a10!important;overflow:hidden}.gaming-page .gaming-stream{width:100%;height:100%;min-height:100dvh!important;border:0!important;border-radius:0!important;background:radial-gradient(circle at 50% 42%,#174d78,#07111f 70%)!important}.gaming-page .gaming-stream>div{max-width:min(76vw,430px);padding:18px;text-shadow:0 2px 9px #000}.gaming-page .gaming-stream h1{font-size:clamp(20px,6vw,32px)}.gaming-page .gaming-stream p{font-size:14px}.gaming-page #gaming-stage-status{font-size:10px!important;padding:4px 8px!important}.gaming-page .gaming-actions{display:none!important}.gaming-page .gaming-chat{position:fixed!important;z-index:32;inset:auto 8px max(8px,env(safe-area-inset-bottom,8px)) 8px!important;display:none!important;flex-direction:column;height:min(58dvh,520px)!important;max-height:min(58dvh,520px)!important;margin:0!important;padding:12px!important;border:1px solid rgba(134,255,92,.42)!important;border-radius:16px!important;background:rgba(5,17,10,.97)!important;box-shadow:0 18px 42px #000c;transform:none!important}.gaming-page .gaming-chat.mobile-open{display:flex!important}.gaming-page .gaming-chat header{flex:none;padding:0 0 10px!important}.gaming-page .gaming-chat header button{display:grid!important;place-items:center;width:34px!important;height:34px!important;padding:0!important;border:1px solid #ffffff22!important;border-radius:50%!important;color:#eaffdf!important}.gaming-page .gaming-chat header button[hidden]{display:none!important}.gaming-page .gaming-participants{flex:none;max-height:44px;margin:7px 0!important}.gaming-page .gaming-messages{flex:1 1 auto!important;min-height:0!important;padding-right:2px!important}.gaming-page .gaming-chat form{display:flex!important;flex:none!important;padding-top:9px!important}.gaming-page .gaming-chat>small{display:none!important}.gaming-page .gaming-mobile-bubble{position:fixed;z-index:31;right:max(14px,env(safe-area-inset-right,14px));bottom:max(18px,env(safe-area-inset-bottom,18px));display:grid;place-items:center;width:58px;height:58px;margin:0;padding:0;border:2px solid #b8ff93;border-radius:50%;background:#08170ce8;box-shadow:0 8px 26px #000c,0 0 0 4px rgba(85,201,42,.2);touch-action:none;cursor:grab}.gaming-page .gaming-mobile-bubble:active{cursor:grabbing;transform:scale(.96)}.gaming-page .gaming-mobile-bubble img{width:42px;height:42px;object-fit:contain;pointer-events:none}.gaming-page .gaming-notice{top:max(12px,env(safe-area-inset-top,12px));left:50%;max-width:calc(100vw - 32px);font-size:12px}.gaming-page.gaming-mobile-focus .gaming-stream>div{display:grid}.gaming-page.gaming-mobile-focus .gaming-mobile-bubble{opacity:.92}.gaming-normal-header .gaming-brand img{width:38px!important;height:38px!important}.gaming-profile{gap:7px}.gaming-owner-avatar{width:36px;height:36px;font-size:16px}.gaming-profile b{font-size:16px}.gaming-profile small{max-width:39vw;font-size:11px}.gaming-normal-header #gaming-viewers{display:none}.gaming-normal-header .gaming-live{margin-left:auto;font-size:10px}.gaming-normal-header .gaming-leave{padding:7px!important}.gaming-normal .gaming-stage{border:0;border-radius:0}.gaming-normal-player{min-height:min(66dvh,560px);height:min(66dvh,560px)}.gaming-video-host{min-height:inherit}.gaming-normal-actions{right:10px;top:auto;bottom:14px;transform:none;grid-auto-flow:column;grid-template-columns:repeat(5,1fr);max-width:calc(100% - 20px);overflow-x:auto}.gaming-normal-actions button{width:50px;min-height:50px;flex:0 0 50px}.gaming-normal-actions .gaming-go-live{min-width:115px}.gaming-normal .gaming-chat{position:relative!important;display:flex!important;left:auto!important;right:auto!important;bottom:auto!important;inset:auto!important;height:min(52dvh,460px)!important;max-height:none!important;margin:0!important;border-radius:0!important;box-shadow:none!important;transform:none!important}.gaming-normal .gaming-chat .gaming-messages{max-height:none!important}.gaming-owner-menu{top:calc(env(safe-area-inset-top) + 62px);right:8px;width:calc(100vw - 16px);max-height:calc(100dvh - 78px)}.gaming-page.gaming-live-active{overflow:hidden!important}.gaming-page.gaming-live-active .gaming-chat{position:fixed!important;z-index:32;inset:auto 8px max(8px,env(safe-area-inset-bottom)) 8px!important;display:none!important;height:min(58dvh,520px)!important;border:1px solid rgba(134,255,92,.42)!important;border-radius:16px!important;box-shadow:0 18px 42px #000c}.gaming-page.gaming-live-active .gaming-chat.mobile-open{display:flex!important}.gaming-page.gaming-live-active .gaming-mobile-bubble{display:grid!important}.gaming-page.gaming-live-active .gaming-published-video{object-fit:contain}.gaming-page.gaming-mobile-focus .gaming-normal-player{height:100dvh;min-height:100dvh}.gaming-page.gaming-normal .gaming-actions.gaming-normal-actions{display:grid!important}.gaming-page.gaming-normal .gaming-mobile-bubble{display:none!important}.gaming-arrow{width:38px;height:38px}.gaming-page.gaming-normal{overflow:auto;padding-bottom:env(safe-area-inset-bottom)!important;padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important}.gaming-page.gaming-normal .gaming-normal-header{display:flex!important;position:sticky;min-height:58px;padding:calc(env(safe-area-inset-top) + 5px) 12px 7px;gap:8px;min-height:104px!important;margin-bottom:8px;padding:10px 16px!important;border-radius:25px;gap:10px;flex-wrap:nowrap}.gaming-page.gaming-normal .gaming-owner-avatar{width:60px;height:60px;font-size:20px}.gaming-page.gaming-normal .gaming-leave{display:none}.gaming-page.gaming-normal .gaming-layout{display:block;min-height:0;padding:0;display:block!important;height:auto!important;min-height:0!important;display:block!important;padding:0!important}.gaming-page.gaming-normal .gaming-stage{position:relative!important;width:100%!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#071009!important;position:relative!important;border-radius:25px!important;overflow:hidden!important}.gaming-page.gaming-normal .gaming-normal-player{width:100%!important;height:min(66dvh,560px)!important;min-height:min(66dvh,560px)!important;border-radius:0!important;height:calc(100dvh - 135px - env(safe-area-inset-bottom))!important;min-height:420px!important;border-radius:25px!important}.gaming-page.gaming-normal .gaming-normal-actions{gap:4px;padding:8px}.gaming-page.gaming-normal .gaming-normal-actions button{width:42px;height:42px;font-size:20px;flex:none}.gaming-page.gaming-normal .gaming-chat{position:relative!important;display:flex!important;z-index:auto!important;inset:auto!important;width:auto!important;height:min(52dvh,460px)!important;min-height:0!important;max-height:none!important;padding:14px!important;background:#09140c!important;top:auto;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));left:10px!important;width:auto;height:min(58dvh,520px)!important}.gaming-page.gaming-normal .gaming-owner-menu{top:calc(8px + env(safe-area-inset-top));right:8px;bottom:calc(8px + env(safe-area-inset-bottom));width:calc(100vw - 16px);max-height:none}.gaming-page.gaming-normal.gaming-live-active{padding:0!important}.gaming-page.gaming-normal.gaming-live-active .gaming-chat.mobile-open{display:flex!important}.gaming-page.gaming-normal .gaming-mobile-only{display:grid!important}/* Fora do vivo: "Comentários" continua sendo uma gaveta que sobe de
   baixo, tela toda (like antes). Ao vivo: vira painel lateral pela
   direita, ~1/3 da tela, o jogo continua visível do lado esquerdo — são
   dois comportamentos diferentes da mesma caixa, por isso duas regras. */
.gaming-page.gaming-normal .gaming-chat{position:fixed!important;z-index:60;inset:auto 0 0 0!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;
  width:100%!important;height:min(62dvh,520px)!important;max-height:min(62dvh,520px)!important;min-height:0!important;
  margin:0!important;border-radius:16px 16px 0 0!important;box-shadow:0 -18px 40px #000c!important;
  display:flex!important;flex-direction:column;transform:translateY(100%)!important;transition:transform .28s ease}.gaming-page.gaming-normal .gaming-chat.mobile-chat-open{transform:translateY(0)!important}
/* Dono pediu: a barra de escrever fica no limite de verdade da tela (o
   que o Android deixa), sem caixa vazia sobrando embaixo dela — o
   padding do painel criava essa folga. */
.gaming-page.gaming-normal .gaming-chat{padding-bottom:0!important}
.gaming-page.gaming-normal .gaming-chat form{padding-bottom:max(10px,env(safe-area-inset-bottom))!important}
/* A cinta corrida (.gaming-ticker, fica presa no fim do palco de vídeo,
   dentro do fluxo normal da página) e o painel de chat fixo (mobile,
   abre por cima de tudo) acabam ocupando a MESMA faixa da tela quando
   o chat está aberto — sem um z-index alto de verdade aqui, a cinta
   aparecia por cima da barra de escrever. O chat sempre vence. */
.gaming-page.gaming-normal .gaming-chat.mobile-chat-open{z-index:120!important}
/* Ao vivo no CELULAR de quem está JOGANDO (nunca de quem só assiste):
   a tela do GABA3 nesse aparelho não mostra NADA da plataforma — nem
   cabecera, nem o próprio vídeo/palco do jogo, nada — só a bolinha. O
   jogo de verdade roda no aplicativo do jogo, fora do GABA3; a bolinha
   é só o indicador de "você está transmitindo pro GABA" (notificações,
   cronômetro, finalizar). Quem ENTRA PRA ASSISTIR uma transmissão vê a
   sala normal inteira — cabecera, seguir/curtir/comentar, cinta,
   contagem de espectadores, igual Kick/Twitch pro espectador (achado
   real: a 1ª versão desta regra usava só `.gaming-live-active`, que é
   verdadeiro pra QUALQUER pessoa na sala ao vivo, dono ou visitante —
   escondia a cabecera de quem só queria assistir também). Por isso a
   classe extra `.gaming-mobile-focus` aqui: o JS só adiciona ela na
   sessão de quem é dono E está jogando (`enterMobileLive()`), nunca em
   quem só está vendo. `.gaming-normal` está presente tanto no mobile
   quanto no desktop (é o template compartilhado, quem muda é só a
   media query) — por isso todo este bloco fica só dentro de
   max-width:850px. No desktop o vivo continua mostrando vídeo +
   comentários ao lado, tanto pro dono quanto pra quem assiste. */
@media(max-width:850px){
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-normal-header,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-notice,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-content-tabs,
.gaming-page.gaming-normal.gaming-mobile-focus #gaming-content-panel-videos,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-side-panel,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-games-strip,
.gaming-page.gaming-normal.gaming-mobile-focus .gaba3-ad-slot,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-ticker,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-published,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-stream,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-stage{display:none!important}
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-layout,
.gaming-page.gaming-normal.gaming-mobile-focus .gaming-desktop-body{height:100dvh!important;min-height:0!important;padding:0!important;margin:0!important}
.gaming-page.gaming-normal.gaming-mobile-focus{padding:0!important;background:#050a10!important}
/* `.gaming-normal-actions` (curtir/seguir/comentar/compartilhar/
   denunciar) fica escondida por padrão no mobile fora do vivo (regra
   `.gaming-page.gaming-normal .gaming-actions.gaming-normal-actions`,
   mais acima no arquivo — o mobile normal usa o bloco de perfil +
   reações rápidas em vez dela). Ao vivo, pra quem só assiste, o dono
   pediu esses ícones de volta — nunca pra quem está jogando
   (`.gaming-mobile-focus`, sala inteira escondida de qualquer jeito). */
.gaming-page.gaming-normal.gaming-live-active:not(.gaming-mobile-focus) .gaming-actions.gaming-normal-actions{display:grid!important}
}
/* Dono foi claro: ícone de emoji e de enviar são só o ícone, nunca uma
   caixa/botão por fora — a regra genérica ".gaming-chat form button"
   (mais acima neste arquivo) dava fundo verde, padding e sombra pra
   QUALQUER botão dentro do formulário do chat, sem exceção pra esses
   dois. IDs pra garantir que ganha de verdade, sem depender de onde
   essa regra cai no arquivo. */
#gaming-emoji-toggle,
#gaming-send{background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;border:0!important}
/* Botão real de finalizar transmissão — alcançável tocando a bolinha
   flutuante (abre este painel), pedido explícito do dono. Vermelho de
   perigo, igual ao resto da plataforma pra ações que não têm volta. */
.gaming-end-live-btn{flex:0 0 auto;border:1px solid #ff3b4a!important;border-radius:8px!important;background:#3a0f14!important;color:#ffb3ba!important;font-weight:800!important;font-size:11.5px!important;padding:7px 10px!important;cursor:pointer;box-shadow:none!important}
.gaming-end-live-btn:hover{background:#5c1620!important}
.gaming-end-live-btn[hidden]{display:none!important}
/* Menuzinho da bolinha, ao vivo: NUNCA um painel/cabecera cobrindo o
   jogo — só duas linhas coladas nela mesma, some ao tocar fora. */
.gaming-bubble-menu{position:fixed;z-index:130;display:flex;flex-direction:column;gap:6px;width:190px;padding:8px;border-radius:12px;background:#0e1f11f2;border:1px solid #294d2f;box-shadow:0 12px 30px #000a}
.gaming-bubble-menu[hidden]{display:none!important}
.gaming-bubble-menu button{width:100%;border:1px solid #294d2f!important;border-radius:8px!important;background:#12291699!important;color:#dff5d8!important;font-weight:700!important;font-size:12.5px!important;padding:8px 10px!important;text-align:left;cursor:pointer;box-shadow:none!important}
.gaming-bubble-menu button:hover{background:#1c3a20!important}
.gaming-bubble-menu-title{font-size:11px;color:#8fae8f;text-transform:uppercase;letter-spacing:.05em;padding:0 2px}
.gaming-bubble-menu-stats{display:flex;justify-content:space-between;gap:4px;padding:2px 2px 4px;font-size:12px;color:#dff5d8}
.gaming-bubble-menu-stats span{display:flex;align-items:center;gap:3px}
.gaming-page.gaming-normal.gaming-live-active .gaming-chat{inset:0 0 0 auto!important;left:auto!important;right:0!important;bottom:0!important;top:0!important;
  width:min(340px,38vw)!important;height:100%!important;max-height:none!important;
  border-radius:0!important;box-shadow:-18px 0 40px #000c!important;
  transform:translateX(100%)!important}.gaming-page.gaming-normal.gaming-live-active .gaming-chat.mobile-chat-open{transform:translateX(0)!important}.gaming-chat-backdrop.open{display:block!important}/* Ao vivo, o painel (Personas/Chat) só existe enquanto a bolinha estiver
   aberta — fechado, o jogo recupera 100% da tela. Não existe mais "sem
   chat nenhum": agora é igual Twitch/Kick, um painel temporário. */
.gaming-page.gaming-normal.gaming-live-active #gaming-comments-toggle{display:none!important}.gaming-page.gaming-normal.gaming-live-active .gaming-chat:not(.mobile-chat-open){display:none!important}.gaming-page.gaming-normal.gaming-live-active .gaming-chat-backdrop:not(.open){display:none!important}/* A "alcinha" agora fica na borda esquerda do painel lateral — deslizar
   pra direita a partir dela fecha (em vez de deslizar pra baixo). */
.gaming-chat-handle{display:none}.gaming-page.gaming-normal.gaming-live-active .gaming-chat-handle{display:block!important;position:absolute;left:6px;top:50%;transform:translateY(-50%);width:4px;height:36px;border-radius:2px;background:#ffffff33}.gaming-panel-tabs{display:none}.gaming-page.gaming-normal.gaming-live-active .gaming-panel-tabs{display:flex!important;gap:8px;padding:10px 14px 6px!important;margin:0!important}.gaming-page.gaming-normal.gaming-live-active .gaming-panel-tabs button{flex:1;padding:7px;border:1px solid #294d2f!important;border-radius:999px!important;background:transparent!important;color:#9ab09b!important;font-size:12px;font-weight:800}.gaming-page.gaming-normal.gaming-live-active .gaming-panel-tabs button.active{background:#398815!important;border-color:#398815!important;color:#fff!important}.gaming-page.gaming-normal.gaming-live-active .gaming-chat[data-panel="personas"] .gaming-messages,
.gaming-page.gaming-normal.gaming-live-active .gaming-chat[data-panel="personas"] #gaming-form{display:none!important}.gaming-page.gaming-normal.gaming-live-active .gaming-chat[data-panel="chat"] .gaming-participants{display:none!important}/* Ponto de atividade na bolinha quando chega mensagem nova e o painel
   está fechado — só o ponto, sem número, como pedido. */
.gaming-mobile-bubble-dot{display:none;position:absolute;top:2px;right:2px;width:8px;height:8px;border-radius:50%;background:#ff3b4a;box-shadow:0 0 0 2px #08170c}.gaming-mobile-bubble-dot.show{display:block}/* Cabeçalho no celular — mesma textura de madeira real da marca (nunca
   cor chapada), só compacta; a identidade da sala mora aqui do lado das
   rayitas, o bloco de perfil abaixo só tem números e o botão ao vivo. */
.gaming-page.gaming-normal .gaming-normal-header{background:linear-gradient(180deg, rgba(20,12,4,.38), rgba(10,6,2,.58)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;border:0!important;border-bottom:2px solid #7A4E27!important;box-shadow:0 6px 16px #0007!important;min-height:56px!important;padding:8px 14px!important}
/* o dono: "sin estar al vivo, se tendría que ver similar" — a identidade
   (avatar+nome+selo+Seguir) e as estatísticas reais (real/curtidas/
   visitas) que já moram na cabecera do desktop passam a aparecer aqui
   também, em vez do bloco de perfil separado que existia antes. */
.gaming-page.gaming-normal .gaming-live,
.gaming-page.gaming-normal #gaming-viewers{display:none!important}/* Reações rápidas sobre o vídeo — não atrapalham, ficam num canto. */
.gaming-reactions-row{position:absolute;left:10px;bottom:10px;z-index:5;display:none;gap:6px}.gaming-page.gaming-normal.gaming-live-active .gaming-reactions-row{display:flex!important}.gaming-reactions-row button{width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:#00000066;font-size:16px;padding:0}.gaming-reaction-float{position:fixed;z-index:70;font-size:20px;pointer-events:none;animation:gamingReactionFloat 1s ease-out forwards}@keyframes gamingReactionFloat{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-60px);opacity:0}}/* Por último de propósito: ao vivo some tudo (perfil/abas/lista), mesmo
   que a pessoa tivesse ficado com a lista de vídeos aberta antes de
   começar a transmissão — precisa vencer aquela regra por especificidade
   empatada, então fica depois dela no arquivo. */
.gaming-page.gaming-normal.gaming-live-active .gaming-content-tabs,
.gaming-page.gaming-normal.gaming-live-active #gaming-content-panel-videos,
.gaming-page.gaming-normal.gaming-live-active .gaming-side-panel,
.gaming-page.gaming-normal.gaming-live-active .gaming-games-strip,
.gaming-page.gaming-normal.gaming-live-active .gaba3-ad-slot{display:none!important}.gaming-page.gaming-normal.gaming-live-active .gaming-stream{display:block!important}/* A identidade (foto + nome) é configurável pelas três rayitas — por
   isso mora ao lado delas, no canto direito da cabecera, pequena. Volta
   e início ficam à esquerda. */
.gaming-page.gaming-normal .gaming-leave{order:0}.gaming-page.gaming-normal .gaming-brand{order:1}.gaming-page.gaming-normal .gaming-profile{flex:1;display:flex!important;order:2;margin-left:auto!important;flex:0 1 auto!important;max-width:52vw;gap:6px}.gaming-page.gaming-normal .gaming-profile .gaming-owner-avatar{width:28px;height:28px;font-size:13px}.gaming-page.gaming-normal .gaming-profile b{font-size:25px;font-size:13px}.gaming-page.gaming-normal .gaming-profile small{display:block!important;max-width:calc(100vw - 160px);font-size:14px;display:none!important}.gaming-page.gaming-normal .gaming-owner-menu-toggle{order:3}
/* Marcação fina em madeira (igual à versão web) emoldurando a área dos
   vídeos, da cabecera até o fim real da tela do celular — não só até
   onde o conteúdo acaba. */
.gaming-page.gaming-normal:not(.gaming-live-active) .gaming-stage{border-left:1px solid #7A4E27!important;border-right:1px solid #7A4E27!important;border-bottom:1px solid #7A4E27!important;border-radius:0 0 16px 16px!important;min-height:0!important;display:flex!important;flex-direction:column!important}/* A moldura precisa terminar exatamente no fim real da tela — em vez de
   adivinhar em px a altura real da cabecera (que varia por causa do
   notch/safe-area), deixamos o flexbox calcular o espaço restante
   sozinho, sem chute. */
.gaming-page.gaming-normal:not(.gaming-live-active){display:flex!important;flex-direction:column;min-height:100dvh;padding-top:0!important}.gaming-page.gaming-normal:not(.gaming-live-active) .gaming-normal-header{margin:0!important;border-radius:0!important;flex:0 0 auto}.gaming-page.gaming-normal:not(.gaming-live-active) .gaming-desktop-body{flex:1;display:flex!important;flex-direction:column;min-height:0}.gaming-page.gaming-normal:not(.gaming-live-active) .gaming-layout{flex:1;display:flex!important;flex-direction:column;min-height:0}.gaming-page.gaming-normal:not(.gaming-live-active) .gaming-stage{flex:1}/* Faixa deslizante — DENTRO da própria moldura de madeira agora (não
   mais um irmão separado), grudada no fim dela via margin-top:auto.
   Assim ela literalmente não pode ficar "fora da caixa": está dentro do
   mesmo elemento que tem a borda e o cantinho arredondado. */
.gaming-page.gaming-normal .gaming-ticker{display:block!important;flex:0 0 auto;margin-top:auto!important;z-index:5;height:30px;overflow:hidden;border-radius:0 0 15px 15px;background:linear-gradient(180deg, rgba(20,12,4,.55), rgba(10,6,2,.75)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;border-top:2px solid #7A4E27}.gaming-ticker-track{display:flex;width:max-content;height:30px;align-items:center;gap:60px;white-space:nowrap;animation:gamingTickerScroll 16s linear infinite}.gaming-ticker-track span{color:#ffd75e;font-size:12px;font-weight:700;letter-spacing:.3px}@keyframes gamingTickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}.gaming-page #gaming-mobile-focus{display:inline-flex;align-items:center;justify-content:center;margin-top:16px;padding:9px 13px;border:1px solid #8dff60;border-radius:999px;background:#07180de8;color:#eaffdf;font:800 12px/1 Inter,Arial,sans-serif;box-shadow:0 8px 20px #0009;border:1px solid #8dff60!important;
    background:#07180de8!important;
    color:#eaffdf!important;
    box-shadow:0 8px 20px #0009!important}}
.gaming-page{background-color:#050a10}
/* ============================================================
   REDESENHO WEB — especificação do dono (madeira/verde/preto).
   Paleta oficial:
   madeira escura #3B2A1A · madeira média #5A3A1F · madeira clara #7A4E27
   verde principal #2ECC71 · verde escuro #1B7F3F · verde neon #32FF6A
   preto fundo #0D0D0D · cinza texto #E0E0E0
   Só versão web (min-width:851px) — celular não muda em nada.
   ============================================================ */
.gaming-desktop-only{display:none}
@media(min-width:851px){.gaming-desktop-only{display:flex}/* Sem rolagem vertical nenhuma no desktop (pedido do dono, mesmo truque
   já usado na sala de criador de conteúdo) — corpo vira coluna flex de
   100dvh, o cabeçalho ocupa só o que precisa, e `.gaming-desktop-body`
   herda EXATAMENTE o espaço que sobra. Sem número mágico de calc(): se o
   cabeçalho mudar de altura no futuro, isso continua funcionando sozinho. */
body.gaming-page.gaming-normal{background:#0D0D0D;font-family:Poppins,Inter,Montserrat,Arial,sans-serif;font-size:14px;color:#E0E0E0;display:flex!important;flex-direction:column;height:100dvh;overflow:hidden}/* Cabeçalho */
.gaming-page.gaming-normal .gaming-normal-header{flex:0 0 auto;display:flex!important;align-items:center;gap:14px;max-width:none;margin:0;height:auto;min-height:0;padding:12px 22px;border-radius:0 0 22px 22px;overflow:hidden;border:0;border-bottom:3px solid #7A4E27;background:linear-gradient(180deg, rgba(20,12,4,.32), rgba(10,6,2,.5)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;box-shadow:inset 0 -2px #00000055,0 10px 24px #0007}/* Nada em caixa — todo ícone do cabeçalho é solto, branco, só reage no
   hover (leve zoom + brilho verde), igual pedido explicitamente. */
.gaming-page.gaming-normal .gaming-normal-header button,
.gaming-page.gaming-normal .gaming-normal-header a.gaming-brand{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}.gaming-page.gaming-normal .gd-hamburger,
.gaming-page.gaming-normal .gd-subscribe,
.gaming-page.gaming-normal .gd-share,
.gaming-page.gaming-normal .gd-icon-btn,
.gaming-page.gaming-normal .gaming-header-record,
.gaming-page.gaming-normal .gaming-go-live,
.gaming-page.gaming-normal .gaming-owner-menu-toggle{display:grid!important;place-items:center;width:34px;height:34px;padding:0!important;color:#fff!important;font-size:16px;box-shadow:none!important;transition:transform .18s ease,color .18s ease}.gaming-page.gaming-normal .gd-hamburger[hidden],
.gaming-page.gaming-normal .gd-subscribe[hidden],
.gaming-page.gaming-normal .gd-share[hidden],
.gaming-page.gaming-normal .gd-icon-btn[hidden],
.gaming-page.gaming-normal .gaming-header-record[hidden],
.gaming-page.gaming-normal .gaming-go-live[hidden],
.gaming-page.gaming-normal .gaming-owner-menu-toggle[hidden]{display:none!important}.gd-hamburger svg,.gd-subscribe svg,.gd-share svg,.gd-icon-btn svg,
.gaming-header-record svg,.gaming-go-live svg,.gaming-owner-menu-toggle svg{width:20px;height:20px}.gaming-page.gaming-normal .gd-hamburger:hover,
.gaming-page.gaming-normal .gd-subscribe:hover,
.gaming-page.gaming-normal .gd-share:hover,
.gaming-page.gaming-normal .gd-icon-btn:hover,
.gaming-page.gaming-normal .gaming-header-record:hover,
.gaming-page.gaming-normal .gaming-go-live:hover,
.gaming-page.gaming-normal .gaming-owner-menu-toggle:hover{color:#32FF6A!important;transform:translateY(-2px) scale(1.08)}/* Curtir subiu pro cabeçalho — precisa de largura livre pro número do
   lado, os outros ícones soltos (34px) não têm texto junto. */
.gaming-page.gaming-normal #gaming-reaction-desktop{width:auto!important;padding:0 8px!important;gap:4px}/* Tela cheia mora dentro da tela do vídeo (canto superior direito), não
   no cabeçalho da sala — é um controle do player, não da sala. */
.gaming-page.gaming-normal #gaming-stream .gaming-stage-fullscreen{position:absolute!important;top:10px;right:10px;z-index:6;width:22px!important;height:22px!important;padding:0!important;border-radius:0!important;background:transparent!important;color:#fff!important;filter:drop-shadow(0 1px 3px rgba(0,0,0,.85))}.gaming-page.gaming-normal #gaming-stream .gaming-stage-fullscreen [data-morph-icone]{width:16px;height:16px}.gaming-page.gaming-normal #gaming-stream .gaming-stage-fullscreen:hover{color:#32FF6A!important}/* Título do vídeo tocando agora — canto oposto ao de tela cheia, longe
   dos controles nativos do <video> que ficam embaixo. */
.gaming-page.gaming-normal #gaming-stream .gaming-active-title{position:absolute;top:14px;left:14px;z-index:6;max-width:65%;padding:6px 12px;border-radius:8px;background:#00000099;color:#fff;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gaming-page.gaming-normal.gaming-live-active .gaming-normal-header .gaming-go-live{color:#ff5b6b!important}/* Uma casinha só (a da barra lateral) — a do cabeçalho fica escondida
   aqui, senão fica duplicado. */
.gaming-page.gaming-normal .gaming-brand{display:none!important}.gaming-page.gaming-normal .gaming-profile{flex:0 0 auto;gap:12px}.gaming-page.gaming-normal .gaming-owner-avatar{width:44px;height:44px;border-color:#32FF6A}.gaming-page.gaming-normal .gaming-profile b{font-size:18px;font-weight:700;color:#fff;display:inline-flex;align-items:center;gap:6px}.gaming-page.gaming-normal .gaming-profile small{display:block;font-size:12.5px;color:#E0E0E0cc}.gaming-page.gaming-normal #gaming-status{display:inline-flex!important;align-items:center;gap:6px;margin:0;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:700;background:#c0202033;color:#ff6b76;border:1px solid #e0505c}.gaming-page.gaming-normal #gaming-status[data-status="LIVE"]{background:#c02020;color:#fff}/* "Assistindo" em texto some — já tem o ícone do olho (nas estatísticas)
   mostrando a mesma informação, não precisa repetir. */
.gaming-page.gaming-normal #gaming-viewers{display:none!important}.gaming-page.gaming-normal #gaming-follow{order:1;margin-left:auto;background:#2ECC71!important;border:none!important;color:#0D0D0D!important;border-radius:8px;padding:9px 18px!important;font-weight:700;font-size:13.5px}.gaming-page.gaming-normal #gaming-follow:hover{background:#32FF6A!important}/* Olho (online) + gráfico (visitas) ficam soltos, brancos, no lugar onde
   estava o texto "assistindo". */
.gaming-page.gaming-normal #gaming-stats{order:2;gap:14px}.gaming-page.gaming-normal #gaming-stats span,.gaming-page.gaming-normal #gaming-stats button{display:inline-flex!important;align-items:center;gap:5px;background:transparent!important;border:0!important;padding:0!important;color:#fff!important;font-size:13px;font-weight:700;cursor:default}.gaming-page.gaming-normal #gaming-reaction-desktop{cursor:pointer!important}.gaming-page.gaming-normal #gaming-stats svg{width:18px;height:18px;color:#fff}/* Corpo: sidebar + centro + painel direito */
/* Uma linha só, três colunas, todas esticadas pra mesma altura (a da
   coluna mais alta) — sidebar, vídeo e coluna direita terminam sempre no
   mesmo nível embaixo, sem escada. */
/* Centro cresce e empurra pros dois lados — só as bordas finais (8px)
   contam, sem uma faixa vazia grande sobrando nas pontas da tela. */
/* Pedido do dono: tela principal colada no painel esquerdo e sem
   separação do lado direito (chat) — grid sem gap e sem padding
   horizontal, só o vertical (respiro do cabeçalho/cinta). */
.gaming-page.gaming-normal{padding:0}.gaming-desktop-body{flex:1 1 auto!important;min-height:0!important;height:auto!important;overflow:hidden;display:grid;grid-template-columns:64px minmax(0,1fr) 340px;grid-template-rows:minmax(0,1fr);gap:0;max-width:none;margin:0;padding:0;align-items:stretch}.gaming-desktop-body .gaming-layout{grid-column:2;height:100%;min-height:0}.gaming-desktop-body .gaming-right-column{grid-column:3;display:flex;flex-direction:column;height:100%;min-height:0}.gaming-desktop-body .gaming-right-column #gaming-chat{flex:1 1 auto;min-height:0!important;height:auto!important}.gaming-page.gaming-normal .gaming-layout{display:block;max-width:none;margin:0;padding:0}/* Ao vivo OU no botão de "tela cheia" (Ronda 14 — o botão agora usa a
   MESMA classe/layout, não fica só na Fullscreen API do navegador, que
   pode ser bloqueada dependendo do contexto): some a barra lateral
   (ícones + bolinhas de quem você segue), some as abas Vídeos/Shorts/Em
   vivo/Playlists/Acerca de, some a grade de vídeos publicados, some o
   cartão "Deixe seu comentário" — só sobra o vídeo (ocupando tudo à
   esquerda) e o chat ao vivo (ocupando tudo à direita). Como o vídeo e
   o chat já são flex:1 dentro das suas colunas (Ronda 8/9), eles
   crescem sozinhos pra preencher o espaço que os elementos escondidos
   deixaram — não precisa recalcular altura nenhuma aqui. */
.gaming-page.gaming-normal.gaming-live-active .gaming-desktop-body{grid-template-columns:minmax(0,1fr) 340px!important}/* A sidebar continua com grid-column:1 fixo no HTML/CSS de sempre — como
   ela some (display:none) mas a grade encolheu de 3 pra 2 colunas, o
   vídeo (que sempre foi grid-column:2) e o chat (grid-column:3) ficavam
   presos nos números antigos, sem coluna 3 pra existir — vídeo
   espremido na faixa estreita de 340px e um buraco preto enorme sobrando
   à esquerda. Reatribuindo explicitamente pros 2 números novos. */
.gaming-page.gaming-normal.gaming-live-active .gaming-desktop-body .gaming-layout{grid-column:1!important}.gaming-page.gaming-normal.gaming-live-active .gaming-desktop-body .gaming-right-column{grid-column:2!important}.gaming-page.gaming-normal.gaming-live-active .gaming-content-tabs,
.gaming-page.gaming-normal.gaming-live-active .gaming-video-grid{display:none!important}
/* o dono (2026-09-14): "pantalla llena" tem que ocupar o cem por cento de
   verdade — nada de chat do lado (isso é o modo "ao vivo", diferente),
   e nada do verde do fundo do palco aparecendo em volta do vídeo
   (o degradê de ".gaming-stage" é pensado pro tamanho normal, pequeno;
   numa tela inteira virava um "quadro verde" enorme atrás do vídeo). */
.gaming-page.gaming-normal.gaming-theater .gaming-desktop-body{grid-template-columns:1fr!important}
.gaming-page.gaming-normal.gaming-theater .gaming-desktop-body .gaming-layout{grid-column:1!important}
.gaming-page.gaming-normal.gaming-theater .gaming-content-tabs,
.gaming-page.gaming-normal.gaming-theater .gaming-video-grid,
.gaming-page.gaming-normal.gaming-theater .gaming-right-column{display:none!important}
.gaming-page.gaming-normal.gaming-theater .gaming-stage{background:#000!important}
/* Quando o navegador aceita a Fullscreen API de verdade (bônus), o
   elemento fullscreened precisa preencher a tela e manter o fundo —
   sem isso fica uma caixa pequena no meio de uma tela preta. */
.gaming-desktop-body:fullscreen{width:100vw!important;height:100vh!important;background:#0D0D0D}/* Sidebar esquerda — faixa fina, só ícones (sem texto, sem "Explorar
   jogos"), largura igual à barra de comércio/criador. Só Início e Vídeos
   ficam no topo; embaixo, uma coluna de bolinhas (quem o visitante
   segue) flutuando até o fim da faixa. */
/* Reprodutor + info + tabs + grid, no centro — coluna flex que enche
   exatamente a altura que `.gaming-layout`/`.gaming-desktop-body` já
   repassam (100% da tela sobrando do cabeçalho, sem calc() mágico). O
   vídeo é quem estica pra ocupar o que sobrar; a grade de vídeos rola
   por dentro dela mesma se não couber, a página nunca rola. */
.gaming-page.gaming-normal .gaming-stage{border:1px solid #7A4E27;border-radius:8px;background:#0D0D0D;padding:0;overflow:hidden;display:flex;flex-direction:column;height:100%;min-height:0}.gaming-page.gaming-normal .gaming-normal-player{border-radius:8px 8px 0 0;flex:1 1 auto;height:auto!important;min-height:0}/* Fileira embaixo do vídeo (madeira escura, curtir/comentar/
   compartilhar/salvar/baixar/seguir) não existe mais no desktop — tudo
   subiu pro cabeçalho (curtir/salvar/compartilhar/baixar como ícone,
   seguir como #gaming-follow, mesmo botão verde). Só sobra no celular. */
.gaming-page.gaming-normal .gaming-actions.gaming-normal-actions{display:none!important}.gaming-like-count{display:none}.gaming-page.gaming-normal .gaming-like-count{display:inline;font-size:13px;color:#fff}.gaming-content-tabs{flex:0 0 auto;align-items:center;gap:22px;padding:0 16px;border-top:1px solid #2a2015;border-bottom:1px solid #2a2015;background:linear-gradient(180deg, rgba(20,12,4,.2), rgba(10,6,2,.32)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat}/* "Deixe seu comentário" subiu pra esta fileira (pedido do dono) — cola
   na ponta direita, junto com a bandeira de denunciar. */
.gaming-content-tabs .gaming-support-compact{margin-left:auto;display:flex;align-items:center;gap:10px}.gaming-content-tabs button,.gaming-content-tabs a{padding:13px 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:#9ab09b;font-size:13.5px;font-weight:600;text-decoration:none;cursor:pointer}.gaming-content-tabs button.active,.gaming-content-tabs a.active{color:#fff;border-bottom-color:#2ECC71}/* A tira de abaixo (abas + grade de vídeos) fica pequena — uns 30% da
   altura contando as abas — pra tela principal (o vídeo) ficar grande,
   pedido explícito do dono. */
/* Cinta deslizante horizontal (pedido do dono), não uma grade vertical
   de várias linhas — numa faixa de só ~26% da altura da tela (o vídeo
   principal manda no resto), uma grade que quebra linha nunca ia caber
   um cartão inteiro visível; rolando de lado, cada "cajita" aparece
   inteira, sem cortar nem espremer nada. */
.gaming-video-grid{flex:0 1 26%;min-height:0;overflow-x:auto;overflow-y:hidden;list-style:none;margin:0;padding:14px 16px;display:flex;gap:14px;align-items:center;justify-content:center;background:linear-gradient(180deg, rgba(20,12,4,.25), rgba(6,4,2,.4)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat}.gaming-video-grid-item{cursor:pointer;flex:0 0 160px;width:160px;height:100%;display:flex;align-items:center}.gaming-video-grid-thumb{position:relative;width:100%;aspect-ratio:16/9;display:grid;place-items:center;border-radius:8px;background:linear-gradient(145deg,#26190c,#120c05);color:#7A4E27;font-size:26px;overflow:hidden}.gaming-video-grid-thumb video{width:100%;height:100%;object-fit:cover;pointer-events:none}.gaming-video-grid-thumb .gvg-badge{position:absolute;top:6px;left:6px;padding:2px 6px;border-radius:4px;background:#2ECC71;color:#0D0D0D;font-size:9px;font-weight:800}.gaming-video-grid-thumb .gvg-duration{position:absolute;right:6px;bottom:6px;padding:2px 6px;border-radius:4px;background:#000000cc;color:#fff;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}.gaming-video-grid-thumb .gvg-duration[hidden]{display:none!important}.gaming-video-grid-item{transition:transform .16s ease}.gaming-video-grid-item:hover{transform:translateY(-3px)}/* o dono: "las letras tienen que flotar dentro del video, pero más
   pequeñas" — título+curtidas viram um overlay pequeno DENTRO da própria
   miniatura, com degradê escuro embaixo pra continuar legível. */
.gaming-video-grid-info{position:absolute;left:6px;bottom:5px;right:44px;background:transparent;pointer-events:none}.gaming-video-grid-info b{display:block;color:#fff;font-size:9px;font-weight:700;line-height:1.2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #000,0 0 6px #000c}.gaming-video-grid-info small{color:#cfe8c9;font-size:8px;text-shadow:0 1px 3px #000,0 0 6px #000c}.gaming-video-grid-empty{flex:1 0 100%;text-align:center;color:#9ab09b;padding:30px 0}/* Painel direito: chat/pessoas + próximo em vivo + apoiar — madeira
   escura no corpo todo (pedido do dono, "el color madera que me
   gusta"), igual aos outros cartões da sala; cabeçalho um pouco mais
   fino que antes, sem o texto de contagem de jogadores/espectadores. */
.gaming-page.gaming-normal .gaming-chat{position:static!important;width:100%!important;height:min(calc(100dvh - 260px),640px)!important;padding:0!important;border:1px solid #7A4E27!important;border-radius:8px!important;background:linear-gradient(180deg, rgba(20,12,4,.55), rgba(6,4,2,.75)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;box-shadow:none!important;transform:none!important;overflow:hidden}.gaming-page.gaming-normal .gaming-chat-handle{display:none!important}.gaming-page.gaming-normal .gaming-chat>header{display:flex!important;align-items:center;min-height:0!important;background:linear-gradient(180deg, rgba(20,12,4,.35), rgba(10,6,2,.55)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;padding:8px 14px!important;margin:0!important;border-bottom:1px solid #7A4E27}.gaming-page.gaming-normal .gaming-chat .gaming-messages{background:transparent!important}.gaming-page.gaming-normal .gaming-chat .gaming-participants{padding:0 14px!important}.gaming-panel-tabs{display:flex!important;gap:0;padding:0!important;margin:0!important;border-bottom:1px solid #2a2015}.gaming-panel-tabs button{flex:1;padding:12px;border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;background:transparent!important;color:#9ab09b!important;font-size:13px;font-weight:700}.gaming-panel-tabs button.active{color:#fff!important;border-bottom-color:#2ECC71!important;background:transparent!important}/* Escrever mensagem: emoji + campo + enviar (ícone, sem a palavra
   "Enviar" — pedido do dono). */
.gaming-page.gaming-normal #gaming-form{display:flex!important;align-items:center;gap:8px;padding:9px 12px!important;background:transparent!important;border-top:1px solid #ffffff1a!important;position:relative}.gaming-page.gaming-normal #gaming-input{min-width:0;flex:1;background:#00000055!important;border:1px solid #ffffff26!important;border-radius:999px;color:#fff;padding:9px 14px;font-size:13px}.gaming-page.gaming-normal #gaming-input:focus{border-color:#72e854!important;outline:none}.gaming-page.gaming-normal #gaming-emoji-toggle,
.gaming-page.gaming-normal #gaming-send{flex:none;width:34px;height:34px;display:grid;place-items:center;border:0!important;border-radius:50%!important;padding:0!important;font-size:18px;cursor:pointer}.gaming-page.gaming-normal #gaming-emoji-toggle{background:transparent!important;filter:grayscale(.2)}.gaming-page.gaming-normal #gaming-emoji-toggle:hover{background:#ffffff14!important}.gaming-page.gaming-normal #gaming-send{background:linear-gradient(135deg,#8fe860,#55c900)!important;color:#0b1c04!important}.gaming-page.gaming-normal #gaming-send:hover{filter:brightness(1.08)}.gaming-page.gaming-normal #gaming-send svg{width:16px;height:16px}.gaming-page.gaming-normal .gaming-emoji-picker{position:absolute;z-index:6;bottom:100%;left:12px;margin-bottom:6px;display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:8px;border:1px solid #7A4E27;border-radius:12px;background:linear-gradient(180deg, rgba(20,12,4,.92), rgba(6,4,2,.96)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;box-shadow:0 12px 30px #000a}.gaming-page.gaming-normal .gaming-emoji-picker[hidden]{display:none!important}.gaming-page.gaming-normal .gaming-emoji-picker button{width:32px;height:32px;display:grid;place-items:center;border:0!important;border-radius:8px!important;background:transparent!important;font-size:18px;padding:0!important}.gaming-page.gaming-normal .gaming-emoji-picker button:hover{background:#ffffff1a!important}/* Card grande virou uma barra fina — pedido do dono ("una simple letra
   y un ícono... así el chat se va a ver más grande"). O espaço que
   sobrou vira a cinta corrida logo abaixo. */
.gaming-support-compact{display:flex;align-items:center;gap:8px}.gaming-support-compact-action{display:flex;align-items:center;gap:7px;border:0!important;background:transparent!important;color:#fff;font-weight:700;font-size:12.5px;cursor:pointer;padding:0!important}.gaming-support-compact-action:hover{color:#32FF6A}.gaming-support-compact-action svg,.gaming-support-compact-action [data-morph-icone]{width:15px;height:15px;flex:none}}
/* Passo "Escolha seu jogo" antes de ir ao vivo — mobile e web. */
.gaming-game-picker{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;background:#000000b3}
.gaming-game-picker[hidden]{display:none!important}
.gaming-game-picker-box{width:100%;max-width:360px;padding:22px;border-radius:16px;border:1px solid #7A4E27;background:linear-gradient(180deg, rgba(20,12,4,.7), rgba(10,6,2,.9)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat;box-shadow:0 20px 50px #000c}
.gaming-game-picker-box h2{margin:0 0 8px;color:#fff;font-size:18px}
.gaming-game-picker-box p{margin:0 0 14px;color:#E0E0E0cc;font-size:12.5px;line-height:1.4}
.gaming-game-picker-box label{display:block;margin-bottom:16px;color:#c9b892;font-size:12.5px;font-weight:700}
.gaming-game-picker-box input{margin-top:6px;width:100%;box-sizing:border-box;padding:10px 12px;border-radius:8px;border:1px solid #594426;background:#0d0a06cc;color:#fff;font-size:14px}
.gaming-game-picker-actions{display:flex;gap:10px}
.gaming-game-picker-actions button{flex:1;padding:10px;border-radius:999px;font-weight:800;font-size:13px}
#gaming-game-picker-cancel{border:1px solid #594426;background:transparent;color:#c9b892}
#gaming-game-picker-start{border:none;background:linear-gradient(135deg,#8fe860,#55c900);color:#0b1c04}
/* Cronômetro real da transmissão — calculado a partir de room.started_at,
   nunca um valor inventado; só aparece quando a sala está ao vivo. */
.gaming-live-timer{position:absolute;z-index:6;top:16px;left:16px;padding:5px 12px;border-radius:999px;background:#000000a6;border:1px solid #2ECC7166;color:#fff;font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums}
.gaming-live-timer[hidden]{display:none!important}
/* 2026-09-09 (referência real "El Gringo 33", desktop) — reorganização da
   cabeceira: avatar com anel verde só quando EM VIVO (nunca fixo), selo
   verificado ao lado do nome (não mais um badge solto no canto), 2 linhas
   de subtítulo ("Jogador de {jogo}" real + descrição real), legenda embaixo
   de cada estatística, e um grupo de ações à direita (Seguir, sino, curtir/
   salvar/baixar/compartilhar/denunciar). Bloco novo no fim do arquivo de
   propósito — ganha da cascata sem precisar mexer no bloco desktop antigo. */
@media(min-width:851px){
  .gaming-page.gaming-normal .gaming-avatar-wrap{position:relative;display:grid;place-items:center;flex:0 0 auto}
  .gaming-page.gaming-normal .gaming-owner-avatar{border-color:#5a4a2f!important}
  .gaming-page.gaming-normal .gaming-avatar-wrap.gaming-avatar-live .gaming-owner-avatar{border-color:#32FF6A!important;box-shadow:0 0 0 3px #0D0D0D,0 0 12px #32ff6a99}
  /* Achado real de auditoria (2026-09-14): nome do canal sem limite —
     testado com um nome bem comprido, o cabeçalho crescia sem parar em
     vez de cortar, arriscando empurrar os ícones da direita pra fora da
     tela num nome ainda maior. ".gaming-profile" nunca encolhia (flex:0
     0 auto), então o nome nunca tinha um limite real pra respeitar. */
  .gaming-page.gaming-normal .gaming-profile{flex:1 1 auto!important;min-width:0!important}
  .gaming-page.gaming-normal .gaming-name-row{display:flex;align-items:center;gap:6px;min-width:0}
  .gaming-page.gaming-normal #gaming-channel{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .gaming-page.gaming-normal .gaming-name-row .gaming-selo-inline{position:static!important;width:18px!important;height:18px!important;box-shadow:none!important;border-width:1px!important;flex:0 0 auto}
  .gaming-page.gaming-normal .gaming-role-line{display:block!important;font-size:12.5px!important;font-weight:700;color:#c9d8c7!important;max-width:none!important}
  .gaming-page.gaming-normal #gaming-description{display:block!important;font-size:12px!important;color:#9ab09b!important;max-width:none!important}

  .gaming-page.gaming-normal #gaming-stats{display:flex!important;align-items:center;gap:22px}
  .gaming-page.gaming-normal #gaming-stats span:not([hidden]),.gaming-page.gaming-normal #gaming-stats button:not([hidden]){display:grid!important;grid-template-columns:auto auto;grid-template-rows:auto auto;grid-template-areas:"icon num" "icon label";align-items:center;column-gap:6px;row-gap:0}
  .gaming-page.gaming-normal #gaming-stats span[hidden],.gaming-page.gaming-normal #gaming-stats button[hidden]{display:none!important}
  .gaming-page.gaming-normal #gaming-stats span svg,.gaming-page.gaming-normal #gaming-stats button svg{display:block!important;grid-area:icon;width:18px!important;height:18px!important;color:#9ab09b}
  .gaming-page.gaming-normal #gaming-stats b{grid-area:num;font-size:15px!important;font-weight:800;color:#fff!important;line-height:1.15}
  .gaming-page.gaming-normal #gaming-stats small{grid-area:label;display:block!important;font-size:10.5px;font-weight:600;color:#9ab09b;text-transform:lowercase;line-height:1.15}
  .gaming-page.gaming-normal #gaming-reaction-desktop.active svg{color:#ff5b6b!important}

  .gaming-header-actions{display:flex!important;align-items:center;gap:10px;margin-left:auto;order:9}
  .gaming-page.gaming-normal #gaming-follow{order:0;margin-left:0!important;padding:3px 12px!important;font-size:12px!important;border-radius:999px!important}
  .gaming-page.gaming-normal #gaming-notify-toggle{color:#fff!important}
  .gaming-page.gaming-normal #gaming-notify-toggle.active{color:#32FF6A!important}
  .gaming-page.gaming-normal #gaming-notify-toggle[hidden]{display:none!important}

  .gaming-page.gaming-normal .gaba3-ad-slot.gaming-desktop-only{flex:0 0 auto;max-width:260px;margin-left:14px}
  .gaming-page.gaming-normal .gaba3-ad-slot.gaming-desktop-only:empty{display:none!important}
}

/* 2026-09-09 (o dono: "se ve muy flácido... básico", referência aprovada
   pelos diretores é limpa/moderna, sem madeira nenhuma) — troca a pele
   rústica de madeira (herdada do resto da plataforma) por um visual
   escuro plano e profissional, só na versão desktop da Sala de Jogos.
   Bloco novo no fim do arquivo de propósito — ganha da cascata sem
   precisar reescrever as regras antigas (que continuam valendo pro
   celular, onde a madeira nunca foi o problema apontado). */
@media(min-width:851px){
  /* o dono: "colócale ahora el aspecto madera, madera oscura na cabecera" —
     mesma referência real (o topo da imagem é madeira escura de verdade,
     não plano) — reusa o mesmo asset já usado no resto da plataforma
     (fondo-madera-oscura-gaba3.png), com overlay bem escuro pra ficar
     realmente "oscura", não o marrom claro/dourado do resto da sala. */
  .gaming-page.gaming-normal .gaming-normal-header{background:linear-gradient(180deg, rgba(20,12,4,.38), rgba(10,6,2,.58)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;border:0!important;border-bottom:1px solid #7A4E27!important;border-radius:0!important;box-shadow:0 2px 12px #0008!important}
  /* Fileira de abas continua a MESMA madeira escura da cabeceira (na
     referência real é uma única superfície, cabeceira+abas), não um
     painel plano separado. */
  .gaming-content-tabs{background:linear-gradient(180deg, rgba(20,12,4,.16), rgba(10,6,2,.26)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;border-top:0!important;border-bottom:1px solid #7A4E27!important}
  .gaming-content-tabs button,.gaming-content-tabs a{display:inline-flex!important;align-items:center;gap:7px;font-size:13.5px}
  .gaming-content-tabs button.active,.gaming-content-tabs a.active{font-weight:800}
  .gaming-video-grid{background:#0a1610!important;border-top:1px solid #1B7F3F}
  /* o dono: painel de Personas fica verde (mesmo verde escuro do resto da
     sala); quando troca pra "Chat ao vivo", vira madeira (mesma textura
     da cabeceira) — reflete o estado real de qual aba está ativa
     (".gaming-chat[data-panel=...]", já setado real em draw()). */
  .gaming-page.gaming-normal .gaming-chat{background:#0d1f13!important;border:1px solid #1B7F3F!important}
  .gaming-page.gaming-normal .gaming-chat[data-panel="chat"]{background:linear-gradient(180deg, rgba(20,12,4,.2), rgba(10,6,2,.32)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;border:1px solid #7A4E27!important}
  .gaming-page.gaming-normal .gaming-chat>header{background:linear-gradient(180deg, rgba(20,12,4,.16), rgba(10,6,2,.26)), url("/assets/brand/fondo-madera-oscura-gaba3.png") center/cover no-repeat!important;border-bottom:1px solid #7A4E27!important;justify-content:space-between!important;min-height:62px!important;padding:6px 6px 6px 14px!important}
  /* Cabeçalho do painel direito vira a mesma faixa de marca da referência
     real ("Juntos somos más fuertes!" + logo GABA3 no canto) — a lema
     real da sala (mesmo campo já usado na cinta), nunca texto fixo. */
  .gaming-page.gaming-normal #gaming-chat-title{display:none!important}
  .gaming-page.gaming-normal .gaming-chat header b.gaming-chat-tagline{display:block!important;font-family:"Brush Script MT",cursive!important;font-size:19px!important;font-weight:400!important;color:#e0c477!important;text-transform:none!important;letter-spacing:0!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:78%}
  .gaming-chat-brand{display:block!important;width:50px!important;height:50px!important;object-fit:contain;flex:0 0 auto}
  .gaming-page.gaming-normal .gaming-emoji-picker{background:#12241a!important;border:1px solid #1B7F3F!important}

  /* Nome do canal com peso maior, cabeceira mais limpa (menos sombra de
     texto, cores mais planas — combina com o painel plano novo). */
  .gaming-page.gaming-normal .gaming-profile b{font-weight:800!important;letter-spacing:-.01em}
}

/* Rótulo de texto dos botões de ação (Curtir/Chat/Compartilhar/Salvar
   clipe/Notificar) — escondido por padrão (mobile continua só ícone),
   só aparece na fileira nova do desktop, dentro do bloco abaixo. */
.gaming-action-label{display:none}

/* Pill vermelho "EM VIVO" sobre o avatar — só quando a sala está ao vivo
   de verdade (mesma condição real de ".gaming-avatar-live"), nunca fixo. */
.gaming-avatar-live-badge{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);padding:1px 7px;border-radius:999px;background:#e5484d;color:#fff;font-size:8.5px;font-weight:800;letter-spacing:.02em;white-space:nowrap;box-shadow:0 2px 6px #0008}
.gaming-avatar-live-badge[hidden]{display:none!important}

@media(min-width:851px){
  /* Menu de "mais opções" pra qualquer visitante (distinto do menu de
     administração, que só o dono vê) — mesma posição da referência. */
  .gaming-visitor-menu{position:fixed;z-index:70;min-width:200px;padding:6px;border-radius:12px;background:#12241a;border:1px solid #1B7F3F;box-shadow:0 16px 36px #000a}
  .gaming-visitor-menu[hidden]{display:none!important}
  .gaming-visitor-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:#E0E0E0;font-size:13px;font-weight:600;text-align:left;cursor:pointer}
  .gaming-visitor-menu button:hover{background:#1B7F3F33!important}
  .gaming-visitor-menu button [data-morph-icone]{width:16px;height:16px;flex:0 0 auto}

  /* Fileira de ações embaixo do vídeo, ícone+rótulo, igual à referência —
     reaproveita os mesmos botões reais (curtir/compartilhar/salvar/
     notificar), só que agora com texto visível e num cartão próprio. */
  .gaming-page.gaming-normal .gaming-actions.gaming-normal-actions{display:flex!important;flex-wrap:nowrap;justify-content:flex-start;gap:10px;margin:10px 0 0;padding:10px 14px!important;border:1px solid #1B7F3F;border-radius:12px;background:#0d1f13!important}
  .gaming-page.gaming-normal .gaming-normal-actions button{display:flex!important;flex-direction:row;align-items:center;gap:8px;width:auto!important;height:auto!important;min-height:0!important;flex:0 0 auto!important;padding:9px 16px!important;border:0!important;border-radius:8px!important;background:#132b1c!important;box-shadow:none!important;color:#E0E0E0!important;font-size:13px;font-weight:700}
  .gaming-page.gaming-normal .gaming-normal-actions button:hover{background:#1B7F3F!important;color:#fff!important}
  .gaming-page.gaming-normal .gaming-normal-actions button svg,
  .gaming-page.gaming-normal .gaming-normal-actions button [data-morph-icone]{width:18px;height:18px}
  .gaming-page.gaming-normal .gaming-normal-actions .gaming-action-label{display:inline}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-reaction.active{background:#2a1218!important;color:#ff5b6b!important}
  .gaming-page.gaming-normal .gaming-normal-actions .gaming-like-count{display:inline!important;margin-left:2px;color:inherit!important;font-size:inherit!important}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-notify-toggle-actionrow.active{background:#0d2410!important;color:#32FF6A!important}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-follow-action{background:#0d2410!important;color:#32FF6A!important;border:1px solid #1B7F3F!important}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-follow-action.active{background:#132b1c!important;color:#9ab09b!important;border-color:#1B7F3F55!important}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-notify-toggle-actionrow[hidden]{display:none!important}
  /* "Baixar"/"Denunciar" ficam só no celular nesta fileira (já cobertos
     no desktop pelo ícone de denúncia da cabecera) — a regra de botão
     acima é mais específica que ".gaming-mobile-only" sozinho, por isso
     precisa da mesma classe aqui de novo pra realmente esconder. */
  .gaming-page.gaming-normal .gaming-normal-actions button.gaming-mobile-only{display:none!important}

  /* o dono: "elimina esa franja" — Curtir/Compartilhar/Notificar já vivem
     na cabecera, Chat já é o painel da direita; Salvar clipe volta mais
     tarde noutro lugar. A fileira inteira some no desktop (mobile segue
     igual, ela nunca foi tocada ali). */
  .gaming-page.gaming-normal .gaming-actions.gaming-normal-actions{display:none!important}

  /* O "curtir" funcional passa a viver na própria estatística de curtidas
     da cabecera (era só um número mostrando dado real, agora também é o
     botão — reaproveita a MESMA ação de sempre via #gaming-reaction-desktop,
     já contemplado no JS existente: $$('#gaming-reaction, #gaming-reaction-desktop')). */
  #gaming-reaction-desktop{cursor:pointer;border:0!important;background:transparent!important;box-shadow:none!important;font:inherit;color:inherit;padding:0}
  #gaming-reaction-desktop.active{color:#ff5b6b!important}
  #gaming-reaction-desktop.active svg{stroke:#ff5b6b}
}

/* o dono: "el ícono de la carita va dentro de la píldora" — mesmo padrão já
   usado em Criadores/Comércio (.creator-message-pill): emoji+campo dentro
   do MESMO recipiente arredondado, nunca soltos lado a lado. Enviar
   continua seu próprio botão circular fora da píldora. Base sem @media
   pra valer também no celular (o pedido não é só de desktop). */
.gaming-message-pill{display:flex!important;align-items:center;flex:1 1 auto;min-width:0;gap:2px;background:#00000055;border:1px solid #ffffff26;border-radius:999px;padding:2px 4px 2px 6px}
.gaming-message-pill:focus-within{border-color:#72e854}
.gaming-message-pill #gaming-input{flex:1;min-width:0;background:transparent!important;border:0!important;border-radius:0!important}
.gaming-message-pill #gaming-input:focus{border:0!important;outline:none}
@media(min-width:851px){
  .gaming-page.gaming-normal .gaming-message-pill{display:flex;align-items:center;flex:1 1 auto;min-width:0;gap:2px;background:#00000055!important;border:1px solid #ffffff26!important;border-radius:999px;padding:2px 4px 2px 6px}
  .gaming-page.gaming-normal .gaming-message-pill:focus-within{border-color:#72e854!important}
  .gaming-page.gaming-normal #gaming-input{flex:1;min-width:0;background:transparent!important;border:0!important;border-radius:0!important;padding:9px 6px!important}
  .gaming-page.gaming-normal #gaming-input:focus{border:0!important;outline:none}
  .gaming-page.gaming-normal #gaming-emoji-toggle{width:30px!important;height:30px!important}
}

/* 2026-09-09 (referência real "El Gringo 33") — completa o que ainda
   faltava pra sala não parecer "simples": abas com ícone (En vivo/Vídeos/
   Clips/Comunidade/Torneios/Sobre), cabeçalho "Vídeos recentes" com
   "Ver todos", e a fileira de caixinhas rápidas (Torneios/Squad/Horários/
   Regras) — tudo com dado 100% real (torneios e comunidade já existem no
   backend desde a Fase 1 desta sessão, só nunca tinham UI). */
@media(min-width:851px){
  /* Mesma trampa já documentada em Criadores: ".gaming-desktop-only{display:flex}"
     (classe, 0-1-0) empata em especificidade com o "[hidden]{display:none}"
     do próprio navegador — e regra de autor sempre vence UA na mesma
     especificidade, então o painel escondido reaparecia sozinho. */
  [data-content-panel][hidden]{display:none!important}
  #gaming-content-panel-videos:not([hidden]){display:block!important}
  .gaming-content-tabs button[data-content-tab],
  .gaming-content-tabs button[data-gaming-tab]{display:inline-flex!important;align-items:center;gap:6px}
  .gaming-content-tabs button[data-content-tab] [data-morph-icone],
  .gaming-content-tabs button[data-gaming-tab] [data-morph-icone]{width:15px;height:15px}
  .gaming-content-tabs button.active [data-morph-icone]{color:#2ECC71!important}

  .gaming-side-panel{display:block!important;margin:14px 16px;padding:14px;border:1px solid #1B7F3F;border-radius:12px;background:#0d1f13}
  .gaming-community-form{display:flex;gap:8px;margin-bottom:12px}
  .gaming-community-form input{flex:1;min-width:0;padding:10px;border:1px solid #1B7F3F;border-radius:10px;background:#0a1610;color:#fff}
  .gaming-community-form button{background:#2ECC71!important;border:0!important;color:#0D0D0D!important;font-weight:800;border-radius:10px!important;box-shadow:none!important}
  .gaming-community-post{position:relative;padding:10px 24px 10px 0;border-bottom:1px solid #1B7F3F55}
  .gaming-community-post p{margin:0 0 4px;color:#E0E0E0}
  .gaming-community-post small{color:#9ab09b;font-size:11px}
  .gaming-community-post-denunciar{position:absolute;top:10px;right:0;width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:#9ab09b;font-size:11px;display:grid;place-items:center;cursor:pointer;opacity:.55}
  .gaming-community-post-denunciar:hover{opacity:1}
  .gaming-tournament-owner-form{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
  .gaming-tournament-owner-form[hidden]{display:none!important}
  .gaming-tournament-owner-form input{flex:1 1 160px;min-width:0;padding:10px;border:1px solid #1B7F3F;border-radius:10px;background:#0a1610;color:#fff}
  .gaming-tournament-owner-form button{background:#2ECC71!important;border:0!important;color:#0D0D0D!important;font-weight:800;border-radius:10px!important;box-shadow:none!important;padding:0 16px!important}
  .gaming-tournament-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
  .gaming-tournament-row{position:relative;padding:10px 26px 10px 10px;border:1px solid #1B7F3F55;border-radius:10px;background:#0a1610}
  .gaming-tournament-row b{display:block;color:#fff;font-size:13px}
  .gaming-tournament-row small{color:#2ECC71;font-size:11px;font-weight:700}
  .gaming-tournament-row p{margin:4px 0 0;color:#9ab09b;font-size:12px}
  .gaming-tournament-denunciar{position:absolute;top:8px;right:8px;width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:#9ab09b;font-size:11px;display:grid;place-items:center;cursor:pointer;opacity:.55}
  .gaming-tournament-denunciar:hover{opacity:1}
  .gaming-sobre-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #1B7F3F55;font-size:13px}
  .gaming-sobre-row b{color:#9ab09b;font-weight:700}
  .gaming-sobre-row p{margin:0;color:#E0E0E0;text-align:right}
  .gaming-empty-note{color:#9ab09b;font-size:12.5px;text-align:center;padding:20px 0}
}

/* o dono: "eliminar la parte izquierda donde está la casita... la pantalla
   principal llega hasta el límite" — tira a coluna da barra lateral
   (ícones início/vídeos + "quem você segue ao vivo") por completo; o
   vídeo/coluna central agora ocupa 100% da largura à esquerda. */
@media(min-width:851px){
  .gaming-desktop-body{grid-template-columns:minmax(0,1fr) 340px!important}
  .gaming-desktop-body .gaming-layout{grid-column:1!important}
  .gaming-desktop-body .gaming-right-column{grid-column:2!important}
}

/* o dono: as caixas de Torneios/Squad/Horários viram a cinta de "classes de
   jogo" (ex.: Free Fire, Roblox) embaixo do painel de chat/comentários,
   deslizável na horizontal quando o dono cadastrar mais de um jogo. */
@media(min-width:851px){
  .gaming-games-strip{flex:0 0 auto;margin:0;padding:0 2px}
  .gaming-games-strip-item{flex:0 0 auto;width:72px;display:grid;justify-items:center;gap:4px;border:1px solid #1B7F3F;border-radius:10px;background:#0d1f13;padding:8px 6px;color:#cfd8cf}
  .gaming-games-strip-item img{width:40px;height:40px;border-radius:8px;object-fit:cover}
  .gaming-games-strip-item span{width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:#132b1c;font-size:16px}
  .gaming-games-strip-item b{font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:64px;text-align:center;color:#fff}
}

/* o dono: "sin estar al vivo, se tendría que ver similar a ese estilo...
   pero ahora con base en esta sala" — a tela normal (fora do vivo) do
   celular passa a reaproveitar os MESMOS elementos reais já construídos
   pro desktop (identidade+stats na cabecera, abas, grade de vídeos,
   comunidade/torneios/sobre, cinta de jogos, publicidade), numa coluna
   só, em vez da tela de lista separada que existia antes. O modo ao
   vivo/imersivo (.gaming-mobile-focus/.gaming-live-active) não é tocado
   aqui — cada um desses elementos já está na lista de "some ao vivo"
   nos blocos correspondentes, mais acima no arquivo. */
@media(max-width:850px){
  /* o dono (diretor, via WhatsApp): "la cabecera tiene que ser lo más fina
     posible... con íconos que indiquen lo que la sala es". Uma linha só
     (nunca duas), sem quebrar — identidade compacta à esquerda, stats
     reais em chips pequenos (ícone+número, sem rótulo) + kebab à
     direita, tudo na mesma altura fina. */
  .gaming-page.gaming-normal .gaming-normal-header{flex-wrap:nowrap!important;min-height:0!important;height:auto!important;padding:8px 12px!important;gap:8px}
  .gaming-page.gaming-normal .gaming-brand{display:none!important}
  .gaming-page.gaming-normal #gaming-go-live{order:3}
  .gaming-page.gaming-normal .gaming-profile{display:flex!important;order:2;flex:1 1 auto!important;max-width:none!important;gap:6px;min-width:0}
  .gaming-page.gaming-normal .gaming-profile>div{min-width:0;flex:1 1 auto;display:flex!important;align-items:center;gap:6px}
  .gaming-page.gaming-normal .gaming-profile .gaming-owner-avatar{width:28px;height:28px;font-size:12px}
  .gaming-page.gaming-normal .gaming-name-row{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;min-width:0}
  .gaming-page.gaming-normal .gaming-name-row b{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .gaming-page.gaming-normal .gaming-name-row .gaming-selo-inline{position:static!important;width:14px!important;height:14px!important;box-shadow:none!important;flex:0 0 auto}
  .gaming-page.gaming-normal .gaming-profile b{font-size:13px!important}
  .gaming-page.gaming-normal .gaming-role-line,
  .gaming-page.gaming-normal #gaming-description{display:none!important}
  .gaming-page.gaming-normal #gaming-follow{padding:3px 9px!important;font-size:10.5px!important;border-radius:999px!important;flex:0 0 auto}

  .gaming-page.gaming-normal #gaming-stats{display:flex!important;flex-wrap:nowrap;order:3;flex:0 0 auto;gap:9px;margin:0}
  .gaming-page.gaming-normal #gaming-stats span:not([hidden]):not(.gaming-desktop-only),
  .gaming-page.gaming-normal #gaming-stats button:not([hidden]):not(.gaming-desktop-only){display:flex!important;flex-direction:row!important;align-items:center;gap:2px;background:transparent!important;border:0!important;padding:0!important;color:#fff!important;font-size:10px;cursor:default}
  .gaming-page.gaming-normal #gaming-stats small{display:none!important}
  /* "Curtir" no cabeçalho é só desktop (já existe flutuando sobre o
     vídeo no celular) — sem isto, a regra acima (com !important) ganhava
     do .gaming-desktop-only{display:none} e duplicava o ícone. */
  .gaming-page.gaming-normal #gaming-stats .gaming-desktop-only{display:none!important}
  .gaming-page.gaming-normal #gaming-reaction-desktop.active svg{color:#ff5b6b!important}
  .gaming-page.gaming-normal #gaming-stats svg{width:12px;height:12px;color:#9ab09b}

  .gaming-page.gaming-normal .gaming-header-actions{display:flex!important;align-items:center;gap:6px;order:4;margin-left:0;flex:0 0 auto!important}
  .gaming-page.gaming-normal .gd-icon-btn,
  .gaming-page.gaming-normal .gd-share,
  .gaming-page.gaming-normal .gd-hamburger,
  .gaming-page.gaming-normal .gd-subscribe{background:transparent!important;box-shadow:none!important;width:32px!important;height:32px!important;color:#fff!important}
  .gaming-page.gaming-normal #gaming-owner-menu-toggle{order:5}
  /* Trampa de especificidade já documentada nesta sessão: um botão sem
     guarda [hidden] própria no celular ganha do atributo nativo. Guarda
     explícita, com ID, pros ícones que só o dono deve ver. */
  .gaming-page.gaming-normal #gaming-go-live[hidden],
  .gaming-page.gaming-normal #gaming-owner-menu-toggle[hidden],
  .gaming-page.gaming-normal #gaming-record-toggle[hidden],
  .gaming-page.gaming-normal #gaming-visitor-menu-toggle[hidden],
  .gaming-page.gaming-normal #gaming-notify-toggle[hidden],
  .gaming-page.gaming-normal #gaming-follow[hidden]{display:none!important}

  .gaming-page.gaming-normal .gaming-content-tabs{display:flex!important;overflow-x:auto;gap:4px;padding:6px 8px;background:transparent!important;border:0!important}
  .gaming-page.gaming-normal .gaming-content-tabs button,
  .gaming-page.gaming-normal .gaming-content-tabs a{display:flex!important;flex-direction:column;align-items:center;gap:3px;flex:0 0 auto;padding:8px 12px!important;font-size:10.5px;white-space:nowrap;background:transparent!important;border:0!important;box-shadow:none!important;color:#9ab09b}
  .gaming-page.gaming-normal .gaming-content-tabs button.active,
  .gaming-page.gaming-normal .gaming-content-tabs a.active{color:#fff!important}
  .gaming-page.gaming-normal .gaming-content-tabs [data-morph-icone]{width:18px;height:18px}

  .gaming-page.gaming-normal .gaming-video-grid-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:8px}
  .gaming-page.gaming-normal .gaming-video-grid-thumb video{width:100%;height:100%;object-fit:cover;pointer-events:none}
  .gaming-page.gaming-normal .gaming-video-grid-thumb .gvg-badge{position:absolute;top:6px;left:6px;padding:2px 6px;border-radius:4px;background:#2ECC71;color:#0D0D0D;font-size:9px;font-weight:800}
  .gaming-page.gaming-normal .gaming-video-grid-thumb .gvg-duration{position:absolute;right:6px;bottom:6px;padding:2px 6px;border-radius:4px;background:#000000cc;color:#fff;font-size:10.5px;font-weight:700}
  .gaming-page.gaming-normal .gaming-video-grid-info{position:absolute;left:6px;bottom:5px;right:44px;background:transparent;pointer-events:none}
  .gaming-page.gaming-normal .gaming-video-grid-info b{display:block;color:#fff;font-size:11px;font-weight:700;line-height:1.2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px 3px #000,0 0 6px #000c}
  .gaming-page.gaming-normal .gaming-video-grid-info small{color:#cfe8c9;font-size:9.5px;text-shadow:0 1px 3px #000,0 0 6px #000c}

  .gaming-page.gaming-normal .gaming-section-heading.gaming-mobile-only{display:flex!important;align-items:center;justify-content:space-between;padding:12px 14px 6px}
  .gaming-page.gaming-normal .gaming-section-heading b{color:#fff;font-size:14px;font-weight:800}
  .gaming-page.gaming-normal .gaming-section-heading button{background:transparent!important;border:0!important;box-shadow:none!important;color:#2ECC71!important;font-size:12px;font-weight:700;display:flex;align-items:center;gap:3px;padding:0!important}

  .gaming-page.gaming-normal #gaming-video-grid{padding:0 14px 10px;gap:12px}
  .gaming-page.gaming-normal .gaming-video-grid-item{flex:0 0 44vw;width:44vw}

  .gaming-page.gaming-normal .gaming-quickboxes.gaming-mobile-only{display:grid!important;grid-template-columns:repeat(4,1fr);gap:6px;padding:14px 10px}
  .gaming-page.gaming-normal .gaming-quickbox{display:flex!important;flex-direction:column;align-items:center;gap:6px;padding:6px 2px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important}
  .gaming-page.gaming-normal .gaming-quickbox[hidden]{display:none!important}
  .gaming-page.gaming-normal .gaming-quickbox [data-morph-icone]{width:24px;height:24px;color:#2ECC71}
  .gaming-page.gaming-normal .gaming-quickbox b{font-size:11px;font-weight:800}
  .gaming-page.gaming-normal .gaming-quickbox small{font-size:9px;color:#9ab09b}

  /* o dono (diretor): "la pantalla principal tiene que ocupar el 100%...
     los íconos flotan dentro de la pantalla, nunca cajas — confunde ao
     público". Vídeo em tela cheia (100dvh), ações reais (curtir/chat/
     compartilhar/salvar/notificar) viram ícones soltos flutuando por
     cima dele, sem fundo/caixa — mesmo dado e mesma ação de sempre, só
     a apresentação muda. */
  .gaming-page.gaming-normal .gaming-stage{position:relative!important;overflow:visible!important;border-radius:0!important}
  .gaming-page.gaming-normal .gaming-normal-player{position:relative!important;height:calc(100dvh - 54px)!important;min-height:calc(100dvh - 54px)!important;border-radius:0!important;overflow:hidden!important}
  .gaming-page.gaming-normal .gaming-actions.gaming-normal-actions{position:absolute!important;z-index:6;right:8px;bottom:max(18px,env(safe-area-inset-bottom,18px));top:auto;left:auto;display:flex!important;flex-direction:column;gap:16px;padding:0!important;background:transparent!important;width:auto;max-width:none;overflow:visible}
  .gaming-page.gaming-normal .gaming-normal-actions button{display:flex!important;flex-direction:column;align-items:center;gap:2px;width:auto!important;height:auto!important;min-height:0!important;flex:none!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#fff!important;font-size:22px}
  .gaming-page.gaming-normal .gaming-normal-actions button [data-morph-icone],
  .gaming-page.gaming-normal .gaming-normal-actions button svg{width:26px;height:26px;color:#fff!important;filter:drop-shadow(0 1px 4px #000c)}
  .gaming-page.gaming-normal .gaming-normal-actions .gaming-action-label{display:none}
  .gaming-page.gaming-normal .gaming-normal-actions .gaming-like-count{display:block!important;font-size:10.5px;font-weight:800;color:#fff;text-shadow:0 1px 3px #000}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-reaction.active{color:#ff5b6b!important}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-notify-toggle-actionrow.active{color:#32FF6A!important}
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-follow-action{color:#32FF6A!important}
  /* o dono: "no puede tener ícono duplicado" — Seguir já é o botão real na
     cabecera (com texto, ao lado do nome) e a campainha real de
     notificações já mora lá também; os dois ícones flutuantes que
     repetiam a MESMA ação (seguir/avisar) confundiam, ficam só no
     desktop (onde a fileira inteira já está escondida mesmo). */
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-follow-action,
  .gaming-page.gaming-normal .gaming-normal-actions #gaming-notify-toggle-actionrow{display:none!important}

  .gaming-page.gaming-normal .gaming-side-panel{display:block!important;margin:10px 14px;padding:12px;border:1px solid #1B7F3F;border-radius:12px;background:#0d1f13}
  .gaming-page.gaming-normal .gaming-side-panel[hidden]{display:none!important}

  .gaming-page.gaming-normal .gaming-games-strip{display:flex!important;flex:0 0 auto;gap:8px;overflow-x:auto;padding:10px 14px;margin:0}
  .gaming-page.gaming-normal .gaming-games-strip-item{flex:0 0 auto;width:64px;display:grid;justify-items:center;gap:4px;border:1px solid #1B7F3F;border-radius:10px;background:#0d1f13;padding:7px 5px;color:#cfd8cf}
  .gaming-page.gaming-normal .gaming-games-strip-item img{width:34px;height:34px;border-radius:8px;object-fit:cover}
  .gaming-page.gaming-normal .gaming-games-strip-item span{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:#132b1c;font-size:14px}
  .gaming-page.gaming-normal .gaming-games-strip-item b{font-size:9.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58px;color:#fff}

  .gaming-page.gaming-normal .gaba3-ad-slot{margin:10px 14px}
  .gaming-page.gaming-normal .gaba3-ad-slot:empty{display:none!important}
}

/* o dono: "la campanita de notificações não hay" — mesmo sino real (contador
   de não lidas, nunca inventado) já usado na Sala de Criadores, agora
   também na cabecera da Sala de Jogos, nos dois tamanhos de tela. */
#gaming-notif-bell{position:relative;display:inline-flex;color:#fff}
#gaming-notif-bell svg{width:19px;height:19px}
#gaming-notif-badge{position:absolute;top:-4px;right:-6px;min-width:14px;height:14px;padding:0 3px;border-radius:8px;background:#e5484d;color:#fff;font-size:9px;font-weight:800;line-height:14px;text-align:center}
#gaming-notif-badge[hidden]{display:none!important}
@media(max-width:850px){
  .gaming-page.gaming-normal #gaming-notif-bell{width:auto!important;height:auto!important}

  /* Menu "Copiar link da sala" (kebab) só tinha posição real no desktop
     — no celular ficava `position:static`, encolhido no fluxo normal em
     vez de flutuar sob o botão. */
  .gaming-page.gaming-normal .gaming-visitor-menu{position:fixed!important;z-index:70;min-width:180px;padding:6px;border-radius:12px;background:#12241a;border:1px solid #1B7F3F;box-shadow:0 16px 36px #000a}
  .gaming-page.gaming-normal .gaming-visitor-menu[hidden]{display:none!important}
  .gaming-page.gaming-normal .gaming-visitor-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:9px 10px;border:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;color:#E0E0E0;font-size:13px;font-weight:600;text-align:left}
  .gaming-page.gaming-normal .gaming-visitor-menu button [data-morph-icone]{width:16px;height:16px;flex:0 0 auto}
}
