/* =====================================================================
   base.css - camada visual nova do Lotecando
   ---------------------------------------------------------------------
   Arquivo NOVO e aditivo. Nao substitui index.css nem abas.css: as
   paginas antigas continuam so com aqueles dois, e cada pagina migrada
   passa a linkar este aqui no lugar deles.

   Nada aqui usa tabela para layout. As cores por loteria sao as mesmas
   que ja estavam espalhadas em barraesq.asp, agora em um lugar so.
   ===================================================================== */

:root{
  --verde-900:#04291B; --verde-700:#005634; --cor-credito:#005634; --verde:#007143; --verde-claro:#18964C;
  --amarelo:#FFC916; --amarelo-escuro:#C99500; --sobre-verde:#FFFFFF;
  --papel:#F4F7F4; --superficie:#FFFFFF; --superficie-2:#EDF2EE;
  --linha:#D8E1DA; --linha-forte:#B9C7BE;
  --tinta:#15211B; --tinta-media:#4E5D55; --tinta-fraca:#71817A;
  --alerta:#B3261E; --alerta-fundo:#FCEDEC; --azul-atraso:#1E5FA8;
  --sombra:0 1px 2px rgba(4,41,27,.06), 0 6px 18px -8px rgba(4,41,27,.18);
  --sombra-alta:0 2px 4px rgba(4,41,27,.08), 0 14px 34px -12px rgba(4,41,27,.28);
  --raio:10px;
  --largura:1180px;
  --menu:224px;

  /* cores por loteria - iguais as de barraesq.asp */
  --lot-6:#F63437;   /* Loteca      */
  --lot-1:#18964C;   /* Mega-Sena   */
  --lot-4:#1E0B79;   /* Quina       */
  --lot-8:#A1508D;   /* Lotofacil   */
  --lot-9:#B9A200;   /* Timemania   */
  --lot-2:#A41128;   /* Dupla Sena  */
  --lot-3:#FF6F04;   /* Lotomania   */
  --lot-20:#F63437;  /* Quiniela    */
  --lot-0:#5C6A62;   /* fallback    */

  /* variantes das cores acima com contraste AA como TEXTO sobre branco.
     A cor cheia continua valendo para bolinha, faixa e anel. */
  --lot-6-txt:#C8262A;   /* Loteca      3.5:1 -> 4.8:1 */
  --lot-1-txt:#10703A;   /* Mega-Sena   3.6:1 -> 5.2:1 */
  --lot-4-txt:#1E0B79;   /* Quina       ja passava      */
  --lot-8-txt:#8A3F77;   /* Lotofacil   5.4:1 -> 6.6:1 */
  --lot-9-txt:#7E6D00;   /* Timemania   2.6:1 -> 5.5:1 */
  --lot-2-txt:#A41128;   /* Dupla Sena  ja passava      */
  --lot-3-txt:#B24B00;   /* Lotomania   2.8:1 -> 5.1:1 */
  --lot-20-txt:#C8262A;  /* Quiniela    igual a Loteca  */
  --lot-0-txt:#4E5D55;
}

*{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0; background:var(--papel); color:var(--tinta);
  font-family:"Segoe UI",Tahoma,Verdana,system-ui,sans-serif;
  font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--verde-700); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; height:auto}
:focus-visible{outline:2px solid var(--amarelo-escuro); outline-offset:2px; border-radius:4px}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important}
}

.pagina{max-width:var(--largura); margin:0 auto; background:var(--superficie);
        box-shadow:var(--sombra); min-height:100vh}

/* ---------- barra de sessao (topo preto-verde) ---------- */
.sessao{
  background:var(--verde-900); color:#D6E5DC;
  padding:9px 20px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  font-size:13.5px;
}
.sessao form{display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:0}
.sessao input{
  font:400 14px inherit; font-family:inherit; padding:7px 10px; width:180px;
  border:1px solid rgba(255,255,255,.22); border-radius:7px;
  background:rgba(255,255,255,.08); color:#fff;
}
.sessao input::placeholder{color:#8CA598}
.sessao input:focus{background:rgba(255,255,255,.14); border-color:var(--amarelo)}
.sessao a{color:#A8C0B4}
.sessao a:hover{color:#fff}
.sessao b{color:#fff}
.sessao .dir{margin-left:auto; display:flex; gap:16px; align-items:center; flex-wrap:wrap}
.btn-entrar{
  font:700 13.5px inherit; font-family:inherit; padding:8px 18px; cursor:pointer;
  background:var(--amarelo); color:#2B2100; border:0; border-radius:7px;
}
.btn-entrar:hover{background:#FFD745}

.erro-login{
  background:var(--alerta-fundo); color:var(--alerta); border-bottom:1px solid var(--linha);
  padding:10px 20px; font-size:14px; font-weight:600;
}
/*--Cadastro incompleto (padrao/topo.asp): a mesma tarja, com o link para
    o formulario. Fica em toda pagina ate o usuario completar os dados. */
.aviso-cadastro{
  background:var(--alerta-fundo); color:var(--alerta); border-bottom:1px solid var(--linha);
  padding:10px 20px; font-size:14px; font-weight:600;
}
.aviso-cadastro a{color:var(--alerta); text-decoration:underline; margin-left:6px; white-space:nowrap}

/*--Confirmacao de e-mail pendente (padrao/verificaemail.asp): a mesma tarja,
    com o campo do e-mail e os dois botoes. A linha quebra sozinha conforme a
    largura, e os dois botoes ficam num .acoes para descerem juntos - senao o
    "Alterar e-mail" cai sozinho numa segunda linha vazia. */
.aviso-email{
  background:var(--alerta-fundo); color:var(--alerta); border-bottom:1px solid var(--linha);
  padding:10px 20px; font-size:14px;
}
.aviso-email form{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0}
.aviso-email b{font-weight:700}
.aviso-email label{font-weight:600}
.aviso-email input[type=email]{
  font-family:inherit; font-size:14.5px; padding:8px 11px; border-radius:8px;
  border:1px solid var(--linha-forte); background:var(--superficie); color:var(--tinta);
  flex:1 1 240px; min-width:0; max-width:360px;
}
.aviso-email input[type=email]:focus{
  border-color:var(--verde); outline:2px solid rgba(0,113,67,.18); outline-offset:0}
/* o grupo pode encolher: no celular ele cai para a linha de baixo e ai os dois
   botoes se empilham, em vez de furar a largura da tela */
.aviso-email .acoes{flex:0 1 auto; max-width:100%}
.aviso-email .btn-perigo, .aviso-email .btn-2{padding:8px 16px; font-size:14px}

/* ---------- cabecalho ----------
   O 21px da esquerda nao e arbitrario: poe o logo na mesma linha vertical do
   texto dos itens do menu, que cai em 18px de padding + 3px da borda que vira
   o traco do item ativo. Mexer aqui sem mexer em .menu h2 desalinha a coluna. */
.cabecalho{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  padding:16px 20px 16px 21px; border-bottom:1px solid var(--linha); background:var(--superficie);
}
.cabecalho .logo img{display:block; height:44px; width:auto}
/* A caixa do logo tem largura fixa para a divisoria da assinatura cair EM CIMA
   da borda direita do menu, e as duas virarem uma linha so descendo a pagina:
   21 do padding do cabecalho + 184 + 18 do gap = 223, que e onde comeca o 1px
   de borda da coluna de 224 (box-sizing:border-box). Se mudar o padding ou o
   gap de .cabecalho, esta conta muda junto. */
.cabecalho .logo{width:calc(var(--menu) - 21px - 18px - 1px)}
.assinatura{
  font-size:13.5px; color:var(--tinta-media); margin:0;
  border-left:1px solid var(--linha); padding-left:18px; max-width:34ch;
}
.assinatura b{color:var(--verde-700); font-weight:600}
.saldo{
  margin-left:auto; display:flex; align-items:baseline; gap:9px;
  background:var(--superficie-2); border:1px solid var(--linha);
  border-radius:var(--raio); padding:9px 16px;
}
.saldo .rot{font-size:10.5px; font-weight:700; letter-spacing:.09em;
            text-transform:uppercase; color:var(--tinta-fraca)}
.saldo .val{font-size:19px; font-weight:700; font-variant-numeric:tabular-nums;
            color:var(--verde-700)}

/* menu sanfonado no celular: puro CSS, sem JS */
.troca-menu{position:absolute; opacity:0; width:0; height:0}
.hamburguer{
  display:none; align-items:center; gap:8px; cursor:pointer;
  font-size:14px; font-weight:600;
  background:var(--superficie-2); color:var(--tinta);
  border:1px solid var(--linha); border-radius:8px; padding:9px 14px;
}
.hamburguer:hover{border-color:var(--linha-forte)}
.troca-menu:focus-visible + .cabecalho .hamburguer{outline:2px solid var(--amarelo-escuro); outline-offset:2px}

/* ---------- corpo: menu lateral + conteudo ---------- */
.corpo{display:grid; grid-template-columns:var(--menu) minmax(0,1fr); align-items:start}
.menu{border-right:1px solid var(--linha); background:var(--superficie-2);
      padding:14px 0 30px; align-self:stretch}
.menu h2{font-size:10.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase;
         color:var(--verde-700); margin:20px 0 7px; padding:0 18px 0 21px} /* 21 = 18 + a borda de .menu a */
.menu h2:first-child{margin-top:4px}
.menu a{display:block; padding:7px 18px; font-size:14px; color:var(--tinta-media);
        border-left:3px solid transparent}
.menu a:hover{background:var(--superficie); color:var(--tinta); text-decoration:none;
              border-left-color:var(--linha-forte)}
.menu a[aria-current]{color:var(--verde-700); font-weight:600; background:var(--superficie);
                      border-left-color:var(--verde)}
.menu .pt{display:inline-block; width:7px; height:7px; border-radius:50%;
          margin-right:8px; vertical-align:middle}
.menu .acao{display:block; margin:12px 14px 4px; padding:10px 14px; text-align:center;
            background:var(--amarelo); color:#2B2100; border-radius:8px;
            font-size:14px; font-weight:700; border-left:0}
.menu .acao:hover{background:#FFD745; color:#2B2100; text-decoration:none; border-left:0}

/* ---------- niveis do menu lateral: secao > grupo > item ----------
   Nasceu no /adminml em 03/09/2026 e desceu para ca em 10/09/2026, quando
   o menu do site ganhou os mesmos tres niveis (padrao/menu.asp). O
   adminml/admin.css NAO repete estas regras: as duas telas leem daqui, e
   o /adminml so troca as cores, pelo tema.css.

   Antes das duas mudancas o menu era uma escada de titulos iguais: o
   titulo era 10,5px em caixa alta, ou seja, MAIS FRACO que o item de 14px
   que ele deveria comandar. Agora cada nivel tem forma propria:
     secao - faixa preenchida atravessando a coluna inteira;
     grupo - texto escuro de 12,5px, sem caixa alta, com os itens recuados
             sob um fio vertical (o "trilho" do .grupo abaixo);
     item  - o <a> de sempre, recuado sob o trilho.
   O trilho e o que faz o grupo ter comeco E fim visiveis; so o titulo
   marcaria o comeco, e num menu longo o item solto le como se fosse do
   grupo de cima. */
.menu h2.secao{
  font-size:11px; letter-spacing:.16em; color:var(--tinta);
  background:var(--linha); margin:26px 0 0; padding:6px 18px 6px 21px;
  border-top:1px solid var(--linha-forte); border-bottom:1px solid var(--linha-forte);
}
.menu h2.secao:first-child{margin-top:0}
/*--No site a primeira coisa do menu e o botao Cadastre-se, e nao a faixa. */
.menu .acao + h2.secao{margin-top:16px}
.menu h2.secao + a, .menu h2.secao + .grupo{margin-top:10px}
.menu h2.secao + h2{margin-top:14px}

/* titulo de grupo: vira texto de comando, mais forte que o item */
.menu h2:not(.secao){
  font-size:12.5px; letter-spacing:0; text-transform:none;
  color:var(--tinta); margin:18px 0 4px;
}

/* trilho: liga os itens ao titulo que os comanda. Quem monta o menu
   envolve os itens de cada grupo em <div class="grupo">. A pagina atual
   acende o pedaco do trilho que lhe cabe, no lugar da borda esquerda que
   este arquivo desenha nos itens fora de grupo. */
.menu .grupo{position:relative; margin-left:24px; padding-left:12px}
.menu .grupo::before{content:""; position:absolute; left:0; top:4px; bottom:4px;
                     width:2px; border-radius:2px; background:var(--linha-forte)}
.menu .grupo a{position:relative; padding:6px 18px 6px 8px; border-left:0}
.menu .grupo a[aria-current]{background:transparent}
.menu .grupo a[aria-current]::before{content:""; position:absolute;
                     left:-12px; top:0; bottom:0; width:2px;
                     background:var(--verde); border-radius:2px}

.conteudo{padding:24px 26px 40px; min-width:0; display:flex; flex-direction:column; gap:30px}

/* ---------- cabecalho de secao ---------- */
.secao-topo{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; margin-bottom:14px}
.secao-topo h1, .secao-topo h2{
  font-size:22px; font-weight:700; line-height:1.2; margin:0; color:var(--tinta);
  text-wrap:balance; letter-spacing:-.015em;
}
.secao-topo .sub{font-size:14px; color:var(--tinta-fraca)}
.secao-topo .todos{margin-left:auto; font-size:14px; font-weight:600}

/* ---------- cards de bolao ---------- */
.boloes{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px;
        margin:0; padding:0; list-style:none}
.bolao{
  position:relative; display:flex; flex-direction:column; gap:11px;
  background:var(--superficie); border:1px solid var(--linha); border-radius:var(--raio);
  padding:15px 16px 16px; box-shadow:var(--sombra); overflow:hidden;
  transition:box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}
.bolao::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--cor,var(--lot-0))}
.bolao:hover{box-shadow:var(--sombra-alta); border-color:var(--linha-forte); transform:translateY(-2px)}
.bolao .loteria{
  display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700;
  letter-spacing:.03em; text-transform:uppercase; color:var(--cor-txt,var(--lot-0-txt));
}
.bolao .concurso{margin-left:auto; font-size:12px; font-weight:500; color:var(--tinta-fraca);
                 font-variant-numeric:tabular-nums; text-transform:none; letter-spacing:0}
.valor .rot{display:block; font-size:10.5px; font-weight:700; letter-spacing:.09em;
            text-transform:uppercase; color:var(--tinta-fraca); margin-bottom:1px}
.valor .val{font-size:29px; font-weight:800; line-height:1.05;
            font-variant-numeric:tabular-nums; letter-spacing:-.025em; color:var(--tinta)}
.valor .val small{font-size:16px; font-weight:600; color:var(--tinta-media); margin-right:3px}
.bolao .estimativa .val{font-size:20px; color:var(--cor-txt,var(--lot-0-txt)); overflow-wrap:anywhere}

/* barra de quanto do jogo ja foi inscrito */
.barra{height:7px; border-radius:99px; background:var(--superficie-2);
       border:1px solid var(--linha); overflow:hidden}
.barra span{display:block; height:100%; background:var(--cor,var(--verde)); border-radius:99px}
.barra-leg{display:flex; justify-content:space-between; gap:10px; font-size:12.5px;
           color:var(--tinta-media); font-variant-numeric:tabular-nums}
.barra-leg b{color:var(--tinta); font-weight:600}

.linhas{display:grid; grid-template-columns:1fr 1fr; gap:8px 14px; font-size:13.5px;
        border-top:1px solid var(--linha); padding-top:11px}
.linhas div{display:flex; flex-direction:column}
.linhas .rot{font-size:10.5px; font-weight:700; letter-spacing:.09em;
             text-transform:uppercase; color:var(--tinta-fraca)}
.linhas .dado{font-weight:600; color:var(--tinta); font-variant-numeric:tabular-nums}

.prazo{display:flex; align-items:center; gap:8px; margin-top:auto}
.pill{display:inline-flex; align-items:center; gap:6px; border-radius:999px;
      padding:4px 11px; font-size:12px; font-weight:600; white-space:nowrap}
.pill.calmo{background:var(--superficie-2); color:var(--tinta-media); border:1px solid var(--linha)}
.pill.urgente{background:var(--alerta-fundo); color:var(--alerta);
              border:1px solid rgba(179,38,30,.35); font-weight:700}
.pill .bolinha{width:6px; height:6px; border-radius:50%; background:currentColor}
.pill.urgente .bolinha{animation:pulsa 1.6s ease-in-out infinite}
@keyframes pulsa{0%,100%{opacity:1} 50%{opacity:.25}}

.btn-participar{
  display:block; text-align:center; padding:10px; border-radius:8px;
  background:var(--verde); color:var(--sobre-verde); font-size:14.5px; font-weight:700;
}
.btn-participar:hover{filter:brightness(1.09); text-decoration:none; color:var(--sobre-verde)}
.btn-participar:disabled{font-family:inherit; line-height:inherit; border:0;
                        background:var(--linha); color:var(--tinta-media); cursor:not-allowed; filter:none}

.vazio{padding:22px; border:1px dashed var(--linha-forte); border-radius:var(--raio);
       color:var(--tinta-media); font-size:15px; text-align:center; background:var(--superficie-2)}

/* tira compacta de bolo~es abertos - o que as telas internas mostram */
.tira{display:flex; align-items:center; gap:12px; flex-wrap:wrap;
      background:var(--superficie-2); border:1px solid var(--linha);
      border-radius:var(--raio); padding:11px 14px}
.tira .rot{font-size:10.5px; font-weight:700; letter-spacing:.09em;
           text-transform:uppercase; color:var(--tinta-fraca); white-space:nowrap}
.tira .atalhos{margin:0}
.atalho small{color:var(--tinta-fraca); font-weight:500; font-size:12px}
.atalho:hover small{color:inherit}
span.atalho{cursor:default}

/* atalhos que nao sao bolao (Seco, Ranking) */
.atalhos{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px;
         padding:0; list-style:none}
.atalhos li{display:contents}
.atalho{display:inline-flex; align-items:center; gap:8px; padding:8px 15px;
        border:1px solid var(--linha); border-radius:999px; background:var(--superficie);
        font-size:13.5px; font-weight:600; color:var(--tinta-media)}
.atalho:hover{border-color:var(--cor,var(--verde)); color:var(--cor-txt,var(--verde-700)); text-decoration:none}
.atalho .pt{width:8px; height:8px; border-radius:50%; background:var(--cor,var(--verde))}

/* ---------- cabecalho de pagina interna ----------
   Substitui a "aba" de tres GIFs (aba_sel_esq/meio/dir.gif) que nomeava
   cada tela. Era uma aba so, sempre selecionada, sem nenhuma irma ao lado:
   um titulo desenhado como se fosse navegacao. */
.titulo-pagina{border-bottom:1px solid var(--linha); padding-bottom:14px}
.titulo-pagina h1{font-size:24px; font-weight:700; line-height:1.2; margin:0;
                  letter-spacing:-.015em; text-wrap:balance}
.titulo-pagina .sub{margin:5px 0 0; font-size:14.5px; color:var(--tinta-fraca); max-width:70ch}

/* ---------- passos do caixa ----------
   Substitui a regua de abas em GIF (aba_formadepagamento, aba_confirmacaodosdados
   e aba_finalizacaodacompra) que marcava as tres etapas da compra. */
.passos{display:flex; flex-wrap:wrap; gap:6px 22px; margin:0; padding:0;
        list-style:none; counter-reset:passo; font-size:13.5px}
.passos li{display:inline-flex; align-items:center; gap:8px; color:var(--tinta-fraca);
           counter-increment:passo; white-space:nowrap}
.passos li::before{content:counter(passo); display:inline-grid; place-items:center;
        width:22px; height:22px; border-radius:50%; font-size:12px; font-weight:700;
        background:var(--superficie-2); border:1px solid var(--linha-forte);
        color:var(--tinta-media)}
.passos li[aria-current]{color:var(--verde-700); font-weight:700}
.passos li[aria-current]::before{background:var(--verde); border-color:var(--verde);
        color:var(--sobre-verde)}
.passos li.feito::before{content:"\2713"; background:var(--verde-900);
        border-color:var(--verde-900); color:#fff}

/* ---------- texto corrido ---------- */
.prosa{font-size:15.5px; color:var(--tinta-media); max-width:68ch}
/* A regra de margem zero precisa ser tao especifica quanto a de
   espacamento e vir antes dela. Como ".prosa p" (0,1,1) e mais
   especifica que ".prosa > * + *" (0,1,0), o margin:0 vencia e nenhuma
   pagina migrada tinha respiro entre paragrafos. */
.prosa > *{margin:0}
.prosa > * + *{margin-top:14px}
.prosa b, .prosa strong{color:var(--tinta); font-weight:600}
.prosa img{border-radius:6px; border:1px solid var(--linha)}
.prosa ol, .prosa ul{margin:0; padding-left:22px}
.prosa li + li{margin-top:6px}

/* ---------- card com titulo ----------
   Substitui o par .BordasCinzas + .TituloAreaCinza + <hr> das telas antigas. */
.cartao{background:var(--superficie); border:1px solid var(--linha);
        border-radius:var(--raio); padding:18px 20px; box-shadow:var(--sombra)}
.cartao > h2{font-size:16px; font-weight:700; margin:0 0 12px; color:var(--verde-700);
             padding-bottom:10px; border-bottom:1px solid var(--linha)}
/* Titulo de cartao com uma acao a direita, na mesma linha. A acao e um form
   proprio ou um .dir com botao de um form de fora. A divisoria sai do
   h2 e passa para o cabecalho, para continuar atravessando o cartao inteiro
   por baixo dos dois. Abaixo de 560px a acao desce e ocupa a largura toda,
   igual ao .secao-topo .todos. */
.cartao > .titulo-cartao{display:flex; align-items:center; gap:12px; flex-wrap:wrap;
                         margin:0 0 12px; padding-bottom:10px;
                         border-bottom:1px solid var(--linha)}
.cartao > .titulo-cartao > h2{font-size:16px; font-weight:700; margin:0;
                              color:var(--verde-700); padding:0; border:0}
.cartao > .titulo-cartao > form, .cartao > .titulo-cartao > .dir{margin:0 0 0 auto}
.cartoes{display:flex; flex-direction:column; gap:16px}

/* ---------- abas dentro de um cartao ----------
   Um cartao com duas ou mais faces que se excluem (meusjogos: marcar as
   dezenas OU colar cartoes prontos). A regua toma o lugar do h2: fica na
   mesma posicao, com a mesma divisoria atravessando o cartao, e a aba
   aberta faz as vezes de titulo. Marcacao: um [role=tablist] com
   <button type="button" class="aba" role="tab" aria-controls="id-do-painel">
   e, embaixo, um [role=tabpanel] por aba, os fechados com hidden. A troca
   (clique, setas, Home/End) e do function.js (AbreAba), por delegacao -
   nenhum onClick no HTML. Nao confundir com .abas-loteria, que e
   navegacao entre paginas. */
.cartao > .abas{display:flex; flex-wrap:wrap; gap:2px; margin:0 0 16px; padding:0;
                border-bottom:1px solid var(--linha)}
.aba{appearance:none; -webkit-appearance:none; border:0; border-bottom:2px solid transparent;
     margin:0 0 -1px; padding:8px 14px 9px; background:none; border-radius:6px 6px 0 0;
     cursor:pointer; font-family:inherit; font-size:15px; font-weight:600; line-height:1.3;
     color:var(--tinta-media); transition:color .12s ease, background .12s ease}
.aba:hover{color:var(--verde-700); background:var(--superficie-2)}
.aba[aria-selected="true"]{color:var(--verde-700); border-bottom-color:var(--verde)}
.aba:focus-visible{outline-offset:-2px; border-radius:6px}
.painel-aba[hidden]{display:none}
/* Estreito: os rotulos nao cabem lado a lado e, empilhados, o sublinhado
   deixa de dizer qual esta aberta. Vira um controle segmentado: metades
   iguais, a aberta em relevo sobre o fundo cinza, rotulo em ate duas linhas. */
@media (max-width:560px){
  .cartao > .abas{display:grid; grid-auto-flow:column; grid-auto-columns:1fr; gap:2px;
                  padding:3px; border:1px solid var(--linha-forte); border-radius:8px;
                  background:var(--superficie-2)}
  .aba{margin:0; border:0; border-radius:6px; padding:7px 6px; text-align:center;
       font-size:13.5px; line-height:1.25; color:var(--tinta-media)}
  .aba:hover{background:transparent; color:var(--verde-700)}
  .aba[aria-selected="true"]{background:var(--superficie); color:var(--verde-700); box-shadow:var(--sombra)}
  .aba:focus-visible{outline-offset:0}
}

/* Cartao de login: a linha de campos nao precisa da largura toda. */
.cartao.entrada{max-width:440px}

/* ---------- lista de recursos do software ---------- */
.recursos{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 26px;
          margin:0; padding:0}
.recursos > div{break-inside:avoid}
.recursos dt{font-size:14px; font-weight:700; color:var(--verde-700); margin-bottom:3px}
.recursos dd{margin:0; font-size:14.5px; color:var(--tinta-media)}

/* ---------- exemplo com figura ao lado (duvidas frequentes) ---------- */
.exemplo{display:grid; grid-template-columns:auto minmax(0,1fr); gap:22px; align-items:start}
.exemplo figure{margin:0}
.exemplo figure img{display:block; border:1px solid var(--linha); border-radius:6px}
.exemplo figcaption{margin-top:6px; font-size:12px; color:var(--tinta-fraca); text-align:center}
.transicoes{margin:0; padding-left:26px; font-size:14.5px; color:var(--tinta-media)}
.transicoes li{margin-top:5px}
.transicoes .sim{color:var(--alerta); font-weight:700}
.transicoes .nao{color:var(--tinta-fraca)}
.total{margin:14px 0 0; font-size:15px; font-weight:600; color:var(--tinta)}

/* ---------- lista de arquivos para download ---------- */
.arquivos{width:100%; border-collapse:collapse; font-size:14.5px}
.arquivos th{text-align:left; font-size:10.5px; font-weight:700; letter-spacing:.09em;
             text-transform:uppercase; color:var(--tinta-fraca);
             padding:0 12px 8px; border-bottom:1px solid var(--linha)}
.arquivos td{padding:11px 12px; border-bottom:1px solid var(--linha); vertical-align:baseline}
.arquivos tr:hover td{background:var(--superficie-2)}
.arquivos .nome{font-weight:600}
.arquivos .peso{color:var(--tinta-fraca); font-variant-numeric:tabular-nums; white-space:nowrap;
                text-align:right}
.arquivos .obs{color:var(--tinta-media)}

/* ---------- abas de loteria (estatisticas) ----------
   Antes eram doze GIFs (abaFacaSeuJogo<Loteria>On/Off.gif) trocados por
   MM_swapImage do Dreamweaver. Agora e texto, com a cor da propria loteria. */
.abas-loteria{display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0; list-style:none}
.aba-lot{display:inline-flex; align-items:center; gap:7px; padding:8px 15px;
         border:1px solid var(--linha); border-radius:999px; background:var(--superficie);
         font-size:14px; font-weight:600; color:var(--tinta-media); cursor:pointer;
         font-family:inherit}
.aba-lot:hover{border-color:var(--cor); color:var(--cor-txt); text-decoration:none}
.aba-lot .pt{width:8px; height:8px; border-radius:50%; background:var(--cor)}
.aba-lot[aria-current]{background:var(--verde-900); border-color:var(--verde-900); color:#fff}
.aba-lot[aria-current] .pt{background:var(--cor)}

/* ---------- ordenacao ---------- */
.ordenacao{display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:14px}
.ordenacao .rot{font-size:10.5px; font-weight:700; letter-spacing:.09em;
                text-transform:uppercase; color:var(--tinta-fraca); margin-right:4px}
.ordenacao button{font:600 13.5px inherit; font-family:inherit; padding:6px 13px; cursor:pointer;
                  border:1px solid var(--linha); border-radius:999px;
                  background:var(--superficie); color:var(--tinta-media)}
.ordenacao button:hover{border-color:var(--linha-forte); color:var(--tinta)}
.ordenacao button[aria-current]{background:var(--verde); border-color:var(--verde);
                                color:var(--sobre-verde)}

/* ---------- grade de dezenas ----------
   As bolas eram bola00.gif..bola99.gif, 23x23px. Viraram circulo em CSS:
   nitido em qualquer tela, na cor da loteria, e ate cem requisicoes a menos
   por pageview na Lotomania. --cols vem do "Quebra" de cada loteria. */
/* Rotulo de cada grade. A estatistica e por SORTEIO desde o script 28 do
   banco, e quem tem dois sorteios por concurso (Dupla Sena e Timemania)
   ganha uma grade para cada - o rotulo diz de qual delas e, e sobre quantos
   concursos a conta foi feita. */
.rot-sorteio{margin:22px 0 10px; text-align:center; font-size:13px;
             color:var(--tinta-fraca)}
.rot-sorteio b{color:var(--tinta); font-size:14px}

.dezenas{display:grid; grid-template-columns:repeat(auto-fill, minmax(48px,1fr));
         gap:10px; margin:0 auto; padding:0; list-style:none;
         max-width:calc(var(--cols,10) * 58px)}
.dezena{display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center}
.dezena .bola{width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
              border:2px solid var(--cor,var(--verde)); color:var(--tinta);
              background:var(--superficie); font-size:15px; font-weight:700;
              font-variant-numeric:tabular-nums}
.dezena .freq{font-size:11.5px; font-weight:600; color:var(--alerta);
              font-variant-numeric:tabular-nums}
.dezena .atr{font-size:11.5px; font-weight:600; color:var(--azul-atraso);
             font-variant-numeric:tabular-nums}
.legenda{display:flex; flex-wrap:wrap; gap:16px; justify-content:center;
         font-size:13px; color:var(--tinta-fraca); border-top:1px solid var(--linha);
         padding-top:14px}
.legenda span{display:inline-flex; align-items:center; gap:6px}
.legenda i{width:9px; height:9px; border-radius:50%; font-style:normal}

/* ---------- botoes ----------
   Substituem os btn_*.gif (voltar, avancar, continuar, processar, fechar,
   resgatarpremios, comprarcreditos, verextratodetalhado, outroperiodo).
   Eram texto dentro de imagem: nao escalavam, nao eram lidos por leitor de
   tela e nao davam para traduzir. */
.btn, .btn-2, .btn-perigo, .campo input[type=file]::file-selector-button{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:10px 20px; border-radius:8px; border:1px solid transparent;
  font-family:inherit; font-size:14.5px; font-weight:700; cursor:pointer;
  text-decoration:none; white-space:nowrap;
}
.btn{background:var(--verde); color:var(--sobre-verde)}
.btn:hover{filter:brightness(1.09); text-decoration:none; color:var(--sobre-verde)}
.btn-2, .campo input[type=file]::file-selector-button{background:var(--superficie); color:var(--tinta); border-color:var(--linha-forte)}
.btn-2:hover, .campo input[type=file]::file-selector-button:hover{background:var(--superficie-2); text-decoration:none; color:var(--tinta)}
.btn-perigo{background:var(--alerta); color:#fff}
.btn-perigo:hover{filter:brightness(1.09); text-decoration:none; color:#fff}
.btn[disabled], .btn-2[disabled], .btn-perigo[disabled]{opacity:.5; cursor:not-allowed}
.acoes{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.acoes .dir{margin-left:auto}

/* ---------- paginas de bolao ---------- */
.nav-concurso{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
.nav-concurso .dir{margin-left:auto}
.prazo-bolao{margin:0 0 14px; font-size:15px; color:var(--tinta-media)}
.prazo-bolao b{color:var(--tinta); font-weight:700; white-space:nowrap}
.rot-seco{margin:0 0 12px; font-size:14px; font-weight:600; color:var(--tinta)}
.lancamentos .ok{color:var(--verde-700); font-weight:700}
.lancamentos .pendente{color:var(--alerta); font-weight:600}

/* Cartao da Loteca: 14 jogos, tres colunas de palpite.
   Era uma tabela de 386px fixos com os quadradinhos desenhados por dois
   GIFs de fundo (sq.gif e sqx.gif). Agora as celulas sao proprias e a
   grade acompanha a largura disponivel.
   Medidas internas em em (05/09/2026): a grade leva table.encaixa, e o
   EncaixaTabela do function.js reduz o font-size da tabela ate a linha
   inteira caber na largura do cartao no celular - com padding e largura
   das celulas em em, a grade encolhe junto com a letra. As colunas dos
   times nao tem mais width:35%: a porcentagem inflava a largura minima
   da tabela (410px para 14 jogos) e e ela que forcava a rolagem; sem
   ela as duas colunas de time dividem o que sobra das fixas. As colunas
   fixas (.jg e .cel) nao tem padding lateral: a largura declarada e a
   caixa inteira, e assim a medida fora do fluxo do EncaixaTabela bate
   com o que a tabela ocupa dentro do cartao (o padding lateral somava
   12px por coluna fora do fluxo e sumia dentro dele). */
.cartao-loteca{width:100%;max-width:440px;min-width:270px;border-collapse:separate;border-spacing:0;
  border:1px solid var(--linha);border-radius:6px;background:var(--papel);color:var(--tinta);
  font-size:12px;line-height:1.35;margin:0 auto;overflow:hidden}
.cartao-loteca caption{caption-side:top;padding:7px 8px;font-size:12px;font-weight:600;
  text-align:left;color:var(--tinta);background:var(--papel)}
.cartao-loteca th{background:var(--superficie-2);color:var(--tinta-fraca);font-size:11px;
  font-weight:400;letter-spacing:normal;text-transform:none;text-align:center;padding:4px 2px;border:0;border-bottom:1px solid var(--linha)}
.cartao-loteca td{padding:4px 6px;border:0;border-bottom:1px solid var(--linha);text-align:center;vertical-align:middle}
.cartao-loteca tbody tr:last-child td{border-bottom:0}
.cartao-loteca .jg{width:20px;color:var(--tinta-fraca);font-variant-numeric:tabular-nums}
.cartao-loteca .tm{text-align:left;overflow-wrap:anywhere}
.cartao-loteca td.tm{color:var(--tinta)}
.cartao-loteca .tm.d{text-align:right}
.cartao-loteca .cel{position:relative;isolation:isolate;width:26px;min-width:26px;height:28px;padding:4px 2px;
  font-weight:600;white-space:nowrap;color:var(--tinta);background-clip:content-box;cursor:default}
.cartao-loteca .cel::before{content:"";position:absolute;inset:4px 2px;border:1px solid var(--tinta-fraca);
  border-radius:3px;pointer-events:none;z-index:-1}
.cartao-loteca .cel.marcada{color:var(--sobre-verde)}
.cartao-loteca .cel.marcada::before{border-color:var(--verde);background:var(--verde)}
.cartao-loteca .cel.marcada:empty::after{content:"\2713"}
.cartao-loteca .cel.saiu::before{border:2px solid var(--verde)}
.cartao-loteca .cel.saiu.marcada::before{border:2px solid var(--amarelo)}
.cartao-loteca .cel[onclick]{cursor:pointer}
.cartao-loteca .cel[onclick]:hover::before{background:var(--superficie-2)}
.cartao-loteca .cel[onclick].marcada:hover::before{background:var(--verde)}

/* ---------- participacoes do seco ----------
   Ate 05/09/2026 cada participante era um cartao com a grade dos 14 jogos
   ja desenhada - com "Mostrar todas" a pagina vinha com setenta grades. Agora
   e uma tabela com uma linha por participante (colocacao, nome, acertos,
   data) e a grade so e buscada quando a seta da linha e clicada
   (seco/palpites.js + palpite.asp), entrando na linha de detalhe logo
   abaixo. Por isso o botao "Mostrar todas" saiu: a lista mostra todo mundo
   sempre, e continua leve. O layout e fixo para a grade do detalhe
   (colspan) nao esticar as colunas nem a tabela alem da tela. */
.participacoes{width:100%; border-collapse:collapse; font-size:14px; table-layout:fixed}
/*--So as celulas da propria lista (> tr > td): a grade do palpite que abre
    no detalhe e outra tabela dentro de uma destas celulas, e "th"/"td" sem
    o filho direto vazavam para ela (padding, borda, caixa alta). */
.participacoes > thead > tr > th{text-align:left; font-size:10.5px; font-weight:700; letter-spacing:.09em;
                  text-transform:uppercase; color:var(--tinta-fraca); padding:8px 10px;
                  border-bottom:1px solid var(--linha-forte); white-space:nowrap}
.participacoes > tbody > tr > td{padding:8px 10px; border-bottom:1px solid var(--linha); vertical-align:middle}
.participacoes th.seta, .participacoes td.seta{width:38px; padding-left:4px; padding-right:4px}
.participacoes th.pos, .participacoes td.pos{width:44px; padding-left:4px; padding-right:4px;
                                             color:var(--tinta-fraca); white-space:nowrap;
                                             font-variant-numeric:tabular-nums}
.participacoes .nome{font-weight:600; color:var(--tinta); overflow-wrap:anywhere}
.participacoes .voce{display:inline-block; margin-left:6px; padding:1px 7px; border-radius:999px;
                     font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
                     background:var(--verde); color:var(--sobre-verde); vertical-align:1px}
.participacoes th.num, .participacoes td.num{width:70px; text-align:right; white-space:nowrap;
                                             font-variant-numeric:tabular-nums}
.participacoes td.num{font-weight:700; color:var(--tinta)}
.participacoes th.data, .participacoes td.data{width:130px; text-align:right; white-space:nowrap;
                                               color:var(--tinta-media); font-variant-numeric:tabular-nums}
.participacoes tbody tr.linha:hover > td{background:var(--superficie-2)}
.participacoes tr.eu > td{background:#EAF6EE}
.participacoes tr.eu:hover > td{background:#DDEFE3}
/*--A linha aberta e o detalhe formam um bloco so: sem a borda entre eles. */
.participacoes tr.linha.aberta > td{border-bottom:0}
.participacoes tr.detalhe > td{padding:4px 10px 18px}
.participacoes tr.detalhe .grade{min-height:40px}
.participacoes tr.detalhe .acoes{margin-top:14px; justify-content:center}
/* o hidden do navegador perde para display:table-row em alguns temas de
   tabela; aqui a linha de detalhe fechada NAO pode ocupar espaco */
.participacoes tr[hidden]{display:none}
/*--A seta: para baixo fechada, para cima aberta (gira pelo aria-expanded que
    o palpites.js troca). Leva .btn-icone so para o .btn-ocupado do dialogo.css
    trocar o svg pelo anel enquanto o palpite nao chega. */
.participacoes button.seta{display:inline-flex; align-items:center; justify-content:center;
                           width:30px; height:30px; padding:0; border:1px solid var(--linha-forte);
                           border-radius:6px; background:var(--superficie); color:var(--tinta-media);
                           cursor:pointer}
.participacoes button.seta:hover{color:var(--verde-700); border-color:var(--tinta-fraca);
                                 background:var(--superficie)}
.participacoes button.seta svg{display:block; transition:transform .18s ease}
.participacoes button.seta[aria-expanded=true] svg{transform:rotate(180deg)}
@media (prefers-reduced-motion: reduce){
  .participacoes button.seta svg{transition:none}
}
/*--A data tem uma coluna so no desktop. No celular ela sai da coluna e
    aparece embaixo do nome (.quando), senao "Participante" invadia
    "Acertos" e a data quebrava em duas linhas. A coluna e zerada, nao
    escondida: com table-layout:fixed o Chrome mantem a coluna de uma
    celula display:none (o colspan do detalhe pede cinco) e joga nela a
    sobra de largura - a tabela ficava com um vazio de 90px a direita. */
.participacoes .quando{display:none}
@media (max-width: 560px){
  .participacoes > thead > tr > th, .participacoes > tbody > tr > td{padding-left:6px; padding-right:6px}
  .participacoes th.data, .participacoes td.data{width:0; padding:0; border:0; overflow:hidden;
                                                 font-size:0; line-height:0}
  .participacoes .quando{display:block; margin-top:2px; font-size:12px; font-weight:400;
                         color:var(--tinta-fraca); font-variant-numeric:tabular-nums}
  .participacoes th.num, .participacoes td.num{width:64px}
  .participacoes th.pos, .participacoes td.pos{width:38px}
  .participacoes tr.detalhe > td{padding-left:0; padding-right:0}
}

/* ---------- classificacao do seco ----------
   As duas tabelas do ranking eram montadas com Response.Write repetindo
   height=16 e align=center em cada celula, e a linha do proprio usuario
   saia com uma segunda classe de cor (GridItemAzul). */
.classificacao{width:100%; border-collapse:collapse; font-size:14px; min-width:420px}
.classificacao th{text-align:left; font-size:10.5px; font-weight:700; letter-spacing:.09em;
                  text-transform:uppercase; color:var(--tinta-fraca); padding:8px 10px;
                  border-bottom:1px solid var(--linha-forte); white-space:nowrap}
.classificacao td{padding:9px 10px; border-bottom:1px solid var(--linha)}
.classificacao .num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.classificacao th.num{text-align:right}
.classificacao .pos{width:56px; color:var(--tinta-fraca);
                    font-variant-numeric:tabular-nums; white-space:nowrap}
.classificacao tbody tr:hover td{background:var(--superficie-2)}
.classificacao tr.eu td{background:#EAF6EE; font-weight:600; color:var(--tinta)}
.classificacao tr.eu:hover td{background:#DDEFE3}
.classificacao tfoot td{border-top:2px solid var(--linha-forte); border-bottom:0;
                        font-weight:700; color:var(--verde-700)}

/* ---------- aviso ----------
   As telas de dinheiro traziam a mensagem de retorno num alert() montado
   com Request("msg") escapado a mao. Agora e uma tarja no proprio HTML:
   nao some com um clique distraido e nao depende de escapar JavaScript. */
.aviso{display:block; border-radius:var(--raio);
       padding:13px 16px; font-size:14.5px; font-weight:600;
       border:1px solid var(--linha); background:var(--superficie-2); color:var(--tinta)}
/*--Deu certo: fundo verde claro, borda verde escura. Deu errado: fundo vermelho
    bem claro, borda vermelha. Cores literais de proposito: sao semanticas e o
    tema.css do painel troca o --verde por amarelo. */
.aviso.bom{background:#E3F4E8; border-color:#146B3A; color:#0E4D2A}
/* o [hidden] do navegador perde para o display:block acima; sem isto o JS que
   esconde a tarja (limpaMSG do meusjogos/bp) deixava uma faixa verde vazia */
.aviso[hidden]{display:none}
.aviso.ruim{background:#FDF1F0; border-color:#C6231B; color:#9A1E17}

/* ---------- tabela de dados chave/valor ---------- */
.dados{width:100%; border-collapse:collapse; font-size:14.5px}
.dados th{text-align:left; font-weight:600; color:var(--tinta-media); padding:10px 12px;
          border-bottom:1px solid var(--linha); width:60%}
.dados td{text-align:right; padding:10px 12px; border-bottom:1px solid var(--linha);
          font-variant-numeric:tabular-nums; font-weight:600; color:var(--tinta)}
.dados tfoot th, .dados tfoot td{border-top:2px solid var(--linha-forte); border-bottom:0;
                                 font-size:16px; font-weight:700; color:var(--tinta);
                                 padding-top:13px}
.dados tfoot td{color:var(--verde-700)}

/* ---------- tabela de lancamentos ----------
   Rola dentro da propria caixa no celular, em vez de esticar a pagina. */
.rolagem{overflow-x:auto; -webkit-overflow-scrolling:touch}

/* ---------- tabela que se encaixa na largura (table.encaixa) ----------
   O EncaixaTabela do function.js mede a largura natural da tabela - uma
   linha por jogo, sem quebra - e, se nao cabe no pai, reduz o font-size
   da tabela (ate data-fonte-min, 9px por padrao) ate caber. Roda ao
   carregar, ao redimensionar e em conteudo montado depois (abas, linhas
   abertas sob demanda). As celulas nao quebram linha enquanto a fonte
   achada faz a tabela caber; se nem no piso cabe, a tabela recebe
   .quebra, as celulas voltam a quebrar linha e a tabela fica na largura
   do pai (o .rolagem em volta so rola se uma palavra sozinha nao couber).
   A classe .medindo existe so durante a medida e tira a tabela do fluxo
   (position:absolute + max-content): dentro do fluxo o Chrome devolve a
   largura do pai, e nao a que a tabela pede, quando ela esta numa celula
   de outra tabela com table-layout:fixed (a grade do detalhe da lista de
   participacoes do seco). Fora do fluxo a medida e a mesma em qualquer
   lugar. */
table.encaixa:not(.quebra) th, table.encaixa:not(.quebra) td{white-space:nowrap}
table.encaixa.medindo{position:absolute !important; width:max-content !important;
                      max-width:none !important; margin:0}
.lancamentos{width:100%; border-collapse:collapse; font-size:14px; min-width:620px}
.lancamentos > thead > tr > th, .lancamentos > tbody > tr > th{text-align:left; padding:9px 12px; border-bottom:1px solid var(--linha-forte);
                font-size:10.5px; font-weight:700; letter-spacing:.09em;
                text-transform:uppercase; color:var(--tinta-fraca); white-space:nowrap}
.lancamentos > tbody > tr > td, .lancamentos > tfoot > tr > td{padding:10px 12px; border-bottom:1px solid var(--linha); vertical-align:top}
.lancamentos > tbody > tr:hover > td{background:var(--superficie-2)}
.lancamentos .num{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap}
.lancamentos .data{white-space:nowrap; color:var(--tinta-media);
                   font-variant-numeric:tabular-nums}
.lancamentos > tfoot > tr > td{border-top:2px solid var(--linha-forte); border-bottom:0;
                      font-weight:700; padding-top:12px}
.credito{color:var(--cor-credito); font-weight:600}
.debito{color:var(--alerta); font-weight:600}

/* ---------- formularios ---------- */
.campos{display:flex; flex-direction:column; gap:16px; max-width:520px}
.campo{display:flex; flex-direction:column; gap:5px}
.campo > label{font-size:13.5px; font-weight:600; color:var(--tinta)}
.campo .dica{font-size:12.5px; color:var(--tinta-fraca)}
.campo input[type=text], .campo input[type=password], .campo input[type=email],
.campo input[type=file], .campo select, .campo textarea{
  font-family:inherit; font-size:15px; padding:9px 11px; border-radius:8px;
  border:1px solid var(--linha-forte); background:var(--superficie); color:var(--tinta);
  width:100%; max-width:100%;
}
.campo input:focus, .campo select:focus, .campo textarea:focus{
  border-color:var(--verde); outline:2px solid rgba(0,113,67,.18); outline-offset:0}
.campo input[readonly]{background:var(--superficie-2); color:var(--tinta-media)}
/* Upload: mesmos controles, botoes e tokens dos demais formularios. */
.campo input[type=file]{padding:0; min-width:0; overflow:hidden; text-overflow:ellipsis}
.campo input[type=file]::file-selector-button{margin-right:12px; border:0;
  border-right:1px solid var(--linha-forte); border-radius:0}
.campo input[type=file]:disabled{opacity:.5; cursor:not-allowed}
.envio-andamento[hidden]{display:none}
.envio-andamento .dica{margin:0}
.progresso-arquivo{display:block; width:100%; height:12px; appearance:none;
  border:0; border-radius:999px; overflow:hidden; background:var(--superficie-2);
  accent-color:var(--verde)}
.progresso-arquivo[hidden]{display:none}
.progresso-arquivo::-webkit-progress-bar{background:var(--superficie-2); border-radius:999px}
.progresso-arquivo::-webkit-progress-value{background:var(--verde); border-radius:999px}
.progresso-arquivo::-moz-progress-bar{background:var(--verde); border-radius:999px}

.campo.curto input{max-width:190px}
/* combo Sim/Nao (padrao do site desde 09/09/2026, no lugar dos radios) */
.campo select.simnao{max-width:190px}
.campo .comprefixo{display:flex; align-items:center; gap:8px}
.campo .comprefixo .prefixo{font-size:15px; font-weight:700; color:var(--tinta-media)}
.marcador{display:flex; gap:9px; align-items:flex-start; font-size:14px; color:var(--tinta-media)}
.marcador input{margin:3px 0 0; flex:none; width:16px; height:16px; accent-color:var(--verde)}

/* ---------- formulario de cadastro ----------
   A tela de cadastro era uma tabela de vinte linhas com rotulo a esquerda e
   campo a direita, largura fixa. Em duas colunas os campos curtos deixam de
   ocupar uma linha inteira, e no celular a grade vira coluna unica. */
.campos.grade{display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
              gap:16px 20px; max-width:none}
.campos.grade .largo{grid-column:1/-1}
.opcoes{display:flex; flex-wrap:wrap; gap:16px; align-items:center; padding-top:2px}
.opcoes label{display:inline-flex; align-items:center; gap:7px; font-size:14.5px;
              color:var(--tinta-media); cursor:pointer}
.opcoes input{margin:0; width:16px; height:16px; accent-color:var(--verde)}
.campo .comgrupo{display:flex; gap:8px; align-items:flex-start; flex-wrap:wrap}
.campo .comgrupo input[type=text]{flex:1 1 140px; min-width:0}
.campo .comgrupo .btn-2{flex:none; padding:9px 15px; font-size:14px; white-space:nowrap}
.obrigatorio{color:var(--alerta); font-weight:700}
.legenda-form{font-size:13px; color:var(--tinta-fraca); margin:0}

/* ---------- tela de recado (cadastro gravado, e-mail confirmado) ---------- */
.recado{max-width:620px; margin:0 auto; text-align:center;
        background:var(--superficie); border:1px solid var(--linha);
        border-radius:var(--raio); box-shadow:var(--sombra); padding:34px 28px}
.recado h1{font-size:21px; font-weight:700; margin:0 0 12px; color:var(--verde-700)}
.recado p{margin:0 0 14px; font-size:15.5px; color:var(--tinta-media)}
.recado p:last-of-type{margin-bottom:22px}
.recado b{color:var(--tinta)}
.recado .acoes{justify-content:center}
.recado.ruim h1{color:var(--alerta)}

/* ---------- pendencias ----------
   Eram linhas de tabela com um <form> emitido entre dois <tr>, fora de
   qualquer <td> - HTML invalido que so funcionava porque o navegador
   remendava. Como card, o formulario fica onde deve. */
.pendencias{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px}
.pendencia{border:1px solid var(--linha); border-radius:var(--raio);
           background:var(--superficie); box-shadow:var(--sombra); overflow:hidden}
.pend-topo{display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; padding:13px 16px}
.pend-topo .data{font-size:13px; color:var(--tinta-fraca); white-space:nowrap;
                 font-variant-numeric:tabular-nums}
.pend-topo .desc{font-size:15px; font-weight:600; color:var(--tinta)}
.pend-topo .valor{margin-left:auto; font-size:17px; font-weight:700;
                  font-variant-numeric:tabular-nums; white-space:nowrap}
.pend-fp{padding:0 16px 13px; font-size:13.5px; color:var(--tinta-media);
         display:flex; gap:8px; flex-wrap:wrap; align-items:center}
.pend-baixa{background:var(--superficie-2); border-top:1px solid var(--linha);
            padding:13px 16px; font-size:13.5px; color:var(--tinta-media)}
.pend-baixa form{display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin:0}
.pend-baixa .campo{gap:4px}
.pend-baixa label{font-size:12.5px; font-weight:600; color:var(--tinta)}
.pend-baixa input[type=text]{font-family:inherit; font-size:14.5px; padding:8px 10px;
                             border-radius:7px; border:1px solid var(--linha-forte);
                             background:var(--superficie); color:var(--tinta); width:200px}
.pend-baixa input[type=text]:focus{border-color:var(--verde);
                                   outline:2px solid rgba(0,113,67,.18)}
.pend-baixa .btn, .pend-baixa .btn-2{padding:8px 16px; font-size:14px}
/* Dois grupos na mesma pagina (pagamentos a identificar e resgates a
   pagar), cada um com titulo e uma linha de explicacao. O espaco entre os
   grupos e o gap de .conteudo. */
.grupo-pend h2{font-size:16px; font-weight:700; margin:0 0 4px; color:var(--verde-700)}
.grupo-pend .sub{margin:0 0 12px; font-size:13.5px; color:var(--tinta-fraca); max-width:70ch}

/* ---------- quadro de comunicados ----------
   Cada mensagem era montada com nove GIFs de borda (comunicados/im/topl,
   topm, topr, midl, midr, dot, bottoml, bottomm, bottomr) dentro de quatro
   tabelas aninhadas de 550px. Agora e um card. */
.msgs{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px}
.msg{border:1px solid var(--linha); border-left:4px solid var(--verde);
     border-radius:var(--raio); background:var(--superficie); box-shadow:var(--sombra)}
.msg.marcada{border-left-color:var(--linha-forte); opacity:.75}
.msg > header{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
              padding:12px 16px; border-bottom:1px solid var(--linha)}
.msg > header .cod{font-size:14.5px; font-weight:700; color:var(--verde-700)}
.msg > header time{margin-left:auto; font-size:13px; color:var(--tinta-fraca);
                   font-variant-numeric:tabular-nums; white-space:nowrap}
.msg .apagado{font-size:12.5px; font-weight:600; color:var(--alerta)}
.msg-corpo{padding:14px 16px; font-size:15px; color:var(--tinta-media); overflow-wrap:break-word}
.msg-corpo hr{border:0; border-top:1px solid var(--linha); margin:12px 0}
.msg-x{border:0; background:none; cursor:pointer; font-size:19px; line-height:1;
       color:var(--tinta-fraca); padding:0 4px; border-radius:5px; font-family:inherit}
.msg-x:hover{color:var(--alerta); background:var(--alerta-fundo)}
.msg-abrir{border:0; background:none; cursor:pointer; font-size:12.5px; font-weight:600;
           color:var(--tinta-fraca); font-family:inherit; padding:4px 8px; border-radius:6px}
.msg-abrir:hover{color:var(--tinta); background:var(--superficie-2)}
.msg-admin{border-top:1px solid var(--linha); background:var(--superficie-2);
           padding:12px 16px; display:flex; flex-wrap:wrap; gap:8px; align-items:center;
           font-size:13.5px; border-radius:0 0 var(--raio) var(--raio)}
.msg-admin .rot{font-size:10.5px; font-weight:700; letter-spacing:.09em;
                text-transform:uppercase; color:var(--tinta-fraca)}
.msg-admin button, .msg-admin a{font-family:inherit; font-size:13px; font-weight:600;
       padding:5px 11px; border-radius:6px; border:1px solid var(--linha-forte);
       background:var(--superficie); color:var(--tinta-media); cursor:pointer;
       text-decoration:none}
.msg-admin button:hover, .msg-admin a:hover{border-color:var(--tinta-fraca);
       color:var(--tinta); text-decoration:none}
.msg-admin input[type=text]{font-family:inherit; font-size:13.5px; width:56px;
       padding:5px 8px; border-radius:6px; border:1px solid var(--linha-forte);
       background:var(--superficie); color:var(--tinta); text-align:center}
.filtro{display:flex; flex-wrap:wrap; gap:12px; align-items:center;
        background:var(--superficie-2); border:1px solid var(--linha);
        border-radius:var(--raio); padding:12px 14px}
.filtro label{font-size:13.5px; color:var(--tinta-media)}
.filtro select, .filtro input[type=text]{font-family:inherit; font-size:14px; padding:7px 10px; border-radius:7px;
               border:1px solid var(--linha-forte); background:var(--superficie);
               color:var(--tinta)}
/* datas do historico de apostas (dd/mm/aaaa): largura fixa, nao a do size */
.filtro input[type=text]{width:118px; max-width:100%}
.filtro input[type=text]:focus{border-color:var(--verde); outline:2px solid rgba(0,113,67,.18); outline-offset:0}
.filtro .dir{margin-left:auto; display:flex; gap:8px; flex-wrap:wrap}
/*--Quando os controles do filtro estao dentro de um <form>, ele e que
    precisa ser a linha flexivel: senao o formulario inteiro vira um item so
    e nao encolhe. O max-width no select existe porque a largura dele e
    ditada pela maior <option>, e no Seco elas sao longas. */
.filtro form{display:flex; flex-wrap:wrap; align-items:center; gap:12px;
             margin:0; flex:1 1 auto; min-width:0}
.filtro select{max-width:100%}

/* ---------- popup (janelas abertas com window.open) ---------- */
.popup{max-width:640px; margin:0 auto; padding:18px 20px 24px;
       display:flex; flex-direction:column; gap:16px}
.popup > header h1{font-size:18px; font-weight:700; margin:0; letter-spacing:-.01em}
.popup > header{border-bottom:1px solid var(--linha); padding-bottom:12px}
.popup .acoes{border-top:1px solid var(--linha); padding-top:16px}
body.janela{background:var(--superficie)}

/* ---------- comunicado ---------- */
.comunicado{background:var(--superficie); border:1px solid var(--linha);
            border-left:4px solid var(--verde); border-radius:var(--raio);
            padding:16px 20px; box-shadow:var(--sombra)}
.comunicado .cab{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:7px}
.comunicado .cab h2{font-size:15px; font-weight:700; margin:0; color:var(--verde-700)}
.comunicado .cab time{margin-left:auto; font-size:13px; color:var(--tinta-fraca);
                      font-variant-numeric:tabular-nums}
.comunicado .texto{margin:0; font-size:15px; color:var(--tinta-media); max-width:68ch}

/* ---------- texto institucional ---------- */
.institucional{border-top:1px solid var(--linha); padding-top:26px}
.institucional p{font-size:15px; color:var(--tinta-media); max-width:66ch}
.colunas{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin-top:16px}
.colunas h3{font-size:14px; font-weight:700; margin:0 0 6px; color:var(--tinta)}
.colunas p{font-size:14.5px; margin:0}
.faixa-premios{
  margin-top:24px; padding:18px 22px; border-radius:var(--raio);
  background:linear-gradient(100deg, var(--verde-900), var(--verde-700));
  color:#EAF3ED; display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.faixa-premios .num{font-size:30px; font-weight:800; line-height:1; color:var(--amarelo);
                    font-variant-numeric:tabular-nums; letter-spacing:-.02em}
.faixa-premios p{margin:0; font-size:14.5px; max-width:52ch; color:#CFE0D6}

/* ---------- includes antigos presos dentro do layout novo ----------
   banner_googleadsense.asp e verificaemail.asp ainda emitem tabela de 780px
   fixos e sao compartilhados por dezenas de paginas, entao nao da para
   mexer neles agora. Aqui eles sao encolhidos; o que nao encolhe - o bloco
   de 728px do AdSense - rola dentro da propria caixa em vez de esticar a
   pagina inteira no celular. */
.legado{max-width:100%; overflow-x:auto}
.legado table{width:100% !important; max-width:100%}
.legado:empty{display:none}
.fblike{margin-top:4px}

/* ---------- rodape ---------- */
.rodape{background:var(--verde-900); color:#9FB6A9; padding:22px 26px;
        display:flex; gap:16px; flex-wrap:wrap; align-items:center; font-size:13.5px}
.rodape a{color:#CFE0D6}
.rodape .dir{margin-left:auto; display:flex; gap:16px; flex-wrap:wrap}
.palavras{color:var(--papel); background:var(--papel); font-size:1px; line-height:1}

/* ---------- responsivo ---------- */
@media (max-width: 900px){
  .corpo{grid-template-columns:1fr}
  .menu{display:none; border-right:0; border-bottom:1px solid var(--linha)}
  .troca-menu:checked ~ .corpo .menu{display:block}
  .hamburguer{display:inline-flex}
  .assinatura{display:none}
  .boloes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .colunas{grid-template-columns:1fr 1fr}
  .conteudo{padding:20px 18px 32px}
}
@media (max-width: 560px){
  .boloes{grid-template-columns:1fr}
  .colunas{grid-template-columns:1fr; gap:18px}
  .sessao{padding:10px 16px}
  .sessao form{width:100%}
  .sessao input{flex:1 1 140px; width:auto}
  .sessao .dir{width:100%; margin-left:0; justify-content:space-between}
  .cabecalho{padding:13px 16px; gap:12px}
  .cabecalho .logo img{height:38px}
  .cabecalho .logo{width:auto}
  .saldo{width:100%; margin-left:0; justify-content:space-between}
  .secao-topo h1, .secao-topo h2{font-size:19px}
  .secao-topo .todos{margin-left:0; width:100%}
  .cartao > .titulo-cartao > form, .cartao > .titulo-cartao > .dir{margin-left:0; width:100%}
  .cartao > .titulo-cartao > form .btn-2, .cartao > .titulo-cartao > .dir .btn{width:100%}
  .conteudo{padding:18px 16px 28px; gap:24px}
  .faixa-premios{padding:16px}
  .rodape{padding:18px 16px}
  .rodape .dir{margin-left:0; width:100%}
}

/* ---------- olho da senha ----------
   O botao e criado pelo function.js dentro de cada <span class="senha-olho">
   que envolve um campo de senha. Sem JavaScript o span nao vira nada e o
   campo continua igual ao de antes. */
.senha-olho{position:relative; display:block}
.senha-olho input[type=password], .senha-olho input[type=text]{padding-right:42px}
.olho{position:absolute; top:50%; right:5px; transform:translateY(-50%);
      display:inline-flex; align-items:center; justify-content:center;
      width:30px; height:30px; padding:0; border:0; border-radius:6px;
      background:none; color:var(--tinta-fraca); cursor:pointer}
.olho:hover{color:var(--verde-700); background:var(--superficie-2)}
.olho svg{display:block}
/*--Na barra de sessao o fundo e o verde escuro: o cinza do formulario
    sumiria ali dentro. */
.sessao .olho{color:#8CA598}
.sessao .olho:hover{color:#fff; background:rgba(255,255,255,.14)}

@media (max-width: 560px){
  /*--Quem estica na barra estreita agora e o span, nao mais o input. */
  .sessao .senha-olho{flex:1 1 140px}
  .sessao .senha-olho input{width:100%}
}

/* ---------- paginacao das listagens ----------
   Copia da paginacao do adminml (admin.css), com os mesmos tokens; o HTML
   vem do Paginacao() do function.asp. Faixa "Mostrando 21-40 de 541" a
   esquerda e os links a direita; no celular vira duas linhas. O site nao
   tem .btn-mini, entao os botoes Anterior/Proxima vivem escopados aqui. */
.paginacao{display:flex; flex-wrap:wrap; align-items:center; gap:10px 16px; margin-top:14px;
           font-size:13.5px; color:var(--tinta-media)}
.paginacao .faixa b{color:var(--tinta); font-variant-numeric:tabular-nums}
.paginacao .links{margin-left:auto; display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.paginacao .numeros{display:inline-flex; align-items:center; gap:3px; margin:0 4px}
.paginacao .btn-mini{display:inline-flex; align-items:center; justify-content:center;
  padding:5px 11px; border-radius:6px; font-family:inherit; font-size:13px; font-weight:600;
  cursor:pointer; text-decoration:none; white-space:nowrap;
  border:1px solid var(--linha-forte); background:var(--superficie); color:var(--tinta-media)}
.paginacao a.btn-mini:hover{border-color:var(--tinta-fraca); color:var(--tinta); text-decoration:none}
.paginacao .btn-mini.desligado{opacity:.45; cursor:default}
.paginacao .pag{display:inline-flex; align-items:center; justify-content:center; min-width:32px;
                height:30px; padding:0 8px; border-radius:6px; font-size:13px; font-weight:600;
                font-variant-numeric:tabular-nums; color:var(--tinta-media); text-decoration:none}
.paginacao a.pag:hover{background:var(--superficie-2); color:var(--tinta); text-decoration:none}
.paginacao .pag.atual{background:var(--verde); color:var(--sobre-verde)}
.paginacao .pag.salto{min-width:20px; padding:0; color:var(--tinta-fraca)}
.paginacao .porpagina{display:inline-flex; align-items:center; gap:7px; margin-left:10px}
.paginacao .porpagina label{color:var(--tinta-media)}
.paginacao select{font-family:inherit; font-size:13px; height:30px; padding:0 8px; border-radius:6px;
                  border:1px solid var(--linha-forte); background:var(--superficie); color:var(--tinta)}

@media (max-width: 560px){
  .paginacao .links{margin-left:0; width:100%}
}

/* ---------- volante de dezenas (bolaoparticipativo/bp_.asp e meusjogos/meusjogos_.asp) ----------
   A mesma .dezenas das estatisticas, so que clicavel: cada dezena e um
   <button type="button" class="bola" id="dNN"> dentro de .dezena, e a
   dezena marcada ganha a classe .marcada NA PROPRIA BOLA (e
   aria-pressed="true"). Antes eram <td> com <font> e hiddens hd01..hdNN
   que o JavaScript trocava na mao. A cor cheia vem de --cor, como na
   grade de estatisticas. As duas paginas gemeas foram unificadas nesta
   estrutura em 04/09/2026 (o JavaScript delas e identico).
   .qtd-dezenas e o contador embaixo da grade; .acoes .opcoes agrupa o
   combo da surpresinha com o botao Gerar; .cartao-dezenas e a coluna do
   cartao na tabela montada pelo JS; .resumo-cartoes e o "N cartoes / R$"
   do titulo; .btn-x e o x de excluir cartao na tabela. */
.dezenas.escolha .bola{cursor:pointer; user-select:none; font-family:inherit; padding:0;
                       transition:background .12s ease, color .12s ease}
.dezenas.escolha .bola:hover{background:var(--superficie-2)}
.dezenas.escolha .bola.marcada{background:var(--cor,var(--verde)); border-color:var(--cor,var(--verde)); color:#fff}
.dezenas.escolha .bola.marcada:hover{filter:brightness(1.08)}
.qtd-dezenas{margin:12px 0 14px; text-align:center; font-size:14px; font-weight:600; color:var(--tinta-media)}
.acoes .opcoes{display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13.5px; color:var(--tinta-media)}
.acoes .opcoes select{font-family:inherit; font-size:14px; padding:7px 10px; border-radius:7px;
                      border:1px solid var(--linha-forte); background:var(--superficie); color:var(--tinta)}
.lancamentos .cartao-dezenas{font-variant-numeric:tabular-nums; letter-spacing:.04em; white-space:nowrap}
.resumo-cartoes{font-size:14px; color:var(--tinta-media)}
.resumo-cartoes b{font-size:16px; color:var(--verde-700); font-variant-numeric:tabular-nums}
.btn-x{border:1px solid var(--linha-forte); background:var(--superficie); color:var(--tinta-fraca);
       cursor:pointer; font-size:17px; line-height:1; width:28px; height:28px; border-radius:6px;
       font-family:inherit; padding:0}
.btn-x:hover{color:var(--alerta); border-color:var(--alerta); background:var(--alerta-fundo)}

/* ---------- bolao geral (grupos.asp, conjuntos.asp, gruposespeciais.asp) ----------
   .cotas-info e a linha de resumo do cartao de concurso: sorteio,
   estimativa, selo "Acumulado" e as formas de pagamento (os fp_*.gif tem
   alturas diferentes, por isso a altura fixa). .sec e o texto secundario
   dentro da celula do grupo (descricao, dezenas, link do cartao) e .qtd e
   a coluna do select de cotas, que usa o .campo de sempre. Os selos
   hot/star/super viraram .pill. */
.cotas-info{display:flex; flex-wrap:wrap; align-items:center; gap:6px 18px;
            margin:0 0 12px; font-size:14px; color:var(--tinta-media)}
.cotas-info b{color:var(--tinta)}
.cotas-info .fp{display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap}
.cotas-info .fp img{height:22px; width:auto}
.lancamentos .sec{display:block; font-size:12.5px; font-weight:400; color:var(--tinta-fraca)}
.lancamentos .qtd{width:120px}
.lancamentos .qtd .campo select{padding:6px 8px; font-size:14px}

/* ---------- painel de mensagens ----------
   Complemento do quadro de comunicados: no mural o cabecalho de cada
   mensagem traz, alem do autor, o nome completo e a cidade/UF; e o painel
   de administrador mostra o e-mail. Texto secundario, sem cor de alerta. */
.msg > header .meta, .msg-admin .meta{font-size:13px; color:var(--tinta-fraca)}

/* ---------- tema do site (preferencia independente do adminml) ---------- */
.troca-tema-site{margin-left:auto; display:inline-flex; align-items:center; gap:9px;
  padding:8px 12px; border:1px solid var(--linha-forte); border-radius:8px;
  background:var(--superficie); color:var(--tinta-media); font-family:inherit;
  font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap}
.troca-tema-site[hidden]{display:none}
.troca-tema-site:hover{background:var(--superficie-2); color:var(--tinta)}
.tema-site-trilho{display:block; width:32px; height:18px; padding:2px; border-radius:999px; background:var(--linha-forte)}
.tema-site-trilho::before{content:""; display:block; width:14px; height:14px; border-radius:50%; background:var(--superficie)}
.troca-tema-site[aria-checked="true"] .tema-site-trilho{background:var(--amarelo)}
.troca-tema-site[aria-checked="true"] .tema-site-trilho::before{transform:translateX(14px); background:#2B2100}
@media (max-width:560px){
  .troca-tema-site{order:1}
  .cabecalho:has(.troca-tema-site) .saldo{order:2}
}
@media print{.troca-tema-site{display:none}}
/* As cores claras originais continuam valendo sem o atributo e na impressao. */
@media screen{
  :root[data-tema-site="escuro"]{
    color-scheme:dark;
    --verde-900:#0C241A; --verde-700:#82D5A7; --cor-credito:#82D5A7; --verde:#16814F; --verde-claro:#22985F;
    --papel:#111815; --superficie:#1B2520; --superficie-2:#25322B;
    --linha:#394C40; --linha-forte:#607869;
    --tinta:#EEF5F0; --tinta-media:#C3D3C8; --tinta-fraca:#A2B6AA;
    --alerta:#FF9C96; --alerta-fundo:#412421; --azul-atraso:#9BC8FF;
    --sombra:0 1px 2px rgba(0,0,0,.25), 0 6px 18px -8px rgba(0,0,0,.4);
    --sombra-alta:0 2px 4px rgba(0,0,0,.3), 0 14px 34px -12px rgba(0,0,0,.6);
    --lot-6-txt:#FF9698; --lot-1-txt:#80D8A0; --lot-4-txt:#B9A8FF;
    --lot-8-txt:#E4A3D3; --lot-9-txt:#DECE67; --lot-2-txt:#FF9BAA;
    --lot-3-txt:#FFB478; --lot-20-txt:#FF9698; --lot-0-txt:#BFCAC2;
  }
  :root[data-tema-site="escuro"] .aviso.bom{background:#203C2C; color:#A0E3B7; border-color:#477858}
  :root[data-tema-site="escuro"] .aviso.ruim{background:var(--alerta-fundo); color:var(--alerta); border-color:#A6625C}
  :root[data-tema-site="escuro"] .btn-perigo{background:#AD3028; color:#FFF}
  :root[data-tema-site="escuro"] .participacoes tr.eu > td,
  :root[data-tema-site="escuro"] .classificacao tr.eu td{background:#264735}
  :root[data-tema-site="escuro"] .participacoes tr.eu:hover > td,
  :root[data-tema-site="escuro"] .classificacao tr.eu:hover td{background:#30563F}
  :root[data-tema-site="escuro"] input::placeholder,
  :root[data-tema-site="escuro"] textarea::placeholder{color:var(--tinta-fraca); opacity:1}
  :root[data-tema-site="escuro"] input:focus,
  :root[data-tema-site="escuro"] select:focus,
  :root[data-tema-site="escuro"] textarea:focus{border-color:var(--verde-700); outline-color:var(--verde-700)}
  :root[data-tema-site="escuro"] .dialogo::backdrop{background:rgba(0,0,0,.7)}
}

/* Destino direto da paginacao: compartilhado pelo site e administrativo. */
.paginacao .pagina-direta{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;color:var(--tinta-media)}
.paginacao .pagina-numero{box-sizing:border-box;width:6ch;min-width:46px;height:30px;padding:0 4px;border:1px solid var(--linha-forte);border-radius:6px;background:var(--papel);color:var(--tinta);font:inherit;text-align:center;font-variant-numeric:tabular-nums}
.paginacao .pagina-numero:focus{outline:2px solid var(--verde);outline-offset:1px}

/* Seletor dos quatro secos fora da rolagem de participantes. */
.maiores-secos{width:100%;max-width:360px;margin:16px auto 0}
.maiores-secos[hidden]{display:none}
.maiores-secos .cartao-loteca{min-width:0;max-width:360px;table-layout:fixed;margin:0}
.maiores-secos .cartao-loteca th:first-child{width:22px}
.maiores-secos .cartao-loteca th:nth-child(3),
.maiores-secos .cartao-loteca th:nth-child(4),
.maiores-secos .cartao-loteca th:nth-child(5){width:24px}
.maiores-secos .cartao-loteca td{padding-left:3px;padding-right:3px}
.maiores-secos .cartao-loteca .cel{min-width:0;padding:4px 2px}
.maiores-secos .acoes{margin-top:12px;gap:8px}

/* Distribuicoes compartilham largura, alinhamento e rolagem. */
.secos-distribuicao{width:100%;max-width:440px;margin:16px auto 0;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.secos-distribuicao .cartao-loteca{min-width:360px;max-width:440px;table-layout:auto;margin:0 auto}
.secos-distribuicao .cartao-loteca .tm{white-space:nowrap;overflow-wrap:normal}
.secos-percentuais .cartao-loteca th:nth-child(3),
.secos-percentuais .cartao-loteca th:nth-child(4),
.secos-percentuais .cartao-loteca th:nth-child(5){width:38px}

/* Distribuicao do Seco: somente o resultado recebe fundo destacado. */
.seco-distribuicao{scrollbar-width:thin}
.seco-distribuicao .cartao-loteca{table-layout:fixed;min-width:400px}
.seco-distribuicao .cartao-loteca th.jg{width:22px}
.seco-distribuicao .cartao-loteca th:nth-child(3),
.seco-distribuicao .cartao-loteca th:nth-child(4),
.seco-distribuicao .cartao-loteca th:nth-child(5){width:42px}
.seco-distribuicao .cel{width:42px;min-width:42px;font-weight:400;font-variant-numeric:tabular-nums}
.seco-distribuicao .cel.saiu{color:var(--sobre-verde)}
.seco-distribuicao .cel.saiu::before{background:var(--verde);border:1px solid var(--verde)}

#cartoesJogo .cartao-aposta{display:flex;align-items:center;gap:8px}
#cartoesJogo .cartao-aposta .cb-previa{margin-top:0}
#cartoesJogo .cartao-ver{flex-shrink:0}
#cartoesJogo .cartao-ver:not(:disabled){cursor:pointer}
#cartoesJogo .cb-previa{margin-top:10px;min-width:270px;white-space:normal}
#cartoesJogo .cb-previa[hidden]{display:none}
#cartoesJogo .cb-aberto .mostra{display:none}
#cartoesJogo .cb-aberto .cb-previa{margin-top:0}
