/* ============================================================================
   BARES E BARES — ESTILO DAS TELAS (padrão visual do Nexum Finance)
   ============================================================================
   CSS puro, sem etapa de compilação: edite e recarregue a página.
   Mesma linguagem do Nexum (topo escuro, cartões brancos com borda cinza,
   rótulos em maiúsculas, seções numeradas em faixa), nas cores do Bares:
   VERMELHO ESCURO, CINZA e BRANCO. Letras e campos maiores que os do Nexum:
   aqui o uso é no celular, no balcão, por gente que enxerga mal.

   Organização:
     1. Cores                        5. Botões
     2. Base                         6. Cartões, seções, listas, tabelas
     3. Topo e menu                  7. Telas específicas (caderneta, mesas, comanda, QR)
     4. Formulários                  8. Celular (telas pequenas)
   ========================================================================= */

/* ---------------------------------------------------------------------------
   1. CORES — mude aqui para trocar a identidade visual inteira
   ------------------------------------------------------------------------ */
:root {
    --vinho: #7F1D1D;             /* vermelho escuro: a cor da marca */
    --vinho-escuro: #4C0E0E;      /* topo */
    --vinho-claro: #FEF2F2;       /* fundos de destaque suaves */
    --fundo: #F1F2F4;             /* cinza claro do fundo */
    --cartao: #FFFFFF;
    --texto: #1F2937;
    --texto-suave: #6B7280;
    --linha: #E2E4E8;
    --borda-campo: #CBD5E1;
    --destaque: #8B1E1E;          /* ações principais (botão vermelho escuro) */
    --destaque-texto: #FFFFFF;
    --divida: #B91C1C;            /* vermelho: quanto o cliente deve */
    --credito: #15803D;           /* verde: pagamentos e crédito */
    --alerta: #B45309;            /* laranja: avisos */
    --chip: #F3F4F6;
    --sombra: 0 2px 12px rgba(17, 24, 39, .07);
    --raio: 12px;
}

/* ---------------------------------------------------------------------------
   2. BASE
   ------------------------------------------------------------------------ */
* { box-sizing: border-box; }

body {
    margin: 0;
    background: var(--fundo);
    color: var(--texto);
    font: 16px/1.45 "Segoe UI", Tahoma, Geneva, Verdana, system-ui, sans-serif;
}

a { color: var(--vinho); }
h1, h2, h3 { line-height: 1.2; margin: 0 0 .5rem; color: var(--texto); }
h1 { font-size: 1.4rem; }
h2 { font-size: 1.15rem; }
h3 { font-size: 1rem; }

.conteudo { max-width: 920px; margin: 0 auto; padding: 16px; }
.conteudo.estreito { max-width: 480px; }

.suave { color: var(--texto-suave); font-size: .9rem; }
.divida { color: var(--divida); }
.credito { color: var(--credito); }
.numero { font-variant-numeric: tabular-nums; white-space: nowrap; }
.direita { text-align: right; }
.centro { text-align: center; }
.oculto { display: none !important; }

/* ---------------------------------------------------------------------------
   3. TOPO E MENU (faixa escura, como o Nexum)
   ------------------------------------------------------------------------ */
.topo {
    position: sticky; top: 0; z-index: 50;
    background: var(--vinho-escuro);
    border-bottom: 3px solid var(--vinho);
}

.topo-interno {
    max-width: 920px;
    margin: 0 auto;
    padding: 8px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.marca { font-weight: 700; font-size: 1.05rem; text-decoration: none; color: #FFFFFF; letter-spacing: .3px; }
.marca small { display: block; font-weight: 400; font-size: .78rem; color: #FCA5A5; letter-spacing: .5px; }

.menu { display: flex; gap: 2px; flex-wrap: wrap; }

.menu a, .menu button {
    text-decoration: none;
    color: #FECACA;
    padding: 8px 12px;
    border-radius: 8px;
    font-size: .95rem;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
}

.menu a:hover, .menu button:hover { background: rgba(255, 255, 255, .1); color: #FFFFFF; }
.menu a.ativo { background: var(--vinho); color: #FFFFFF; font-weight: 600; }

/* Cabeçalho de página (título + subtítulo + botão à direita), como no Nexum */
.cabecalho-pagina { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.cabecalho-pagina h1 { margin: 0; }
.cabecalho-pagina .subtitulo { color: var(--texto-suave); font-size: .9rem; margin-top: 2px; }

/* ---------------------------------------------------------------------------
   4. FORMULÁRIOS — rótulo em maiúsculas, campo branco, borda cinza
   ------------------------------------------------------------------------ */
label {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #4B5563;
    margin-bottom: 5px;
}

/* Asterisco dos obrigatórios: <label>Nome <b class="obrig">*</b></label> */
label .obrig, label b { color: #DC2626; }

input, select, textarea {
    font: inherit;
    font-size: 1.05rem;
    color: var(--texto);
    background: #FFFFFF;
    border: 1px solid var(--borda-campo);
    border-radius: 8px;
    padding: 10px 12px;
    width: 100%;
    min-width: 0;
    transition: border-color .15s, box-shadow .15s;
}

input:focus, select:focus, textarea:focus { outline: none; border-color: var(--vinho); box-shadow: 0 0 0 3px rgba(127, 29, 29, .15); }
input[type="checkbox"] { width: auto; margin-right: 6px; transform: scale(1.2); }

.campo { margin-bottom: 12px; }
.campo-erro input, .campo-erro select { border-color: var(--divida); }
.erro-campo { color: var(--divida); font-size: .85rem; margin-top: 4px; }

/* Campo que voltou com erro do servidor: destaque por alguns segundos (mascaras.js) */
.campo-invalido { border-color: #DC2626 !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, .2) !important; }

/* Aviso embaixo do CEP ("Buscando endereço…", "✓ Endereço encontrado") */
.aviso-cep { font-size: .85rem; margin-top: 4px; color: var(--texto-suave); }

.marcar { display: flex; align-items: center; color: var(--texto); font-size: .95rem; cursor: pointer; text-transform: none; letter-spacing: 0; font-weight: 500; }

/* Grade de campos que se ajusta à largura da tela */
.grade { display: grid; gap: 10px 12px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.grade .inteiro { grid-column: 1 / -1; }
/* Rótulos numa linha só: rótulo que quebra empurra o campo e desalinha a linha */
.grade label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.campo small { display: block; margin-top: 3px; font-size: .82rem; }

.linha { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; }
.linha > .cresce { flex: 1; min-width: 160px; }

/* Dica em destaque (ex.: sugestão de senha) */
.dica { background: var(--vinho-claro); border: 1px solid #FECACA; border-left: 4px solid var(--vinho); border-radius: 8px; padding: 10px 12px; font-size: .92rem; color: #7F1D1D; margin: 4px 0 12px; }

/* ---------------------------------------------------------------------------
   5. BOTÕES
   ------------------------------------------------------------------------ */
.botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font: inherit;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid var(--linha);
    background: #E5E7EB;
    color: #374151;
    border-radius: 8px;
    padding: 10px 16px;
    cursor: pointer;
    min-height: 44px;           /* bom para o dedo no celular */
}

.botao:hover { filter: brightness(.96); }
.botao:disabled { opacity: .5; cursor: not-allowed; }
.botao.principal { background: var(--destaque); color: var(--destaque-texto); border-color: var(--destaque); }
.botao.principal:hover { background: var(--vinho-escuro); filter: none; }
.botao.perigo { color: var(--divida); }
.botao.whatsapp { background: #25d366; color: #0b2e17; border-color: #25d366; }
.botao.grande { padding: 14px 18px; font-size: 1.05rem; }
.botao.cheio { width: 100%; }
.botao.pequeno { min-height: 34px; padding: 6px 10px; font-size: .85rem; font-weight: 500; }

.botao-link {
    background: none;
    border: none;
    color: var(--texto-suave);
    text-decoration: underline;
    cursor: pointer;
    font: inherit;
    font-size: .85rem;
    padding: 4px;
}

/* ---------------------------------------------------------------------------
   6. CARTÕES, SEÇÕES, ALERTAS, LISTAS, TABELAS
   ------------------------------------------------------------------------ */
.cartao {
    background: var(--cartao);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 16px;
    margin-bottom: 14px;
    box-shadow: var(--sombra);
}

/* Seção numerada em faixa (padrão do cadastro do Nexum):
   <section class="secao"><div class="secao-titulo">🍻 O bar</div> ... </section> */
.secoes { counter-reset: secao; }
.secao {
    counter-increment: secao;
    background: var(--cartao);
    border: 1px solid var(--linha);
    border-radius: var(--raio);
    padding: 0 16px 6px;
    margin-bottom: 14px;
    overflow: hidden;
    box-shadow: var(--sombra);
}
.secao-titulo {
    display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
    margin: 0 -16px 14px; padding: 11px 16px;
    font-size: 1rem; font-weight: 800; color: #FFFFFF;
    background: linear-gradient(90deg, var(--vinho-escuro), var(--vinho));
}
.secao-titulo::before {
    content: counter(secao);
    flex: none; width: 26px; height: 26px; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #FFFFFF; color: var(--vinho); font-size: .9rem; font-weight: 900;
}
.secao-titulo .suave { color: #FECACA; font-weight: 500; font-size: .82rem; }
details.secao > summary { cursor: pointer; list-style: none; }
details.secao > summary::-webkit-details-marker { display: none; }
details.secao > summary::after { content: "▸ mostrar"; margin-left: auto; font-size: .82rem; font-weight: 600; }
details.secao[open] > summary::after { content: "▾ ocultar"; }

.alerta { padding: 12px 14px; border-radius: 10px; margin-bottom: 14px; border: 1px solid; border-left-width: 4px; }
.alerta.sucesso { border-color: #86EFAC; border-left-color: var(--credito); color: #14532D; background: #F0FDF4; }
.alerta.aviso { border-color: #FDE68A; border-left-color: var(--alerta); color: #78350F; background: #FFFBEB; font-weight: 600; }
.alerta.erro { border-color: #FECACA; border-left-color: #DC2626; color: #7F1D1D; background: #FEF2F2; }
.alerta ul { margin: 0; padding-left: 18px; }

.lista { list-style: none; margin: 0; padding: 0; }

.lista > li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 12px 4px;
    border-bottom: 1px solid var(--linha);
}

.lista > li:last-child { border-bottom: none; }
.lista a.item-link { text-decoration: none; color: var(--texto); display: block; flex: 1; min-width: 0; }
.lista .titulo { font-weight: 600; }

table { width: 100%; border-collapse: collapse; font-size: .95rem; }
th { text-align: left; color: #4B5563; font-weight: 700; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; border-bottom: 2px solid var(--linha); padding: 8px 6px; background: #F9FAFB; }
td { padding: 10px 6px; border-bottom: 1px solid var(--linha); vertical-align: top; }
tr.estornado td { opacity: .45; text-decoration: line-through; }
tr.estornado td.acoes { text-decoration: none; }

.etiqueta { display: inline-block; font-size: .75rem; padding: 2px 8px; border-radius: 99px; background: var(--chip); color: var(--texto-suave); font-weight: 700; }
.etiqueta.vermelha { color: var(--divida); background: #FEF2F2; }
.etiqueta.verde { color: var(--credito); background: #F0FDF4; }

.vazio { color: var(--texto-suave); text-align: center; padding: 28px 10px; }
/* ---------------------------------------------------------------------------
   7. TELAS ESPECÍFICAS
   ------------------------------------------------------------------------ */

/* Painel: números grandes */
.numeros { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin-bottom: 14px; }
.numero-grande { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px 16px; box-shadow: var(--sombra); }
.numero-grande .rotulo { font-size: .8rem; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .04em; }
.numero-grande .valor { font-size: 1.7rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Caderneta: cabeçalho do cliente com saldo */
.cliente-topo { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.apelido { color: var(--texto-suave); font-style: italic; font-weight: 400; }
.saldo { text-align: right; }
.saldo .rotulo { font-size: .75rem; color: var(--texto-suave); text-transform: uppercase; letter-spacing: .05em; }
.saldo .valor { font-size: 2.1rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }

.barra { height: 6px; background: var(--chip); border-radius: 3px; margin-top: 6px; overflow: hidden; }
.barra i { display: block; height: 100%; background: var(--destaque); }
.barra i.atencao { background: var(--alerta); }
.barra i.estourou { background: var(--divida); }

/* Caderneta: botões de atalho de produto */
.atalhos { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); margin-bottom: 12px; }
.atalhos .botao { flex-direction: column; gap: 0; font-weight: 600; padding: 10px 6px; min-height: 60px; line-height: 1.2; text-align: center; }
.atalhos .botao small { font-weight: 400; color: var(--texto-suave); font-size: .8rem; }

/* Caderneta: carrinho da compra */
.carrinho-linha { display: flex; align-items: center; gap: 8px; padding: 10px 0; border-bottom: 1px dotted var(--linha); font-size: 1.2rem; }
.carrinho-linha .nome { flex: 1; min-width: 0; font-weight: 600; }
.carrinho-linha .numero { font-weight: 700; white-space: nowrap; }
.carrinho-linha input { width: 70px; padding: 8px; text-align: center; font-size: 1.2rem; }
.carrinho-linha .botao-link { font-size: 1.4rem; padding: 4px 8px; }
/* Lista de produtos com lupa: linhas alternadas cinza / branca */
/* Letras e valores GRANDES: muita gente no balcão enxerga mal */
#busca-produto { font-size: 1.25rem; padding: 14px; }
.categorias { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 10px; }
.categorias .categoria { flex: 0 0 auto; font-size: 1.1rem; font-weight: 700; text-transform: uppercase; padding: 10px 16px; }
.categorias .categoria.ativa { background: var(--destaque); color: var(--destaque-texto); border-color: var(--destaque); }
.lista-produtos { border: 1px solid var(--linha); border-radius: var(--raio); max-height: 420px; overflow-y: auto; margin-bottom: 12px; }
.linha-produto {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 14px 12px; min-height: 60px;
    border: 0; border-bottom: 1px solid var(--linha); background: var(--cartao); color: var(--texto);
    font: inherit; font-size: 1.3rem; text-align: left; cursor: pointer;
}
.linha-produto.zebra { background: color-mix(in srgb, var(--texto) 8%, var(--cartao)); }
.linha-produto .nome { flex: 1; min-width: 0; font-weight: 600; }
.linha-produto .numero { font-weight: 800; white-space: nowrap; }
.linha-produto .mais { color: var(--destaque); font-weight: 800; font-size: 1.6rem; line-height: 1; }
.linha-produto.adicionado { animation: piscar-adicionado .6s; }
@keyframes piscar-adicionado { from { background: color-mix(in srgb, var(--destaque) 35%, var(--cartao)); } }
.carrinho-total { font-size: 1.6rem; font-weight: 800; text-align: right; margin: 10px 0; }

/* Comprovante após lançar */
.comprovante { border: 2px dashed var(--credito); }
.comprovante pre { white-space: pre-wrap; font: inherit; font-size: .9rem; color: var(--texto-suave); margin: 8px 0 12px; }

/* Página pública da caderneta */
.publica-saldo { text-align: center; padding: 20px 10px; }
.publica-saldo .valor { font-size: 2.6rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.publica-item { padding: 12px 0; border-bottom: 1px solid var(--linha); }
.publica-item.estornado { opacity: .5; text-decoration: line-through; }
.publica-item .itens { color: var(--texto-suave); font-size: .9rem; }
.rodape { text-align: center; color: var(--texto-suave); font-size: .8rem; padding: 20px; }

/* Etiqueta laranja: "pediu a conta" */
.etiqueta.laranja { color: var(--alerta); border: 1px solid var(--alerta); background: var(--cartao); }

/* Mesas: grade do salão (uma "carta" por mesa) */
.mesas { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin-bottom: 14px; }
.mesa {
    display: flex; flex-direction: column; gap: 4px;
    background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio);
    padding: 12px; min-height: 120px; text-decoration: none; color: var(--texto); box-shadow: var(--sombra);
}
.mesa:hover { filter: brightness(.98); }
.mesa.ocupada { border: 2px solid var(--destaque); }
.mesa.conta-pedida { border: 2px solid var(--alerta); }
.mesa-numero { font-size: 1.8rem; font-weight: 800; line-height: 1; }
.mesa-valor { font-size: 1.15rem; font-weight: 700; }
.mesa-pessoas { display: flex; flex-wrap: wrap; gap: 4px; font-size: .8rem; color: var(--texto-suave); }
.linha-mesa { padding: 10px 0 4px; border-top: 1px solid var(--linha); margin-top: 10px; }

/* Resumo da conta: rótulo à esquerda, valor à direita */
.conta-resumo { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; margin: 12px 0 0; }
.conta-resumo dt { margin: 0; }
.conta-resumo dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.conta-resumo .falta { font-size: 1.3rem; font-weight: 800; border-top: 1px solid var(--linha); padding-top: 6px; }

/* Mesa: uma pessoa por bloco (itens + subtotal destacado), como na planilha */
.mesa-topo { display: flex; justify-content: space-between; align-items: center; gap: 12px; background: var(--destaque); color: var(--destaque-texto); border-radius: var(--raio); padding: 12px 16px; margin-bottom: 12px; }
.mesa-topo h1 { margin: 0; color: inherit; }
.mesa-topo .valor { font-size: 1.8rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.bloco-comanda { border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; margin-bottom: 12px; }
.bloco-comanda-topo { display: flex; justify-content: space-between; align-items: center; gap: 8px; background: var(--chip); padding: 8px 12px; font-weight: 700; text-transform: uppercase; }
.bloco-comanda-topo a { color: var(--texto); }
.bloco-comanda-topo .suave { font-weight: 400; text-transform: none; font-size: .85rem; }
.bloco-comanda table { width: 100%; border-collapse: collapse; }
.bloco-comanda td { padding: 8px 12px; border-top: 1px solid var(--linha); font-size: 1.15rem; }
.bloco-comanda td.qtd { width: 40px; text-align: center; }
.bloco-comanda td.valor { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bloco-comanda .subtotal td { font-weight: 800; font-size: 1.05rem; background: color-mix(in srgb, var(--alerta) 22%, var(--cartao)); }

/* Comanda: os dois caminhos (lançar / receber) lado a lado */
.acoes-comanda { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; margin-top: 14px; }
.acoes-comanda .botao { justify-content: center; text-align: center; font-weight: 800; }

/* Cadastro do bar pelo link (empresas/cadastro) — cabeçalho como o do Nexum */
.conteudo.medio { max-width: 720px; }
.cadastro-topo { background: linear-gradient(135deg, var(--vinho-escuro), var(--vinho)); color: #FFFFFF; border-radius: var(--raio); padding: 20px 18px; text-align: center; margin-bottom: 14px; box-shadow: var(--sombra); }
.cadastro-topo h1 { color: #FFFFFF; font-size: 1.5rem; margin: 4px 0; }
.cadastro-topo p { margin: 4px 0; color: #FEE2E2; }
.cadastro-marca { font-weight: 700; letter-spacing: 1px; text-transform: uppercase; font-size: .85rem; color: #FCA5A5; }
.cadastro-passos { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; margin-top: 10px; font-size: .88rem; }
.cadastro-passos span::before { content: "✓ "; color: #86EFAC; font-weight: 800; }
.cadastro-convite { font-size: .85rem; margin-top: 10px !important; opacity: .9; }
.cadastro-condicoes { background: #FFFBEB; border: 2px solid #FCD34D; border-radius: var(--raio); padding: 12px 14px; margin: 4px 0 14px; color: #78350F; }

/* Produtos: título de categoria e a edição rápida do preço */
.categoria-titulo { margin: 14px 0 6px; font-size: .85rem; text-transform: uppercase; letter-spacing: .5px; color: var(--vinho); }
.editar-preco { background: var(--vinho-claro); border: 1px solid #FECACA; border-radius: 8px; padding: 10px 12px; margin: 4px 0 8px; }

/* Guia dos primeiros passos (partials/guia) */
.guia { background: var(--cartao); border: 2px solid var(--vinho); border-radius: var(--raio); padding: 14px 16px; margin-bottom: 14px; box-shadow: var(--sombra); }
.guia.concluido { border-color: var(--credito); background: #F0FDF4; }
.guia.guia-demo { background: linear-gradient(180deg, #FFFBEB, var(--cartao)); border-color: #D97706; }
.guia.guia-demo .guia-rotulo { color: #B45309; }
.guia.guia-demo .guia-passos span.agora { background: #D97706; border-color: #D97706; }

/* O botão que o guia manda tocar: borda piscando */
.tour-destaque { position: relative; z-index: 2; animation: tour-pulso 1.3s ease-in-out infinite; outline: 3px solid #F59E0B; outline-offset: 3px; border-radius: 10px; }
@keyframes tour-pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(245, 158, 11, .7); } 50% { box-shadow: 0 0 0 10px rgba(245, 158, 11, 0); } }
.guia-passos { display: flex; gap: 6px; margin-bottom: 6px; }
.guia-passos span { width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; background: var(--chip); color: var(--texto-suave); border: 2px solid var(--linha); }
.guia-passos span.agora { background: var(--vinho); color: #FFFFFF; border-color: var(--vinho); }
.guia-passos span.feito { background: var(--credito); color: #FFFFFF; border-color: var(--credito); }
.guia-rotulo { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--vinho); }
.guia-titulo { font-size: 1.25rem; font-weight: 800; margin: 2px 0; }
.guia-texto { color: #374151; }

/* Tour do primeiro acesso (partials/tour) */
.tour { position: fixed; inset: 0; z-index: 100; background: rgba(17, 24, 39, .65); display: flex; align-items: center; justify-content: center; padding: 16px; }
.tour-caixa { background: #FFFFFF; border-radius: 16px; width: 100%; max-width: 440px; padding: 24px 22px 16px; box-shadow: 0 30px 70px rgba(0, 0, 0, .35); border-top: 6px solid var(--vinho); text-align: center; }
.tour-quadro { display: none; min-height: 190px; }
.tour-quadro.ativo { display: block; }
.tour-quadro p { font-size: 1.08rem; margin: 8px 0; }
.tour-icone { font-size: 3rem; line-height: 1; margin-bottom: 8px; }
.tour-pontos { display: flex; justify-content: center; gap: 8px; margin: 12px 0; }
.tour-pontos span { width: 10px; height: 10px; border-radius: 50%; background: var(--linha); cursor: pointer; }
.tour-pontos span.ativo { background: var(--vinho); width: 26px; border-radius: 5px; }
.tour-acoes { display: flex; justify-content: space-between; align-items: center; gap: 10px; }

/* Faixa do topo: administrador em modo suporte */
.faixa-suporte { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 16px; background: #1F2937; color: #FFFFFF; font-size: .95rem; }
.faixa-suporte .botao { background: #FFFFFF; color: #1F2937; border-color: #FFFFFF; }

/* Faixa do topo: assinatura (teste acabando / atrasada) */

.faixa-assinatura { display: block; padding: 10px 16px; text-align: center; font-weight: 700; text-decoration: none; background: color-mix(in srgb, var(--alerta) 18%, var(--cartao)); color: var(--texto); border-bottom: 1px solid var(--alerta); }
.faixa-assinatura.atrasada { background: color-mix(in srgb, var(--divida) 18%, var(--cartao)); border-color: var(--divida); }

/* Área do vendedor: link de acesso pronto para mandar */
.link-acesso { word-break: break-all; font-family: ui-monospace, monospace; font-size: .9rem; background: var(--chip); padding: 10px; border-radius: 8px; margin: 8px 0; }

/* Receber: um botão grande por forma de pagamento (nada vem marcado) */
.formas-pagamento { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.formas-pagamento .botao { justify-content: center; font-weight: 800; }

/* Tela de lançar pedido */
.lancar-topo { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.lancar-nome { font-size: 1.5rem; font-weight: 800; text-transform: uppercase; line-height: 1.1; }
/* Barra FINA presa no pé da tela: último lançamento + total + Concluir */
.lancar-barra {
    position: sticky; bottom: 0; z-index: 5; margin: 16px 0 0; padding: 8px 12px;
    background: var(--cartao); border-top: 3px solid var(--destaque);
    box-shadow: 0 -4px 14px rgba(0, 0, 0, .12);
}
.lancar-barra #ultimo-lancado { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lancar-barra #ultimo-lancado.erro { color: var(--divida); white-space: normal; }
.lancar-barra #ultimo-lancado.piscar { animation: piscar-adicionado .8s; }
.lancar-barra-linha { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 4px; }
.lancar-barra-linha strong { font-size: 1.4rem; }

/* QR Codes para imprimir */
.qr-cartoes { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.qr-cartao { background: #fff; color: #111; border: 2px dashed #999; border-radius: var(--raio); padding: 16px; text-align: center; break-inside: avoid; }
.qr-bar { font-size: .9rem; color: #555; }
.qr-mesa { font-size: 1.6rem; font-weight: 800; margin-bottom: 6px; }
.qr-imagem svg { width: 100%; max-width: 220px; height: auto; }
.qr-instrucao { font-size: .9rem; margin-top: 6px; }

@media print {
    .nao-imprimir { display: none !important; }
    body.pagina-qr { background: #fff; }
    .pagina-qr .conteudo { max-width: none; padding: 0; }
}

/* ---------------------------------------------------------------------------
   8. CELULAR (telas com até 600px)
   ------------------------------------------------------------------------ */
@media (max-width: 600px) {
    .conteudo { padding: 12px; }
    .topo-interno { flex-direction: column; align-items: stretch; gap: 6px; }
    .menu { justify-content: space-between; }
    .menu a, .menu button { padding: 8px 6px; font-size: .85rem; }
    .saldo { text-align: left; }
    .esconder-celular { display: none; }
    .cartao { padding: 14px; }
    /* Lista de produtos de ponta a ponta da tela */
    .lista-produtos { margin-left: -14px; margin-right: -14px; border-radius: 0; border-left: 0; border-right: 0; }
}
