:root{--bg:#07101b;--panel:#101b2a;--panel2:#142337;--line:#26364c;--text:#edf4ff;--muted:#94a7c1;--gold:#ffd45c;--green:#49d69d;--red:#ff798d;--blue:#70a7ff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.layout{min-height:100vh;display:grid;grid-template-columns:250px 1fr}aside{position:sticky;top:0;height:100vh;padding:28px 20px;background:#09131f;border-right:1px solid var(--line);display:flex;flex-direction:column}.brand{font-size:23px;font-weight:950;letter-spacing:.03em;margin:0 8px 28px}.brand b{color:var(--gold)}.brand span{color:#fff}.userbox{padding:14px;border-radius:14px;background:var(--panel);margin-bottom:20px}.userbox strong,.userbox small{display:block}.userbox small{color:var(--muted);margin-top:4px}nav{display:grid;gap:6px}nav a{padding:12px 14px;border-radius:12px;color:var(--muted);font-weight:750}nav a:hover,nav a.active{background:var(--panel2);color:#fff}.logout{margin-top:auto;padding:12px 14px;color:var(--red)}main{padding:30px 34px 60px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}h1{font-size:34px;margin:4px 0}h2{margin:0 0 6px;font-size:21px}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--gold);font-weight:900}.top-user{color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.card,.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 38px rgba(0,0,0,.18)}.card{padding:20px}.metric span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;font-size:27px;margin-top:8px}.panel{padding:22px;margin-bottom:18px}.panel p{color:var(--muted);margin:5px 0 18px;line-height:1.5}.device-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.narrow{max-width:760px}.form{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}label{display:grid;gap:7px;font-size:13px;font-weight:800;color:#dfeaff}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:#091522;color:#fff;padding:11px 12px;outline:none}input,select{height:46px}textarea{resize:vertical;line-height:1.4;word-break:break-all}input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(255,212,92,.09)}.mini-input{width:78px;height:36px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border:1px solid var(--line);border-radius:11px;background:#17263a;color:#fff;font-weight:850;cursor:pointer}.btn.primary{background:linear-gradient(180deg,#ffe17a,#e6a729);color:#211600;border:0}.btn.danger{background:#381b27;color:#ffdce3;border-color:#653044}.btn.small{min-height:34px;padding:0 10px;font-size:12px}.alert{padding:13px 16px;border-radius:12px;margin-bottom:18px}.alert.ok{background:#143b31;color:#baf7df}.alert.error{background:#48202b;color:#ffdce2}.alert.warning{background:#433817;color:#ffe9a3}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 11px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}td small,td a small{display:block;color:var(--muted);margin-top:3px}.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900;margin:2px}.status.online{background:rgba(73,214,157,.15);color:var(--green)}.status.offline{background:rgba(255,121,141,.12);color:#ffadba}.empty{padding:28px!important;text-align:center!important;color:var(--muted)}.list-item{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.list-item small{display:block;color:var(--muted);margin-top:4px}.inline-form{display:flex;align-items:center;gap:8px}.popover{position:absolute;right:0;z-index:5;padding:12px;background:#0a1421;border:1px solid var(--line);border-radius:12px;display:grid;gap:8px;min-width:270px}details{position:relative}.device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.device-card{padding:18px;border:1px solid var(--line);border-radius:15px;background:#0b1725}.device-card:hover{border-color:#526b8c}.device-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.device-top small,.device-card p{color:var(--muted)}.mini-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.mini-metrics span{font-size:11px;color:var(--muted)}.mini-metrics b{display:block;color:#fff;margin-top:3px}.scanner{padding:14px;border:1px dashed #526b8c;border-radius:14px;text-align:center}.scanner video{width:100%;max-height:390px;border-radius:12px;background:#000}.logic,.result-code{margin-top:14px;padding:14px;border-radius:13px;background:#0a1624;color:#bdcbe0;line-height:1.55}.result-code textarea{margin:10px 0}.login-body{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#1d3657,#07101b 55%)}.login-card{width:min(460px,94vw);padding:34px;border-radius:22px;background:rgba(12,24,39,.96);border:1px solid var(--line);box-shadow:0 30px 90px #0008;display:grid;gap:15px}.login-card h1{margin:0}.login-card p{color:var(--muted);line-height:1.5;margin:0 0 8px}@media(max-width:1000px){.layout{grid-template-columns:1fr}aside{position:relative;height:auto;display:block;padding:16px}aside nav{grid-template-columns:repeat(3,1fr);margin-top:12px}.logout{display:block}.cards{grid-template-columns:repeat(2,1fr)}.device-grid{grid-template-columns:repeat(2,1fr)}main{padding:22px}}@media(max-width:650px){aside nav{grid-template-columns:1fr 1fr}.grid.two,.form-grid,.form-grid.three,.device-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.device-title{align-items:flex-start;flex-direction:column}main{padding:16px}.panel{padding:17px}h1{font-size:28px}.top-user{display:none}}
.update-summary .key-short{font-size:18px;word-break:break-all}.device-version{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px;padding:11px;border-radius:12px;background:#081421;border:1px solid var(--line);font-size:12px;color:var(--muted)}.device-version b{color:#fff}.device-version .version-badge{grid-column:1/-1}.version-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:6px 10px;border-radius:999px;font-size:11px;font-style:normal;font-weight:900;text-transform:uppercase}.version-updated,.release-published{background:rgba(73,214,157,.16);color:#75e7b8}.version-outdated{background:rgba(255,187,77,.17);color:#ffd477}.version-unknown,.release-draft{background:rgba(144,164,191,.16);color:#c9d5e6}.version-future{background:rgba(140,112,255,.18);color:#c9baff}.release-disabled{background:rgba(255,121,141,.13);color:#ffadba}.version-filter{margin-bottom:18px;justify-content:flex-end}.version-filter label{min-width:260px}.version-panel{border-color:#405875}.version-detail{display:flex;flex-wrap:wrap;gap:10px 24px;color:var(--muted);font-size:13px}.notes-cell{white-space:normal;min-width:310px}.release-notes{max-height:145px;overflow:auto;margin-top:8px;color:var(--muted);line-height:1.45;white-space:normal}.action-stack{display:grid;gap:7px;min-width:150px}.action-stack form{margin:0}.action-stack .btn{width:100%}.usb-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.usb-steps div{display:flex;align-items:center;gap:11px;padding:15px;border-radius:14px;border:1px solid var(--line);background:#0a1624}.usb-steps b{display:grid;place-items:center;min-width:31px;height:31px;border-radius:50%;background:#e6a729;color:#211600}.usb-steps span{font-size:13px;color:#dce7f6;line-height:1.4}@media(max-width:1000px){.usb-steps{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.usb-steps{grid-template-columns:1fr}.device-version{grid-template-columns:1fr}.device-version .version-badge{grid-column:auto}.version-filter{justify-content:stretch}.version-filter label{min-width:0;width:100%}}
/* OFFLINEGAMES_MANAGEMENT_V4_POINT_CONTROL_PERIODS */
.mgmt-v4-point-row{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(148,163,184,.18)}
.mgmt-v4-point-row:last-child{border-bottom:0}.mgmt-v4-point-row small{display:block;margin-top:4px}
.mgmt-v4-device-group{margin-bottom:18px}.mgmt-v4-device-card{display:flex;flex-direction:column;gap:10px}.mgmt-v4-device-link{color:inherit;text-decoration:none;display:block;flex:1}.mgmt-v4-block-form{margin-top:auto}.mgmt-v4-block-form .btn{width:100%}
.mgmt-v4-modal{position:fixed;inset:0;z-index:9999;background:rgba(2,6,23,.78);backdrop-filter:blur(7px);display:grid;place-items:center;padding:22px;overflow:auto}.mgmt-v4-modal-card{width:min(980px,96vw);max-height:92vh;overflow:auto;background:#0f1b2d;border:1px solid #334155;border-radius:22px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.45)}
.mgmt-v4-report-device{padding:18px 0;border-top:1px solid rgba(148,163,184,.18)}.mgmt-v4-report-device h3,.mgmt-v4-report-total h3{margin:0 0 12px}.mgmt-v4-report-total{margin-top:18px;padding:20px;border-radius:16px;background:rgba(59,130,246,.10);border:1px solid rgba(96,165,250,.32)}
.mgmt-v4-reading-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mgmt-v4-reading-grid>div{background:rgba(15,23,42,.7);border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:12px}.mgmt-v4-reading-grid span{display:block;color:#93a4bd;font-size:12px;text-transform:uppercase}.mgmt-v4-reading-grid b{display:block;margin-top:4px;font-size:17px}.mgmt-v4-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.mgmt-v4-warn{color:#fbbf24!important}
@media(max-width:720px){.mgmt-v4-point-row{align-items:flex-start;flex-direction:column}.mgmt-v4-reading-grid{grid-template-columns:1fr 1fr}.mgmt-v4-modal{padding:8px}.mgmt-v4-modal-card{padding:16px}.mgmt-v4-modal-actions{flex-direction:column}.mgmt-v4-modal-actions .btn{width:100%}}


/* OFFLINEGAMES_MANAGEMENT_V5_SETTLEMENT_REMOTE_RTP_PARTIAL_RESET */
.mgmt-v5-point-card{padding:14px 0;border-bottom:1px solid rgba(148,163,184,.18)}.mgmt-v5-point-card:last-child{border-bottom:0}.mgmt-v5-point-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.mgmt-v5-point-head small{display:block;margin-top:4px}.mgmt-v5-point-edit{margin-top:12px;padding:14px;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:rgba(15,23,42,.46)}.mgmt-v5-point-edit form+form{margin-top:10px}.mgmt-v5-close-form{margin-top:10px;display:flex;justify-content:flex-end}.mgmt-v5-rtp-form{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:rgba(15,23,42,.45)}.mgmt-v5-rtp-form label{font-size:11px;color:#9fb0c8;text-transform:uppercase;font-weight:800}.mgmt-v5-rtp-form input{margin-top:5px;width:100%;min-width:0}.mgmt-v5-rtp-form .btn{grid-column:1/-1;width:100%}.mgmt-v5-settlement{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;padding:18px;border-radius:16px;border:1px solid rgba(250,204,21,.36);background:rgba(250,204,21,.07)}.mgmt-v5-settlement>div{padding:13px;border-radius:12px;background:rgba(15,23,42,.74);border:1px solid rgba(148,163,184,.18)}.mgmt-v5-settlement span{display:block;color:#9fb0c8;font-size:12px;text-transform:uppercase}.mgmt-v5-settlement b{display:block;margin-top:5px;font-size:20px}.mgmt-v5-settlement .admin-due{border-color:rgba(250,204,21,.55)}.mgmt-v5-settlement .admin-due b{color:#facc15;font-size:24px}
@media(max-width:720px){.mgmt-v5-point-head{align-items:flex-start;flex-direction:column}.mgmt-v5-point-head .btn,.mgmt-v5-close-form .btn{width:100%}.mgmt-v5-rtp-form,.mgmt-v5-settlement{grid-template-columns:1fr}}


/* ===================================================================
   OFFLINEGAMES_UI_DENSIDADE_V1  (2026-08-27)
   Bloco aditivo: nao altera nenhuma regra original acima.
   Para reverter, basta apagar deste comentario ate o final do arquivo.

   Objetivo: reduzir a escala tipografica e apertar respiros. O painel
   estava dimensionado para telas grandes; em uso real ele obriga a
   rolar muito e cada secao ocupa mais espaco do que informa.
   =================================================================== */

/* --- Tipografia: escala reduzida em ~30%, mantendo hierarquia --- */
.brand                        { font-size: 17px; margin: 0 6px 18px; letter-spacing: .02em; }
h1                            { font-size: 22px; margin: 2px 0; line-height: 1.2; }
h2                            { font-size: 15px; margin: 0 0 4px; letter-spacing: .01em; }
h3                            { font-size: 13px; }
.metric strong                { font-size: 19px; margin-top: 4px; }
.mgmt-v5-settlement b         { font-size: 15px; margin-top: 3px; }
.mgmt-v5-settlement .admin-due b { font-size: 17px; }
.mgmt-v4-reading-grid b       { font-size: 14px; margin-top: 2px; }
.update-summary .key-short    { font-size: 12px; }

/* --- Densidade: menos respiro vertical, mais conteudo por tela --- */
body                          { padding: 14px; }
.panel                        { padding: 14px 16px; margin-bottom: 12px; }
.card                         { padding: 12px 14px; }
.cards                        { gap: 10px; }
section.panel + section.panel { margin-top: 10px; }

/* --- Tabelas: linhas mais baixas, cabecalho discreto --- */
table                         { font-size: 12.5px; }
table th                      { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; padding: 6px 8px; }
table td                      { padding: 7px 8px; }
table td small                { font-size: 10.5px; opacity: .75; }

/* --- Botoes: menores, sem perder area de clique confortavel --- */
.btn                          { font-size: 12px; padding: 7px 12px; }
.btn.small                    { font-size: 11px; padding: 5px 9px; }

/* --- Formularios --- */
.form label                   { font-size: 12px; }
.form input, .form select, .form textarea { font-size: 13px; padding: 7px 9px; }

/* --- Blocos auxiliares que hoje competem com o conteudo --- */
.logic, .alert, .release-notes { font-size: 11.5px; line-height: 1.45; }
.usb-steps span               { font-size: 11.5px; }

/* --- Navegacao lateral: itens mais compactos --- */
nav a                         { font-size: 13px; padding: 7px 10px; }

/* --- Estado de equipamento bloqueado: precisa saltar aos olhos --- */
.dev-bloqueado                { border-color: var(--red) !important; }
.badge-bloqueado {
  display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .05em;
  padding: 3px 8px; border-radius: 999px; text-transform: uppercase;
  background: rgba(255, 121, 141, .14); color: var(--red); border: 1px solid var(--red);
}
.badge-liberado {
  display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .05em;
  padding: 3px 8px; border-radius: 999px; text-transform: uppercase;
  background: rgba(73, 214, 157, .12); color: var(--green); border: 1px solid rgba(73, 214, 157, .5);
}


/* --- Tela de Equipamentos V3: grade de cards compactos ---------------------
   Cards retangulares pequenos, varios por linha, com todas as acoes cabendo
   dentro. Agrupados por cliente/ponto sob um sub-cabecalho discreto, tudo
   dentro de um painel unico.                                                */
.eq-topo                       { align-items: flex-start; gap: 12px; }
.eq-topo-acoes                 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.eq-topo-acoes select          { height: 32px; font-size: 12px; padding: 0 8px; width: auto; }

.eq-grupo                      { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 12px; }
.eq-grupo:first-of-type        { border-top: 0; margin-top: 8px; padding-top: 0; }
.eq-grupo-cab                  { display: flex; align-items: baseline; gap: 7px; margin-bottom: 9px; }
.eq-cliente                    { font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.eq-sep                        { color: var(--muted); }
.eq-ponto                      { font-size: 13px; font-weight: 800; color: #fff; }
.eq-grupo-cab em               { margin-left: auto; font-size: 10.5px; color: var(--muted); font-style: normal; }

/* Grade: cards se acomodam sozinhos conforme a largura da tela */
.eq-grade                      { display: grid; grid-template-columns: repeat(auto-fill, minmax(292px, 1fr)); gap: 9px; }

.eq-card                       { display: grid; gap: 6px; align-content: start;
                                 padding: 10px 11px; border: 1px solid var(--line);
                                 border-radius: 12px; background: #0b1725; min-width: 0; }
.eq-card:hover                 { border-color: #526b8c; }

.eq-c-topo                     { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; }
.eq-nome                       { font-weight: 850; font-size: 12.5px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eq-nome:hover                 { color: var(--gold); }

.eq-id                         { font-size: 9.5px; color: #8093ad; background: #091522;
                                 padding: 3px 6px; border-radius: 6px; overflow: hidden;
                                 text-overflow: ellipsis; white-space: nowrap; display: block; }

.eq-c-versao                   { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.eq-c-versao span              { font-size: 10.5px; color: var(--muted); }

.eq-c-nums                     { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px;
                                 padding: 6px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.eq-c-nums span                { display: block; font-size: 9.5px; color: var(--muted); text-transform: lowercase; }
.eq-c-nums b                   { display: block; font-size: 10.5px; color: #dfeaff; margin-top: 2px; white-space: nowrap; }

.eq-c-acoes                    { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.eq-c-acoes form               { margin: 0; }
.eq-c-acoes .btn.small         { font-size: 9.5px; padding: 4px 7px; min-height: 25px; letter-spacing: 0; white-space: nowrap; }

.eq-rtp                        { position: static; }
.eq-rtp summary                { list-style: none; cursor: pointer; }
.eq-rtp summary::-webkit-details-marker { display: none; }
.eq-rtp[open] > summary        { border-color: var(--gold); color: var(--gold); }
.eq-rtp-form                   { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 6px;
                                 margin-top: 7px; padding: 8px; border: 1px solid var(--line);
                                 border-radius: 9px; background: #091522; }
.eq-rtp-form label             { font-size: 9.5px; gap: 3px; }
.eq-rtp-form input             { height: 28px; width: 100%; font-size: 11px; padding: 3px 6px; }
.eq-rtp[open]                  { grid-column: 1 / -1; width: 100%; }

.dev-bloqueado                 { background: #170d12; border-color: rgba(255,121,141,.45); }

@media(max-width:650px){
  .eq-topo-acoes               { width: 100%; }
  .eq-grade                    { grid-template-columns: 1fr; }
}

.eq-c-nums .eq-pos             { color: #bfe9d6; }
.eq-c-nums .eq-neg             { color: var(--red); }
.eq-dono                       { margin-left: auto; font-size: 9.5px; color: #7f93ae;
                                 max-width: 42%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* --- PG_OFFLINE_INTEGRITY_ALERT_V1: versao publicada sem registro ----------
   Aviso na tela de atualizacoes. Vermelho de verdade, porque enquanto ele
   estiver ali existe maquina parada na tela de ativacao.                    */
.ia-alerta            { border-color: rgba(255,121,141,.55);
                        background: linear-gradient(180deg,#1b0f16,#141b29); }
.ia-cab               { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.ia-icone             { font-size: 22px; line-height: 1; color: #ff798d; }
.ia-alerta h2         { color: #ff9aa8; margin: 0 0 3px; }
.ia-cab p             { margin: 0; font-size: 12px; color: var(--muted); }

.ia-item              { display: grid; gap: 7px; padding: 11px 12px; margin-top: 9px;
                        border: 1px solid var(--line); border-radius: 11px; background: #0b1725; }
.ia-item-grave        { border-color: rgba(255,121,141,.5); background: #170d12; }
.ia-item-topo         { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.ia-item-topo b       { font-size: 13.5px; color: #fff; }

.ia-chip              { font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
                        padding: 3px 8px; border-radius: 999px; background: rgba(255,121,141,.16);
                        color: #ff9aa8; border: 1px solid rgba(255,121,141,.4); }
.ia-chip-espera       { background: rgba(255,212,92,.14); color: var(--gold); border-color: rgba(255,212,92,.38); }

.ia-desc              { margin: 0; font-size: 11.5px; line-height: 1.5; color: var(--muted); }
.ia-digest            { display: block; font-size: 10.5px; color: #8fa6c4; background: #091522;
                        padding: 5px 8px; border-radius: 7px; overflow-x: auto;
                        white-space: nowrap; user-select: all; }
.ia-item form         { margin: 2px 0 0; }

@media(max-width:650px){ .ia-digest { font-size: 9.5px; } }

/* --- PG_OFFLINE_STORE_V1: vitrine e catalogo -------------------------------
   Cards maiores que os de equipamento: aqui a imagem do jogo e o argumento de
   venda, entao ela ganha espaco e o texto vem depois.                       */
.loja-grade      { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
                   gap: 14px; margin-top: 14px; }
.loja-card       { display: flex; flex-direction: column; border: 1px solid var(--line);
                   border-radius: 13px; background: #0b1725; overflow: hidden; }
.loja-card:hover { border-color: #526b8c; }
.loja-capa       { aspect-ratio: 4/3; background: #091522 center/cover no-repeat;
                   display: flex; align-items: center; justify-content: center; }
.loja-sem-capa   { font-family: inherit; font-size: 34px; font-weight: 800; color: #2c3f57;
                   text-transform: uppercase; letter-spacing: .04em; }
.loja-corpo      { display: flex; flex-direction: column; gap: 8px; padding: 13px 14px; }
.loja-corpo h3   { margin: 0; font-size: 15px; font-weight: 800; color: #fff; }
.loja-desc       { margin: 0; font-size: 12px; line-height: 1.45; color: var(--muted);
                   display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
                   overflow: hidden; }
.loja-meta       { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.loja-preco      { font-size: 17px; font-weight: 800; color: var(--gold); }
.loja-tam        { font-size: 11px; color: var(--muted); }
.loja-video      { font-size: 12px; color: var(--gold); }
.loja-corpo .btn { width: 100%; justify-content: center; }
.loja-aviso      { margin-top: 16px; font-size: 12px; color: var(--muted); }

@media(max-width:640px){ .loja-grade { grid-template-columns: 1fr 1fr; } }

/* --- PG_OFFLINE_STORE_V1: tela de pagamento ------------------------------- */
.loja-comprar    { display: flex; gap: 6px; align-items: stretch; margin: 0; }
.loja-comprar input[type=number] { width: 58px; height: auto; text-align: center; font-size: 13px; }
.loja-comprar .btn { flex: 1; justify-content: center; }

.pgto-grade      { display: grid; grid-template-columns: minmax(0,260px) 1fr; gap: 22px; margin-top: 16px; }
.pgto-qr         { display: flex; align-items: flex-start; justify-content: center; }
.pgto-qr img     { width: 100%; max-width: 260px; border-radius: 12px; background: #fff; padding: 10px; }
.pgto-sem-qr     { padding: 22px; border: 1px dashed var(--line); border-radius: 12px;
                   color: var(--muted); font-size: 13px; text-align: center; }
.pgto-lado       { display: flex; flex-direction: column; gap: 12px; }
.pgto-lado textarea { font-family: "IBM Plex Mono", ui-monospace, monospace; font-size: 11.5px;
                   word-break: break-all; }
.pgto-tempo      { margin: 0; font-size: 12.5px; color: var(--muted); }
.pgto-msg        { margin: 0; font-size: 13px; color: var(--gold); min-height: 20px; }

@media(max-width:720px){ .pgto-grade { grid-template-columns: 1fr; } }

/* PG_STORE_SALDO_NO_TOPO_V1 (10/09): topo fixo com o saldo do cliente.
   O header vira sticky com fundo proprio -- sem o fundo, a lista de jogos
   passa por baixo e some o texto. O z-index fica abaixo do popover (5). */
main > header{position:sticky;top:0;z-index:4;background:var(--bg);
  padding:14px 0 12px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.top-user{display:flex!important;flex-direction:column!important;align-items:flex-end;gap:7px}
.top-saldo-caixa{display:inline-flex;align-items:stretch;gap:6px}
.top-recarga{display:inline-flex;align-items:center;justify-content:center;width:38px;
  border-radius:999px;background:linear-gradient(180deg,#ffe17a,#e6a729);color:#211600;
  font-size:22px;font-weight:900;line-height:1;border:0}
.top-recarga:hover{filter:brightness(1.08)}
.top-nome{color:var(--muted)}
.top-saldo{display:inline-flex;align-items:baseline;gap:8px;padding:7px 13px;border-radius:999px;
  background:var(--panel2);border:1px solid var(--line);white-space:nowrap}
.top-saldo span{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.top-saldo b{font-size:16px;color:#fff}
.top-saldo.tem{border-color:rgba(73,214,157,.45)}
.top-saldo.tem b{color:var(--green)}
@media(max-width:650px){
  main > header{padding-top:10px}
  .top-user{display:flex}          /* o saldo continua visivel no celular */
  .top-nome{display:none}          /* o nome, nao: nao cabe */
}

/* PG_STORE_RECARGA_V1: popup de escolher o valor da recarga. */
#recargaFundo{position:fixed;inset:0;z-index:60;background:rgba(2,6,23,.78);
  backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}
#recargaFundo[hidden]{display:none}
#recargaCaixa{width:min(460px,95vw);background:#0f1b2d;border:1px solid var(--line);
  border-radius:20px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.5)}
#recargaCaixa h3{margin:0 0 6px;font-size:20px}
#recargaCaixa p{color:var(--muted);margin:0 0 16px;line-height:1.5}
.recarga-valores{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:16px}
.recarga-op{padding:13px 6px;border-radius:12px;border:1px solid var(--line);
  background:#17263a;color:#fff;font-weight:850;cursor:pointer;font-size:14px}
.recarga-op:hover{border-color:#526b8c}
.recarga-op.sel{background:linear-gradient(180deg,#ffe17a,#e6a729);color:#211600;border-color:transparent}
.recarga-acoes{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
@media(max-width:520px){.recarga-valores{grid-template-columns:repeat(2,1fr)}}

/* QR desenhado no navegador quando o gateway nao manda a imagem. */
#pgto-qrbox{display:inline-block;padding:12px;background:#fff;border-radius:14px;line-height:0}
#pgto-qrbox img,#pgto-qrbox canvas{display:block}

/* PG_STORE_TESTE_V1: tela do teste do jogo. */
#testeMoldura{position:relative;width:100%;aspect-ratio:16/9;min-height:420px;
  border-radius:14px;overflow:hidden;background:#000;border:1px solid var(--line)}
#testeJogo{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.btn.testar{background:#17384a;border-color:#2c6a86;color:#bfe9ff}
.btn.testar:hover{border-color:#4aa7cc}
form.loja-testar{margin-top:8px}
form.loja-testar .btn{width:100%}
