/* =====================================================================
   Complementos do admin (central e promosoft) por cima de tema.css + admin.css:
   tabelas, formularios em grade, badges de estado, blocos de acao.
   ===================================================================== */
.pt-alerta.link { background: #fff7e6; color: #7a4d00; border: 1px dashed #e0b44a; word-break: break-all; }
.pt-alerta.link a { color: #7a4d00; font-weight: 600; }

/* Tabelas */
.pt-tabela { width: 100%; background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra-sm); }
.pt-tabela table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.pt-tabela th { text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--cor-texto-suave); background: var(--cor-fundo-alt); padding: .7rem .9rem; border-bottom: 1px solid var(--cor-borda); }
.pt-tabela td { padding: .7rem .9rem; border-bottom: 1px solid var(--cor-borda); vertical-align: middle; }
.pt-tabela tr:last-child td { border-bottom: 0; }
.pt-tabela tr:hover td { background: #fafcf8; }
.pt-tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.pt-tabela .acoes { text-align: right; white-space: nowrap; }
.pt-tabela .acoes form { display: inline; }

/* Badges de estado */
.pt-estado { display: inline-flex; align-items: center; gap: .35rem; font-size: .76rem; font-weight: 700; border-radius: 999px; padding: .2rem .65rem; text-transform: uppercase; letter-spacing: .03em; }
.pt-estado--RASCUNHO  { background: #eef2f7; color: #475569; }
.pt-estado--LIBERADA  { background: #fff4d6; color: #8a5a00; }
.pt-estado--NO_AR     { background: #dcfce7; color: #166534; }
.pt-estado--PAUSADA   { background: #fee2e2; color: #991b1b; }
.pt-estado--ENCERRADA { background: #e5e7eb; color: #374151; }
.pt-estado--ADMIN     { background: #dcfce7; color: #166534; }
.pt-estado--LOJA      { background: #fff4d6; color: #8a5a00; }
.pt-estado--sim       { background: #dcfce7; color: #166534; }
.pt-estado--nao       { background: #eef2f7; color: #475569; }

/* Formularios */
.pt-form { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 22px 24px; box-shadow: var(--sombra-sm); }
.pt-form-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px 16px; }
.pt-form-grid .c2 { grid-column: span 2; } .pt-form-grid .c3 { grid-column: span 3; } .pt-form-grid .c4 { grid-column: span 4; } .pt-form-grid .c6 { grid-column: span 6; }
.pt-form-grid .c8 { grid-column: span 8; } .pt-form-grid .c12 { grid-column: span 12; }
@media (max-width: 760px) { .pt-form-grid > * { grid-column: span 12 !important; } }
.cp-campo select, .cp-campo textarea { width: 100%; padding: .7rem .9rem; border: 1px solid var(--cor-borda); border-radius: 10px; font-size: 1rem; font-family: var(--fonte-corpo); background: #fff; }
.cp-campo textarea { min-height: 110px; resize: vertical; }
.cp-campo select:focus, .cp-campo textarea:focus { outline: none; border-color: var(--cor-primaria); box-shadow: 0 0 0 3px rgba(var(--cor-primaria-rgb),.15); }
.cp-campo .ajuda { font-size: .8rem; color: var(--cor-texto-suave); margin-top: .3rem; }
.cp-campo input[readonly] { background: var(--cor-fundo-alt); }
.pt-form__acoes { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; flex-wrap: wrap; }

/* Botoes pequenos e de perigo */
.btn-cp.sm { padding: .4rem .85rem; font-size: .85rem; }
.btn-cp.perigo { background: #b91c1c; }
.btn-cp.perigo:hover { background: #991b1b; }
.btn-cp.neutro { background: #475569; }
.btn-cp.neutro:hover { background: #334155; }

/* Blocos lado a lado (ficha da campanha) */
.pt-colunas { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; align-items: start; }
@media (max-width: 900px) { .pt-colunas { grid-template-columns: 1fr; } }
.pt-bloco { background: #fff; border: 1px solid var(--cor-borda); border-radius: var(--raio); padding: 18px 20px; box-shadow: var(--sombra-sm); margin-bottom: 18px; }
.pt-bloco h3 { font-size: 1rem; margin: 0 0 12px; display: flex; align-items: center; gap: .5rem; }
.pt-bloco h3 i { color: var(--cor-ouro); }
.pt-lista-dados { list-style: none; margin: 0; padding: 0; font-size: .92rem; }
.pt-lista-dados li { display: flex; justify-content: space-between; gap: 10px; padding: .45rem 0; border-bottom: 1px dashed var(--cor-borda); }
.pt-lista-dados li:last-child { border-bottom: 0; }
.pt-lista-dados li span:first-child { color: var(--cor-texto-suave); }
.pt-lista-dados li b { text-align: right; }
.pt-passo { display: flex; gap: 12px; align-items: flex-start; padding: .6rem 0; border-bottom: 1px dashed var(--cor-borda); font-size: .92rem; }
.pt-passo:last-child { border-bottom: 0; }
.pt-passo i { margin-top: .15rem; }
.pt-passo .ok { color: #166534; } .pt-passo .falta { color: #b45309; }
.pt-mono { font-family: monospace; font-size: .85rem; word-break: break-all; }
.pt-ajuda { font-size: .85rem; color: var(--cor-texto-suave); }

/* Tabelas largas: rolam dentro do cartao em vez de cortar; celulas-chave nao quebram */
.pt-tabela { overflow-x: auto; }
.pt-tabela table { min-width: 960px; font-size: .88rem; }
.pt-tabela td:first-child { min-width: 210px; }
.pt-tabela .pt-mono { white-space: nowrap; word-break: normal; font-size: .8rem; }
.pt-tabela td.nowrap, .pt-tabela .acoes, .pt-tabela .periodo { white-space: nowrap; }
.pt-tabela .acoes .btn-cp.sm { padding: .3rem .6rem; }

/* caixas e radios dentro de .cp-campo: tamanho natural, ao lado do rotulo */
.cp-campo input[type=checkbox], .cp-campo input[type=radio] { width: auto; display: inline-block; vertical-align: middle; margin: 0 .4rem 0 0; }
.cp-campo label:has(> input[type=checkbox]), .cp-campo label:has(> input[type=radio]) { display: flex; align-items: center; gap: .4rem; }
.cp-campo input[type=checkbox], .cp-campo input[type=radio] { width: 18px !important; height: 18px; padding: 0 !important; border: 0 !important; box-shadow: none !important; accent-color: var(--cor-primaria); }
.cp-campo label:has(> input[type=checkbox]), .cp-campo label:has(> input[type=radio]) { display: flex !important; }

/* Painel largo: a area util acompanha a tela (ate 1600px) e a tabela cabe inteira, sem barra */
.pt-main { max-width: 1600px; padding-left: 20px; padding-right: 20px; }
.pt-tabela { overflow-x: visible; }
.pt-tabela table { min-width: 0; table-layout: auto; }
.pt-tabela th { padding: .6rem .7rem; white-space: nowrap; }
.pt-tabela td { padding: .6rem .7rem; }
.pt-tabela td:first-child { min-width: 180px; }
@media (max-width: 1280px) { .pt-tabela { overflow-x: auto; } }

/* Cartoes dos jogos (aba Jogo) com a imagem alusiva do mostruario */
.jg-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 10px; }
.jg-cartao { border: 1px solid var(--cor-borda); border-radius: 12px; padding: 10px; background: #fff; display: flex; flex-direction: column; gap: 8px; box-shadow: var(--sombra-sm); }
.jg-cartao--atual { border-color: var(--cor-primaria); background: #f3faee; box-shadow: 0 0 0 3px rgba(var(--cor-primaria-rgb), .15); }
.jg-cartao__img { width: 100%; aspect-ratio: 120 / 74; object-fit: contain; border-radius: 8px; background: #F6F8F4; }
.jg-cartao b { font-size: .9rem; line-height: 1.25; }
.jg-cartao__acoes { display: flex; gap: 6px; margin-top: auto; }
/* icone como no index do mostruario: sobre o cartao branco, sem caixa de fundo */
.jg-cartao__img { background: transparent; border-radius: 0; height: 84px; aspect-ratio: auto; }
.jg-cartao { padding: 14px 12px 12px; }
/* icone ocupa a largura do cartao (viewBox 120x74 escala junto), sem caixa de fundo */
.jg-cartao__img { width: 100%; height: auto; aspect-ratio: 120 / 74; object-fit: contain; }
.jg-cartao { padding: 10px 12px 12px; gap: 6px; }
.jg-cartao__acoes { margin-top: 2px; }

/* grade unica dos 27 jogos: 4 por linha em tela larga, sem linha incompleta por grupo */
.jg-cartoes { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .jg-cartoes { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .jg-cartoes { grid-template-columns: repeat(2, 1fr); } }
.jg-cartao__grupo { display: block; font-weight: 500; font-size: .72rem; color: var(--cor-texto-suave); text-transform: uppercase; letter-spacing: .04em; margin-top: 2px; }

/* Menu longo (promosoft da campanha, 13 itens): marca + usuario na 1a linha, menu inteiro na 2a, sem corte. */
.pt-top--largo { flex-wrap: wrap; row-gap: 6px; }
.pt-top--largo .pt-top__user { margin-left: auto; }
.pt-top--largo .pt-nav { order: 3; flex-basis: 100%; flex-wrap: wrap; margin-left: 0; gap: .25rem .3rem; }
.pt-top--largo .pt-nav a { font-size: .86rem; padding: .38rem .7rem; }
