/*
 * Cores da Churrascaria Pampa (as mesmas do Gestor de Comandas): marrom
 * #3a2719, preto #160f09, marrom claro #714e33 e laranja #956c4d. Os nomes
 * das variáveis (verde, creme...) vieram do sistema da pizzaria e ficaram.
 */
:root {
  --tinta: #312115;
  --faixa: #281B11;        /* marrom do cabeçalho */
  --creme: #F0E9E3;        /* letra clara sobre o marrom */
  --papel: #FBF8F6;        /* fundo das telas */
  --verde: #8F613D;        /* laranja dos botões */
  --vermelho: #8c1b1b;     /* vermelho escuro do bloco lateral */
  --dourado: #CAAE98;
  --linha: #F0E9E3;
  --texto: #23281f;
  --apagado: #6f7a6b;
  color-scheme: light;
}

* { box-sizing: border-box; }
/* Escondido é escondido: o display: flex das linhas vencia o [hidden]. */
[hidden] { display: none !important; }

body {
  margin: 0; overflow-x: hidden;
  background: var(--papel);
  color: var(--texto);
  font: 16px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  padding-bottom: 3rem;
}

/* ------------------------------------------------------- cabeçalho -- */

.cabecalho {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: .7rem;
  padding: .55rem 1rem;
  background: var(--faixa); color: var(--creme);
  box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
.cabecalho__marca {
  width: 104px; color: var(--creme); text-decoration: none;
  display: grid; place-items: center; flex: 0 0 auto;
}
.cabecalho__marca img { width: 100%; height: 100%; object-fit: cover; }
.cabecalho__nome { font-weight: 800; letter-spacing: .02em; }
.cabecalho__lema { font-size: .9rem; font-weight: 700; opacity: .9; }
/* Os botões ficam à DIREITA, encostados na logo da Mateus Informática. */
.cabecalho__acoes {
  /* Encostados na base da faixa, do lado da logo da Mateus. */
  margin: 0 0 0 auto; min-width: 0; display: flex; gap: .5rem;
  flex-wrap: nowrap; align-items: flex-end; align-self: flex-end; justify-content: flex-end;
}

/* Uma folga entre a faixa verde e o conteúdo. */
main { max-width: 1200px; margin: 0 auto; padding: 1.4rem .9rem .9rem; }

h1, h2 { margin: .2rem 0 .8rem; font-size: 1.15rem; }

/* ---------------------------------------------------------- botões -- */

.botao {
  border: 0; border-radius: 999px; padding: .5rem 1rem;
  background: var(--creme); color: var(--faixa);
  font: inherit; font-weight: 700; cursor: pointer; text-decoration: none;
}
.botao:hover { filter: brightness(.96); }
.botao--verde { background: var(--verde); color: #fff; }
.botao--vermelho { background: var(--vermelho); color: #fff; }
.botao--pequeno { padding: .3rem .7rem; font-size: .85rem; }
/* Botão da barra não quebra linha: "Taxas de tele" virava três linhas. */
/* Botão de ÍCONE: o desenho manda e o nome vem pequeno embaixo -- assim
   cabem os três do lado das duas logos, sem cortar palavra. */
.botao--icone {
  display: grid; place-items: center; gap: .1rem; line-height: 1.1;
  padding: .35rem .6rem; border-radius: 14px;
}
.botao--icone span { font-size: .72rem; font-weight: 700; }

/* Os botões da barra têm todos a MESMA largura: o olho lê uma fileira só. */
.cabecalho__acoes .botao {
  /* Mesma largura, mas podem encolher juntos numa janela estreita. */
  white-space: nowrap; flex: 0 0 5.4rem; text-align: center;
}
.botao--simbolo {
  width: 2.4rem; height: 2.4rem; padding: 0; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  /* line-height 0 tira a sobra da linha de texto, que empurrava o desenho
     para baixo e deixava o símbolo fora do meio do círculo. */
  line-height: 0; font-size: 1.5rem; font-weight: 900;
}
/* O desenho do símbolo cresce junto, e fica no meio do círculo -- um fio
   acima do centro, que é onde o olho o enxerga centrado. */
.botao--simbolo svg { width: 22px; height: 22px; stroke-width: 2.8; display: block; margin-top: -1px; }
/* O "+" escrito como texto (sem desenho) precisa do mesmo acerto. */
.botao--simbolo { padding-bottom: 2px; }
/* A barra fica encostada à direita, como em todas as listas da casa. */
.barra-acoes { display: flex; gap: .5rem; justify-content: flex-end; margin: 0 0 .7rem; }
/* NOVO e PROCURAR das listas iguais aos botões do menu de cima (pedido do
   Mateus, 23/09/2026): salmão, cantos arredondados, desenho e nome embaixo. */
.barra-acoes .botao--acao { width: 4.4rem; min-height: 3.2rem; }
.col-marcar { width: 1.6rem; }
.botao:disabled { opacity: .45; cursor: default; }

/* ---------------------------------------------------------- campos -- */

.campo { display: block; margin-bottom: .7rem; }
.campo > span { display: block; font-size: .8rem; font-weight: 700; color: var(--apagado); margin-bottom: .15rem; }
.campo input, .campo select, .campo textarea {
  width: 100%; padding: .55rem .7rem; font: inherit;
  border: 1px solid var(--linha); border-radius: 10px; background: #fff; color: inherit;
}
.linha { display: flex; gap: .6rem; flex-wrap: wrap; }
.linha > * { flex: 1 1 8rem; }
/* Linha em que o botão acompanha a base do campo ao lado. */
.linha--pe { align-items: flex-end; }
/* Campo de resposta curta (Sim/Não): não precisa da largura toda. */
.campo--curto { flex: 0 0 6.5rem; }

fieldset.grupo {
  border: 1px solid var(--linha); border-radius: 12px; padding: .7rem .8rem; margin: 0 0 .9rem;
  background: #fff;
}
fieldset.grupo > legend { font-size: .8rem; font-weight: 800; color: var(--apagado); padding: 0 .3rem; }

/* ----------------------------------------------------------- lista -- */

/* Título no meio da faixa; a contagem fica na ponta direita. */
.faixa {
  position: relative; text-align: center;
  background: var(--faixa); color: var(--creme);
  padding: .45rem 2.5rem; border-radius: 10px 10px 0 0; font-weight: 800;
}
.faixa .lista__conta, .faixa span {
  position: absolute; right: .8rem; top: .45rem; font-weight: 700;
}
.lista { border: 1px solid var(--linha); border-top: 0; border-radius: 0 0 10px 10px; background: #fff; }
.item {
  display: grid; grid-template-columns: 104px 1fr auto; gap: .9rem; align-items: center;
  padding: .55rem .8rem; border-top: 1px solid var(--linha); cursor: pointer;
}
.item:first-child { border-top: 0; }
/* Listas zebradas: branco e o creme rosado da casa, uma linha de cada. */
.item:nth-child(odd) { background: #fff; }
.item:nth-child(even) { background: #f6f1ed; }
.etiqueta-inativo {
  margin-left: .4rem; padding: 0 .45rem; border-radius: 6px;
  background: var(--vermelho); color: #fff; font-size: .72rem; font-weight: 800; vertical-align: middle;
}
.item__foto { width: 104px; height: 104px; border-radius: 12px; object-fit: cover; background: #f0e6d8; }
img.item__foto { cursor: zoom-in; }
.item__nome { font-weight: 700; }
/* Uma folga entre o nome e a linha dos códigos. */
.item__meta { font-size: .8rem; color: var(--apagado); margin-top: .45rem; }
/* O preço vem dentro de uma pílula verde, letra branca. */
/* Mesma medida da pílula da taxa do bairro. */
.item__preco {
  font-weight: 800; white-space: nowrap; text-align: right;
  background: var(--faixa); color: #fff;
  border: 2px solid var(--verde); border-radius: 999px;
  width: 7.5rem; padding: .5rem .9rem;
}
.item--inativo { opacity: .5; }
.item--cliente { grid-template-columns: 1fr auto; }
.nada { padding: 1.2rem; text-align: center; color: var(--apagado); }

/* ------------------------------------------------- fotos do produto -- */

/* As seis fotos cabem numa linha: cada uma ocupa um sexto do espaço. */
.fotos { display: grid; grid-template-columns: repeat(6, 1fr); gap: .5rem; }
.foto { position: relative; aspect-ratio: 1; }
.foto img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; border: 1px solid var(--linha); }
@media (max-width: 560px) { .fotos { grid-template-columns: repeat(3, 1fr); } }
/* A lixeira fica DENTRO da foto, no canto de baixo à direita. */
.foto__lixo {
  position: absolute; right: 4px; bottom: 4px; width: 24px; height: 24px; border-radius: 50%;
  border: 0; background: var(--vermelho); color: #fff; cursor: pointer;
  display: grid; place-items: center; line-height: 0;
}
.foto__lixo svg { width: 14px; height: 14px; }

/* ------------------------------------- adicionais e retirar (listas) -- */

.duas { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
@media (max-width: 620px) { .duas { grid-template-columns: 1fr; } }

.mini { list-style: none; margin: .4rem 0 0; padding: 0; }
.mini li {
  display: flex; align-items: center; gap: .5rem;
  padding: .3rem .1rem; border-top: 1px dashed var(--linha); font-size: .92rem;
}
.mini li span:first-child { flex: 1; }
.mini .preco { font-weight: 700; color: var(--verde); }

/* --------------------------------------------------------- janelas -- */

dialog {
  border: 0; border-radius: 14px; padding: 0; width: min(760px, calc(100vw - 1.5rem));
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
}
dialog::backdrop { background: rgba(0,0,0,.45); }
.janela__barra {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--faixa); color: var(--creme); padding: .5rem .8rem;
}
.janela__titulo { margin: 0; font-size: 1rem; }
/* Só rola para baixo: barra de rolagem deitada aqui é sinal de campo que
   não coube, e ela aparecia embaixo do quadro de Tamanhos. */
.janela__corpo { padding: .9rem; max-height: 72vh; overflow-y: auto; overflow-x: hidden; }
.janela__pe { display: flex; gap: .5rem; justify-content: flex-end; padding: .7rem .9rem; border-top: 1px solid var(--linha); }

/* --------------------------------------------------------- cardápio -- */

.grupo-titulo { margin: 1.2rem 0 .4rem; font-size: 1.05rem; font-weight: 800; color: var(--verde); }
.aviso { padding: .6rem .8rem; border-radius: 10px; background: #fff3cd; border: 1px solid #f0d9a0; margin-bottom: .8rem; }
.erro { color: var(--vermelho); font-weight: 700; }

/* ------------------------------------------------------------ marca --
 *
 * A marca desenhada em texto, com as fontes que mais se aproximam da
 * caixa da pizzaria: serifa pesada em "THE" e "ITALY", cursiva em
 * "Little" e em "pizza delivery". Enquanto o arquivo oficial não chega,
 * é isto; com ele, troca-se por uma imagem só.
 */
.marca {
  display: grid; place-items: center;
  background: transparent; color: var(--creme);
  line-height: .92; text-align: center; text-decoration: none;
  container-type: inline-size;
}
.marca__the, .marca__italy {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight: 900; font-size: 30cqw; letter-spacing: .01em;
}
.marca__little {
  font-family: "Yellowtail", "Segoe Script", "Brush Script MT", cursive;
  font-size: 36cqw; line-height: 1.05; margin: .02em 0 .04em;
}
/* "pizza delivery" é SERIFA na caixa, não cursiva. */
.marca__sub {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight: 400; font-size: 11cqw; margin-top: .3em; letter-spacing: .01em;
}

/* Os dois selos do cabeçalho: The Little Italy à esquerda e a Mateus
   Informática à direita, as duas com o brilho branco por trás (o mesmo
   efeito do MadaLice: sem ele a logo some no fundo). */
.selo {
  width: 92px; height: 92px; object-fit: contain; flex: 0 0 auto;
  border-radius: 50%;
  filter: drop-shadow(0 0 3px rgba(255,255,255,.95)) drop-shadow(0 0 12px rgba(255,255,255,.55));
}
/* A logo da Mateus ocupa a altura da faixa e cresce na PROPORÇÃO dela
   (o arquivo é largo); o teto evita a barra de rolagem de lado. */
.selo--mateus {
  border-radius: 0; height: calc(104px + 1.1rem); width: auto;
  max-width: min(230px, 36vw); object-fit: contain;
  margin: -.55rem -.6rem -.55rem 0; align-self: stretch;
}

/* ------------------------------------------------------ selo antigo --
 *
 * A marca dentro de um carimbo redondo: círculo verde com aro creme, do
 * jeito dos selos da caixa. É o que o SISTEMA usa no cabeçalho.
 */
.selo-marca {
  aspect-ratio: 1; border-radius: 50%;
  background: var(--faixa); color: var(--creme);
  border: 2px solid var(--creme); box-shadow: 0 0 0 2px rgba(255,255,255,.12) inset;
  padding: 8cqw;
}
.selo-marca .marca__the, .selo-marca .marca__italy { font-size: 22cqw; }
.selo-marca .marca__little { font-size: 26cqw; }
.selo-marca .marca__sub { font-size: 8cqw; margin-top: .2em; }

/* Código sequencial e código do iFood, na linha do produto. */
.item__codigo {
  display: inline-block; min-width: 2.2rem; padding: 0 .35rem;
  border-radius: 6px; background: var(--faixa); color: var(--creme);
  font-size: .78rem; font-weight: 800; text-align: center;
}
.item__ifood {
  margin-left: .4rem; padding: 0 .4rem; border-radius: 6px;
  background: #fde7e7; color: #b32222; font-size: .72rem; font-weight: 700;
}

/* ------------------------------------------------- tela Informações --
 *
 * As fotografias grandes, com o MatIA ao lado (como em todo sistema da
 * casa: quem explica é ele, numa tela centralizada).
 */
.janela--larga { width: min(920px, calc(100vw - 1.5rem)); }
.info { display: grid; grid-template-columns: 220px 1fr; gap: 1rem; align-items: start; }
@media (max-width: 680px) { .info { grid-template-columns: 1fr; } }
.info__matia { text-align: center; }
.info__matia img { width: 150px; }
.info__matia p {
  background: #fff; border: 1px solid var(--linha); border-radius: 14px;
  padding: .6rem .7rem; font-size: .9rem; margin: .4rem 0 0; text-align: left;
}
.info__fotos { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .7rem; }
/* Cada foto com a sua legenda embaixo, encostada à esquerda. */
.foto-ficha { margin: 0; }
.foto-ficha figcaption { font-size: .82rem; text-align: left; margin-top: .3rem; }

/* Cada foto dentro de um quadrado preto; sem foto, fica só o quadrado. */
.info__fotos img, .foto-vazia {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  border: 2px solid #000; border-radius: 0; background: var(--papel);
}

/* Campo com o símbolo dentro (R$ à esquerda, % à direita). */
.com-simbolo { position: relative; display: block; }
.com-simbolo > i {
  position: absolute; left: .6rem; top: 50%; transform: translateY(-50%);
  font-style: normal; font-weight: 700; font-size: .85rem; color: var(--apagado);
}
.com-simbolo > input { padding-left: 2.2rem; }
.com-simbolo--fim > i { left: auto; right: .7rem; }
.com-simbolo--fim > input { padding-left: .7rem; padding-right: 1.8rem; }

/* Linha do bairro: nome, o campo da taxa, gravar e excluir. */
/* Nome ocupa a sobra; taxa, gravar e excluir pedem só o que precisam. */
.item--bairro { grid-template-columns: minmax(0, 1fr) auto auto auto; gap: .6rem; }
.item--bairro .taxa-campo { width: 7.5rem; }
.item--bairro .taxa-campo > input { width: 100%; padding: .5rem .9rem .5rem 2.3rem; }
/* O campo da taxa mantém a cara da pílula verde de antes: fundo verde,
   letra branca, e o R$ branco também. Só que agora dá para digitar nele. */
.taxa-campo > input {
  background: var(--faixa); color: #fff; font-weight: 800;
  border: 2px solid var(--verde); border-radius: 999px; text-align: right;
}
.taxa-campo > i { color: #fff; }
/* Os símbolos DENTRO da lista ficam no tamanho de antes. */
.item .botao--simbolo svg { width: 18px; height: 18px; stroke-width: 2.2; }

/* Linha de um tamanho já gravado: os mesmos campos da linha de cima, em
   colunas proporcionais -- tudo cabe sem quebrar e sem rolar de lado. */
.tam-linha {
  list-style: none; border-top: 1px dashed var(--linha);
  padding-top: .45rem; margin-top: .45rem;
  display: grid; grid-template-columns: 6.5rem 1fr 1fr 1fr 6rem auto auto; gap: .4rem;
  align-items: center;
}
.tam-linha .campo { display: block; min-width: 0; }
.tam-linha input, .tam-linha select { width: 100%; }
/* Os botões da linha não esticam: eles são do tamanho do círculo. */
.tam-linha .botao--simbolo, .linha--pe .botao--simbolo { flex: 0 0 auto; }

/* O quadrado vazio que abre a pasta para escolher a imagem. */
.foto-nova {
  width: 100%; aspect-ratio: 1; border: 2px dashed var(--faixa); border-radius: 10px;
  background: transparent; cursor: pointer; position: relative;
}
.foto-nova::before, .foto-nova::after {
  content: ''; position: absolute; left: 50%; top: 50%; background: var(--faixa);
  transform: translate(-50%, -50%);
}
.foto-nova::before { width: 26px; height: 3px; }
.foto-nova::after { width: 3px; height: 26px; }

/* Barra de rolagem um pouco mais grossa, para o dedo e para o olho. */
.janela__corpo { scrollbar-width: auto; scrollbar-color: var(--faixa) var(--linha); }
.janela__corpo::-webkit-scrollbar { width: 14px; }
.janela__corpo::-webkit-scrollbar-track { background: var(--linha); border-radius: 8px; }
.janela__corpo::-webkit-scrollbar-thumb {
  background: var(--faixa); border-radius: 8px; border: 3px solid var(--linha);
}

/* ------------------------------------------------ tela de mensagem --
 *
 * Título, o recado no meio e, no rodapé, o OK com o MatIA à direita.
 */
.janela--aviso { width: min(520px, calc(100vw - 1.5rem)); }
/* Na tela de mensagem o título fica no meio da faixa. */
.janela--aviso .janela__titulo { flex: 1; text-align: center; }
.janela__mensagem {
  text-align: center; font-weight: 700; font-size: 1.05rem;
  padding: 1.4rem 1.6rem; line-height: 1.5;
}
/* Rodapé verde, da mesma cor do cabeçalho, com o OK no meio e o MatIA
   saindo do canto direito. */
.janela__pe--aviso {
  display: flex; align-items: center; justify-content: center;
  position: relative; padding: .55rem 1rem; min-height: 0;
  background: var(--faixa); border-top: 0;
}
/* O OK é largo, como os botões da faixa de cima. */
.janela__pe--aviso .botao { min-width: 9rem; }
/* O MatIA sai do rodapé para cima, sem engordar a faixa. */
.aviso__matia { position: absolute; right: .6rem; bottom: 0; height: 96px; }

/* Lista de marcar: os adicionais que o produto aceita. */
.marcaveis {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .25rem .8rem;
  max-height: 190px; overflow: auto;
}
.marcavel { display: flex; align-items: center; gap: .5rem; padding: .25rem 0; }
.marcavel span { flex: 1; }
.marcavel input { width: 18px; height: 18px; }

/* Os três quadros do produto: Sabores, Adicionais e Retirar. */
.tres { display: grid; grid-template-columns: repeat(3, 1fr); gap: .8rem; }
@media (max-width: 860px) { .tres { grid-template-columns: 1fr; } }
.marcavel--todos {
  border-bottom: 1px solid var(--linha); margin-bottom: .3rem; font-weight: 700; font-size: .85rem;
}

/* Linha do cadastro de Retirar: nome, gravar e excluir. */
.item--retirar { grid-template-columns: minmax(0, 1fr) auto auto; gap: .6rem; }

/* O campo da linha nova (Adicionais, Sabores, Retirar) tem a mesma cara
   dos campos do cadastro de produto. */
.item input.campo {
  display: block; width: 100%; padding: .55rem .7rem; font: inherit;
  border: 1px solid var(--linha); border-radius: 10px; background: #fff; color: inherit;
}

/* A linha da busca abre com uma folga da barra de cima. */
#busca-linha, #c-busca-linha { margin-top: .5rem; margin-bottom: .8rem; }

/* Título da listagem dentro do quadro de Tamanhos. */
.listagem {
  margin: .7rem 0 .1rem; font-size: .8rem; font-weight: 800; color: var(--apagado);
}


/* A listagem dos tamanhos ganha faixa e rótulos de coluna. */
/* A faixa da listagem é verde clara com letra branca -- destaca sem brigar
   com o verde escuro do cabeçalho. */
.faixa--mini {
  font-size: .85rem; padding: .35rem .6rem; margin-top: .8rem; border-radius: 8px 8px 0 0;
  background: #4a7c57; color: #fff;
}
/* O bloco inteiro da listagem fica destacado do resto do quadro. */
#f-tam-titulo + .mini, .tam-cabecalho { background: #f6f1ed; }
.tam-cabecalho { padding: .4rem .5rem 0; }
#f-tam-titulo + .mini { padding: 0 .5rem .5rem; border-radius: 0 0 8px 8px; margin-top: 0; }
.tam-cabecalho {
  border-top: 0; margin-top: 0; padding: .35rem .1rem 0;
  font-size: .75rem; font-weight: 800; color: var(--apagado);
}
#f-tam-titulo + .mini .tam-linha:first-child { border-top: 0; }

/*
 * Rótulos e linhas da listagem de tamanhos: as MESMAS colunas dos campos de
 * cima (7 / 8 / 8 / 7 / 7 rem e o botão), para cada valor ficar embaixo do
 * seu rótulo. `.mini li` é flex e vencia a grade -- daí o seletor mais forte.
 */
.tam-cabecalho, .mini li.tam-linha {
  display: grid; grid-template-columns: 8.5rem 7rem 7.5rem 6.5rem 5.5rem 2.4rem; gap: .6rem;
  align-items: center;
}
.mini li.tam-linha span:first-child { flex: none; }
.tam-campo { white-space: nowrap; }
.tam-linha--vista .botao--simbolo { justify-self: start; }

/* ---------------------------------------------------------- rodapé --
 *
 * Mesma faixa verde do cabeçalho, presa embaixo da janela.
 */
.rodape {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 20;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .45rem 1rem; background: var(--faixa); color: var(--creme);
  font-size: .82rem; font-weight: 700;
  box-shadow: 0 -2px 10px rgba(0,0,0,.25);
}
.rodape__dev { opacity: .85; font-weight: 600; }
body { padding-bottom: 3.2rem; }

/* ------------------------------------------------ cardápio da cliente --
 *
 * Feito para o celular: linhas de escolha altas, fáceis de tocar com o dedo.
 */
.opcao {
  display: flex; align-items: center; gap: .7rem;
  padding: .6rem .3rem; border-top: 1px dashed var(--linha); cursor: pointer;
}
.grupo .opcao:first-of-type { border-top: 0; }
.opcao input { width: 1.25rem; height: 1.25rem; accent-color: var(--verde); flex: 0 0 auto; }
.opcao__nome { flex: 1; }
.opcao__preco { font-weight: 800; color: var(--verde); white-space: nowrap; }
/* As fotos do produto correm de lado, uma por vez. */
.fotos-cardapio {
  display: flex; gap: .5rem; overflow-x: auto; scroll-snap-type: x mandatory; margin-bottom: .7rem;
}
.fotos-cardapio img {
  flex: 0 0 100%; width: 100%; aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: 12px; scroll-snap-align: start;
}
.item__preco small { font-size: .68rem; font-weight: 600; color: var(--creme); }
@media (max-width: 480px) {
  .item { grid-template-columns: 72px 1fr auto; gap: .6rem; }
  .item__foto { width: 72px; height: 72px; }
  .item__preco { width: auto; padding: .35rem .7rem; font-size: .9rem; }
}
/* Linha do "Meu pedido": sem foto, o preço e o botão de tirar. */
.item.item--pedido { grid-template-columns: 1fr auto auto; cursor: default; }
.total-pedido { text-align: right; font-size: 1.2rem; font-weight: 800; margin: .3rem 0 .8rem; }
.escolha-entrega { display: grid; grid-template-columns: 1fr 1fr; gap: 0 .6rem; margin-bottom: .4rem; }
.escolha-entrega .opcao { border-top: 0; }
/* A confirmação do pedido: o número grande, no meio. */
.recebido { text-align: center; }
.recebido__numero {
  display: inline-block; margin: .4rem 0 .2rem; padding: .4rem 1.4rem; border-radius: 999px;
  background: var(--faixa); color: var(--creme); font-size: 2rem; font-weight: 900;
}
/* O telefone no alto do cardápio, antes dos produtos. */
.quem {
  background: #fff; border: 1px solid var(--linha); border-radius: 12px;
  padding: .8rem .9rem .3rem; margin-bottom: 1rem;
}
.quem .campo input { font-size: 1.2rem; font-weight: 700; letter-spacing: .02em; }
.quem__achado { margin: 0 0 .6rem; font-size: .92rem; color: var(--apagado); min-height: 1.2em; }
.quem__ok {
  display: inline-grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: 50%;
  background: var(--verde); color: #fff; font-size: .8rem; font-weight: 900;
}

/* ------------------------------------------------------------ pedidos --
 *
 * O botão Pedidos fica colado na logo da pizzaria, separado dos cadastros,
 * com o contador vermelho dos pedidos ainda não aceitos.
 */
.botao--pedidos { position: relative; align-self: flex-end; flex: 0 0 5.4rem; }
.contador {
  position: absolute; top: -.45rem; right: -.45rem; min-width: 1.45rem; height: 1.45rem;
  display: grid; place-items: center; padding: 0 .3rem; border-radius: 999px;
  background: var(--vermelho); color: #fff; font-size: .78rem; font-weight: 900;
  border: 2px solid var(--faixa);
}
.filtros { display: flex; gap: .5rem; margin-bottom: .7rem; }
.filtro--ativo { background: var(--verde); color: #fff; }
.pedido { padding: .8rem .9rem; border-top: 1px solid var(--linha); }
.pedido:first-child { border-top: 0; }
.pedido:nth-child(even) { background: #f6f1ed; }
.pedido__topo { display: flex; align-items: center; gap: .7rem; margin-bottom: .35rem; }
.pedido__numero { font-size: 1.25rem; font-weight: 900; }
.pedido__hora { color: var(--apagado); font-weight: 700; }
.pedido__situacao {
  margin-left: auto; padding: .15rem .6rem; border-radius: 999px;
  background: var(--faixa); color: var(--creme); font-size: .75rem; font-weight: 800;
}
.pedido--novo .pedido__situacao { background: var(--vermelho); color: #fff; }
/* PEDIDO PARADO (NOVO sem aceitar há X min, Configurações): pisca vermelho. */
.pedido--parado { animation: pedido-pisca 1s steps(1, end) infinite; }
@keyframes pedido-pisca { 50% { background: #f8d4d4; box-shadow: inset 8px 0 0 var(--vermelho); } }
.pedido__parado { color: #fff; background: var(--vermelho); border-radius: 999px; padding: .1rem .55rem; font-size: .72rem; font-weight: 900; }
/* SAIU PARA ENTREGA: no lugar do botão, o aviso de que o motoboy confirma. */
.botao--aguardando {
  background: #b8860b; color: #fff; cursor: default; animation: aguarda 2s ease-in-out infinite;
  display: inline-flex; align-items: center; justify-content: center; text-align: center;
  line-height: 1.2; font-size: .85rem; padding: .45rem .9rem; text-wrap: balance;
}
.botao--aguardando:hover { filter: none; }
@keyframes aguarda { 50% { opacity: .65; } }
/* ESPERANDO ENTREGA (NFC-e emitida, aguardando o motoboy): selo âmbar. */
.pedido--esperando .pedido__situacao, .ver__situacao--esperando { background: #b8860b; color: #fff; }
.pedido--esperando { box-shadow: inset 5px 0 0 #b8860b; }
/* MOTOBOY (24/09/2026): quem entregou, no pedido; e o relatório por motoboy. */
.pedido__entrega { margin-top: .45rem; padding: .35rem .6rem; border-radius: 8px; background: #e3f3e5; color: #1f5a2a; font-size: .88rem; }
.pedido__saida { background: #fff3d6; color: #7a5a00; }
.tabela-mb { width: 100%; border-collapse: collapse; margin-top: .5rem; font-size: .85rem; }
.tabela-mb th, .tabela-mb td { text-align: left; padding: .25rem .35rem; border-bottom: 1px solid var(--linha); }
.janela-relatorio-mb { width: min(820px, 96vw); }
/* VER: ao lado da situação, abre o pedido inteiro (24/09/2026). */
.pedido__ver { padding: .15rem .7rem; font-size: .75rem; font-weight: 800; }
.janela-ver-pedido { width: min(560px, 96vw); }
.ver { font-size: 1rem; }
.ver__topo { display: flex; align-items: center; gap: .6rem; margin-bottom: .7rem; }
.ver__quando { color: var(--apagado); font-weight: 700; }
.ver__situacao { margin-left: auto; }
.ver__situacao--novo { background: var(--vermelho); color: #fff; }
.ver__bloco { padding: .6rem .7rem; border: 1px solid var(--linha); border-radius: 10px; margin-bottom: .7rem; line-height: 1.5; }
.ver__nome { font-size: 1.15rem; font-weight: 900; }
.ver__itens { list-style: none; margin: 0 0 .7rem; padding: 0; border-top: 2px dashed var(--linha); }
.ver__item { padding: .55rem 0; border-bottom: 1px dashed var(--linha); }
.ver__linha { display: flex; justify-content: space-between; gap: .8rem; }
.ver__det { font-size: .9rem; color: #444; padding-left: 1.4rem; }
.ver__det--sem { color: var(--vermelho); font-weight: 800; }
.ver__obs { background: #fff8e6; }
.ver__contas { display: grid; gap: .25rem; }
.ver__total { font-size: 1.25rem; font-weight: 900; border-top: 2px solid var(--faixa); padding-top: .35rem; margin-top: .2rem; }
.pedido--novo { box-shadow: inset 5px 0 0 var(--vermelho); }
.pedido--cancelado { opacity: .6; }
.pedido__cliente { font-size: .92rem; margin-bottom: .45rem; }
.pedido__itens { list-style: none; margin: 0 0 .45rem; padding: 0; }
.pedido__itens li { padding: .3rem 0; border-top: 1px dashed var(--linha); }
.pedido__itens li > span { float: right; font-weight: 700; }
.pedido__detalhe { font-size: .85rem; color: var(--apagado); }
.pedido__conta { display: flex; gap: .9rem; justify-content: flex-end; align-items: baseline; flex-wrap: wrap; font-size: .9rem; }
.pedido__conta b { font-size: 1.1rem; }
.pedido__acoes { display: flex; gap: .5rem; justify-content: flex-end; margin-top: .6rem; }
/* A engrenagem das Configurações: redonda, menor, logo depois do último botão. */
.cabecalho__acoes .botao--engrenagem {
  flex: 0 0 2.6rem; width: 2.6rem; height: 2.6rem; padding: 0; border-radius: 50%;
  display: grid; place-items: center; align-self: center;
}
/* A logo da Mateus encostada na borda direita da faixa. O arquivo tem uma
   sobra transparente à esquerda (quase um quarto da largura): a margem
   negativa come essa sobra e a engrenagem fica colada na logo. */
.selo--mateus { margin-right: -1rem; margin-left: -2.6rem; }
.aviso__numero { font-size: 1.35em; font-weight: 900; }
/* O brinde: na caixa do app, na confirmação e no pedido do sistema. */
.aviso__brinde { display: inline-block; margin-top: .5rem; color: var(--vermelho); font-weight: 900; }
.pedido__brinde {
  margin: .2rem 0 .45rem; padding: .3rem .6rem; border-radius: 8px;
  background: #fbe3e3; color: var(--vermelho); font-weight: 900;
}
/* Pedidos fora da fileira: perto da logo da pizzaria, mas com respiro. */
.cabecalho > .botao--pedidos { margin-left: 1.6rem; }
/* O rodapé do app da cliente: só o endereço, no meio. */
.rodape--app { justify-content: center; text-align: center; font-size: .85rem; }
/* A barra do carrinho do app: verde, presa embaixo, acima do rodapé. */
.barra-pedido {
  position: fixed; left: .8rem; right: .8rem; bottom: 2.9rem; z-index: 25;
  display: flex; align-items: center; gap: .7rem; padding: .8rem 1rem;
  border: 0; border-radius: 14px; background: var(--verde); color: #fff;
  font: inherit; font-weight: 800; font-size: 1.05rem; cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,.3);
}
.barra-pedido > span:nth-child(2) { flex: 1; text-align: left; }
.barra-pedido__qtd {
  min-width: 1.7rem; height: 1.7rem; display: grid; place-items: center; border-radius: 999px;
  background: var(--creme); color: var(--faixa); font-weight: 900;
}
/* Folga no fim da lista para a barra não cobrir o último produto. */
#produtos-area { padding-bottom: 5rem; }
/* O carrinho na barra: o desenho do carrinho com o número de itens em cima. */
.barra-pedido__icone { position: relative; display: grid; place-items: center; }
.barra-pedido__icone .barra-pedido__qtd {
  position: absolute; top: -.55rem; right: -.7rem; min-width: 1.25rem; height: 1.25rem; font-size: .72rem;
}
.barra-pedido > span:nth-child(2) { flex: 1; text-align: left; margin-left: .4rem; }
/* O carrinho aberto: item, − quantidade +, e o resumo. */
.carrinho__item { display: flex; gap: .8rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--linha); }
.carrinho__desc { flex: 1; min-width: 0; }
.carrinho__desc .item__meta { margin-top: .15rem; }
.carrinho__preco { margin-top: .3rem; font-weight: 800; color: var(--verde); }
.passo {
  display: flex; align-items: center; gap: .2rem; flex: 0 0 auto;
  border: 1px solid var(--linha); border-radius: 999px; padding: .15rem;
}
.passo button {
  width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: transparent;
  color: var(--vermelho); font: inherit; font-size: 1.2rem; font-weight: 900; cursor: pointer; line-height: 1;
}
.passo b { min-width: 1.4rem; text-align: center; }
.carrinho__mais {
  display: block; width: 100%; margin: .6rem 0; padding: .6rem; border: 0; background: transparent;
  color: var(--vermelho); font: inherit; font-weight: 800; cursor: pointer;
}
.resumo { margin: .2rem 0 1rem; }
.resumo > div { display: flex; justify-content: space-between; padding: .2rem 0; color: var(--apagado); }
.resumo__total { color: var(--texto) !important; font-size: 1.15rem; font-weight: 900; }
/* A senha no alto do Pedido. */
.quem__linha { margin: .5rem 0; font-size: .92rem; }
.quem__linha a { color: var(--vermelho); font-weight: 700; }
.quem__manter { display: flex; align-items: center; gap: .45rem; margin: .5rem 0; font-size: .92rem; }
.quem__manter input { width: 1.15rem; height: 1.15rem; accent-color: var(--verde); }
/* A logo do sistema é link para o início: sem sublinhado, do tamanho da logo. */
.selo-link { display: block; flex: 0 0 auto; line-height: 0; }

/* Título de cada GRUPO no cardápio da cliente (PIZZAS SALGADAS, PIZZAS DOCES). */
.grupo-titulo { margin: 1.2rem 0 .5rem; font-size: 1.15rem; font-weight: 800; letter-spacing: .5px; color: var(--verde, #14392a); }


/* Foto do produto em tela inteira (clicar na miniatura do cadastro). */
.foto img { cursor: zoom-in; }
dialog.foto-grande {
  width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; margin: 0; padding: 0;
  border: 0; background: rgba(0, 0, 0, .92); display: flex; align-items: center; justify-content: center;
  cursor: zoom-out;
}
dialog.foto-grande::backdrop { background: rgba(0, 0, 0, .92); }
.foto-grande img { max-width: 96vw; max-height: 94vh; object-fit: contain; box-shadow: 0 0 40px rgba(0, 0, 0, .6); }
.foto-grande__fechar, .foto-grande__seta {
  position: absolute; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .15); color: #fff;
  cursor: pointer; font-size: 1.6rem; width: 3rem; height: 3rem; line-height: 3rem; text-align: center;
}
.foto-grande__fechar { top: 1rem; right: 1rem; }
.foto-grande__seta { top: 50%; transform: translateY(-50%); font-size: 2.4rem; }
.foto-grande__seta--ant { left: 1rem; }
.foto-grande__seta--prox { right: 1rem; }
.foto-grande__fechar:hover, .foto-grande__seta:hover { background: rgba(255, 255, 255, .3); }

/* ------------------------------------------------------------------ *
 * APP DA CLIENTE no estilo cardápio de app (modelo do Mateus,
 * 23/09/2026): abas dos grupos presas no topo; item com nome,
 * ingredientes e preço em vermelho, foto à direita.
 * ------------------------------------------------------------------ */
.abas-grupos {
  position: sticky; top: 0; z-index: 5; display: flex; gap: 0; overflow-x: auto;
  background: #fff; border-bottom: 1px solid #e6ded0; margin: .6rem -.9rem 0; padding: 0 .5rem;
  scrollbar-width: none;
}
.abas-grupos::-webkit-scrollbar { display: none; }
.aba-grupo {
  flex: 0 0 auto; border: 0; background: none; padding: .9rem .9rem .8rem; cursor: pointer;
  font: inherit; font-size: .85rem; font-weight: 700; letter-spacing: .5px; color: #6b6255;
  border-bottom: 3px solid transparent; white-space: nowrap;
}
.aba-grupo--ativa { color: var(--vermelho, #8c1b1b); border-bottom-color: var(--vermelho, #8c1b1b); }
.cardapio { background: #fff; margin: 0 -.9rem; padding: 0 .9rem 1rem; }
.secao { scroll-margin-top: 3.4rem; }
.secao__titulo { margin: 0; padding: 1.3rem 0 .4rem; font-size: 1.3rem; font-weight: 900; color: #222; letter-spacing: .3px; }
.prato {
  display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 0;
  border-bottom: 1px solid #eee6da; cursor: pointer;
}
.prato:last-child { border-bottom: 0; }
.prato__texto { flex: 1; min-width: 0; }
.prato__nome { font-size: 1.05rem; font-weight: 600; color: #222; }
.prato__desc { margin-top: .25rem; font-size: .88rem; line-height: 1.35; color: #7a7266; }
.prato__preco { margin-top: .35rem; font-size: .92rem; font-weight: 700; color: var(--vermelho, #8c1b1b); }
.prato__preco small { font-weight: 600; font-size: .75rem; color: #7a7266; }
.prato__foto { flex: 0 0 auto; width: 96px; height: 96px; border-radius: 8px; object-fit: cover; background: #f0e6d8; }

/* Primeiro acesso: as duas senhas e o SALVAR à direita, na mesma linha; no
   celular, um campo embaixo do outro e o botão à direita. */
.senha-nova { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; }
.senha-nova .campo { flex: 1 1 12rem; margin: 0; }
.senha-nova__salvar { flex: 0 0 auto; margin-left: auto; min-width: 7rem; }
@media (max-width: 600px) { .senha-nova .campo { flex-basis: 100%; } }

/* Olhinho dentro do campo de senha, à direita. */
.senha-caixa { position: relative; display: block; }
.senha-caixa input { width: 100%; padding-right: 3rem; }
.senha-caixa__olho {
  position: absolute; right: .35rem; top: 50%; transform: translateY(-50%);
  border: 0; background: none; padding: .35rem; cursor: pointer; color: #6b6255; line-height: 0;
}
.senha-caixa__olho:hover { color: var(--verde, #14392a); }

/* Pergunta de instalar: continuar o pedido aqui ou salvar o ícone na tela. */
.instalar {
  position: fixed; inset: 0; z-index: 100; display: flex; align-items: flex-end; justify-content: center;
  background: rgba(0, 0, 0, .55); padding: 1rem;
}
.instalar__caixa {
  width: 100%; max-width: 420px; background: #fff; border-radius: 18px; padding: 1.4rem 1.2rem 1.1rem;
  text-align: center; box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
}
.instalar__icone { width: 84px; height: 84px; border-radius: 50%; display: block; margin: -3.4rem auto .6rem; box-shadow: 0 4px 14px rgba(0, 0, 0, .3); }
.instalar__caixa h2 { margin: 0 0 .35rem; font-size: 1.25rem; color: #222; }
.instalar__caixa p { margin: 0 0 1rem; color: #6b6255; font-size: .95rem; line-height: 1.4; }
.instalar__botao {
  display: block; width: 100%; margin-top: .55rem; padding: .95rem; border-radius: 12px; font: inherit;
  font-weight: 800; font-size: 1.02rem; cursor: pointer; border: 2px solid #3a2719; background: #fff; color: #3a2719;
}
.instalar__botao--salvar { background: #3a2719; color: #fff; }
.instalar__passos { margin-top: .9rem; padding: .8rem; border-radius: 10px; background: #f2ebe5; color: #333; font-size: .92rem; line-height: 1.45; text-align: left; }
.instalar__simbolo { font-weight: 900; }

/* Cadastro do cliente no app (telefone novo). */
.janela-cadastro { width: min(520px, 96vw); }
.janela-cadastro .campo { margin-bottom: .6rem; }
.janela-cadastro .campo span small { font-weight: 500; opacity: .8; }
.k-linha { display: flex; gap: .6rem; }
.k-linha .campo { flex: 1 1 0; min-width: 0; }
.k-linha .k-uf { flex: 0 0 4.5rem; }

/* Logo da Mateus Informática no app, igual à do sistema (brilho branco em
   volta) e "Desenvolvimento" na base da pirâmide. */
.assinatura { margin-left: auto; display: flex; flex-direction: column; align-items: center; flex: 0 0 auto; }
.assinatura__logo {
  height: 74px; width: auto; max-width: 42vw; object-fit: contain;
  filter: drop-shadow(0 0 3px rgba(255,255,255,.95)) drop-shadow(0 0 12px rgba(255,255,255,.55));
}
.assinatura__texto {
  margin-top: -.35rem; font-size: .72rem; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase;
  color: #fff; text-shadow: 0 0 6px rgba(255,255,255,.6);
}
.assinatura--porta { margin: 1.6rem auto 3.5rem; }
@media (max-width: 420px) { .assinatura__logo { height: 56px; } .assinatura__texto { font-size: .62rem; letter-spacing: 1px; } }

.secao__vazia { margin: 0; padding: .6rem 0 1rem; color: #9a9184; font-style: italic; }

/* Título do grupo no app: faixa verde, letra branca, centralizado (pedido do Mateus). */
.secao__titulo { margin: 1rem -.9rem .2rem; padding: .7rem 1rem; background: #3a2719; color: #fff; text-align: center; font-size: 1.15rem; letter-spacing: 1px; }

/* LOGIN DO SISTEMA: tela por cima de tudo, até entrar. */
.login-fundo {
  position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center;
  background: #3a2719; padding: 1rem; overflow: auto;
}
.login-caixa {
  width: 100%; max-width: 380px; background: #fff; border-radius: 16px; padding: 1.4rem 1.3rem 1.1rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, .35);
}
.login-caixa__logo { display: block; width: 96px; height: 96px; border-radius: 50%; object-fit: contain; background: #fff; padding: 4px; margin: -3.8rem auto .7rem; box-shadow: 0 4px 14px rgba(0, 0, 0, .35); }
.login-caixa h2 { margin: 0 0 .8rem; text-align: center; font-size: 1.2rem; color: #222; }
.login-caixa__dica { margin: 0 0 .8rem; font-size: .9rem; color: #6b6255; text-align: center; }
.login-caixa .campo { margin-bottom: .6rem; }
.login-caixa__ok { width: 100%; margin-top: .4rem; }
.login-caixa__links { margin-top: .8rem; text-align: center; font-size: .9rem; }
.usuario-sistema { position: relative; margin-left: .4rem; }
.usuario-sistema__nome {
  border: 0; border-radius: 999px; padding: .45rem .8rem; font: inherit; font-weight: 800; font-size: .8rem;
  background: rgba(255, 255, 255, .12); color: var(--creme, #f2ebe5); cursor: pointer; white-space: nowrap;
}
.usuario-sistema__menu {
  position: absolute; right: 0; top: calc(100% + .3rem); z-index: 50; background: #fff; border-radius: 10px;
  box-shadow: 0 6px 24px rgba(0, 0, 0, .25); overflow: hidden; min-width: 10rem;
}
.usuario-sistema__menu button { display: block; width: 100%; padding: .7rem 1rem; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; }
.usuario-sistema__menu button:hover { background: #f2ebe5; }

/* MEUS PEDIDOS no app: o andamento de cada pedido. */
.quem__linha--logado { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.botao-meus {
  border: 2px solid #3a2719; background: #fff; color: #3a2719; border-radius: 999px;
  padding: .35rem .8rem; font: inherit; font-weight: 800; font-size: .85rem; cursor: pointer;
}
.meu-pedido { border: 1px solid #eee6da; border-radius: 12px; padding: .8rem .9rem; margin-bottom: .7rem; }
.meu-pedido__topo { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.meu-pedido__quando { font-size: .8rem; color: #8a8174; margin-top: .15rem; }
.meu-pedido__itens { margin-top: .5rem; font-size: .9rem; line-height: 1.45; }
.meu-pedido__total { margin-top: .45rem; font-weight: 800; color: var(--vermelho, #8c1b1b); }
.andamento { padding: .25rem .6rem; border-radius: 999px; font-size: .72rem; font-weight: 900; letter-spacing: .5px; white-space: nowrap; }
.and--novo { background: #f5efeb; color: #6a472d; }
.and--preparo { background: #fff1d6; color: #9a5b00; }
.and--saiu { background: #f5efeb; color: #614129; }
.and--entregue { background: #dff3e3; color: #1f6b2b; }
.and--cancelado { background: #fbe3e3; color: #8c1b1b; }

/* MENUS DO CABEÇALHO (23/09/2026): o usuário logado fica no alto da faixa,
   fora da fileira; os botões encolhem juntos em vez de passar por cima do
   Pedidos. */
.cabecalho .usuario-sistema { position: absolute; top: .35rem; right: 12.5rem; margin: 0; z-index: 30; }
.cabecalho__acoes { gap: .4rem; }
.cabecalho__acoes .botao { flex: 0 1 5.4rem; min-width: 4.3rem; }
.cabecalho__acoes .botao--engrenagem { flex: 0 0 2.6rem; min-width: 2.6rem; }
@media (max-width: 1000px) { .botao--icone span { font-size: .66rem; } .cabecalho > .botao--pedidos { margin-left: .8rem; } }
/* O usuário logado, visível no alto da faixa. */
.cabecalho .usuario-sistema__nome { background: var(--creme, #f2ebe5); color: var(--faixa, #3a2719); padding: .3rem .75rem; font-size: .75rem; }
/* Janela até 1100 px: botões mais estreitos e a logo da Mateus menor, para
   a fileira caber sem passar por cima do Pedidos. */
@media (max-width: 1100px) {
  .cabecalho__acoes { gap: .3rem; }
  .cabecalho__acoes .botao { flex: 0 1 4.6rem; min-width: 3.5rem; padding: .35rem .25rem; }
  .cabecalho .selo--mateus { max-width: 150px; margin-left: -1.6rem; }
  .cabecalho .usuario-sistema { right: 9rem; }
}

/* Horário do app, logo abaixo do cabeçalho: aberto (verde) ou fechado (vermelho). */
.faixa-horario { padding: .55rem 1rem; text-align: center; font-size: .9rem; }
.faixa-horario--aberto { background: #e3f3e5; color: #1f5a2a; }
.faixa-horario--fechado { background: #fbe3e3; color: #8c1b1b; }
/* Juntar sabores: lista que rola dentro da janela do produto. */
.juntar { max-height: 16rem; overflow-y: auto; }
.juntar input:disabled + .opcao__nome { opacity: .45; }

/* TELE GRÁTIS em destaque no topo do app (e o valor, quando houver taxa). */
.faixa-tele { padding: .5rem 1rem; text-align: center; font-size: .92rem; background: #f2ebe5; color: #333; }
.faixa-tele--gratis {
  background: #1f7a35; color: #fff; font-size: 1.15rem; letter-spacing: 1px; padding: .7rem 1rem;
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, .15);
}
.faixa-tele--gratis b { font-weight: 900; }
.selo-gratis { display: inline-block; padding: .15rem .55rem; border-radius: 999px; background: #1f7a35; color: #fff; font-weight: 900; letter-spacing: .5px; }

/* O usuário logado (👤 NOME) centralizado embaixo da logo da Mateus, na
   linha entre a faixa verde e a página (pedido do Mateus, 23/09/2026). */
.cabecalho .usuario-sistema { top: 100%; right: 115px; transform: translate(50%, -50%); }
@media (max-width: 1100px) { .cabecalho .usuario-sistema { right: 75px; } }
.cabecalho .usuario-sistema__nome { box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
.cabecalho .usuario-sistema__menu { right: 50%; transform: translateX(50%); }
/* O botão do usuário INTEIRO abaixo da faixa verde, com um respiro,
   centralizado embaixo da logo da Mateus (ajuste do Mateus, 23/09/2026). */
.cabecalho .usuario-sistema { top: calc(100% + .5rem); transform: translateX(50%); }
/* O usuário EM CIMA DO PEDIDOS (substitui as posições anteriores): mesma
   largura do Pedidos, mais fino; o Pedidos fica como estava. */
.coluna-pedidos { display: flex; flex-direction: column; gap: .3rem; align-self: flex-end; margin-left: 1.6rem; flex: 0 0 5.4rem; }
.coluna-pedidos > .botao--pedidos { margin-left: 0; width: 100%; }
.cabecalho .coluna-pedidos .usuario-sistema { position: relative; top: auto; right: auto; transform: none; margin: 0; }
.coluna-pedidos .usuario-sistema__nome {
  width: 100%; padding: .12rem .3rem; font-size: .66rem; line-height: 1.3; box-shadow: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 999px;
}
.coluna-pedidos .usuario-sistema__menu { left: 0; right: auto; transform: none; top: calc(100% + .25rem); }
@media (max-width: 1000px) { .coluna-pedidos { margin-left: .8rem; } }
.coluna-pedidos > .botao--pedidos { flex: none; align-self: stretch; }

/* SINCRONIZAR, logo à direita do Pedidos; o ícone gira enquanto sincroniza. */
.botao--sinc { align-self: flex-end; flex: 0 0 5.4rem; margin-left: .6rem; }
.botao--sinc:disabled { opacity: .7; cursor: wait; }
.botao--sinc-girando svg { animation: sinc-gira 1s linear infinite; }
@keyframes sinc-gira { to { transform: rotate(360deg); } }
@media (max-width: 1100px) { .botao--sinc { flex-basis: 4.6rem; padding: .35rem .25rem; } }

/* ⚙ Impressoras: lista e cadastro. */
.janela-impressoras { width: min(760px, 96vw); }
.imp-linha { display: flex; align-items: center; gap: .5rem; padding: .6rem 0; border-bottom: 1px solid var(--linha, #e6ded0); }
.imp-linha__txt { flex: 1; min-width: 0; }
.imp-linha--parada { opacity: .55; }
.janela-impressoras .dois { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
@media (max-width: 700px) { .janela-impressoras .dois { grid-template-columns: 1fr; } }
.janela-impressoras .marcaveis { max-height: 15rem; }

/* Pergunta de salvar o ícone: sozinha, sem a página por trás (pedido do Mateus). */
.instalar { background: #3a2719; align-items: center; }
.instalar__caixa h2 { margin-bottom: 1rem; }

/* A sobra transparente da logo da Mateus cobria a engrenagem e o clique não
   chegava nela: os botões ficam NA FRENTE da logo. */
.cabecalho__acoes { position: relative; z-index: 3; }
.instalar__passos { text-align: center; }
/* "Desenvolvimento" logo abaixo da base da pirâmide (sem subir no
   "Informática"), sem negrito e no centro da pirâmide -- que fica um pouco
   à esquerda do meio da imagem. */
.assinatura__texto { margin-top: .05rem; font-weight: 400; font-size: .62rem; letter-spacing: 2px; transform: translateX(-8px); text-shadow: 0 0 4px rgba(255,255,255,.45); }
@media (max-width: 420px) { .assinatura__texto { font-size: .55rem; letter-spacing: 1.5px; transform: translateX(-6px); } }
/* "Desenvolvimento" de ponta a ponta da BASE da pirâmide (45,5% da largura
   da imagem, no centro dela), letra por letra; o site embaixo. Tudo no centro. */
.assinatura { align-items: center; text-align: center; }
.assinatura__texto {
  display: flex; justify-content: space-between; width: 45.5%; margin: .1rem auto 0;
  text-transform: none; letter-spacing: 0; transform: none; font-weight: 400; font-size: .66rem;
}
.assinatura__site { display: block; margin-top: .15rem; font-size: .58rem; color: #fff; opacity: .85; text-decoration: none; letter-spacing: .3px; }
.assinatura__site:hover { text-decoration: underline; opacity: 1; }
@media (max-width: 420px) { .assinatura__texto { font-size: .54rem; letter-spacing: 0; transform: none; } .assinatura__site { font-size: .5rem; } }
/* A caixa da assinatura tem a largura da LOGO (na tela de entrada ela
   ocupava a tela toda e o "Desenvolvimento" esticava junto). */
.assinatura { width: fit-content; display: flex; }
.assinatura--porta { margin-left: auto; margin-right: auto; }
.assinatura__site { font-size: .68rem; }
@media (max-width: 420px) { .assinatura__site { font-size: .6rem; } }
/* A logo da Mateus também abre o site; o endereço um pouco maior. */
.assinatura__link { display: block; line-height: 0; }
.assinatura__site { font-size: .78rem; }
@media (max-width: 420px) { .assinatura__site { font-size: .7rem; } }

/* Grupos: a linha tem nome, ▲, ▼, gravar e excluir. */
#g-lista .item--retirar { grid-template-columns: minmax(0, 1fr) auto auto auto auto; }
/* O lema da casa na pergunta de salvar o ícone, entre o nome e os botões. */
.instalar__lema { list-style: none; margin: 0 auto 1rem; padding: 0; display: inline-block; text-align: left; color: #333; font-size: .95rem; line-height: 1.7; }
.instalar__lema span { display: inline-block; width: 1.6rem; }
/* A bandeira desenhada: o Windows mostra o emoji 🇮🇹 como "IT". */
.instalar__bandeira { display: inline-block; width: 1.15rem; height: .8rem; vertical-align: -.05rem; border-radius: 2px;
  background: linear-gradient(90deg, #009246 33.3%, #fff 33.3% 66.6%, #ce2b37 66.6%); box-shadow: 0 0 0 1px rgba(0,0,0,.12); }
.instalar__caixa h2 { margin-bottom: .6rem; }
/* Pergunta de salvar o ícone: sem o nome escrito, a logo maior no lugar. */
.instalar__icone { width: 132px; height: 132px; margin: -5.2rem auto .9rem; }
.instalar__caixa { padding-top: 1.2rem; }

/* LOGO OFICIAL redonda (23/09/2026): no cabeçalho do app, na entrada e no sistema. */
.logo-cabecalho { display: block; height: 108px; width: 108px; border-radius: 50%; }
@media (max-width: 420px) { .logo-cabecalho { height: 92px; width: 92px; } }
.porta__logo img { border-radius: 50%; box-shadow: 0 6px 24px rgba(0,0,0,.35); }

/* CAPA da pizzaria no fundo da pergunta de salvar o ícone (23/09/2026): a
   foto cobre a tela sem esticar; a caixa fica embaixo, para o nome da casa
   aparecer em cima. Um véu escuro só no pé, atrás da caixa. */
.instalar {
  background: #3a2719 url(capa.png) center / cover no-repeat;
  align-items: flex-end; padding-bottom: 1.2rem;
}
.instalar::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 45%, rgba(0,0,0,.55) 100%);
}
.instalar__caixa { position: relative; }
/* Celular em pé: a capa na parte de cima (nome inteiro e as pizzas dos
   lados), a cor da madeira embaixo, atrás da caixa. */
@media (orientation: portrait) {
  .instalar { background: #21160e url(capa.png) center top / auto 60vh no-repeat; }
  .instalar::before { background: linear-gradient(to bottom, rgba(42,23,13,0) 45vh, #21160e 60vh); }
}
.selo-link--mateus { align-self: stretch; margin-right: -1rem; }
.selo-link--mateus .selo--mateus { margin-right: 0; }
/* Pergunta de salvar o ícone: SÓ OS BOTÕES em cima da capa (sem caixa
   branca e sem a logo redonda, para não tapar a capa). */
.instalar__caixa { background: transparent; box-shadow: none; padding: 0; }
.instalar__botao { box-shadow: 0 4px 14px rgba(0, 0, 0, .35); }
@media (orientation: portrait) {
  .instalar { background-size: auto 76vh; }
  .instalar::before { background: linear-gradient(to bottom, rgba(42,23,13,0) 62vh, #21160e 76vh); }
}
/* A frase da casa, centralizada, em amarelo-ouro (combina com a capa). */
.frase-casa {
  margin: .4rem 0 .2rem; text-align: center; font-family: 'Playfair Display', Georgia, serif; font-style: italic;
  font-size: 1.12rem; font-weight: 700; color: #b8871b; letter-spacing: .2px;
}
.quem__ola { font-size: 1rem; }
.frase-casa { text-wrap: balance; }
/* SAUDAÇÃO depois de entrar: faixa verde, "Olá, Mateus," + a frase em
   amarelo-ouro na mesma linha, e o "Meus pedidos" branco à direita. */
.saudacao {
  display: flex; align-items: center; gap: .8rem; margin-top: .7rem;
  background: #3a2719; color: #f2ebe5; border-radius: 12px; padding: .7rem .9rem;
}
.saudacao__texto { flex: 1; margin: 0; font-size: 1rem; line-height: 1.35; text-wrap: balance; }
.saudacao__texto b { color: #fff; }
.saudacao .frase-casa { display: inline; margin: 0; font-size: 1.02rem; color: #be9b81; text-align: left; }
.saudacao .botao-meus { flex: 0 0 auto; background: #fff; color: #3a2719; border-color: #fff; }
.saudacao .botao-meus:hover { background: #e6f2e7; }
@media (max-width: 560px) {
  .saudacao { flex-wrap: wrap; gap: .5rem; }
  .saudacao__texto { flex-basis: 100%; }
  .saudacao .botao-meus { margin-left: auto; padding: .3rem .8rem; font-size: .8rem; }
}
/* Faixa verde: "Olá, Mateus" à esquerda, a FRASE NO CENTRO, "Meus pedidos" à direita. */
.saudacao__ola { flex: 0 0 auto; font-size: 1rem; }
.saudacao__ola b { color: #fff; }
.saudacao .frase-casa { display: block; flex: 1; text-align: center; margin: 0; text-wrap: balance; }
.saudacao__meio { flex: 1; }
@media (max-width: 560px) {
  .saudacao .frase-casa { order: 3; flex-basis: 100%; }
  .saudacao .botao-meus { order: 2; }
}

/* TAMANHO com a quantidade ao lado do valor: nome | preço | − n + */
.tam-qtd { display: flex; align-items: center; gap: .6rem; padding: .55rem 0; border-bottom: 1px dashed #e6ded0; }
.tam-qtd:last-child { border-bottom: 0; }
.tam-qtd__nome { flex: 1; min-width: 0; }
.tam-qtd__preco { font-weight: 800; color: var(--verde, #3a2719); white-space: nowrap; }
.tam-qtd__qtd { display: inline-flex; align-items: center; gap: .15rem; border: 2px solid #3a2719; border-radius: 999px; padding: .1rem; }
.tam-qtd__qtd b { min-width: 1.6rem; text-align: center; font-size: 1rem; }
.tam-qtd__botao { width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: #3a2719; color: #fff; font-size: 1.2rem; font-weight: 900; line-height: 1; cursor: pointer; }
@media (max-width: 420px) {
  .tam-qtd { gap: .4rem; }
  .tam-qtd__nome { font-size: .85rem; }
  .tam-qtd__preco { font-size: .9rem; }
  .tam-qtd__botao { width: 1.8rem; height: 1.8rem; }
}
/* Foto do produto no app: toca e abre grande. */
.fotos-cardapio img { cursor: zoom-in; }
dialog.foto-grande { width: 100vw; height: 100vh; max-width: 100vw; max-height: 100vh; margin: 0; padding: 0; border: 0; background: rgba(0,0,0,.94); display: flex; align-items: center; justify-content: center; }
dialog.foto-grande::backdrop { background: rgba(0,0,0,.94); }
.foto-grande img { max-width: 100vw; max-height: 100vh; object-fit: contain; touch-action: pinch-zoom; }
.foto-grande__fechar { position: absolute; top: .8rem; right: .8rem; width: 2.8rem; height: 2.8rem; border: 0; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; font-size: 1.4rem; cursor: pointer; }
.tam-qtd__obs { width: 100%; margin: .1rem 0 .5rem; padding: .55rem .8rem; border: 1px solid #e6ded0; border-radius: 10px; font: inherit; font-size: .9rem; background: #fffdf8; }

/* MONTE SUA PIZZA: primeiro o tamanho (cartões), depois os sabores. */
/* As faixas de ponta a ponta puxam EXATAMENTE a borda do main (.9rem): com
   -1rem passavam 1,6 px da tela e o app ESCORREGAVA para o lado no celular
   (Mateus, 24/09/2026). */
.escolha-tamanho { background: #fff; margin: .6rem -.9rem 0; padding: 1rem; }
.escolha-tamanho__titulo { margin: 0 0 .7rem; text-align: center; font-size: 1.2rem; color: #3a2719; }
.escolha-tamanho__cartoes { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
.cartao-tamanho {
  display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: 1rem .6rem;
  border: 2px solid #3a2719; border-radius: 16px; background: #fff; cursor: pointer; font: inherit;
  box-shadow: 0 3px 10px rgba(0,0,0,.08);
}
.cartao-tamanho:hover { background: #f1f7f1; }
.cartao-tamanho__nome { font-size: 1.15rem; font-weight: 900; color: #3a2719; letter-spacing: .5px; }
.cartao-tamanho__det { font-size: .85rem; color: #6b6255; text-align: center; }
.cartao-tamanho__preco { margin-top: .2rem; font-weight: 900; color: var(--vermelho, #8c1b1b); }
.montar__sub { margin: 0 0 .6rem; text-align: center; color: #6b6255; }
.opcao--sabor .opcao__desc { display: block; font-size: .78rem; color: #8a8174; font-weight: 400; margin-top: .1rem; }
.cartao-tamanho { text-align: center; }
.cartao-tamanho__det { font-size: .9rem; line-height: 1.3; }

/* Tamanho escolhido, pizzas marcadas e a barra da montagem. */
.cartao-tamanho--escolhido { background: #3a2719; }
.cartao-tamanho--escolhido .cartao-tamanho__nome, .cartao-tamanho--escolhido .cartao-tamanho__det { color: #fff; }
.cartao-tamanho--escolhido .cartao-tamanho__preco { color: #be9b81; }
.prato--marcado { background: #eef6ee; box-shadow: inset 4px 0 0 #3a2719; }
.prato--marcado .prato__preco { color: #3a2719; }
.barra-montagem {
  position: fixed; left: .8rem; right: .8rem; bottom: 2.9rem; z-index: 26; display: flex; align-items: center; gap: .7rem;
  background: #3a2719; color: #f2ebe5; border-radius: 14px; padding: .7rem .8rem; box-shadow: 0 6px 20px rgba(0,0,0,.3);
}
.barra-montagem__txt { flex: 1; min-width: 0; font-size: .9rem; line-height: 1.3; }
.barra-montagem__txt small { opacity: .9; }
.barra-montagem__botao { flex: 0 0 auto; border: 0; border-radius: 999px; background: #fff; color: #3a2719; font: inherit; font-weight: 900; padding: .6rem .9rem; cursor: pointer; }
.barra-montagem__botao:disabled { opacity: .5; cursor: default; }
body.com-montagem .barra-pedido { bottom: 7.4rem; }
body.com-montagem main { padding-bottom: 12rem; }
/* Cartões do tamanho: PEQUENA verde da empresa, GRANDE cor de madeira;
   duas linhas no máximo, tudo centralizado. */
.escolha-tamanho__titulo { text-transform: uppercase; letter-spacing: 1px; text-align: center; }
.cartao-tamanho { border: 0; color: #fff; padding: 1rem .6rem; gap: .35rem; justify-content: center; box-shadow: 0 5px 14px rgba(0,0,0,.18); }
.cartao-tamanho--P { background: #3a2719; }
.cartao-tamanho--G { background: #6b3e22; }
.cartao-tamanho:hover { filter: brightness(1.08); background-color: inherit; }
.cartao-tamanho--P:hover { background: #3a2719; }
.cartao-tamanho--G:hover { background: #6b3e22; }
.cartao-tamanho__nome { color: #fff; font-size: 1.45rem; letter-spacing: 1.5px; }
.cartao-tamanho__det { color: #f2ebe5; font-size: .88rem; line-height: 1.35; }
.cartao-tamanho__det b { color: #be9b81; white-space: nowrap; }
/* escolhido: aro dourado em volta */
.cartao-tamanho--escolhido { box-shadow: 0 0 0 3px #be9b81, 0 5px 14px rgba(0,0,0,.25); }
.cartao-tamanho--escolhido.cartao-tamanho--P { background: #3a2719; }
.cartao-tamanho--escolhido.cartao-tamanho--G { background: #6b3e22; }
.cartao-tamanho--escolhido .cartao-tamanho__det { color: #f2ebe5; }
/* A barra da pizza em montagem é o RODAPÉ: colada embaixo, largura toda,
   sem flutuar em cima dos produtos (pedido do Mateus). */
.barra-montagem { left: 0; right: 0; bottom: 0; border-radius: 0; padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom)); box-shadow: 0 -4px 16px rgba(0,0,0,.25); }
body.com-montagem .rodape--app { display: none; }
body.com-montagem .barra-pedido { bottom: 5.2rem; }
body.com-montagem main { padding-bottom: 11rem; }
.cartao-tamanho__det { text-transform: uppercase; letter-spacing: .3px; }
/* Observação em duas linhas (pizza e produto). */
textarea.tam-qtd__obs { display: block; resize: none; min-height: 3.2rem; line-height: 1.35; }
textarea.tam-qtd__obs[hidden] { display: none; }
/* "Quantas pizzas você quer?" */
.quantas__pergunta { margin: .2rem 0 .8rem; text-align: center; font-size: 1.15rem; font-weight: 800; color: #3a2719; }
.quantas__qtd { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-bottom: .6rem; }
.quantas__qtd b { font-size: 2rem; min-width: 2.5rem; text-align: center; color: #3a2719; }
.quantas__botao { width: 3rem; height: 3rem; font-size: 1.6rem; }

/* MONTE O SEU PEDIDO — tudo em maiúsculas, nas cores da casa. */
.janela-montagem .janela__titulo, .janela-montagem .janela__corpo, .janela-montagem .botao { text-transform: uppercase; }
.quantas__pergunta { margin: .2rem 0 1rem; text-align: center; font-size: 1.2rem; font-weight: 900; color: #3a2719; letter-spacing: .5px; }
.quantas__linha {
  display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .6rem;
  padding: .8rem 1rem; border-radius: 14px; color: #fff;
}
.quantas__linha--P { background: #3a2719; }
.quantas__linha--G { background: #6b3e22; }
.quantas__tam { font-size: 1.25rem; font-weight: 900; letter-spacing: 1px; line-height: 1.2; }
.quantas__tam small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .3px; color: #f2ebe5; opacity: .9; }
.quantas__linha .quantas__qtd { display: inline-flex; align-items: center; gap: .6rem; margin: 0; }
.quantas__linha .quantas__qtd b { font-size: 1.6rem; min-width: 2rem; text-align: center; color: #fff; }
.quantas__linha .quantas__botao { width: 2.6rem; height: 2.6rem; font-size: 1.4rem; background: #fff; color: #3a2719; }
.quantas__linha--G .quantas__botao { color: #6b3e22; }
.quantas__total { margin: .4rem 0 0; text-align: center; font-weight: 800; color: #8c1b1b; letter-spacing: .5px; }
/* rodapé da montagem em maiúsculas + VER CARRINHO */
.barra-montagem__txt { text-transform: uppercase; }
.barra-montagem__carrinho {
  flex: 0 0 auto; display: inline-flex; flex-direction: column; align-items: center; position: relative;
  border: 2px solid #f2ebe5; border-radius: 12px; background: transparent; color: #f2ebe5; padding: .3rem .55rem; cursor: pointer; font: inherit;
}
.barra-montagem__carrinho b { position: absolute; top: -.5rem; right: -.5rem; min-width: 1.3rem; height: 1.3rem; border-radius: 999px; background: #8c1b1b; color: #fff; font-size: .72rem; display: grid; place-items: center; }
.barra-montagem__carrinho span { font-size: .6rem; font-weight: 800; letter-spacing: .3px; white-space: nowrap; }
.barra-montagem__botao { text-transform: uppercase; }
/* O TOTAL do pedido vai aparecendo no rodapé (carrinho + a pizza em montagem). */
.barra-montagem__total { display: inline-block; margin-top: .2rem; font-weight: 900; color: #be9b81; font-size: .95rem; letter-spacing: .3px; }
/* Montando: o carrinho fica no próprio rodapé (VER CARRINHO). */
body.com-montagem .barra-pedido { display: none; }

/* OUTROS ITENS: o terceiro botão, na largura toda, em vermelho da casa. */
.escolha-tamanho__cartoes .cartao-tamanho--O { grid-column: 1 / -1; background: #8c1b1b; flex-direction: row; justify-content: center; gap: .8rem; padding: .8rem; }
.cartao-tamanho--O:hover { background: #8c1b1b; }
.cartao-tamanho--O .cartao-tamanho__nome { font-size: 1.2rem; }
.cartao-tamanho--escolhido.cartao-tamanho--O { background: #8c1b1b; }
/* Fim das pizzas: dois botões grandes. */
.termino__botoes { display: grid; gap: .6rem; margin-top: .8rem; }
.termino__botao { border: 0; border-radius: 14px; padding: 1rem; font: inherit; font-weight: 900; font-size: 1.05rem; letter-spacing: .5px; cursor: pointer; color: #fff; }
.termino__botao--mais { background: #6b3e22; }
.termino__botao--fim { background: #3a2719; }
/* UMA LINHA: PEQUENA | ESCOLHA O TAMANHO | GRANDE | BEBIDAS (pedido do Mateus).
   No celular, BEBIDAS desce para a linha de baixo, na largura toda. */
.escolha-tamanho__titulo[hidden] { display: none; }
.escolha-tamanho__cartoes { grid-template-columns: 1fr auto 1fr 1fr; align-items: stretch; }
.escolha-tamanho__meio {
  display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 .4rem;
  font-weight: 900; font-size: .95rem; letter-spacing: 1px; line-height: 1.25; color: #3a2719;
}
.escolha-tamanho__cartoes .cartao-tamanho--O { grid-column: auto; flex-direction: column; }
.cartao-tamanho--O .cartao-tamanho__nome { font-size: 1.45rem; }
@media (max-width: 700px) {
  .escolha-tamanho__cartoes { grid-template-columns: 1fr auto 1fr; }
  .escolha-tamanho__cartoes .cartao-tamanho--O { grid-column: 1 / -1; }
  .escolha-tamanho__meio { font-size: .72rem; padding: 0 .1rem; }
  .cartao-tamanho__nome { font-size: 1.15rem; }
  .cartao-tamanho__det { font-size: .72rem; }
}
/* A frase ESCOLHA O TAMANHO fica EMBAIXO dos botões, centralizada entre
   PEQUENA e GRANDE (pedido do Mateus). */
.escolha-tamanho__cartoes { grid-template-columns: 1fr 1fr 1fr; grid-template-areas: "p g b" "t t ."; row-gap: .45rem; }
.escolha-tamanho__cartoes .cartao-tamanho--P { grid-area: p; }
.escolha-tamanho__cartoes .cartao-tamanho--G { grid-area: g; }
.escolha-tamanho__cartoes .cartao-tamanho--O { grid-area: b; }
.escolha-tamanho__meio { grid-area: t; font-size: 1rem; letter-spacing: 2px; padding: 0; }
@media (max-width: 700px) {
  .escolha-tamanho__cartoes { grid-template-columns: 1fr 1fr; grid-template-areas: "p g" "t t" "b b"; }
  .escolha-tamanho__cartoes .cartao-tamanho--O { grid-column: auto; grid-area: b; }
  .escolha-tamanho__meio { font-size: .9rem; }
}
/* ADICIONAR MAIS ITENS: botão de verdade, na cor madeira da casa. */
.carrinho__mais {
  margin: .8rem 0; padding: .85rem; border-radius: 14px; background: #6b3e22; color: #fff;
  font-weight: 900; letter-spacing: .5px; box-shadow: 0 3px 10px rgba(0,0,0,.15);
}
.carrinho__mais:hover { background: #7a4828; }
/* Quem está pedindo: telefone e nome só aparecem, não se altera. */
#p-fone[readonly], #p-nome[readonly] { background: #f1ede4; color: #3a342b; font-weight: 700; cursor: default; border-color: transparent; }
/* PEDIDO: TUDO EM MAIÚSCULAS -- títulos, opções, campos e o que se digita. */
dialog.janela-pedido, dialog.janela-pedido input, dialog.janela-pedido textarea,
dialog.janela-pedido select, dialog.janela-pedido button, dialog.janela-pedido legend { text-transform: uppercase; }
dialog.janela-pedido input::placeholder, dialog.janela-pedido textarea::placeholder { text-transform: uppercase; }

/* CONFIRMA O ENDEREÇO OU ALTERA: dois botões nas cores da casa. */
.confirma-end { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .7rem; }
.confirma-end__botao {
  border: 0; border-radius: 14px; padding: .85rem .5rem; font: inherit; font-weight: 900; letter-spacing: .5px;
  color: #fff; cursor: pointer; box-shadow: 0 3px 10px rgba(0,0,0,.15);
}
.confirma-end__botao--ok { background: #3a2719; }
.confirma-end__botao--alt { background: #6b3e22; }
.confirma-end__botao--feito { background: #2f7a3a; box-shadow: 0 0 0 3px #be9b81; }
.endereco--travado input, .endereco--travado select {
  background: #f1ede4; color: #3a342b; font-weight: 700; border-color: transparent; opacity: 1;
}
@media (max-width: 420px) { .confirma-end { grid-template-columns: 1fr; } }

/* PIX: QR code com o valor do pedido e o copia e cola. */
.pix { margin-top: 1rem; padding: 1rem; border: 2px solid #3a2719; border-radius: 16px; background: #fff; text-align: center; }
.pix__titulo { margin: 0 0 .6rem; font-weight: 900; color: #3a2719; font-size: 1.1rem; letter-spacing: .5px; }
.pix__qr { width: 220px; max-width: 100%; margin: 0 auto; }
.pix__qr svg { width: 100%; height: auto; display: block; }
.pix__dica { margin: .6rem 0; font-size: .8rem; font-weight: 700; color: #6b6255; }
.pix__copiar { width: 100%; border: 0; border-radius: 14px; padding: .85rem; background: #3a2719; color: #fff; font: inherit; font-weight: 900; letter-spacing: .5px; cursor: pointer; }
.pix__cnpj { margin: .6rem 0 0; font-size: .75rem; color: #6b6255; font-weight: 700; }
/* VER CARRINHO e a barra da montagem: COLADAS NO FIM DA TELA, largura toda,
   sem faixa branca embaixo (pedido do Mateus). */
.barra-pedido, .barra-montagem {
  left: 0; right: 0; bottom: 0; border-radius: 16px 16px 0 0;
  padding-bottom: calc(.9rem + env(safe-area-inset-bottom, 0px));
}
body.com-montagem .barra-pedido { bottom: 0; }
.rodape--app { padding-bottom: 5rem; }
.barra-pedido { text-transform: uppercase; letter-spacing: .5px; }

/* BEBIDA: janela de celular organizada -- foto pequena, quantidade grande,
   observação com atalhos. */
dialog.janela-bebida .fotos-cardapio { display: flex; justify-content: center; margin: 0 0 .6rem; }
dialog.janela-bebida .fotos-cardapio img { width: auto; max-width: 100%; height: 170px; object-fit: contain; border-radius: 12px; background: #fff; }
dialog.janela-bebida .fotos-cardapio img + img { display: none; }
dialog.janela-bebida .grupo legend { font-weight: 900; }
dialog.janela-bebida .tam-qtd { padding: .5rem 0; }
dialog.janela-bebida .tam-qtd__nome { font-weight: 800; }
dialog.janela-bebida .tam-qtd__preco { font-size: 1.15rem; font-weight: 900; color: #3a2719; }
dialog.janela-bebida .tam-qtd__botao { width: 2.8rem; height: 2.8rem; font-size: 1.5rem; }
dialog.janela-bebida .tam-qtd__qtd b { min-width: 2.2rem; font-size: 1.4rem; text-align: center; }
.bebida__rotulo { margin: .7rem 0 .4rem; font-size: .85rem; font-weight: 900; color: #6b6255; letter-spacing: .5px; }
.bebida__atalhos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; margin-bottom: .6rem; }
.bebida__atalho {
  border: 2px solid #3a2719; border-radius: 999px; background: #fff; color: #3a2719; padding: .55rem .3rem;
  font: inherit; font-size: .82rem; font-weight: 900; cursor: pointer;
}
.bebida__atalho--sim { background: #3a2719; color: #fff; }
dialog.janela-bebida textarea.tam-qtd__obs { width: 100%; box-sizing: border-box; min-height: 3.4rem; }
@media (max-width: 600px) {
  dialog.janela-bebida { width: 100vw; max-width: 100vw; margin: auto 0 0; border-radius: 18px 18px 0 0; max-height: 92vh; }
  dialog.janela-bebida .fotos-cardapio img { height: 140px; }
  dialog.janela-bebida .janela__pe { display: grid; grid-template-columns: 1fr 2fr; gap: .5rem; }
  dialog.janela-bebida .janela__pe .botao { width: 100%; padding: .9rem .4rem; }
}

/* Rodapé do pedido: TOTAL | CONTINUAR | FINALIZAR, sempre à vista. */
.pe-pedido { display: grid; grid-template-columns: auto 1fr 1.3fr; align-items: center; gap: .5rem; }
.pe-pedido__total { display: flex; flex-direction: column; line-height: 1.1; padding-right: .3rem; }
.pe-pedido__total small { font-size: .72rem; font-weight: 900; color: #6b6255; letter-spacing: 1px; }
.pe-pedido__total b { font-size: 1.3rem; font-weight: 900; color: #3a2719; white-space: nowrap; }
.pe-pedido .botao { width: 100%; padding: .85rem .4rem; }

/* Barra da montagem ENXUTA: texto curto | VER | carrinho | CONFIRMAR (direita). */
.barra-montagem { flex-direction: column; align-items: stretch; gap: .45rem; padding-top: .6rem; }
.barra-montagem__linha { display: flex; align-items: center; gap: .45rem; }
.barra-montagem__txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; font-size: .88rem; }
.barra-montagem__txt b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-montagem__txt small { font-size: .75rem; opacity: .85; font-weight: 700; }
.barra-montagem__ver {
  flex: 0 0 auto; border: 2px solid #be9b81; border-radius: 999px; background: transparent; color: #be9b81;
  font: inherit; font-size: .75rem; font-weight: 900; padding: .35rem .7rem; cursor: pointer;
}
.barra-montagem__carrinho span { display: none; }
.barra-montagem__botao {
  flex: 0 0 auto; margin-left: auto; display: flex; flex-direction: column; align-items: center; line-height: 1.1;
  padding: .45rem .8rem; font-size: .82rem; border-radius: 12px;
}
.barra-montagem__botao small { font-size: .78rem; font-weight: 900; }
.barra-montagem__detalhe { font-size: .8rem; font-weight: 700; line-height: 1.35; border-top: 1px solid rgba(255,255,255,.2); padding-top: .4rem; }
.barra-montagem__detalhe[hidden] { display: none; }
.barra-montagem__total { color: #be9b81; font-weight: 900; margin-top: .15rem; }
/* APP DA CLIENTE: só a LOGO da Mateus, pequena, no canto direito -- sem
   "Desenvolvimento" e sem o site; tocar nela abre o site (pedido do Mateus). */
.cabecalho .assinatura { margin-left: auto; align-self: center; }
.cabecalho .assinatura__texto, .cabecalho .assinatura__site { display: none; }
.cabecalho .assinatura__logo { width: 64px; height: auto; }
@media (max-width: 600px) { .cabecalho .assinatura__logo { width: 52px; } }

.cabecalho .assinatura__logo { width: 84px; }
@media (max-width: 600px) { .cabecalho .assinatura__logo { width: 72px; } }

/* Período dos pedidos: data inicial, data final e HOJE. */
.periodo { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; margin: .6rem 0; }
.periodo__campo { display: flex; flex-direction: column; gap: .2rem; font-size: .72rem; font-weight: 900; color: #6b6255; letter-spacing: .5px; }
.periodo__campo input { font: inherit; font-size: .95rem; font-weight: 700; padding: .45rem .6rem; border: 1px solid #d6cac2; border-radius: 10px; background: #fff; }
/* Logo da Mateus TIRADA do topo do cardápio (pedido do Mateus). */
.cabecalho .assinatura { display: none !important; }
/* Logo da Mateus DE VOLTA no topo do cardápio, do MESMO TAMANHO da logo da
   casa (pedido do Mateus): mesma altura; no celular, o que couber ao lado. */
.cabecalho .assinatura { display: flex !important; margin-left: auto; align-self: center; }
.cabecalho .assinatura__texto, .cabecalho .assinatura__site { display: none; }
.cabecalho .assinatura__logo { height: 108px; width: auto; max-width: calc(100vw - 108px - 4rem); object-fit: contain; }
@media (max-width: 420px) { .cabecalho .assinatura__logo { height: 92px; max-width: calc(100vw - 92px - 3rem); } }
/* SEM as logos da Mateus Informática: só o crédito, bem pequeno, no rodapé. */
.assinatura, .assinatura--porta, .cabecalho .assinatura { display: none !important; }
.credito { margin: 1.2rem 0 .8rem; text-align: center; font-size: .68rem; opacity: .6; }
.credito a { color: inherit; text-decoration: none; }
.credito--app { margin-bottom: 6rem; }
/* CONCLUÍDO: encerra o pedido de uma vez (vai para Entregues). */
.botao--concluir { background: #775033; color: #fff; }
.botao--concluir:hover { background: #5c3e28; }
/* Botões do pedido TODOS DO MESMO TAMANHO (pedido do Mateus). */
.pedido__acoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: .5rem; }
.pedido__acoes .botao {
  width: 100%; min-height: 2.8rem; padding: .55rem .6rem; margin: 0;
  font-size: .9rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; gap: .3rem;
  text-transform: uppercase; letter-spacing: .3px;
}
/* Campo obrigatório que ficou vazio: borda vermelha até preencher. */
.campo--falta { border-color: #c62828 !important; box-shadow: 0 0 0 2px rgba(198,40,40,.25); }
/* Bebida: SEM os botões de atalho da observação (pedido do Mateus); fica só o campo. */
.bebida__atalhos { display: none !important; }

/* VOLTAR e ALTERAR no pedido. */
.botao--voltar { background: #6b3e22; color: #fff; }
.botao--voltar:hover { background: #573118; }
.botao--alterar { background: #be9b81; color: #2b2418; }
.botao--alterar:hover { background: #cfa33c; }
dialog.janela-alterar { width: min(760px, 96vw); }
.alterar__cliente { margin: 0 0 .6rem; }
.alterar__item { display: grid; grid-template-columns: 1fr auto 6.5rem; gap: .4rem .7rem; align-items: center; padding: .55rem 0; border-bottom: 1px dashed #e2d9c8; }
.alterar__item small { display: block; color: #6b6255; font-size: .78rem; }
.alterar__qtd { display: flex; align-items: center; gap: .4rem; }
.alterar__qtd b { min-width: 1.6rem; text-align: center; font-size: 1.1rem; }
.alterar__valor { text-align: right; font-weight: 800; }
.alterar__obs { grid-column: 1 / -1; font: inherit; padding: .4rem .6rem; border: 1px solid #d6cac2; border-radius: 8px; text-transform: uppercase; }
.alterar__item--sai { opacity: .5; }
.alterar__item--sai .alterar__valor { color: #c62828; }
.alterar__total { text-align: right; font-size: 1.05rem; margin: .6rem 0 0; }
dialog.janela-alterar input, dialog.janela-alterar select { text-transform: uppercase; }

/* FECHAMENTO DE PEDIDOS */
.botao--fechamento { background: #3a2719; color: #fff; }
dialog.janela-fechamento { width: min(560px, 96vw); }
.fech__linha { display: flex; justify-content: space-between; align-items: baseline; padding: .55rem 0; border-bottom: 1px solid #eee4d3; font-weight: 800; }
.fech__linha small { color: #6b6255; font-weight: 700; }
.fech__linha--sub { padding: .3rem 0 .3rem 1rem; font-weight: 600; font-size: .9rem; color: #4a4338; }
.fech__linha--ok b { color: #3a2719; }
.fech__linha--cancel b { color: #8c1b1b; }
.fech__linha--aberto b { color: #6b3e22; }
.fech__total { display: flex; justify-content: space-between; margin-top: .8rem; padding: .8rem 1rem; background: #3a2719; color: #fff; border-radius: 12px; font-size: 1.25rem; font-weight: 900; }
.fech__total b { color: #be9b81; }
.fech__nota { text-align: center; color: #6b6255; font-weight: 700; font-size: .8rem; margin: .6rem 0 0; }
.fech__tabela { width: 100%; border-collapse: collapse; font-size: .82rem; margin-bottom: .8rem; }
.fech__tabela th { text-align: left; font-size: .7rem; color: #6b6255; border-bottom: 2px solid #3a2719; padding: .3rem .3rem; }
.fech__tabela td { padding: .35rem .3rem; border-bottom: 1px solid #eee4d3; }
.fech__tabela td:last-child, .fech__tabela th:last-child { text-align: right; white-space: nowrap; }
.fech__cancelado td { color: #8c1b1b; text-decoration: line-through; }
.fech__cancelado td:nth-child(5) { text-decoration: none; font-weight: 800; }
dialog.janela-fechamento { width: min(820px, 96vw); }

/* AGUARDANDO MOTOBOY: do tamanho dos outros botões, na mesma linha, texto centralizado (24/09/2026). */
.pedido__acoes .botao--aguardando { text-align: center; justify-content: center; line-height: 1.2; white-space: normal; }

/* TROCO no app (24/09/2026): total à vista, 'troco para' com R$ e o troco calculado (só leitura). */
.troco { margin-top: .6rem; }
.troco__total { font-size: 1rem; margin-bottom: .4rem; }
.troco__total b { font-size: 1.15rem; }
.troco__linha { display: flex; gap: .6rem; }
.troco__campo { flex: 1 1 0; margin: 0; }
#p-troco-volta { background: #eef7ef; color: #1f5a2a; font-weight: 900; pointer-events: none; }
.troco__aviso { color: #8c1b1b; font-weight: 800; margin: .4rem 0 0; font-size: .9rem; }

/* ENTREGA x RETIRADA no topo de cada pedido, com cores diferentes (Mateus, 24/09/2026). */
.pedido__tipo { display: inline-block; padding: .15rem .6rem; border-radius: 999px; font-weight: 800; font-size: .85rem; letter-spacing: .03em; color: #fff; }
.pedido__tipo--entrega { background: #7a5334; }
.pedido__tipo--retirada { background: #7b1fa2; }

/* Nome do sistema no rodape, em negrito (Mateus, 24/09/2026). */
.rodape__sistema { font-weight: 900; letter-spacing: .02em; }

/* iFOOD (Mateus, 24/09/2026): botao vermelho do iFood nos filtros, etiqueta
   "VEIO DO iFood" no pedido e o pedido NOVO do iFood piscando em vermelho. */
.ifood-marca { font-family: Arial, Helvetica, sans-serif; font-weight: 900; font-style: italic; letter-spacing: -.02em; }
.filtro--ifood { background: #ea1d2c; color: #fff; position: relative; }
.filtro--ifood .ifood-marca { font-size: 1.05em; }
.filtro--ifood.filtro--ativo { background: #b3121f; color: #fff; box-shadow: inset 0 0 0 2px #fff; }
.filtro--ifood .contador { position: absolute; top: -.45rem; right: -.45rem; background: #fff; color: #ea1d2c; border: 2px solid #ea1d2c; }
.pedido__tipo--ifood { background: #ea1d2c; }
.pedido--ifood { box-shadow: inset 6px 0 0 #ea1d2c; }
.pedido--ifood.pedido--novo { animation: ifood-pisca 1s steps(1, end) infinite; }
@keyframes ifood-pisca { 50% { background: #fde0e2; box-shadow: inset 8px 0 0 #ea1d2c; } }

/* CONFIGURACOES -> iFood (Mateus, 24/09/2026). */
.botao--ifood { background: #ea1d2c; color: #fff; }
.botao--ifood .ifood-marca { font-size: 1.1em; }
.ifood-selo { background: #ea1d2c; color: #fff; border-radius: 8px; padding: .05rem .5rem; margin-right: .35rem; }
.ifood-links { display: flex; flex-wrap: wrap; gap: .5rem; margin: .6rem 0 .9rem; }
.ifood-links a { background: #fde0e2; color: #b3121f; border-radius: 999px; padding: .3rem .8rem; font-weight: 800; font-size: .82rem; text-decoration: none; }
.ifood-links a:hover { background: #ea1d2c; color: #fff; }
.ifood-liga { margin: .2rem 0 .7rem; }

/* LUCRATIVIDADE (Mateus, 24/09/2026). */
.lucro-filtros { display: flex; flex-wrap: wrap; gap: .6rem; }
.lucro-filtros .campo { flex: 1 1 11rem; }
.lucro-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .6rem; margin: .8rem 0; }
.lucro-card { background: #f2ebe5; border-radius: 12px; padding: .6rem .8rem; display: flex; flex-direction: column; }
.lucro-card span { font-size: .72rem; font-weight: 800; letter-spacing: .04em; color: #5b5b4f; }
.lucro-card b { font-size: 1.25rem; color: #3a2719; }
.lucro-card small { font-size: .75rem; color: #5b5b4f; }
.lucro-card--ifood { background: #fde0e2; }
.lucro-card--ifood b { color: #b3121f; }
.lucro-tabela { width: 100%; border-collapse: collapse; font-size: .88rem; }
.lucro-tabela th { text-align: right; font-size: .72rem; letter-spacing: .04em; color: #fff; background: #3a2719; padding: .45rem .5rem; }
.lucro-tabela td { text-align: right; padding: .4rem .5rem; border-bottom: 1px solid #e6dfcd; white-space: nowrap; }
.lucro-tabela th:first-child, .lucro-tabela td:first-child { text-align: left; white-space: normal; }
.lucro-tabela td small { display: block; font-size: .7rem; color: #7a7a6a; }
.lucro-tabela tfoot td { font-weight: 900; background: #f2ebe5; border-bottom: 0; }
@media (max-width: 700px) { .lucro-tabela { font-size: .78rem; } .lucro-tabela th:nth-child(5), .lucro-tabela td:nth-child(5) { display: none; } }

/* Lucratividade: o periodo na propria janela. */
.lucro-filtros .lucro-data { flex: 0 1 12rem; }
.lucro-filtros .lucro-hoje { align-self: flex-end; margin-bottom: .15rem; }
.mb-extra { color: #b3121f; font-weight: 800; }

/* Atalhos de periodo (HOJE / ULTIMA SEMANA / 15 DIAS / 30 DIAS) alinhados
   na base dos campos de data (Mateus, 24/09/2026). */
.lucro-filtros { align-items: flex-end; }
.lucro-filtros .campo { margin-bottom: 0; }
.atalhos-periodo { display: flex; flex-wrap: wrap; gap: .4rem; align-items: stretch; }
.atalhos-periodo .botao { height: 3.1rem; padding: 0 1rem; display: inline-flex; align-items: center; white-space: nowrap; border-radius: 12px; }

/* Verificar precos: codigo e produto a esquerda. */
.lucro-tabela--precos th:nth-child(2), .lucro-tabela--precos td:nth-child(2) { text-align: left; white-space: normal; }
.lucro-tabela--precos td small { display: inline; margin-left: .25rem; }
.lucro-tabela--precos td:nth-child(2) small { display: block; margin-left: 0; }

/* VERIFICAR PREÇOS (Mateus, 24/09/2026): na linha dos filtros da
   Lucratividade, da altura dos campos, cantos iguais aos atalhos de período,
   sem o contorno preto de foco ao abrir a janela. */
.lucro-filtros .lucro-precos {
  flex: 0 0 auto; align-self: flex-end; height: 2.7rem; padding: 0 1.2rem;
  display: inline-flex; align-items: center; gap: .4rem; white-space: nowrap;
  border-radius: 12px; font-size: .95rem; letter-spacing: .02em;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .12);
}
.lucro-filtros:has(.lucro-precos) .campo { flex-basis: 9.5rem; }   /* cabe o botão na mesma linha */
.lucro-filtros .lucro-precos:hover { background: #2f5234; }
.lucro-filtros .lucro-precos:focus:not(:focus-visible) { outline: none; }
.lucro-filtros .lucro-precos:focus-visible { outline: 3px solid var(--creme); outline-offset: 2px; }

/* LOGIN (Mateus, 24/09/2026): os links (Esqueci minha senha, Voltar,
   Cancelar) em verdinho, da casa; a lista de usuários do Master. */
.login-caixa__links a { color: var(--verde); font-weight: 700; text-decoration: none; }
.login-caixa__links a:hover { color: var(--faixa); text-decoration: underline; }
.login-caixa__dica { color: var(--apagado); }
.login-caixa select { width: 100%; }

/* TRIBUTAÇÃO do produto (Mateus, 24/09/2026): 🔄 Atualizar ao lado do regime;
   produto JÁ CADASTRADO = campos travados em verdinho claro. */
.fiscal__topo { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; margin-bottom: .4rem; }
.fiscal__topo .fiscal__regime { margin: 0; }
.fiscal__aviso { margin: 0 0 .5rem; }
.fiscal--travado input:disabled, .fiscal--travado select:disabled,
.fiscal input[readonly] { background: #e6f2e7; color: #3a2719; border-color: #c9dfcb; opacity: 1; cursor: default; -webkit-text-fill-color: #3a2719; }

/* iFOOD -- homologação (Mateus, 24/09/2026): avisos no card do pedido
   (agendado, coleta, CPF, cancelamento, disputa) e a situação da loja. */
.ifood-aviso { margin: .35rem 0; padding: .4rem .6rem; border-radius: 10px; background: #fdf1f1; color: #5a1a1a; font-size: .9rem; }
.ifood-aviso--agendado { background: #fff4d6; color: #5c4400; }
.ifood-aviso--disputa { background: #ea1d2c; color: #fff; }
.ifood-aviso--disputa b { color: #fff; }
.ifood-aviso__botoes { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .4rem; }
.ifood-aviso--disputa .botao--vermelho { background: #fff; color: #ea1d2c; }
.ifood-alerta { margin: .6rem 0; padding: .6rem .8rem; border-radius: 10px; background: #fff4d6; color: #5c4400; }
.ifood-situacao { margin: .4rem 0 .6rem; }
.ifood-situacao__linha { display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; padding: .2rem 0; }
.ifood-situacao__linha small { color: var(--apagado); }
.ifood-ok { color: #0f8a4d; }   /* verde de "ok" (o --verde virou o laranja da Pampa) */
.ifood-atencao { color: #a36b00; }
.ifood-fechada { color: #b3121f; }

/* APP NO CELULAR (Mateus, 24/09/2026): trava de segurança -- nada de
   rolagem para o lado nas telas do app da cliente (o sistema não é afetado). */
html:has(#produtos-area), html:has(#produtos-area) body { overflow-x: clip; }

/* CADASTRO DA EMPRESA (24/09/2026): a validade do certificado digital. */
.empresa-cert { padding: .5rem .7rem; border-radius: 10px; background: #e6f2e7; color: #3a2719; }
.empresa-cert--vencendo { background: #fff4d6; color: #5c4400; }
.empresa-cert--vencido { background: #fdecec; color: #8c1b1b; }
dialog.janela-empresa { width: min(760px, 96vw); }

/* EMPRESA: o campo que a consulta do CNPJ preencheu/atualizou fica em destaque. */
.campo--novo { background: #fff4d6 !important; border-color: #be9b81 !important; }

/* CERTIFICADO: cartões no jeito da janela do Windows que o Master abre (24/09/2026). */
.cert-lista { display: flex; flex-direction: column; gap: .5rem; margin: .6rem 0; }
.cert-cartao { display: flex; gap: .8rem; align-items: center; padding: .7rem .9rem; border: 2px solid #e6ded0; border-radius: 12px; background: #fff; cursor: pointer; }
.cert-cartao input { flex: 0 0 auto; }
.cert-cartao__icone { font-size: 2rem; line-height: 1; }
.cert-cartao__txt { display: flex; flex-direction: column; gap: .15rem; font-size: .9rem; color: #3d3a33; }
.cert-cartao__txt b { color: #3a2719; }
.cert-cartao--escolhido { border-color: #3a2719; background: #eef6ef; }
.cert-cartao--vencido { opacity: .6; }

/* EMPRESA: NF-e / NFC-e / NFS-e na linha do DF-e. */
.em-docs__marcas { display: flex; gap: .8rem; align-items: center; min-height: 2.7rem; }
.em-docs__marcas .marcavel { margin: 0; }

/* EMPRESA NUMA TELA SÓ (Mateus, 24/09/2026): janela larga e a linha do DF-e
   compacta -- NF-e, NFC-e e NFS-e lado a lado. */
dialog.janela-empresa { width: min(1180px, 97vw); }
dialog.janela-empresa .janela__corpo { max-height: 80vh; }
.em-docs__marcas { flex-direction: row; flex-wrap: nowrap; gap: 1rem; }
.em-docs__marcas .marcavel { display: inline-flex; width: auto; align-items: center; gap: .3rem; white-space: nowrap; }
dialog.janela-empresa .grupo { margin-bottom: .6rem; }
dialog.janela-empresa .campo { margin-bottom: .45rem; }

/* BARRA DE CIMA: TODOS OS BOTÕES DO MESMO TAMANHO (Mateus, 24/09/2026) --
   Pedidos, Sincronizar, WhatsApp e os cadastros; fora o CAIXA1 e a engrenagem. */
.cabecalho .botao--icone:not(.botao--engrenagem) { flex: 0 0 4.6rem; width: 4.6rem; min-width: 0; padding-left: .25rem; padding-right: .25rem; }
.cabecalho .coluna-pedidos { flex: 0 0 auto; align-items: flex-start; }
.cabecalho .coluna-pedidos > .botao--pedidos { width: 4.6rem; align-self: flex-start; }
@media (max-width: 1100px) {
  .cabecalho .botao--icone:not(.botao--engrenagem) { flex-basis: 4.2rem; width: 4.2rem; }
  .cabecalho .coluna-pedidos > .botao--pedidos { width: 4.2rem; }
}

/* SENHA DO DIA: o campo no aviso do MatIA (24/09/2026). */
.senha-dia__campo { display: block; width: 100%; max-width: 16rem; margin: .7rem auto .2rem; font: inherit; font-size: 1.2rem; text-align: center; padding: .5rem .8rem; border: 2px solid #3a2719; border-radius: 10px; }

/* GERENCIADOR DE PEDIDOS (Mateus, 24/09/2026): em cor diferente (dourado da
   casa) e do MESMO TAMANHO dos outros -- todos com a mesma altura. */
.cabecalho .botao--icone:not(.botao--engrenagem) { height: 3.3rem; }
.cabecalho .coluna-pedidos > .botao--pedidos { align-self: flex-start; height: 3.3rem; }
.cabecalho .botao--pedidos { background: #be9b81; color: #1f3a24; }
.cabecalho .botao--pedidos:hover { background: #ecc660; }
.cabecalho .botao--pedidos svg { width: 20px; height: 20px; }
.cabecalho .botao--pedidos span { font-size: .6rem; line-height: 1.05; white-space: normal; text-align: center; }
/* ...mais LARGO, a mesma altura (nome numa linha só). */
.cabecalho > .botao--pedidos.botao--icone { width: 8.4rem; flex: 0 0 8.4rem; }
/* Na coluna do CAIXA1 (coluna = flex vertical): a largura é width, a altura fica fixa. */
.cabecalho .coluna-pedidos > .botao--pedidos.botao--icone { width: 8.4rem; flex: none; height: 3.3rem; }
.cabecalho .botao--pedidos svg { width: 26px; height: 26px; }
.cabecalho .botao--pedidos span { font-size: .72rem; white-space: nowrap; }
@media (max-width: 1100px) { .cabecalho > .botao--pedidos.botao--icone { width: 7.6rem; flex-basis: 7.6rem; } .cabecalho .coluna-pedidos > .botao--pedidos.botao--icone { width: 7.6rem; } .cabecalho .botao--pedidos span { font-size: .66rem; } }

/* GERENCIADOR DE PEDIDOS CABENDO NO BOTÃO (Mateus, 24/09/2026): ícone à
   esquerda e o nome em duas linhas à direita, na mesma altura dos outros;
   o CAIXA1 centralizado em cima dele. */
.cabecalho .botao--pedidos.botao--icone { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: .45rem; padding: .3rem .55rem; overflow: hidden; }
.cabecalho .botao--pedidos.botao--icone span { font-size: .78rem; line-height: 1.1; white-space: normal; text-align: left; }
.cabecalho .botao--pedidos.botao--icone svg { flex: 0 0 auto; width: 24px; height: 24px; }
.cabecalho .coluna-pedidos { align-items: center; }
.cabecalho .coluna-pedidos > .botao--pedidos.botao--icone { align-self: center; }
.cabecalho .coluna-pedidos .usuario-sistema { align-self: center; }

/* AGUARDANDO PEDIDOS: letras grandes e verde (Mateus, 24/09/2026). */
.nada--aguardando { font-size: 2rem; font-weight: 900; color: var(--verde, #956c4d); letter-spacing: 2px; padding: 2.2rem 1rem; text-align: center; }
@media (max-width: 700px) { .nada--aguardando { font-size: 1.4rem; } }

/* PRECISA DE TROCO? SIM / NÃO (24/09/2026) */
.troco__pergunta { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; margin: .3rem 0 .6rem; font-weight: 800; }
.troco__pergunta > span { flex: 1 1 100%; }
.troco__opcao { flex: 1 1 0; display: flex; align-items: center; justify-content: center; gap: .4rem; padding: .7rem;
  border: 2px solid #d6cac0; border-radius: 12px; background: #fff; cursor: pointer; }
.troco__opcao input { width: 18px; height: 18px; margin: 0; }
.troco__opcao:has(input:checked) { border-color: #3a2719; background: #e4efe5; }
/* MAPA DO MOTOBOY (mapa.js, 24/09/2026): app da cliente e painel da loja. */
.janela-mapa { width: min(720px, 96vw); padding: 0; border: 0; border-radius: 16px; overflow: hidden; }
.janela-mapa .mapa__info { padding: .7rem 1rem; font-size: .95rem; background: #f2ebe5; color: #222; }
.janela-mapa .mapa__mapa { height: min(62vh, 520px); width: 100%; }
.mapa__moto { font-size: 30px; line-height: 40px; text-align: center; filter: drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.botao-mapa { display: block; width: 100%; margin-top: .6rem; padding: .7rem; border: 0; border-radius: 12px; font: inherit; font-weight: 900;
  background: #3a2719; color: #fff; cursor: pointer; }
.pedido__mapa { margin-left: .35rem; }
/* BOTÕES DO PEDIDO TODOS NA MESMA LINHA, SEMPRE (Mateus, 24/09/2026): dividem a
   largura por igual; o texto quebra dentro do botão, nunca vai para outra linha. */
.pedido__acoes { display: flex; flex-wrap: nowrap; gap: .4rem; }
.pedido__acoes > .botao { flex: 1 1 0; min-width: 0; width: auto; padding: .45rem .35rem; font-size: .78rem;
  letter-spacing: 0; white-space: normal; line-height: 1.15; text-align: center; }
/* 💬 CHAT COM O CLIENTE (chat-painel.js, 24/09/2026): no espaço da direita do
   Gerenciador de Pedidos. Conversas alternando BRANCO e AMARELINHO (#f6f1ed). */
main:has(#aba-pedidos:not([hidden])) { max-width: 1640px; }
#aba-pedidos:not([hidden]) { display: grid; grid-template-columns: minmax(0, 1fr) 380px; column-gap: 1rem; align-items: start; }
#aba-pedidos > * { grid-column: 1; }
#aba-pedidos > .chat { grid-column: 2; grid-row: 1 / span 20; position: sticky; top: .6rem; }
.chat { display: flex; flex-direction: column; height: calc(100vh - 8.5rem); min-height: 420px; border: 1px solid var(--linha);
  border-radius: 12px; background: #fff; overflow: hidden; }
.chat__topo { background: var(--faixa); color: var(--creme); font-weight: 900; padding: .65rem .9rem; letter-spacing: .4px;
  display: flex; align-items: center; gap: .5rem; }
.chat__topo .contador { position: static; }
.chat__lista { flex: 1; overflow-y: auto; }
.chat__item { display: block; width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--linha); padding: .65rem .9rem;
  background: #fff; font: inherit; color: inherit; cursor: pointer; }
.chat__item:nth-child(even) { background: #f6f1ed; }
.chat__item:hover { filter: brightness(.97); }
.chat__item--ok { opacity: .7; }
.chat__linha1 { display: flex; justify-content: space-between; align-items: center; gap: .4rem; }
.chat__linha1 .contador { position: static; }
.chat__linha2 { display: block; font-size: .9rem; color: #444; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: .15rem 0; }
.chat__linha3 { display: block; font-size: .78rem; color: var(--apagado); }
.chat__pend { color: #b8860b; } .chat__ok { color: #2c7a3b; }
.chat__vazio { padding: 1rem; color: var(--apagado); text-align: center; }
.chat__conversa { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.chat__cab { display: flex; align-items: center; gap: .5rem; padding: .5rem .6rem; border-bottom: 1px solid var(--linha); background: #f6f1ed; }
.chat__cab b { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat__situacao { background: #b8860b; color: #fff; white-space: nowrap; }
.chat__situacao--ok { background: #2c7a3b; }
.chat__msgs { flex: 1; overflow-y: auto; padding: .7rem; display: flex; flex-direction: column; gap: .45rem; background: #fff; }
.chat__msg { max-width: 82%; padding: .5rem .7rem; border-radius: 12px; line-height: 1.35; white-space: pre-wrap; word-break: break-word; }
.chat__msg small { display: block; font-size: .7rem; opacity: .65; margin-top: .2rem; }
.chat__msg--cliente { align-self: flex-start; background: #f6f1ed; border: 1px solid #e7dad0; }
.chat__msg--loja { align-self: flex-end; background: var(--faixa); color: #fff; }
.chat__escrever { display: flex; gap: .4rem; padding: .5rem; border-top: 1px solid var(--linha); }
.chat__escrever textarea { flex: 1; resize: none; font: inherit; padding: .45rem .6rem; border: 1px solid var(--linha); border-radius: 10px; }
@media (max-width: 1100px) {
  #aba-pedidos:not([hidden]) { display: block; }
  #aba-pedidos > .chat { position: static; height: 480px; margin-top: 1rem; }
}

/* CHAT NO APP (Meus pedidos). */
.chat-app__msgs { height: min(52vh, 420px); overflow-y: auto; display: flex; flex-direction: column; gap: .45rem; padding: .3rem; }
.chat-app__msg { max-width: 82%; padding: .5rem .7rem; border-radius: 12px; line-height: 1.35; white-space: pre-wrap; word-break: break-word; }
.chat-app__msg small { display: block; font-size: .7rem; opacity: .65; margin-top: .2rem; }
.chat-app__msg--cliente { align-self: flex-end; background: #3a2719; color: #fff; }
.chat-app__msg--loja { align-self: flex-start; background: #f6f1ed; border: 1px solid #e7dad0; }
.chat-app__escrever { display: flex; gap: .4rem; margin-top: .5rem; }
.chat-app__escrever textarea { flex: 1; resize: none; font: inherit; padding: .5rem .6rem; border: 2px solid #d6cac0; border-radius: 10px; }
.botao-chat { display: block; width: 100%; margin-top: .5rem; padding: .7rem; border: 2px solid #3a2719; border-radius: 12px; font: inherit;
  font-weight: 900; background: #fff; color: #3a2719; cursor: pointer; }
.botao-chat b { display: inline-block; min-width: 1.4rem; margin-left: .35rem; padding: 0 .35rem; border-radius: 99px; background: #8c1b1b; color: #fff; }
.chat__atraso { color: #fff; background: #8c1b1b; padding: 0 .35rem; border-radius: 6px; }

/* CHAT COM O ESPAÇO TODO DA DIREITA (Mateus, 24/09/2026): a tela inteira na aba
   Pedidos; a lista fica com a largura de sempre (até 1200px) e o chat com o resto. */
main:has(#aba-pedidos:not([hidden])) { max-width: none; }
#aba-pedidos:not([hidden]) { grid-template-columns: minmax(0, 1200px) minmax(380px, 1fr); }
/* CHAT ALINHADO AOS CABEÇALHOS E MAIS ESTREITO (Mateus, 24/09/2026): começa na
   faixa "Pedidos" (mesma altura) e tem 340px; os pedidos ficam com o resto. */
#aba-pedidos:not([hidden]) { grid-template-columns: minmax(0, 1fr) 340px; }
#aba-pedidos > .chat { grid-row: 3 / span 20; height: calc(100vh - 12rem); }
#aba-pedidos > .chat .chat__topo { min-height: 2.3rem; padding: .45rem .9rem; border-radius: 10px 10px 0 0; }
/* DATAS E RELATÓRIOS NUMA LINHA SÓ (Mateus, 24/09/2026): os botões dividem o
   espaço ao lado das datas; o texto quebra dentro do botão, nunca a linha. */
#ped-periodo { flex-wrap: nowrap; align-items: stretch; }
#ped-periodo .periodo__campo { flex: 0 0 auto; justify-content: flex-end; }
#ped-periodo .periodo__campo input { width: 9.6rem; }
#ped-periodo > .botao { flex: 1 1 0; min-width: 0; align-self: flex-end; min-height: 2.45rem; padding: .35rem .5rem;
  font-size: .78rem; line-height: 1.1; white-space: normal; text-align: center; display: inline-flex; align-items: center; justify-content: center; }
#ped-periodo > #ped-hoje { flex: 0 0 auto; }
/* OBS COLOCADA DEPOIS pela loja (24/09/2026): destacada no cartão. */
.pedido__obs-loja { margin: .5rem 0 .2rem; padding: .45rem .7rem; border-radius: 8px; background: #fff4d6; border: 1px solid #e6c46a; color: #5a3d00; }

/* CHAT: título CENTRALIZADO e o quadro começando ACIMA da faixa "Pedidos", na linha
   das datas e relatórios (Mateus, 24/09/2026). */
#aba-pedidos > .chat { grid-row: 2 / span 20; height: calc(100vh - 9.5rem); margin-top: .6rem; }
#aba-pedidos > .chat .chat__topo { justify-content: center; text-align: center; }
/* CHAT ALINHADO AO TOPO DOS BOTÕES (HOJE, RELATÓRIOS...) -- Mateus, 24/09/2026. */
#aba-pedidos > .chat { margin-top: 1.9rem; height: calc(100vh - 10.8rem); }

/* SÓ VER O CARDÁPIO (24/09/2026): o iconezinho no alto e a barra de baixo. */
.ver-cardapio { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); display: inline-flex; flex-direction: column; align-items: center;
  gap: 0; padding: .35rem .55rem; border: 2px solid var(--creme); border-radius: 12px; background: transparent; color: var(--creme);
  font: inherit; font-size: 1.35rem; line-height: 1; cursor: pointer; z-index: 5; }
.ver-cardapio span { font-size: .6rem; font-weight: 900; letter-spacing: .5px; margin-top: .15rem; }
.so-ver-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; display: flex; gap: .6rem; padding: .7rem .9rem calc(.7rem + env(safe-area-inset-bottom));
  background: var(--faixa); box-shadow: 0 -4px 16px rgba(0,0,0,.25); }
.so-ver-barra button { flex: 1; border: 0; border-radius: 14px; padding: .9rem; font: inherit; font-weight: 900; font-size: 1.05rem; cursor: pointer; }
.so-ver-barra__pedir { background: var(--creme); color: var(--faixa); flex: 2 !important; }
.so-ver-barra__sair { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.5) !important; }
body.so-ver main { padding-bottom: 6rem; }
body.so-ver .barra-pedido { display: none !important; }body.so-ver .escolha-tamanho { display: none !important; }

/* NENHUM BOTÃO POR CIMA DE OUTRO, EM TELA NENHUMA (Mateus, 24/09/2026): os
   botões do alto encolhem juntos até um mínimo; se ainda não couber, descem
   para a linha de baixo -- nunca se sobrepõem. */
body:has(.cabecalho__acoes) .cabecalho { flex-wrap: wrap; row-gap: .4rem; }
.cabecalho__acoes { flex: 1 1 0; min-width: 0; flex-wrap: wrap; justify-content: flex-end; row-gap: .4rem; }
.cabecalho .botao--icone:not(.botao--engrenagem):not(.botao--pedidos) { flex: 0 1 4.6rem; width: auto; min-width: 3.1rem; padding-left: .15rem; padding-right: .15rem; }
.cabecalho__acoes { gap: .3rem; }
@media (max-width: 1400px) { .cabecalho .botao--icone:not(.botao--pedidos) span { font-size: .62rem; } .cabecalho .botao--icone svg { width: 22px; height: 22px; } }
.cabecalho .botao--icone:not(.botao--pedidos) span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cabecalho .botao--sinc { margin-left: .3rem; }
.cabecalho .selo--mateus { margin-left: 0 !important; flex-shrink: 0; }@media (max-width: 1400px) { .cabecalho .selo--mateus { max-width: 105px !important; height: auto; } .cabecalho__acoes { gap: .25rem; } .cabecalho .botao--icone:not(.botao--engrenagem):not(.botao--pedidos) { min-width: 2.95rem; } }
.cabecalho__acoes { min-width: min(100%, 24rem); }

/* SUPORTE FIXO EMBAIXO DO CHAT (24/09/2026): a lista/conversa rola; o suporte fica. */
.chat__suporte { flex: 0 0 auto; border-top: 2px solid var(--linha); background: #f6f1ed; padding: .5rem .6rem .55rem; text-align: center; }
.chat__suporte-titulo { display: block; font-weight: 900; color: var(--faixa); letter-spacing: 1px; font-size: .9rem; }
.chat__suporte-fones { display: flex; align-items: center; justify-content: center; gap: .45rem; flex-wrap: wrap; margin: .2rem 0; }
.chat__suporte-fones a { font-weight: 900; color: var(--faixa); text-decoration: none; font-size: .95rem; white-space: nowrap; }
.chat__suporte-fones a:hover, .chat__suporte-site:hover { text-decoration: underline; }
.chat__suporte-fones svg { flex: 0 0 auto; }
.chat__suporte-site { font-size: .8rem; color: var(--apagado); text-decoration: none; }
/* BOTÕES DO ALTO SEMPRE NUMA LINHA SÓ (Mateus, 24/09/2026): encolhem juntos; em
   tela apertada ficam só com o ícone (o nome aparece ao passar o mouse). Nunca
   quebram linha e nunca um fica por cima do outro. */
body:has(.cabecalho__acoes) .cabecalho { flex-wrap: nowrap; }
.cabecalho__acoes { flex: 1 1 0; min-width: 0; flex-wrap: nowrap; }
.cabecalho .botao--icone:not(.botao--engrenagem):not(.botao--pedidos) { flex: 0 1 4.6rem; min-width: 2.2rem; overflow: hidden; }
.cabecalho .botao--engrenagem { flex: 0 0 2.6rem; }
body:has(.cabecalho__acoes) .cabecalho > *, .cabecalho .coluna-pedidos { flex-shrink: 1; min-width: 0; }
.cabecalho > .selo-link:first-child, .cabecalho .selo-link:not(.selo-link--mateus) { flex-shrink: 0; }
@media (max-width: 1250px) {
  .cabecalho .botao--icone:not(.botao--pedidos) span { font-size: .58rem; }
  .cabecalho .selo--mateus { max-width: 90px !important; }
}
@media (max-width: 1120px) {
  .cabecalho .botao--icone:not(.botao--pedidos):not(.botao--engrenagem) span { display: none; }
  .cabecalho .botao--icone:not(.botao--engrenagem):not(.botao--pedidos) { flex-basis: 3rem; }
}
@media (max-width: 820px) {
  .cabecalho .selo-link--mateus { display: none; }
  .cabecalho .coluna-pedidos > .botao--pedidos.botao--icone, .cabecalho > .botao--pedidos.botao--icone { width: 6.2rem; flex-basis: 6.2rem; }
  .cabecalho .botao--pedidos.botao--icone span { font-size: .66rem; }
}
@media (max-width: 600px) {
  body:has(.cabecalho__acoes) .cabecalho .logo-cabecalho, body:has(.cabecalho__acoes) .cabecalho .selo { max-width: 52px; max-height: 52px; }
  .cabecalho .botao--pedidos.botao--icone span { display: none; }
  .cabecalho .coluna-pedidos > .botao--pedidos.botao--icone, .cabecalho > .botao--pedidos.botao--icone { width: 3rem; flex-basis: 3rem; }
  body:has(.cabecalho__acoes) .cabecalho { gap: .3rem; padding-left: .4rem; padding-right: .4rem; }
}/* Trava: se ainda sobrar, o grupo da direita nunca invade o da esquerda. */
.cabecalho__acoes { justify-content: safe flex-end; }
@media (max-width: 820px) {
  body:has(.cabecalho__acoes) .cabecalho { gap: .3rem; }
  .cabecalho__acoes { gap: .2rem; }
  .cabecalho .botao--icone:not(.botao--engrenagem):not(.botao--pedidos) { min-width: 1.85rem; flex-basis: 2.4rem; margin-left: 0; padding-left: .1rem; padding-right: .1rem; }
  .cabecalho .botao--icone svg { width: 20px; height: 20px; }
  body:has(.cabecalho__acoes) .cabecalho .logo-cabecalho, body:has(.cabecalho__acoes) .cabecalho .selo:not(.selo--mateus) { max-width: 62px; max-height: 62px; }
  .cabecalho .botao--engrenagem { flex: 0 0 2.2rem; width: 2.2rem; height: 2.2rem; }
}
/* SÓ VER O CARDÁPIO: topo e grupos parados, só os produtos rolam (24/09/2026). */
body.so-ver--preso { overflow: hidden; }
body.so-ver--preso main { padding-bottom: 0; }
body.so-ver--preso #lista { overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
body.so-ver--preso .credito--app, body.so-ver--preso .rodape { display: none !important; }

/* FAZER PEDIDO e SAIR do mesmo tamanho (Mateus, 24/09/2026). */
.so-ver-barra button, .so-ver-barra__pedir { flex: 1 1 0 !important; }

/* A frase da casa no topo verde do CARDÁPIO (só ver) -- 24/09/2026. */
.cabecalho .frase-topo { flex: 1; margin: 0 .4rem 0 .8rem; text-align: center; font-size: clamp(.95rem, 3.6vw, 1.35rem); line-height: 1.25; }

/* CHAT: escrita livre e o ENVIAR embaixo do campo, na largura toda (24/09/2026). */
.chat__escrever { flex-direction: column; gap: .35rem; }
.chat__escrever textarea { width: 100%; text-transform: none; }
.chat__escrever .botao { width: 100%; }

/* CHAT POR DIA: o calendário embaixo do título (24/09/2026). */
.chat__dia { display: flex; gap: .4rem; align-items: center; justify-content: center; padding: .4rem .6rem; background: #f6f1ed; border-bottom: 1px solid var(--linha); }
.chat__dia input { font: inherit; font-weight: 700; padding: .3rem .5rem; border: 1px solid #d6cac2; border-radius: 8px; background: #fff; }

/* A MatIA também nas janelas de ENTREGA e de CANCELAR NO iFOOD (24/09/2026). */
.janela-entrega .janela__pe { position: relative; padding-right: 6rem; }

/* TEMPO ATÉ O DESTINO: o contador no canto do mapa (24/09/2026). */
.janela-mapa { position: relative; }
.mapa__eta { position: absolute; left: 50%; bottom: 1.1rem; transform: translateX(-50%); z-index: 1000; background: var(--faixa); color: #fff; padding: .45rem 1rem; border-radius: 99px; font-size: 1.15rem; box-shadow: 0 4px 14px rgba(0,0,0,.35); white-space: nowrap; }
.mapa__eta b { font-size: 1.35rem; color: #d2baa8; }

/* LOGO DA MATEUS À DIREITA (Mateus, 24/09/2026): menor, CENTRALIZADA na altura dos
   botões e no espaço que sobrar -- diminui com a tela, sem sumir e sem cortar. */
.cabecalho .selo-link--mateus { display: flex !important; align-items: center; justify-content: center; align-self: center;
  flex: 0 1 150px; min-width: 44px; margin: 0 0 0 .5rem; }
.cabecalho .selo-link--mateus .selo--mateus { height: auto !important; width: 100%; max-width: 150px !important; max-height: 4.4rem;
  margin: 0 !important; align-self: center; object-fit: contain; }
@media (max-width: 1400px) { .cabecalho .selo-link--mateus { flex-basis: 110px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 110px !important; max-height: 3.6rem; } }
@media (max-width: 1120px) { .cabecalho .selo-link--mateus { flex-basis: 84px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 84px !important; max-height: 3rem; } }
@media (max-width: 820px) { .cabecalho .selo-link--mateus { flex-basis: 56px; margin-left: .25rem; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 56px !important; max-height: 2.4rem; } }.cabecalho .selo-link--mateus { align-self: flex-end; height: 3.3rem; min-width: 0; }
@media (max-width: 820px) { .cabecalho .selo-link--mateus { height: 2.8rem; } }
.cabecalho .selo-link--mateus { overflow: hidden; }
.cabecalho .selo-link--mateus .selo--mateus { min-width: 0; max-width: 100% !important; }
@media (min-width: 1401px) { .cabecalho .selo-link--mateus .selo--mateus { max-width: 150px !important; } }
@media (max-width: 700px) { .cabecalho .selo-link--mateus { flex: 0 1 40px; margin-left: .15rem; } }
@media (max-width: 720px) { .cabecalho .selo-link--mateus { display: none !important; } }

/* LOGO DA MATEUS MAIOR E NO MEIO DO ESPAÇO (Mateus, 25/09/2026): ocupa a altura
   toda do cabeçalho e fica centralizada (não mais presa embaixo). */
.cabecalho .selo-link--mateus { align-self: stretch; height: auto; flex: 0 1 190px; padding: .3rem 0;
  display: flex !important; align-items: center; justify-content: center; }
.cabecalho .selo-link--mateus .selo--mateus { width: 100%; height: auto !important; max-width: 190px !important;
  max-height: 100%; object-fit: contain; }
@media (max-width: 1400px) { .cabecalho .selo-link--mateus { flex-basis: 150px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 150px !important; } }
@media (max-width: 1120px) { .cabecalho .selo-link--mateus { flex-basis: 110px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 110px !important; } }
@media (max-width: 820px) { .cabecalho .selo-link--mateus { flex-basis: 70px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 70px !important; } }

/* CRÉDITO NO RODAPÉ DO APP (Mateus, 25/09/2026): sem logo, centralizado.
   1ª linha "Desenvolvimento: Mateus Informática"; 2ª o site em verde mais fraco. */
.credito { opacity: 1; color: #5b6656; font-size: .72rem; line-height: 1.5; }
.credito a { display: block; width: fit-content; margin: 0 auto; }
.credito .credito__site { color: #7a9c7e; font-size: .68rem; }
.credito--escuro { color: #c9d6c9; }
.credito--escuro .credito__site { color: #8fb894; }

/* LOJA NO iFOOD (módulo Merchant, 01/10/2026): Client ID e relógio no topo
   (o vídeo da homologação precisa mostrar os dois), abas e tabelas. */
.janela-ifood-loja { width: min(980px, 96vw); }
.ifl-topo { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem;
  padding: .45rem 1rem; background: var(--tinta); color: #fff; font-size: .92rem; }
.ifl-topo b { color: var(--creme); }
.ifl-abas { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .6rem 1rem 0; }
.ifl-aba--ativa { background: var(--verde); color: #fff; }
.ifl-escolha { margin-left: auto; font-size: .9rem; display: flex; align-items: center; gap: .35rem; }
.ifl-escolha select { max-width: 18rem; }
.ifl-sub { margin: .9rem 0 .4rem; font-size: 1rem; display: flex; align-items: center; gap: .5rem; }
.ifl-tabela { width: 100%; border-collapse: collapse; font-size: .9rem; }
.ifl-tabela th, .ifl-tabela td { text-align: left; padding: .35rem .45rem; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.ifl-tabela--ficha th { width: 9rem; color: var(--apagado); font-weight: 600; }
.ifl-id { font-family: ui-monospace, Consolas, monospace; font-size: .8rem; word-break: break-all; }
.ifl-linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .6rem; margin-top: .6rem; }
.ifl-linha .campo { margin: 0; }
.ifl-turno { display: inline-flex; align-items: center; gap: .25rem; margin: .15rem .6rem .15rem 0; }
.ifl-horarios th { width: 6rem; }

/* LOGO DA MATEUS UM POUCO MAIOR (Pampa, 01/10/2026): ~25% a mais em cada largura
   e sem a folga de cima e de baixo. */
.cabecalho .selo-link--mateus { flex-basis: 240px; padding: .1rem 0; }
.cabecalho .selo-link--mateus .selo--mateus { max-width: 240px !important; }
@media (max-width: 1400px) { .cabecalho .selo-link--mateus { flex-basis: 190px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 190px !important; } }
@media (max-width: 1120px) { .cabecalho .selo-link--mateus { flex-basis: 140px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 140px !important; } }
@media (max-width: 820px) { .cabecalho .selo-link--mateus { flex-basis: 88px; } .cabecalho .selo-link--mateus .selo--mateus { max-width: 88px !important; } }

/* ＋ NOVO DELIVERY (Pampa, 01/10/2026): pedido lançado no painel. */
.botao--novo-delivery { background: var(--faixa); color: #fff; font-weight: 800; }
.botao--novo-delivery:hover { background: var(--tinta); }
.janela-novo-delivery { width: min(1180px, 97vw); }
.nd { display: grid; grid-template-columns: minmax(300px, 5fr) minmax(320px, 6fr); gap: 1.2rem; }
@media (max-width: 860px) { .nd { grid-template-columns: 1fr; } }
.nd__titulo { margin: .4rem 0 .5rem; font-size: .95rem; letter-spacing: .5px; color: var(--faixa); border-bottom: 2px solid var(--verde); padding-bottom: .2rem; }
.nd__linha { display: flex; gap: .6rem; } .nd__linha > .campo { flex: 1; min-width: 0; }
.nd__linha > .nd__largo { flex: 3; } .nd__linha > .nd__curto { flex: 1.2; }
.nd__tipo { display: flex; gap: 1.2rem; margin: .3rem 0 .6rem; font-weight: 700; }
.nd__achados { display: grid; gap: .25rem; margin: -.3rem 0 .5rem; }
.nd__achado { text-align: left; padding: .4rem .6rem; border: 1px solid var(--linha); border-radius: 8px; background: #fff; cursor: pointer; }
.nd__achado:hover { background: var(--papel); }
.nd__busca { width: 100%; padding: .55rem .7rem; font-size: 1rem; border: 1px solid var(--linha); border-radius: 10px; }
.nd__grupos { display: flex; flex-wrap: wrap; gap: .3rem; margin: .5rem 0; }
.nd__grupo--ativo { background: var(--verde); color: #fff; }
.nd__lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .35rem; max-height: 220px; overflow: auto; }
.nd__produto { display: flex; justify-content: space-between; gap: .4rem; text-align: left; padding: .45rem .6rem;
  border: 1px solid var(--linha); border-radius: 8px; background: #fff; cursor: pointer; font-size: .88rem; }
.nd__produto:hover { border-color: var(--verde); }
.nd__itens { display: grid; gap: .4rem; max-height: 260px; overflow: auto; }
.nd__item { border: 1px solid var(--linha); border-radius: 10px; padding: .4rem .6rem; background: #fff; }
.nd__item-topo { display: flex; justify-content: space-between; gap: .5rem; }
.nd__item-acoes { display: flex; align-items: center; gap: .35rem; margin-top: .3rem; }
.nd__item-acoes input { flex: 1; min-width: 0; padding: .3rem .45rem; border: 1px solid var(--linha); border-radius: 6px; }
.nd__qtd { min-width: 1.6rem; text-align: center; }
.nd__totais { margin-top: .6rem; display: grid; gap: .15rem; }
.nd__totais > div { display: flex; justify-content: space-between; }
.nd__total { font-size: 1.25rem; color: var(--faixa); border-top: 2px solid var(--linha); padding-top: .3rem; }

/* NOME DO APP NA BASE DA PIRÂMIDE (Mateus, 01/10/2026): "GestorFoodMI" em
   branco negrito, na LARGURA DA BASE DO TRIÂNGULO da logo da Mateus (x 97–288
   de 378 px = 50,5% da largura, a partir de 25,7%), como na logo do iFood. */
.cabecalho .selo-link--mateus { flex-direction: column; }
.selo-mateus-bloco { display: flex; flex-direction: column; width: 100%; max-width: 240px; min-height: 0; }
.selo-mateus-bloco .selo--mateus { display: block; min-height: 0; }
.selo-app { display: block; width: 50.5%; margin: -1px 0 0 25.7%; height: auto; overflow: visible;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,.6)); }
.selo-app text { fill: #fff; font: 800 20px "Berlin Sans FB Demi", "Segoe UI", system-ui, sans-serif; }
@media (max-width: 1400px) { .selo-mateus-bloco { max-width: 190px; } }
@media (max-width: 1120px) { .selo-mateus-bloco { max-width: 140px; } }
@media (max-width: 820px) { .selo-mateus-bloco { max-width: 88px; } }
.nd__linha > .nd__fone { flex: 0 0 11.5rem; }
.nd__cf { display: flex; align-items: center; gap: .4rem; margin: -.2rem 0 .5rem; }
.nd__cf small { color: var(--apagado); }
/* NOVO DELIVERY: GRUPOS / PRODUTOS e listas iguais às do Gestor de Comandas. */
.nd__modos { display: flex; gap: .8rem; margin: .2rem 0 .7rem; }
.nd__modo { flex: 1; min-height: 58px; font-size: 1.35rem; font-weight: 900; letter-spacing: .5px; cursor: pointer;
  border: 2px solid var(--linha); border-radius: 14px; background: #fff; color: var(--texto); }
.nd__modo--sel { border-color: var(--verde); background: #f6f1ed; color: #835838; }
.nd__pesq { display: block; border: 2px solid var(--linha); border-radius: 12px; padding: .3rem .7rem .4rem; margin-bottom: .6rem; background: #fff; }
.nd__pesq:focus-within { border-color: var(--verde); }
.nd__pesq[hidden] { display: none; }
.nd__pesq-rot { display: block; font-size: .68rem; font-weight: 700; color: var(--apagado); letter-spacing: .3px; }
.nd__pesq .nd__busca { border: 0; padding: .15rem 0; font-size: 1.15rem; outline: none; }
.nd__lista { display: flex; flex-direction: column; gap: .4rem; max-height: 300px; overflow-y: auto; grid-template-columns: none; }
.nd__linha-lista { display: flex; justify-content: space-between; align-items: center; gap: .6rem; min-height: 48px; padding: .5rem .9rem;
  border: 1px solid var(--linha); border-radius: 12px; background: #fff; font-size: 1rem; font-weight: 600; text-align: left; cursor: pointer; }
.nd__linha-lista:hover { border-color: var(--verde); background: #f6f1ed; }
.nd__linha-lista b { white-space: nowrap; }
.nd__linha-lista--voltar { background: var(--papel); color: var(--faixa); }
/* NOVO DELIVERY — totais: rótulos em negrito; taxa num campo que se troca e,
   ao lado, ISENTAR com uma marcação em volta (01/10/2026). */
.nd__tot-linha { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .25rem 0; }
.nd__taxa[hidden] { display: none; }
.nd__taxa-dir { display: flex; align-items: center; gap: .6rem; }
.nd__taxa-campo { font-weight: 800; display: inline-flex; align-items: center; gap: .3rem; }
.nd__taxa-campo input { width: 6.5rem; text-align: right; font-weight: 800; font-size: 1rem;
  padding: .3rem .45rem; border: 2px solid var(--verde); border-radius: 8px; }
.nd__taxa-campo input:disabled { background: var(--papel); color: var(--apagado); text-decoration: line-through; border-color: var(--linha); }
.nd__isentar { display: inline-flex; align-items: center; gap: .35rem; padding: .25rem .6rem; font-weight: 800;
  border: 2px solid var(--faixa); border-radius: 8px; color: var(--faixa); cursor: pointer; user-select: none; }
.nd__taxa--isenta .nd__isentar { background: var(--faixa); color: #fff; }
/* NOVO DELIVERY — cartão do produto (quantidade, adicionais/observações com − e +). */
.nd-cartao-fundo { position: absolute; inset: 0; z-index: 30; background: rgba(20,13,7,.45); display: flex; align-items: center; justify-content: center; padding: 1rem; }
.nd-cartao { width: min(460px, 100%); max-height: 92%; overflow: auto; background: #fff; border-radius: 16px; padding: 1rem 1.1rem;
  box-shadow: 0 12px 40px rgba(0,0,0,.35); display: flex; flex-direction: column; gap: .7rem; }
.nd-cartao__topo { display: flex; justify-content: space-between; gap: .6rem; font-size: 1.1rem; }
.nd-cartao__qtd { display: flex; align-items: center; justify-content: center; gap: 1.4rem; }
.nd-cartao__qtd #ndc-qtd { font-size: 2.6rem; min-width: 3rem; text-align: center; }
.nd-cartao__mm { width: 58px; height: 58px; border-radius: 50%; border: 2px solid var(--verde); background: #f6f1ed;
  color: #835838; font-size: 2rem; font-weight: 900; line-height: 1; cursor: pointer; }
.nd-cartao__mm--peq { width: 40px; height: 40px; font-size: 1.4rem; }
.nd-cartao__sub { margin: .2rem 0 0; font-size: .85rem; color: var(--faixa); }
.nd-cartao__adics { display: flex; flex-direction: column; gap: .35rem; }
.nd-cartao__adic { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .3rem .5rem; border: 1px solid var(--linha); border-radius: 10px; font-weight: 600; }
.nd-cartao__adic small { color: var(--apagado); font-weight: 700; }
.nd-cartao__adic-qtd { display: inline-flex; align-items: center; gap: .6rem; }
.nd-cartao__adic-qtd b { min-width: 1.4rem; text-align: center; font-size: 1.15rem; }
.nd-cartao__total { display: flex; justify-content: space-between; font-size: 1.2rem; font-weight: 800; color: var(--faixa); }
.nd-cartao__pe { display: flex; justify-content: flex-end; gap: .6rem; }
.nd__item-adic { font-size: .85rem; color: var(--apagado); font-weight: 600; }
.janela-novo-delivery { position: relative; }
/* FILTROS (Mateus, 01/10/2026): o NOVO DELIVERY à esquerda e os outros
   (Abertos ... Anota AI) alinhados à direita. */
#ped-filtros { flex-wrap: wrap; align-items: center; }
#ped-filtros #ped-novo-delivery { margin-right: auto; }
/* SUPORTE embaixo do chat: não vai na Pampa (Mateus, 01/10/2026). */
.chat__suporte { display: none !important; }
/* BARRAS DE BOTÕES FIXAS ao rolar (Mateus, 01/10/2026): os filtros dos pedidos
   e a barra de cima de cada cadastro ficam parados logo abaixo do cabeçalho.
   --cab-h é medido pelo barras-fixas.js. */
#ped-filtros, main > section > .barra-acoes:first-child, section[id^="aba-"] > .barra-acoes:first-child {
  position: sticky; top: var(--cab-h, 112px); z-index: 15;
  background: var(--papel); padding-top: .55rem; padding-bottom: .55rem; margin-top: -.55rem;
  box-shadow: 0 6px 8px -8px rgba(0,0,0,.25);
}
/* DATAS SEMPRE CENTRALIZADAS (Mateus, 01/10/2026), em todo o sistema: o título
   em cima do campo e a data dentro dele. */
label:has(> input[type="date"]) > span, .periodo__campo > span { display: block; text-align: center; }
input[type="date"], input[type="datetime-local"] { text-align: center; }
input[type="date"]::-webkit-datetime-edit, input[type="datetime-local"]::-webkit-datetime-edit { flex: 1; text-align: center; }
input[type="date"]::-webkit-datetime-edit-fields-wrapper, input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper { display: flex; justify-content: center; }
input[type="date"]::-webkit-date-and-time-value, input[type="datetime-local"]::-webkit-date-and-time-value { text-align: center; }
/* Observação do cartão do produto em DUAS LINHAS (Mateus, 01/10/2026). */
.nd-cartao__obs { width: 100%; min-height: 3.6rem; resize: none; font: inherit; font-size: 1rem; line-height: 1.4;
  padding: .45rem .6rem; border: 1px solid var(--linha); border-radius: 10px; text-transform: uppercase; }
.nd-cartao__obs:focus { outline: none; border-color: var(--verde); }

/* NOVO DELIVERY EM TRÊS COLUNAS (Mateus, 01/10/2026): CLIENTE compacto,
   PRODUTOS com uns 5 itens visíveis (rola) e o PEDIDO sendo montado ao lado. */
.janela-novo-delivery { width: min(1500px, 98vw); }
.janela-novo-delivery .janela__corpo.nd { grid-template-columns: minmax(260px, 0.95fr) minmax(300px, 1.15fr) minmax(280px, 1fr); gap: 1rem; align-items: start; }
.nd__cliente .campo { margin-bottom: .35rem; }
.nd__cliente .campo > span { font-size: .78rem; }
.nd__cliente .campo input, .nd__cliente .campo select { padding: .35rem .55rem; font-size: .92rem; min-height: 0; }
.nd__cliente .nd__titulo { margin-top: .2rem; }
.nd__tipo { margin: .1rem 0 .4rem; gap: .8rem; font-size: .9rem; }
.nd__cf { font-size: .88rem; }
.nd__modos { gap: .5rem; margin-bottom: .5rem; }
.nd__modo { min-height: 46px; font-size: 1.1rem; }
.nd__lista { max-height: calc(5 * 52px); }
.nd__linha-lista { min-height: 46px; padding: .4rem .8rem; font-size: .95rem; }
.nd__pedido { position: sticky; top: 0; display: flex; flex-direction: column; background: #fbf9f8;
  border: 1px solid var(--linha); border-radius: 14px; padding: .4rem .8rem .7rem; }
.nd__pedido .nd__itens { max-height: calc(5 * 62px); }
@media (max-width: 1150px) {
  .janela-novo-delivery .janela__corpo.nd { grid-template-columns: minmax(250px, 1fr) minmax(280px, 1.2fr); }
  .nd__pedido { grid-column: 2; position: static; }
}
@media (max-width: 860px) {
  .janela-novo-delivery .janela__corpo.nd { grid-template-columns: 1fr; }
  .nd__pedido { grid-column: auto; }
}
/* NOVO DELIVERY — cliente encontrado só para conferir (texto), com ALTERAR ENDEREÇO. */
.nd__resumo { border: 2px solid var(--verde); border-radius: 12px; background: #fbf9f8; padding: .55rem .75rem; margin: .1rem 0 .5rem;
  display: grid; gap: .2rem; font-size: .92rem; }
.nd__resumo[hidden] { display: none; }
.nd__resumo-nome { font-size: 1.12rem; font-weight: 900; color: var(--faixa); }
.nd__resumo-botoes { display: flex; gap: .4rem; margin-top: .3rem; flex-wrap: wrap; }
#nd-campos[hidden], #nd-endereco[hidden] { display: none; }
.nd__campos-titulo { font-weight: 900; color: var(--faixa); font-size: .9rem; margin: .1rem 0 .35rem; }
#nd-campos:not([hidden]) { border: 2px dashed var(--verde); border-radius: 12px; padding: .5rem .65rem .2rem; margin-bottom: .4rem; }
#nd-endereco:not([hidden]) { border: 2px dashed var(--verde); border-top: 0; border-radius: 0 0 12px 12px; padding: .2rem .65rem .4rem; margin-top: -.6rem; margin-bottom: .5rem; }
.nd__achado--novo { font-weight: 800; color: var(--faixa); border-style: dashed; }
/* 💬 BOTÃO DO CHAT flutuante (01/10/2026): pisca com mensagem não lida. */
.chat-flutuante { position: fixed; right: 18px; bottom: 54px; z-index: 40; width: 58px; height: 58px; border-radius: 50%;
  border: 0; background: var(--verde); color: #fff; font-size: 1.7rem; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.3); }
.chat-flutuante:hover { filter: brightness(1.08); }
.chat-flutuante__n { position: absolute; top: -4px; right: -4px; min-width: 1.4rem; height: 1.4rem; padding: 0 .3rem; border-radius: 99px;
  background: #c0392b; color: #fff; font-size: .8rem; line-height: 1.4rem; font-weight: 900; }
.chat-flutuante--pisca { animation: chat-pisca 1s ease-in-out infinite; }
@keyframes chat-pisca { 0%, 100% { background: var(--verde); transform: scale(1); } 50% { background: #c0392b; transform: scale(1.12); } }
.chat--destaque { box-shadow: 0 0 0 4px var(--verde); transition: box-shadow .3s; }
/* PEDIDO EM ESTILO CUPOM FISCAL (Mateus, 01/10/2026). */
.nd__pedido .nd__itens { font-family: "Courier New", Consolas, ui-monospace, monospace; font-size: .86rem; gap: 0; background: #fff;
  border: 1px dashed #b5a497; border-radius: 6px; padding: .35rem .55rem; }
.nd__cupom-cab { display: flex; justify-content: space-between; font-weight: 700; border-bottom: 1px dashed #b5a497; padding-bottom: .2rem; margin-bottom: .2rem; font-size: .75rem; }
.nd__cupom-item { padding: .25rem 0; border-bottom: 1px dotted #d5c9c0; }
.nd__cupom-item:last-child { border-bottom: 0; }
.nd__cupom-l1 { display: flex; align-items: center; gap: .4rem; }
.nd__cupom-num { color: #66738a; }
.nd__cupom-nome { flex: 1; font-weight: 700; }
.nd__cupom-l2 { display: flex; justify-content: space-between; padding-left: 2.6rem; }
.nd__cupom-extra { padding-left: 2.6rem; color: #4b576b; font-size: .8rem; }
.nd__cupom-lapis { border: 0; background: #f6f1ed; color: #835838; width: 30px; height: 30px; border-radius: 50%; font-size: 1rem; cursor: pointer; flex-shrink: 0; }
.nd__cupom-lapis:hover { background: var(--verde); color: #fff; }
/* NO MÁXIMO DUAS LINHAS (Mateus, 01/10/2026): item do cupom em 2 linhas (o que
   sobra vira "..." e aparece inteiro ao passar o mouse) e a Taxa de Entrega numa linha. */
.nd__cupom-nome, .nd__cupom-det { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.nd__cupom-l2 { gap: .5rem; }
.nd__cupom-l2 b { flex-shrink: 0; }
.nd__tot-linha { flex-wrap: nowrap; }
.nd__tot-linha > b:first-child { white-space: nowrap; font-size: .92rem; }
.nd__taxa-dir { gap: .35rem; flex-shrink: 1; min-width: 0; }
.nd__isentar { padding: .15rem .45rem; font-size: .8rem; gap: .25rem; }
.nd__taxa-campo { font-size: .9rem; }
.nd__taxa-campo input { width: 5.2rem; padding: .2rem .35rem; font-size: .92rem; }
.nd__pedido .nd__itens { overflow-x: hidden; }
.nd__cupom-item, .nd__cupom-l1, .nd__cupom-l2 { min-width: 0; max-width: 100%; }
.nd__cupom-det { flex: 1 1 auto; }
.nd__cupom-nome { flex: 1 1 auto; }
.nd__cupom-cab span:last-child { white-space: nowrap; }
/* GestorFoodMI na LARGURA EXATA DA BASE DO TRIÂNGULO (medida no PNG em
   01/10/2026: x 104–276 de 378 = 45,5% a partir de 27,5%) e um respiro
   entre a logo e o nome. */
.selo-app { width: 45.5%; margin: 4px 0 0 27.5%; }
/* Cupom: tudo na mesma linha (nº · nome · qtd x unit. · total · ✎). */
.nd__cupom-l1 { gap: .45rem; }
.nd__cupom-qtd { white-space: nowrap; color: #4b576b; flex-shrink: 0; }
.nd__cupom-tot { white-space: nowrap; min-width: 3.6rem; text-align: right; flex-shrink: 0; }
.nd__cupom-lapis { width: 26px; height: 26px; font-size: .9rem; }
.nd__cupom-l2 { padding-left: 2.4rem; }
/* As 3 colunas do NOVO DELIVERY um pouco menores, por igual (Mateus, 01/10/2026). */
.janela-novo-delivery .janela__corpo.nd { font-size: .92rem; }
.nd__modo { min-height: 42px; font-size: 1rem; }
.nd__linha-lista { min-height: 40px; font-size: .88rem; padding: .35rem .7rem; }
.nd__lista { max-height: calc(5 * 45px); }
.nd__total { font-size: 1.1rem; font-weight: 900; }
/* TÍTULOS E LINHAS ALINHADOS (Mateus, 01/10/2026): CLIENTE, PRODUTOS e PEDIDO
   centralizados, na mesma altura e com a linha de baixo no mesmo nível; o
   cabeçalho do cupom nas mesmas colunas dos itens. */
.janela-novo-delivery .nd > section > .nd__titulo:first-child { margin: 0 0 .6rem; text-align: center; padding-bottom: .3rem; line-height: 1.2; }
.nd__pedido { padding-top: 0; border-top: 0; border-radius: 0 0 14px 14px; }
.nd__cupom-cab { font-size: .72rem; padding-bottom: .25rem; margin-bottom: .2rem; border-bottom: 1px dashed #b5a497; }
.nd__cupom-cab .nd__cupom-num { color: inherit; }
.nd__cupom-cab .nd__cupom-qtd { color: inherit; }
.nd__cupom-num { width: 2.1rem; flex-shrink: 0; }
.nd__cupom-vazio { width: 26px; flex-shrink: 0; }
/* FILTROS NA LARGURA TODA (Mateus, 01/10/2026): a linha dos filtros ocupa as
   duas colunas (pedidos + chat): NOVO DELIVERY no começo da esquerda e os outros
   encostados bem na direita da tela. */
#aba-pedidos:not([hidden]) > #ped-filtros { grid-column: 1 / -1; grid-row: 1; }
#aba-pedidos:not([hidden]) > .chat { grid-row: 2 / span 20; }
/* DELIVERY / RETIRADA centralizados na coluna do cliente (Mateus, 01/10/2026). */
.nd__tipo { justify-content: center; }

/* NOVO DELIVERY NA ALTURA TODA DA TELA (Mateus, 01/10/2026): a janela ocupa o
   espaço disponível e a LISTA DE PRODUTOS e o CUPOM crescem junto (responsivo à
   altura; as colunas rolam por dentro). */
dialog.janela-novo-delivery[open] { height: calc(100vh - 1.5rem); max-height: calc(100vh - 1.5rem); display: flex; flex-direction: column; }
.janela-novo-delivery > .janela__corpo.nd { flex: 1 1 auto; min-height: 0; overflow: hidden; align-items: stretch; }
.janela-novo-delivery .nd > section { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; }
.janela-novo-delivery .nd__produtos .nd__lista { flex: 1 1 auto; max-height: none; min-height: 140px; }
.janela-novo-delivery .nd__pedido { position: static; }
.janela-novo-delivery .nd__pedido .nd__itens { flex: 1 1 auto; max-height: none; min-height: 120px; overflow-y: auto; }
@media (max-width: 1150px) {
  .janela-novo-delivery > .janela__corpo.nd { overflow-y: auto; }
  .janela-novo-delivery .nd > section { overflow: visible; }
  .janela-novo-delivery .nd__produtos .nd__lista { max-height: 50vh; }
}
/* Totais do pedido: letras menores e linhas mais juntas (Mateus, 01/10/2026). */
.nd__totais { gap: 0; margin-top: .4rem; }
.nd__tot-linha { padding: .1rem 0; font-size: .82rem; min-height: 0; }
.nd__tot-linha > b:first-child { font-size: .82rem; }
.nd__tot-linha > b:last-child { font-size: .85rem; }
.nd__isentar { padding: .05rem .35rem; font-size: .72rem; border-width: 1.5px; }
.nd__isentar input { width: 12px; height: 12px; margin: 0; }
.nd__taxa-campo { font-size: .8rem; }
.nd__taxa-campo input { width: 4.6rem; padding: .08rem .3rem; font-size: .82rem; border-width: 1.5px; border-radius: 6px; }
.nd__total { font-size: 1rem; padding-top: .2rem; margin-top: .15rem; }
/* Tela estreita (1 ou 2 colunas): as seções voltam ao tamanho do conteúdo e a
   janela rola inteira (a altura toda vale só com as 3 colunas lado a lado). */
@media (max-width: 1150px) {
  .janela-novo-delivery .nd > section { min-height: auto; overflow: visible; }
  .janela-novo-delivery > .janela__corpo.nd { overflow-y: auto; align-items: start; }
  .janela-novo-delivery .nd__pedido .nd__itens { max-height: 40vh; }
}
@media (max-width: 1150px) { .janela-novo-delivery .nd__produtos .nd__lista { flex: none; height: min(50vh, 320px); } }
/* SÓ A LISTA DE PRODUTOS ROLA (Mateus, 01/10/2026): com as 3 colunas, a janela e
   as colunas ficam paradas; rola só a lista de produtos (e o cupom, quando o
   pedido for maior que o espaço dele). */
@media (min-width: 1151px) {
  .janela-novo-delivery > .janela__corpo.nd { overflow: hidden; }
  .janela-novo-delivery .nd > section { overflow: hidden; }
  .janela-novo-delivery .nd__produtos .nd__lista { overflow-y: auto; }
}
/* SÓ A LISTA DE PEDIDOS ROLA (01/10/2026): --lista-h vem do barras-fixas.js. */
html.so-lista-rola, html.so-lista-rola body { overflow: hidden; }
html.so-lista-rola #ped-lista { height: var(--lista-h, 60vh); max-height: var(--lista-h, 60vh); overflow-y: auto; }
/* NOVO DELIVERY: IMPRIMIR, CANCELAR e GRAVAR PEDIDO centralizados (01/10/2026). */
.janela-novo-delivery .janela__pe { flex-direction: column; align-items: center; gap: .4rem; }
.nd__botoes { display: flex; justify-content: center; gap: .8rem; flex-wrap: wrap; }
/* Cupom: as linhas ficam juntas no topo (não se esticam para preencher a área). */
.janela-novo-delivery .nd__pedido .nd__itens { align-content: start; grid-auto-rows: max-content; }
.nd__cupom-cab { margin-bottom: .1rem; }
.nd__cupom-item { padding: .2rem 0; }
.nd__cupom-qtd { font-size: .8rem; }
/* Botões no pé da coluna do PEDIDO (Mateus, 01/10/2026). */
.nd__pe-pedido { margin-top: auto; padding-top: .7rem; display: flex; flex-direction: column; align-items: center; gap: .35rem; }
.nd__pe-pedido .erro { margin: 0; text-align: center; }
.nd__pe-pedido .nd__botoes { gap: .5rem; flex-wrap: nowrap; }
.nd__pe-pedido .botao { padding-left: .8rem; padding-right: .8rem; white-space: nowrap; }
.janela-novo-delivery .nd__pedido { border-radius: 0 0 14px 14px; padding-bottom: .6rem; }
@media (min-width: 1151px) { .janela-novo-delivery .nd > section { padding-bottom: .2rem; } }
/* As 3 colunas vão até o fim da janela (tirava o limite antigo de 72vh do .janela__corpo). */
.janela-novo-delivery > .janela__corpo.nd { max-height: none; }
/* TOPO PRESO, PÁGINA ROLANDO (Mateus, 01/10/2026): desfaz o "só a lista rola"
   (sem barra dentro da lista) e prende, em cima, filtros + datas + faixa Pedidos.
   O chat deixa de ficar preso e rola junto com a página. */
html.so-lista-rola, html.so-lista-rola body { overflow: visible; }
#ped-lista { height: auto !important; max-height: none !important; overflow: visible !important; }
#aba-pedidos:not([hidden]) > #ped-periodo { position: sticky; top: calc(var(--cab-h, 112px) + var(--fil-h, 50px)); z-index: 14; background: var(--papel); padding: .3rem 0 .45rem; }
#aba-pedidos:not([hidden]) > .faixa { position: sticky; top: calc(var(--cab-h, 112px) + var(--fil-h, 50px) + var(--per-h, 56px)); z-index: 13; }
#aba-pedidos:not([hidden]) > .chat { position: static; }
/* PAMPA: na capa, só o botão ENTRAR (vai ao Gestor de Pedidos). */
.instalar__botao--entrar { display: block; text-align: center; text-decoration: none; font-size: 1.25rem; letter-spacing: 1px; }
/* TOPO CRAVADO (Mateus, 01/10/2026): filtros, datas/relatórios e a faixa
   "Pedidos" presos EXATAMENTE onde nascem (o --*-top é a posição medida com a
   página no início), a linha das datas mais perto dos botões e a página rolando
   sem barra de rolagem aparecendo. */
#aba-pedidos:not([hidden]) > #ped-filtros { margin-bottom: 0; padding-bottom: .25rem; }
#aba-pedidos:not([hidden]) > #ped-periodo { margin-top: 0; padding-top: .1rem; padding-bottom: .35rem; }
#aba-pedidos:not([hidden]) > .chat { margin-top: 0; }
html.topo-cravado #aba-pedidos:not([hidden]) > #ped-filtros { top: var(--fil-top); }
html.topo-cravado #aba-pedidos:not([hidden]) > #ped-periodo { top: var(--per-top); }
html.topo-cravado #aba-pedidos:not([hidden]) > .faixa { top: var(--faixa-top); }
html.topo-cravado { scrollbar-width: none; }
html.topo-cravado::-webkit-scrollbar, html.topo-cravado body::-webkit-scrollbar { display: none; width: 0; }
html.topo-medindo #aba-pedidos > #ped-filtros, html.topo-medindo #aba-pedidos > #ped-periodo, html.topo-medindo #aba-pedidos > .faixa { position: static !important; }
/* NOVO DELIVERY gravado: número e onde imprimiu; IMPRIMIR apagado antes de gravar. */
.nd__situacao { margin: 0; text-align: center; color: #0f8a4d; font-size: .9rem; line-height: 1.3; }
.nd__situacao small { color: var(--texto); font-weight: 600; }
.nd__pe-pedido .botao:disabled { opacity: .45; cursor: not-allowed; }
.nd--gravado .nd__cliente, .nd--gravado .nd__produtos { opacity: .55; pointer-events: none; }
.nd--gravado .nd__cupom-lapis { display: none; }
/* CHAT PRESO AO LADO (Mateus, 01/10/2026): o cabeçalho "CHAT COM O CLIENTE"
   alinhado com a linha das DATAS/RELATÓRIOS, a data logo abaixo, e o chat
   inteiro parado (vai até o rodapé); rola só a área das conversas, por dentro. */
#aba-pedidos:not([hidden]) > .chat { grid-row: 2 / span 20; margin-top: 0; }
html.topo-cravado #aba-pedidos:not([hidden]) > .chat {
  position: sticky; top: var(--per-top);
  height: calc(100vh - var(--per-top) - var(--rodape-h, 32px) - 10px);
}
html.topo-medindo #aba-pedidos > .chat { position: static !important; }
#aba-pedidos > .chat .chat__topo, #aba-pedidos > .chat .chat__dia { flex-shrink: 0; }
#aba-pedidos > .chat .chat__lista, #aba-pedidos > .chat .chat__conversa { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
/* O chat termina antes do fim da página (o espaço do rodapé fixo, 3,4rem), para
   o "preso" nunca esbarrar no fim e subir ao rolar até embaixo. */
html.topo-cravado #aba-pedidos:not([hidden]) > .chat { height: calc(100vh - var(--per-top) - 3.4rem); }
/* CHAT FIXO (01/10/2026): no lugar onde nasce (left/width medidos), com o topo
   alinhado à linha das datas; rola só a área das conversas. */
html.topo-cravado #aba-pedidos:not([hidden]) > .chat {
  position: fixed; top: var(--per-top); left: var(--chat-left); width: var(--chat-w);
  height: calc(100vh - var(--per-top) - var(--rodape-h, 32px) - 10px); z-index: 12;
}
/* Cabeçalho do chat alinhado ao botão LUCRATIVIDADE (mesmo topo e mesma altura). */
html.topo-cravado #aba-pedidos:not([hidden]) > .chat {
  top: var(--chat-top, var(--per-top));
  height: calc(100vh - var(--chat-top, var(--per-top)) - var(--rodape-h, 32px) - 10px);
}
#aba-pedidos > .chat .chat__topo { min-height: var(--lucro-h, 2.3rem); box-sizing: border-box; display: flex; align-items: center; justify-content: center; padding-top: 0; padding-bottom: 0; }
html.topo-cravado #aba-pedidos:not([hidden]) > .chat { top: calc(var(--chat-top, var(--per-top)) - 1px); }
.cert-cartao__icone { display: inline-flex; align-items: center; color: var(--faixa); }
/* UMA BARRA SÓ NAS JANELAS (Mateus, 01/10/2026): a janela não rola por fora;
   rola só o conteúdo (.janela__corpo). Antes apareciam duas barras juntas. */
dialog[open]:not(.janela-novo-delivery) { overflow: hidden; display: flex; flex-direction: column; max-height: 94vh; }
dialog[open]:not(.janela-novo-delivery) > form { display: flex; flex-direction: column; min-height: 0; max-height: calc(94vh - 2px); }
dialog[open]:not(.janela-novo-delivery) .janela__barra, dialog[open]:not(.janela-novo-delivery) .janela__pe { flex-shrink: 0; }
dialog[open]:not(.janela-novo-delivery) .janela__corpo { flex: 1 1 auto; min-height: 0; max-height: none; overflow-y: auto; }
/* NOVO DELIVERY na linha das datas (01/10/2026): alinhado embaixo, com os campos;
   a linha dos filtros fica só com Abertos ... Anota AI, à direita. */
#ped-periodo { align-items: flex-end; }
#ped-periodo #ped-novo-delivery { margin-right: .4rem; align-self: flex-end; }
#ped-filtros { justify-content: flex-end; }
/* NOVO DELIVERY de volta na linha de cima, centralizado sobre os campos de data. */
#ped-filtros #ped-novo-delivery { margin-left: var(--nd-esq, 0); margin-right: auto; }
/* Campo "Loja" da tela Loja no iFood no padrão dos outros campos (01/10/2026). */
.ifl-escolha.campo { margin: 0 0 0 auto; display: flex; flex-direction: column; align-items: stretch; gap: .15rem; min-width: 16rem; font-size: inherit; }
.ifl-escolha.campo > span { font-size: .78rem; font-weight: 700; color: var(--apagado); }
.ifl-escolha select { max-width: none; width: 100%; padding: .45rem .6rem; border: 1px solid var(--linha); border-radius: 10px; background: #fff; font: inherit; font-size: .95rem; color: var(--texto); }
.ifl-escolha select:focus { outline: none; border-color: var(--verde); }
.ifl-abas { align-items: flex-end; padding-bottom: .2rem; }
/* Configurações do delivery dentro da Empresa. */
.em-config { margin-top: 1rem; }
/* SEM BARRA DE ROLAGEM (Mateus, 01/10/2026): janelas, listas, cupom e chat rolam
   com a roda do mouse (ou o dedo), sem a barra aparecendo. */
dialog, dialog *, .chat, .chat *, .lista { scrollbar-width: none; }
dialog::-webkit-scrollbar, dialog *::-webkit-scrollbar, .chat::-webkit-scrollbar, .chat *::-webkit-scrollbar, .lista::-webkit-scrollbar { display: none; width: 0; height: 0; }
/* Botões da aba HORÁRIOS (Loja no iFood) centralizados. */
.janela-ifood-loja .ifl-linha { justify-content: center; }
/* VALOR e PERCENTUAL (regra do Mateus, 01/10/2026): número à direita; "R$" na
   frente do valor e "%" à direita do percentual (campos-numero.js). */
input.campo-numero, .com-simbolo input, .com-pct input, .nd__taxa-campo input { text-align: right; }
.com-pct { display: flex; align-items: center; gap: .3rem; border: 1px solid var(--linha); border-radius: 10px; background: #fff; padding: 0 .6rem 0 0; }
.com-pct input { flex: 1; min-width: 0; border: 0 !important; background: transparent; outline: none; }
.com-pct i { font-style: normal; font-weight: 700; color: var(--apagado); }
.com-pct:focus-within { border-color: var(--verde); }
/* Sem barra também no corpo das janelas (vencia o .janela__corpo antigo). */
dialog .janela__corpo, dialog .janela__corpo * { scrollbar-width: none !important; }
/* BOTÕES DE CONFIGURAÇÕES (Mateus, 01/10/2026): todos do MESMO TAMANHO, 8 por
   linha, centralizados; o que não cabe desce e a linha de baixo também fica
   centralizada (com 2, 3... botões). */
#aba-config .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
#aba-config .barra-acoes > .botao:not([hidden]) {
  flex: 0 0 calc((100% - 7 * .6rem) / 8); min-width: 0; height: 2.9rem;
  display: inline-flex; align-items: center; justify-content: center; gap: .35rem;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 .5rem;
}
@media (max-width: 1100px) { #aba-config .barra-acoes > .botao:not([hidden]) { flex-basis: calc((100% - 3 * .6rem) / 4); } }
@media (max-width: 600px) { #aba-config .barra-acoes > .botao:not([hidden]) { flex-basis: calc((100% - .6rem) / 2); } }
#aba-config .barra-acoes > .botao:not([hidden]) { font-size: .8rem; padding: 0 .35rem; letter-spacing: 0; }
/* Texto comprido quebra em 2 linhas dentro do mesmo tamanho de botão (ex.: Zerar movimentações). */
#aba-config .barra-acoes > .botao:not([hidden]) { white-space: normal; line-height: 1.1; text-align: center; text-overflow: clip; }
/* 9 botões por linha (o Anota AI fica em cima; Mateus, 01/10/2026). */
#aba-config .barra-acoes > .botao:not([hidden]) { flex-basis: calc((100% - 8 * .6rem) / 9); }
@media (max-width: 1100px) { #aba-config .barra-acoes > .botao:not([hidden]) { flex-basis: calc((100% - 3 * .6rem) / 4); } }
@media (max-width: 600px) { #aba-config .barra-acoes > .botao:not([hidden]) { flex-basis: calc((100% - .6rem) / 2); } }
.senha-dia__periodo { display: flex; gap: .8rem; justify-content: center; margin: .6rem 0 .2rem; }
.senha-dia__periodo .campo { flex: 0 0 11rem; margin: 0; }
#em-cert-lista[hidden] { display: none !important; }
/* RODAPÉ (01/10/2026): EMPRESA à esquerda, USUÁRIO no centro, crédito à direita. */
.rodape { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; }
.rodape__usuario { text-align: center; }
.rodape__usuario[hidden] { display: block !important; visibility: hidden; }
.rodape .rodape__dev { justify-self: end; }

/* 📚 TRIBUTAÇÕES (01/10/2026): tabelas oficiais e consulta por NCM. */
dialog.janela-tributacoes[open] { width: min(1400px, 97vw); height: calc(100vh - 1.5rem); max-height: calc(100vh - 1.5rem); }
.trb-abas { display: flex; gap: .6rem; padding: .6rem 1rem 0; }
.trb-abas .nd__modo { min-height: 42px; font-size: 1rem; }
.janela-tributacoes > .janela__corpo.trb { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: 1rem; overflow: hidden; }
.trb-lista { overflow-y: auto; min-height: 0; padding-right: .3rem; }
.trb-filtro { margin-bottom: .5rem; }
.trb-grupo { margin-bottom: .4rem; }
.trb-grupo > summary { cursor: pointer; font-weight: 900; color: var(--faixa); padding: .3rem 0; border-bottom: 2px solid var(--linha); }
.trb-item { display: flex; width: 100%; justify-content: space-between; gap: .5rem; text-align: left; border: 0; background: none; padding: .35rem .4rem; border-radius: 8px; cursor: pointer; font-size: .85rem; }
.trb-item:hover { background: #f6f1ed; }
.trb-item--sel { background: var(--verde); color: #fff; }
.trb-item small { color: inherit; opacity: .7; white-space: nowrap; }
.trb-item[hidden] { display: none; }
.trb-ver, .trb-ncm { overflow-y: auto; min-height: 0; display: flex; flex-direction: column; gap: .5rem; }
.trb-ncm { grid-column: 1 / -1; }
.trb-cab h3 { margin: 0 0 .2rem; color: var(--faixa); }
.trb-fonte { font-size: .82rem; color: var(--apagado); }
.trb-pesq { display: flex; gap: .6rem; align-items: flex-end; flex-wrap: wrap; }
.trb-pesq .nd__busca { flex: 1 1 18rem; }
.trb-pesq select { padding: .5rem; border: 1px solid var(--linha); border-radius: 10px; }
.trb-total { font-size: .85rem; color: var(--apagado); }
.trb-tabela { border: 1px solid var(--linha); border-radius: 10px; background: #fff; }
.trb-linha { display: grid; grid-template-columns: minmax(6rem, auto) 1fr auto; gap: .8rem; padding: .35rem .7rem; border-bottom: 1px solid #eee5df; cursor: pointer; font-size: .88rem; }
.trb-linha:hover { background: #f6f1ed; }
.trb-chave { white-space: nowrap; font-family: Consolas, monospace; }
.trb-vig { font-size: .78rem; color: var(--apagado); white-space: nowrap; }
.trb-dados { padding: .4rem 1rem .6rem 2rem; background: #fbf9f8; font-size: .82rem; border-bottom: 1px solid #eee5df; display: grid; gap: .15rem; }
.trb-pag { display: flex; justify-content: center; align-items: center; gap: 1rem; font-weight: 700; }
.trb-pe { padding: .45rem 1rem; font-size: .78rem; color: var(--apagado); border-top: 1px solid var(--linha); text-align: center; }
.trb-bloco { border: 1px solid var(--linha); border-radius: 12px; padding: .6rem .9rem; background: #fff; display: grid; gap: .25rem; font-size: .9rem; }
.trb-bloco h4 { margin: 0 0 .2rem; color: var(--faixa); }
.trb-ncm-cab { font-size: 1.05rem; }
.trb-niveis { font-size: .82rem; color: var(--apagado); }
.trb-ok { color: #0f8a4d; font-weight: 700; }
.trb-tag { display: inline-block; font-size: .72rem; font-weight: 800; background: #f6f1ed; color: #835838; border-radius: 6px; padding: 0 .35rem; }
.trb-lei { font-size: .8rem; color: var(--apagado); margin-top: .3rem; }
@media (max-width: 860px) { .janela-tributacoes > .janela__corpo.trb { grid-template-columns: 1fr; overflow-y: auto; } }


/* IMPRESSORAS (01/10/2026): forçar IP, campo com seta e opções numa linha só. */
.imp-forcar { align-items: flex-end; gap: .6rem; flex-wrap: wrap; margin-bottom: .6rem; }
.imp-forcar .campo { flex: 1 1 16rem; margin: 0; }
.janela-impressoras .marcavel span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sel-marca { position: relative; }
.sel-marca__campo { width: 100%; display: flex; align-items: center; gap: .5rem; padding: .55rem .8rem; border: 1px solid var(--linha); border-radius: 10px; background: #fff; cursor: pointer; text-align: left; font: inherit; }
.sel-marca__txt { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sel-marca__txt--vazio { color: var(--apagado); }
.sel-marca__seta { font-size: 1.1rem; color: var(--faixa); transition: transform .15s; }
.sel-marca--aberto .sel-marca__seta { transform: rotate(180deg); }
.sel-marca__lista { margin-top: .3rem; border: 1px solid var(--linha); border-radius: 10px; background: #fff; padding: .4rem; }
.sel-marca__busca { width: 100%; padding: .45rem .6rem; border: 1px solid var(--linha); border-radius: 8px; margin-bottom: .3rem; box-sizing: border-box; }
.janela-impressoras .sel-marca__itens { max-height: 13rem; overflow-y: auto !important; scrollbar-width: thin !important; padding: 0 .3rem; }
.janela-impressoras .sel-marca__itens::-webkit-scrollbar { display: block !important; width: 8px !important; }
.janela-impressoras .sel-marca__itens::-webkit-scrollbar-thumb { background: #d0b7a3; border-radius: 4px; }
.sel-marca__itens .marcavel[hidden] { display: none; }
.sel-marca__itens .marcavel[hidden] { display: none !important; }
.janela-impressoras .dois > .grupo { min-width: 0; }
.janela-impressoras .dois { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.janela-impressoras { width: min(900px, 96vw); }

/* TRIBUTAÇÕES (01/10/2026): a escolha da tabela é um campo com seta na largura inteira;
   a lista abre por cima com BARRA DE ROLAGEM GROSSA (rolar com o mouse). */
.janela-tributacoes > .janela__corpo.trb { display: flex; flex-direction: column; gap: .7rem; }
.trb-escolha { position: relative; flex: 0 0 auto; }
.trb-escolha__campo { font-size: 1rem; font-weight: 700; min-height: 46px; }
.trb-escolha .trb-lista { position: absolute; left: 0; right: 0; top: calc(100% + .3rem); z-index: 5; background: #fff; border: 1px solid var(--linha); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.18); padding: .5rem; overflow: visible; }
.trb-escolha .trb-lista[hidden] { display: none; }
.trb-lista__itens { max-height: 58vh; overflow-y: scroll !important; padding-right: .4rem; scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important; }
.trb-ver { flex: 1 1 auto; }
/* Barra GROSSA nas listas com seta (tributações e impressoras). */
.trb-lista__itens::-webkit-scrollbar, .janela-impressoras .sel-marca__itens::-webkit-scrollbar { display: block !important; width: 16px !important; }
.trb-lista__itens::-webkit-scrollbar-track, .janela-impressoras .sel-marca__itens::-webkit-scrollbar-track { background: #eee5df; border-radius: 8px; }
.trb-lista__itens::-webkit-scrollbar-thumb, .janela-impressoras .sel-marca__itens::-webkit-scrollbar-thumb { background: #9d7251; border-radius: 8px; border: 3px solid #eee5df; }
.janela-impressoras .sel-marca__itens { overflow-y: scroll !important; scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important; }
/* A regra geral "dialog .janela__corpo * { scrollbar-width: none !important }" escondia a barra: aqui ela volta, grossa. */
dialog .janela__corpo .trb-lista__itens, dialog .janela__corpo .sel-marca__itens { scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important; overflow-y: scroll !important; }
.trb-escolha { align-self: flex-start; max-width: 100%; }


/* CONSULTAS / CONFERÊNCIA DE PRODUTOS (01/10/2026). */
.cns-modos .trb-item { padding: .55rem .6rem; }
.cns-modos .trb-item small { opacity: .75; font-weight: 400; }
.cns-grupos { display: flex; flex-wrap: wrap; gap: .4rem; }
.cns-resumo { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .6rem; }
.cns-aviso { margin: .4rem 0; padding: .45rem .7rem; border-radius: 10px; background: #fff4e0; border: 1px solid #f0c98a; font-size: .88rem; }
.cns-chip { display: inline-block; font-size: .72rem; font-weight: 800; border-radius: 6px; padding: .05rem .4rem; white-space: nowrap; }
.cns-chip.cns--erro { background: #f8d7da; color: #8a1c24; }
.cns-chip.cns--atencao { background: #ffe8c2; color: #8a5300; }
.cns-chip.cns--contador { background: #f7f2ef; color: #6a472d; }
.cns-chip.cns--ok { background: #e6f4ea; color: #1e6b34; }
.cns-prod { border: 1px solid var(--linha); border-left: 6px solid #ccc; border-radius: 12px; padding: .55rem .8rem; margin: .5rem 0; background: #fff; }
.cns-prod.cns--erro { border-left-color: #d64550; }
.cns-prod.cns--atencao { border-left-color: #e8a33d; }
.cns-prod.cns--contador { border-left-color: #996f4f; }
.cns-prod.cns--ok { border-left-color: #2e9e57; }
.cns-prod__cab { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.cns-prod__cab [data-alterar] { margin-left: auto; }
.cns-prod__fiscal { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; font-size: .84rem; margin: .35rem 0; }
.cns-aps { margin: .2rem 0 0; padding-left: 1.1rem; font-size: .86rem; display: grid; gap: .3rem; }
/* A lista do campo com seta abre NO FLUXO (empurra o conteúdo), nada fica por cima de texto (01/10/2026). */
.trb-escolha .trb-lista { position: static; margin-top: .3rem; box-shadow: none; }
.trb-escolha .trb-lista__itens { max-height: 52vh; }
/* CONSULTAS: a coluna inteira embaixo do botão CONSULTAS (01/10/2026). */
.cns-col { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: .6rem; }
.cns-col .trb-escolha { width: 100% !important; margin-left: 0 !important; }
.cns-col .trb-ver { overflow-y: auto; }
.cns-col .trb-pesq .campo { flex: 1 1 10rem !important; }
/* NOVO DELIVERY: Telefone numa linha, CPF/CNPJ na de baixo, os dois na largura da coluna (01/10/2026). */
.nd__linha--uma > .nd__fone, .nd__linha--uma > .nd__doc { flex: 1 1 100%; }

/* NOVO DELIVERY aproveita a tela toda (01/10/2026). A regra .janela-impressoras { 900px }
   pegava esta janela também (mesma classe): aqui ela volta à largura cheia. */
dialog.janela-impressoras.janela-novo-delivery { width: 98vw; max-width: 98vw; }

/* TRIBUTAÇÕES (01/10/2026): GRADE com as MESMAS colunas das abas (16px da borda, vão .6rem) --
   cada coisa fica embaixo do seu botão, sem medir por JavaScript. O corpo tem .9rem de margem,
   as abas 1rem: a grade entra .1rem. */
.trb-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: .6rem; margin: 0 .1rem; flex: 1 1 auto; min-height: 0; }
.trb-grade--topo { flex: 0 0 auto; }
.trb-grade > .trb-escolha, .trb-grade > .cns-col { width: auto !important; margin-left: 0 !important; }
.trb-grade > .cns-col { grid-column: 2; min-height: 0; }
.cns-col .trb-pesq .campo { flex: 1 1 auto !important; }
.cns-col #cns-gr .campo { margin-bottom: .2rem !important; }
/* NOVO DELIVERY (01/10/2026): a lista de clientes achados rola com o mouse e tem
   BARRA DE ROLAGEM GROSSA visível (a regra geral do dialog escondia). Uma linha por cliente. */
dialog .janela__corpo .nd__achados { max-height: 16rem; overflow-y: scroll !important; scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important;
  border: 1px solid var(--linha); border-radius: 10px; padding: .3rem; margin: .1rem 0 .5rem; align-content: start; }
.nd__achados[hidden] { display: none !important; }
.nd__achado { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* CONSULTAS: o resultado também com a barra visível. */
dialog .janela__corpo .cns-col .trb-ver { scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important; overflow-y: auto !important; }

/* NOVO DELIVERY (01/10/2026): GRUPOS e PRODUTOS sempre com barra de rolagem grossa visível. */
dialog .janela__corpo .nd__lista { overflow-y: scroll !important; scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important; }
/* Lista de clientes: as linhas NÃO podem ser espremidas pela altura da lista (01/10/2026). */
dialog .janela__corpo .nd__achados { display: flex !important; flex-direction: column; gap: .25rem; }
.nd__achados > .nd__achado, .nd__achados > p { flex: 0 0 auto; min-height: 2.3rem; width: 100%; box-sizing: border-box; line-height: 1.3; }
/* Resumo do cliente (01/10/2026): menor, na mesma largura dos campos e botões centralizados. */
.nd__resumo { box-sizing: border-box; width: 100%; max-width: 100%; padding: .4rem .6rem; font-size: .82rem; line-height: 1.35; overflow-wrap: anywhere; }
.nd__resumo-nome { font-size: .95rem; }
.nd__resumo-botoes { justify-content: center; }
.nd__resumo-botoes .botao { font-size: .75rem; padding: .3rem .7rem; min-height: 0; }
dialog .janela__corpo .nd__achados[hidden] { display: none !important; }

/* USUÁRIO só no rodapé, com o menu Sair / Alterar senha abrindo para cima (01/10/2026). */
#usuario-sistema { display: none !important; }
.rodape-usuario--menu { position: relative; }
.rodape-usuario__nome { cursor: pointer; }
.rodape-usuario__opcoes { position: absolute; bottom: calc(100% + .4rem); left: 50%; transform: translateX(-50%); background: #fff; color: #2f2014;
  border: 1px solid var(--linha); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.2); padding: .3rem; display: grid; gap: .2rem; min-width: 12rem; z-index: 50; }
.rodape-usuario__opcoes[hidden] { display: none; }
.rodape-usuario__opcoes button { border: 0; background: none; padding: .45rem .7rem; border-radius: 8px; text-align: left; font: inherit; font-weight: 700; cursor: pointer; color: inherit; }
.rodape-usuario__opcoes button:hover { background: #f6f1ed; }

/* CADASTRO DE PRODUTO (02/10/2026): códigos e descrição numa linha; ＋ ao lado do grupo. */
.prod-codigos { flex-wrap: nowrap; gap: .5rem; }
.prod-codigos .campo { min-width: 0; }
@media (max-width: 1000px) { .prod-codigos { flex-wrap: wrap; } }
.prod-grupo { align-items: flex-end; gap: .5rem; }
.prod-grupo__mais { min-width: 46px; height: 42px; font-size: 1.3rem; padding: 0; margin-bottom: .55rem; }

/* JANELAS COMO NO WINDOWS (02/10/2026, janelas.js): fundo escuro próprio, − minimizar, arrastar. */
dialog.janela-livre[open] { position: fixed; inset: 0; margin: auto; max-width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }
.janela-fundo { position: fixed; inset: 0; background: rgba(0,0,0,.45); }
.janela-fundo[hidden] { display: none; }
dialog.janela-livre .janela__barra { cursor: grab; user-select: none; touch-action: none; }
dialog.janela-livre .janela__barra--arrastando { cursor: grabbing; }
.janela__barra .janela__min { margin-left: auto; margin-right: .4rem; font-weight: 900; min-width: 32px; }
dialog.janela--min[open] { bottom: .5rem !important; width: 16rem !important; height: auto !important; max-height: none !important; overflow: hidden; }
dialog.janela--min[open] > :not(.janela__barra) { display: none !important; }
dialog.janela--min .janela__barra { cursor: pointer; }
dialog.janela--min .janela__titulo { font-size: .8rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Cadastro de produto: janela mais larga para os códigos caberem; o ＋ do grupo no tamanho certo. */
dialog.janela-produto { width: min(1250px, 97vw); }
.prod-grupo > .prod-grupo__mais { flex: 0 0 46px; width: 46px; }
/* Minimizada: some tudo, menos o cabeçalho (e o que estiver em volta dele, como o <form> do produto). */
dialog.janela--min[open] *:not(.janela__barra):not(:has(.janela__barra)):not(.janela__barra *) { display: none !important; }
dialog.janela--min[open] > :has(.janela__barra) { display: block !important; }

/* PESQUISA PADRÃO (02/10/2026): numa linha, como no GestorAppMI. */
.linha.pesq { display: flex; gap: .4rem; align-items: center; flex-wrap: nowrap; }
.linha.pesq[hidden] { display: none; }
.linha.pesq select { flex: 0 0 auto; padding: .5rem .4rem; border: 1px solid var(--linha); border-radius: 10px; background: #fff; font-weight: 700; }
.linha.pesq input[type=search] { flex: 1 1 12rem; min-width: 8rem; padding: .5rem .7rem; border: 1px solid var(--linha); border-radius: 10px; }
@media (max-width: 800px) { .linha.pesq { flex-wrap: wrap; } }
/* ＋ ao lado do Nome (cadastrar cliente novo) — 02/10/2026. */
.nd__linha--uma:has(#nd-cadastrar) { display: flex; gap: .4rem; align-items: flex-end; }
.nd__linha--uma > .nd__cad { flex: 0 0 42px; width: 42px; height: 42px; padding: 0; font-size: 1.3rem; margin-bottom: .55rem; }

/* CLIENTE: CPF/CNPJ · RG ou IE · Consumidor Final · Ativo numa linha só (02/10/2026). */
.cf-docs { flex-wrap: nowrap; gap: .5rem; }
.cf-docs > .campo { min-width: 0; }
@media (max-width: 700px) { .cf-docs { flex-wrap: wrap; } }
/* Campo com lupa por dentro (consultar de novo) — 02/10/2026. */
.com-lupa { position: relative; display: block; }
.com-lupa > input { padding-right: 2.6rem; width: 100%; box-sizing: border-box; }
.com-lupa__botao { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); border: 0; background: #ede3db; border-radius: 8px; width: 2.1rem; height: 2.1rem; cursor: pointer; font-size: 1rem; }
.com-lupa__botao:hover { background: #e0cfc2; }

/* 💳 FORMAS DE PAGAMENTO (02/10/2026): forma oficial (tPag), canal, parcelas, entrada. */
dialog.janela-pagamentos { width: min(1150px, 97vw); }
.pg-canal { display: flex; justify-content: space-between; margin-top: .8rem; }
.pg-cab, .pg-linha { display: grid; grid-template-columns: 2rem minmax(10rem, 1fr) minmax(14rem, 1.5fr) 5.5rem 9rem auto auto auto; gap: .4rem; align-items: center; }
.pg-cab { font-size: .75rem; font-weight: 800; color: var(--apagado); padding: .3rem 0 0; }
.pg-linha { padding: .25rem 0; border-bottom: 1px solid #eee5df; }
.pg-linha input, .pg-linha select { padding: .4rem .5rem; border: 1px solid var(--linha); border-radius: 8px; background: #fff; min-width: 0; font: inherit; font-size: .88rem; }
.pg-linha--parada { opacity: .55; }
.pg-ativo input { width: 18px; height: 18px; }
.pg-mais { margin: .4rem 0 0; }
.pg-fonte { font-size: .78rem; color: var(--apagado); margin-top: .8rem; }

/* 👤 USUÁRIOS e 🧾 PDV (02/10/2026). */
dialog.janela-usuarios { width: min(1100px, 97vw); }
.us-cab, .us-linha { display: grid; grid-template-columns: 4rem 1.3fr 9rem 1.2fr 12rem 6rem 6rem auto; gap: .5rem; align-items: center; }
.us-cab { font-size: .72rem; font-weight: 800; color: var(--apagado); }
.us-linha { padding: .4rem 0; border-bottom: 1px solid #eee5df; font-size: .9rem; }
.us-linha--inativo { opacity: .5; }
.botao--pdv { background: var(--faixa); color: #fff; font-weight: 900; }
dialog.janela-pdv { width: min(640px, 96vw); }
.pdv-info { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-bottom: .7rem; }
.pdv-info > div { background: #f6f1ed; border-radius: 10px; padding: .45rem .6rem; display: grid; }
.pdv-info span, .pdv-vendas span { font-size: .72rem; color: var(--apagado); font-weight: 700; }
.pdv-vendas > div { display: flex; justify-content: space-between; border-bottom: 1px solid #eee5df; padding: .3rem 0; }
.pdv-fl { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .3rem 0; border-bottom: 1px solid #eee5df; }
.pdv-fl .com-simbolo { flex: 0 0 10rem; }
.pdv-fl input { text-align: right; }
/* PDV no meio do espaço livre entre o NOVO DELIVERY e os filtros (não por cima deles). */
#ped-filtros > .botao--pdv { position: static; transform: none; margin: 0 auto; order: -1; }
#ped-filtros > #ped-novo-delivery { order: -2; }

/* 💳 PAGAMENTOS com ACERTO e SUBLISTA DE CONDIÇÕES (02/10/2026). */
.pg-cab, .pg-linha { grid-template-columns: 2rem minmax(10rem, 1fr) minmax(14rem, 1.4fr) 13rem auto auto auto auto; }
.pg-forma { border-bottom: 1px solid #eee5df; padding: .2rem 0 .35rem; }
.pg-forma > .pg-linha { border-bottom: 0; }
.pg-conds { display: flex; flex-wrap: wrap; gap: .35rem; padding: .15rem 0 0 2.4rem; }
.pg-cond { display: flex; align-items: center; gap: .3rem; background: #f6f1ed; border-radius: 10px; padding: .2rem .4rem; }
.pg-cond select { padding: .25rem .35rem; border: 1px solid var(--linha); border-radius: 8px; font-size: .8rem; background: #fff; }
.pg-cond .botao--simbolo { width: 28px; height: 28px; min-width: 28px; padding: 0; }
.pg-cond .botao--simbolo svg { width: 14px; height: 14px; }
/* SAIR / TROCAR em cima do Gerenciador de Pedidos. */
.botao--sair { display: block; width: 100%; margin-bottom: .2rem; font-size: .7rem; font-weight: 900; padding: .2rem .4rem; background: var(--creme, #ede3db); color: var(--faixa); }
#rodape-usuario .rodape-usuario__opcoes { display: none !important; }

/* CAIXA LIVRE (verde) / CAIXA PAUSADO (vermelho) ao lado do PDV (02/10/2026). */
#ped-filtros > .botao--caixa { order: -1; margin-right: auto; font-weight: 900; color: #fff; }
#ped-filtros > .botao--pdv { margin-right: .4rem; }
.botao--caixa-livre { background: #1f8f4e !important; }
.botao--caixa-pausado { background: #c0392b !important; }
/* PDV no MEIO entre o NOVO DELIVERY e os filtros (02/10/2026). */
#ped-filtros > #ped-novo-delivery { margin-right: 0 !important; }
#ped-filtros > .botao--pdv { margin-left: auto !important; margin-right: auto !important; }
#ped-filtros > .botao--caixa:not([hidden]) { margin-left: -1rem; margin-right: auto; }

.sel-marca__todos { border-bottom: 1px solid var(--linha); margin-bottom: .2rem; padding-bottom: .3rem !important; }
/* Sublista das condições e linhas de pagamento: tudo ARREDONDADO como o resto do sistema (02/10/2026). */
.pg-cond { border-radius: 999px; padding: .25rem .5rem .25rem .7rem; }
.pg-cond select, .pg-linha select, .pg-linha input { border-radius: 12px !important; }
.pg-cond select { padding: .3rem .7rem; border-radius: 999px !important; font-weight: 700; }
.pg-cond .botao--simbolo { border-radius: 999px; }
/* O ＋ da sublista do tamanho dos outros botões, nunca esticado (02/10/2026). */
.pg-linha > [data-mais-cond], .pg-linha > [data-subir], .pg-linha > [data-descer] { width: 36px !important; min-width: 36px; max-width: 36px; padding: 0 !important; justify-self: center; font-size: 1.05rem; }
.pg-linha > .pg-acerto { min-width: 0; width: 100%; }
/* PDV CEGO: caixinha de marcar com a explicação ao lado (02/10/2026). */
.us-cego { margin: .5rem 0; padding: .55rem .7rem; border: 1px solid var(--linha); border-radius: 12px; background: #fbf9f8; align-items: flex-start; }
.us-cego span { white-space: normal !important; font-size: .9rem; }
.us-cego input { margin-top: .15rem; }
/* Lista de usuários: títulos e valores alinhados à esquerda, coluna por coluna (02/10/2026). */
.us-cab > *, .us-linha > * { text-align: left !important; justify-self: start; }
.us-cab, .us-linha { grid-template-columns: 4rem minmax(8rem, 1.2fr) 9.5rem minmax(9rem, 1.2fr) 13rem 6rem 6rem 5.5rem !important; }
.us-linha > button { justify-self: end; }
/* PDV / NFC-e bem SALIENTE: o dobro da largura, mais alto, com sombra (02/10/2026). */
#ped-filtros > .botao--pdv { min-width: 13rem; min-height: 46px; padding: .55rem 1.8rem !important; font-size: 1.05rem !important; font-weight: 900; letter-spacing: .02em; border-radius: 999px; box-shadow: 0 4px 12px rgba(74,40,20,.35); border: 2px solid #9d7251; }
#ped-filtros > .botao--pdv:hover { filter: brightness(1.15); }

/* BARRA DE ROLAGEM nas janelas (Mateus, 02/10/2026): toda área que rola DENTRO de uma janela mostra
   a barra (a página principal continua sem barra). Vale mais que a regra antiga que escondia. */
dialog .janela__corpo, dialog .janela__corpo *, dialog .nd__lista, dialog .trb-ver, dialog .cns-col .trb-ver {
  scrollbar-width: auto !important; scrollbar-color: #9d7251 #eee5df !important;
}

/* EMPRESA (02/10/2026): certificado em uso, teste da SEFAZ, OK no cartão, logo. */
.cert-uso { margin-top: .6rem; padding: .55rem .8rem; border-radius: 12px; border: 1px solid var(--linha); background: #fbf9f8; display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: center; }
.cert-uso--ok { border-color: #8fd1a8; background: #eefaf2; }
.cert-uso--vencendo { border-color: #e8a33d; background: #fff4e0; }
.cert-uso__teste { margin-left: auto; display: flex; gap: .4rem; align-items: center; }
.cert-uso__teste select { padding: .3rem .5rem; border-radius: 10px; border: 1px solid var(--linha); }
#em-sefaz-res { flex: 1 1 100%; }
.cert-cartao { position: relative; }
.cert-cartao__ok { display: none; margin-left: auto; align-self: center; }
.cert-cartao--escolhido .cert-cartao__ok { display: inline-flex; }
.em-logo { max-height: 70px; max-width: 220px; border: 1px solid var(--linha); border-radius: 8px; background: #fff; padding: .2rem; }
/* ⚠ AVISO DO CERTIFICADO: o MatIA piscando no meio da tela (02/10/2026). */
dialog.aviso-cert { width: min(620px, 94vw); }
.aviso-cert__corpo { display: flex; gap: 1rem; align-items: center; text-align: left; }
/* QUEM PISCA É O BOTÃO VERDE DO WHATSAPP, não o MatIA (Mateus, 02/10/2026). */
.aviso-cert__matia { width: 120px; flex: 0 0 auto; animation: none; }
@keyframes matia-pisca { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.96); } }
.aviso-cert__texto { font-size: 1.15rem; color: #8a1c24; }
.aviso-cert__zap { display: inline-flex; align-items: center; gap: .5rem; background: #25d366; color: #fff; font-weight: 900; padding: .55rem 1rem; border-radius: 999px; text-decoration: none; margin-top: .3rem; }
.aviso-cert__zap:hover { filter: brightness(1.08); }
.aviso-cert__zap { animation: zap-pisca 1s ease-in-out infinite; }
@keyframes zap-pisca {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37, 211, 102, .75); }
  50% { transform: scale(1.06); box-shadow: 0 0 0 10px rgba(37, 211, 102, 0); filter: brightness(1.15); }
}

/* MENSAGENS DO MATIA — o PADRÃO (Mateus, 02/10/2026): cabeçalho "INFORMAÇÕES", a mensagem
   CENTRALIZADA, o MatIA SEMPRE À DIREITA, encostado, e o RODAPÉ da MESMA ALTURA do cabeçalho. */
dialog.janela--aviso { width: min(600px, calc(100vw - 1.5rem)); overflow: visible; }
dialog.janela--aviso > .janela__barra, dialog.janela--aviso > .janela__pe--aviso { min-height: 48px; box-sizing: border-box; padding: .45rem .8rem; }
dialog.janela--aviso .janela__mensagem { text-align: center; padding: 1.3rem 7.5rem 1.6rem; }
dialog.janela--aviso .janela__mensagem p { margin: .35rem 0; }
dialog.janela--aviso .aviso__matia { right: 0; bottom: 0; height: 104px; }
@media (max-width: 560px) { dialog.janela--aviso .janela__mensagem { padding: 1.2rem 1rem 3.5rem; } }
dialog.aviso-cert .aviso-cert__matia { width: auto; animation: none; }
.aviso-cert__texto { font-size: 1.1rem; }
/* Cabeçalho e rodapé das mensagens com a MESMA altura (52 px). */
dialog.janela--aviso > .janela__barra, dialog.janela--aviso > .janela__pe--aviso { height: 52px; min-height: 52px; padding-top: 0; padding-bottom: 0; }
dialog.janela--aviso > .janela__pe--aviso .botao { min-height: 36px; padding-top: .3rem; padding-bottom: .3rem; }

/* Emissão: rótulos numa linha só e os campos alinhados; a "última emitida" embaixo do campo. */
#em-fiscal .linha:has(#em-amb) { align-items: flex-start; }
#em-fiscal .linha:has(#em-amb) .campo > span { white-space: nowrap; }
.em-ultima { display: block; font-size: .72rem; color: var(--apagado); margin-top: .15rem; }

/* 👁 VISUALIZAR o papel na tela (02/10/2026), como sai na térmica (48 colunas). */
dialog.janela-previa { width: min(520px, 96vw); }
.previa-papel { font-family: Consolas, 'Courier New', monospace; font-size: .82rem; line-height: 1.35; background: #fff; color: #111;
  border: 1px dashed #c4b0a0; border-radius: 6px; padding: .8rem; margin: 0 auto; width: max-content; max-width: 100%; white-space: pre; overflow-x: auto; }
.imp-sub { margin-left: 1.8rem; }

/* Certificado em uso: TUDO NA MESMA LINHA -- certificado, ambiente, documento e o TESTAR SEFAZ (02/10/2026). */
.cert-uso { flex-wrap: nowrap; white-space: nowrap; }
.cert-uso > b { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cert-uso__teste { flex: 0 0 auto; }
.cert-uso__teste select { font-weight: 800; }
.cert-uso { flex-wrap: wrap; }
.cert-uso > #em-sefaz-res { flex-basis: 100%; white-space: normal; }

/* 💳 TEF / 📱 SMART POS nas configurações de pagamento (02/10/2026). */
.pg-tef > legend .marcavel { margin: 0; }
.pg-sub { margin: .4rem 0 .2rem; }
#tef-ops { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .4rem; }
.tef-op input[data-op-nome] { width: 13rem; padding: .3rem .7rem; border: 1px solid var(--linha); border-radius: 999px; }
.tef-op input[data-op-num] { width: 8rem; padding: .3rem .7rem; border: 1px solid var(--linha); border-radius: 999px; font-family: Consolas, monospace; }
.sp-maq { display: grid; grid-template-columns: 2rem 1.2fr 1.2fr 1fr 1.1fr .9fr 1.3fr auto; gap: .4rem; align-items: end; padding: .3rem 0; border-bottom: 1px solid #eee5df; }
.sp-maq .campo { margin: 0; min-width: 0; }
@media (max-width: 900px) { .sp-maq { grid-template-columns: 2rem 1fr 1fr; } }

.tef-op input[data-op-num] { width: 9.5ch !important; }
.pg-tef .campo input { min-width: 0; }

/* Pré-visualização: cabeçalho como na térmica (nome em negrito, título grande em negrito). */
.previa-papel__loja { text-align: center; font-weight: 800; font-size: 1.05rem; }
.previa-papel__titulo { text-align: center; font-weight: 900; font-size: 1.6rem; line-height: 1.2; margin: .15rem 0 .1rem; white-space: normal; }

/* PDV (02/10/2026): informações menores, finas e CENTRALIZADAS; botões menores e finos. */
.pdv-info { gap: .4rem; margin-bottom: .6rem; }
.pdv-info > div { padding: .25rem .4rem; text-align: center; justify-items: center; border-radius: 8px; }
.pdv-info span { font-size: .62rem; }
.pdv-info b { font-size: .82rem; line-height: 1.2; }
.pdv-botoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; width: 100%; }

.pdv-importar { max-height: 50vh; overflow-y: auto; display: grid; gap: .2rem; margin-top: .4rem; scrollbar-width: auto !important; }

/* BARRA DE CIMA (02/10/2026): espaço igual entre os botões. NOVO DELIVERY à esquerda, PDV + CAIXA juntos no
   meio (com folga entre eles), filtros e plataformas à direita, todos com o mesmo espaçamento. */
#ped-filtros { column-gap: .6rem !important; row-gap: .4rem !important; }
#ped-filtros > .botao--pdv { margin-left: auto !important; margin-right: 0 !important; }
#ped-filtros > .botao--caixa:not([hidden]) { margin-left: .5rem !important; margin-right: auto !important; }
#ped-filtros > .botao--caixa[hidden] + * { margin-left: 0; }
#ped-filtros > .botao:not(.botao--pdv) { min-height: 34px; }
#ped-filtros:has(> .botao--caixa[hidden]) > .botao--pdv, #ped-filtros:not(:has(> .botao--caixa)) > .botao--pdv { margin-right: auto !important; }
#ped-filtros { flex-wrap: nowrap !important; }
#ped-filtros > .botao:not(.botao--pdv):not(#ped-novo-delivery):not(.botao--caixa) { padding-left: .6rem !important; padding-right: .6rem !important; white-space: nowrap; }
#ped-filtros > .botao { flex: 0 0 auto; }

.imp-tipos { display: flex; flex-wrap: wrap; gap: .3rem 1.5rem; padding-bottom: .35rem; margin-bottom: .35rem; border-bottom: 1px dashed #e0d1c6; }

/* VEIO DO Keeta / 99Food / Anota AI (02/10/2026), como o do iFood. */
.pedido__tipo--plataforma { display: inline-flex; align-items: center; gap: .25rem; font-weight: 800; }
.pedido__selo { height: 1.7em; width: auto; vertical-align: middle; }
/* Aviso de PEDIDO ATRASADO: "NÃO MOSTRAR NOVAMENTE HOJE" no rodapé do MatIA. */
.aviso__calar { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 700; margin-right: auto; cursor: pointer; }

/* IMPORTAR PEDIDOS: cada linha com o 👁 VER; a tela do pedido como veio. */
.pdv-imp-linha { display: flex; align-items: center; justify-content: space-between; gap: .5rem; border-bottom: 1px solid #eee5df; padding: .15rem 0; }
.pdv-ver p { margin: .25rem 0; }
.pdv-ver__tipo { font-size: 1.4rem; font-weight: 900; text-align: center; }
.pdv-ver__itens > div { display: grid; grid-template-columns: 1fr auto; border-bottom: 1px dashed #e0d1c6; padding: .3rem 0; }
.pdv-ver__itens small { grid-column: 1 / -1; color: var(--apagado); font-weight: 700; padding-left: 1rem; }
.pdv-ver__tot { text-align: right; }

/* IMPORTAR PEDIDOS em COLUNAS (Mateus, 02/10/2026): sem estourar a tela, valores alinhados à direita. */
dialog.janela-importar { width: min(1100px, 96vw); }
.janela-importar .pdv-importar { overflow-x: hidden; }
.pdv-imp-linha { display: grid !important; grid-template-columns: 1.6rem 4rem 6.5rem 7.5rem minmax(8rem, 1.4fr) minmax(8rem, 1fr) 7rem auto; align-items: center;
  column-gap: .6rem; padding: .3rem .2rem; border-bottom: 1px solid #eee5df; cursor: pointer; }
.pdv-imp-cab { cursor: default; font-size: .72rem; font-weight: 800; color: var(--apagado); border-bottom: 2px solid #e0d1c6; }
.pdv-imp-corta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pdv-imp-valor { text-align: right; white-space: nowrap; padding-right: .4rem; }
/* O MatIA NUNCA EM CIMA DO OK (02/10/2026): o rodapé reserva o canto dele; com o "não mostrar novamente",
   a frase fica à esquerda e o OK no meio. */
dialog.janela--aviso > .janela__pe--aviso { padding-right: 120px !important; padding-left: 120px !important; justify-content: center; position: relative; }
dialog.janela--aviso > .janela__pe--aviso .aviso__calar { position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); margin: 0; max-width: calc(50% - 6rem); }
dialog.janela-importar { width: min(1280px, 97vw); }
.pdv-imp-linha { grid-template-columns: 1.6rem 4.2rem 7rem 8rem minmax(10rem, 1.6fr) minmax(10rem, 1.2fr) 8.5rem 5.5rem !important; }
.pdv-imp-linha [data-ver] { width: 100%; justify-self: end; }
.pdv-imp-valor { padding-right: 1rem; }
/* A bolinha do contador em cima do Gerenciador de Pedidos sai (Mateus, 02/10/2026): os novos já aparecem nos filtros. */
#ped-novos { display: none !important; }
/* VEIO DO Keeta / 99Food / Anota AI: letra PRETA em fundo claro (a branca não se lia) — o do iFood fica como está. */
.pedido__tipo--plataforma { color: #111 !important; background: #fff !important; border: 1px solid #d5c6bb; }

/* VIAS por impressora: todas numa linha, campos pequenos. */
.imp-vias { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .9rem; margin-top: .5rem; padding-top: .45rem; border-top: 1px dashed #e0d1c6; font-size: .8rem; }
.imp-vias label { display: inline-flex; align-items: center; gap: .3rem; font-weight: 700; }
.imp-vias input { width: 3.2rem; text-align: center; padding: .15rem .2rem; }

/* FECHAR VENDA (02/10/2026) */
dialog.janela-fv { width: min(720px, 96vw); }
.fv-total { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.1rem; font-weight: 800; border-bottom: 2px solid #e0d1c6; padding-bottom: .4rem; margin-bottom: .6rem; }
.fv-total b { font-size: 2rem; }
.fv-add { display: grid; grid-template-columns: 1fr 9rem auto; gap: .5rem; align-items: end; }
.fv-lista { margin: .6rem 0; }
.fv-pag { display: grid; grid-template-columns: 1fr auto auto; gap: .6rem; align-items: center; border-bottom: 1px dashed #e0d1c6; padding: .3rem 0; }
.fv-pag b { text-align: right; min-width: 7rem; }
.fv-resumo { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.fv-resumo > div { background: #f6f1ed; border-radius: 8px; padding: .35rem .5rem; text-align: center; display: grid; }
.fv-resumo span { font-size: .7rem; font-weight: 800; color: var(--apagado); }
.fv-resumo b { font-size: 1.15rem; }
.fv-resumo .fv-alerta b { color: #b3261e; }
.fv-escolha { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .5rem; margin-bottom: .5rem; }
/* NOTAS EMITIDAS */
dialog.janela-notas { width: min(1180px, 97vw); }
.nf-filtro { display: flex; gap: .6rem; align-items: end; margin-bottom: .5rem; }
.nf-lista { max-height: 55vh; overflow-y: auto; }
.nf-linha { display: grid; grid-template-columns: 5.5rem 3.5rem 8.5rem minmax(10rem, 1fr) 8.5rem 7.5rem 8rem; gap: .5rem; align-items: center; padding: .3rem .2rem; border-bottom: 1px solid #eee5df; }
.nf-cab { font-size: .72rem; font-weight: 800; color: var(--apagado); border-bottom: 2px solid #e0d1c6; }
.nf-valor { text-align: right; padding-right: .6rem; }
.nf-acoes { display: flex; gap: .3rem; justify-content: flex-end; }
.nf-ok { color: #1b7a34; font-weight: 800; } .nf-canc { color: #b3261e; font-weight: 800; } .nf-cont { color: #b26a00; font-weight: 800; }

/* PDV — TELA DE VENDA (02/10/2026): o lado do cliente vira o painel da venda (pedido, CPF na nota, obs. no cupom, teclas F). */
.nd--venda .nd__cliente > :not(.nd-venda) { display: none !important; }
.nd-venda { display: grid; gap: .55rem; }
.nd-venda__ped { display: grid; gap: .15rem; background: #f6f1ed; border-radius: 10px; padding: .5rem .7rem; font-size: .9rem; }
.nd-teclas { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; margin-top: .3rem; }
.nd-tecla { display: flex; align-items: center; gap: .45rem; border: 1px solid #e0d1c6; background: #fff; border-radius: 8px; padding: .3rem .45rem; cursor: pointer; text-align: left; font-size: .72rem; font-weight: 700; color: var(--tinta, #2e1f14); }
.nd-tecla b { background: var(--faixa, #3a2719); color: #fff; border-radius: 6px; padding: .1rem .35rem; font-size: .78rem; min-width: 2.4rem; text-align: center; }
.nd-tecla:hover { background: #f6f1ed; }
.nd__cupom-item--sel { background: #fff3cd; outline: 2px solid #e0b84a; border-radius: 6px; }
.nd--venda .nd__cupom-item { cursor: pointer; }
.nd__desc { background: #b3261e; color: #fff; border-radius: 4px; padding: 0 .25rem; font-size: .62rem; font-weight: 800; }

/* Conferência: arquivo e WhatsApp para o contador. */
.cns-contador { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 .6rem; }

/* CONTADOR no cadastro da empresa: CNPJ com a 🔍 dentro; "É WhatsApp" junto de cada telefone. */
.em-ct-cnpj { display: flex; gap: .3rem; }
.em-ct-cnpj input { flex: 1 1 auto; min-width: 0; }
.em-ct-zap { flex: 0 0 auto; align-self: flex-end; margin-bottom: .6rem; }
/* CNPJ do escritório: a 🔍 DENTRO do campo, no canto direito (como no GestorAPPMI). */
.campo .em-ct-cnpj { position: relative; display: block !important; }
.campo .em-ct-cnpj input { width: 100%; padding-right: 2.6rem; box-sizing: border-box; }
.campo .em-ct-cnpj button { position: absolute; right: .3rem; top: 50%; transform: translateY(-50%); margin: 0; padding: .1rem .45rem; min-height: 0; line-height: 1.4; }

/* BOTÕES ALINHADOS (Mateus, 02/10/2026): os botões pequenos de ação ficam do MESMO tamanho, mesma altura,
   ícone centralizado — em todas as telas. */
.botao.botao--pequeno { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; vertical-align: middle; line-height: 1; min-height: 2rem; box-sizing: border-box; }
.nf-acoes, .pdv-imp-linha, .fv-pag { align-items: center; }
.nf-acoes { gap: .4rem; }
.nf-acoes .botao, .fv-pag .botao, .imp-linha .botao--pequeno[title] { width: 2.4rem; height: 2.2rem; min-height: 2.2rem; padding: 0 !important; font-size: 1rem; border-radius: 10px; }
.nf-acoes .botao--vermelho { color: #fff; }
.pdv-imp-linha [data-ver] { height: 2.2rem; min-height: 2.2rem; padding: 0 .6rem !important; }

/* FECHAR VENDA: botões alinhados, valor editável na lista. */
.fv-add { align-items: end; }


.fv-pag { grid-template-columns: 1fr 10rem 2.4rem; }
.fv-pag-valor input { text-align: right; font-weight: 800; height: 2.2rem; }
dialog.janela-fv .janela__pe { display: flex; justify-content: flex-end; align-items: center; gap: .6rem; }

/* NOTAS: o BUSCAR na mesma linha e altura das datas (o campo tem margem embaixo). */
.nf-filtro { align-items: flex-end; }


/* BOTÕES IGUAIS AOS DO SISTEMA (Mateus, 02/10/2026): no PDV, no FECHAR VENDA e nas notas o botão é o padrão;
   só o alinhamento com os campos (a margem de baixo do campo). */
.fv-add .botao, .nf-filtro .botao { margin-bottom: 11.2px; }
/* Painel do PDV: os 5 botões (padrão do sistema) numa linha só. */
dialog.janela-pdv:has(.pdv-botoes) { width: min(900px, 96vw); }
.pdv-botoes { flex-wrap: nowrap; }
/* CAMPOS DE VALOR iguais aos do sistema (Mateus, 02/10/2026): fechamento do caixa e lista do FECHAR VENDA. */
.pdv-fl .com-simbolo input, .fv-pag-valor input {
  width: 100%; padding: .55rem .7rem .55rem 2.2rem; font: inherit; font-weight: 700; text-align: right;
  border: 1px solid var(--linha); border-radius: 10px; background: #fff; color: inherit; box-sizing: border-box; height: auto;
}
.pdv-fl .com-simbolo { flex: 0 0 11rem; }
.pdv-fl { padding: .35rem 0; }

/* BOTÕES DO CAIXA RESPONSIVOS (Mateus, 02/10/2026): numa linha só quando cabem; em tela
   estreita quebram em duas linhas, todos do mesmo tamanho, sem cortar o texto. */
dialog.janela-pdv .pdv-botoes { flex-wrap: wrap; }
dialog.janela-pdv .pdv-botoes > .botao { flex: 1 1 0; min-width: max-content; white-space: nowrap; }
@media (max-width: 760px) {
  dialog.janela-pdv .pdv-botoes > .botao { flex: 1 1 calc(33% - .4rem); min-width: 0; font-size: .82rem; padding-left: .5rem; padding-right: .5rem; }
}
@media (max-width: 480px) {
  dialog.janela-pdv .pdv-botoes > .botao { flex-basis: calc(50% - .4rem); }
}

/* RELATÓRIO DE VENDAS (Mateus, 02/10/2026). */
dialog.janela-relatorio { width: min(760px, 96vw); }
.rel-lista { max-height: 62vh; overflow-y: auto; display: grid; gap: .6rem; margin-top: .5rem; }
.rel-caixa { border: 1px solid var(--linha, #ddd); border-radius: 10px; padding: .5rem .7rem; }
.rel-caixa h3 { margin: 0 0 .35rem; font-size: .95rem; font-weight: 800; }
.rel-geral { background: #fbf8f6; }
.rel-linha { display: grid; grid-template-columns: 1fr 3rem 8rem; gap: .5rem; align-items: baseline; padding: .15rem 0; border-bottom: 1px dashed #e3e3e3; font-size: .92rem; }
.rel-linha i { font-style: normal; opacity: .6; font-size: .8rem; }
.rel-qtd { text-align: center; opacity: .75; }
.rel-linha b { text-align: right; }
.rel-total { border-bottom: 0; font-weight: 800; padding-top: .3rem; }
@media (max-width: 520px) { .rel-linha { grid-template-columns: 1fr 2.2rem 6.5rem; font-size: .85rem; } }

/* REGRA DA SENHA (Mateus, 03/10/2026): entre o "Repita Senha:" e o botão, centralizada. */
.senha-regra { margin: .2rem 0 .7rem; text-align: center; font-size: .8rem; line-height: 1.35; color: var(--apagado); }

/* CABEÇALHO E RODAPÉ SEMPRE À VISTA (Mateus, 03/10/2026): desde a primeira entrada, o login
   fica no meio, entre os dois. Antes de entrar, os botões do cabeçalho não respondem. */
body:has(#login-fundo) .cabecalho { position: fixed; top: 0; left: 0; right: 0; z-index: 210; pointer-events: none; }
body:has(#login-fundo) .rodape { z-index: 210; }
body:has(#login-fundo) .login-fundo { padding: 7rem 1rem 3.5rem; }


/* CABEÇALHO INICIAL (Mateus, 03/10/2026): antes de entrar, sem nenhum botão -- só o nome
   do sistema em duas linhas, centralizado, e a logo da Mateus Informática à direita. */
.cab-inicial { display: none; }
body:has(#login-fundo) .cabecalho > :not(.cab-inicial) { display: none !important; }
body:has(#login-fundo) .cabecalho { min-height: 84px; justify-content: center; }
body:has(#login-fundo) .cab-inicial { display: flex; align-items: center; justify-content: center; width: 100%; position: relative; min-height: 70px; }
.cab-inicial__nome { display: inline-flex; flex-direction: column; align-items: center; line-height: 1.05; text-transform: none; }
.cab-inicial__nome b { display: block; white-space: nowrap; color: #c2a28a; font-weight: 800; letter-spacing: 0; }
.cab-inicial__nome span { display: block; white-space: nowrap; color: #fff; font-size: 1rem; font-weight: 700; margin-top: .1rem; }
.cab-inicial__logo { position: absolute; right: 0; top: 50%; transform: translateY(-50%); height: 66px; width: auto;
  filter: drop-shadow(0 0 1px rgba(255,255,255,.9)) drop-shadow(0 0 8px #9e7351); }

/* À esquerda do cabeçalho inicial: SAIR e os telefones do suporte (Mateus, 03/10/2026). */
body:has(#login-fundo) .cabecalho { pointer-events: auto; }
.cab-inicial__esq { position: absolute; left: 0; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: .8rem; }
.cab-inicial__sair {
  min-width: 5.5rem; padding: .5rem 1rem; border-radius: 999px; border: 2px solid #f87171; background: #b91c1c; color: #fff;
  font-weight: 800; font-size: .9rem; letter-spacing: .5px; cursor: pointer; box-shadow: 0 0 10px rgba(220,38,38,.45);
}
.cab-inicial__sair:hover { background: #dc2626; }
.cab-inicial__suporte { display: flex; flex-direction: column; gap: .15rem; line-height: 1.2; }
.cab-inicial__suporte a { color: #f0e9e3; font-size: .85rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.cab-inicial__suporte a::before { content: ''; display: inline-block; width: 1.1em; height: 1.1em; margin-right: .35rem; vertical-align: -.1em;
  background: #25d366; -webkit-mask: url('icones/whatsapp.svg') center / contain no-repeat; mask: url('icones/whatsapp.svg') center / contain no-repeat; }
.cab-inicial__suporte a:hover { color: #fff; text-decoration: underline; }
/* Correção do Mateus (03/10/2026): LOGO À ESQUERDA; à DIREITA os telefones e o SAIR (no canto). */
.cab-inicial__logo { left: 0; right: auto; }
.cab-inicial__esq { left: auto; right: 0; flex-direction: row-reverse; }
/* BOTÕES DA ENTRADA (Mateus, 03/10/2026): todos no MESMO AZUL; selecionado = ARO DOURADO
   em volta, igual ao OK da mensagem do MatIA. */
.cab-inicial__sair { background: #8f613d !important; border: 0 !important; box-shadow: 0 0 10px rgba(158, 115, 81,.45) !important; }
.cab-inicial__sair:hover { background: #9e7351 !important; }
.cab-inicial__sair:focus-visible, .login-caixa__ok:focus-visible,
dialog.janela--aviso .janela__pe--aviso .botao:focus-visible, .ab-botao:focus-visible {
  outline: 3px solid #f5c542 !important; outline-offset: 2px;
}
/* SUPORTE em negrito, embaixo dos telefones e centralizado neles (Mateus, 03/10/2026). */
.cab-inicial__suporte-titulo { align-self: center; color: #fff; font-size: .85rem; font-weight: 800; letter-spacing: 1px; margin-top: .05rem; }
/* JANELA DE INFORMAÇÕES MENOR (Mateus, 03/10/2026): do tamanho do texto, não mais 600 px fixos. */
dialog.janela--aviso { width: fit-content !important; min-width: min(400px, calc(100vw - 1.5rem)); max-width: min(600px, calc(100vw - 1.5rem)); }
dialog.janela--aviso .janela__mensagem { padding: 1.1rem 6.5rem 1.3rem 2rem; }
/* SEM AS LOGOS DA MATEUS NO CABEÇALHO DO PAINEL (Mateus, 03/10/2026): a da esquerda e a da direita. */
.cabecalho > .selo-link { display: none !important; }

/* CADASTROS (Mateus, 03/10/2026): um botão só; a lista abre embaixo dele. */
.cadastros { position: relative; }
.cadastros__menu {
  position: absolute; top: calc(100% + .45rem); right: 0; z-index: 60;
  display: grid; grid-template-columns: repeat(4, auto); gap: .45rem; padding: .6rem;
  background: #281b11; border: 1px solid #63432a; border-radius: 14px; box-shadow: 0 10px 28px rgba(0,0,0,.45);
}
.cadastros__menu[hidden] { display: none; }
.cadastros__menu .botao { min-width: 84px; }
/* Dentro da lista CADASTROS o nome do botão aparece sempre, em qualquer largura. */
.cadastros__menu .botao span, .cadastros > #cadastros-botao span { display: block !important; font-size: .72rem !important; }
.cadastros__menu .botao { flex-direction: column; min-width: 84px; padding: .45rem .5rem; }
/* SINCRONIZAR fora por enquanto (Mateus, 03/10/2026): volta quando o app na nuvem estiver organizado. */
#sinc-agora { display: none !important; }
.cabecalho .cadastros__menu .botao--icone { flex-basis: auto !important; width: auto !important; min-width: 88px !important; height: auto; }
.cabecalho .cadastros__menu .botao--icone span { white-space: nowrap; overflow: visible; text-overflow: clip; }
/* WHATSAPP e QR DO APP escondidos por enquanto (Mateus, 03/10/2026). */
#abrir-whats, #qr-app { display: none !important; }
/* PEDIDOS PISCANDO quando chega pedido novo (Mateus, 03/10/2026). */
.cabecalho .botao--pedidos.botao--piscando { animation: pedidos-pisca 1s steps(1, end) infinite; }
@keyframes pedidos-pisca { 50% { background: #c0392b; color: #fff; box-shadow: 0 0 16px rgba(220,38,38,.75); } }
/* CADASTROS logo ao lado de PEDIDOS (Mateus, 03/10/2026): a lista abre alinhada pela esquerda. */
.cabecalho > .cadastros { align-self: flex-end; }
.cabecalho > .cadastros .cadastros__menu { left: 0; right: auto; }
/* CADASTROS igual ao PEDIDOS: ícone e nome lado a lado, mesma letra. */
.cabecalho #cadastros-botao { display: flex !important; flex-direction: row; align-items: center; justify-content: center; gap: .45rem; padding: .3rem .55rem; overflow: hidden; min-width: 0; }
.cabecalho #cadastros-botao svg { flex: 0 0 auto; width: 24px; height: 24px; }
.cabecalho #cadastros-botao span { font-size: .78rem !important; line-height: 1.1; font-weight: 700; }
/* Todos no formato do PEDIDOS: ícone e nome lado a lado, a mesma letra. */
.cabecalho .cadastros__menu .botao--icone, .cabecalho .botao--engrenagem {
  display: flex !important; flex-direction: row !important; align-items: center; justify-content: flex-start; gap: .45rem;
  padding: .3rem .7rem !important; border-radius: 14px !important; min-width: 0 !important; overflow: hidden;
}
.cabecalho .cadastros__menu .botao--icone svg, .cabecalho .botao--engrenagem svg { flex: 0 0 auto; width: 24px; height: 24px; }
.cabecalho .cadastros__menu .botao--icone span, .cabecalho .botao--engrenagem span { display: block !important; font-size: .78rem !important; font-weight: 700; line-height: 1.1; white-space: nowrap; }
.cabecalho .botao--engrenagem span { font-size: .68rem !important; }
.cadastros__menu { grid-template-columns: repeat(4, auto) !important; }
/* VENDAS no cabeçalho (Mateus, 03/10/2026); o PDV / NFC-e da barra de pedidos sai. */
#ped-pdv { display: none !important; }
.cabecalho #cab-vendas { display: flex !important; flex-direction: row; align-items: center; justify-content: center; gap: .45rem; padding: .3rem .55rem; align-self: flex-end; overflow: hidden; min-width: 0; }
.cabecalho #cab-vendas svg { flex: 0 0 auto; width: 24px; height: 24px; }
.cabecalho #cab-vendas span { display: block !important; font-size: .78rem !important; font-weight: 700; line-height: 1.1; }
/* SAIR / TROCAR ao lado de CONFIGURAÇÕES, do mesmo tamanho (Mateus, 03/10/2026). */
.cabecalho #sair-trocar { display: flex; align-items: center; justify-content: center; padding: .3rem .55rem; border-radius: 14px; font-size: .78rem; font-weight: 800; white-space: nowrap; margin: 0; }
/* BOTÕES DO CABEÇALHO, MESMA LETRA E CENTRALIZADOS (Mateus, 03/10/2026): PEDIDOS, CADASTROS, VENDAS,
   OPÇÕES, SAIR / TROCAR e os da lista CADASTROS -- ícone + nome no meio, mesma fonte, tamanho e cor. */
.cabecalho .botao--pedidos.botao--icone, .cabecalho #cadastros-botao, .cabecalho #cab-vendas,
.cabecalho .botao--engrenagem, .cabecalho #sair-trocar, .cabecalho .cadastros__menu .botao--icone {
  justify-content: center !important; text-align: center; gap: .5rem !important; color: #281b11 !important;
}
.cabecalho .botao--pedidos.botao--icone span, .cabecalho #cadastros-botao span, .cabecalho #cab-vendas span,
.cabecalho .botao--engrenagem span, .cabecalho #sair-trocar, .cabecalho .cadastros__menu .botao--icone span {
  font-family: inherit !important; font-size: .82rem !important; font-weight: 800 !important; line-height: 1.1 !important;
  letter-spacing: .2px !important; text-align: center !important; white-space: nowrap !important; color: #281b11 !important;
}
.cabecalho .botao--pedidos.botao--icone svg, .cabecalho #cadastros-botao svg, .cabecalho #cab-vendas svg,
.cabecalho .botao--engrenagem svg, .cabecalho .cadastros__menu .botao--icone svg { width: 24px !important; height: 24px !important; }
.cabecalho .botao--pedidos.botao--piscando, .cabecalho .botao--pedidos.botao--piscando span { color: inherit; }
.cabecalho #sair-trocar { display: flex !important; flex-direction: row; align-items: center; }
.cabecalho #sair-trocar svg { flex: 0 0 auto; width: 24px !important; height: 24px !important; }
.cabecalho #sair-trocar span { font-size: .82rem !important; font-weight: 800 !important; color: #281b11 !important; white-space: nowrap; }
/* CHAT COM O CLIENTE fora por enquanto (Mateus, 03/10/2026): o botão flutuante e o painel da direita. */
.chat-flutuante, #ped-chat { display: none !important; }
/* Sem o chat, os pedidos ocupam a largura toda. */
#aba-pedidos:not([hidden]) { grid-template-columns: minmax(0, 1fr) !important; }
#aba-pedidos > * { grid-column: 1 / -1 !important; }
/* RELATÓRIOS no cabeçalho (Mateus, 03/10/2026); os três botões saem da barra de pedidos. */
#ped-fechamento, #ped-motoboys, #ped-lucro { display: none !important; }
.cabecalho .relatorios .cadastros__menu { grid-template-columns: repeat(3, auto) !important; }
.cabecalho #relatorios-botao { display: flex !important; flex-direction: row; align-items: center; justify-content: center !important; gap: .5rem !important; padding: .3rem .55rem; overflow: hidden; min-width: 0; color: #281b11 !important; }
.cabecalho #relatorios-botao svg { width: 24px !important; height: 24px !important; flex: 0 0 auto; }
.cabecalho #relatorios-botao span { display: block !important; font-size: .82rem !important; font-weight: 800 !important; color: #281b11 !important; white-space: nowrap; }
.cabecalho .relatorios__menu .botao--icone span { white-space: normal !important; text-align: left !important; }
/* INTEGRAÇÕES nas Opções (Mateus, 03/10/2026): a lista abre embaixo do botão. */
.integracoes { position: relative; display: inline-block; }
.integracoes__menu {
  position: absolute; top: calc(100% + .45rem); left: 0; z-index: 60; display: flex; flex-wrap: wrap; gap: .45rem; width: max-content; max-width: 90vw;
  padding: .6rem; background: #281b11; border: 1px solid #63432a; border-radius: 14px; box-shadow: 0 10px 28px rgba(0,0,0,.45);
}
.integracoes__menu[hidden] { display: none; }
/* OPÇÕES (Mateus, 03/10/2026): TODOS OS BOTÕES DO MESMO TAMANHO E MESMA LETRA; o texto no meio
   (quebra em 2 linhas se precisar) e as fileiras centralizadas entre si. */
#aba-config .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; }
#aba-config .barra-acoes > .botao:not([hidden]), #aba-config .barra-acoes > .integracoes > .botao {
  width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important; text-align: center !important;
  padding: .3rem .6rem !important; border-radius: 16px !important;
  font-size: .82rem !important; font-weight: 800 !important; line-height: 1.15 !important; white-space: normal !important;
}
#aba-config .barra-acoes > .integracoes { flex: 0 0 150px; }
/* TODOS EM MAIÚSCULO (Mateus, 03/10/2026): botões das OPÇÕES e das listas CADASTROS, RELATÓRIOS e INTEGRAÇÕES. */
#aba-config .barra-acoes > .botao, #aba-config .barra-acoes > .integracoes > .botao,
.integracoes__menu .botao, .cabecalho .cadastros__menu .botao--icone span { text-transform: uppercase !important; }
.integracoes__menu .ifood-marca { text-transform: none !important; }
/* Faixas de título das telas em MAIÚSCULO (Mateus, 03/10/2026). */
.faixa { text-transform: uppercase; }
/* TELA CADASTROS (Mateus, 03/10/2026): mesmos botões das OPÇÕES -- mesmo tamanho, letra e grade centralizada. */
#aba-cadastros .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; margin: 0; }
#aba-cadastros .barra-acoes > .botao {
  width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  display: inline-flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: .4rem !important;
  text-align: center !important; padding: .3rem .6rem !important; border-radius: 16px !important; text-decoration: none;
  font-size: .82rem !important; font-weight: 800 !important; line-height: 1.15 !important; text-transform: uppercase !important;
  background: var(--creme, #f0e9e3); color: #281b11 !important;
}
#aba-cadastros .barra-acoes > .botao svg { width: 20px !important; height: 20px !important; flex: 0 0 auto; }
#aba-cadastros .barra-acoes > .botao span { display: inline !important; font-size: inherit !important; white-space: normal !important; }
/* PEDIDO NUMA LINHA SÓ (Mateus, 03/10/2026): número, tipo, hora, cliente, telefone, entrega, situação e VER.
   Itens e valores só no VER. */
.pedido__topo { display: flex; flex-wrap: nowrap; align-items: center; gap: .6rem; }
.pedido__cliente-linha { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .92rem; }
.pedido__situacao { margin-left: auto; flex: 0 0 auto; }
.pedido__cliente[hidden], .pedido .pedido__itens, .pedido .pedido__conta, .pedido .pedido__brinde { display: none !important; }
/* HOJE + data no canto esquerdo do cabeçalho (Mateus, 03/10/2026); some na tela de login (cabeçalho inicial). */
.cab-hoje { display: flex; align-items: baseline; gap: .45rem; flex: 0 0 auto; margin-right: .6rem; color: #fff; white-space: nowrap; align-self: center; }
.cab-hoje b { color: #caae98; font-size: .85rem; font-weight: 800; letter-spacing: .5px; }
.cab-hoje span { font-size: 1rem; font-weight: 800; }
/* Sem o contador no canto da faixa PEDIDOS (Mateus, 03/10/2026). */
#ped-conta { display: none !important; }
/* HOJE + data no canto ESQUERDO da faixa PEDIDOS (Mateus, 03/10/2026). */
.cab-hoje { display: none !important; }
.faixa--pedidos { position: relative; }
.faixa__hoje { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); font-weight: 800; color: #fff; white-space: nowrap; }
.faixa__hoje b { color: #caae98; margin-right: .35rem; }
.faixa--pedidos > .faixa__hoje { right: auto !important; bottom: auto !important; top: 50% !important; left: 1rem !important; width: auto !important; text-align: left !important; transform: translateY(-50%) !important; font-size: .95rem; }
/* Sem a barra DATA INICIAL / DATA FINAL / HOJE na tela de pedidos (Mateus, 03/10/2026): a lista é sempre a de hoje. */
#ped-periodo { display: none !important; }
/* O dia no título dos PEDIDOS é um botão (abre SELECIONE O PERÍODO). */
.faixa--pedidos > .faixa__hoje { background: rgba(202, 174, 152,.16); border: 1px solid #7b5335; border-radius: 999px; padding: .2rem .7rem; cursor: pointer; color: #fff; font: inherit; font-weight: 800; }
.faixa--pedidos > .faixa__hoje:hover { background: rgba(202, 174, 152,.3); }
.faixa--pedidos > .faixa__hoje:focus-visible { outline: 3px solid #f5c542; outline-offset: 2px; }
.periodo-matia { display: flex; justify-content: center; gap: 1rem; margin: .6rem 0 .5rem; flex-wrap: wrap; }
.periodo-matia label { display: flex; flex-direction: column; align-items: center; gap: .25rem; font-size: .75rem; font-weight: 800; }
.periodo-matia input { font: inherit; font-size: 1rem; padding: .35rem .5rem; border: 1px solid #e5d8ce; border-radius: 10px; }
/* FILTROS DOS PEDIDOS da esquerda para a direita, começando alinhados ao botão PEDIDOS (Mateus, 03/10/2026). */
#aba-pedidos #ped-filtros { justify-content: flex-start !important; padding-left: var(--fil-esq, 0px) !important; gap: .45rem; }
#aba-pedidos #ped-filtros #ped-novo-delivery { margin-left: 0 !important; margin-right: 0 !important; }
/* FILTROS DOS PEDIDOS: TODOS DO MESMO TAMANHO e em MAIÚSCULO (Mateus, 03/10/2026). */
#aba-pedidos #ped-filtros > .botao, #aba-pedidos #ped-filtros > button {
  width: 118px !important; height: 40px !important; flex: 0 0 118px !important; margin: 0 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: .3rem;
  padding: 0 .4rem !important; border-radius: 999px !important; text-align: center;
  font-size: .78rem !important; font-weight: 800 !important; text-transform: uppercase !important; white-space: nowrap; overflow: hidden;
}
#aba-pedidos #ped-filtros .ifood-marca { text-transform: none !important; }
#aba-pedidos #ped-filtros img { height: 18px; width: auto; }
#aba-pedidos #ped-filtros > #ped-pdv, #aba-pedidos #ped-filtros > [hidden] { display: none !important; }
#aba-pedidos #ped-filtros { flex-wrap: wrap !important; overflow: visible !important; }
/* Filtros iFood, Keeta, 99Food e Anota AI GUARDADOS por enquanto (Mateus, 03/10/2026). */
#aba-pedidos #ped-filtros > [data-filtro="ifood"], #aba-pedidos #ped-filtros > [data-filtro="keeta"],
#aba-pedidos #ped-filtros > [data-filtro="99food"], #aba-pedidos #ped-filtros > [data-filtro="anotaai"] { display: none !important; }
/* FILTROS DOS PEDIDOS no MEIO do espaço branco: o mesmo espaço em cima (até o cabeçalho) e embaixo (até a faixa). */
#aba-pedidos:not([hidden]) > #ped-filtros { margin-top: -18.2px !important; padding-top: 8.8px !important; padding-bottom: 13px !important; margin-bottom: 0 !important; }
/* SELECIONE O PERÍODO: tudo no MEIO da janela (Mateus, 03/10/2026) e o HOJE do tamanho do OK. */
dialog.janela--periodo .janela__mensagem { padding-left: 6.5rem !important; padding-right: 6.5rem !important; text-align: center; }
dialog.janela--periodo .periodo-matia { justify-content: center; }
dialog.janela--periodo .periodo-matia label { align-items: center; text-align: center; }
dialog.janela--periodo .periodo-matia input { text-align: center; }
dialog.janela--periodo #pm-hoje { display: block; margin: .3rem auto 0; }
dialog.janela--periodo #pm-hoje { width: 144px !important; height: 36px !important; min-height: 36px !important; padding: 0 !important; font-size: .95rem; font-weight: 800; }
/* PERÍODO: o HOJE do MESMO TAMANHO do OK (Mateus, 03/10/2026). */
dialog.janela--periodo #pm-hoje { width: 144px !important; height: 36px !important; min-height: 36px !important; padding: 0 !important; font-size: .95rem; font-weight: 800; }
/* PERÍODO medido (03/10/2026): o HOJE no meio do vão (campos -> fim da área branca) e o bloco com o mesmo espaço em cima e embaixo. */
dialog.janela--periodo .janela__mensagem { padding-top: 14.5px !important; padding-bottom: 14.5px !important; }
dialog.janela--periodo .janela__mensagem > p:first-child { margin-top: 0 !important; }
dialog.janela--periodo #pm-hoje { margin-top: 14.5px !important; margin-bottom: 0 !important; }
/* O "A" do período no mesmo azul clarinho do HOJE (Mateus, 03/10/2026). */
.faixa--pedidos > .faixa__hoje b { color: #caae98; margin: 0 .3rem; }
/* Sem os atalhos HOJE / ÚLTIMA SEMANA / 15 DIAS / 30 DIAS nos relatórios (Mateus, 03/10/2026). */
.atalhos-periodo > [data-dias] { display: none !important; }
.atalhos-periodo:not(:has(> :not([data-dias]))) { display: none !important; }
.lucro-filtros:not(:has(> :not(.atalhos-periodo))):has(> .atalhos-periodo) { display: none !important; }
/* Relatório do Dia sem as linhas ENTREGUES / ENCERRADOS e CANCELADOS (Mateus, 03/10/2026). */
.fech__linha--ok, .fech__linha--cancel { display: none !important; }
/* SITUAÇÃO e VER do MESMO TAMANHO; NOVO em VERDE (Mateus, 03/10/2026). */
.pedido__topo .pedido__situacao, .pedido__topo .pedido__ver, .pedido__topo .pedido__mapa {
  width: 120px !important; height: 30px !important; flex: 0 0 120px !important; box-sizing: border-box;
  display: inline-flex !important; align-items: center; justify-content: center; text-align: center;
  padding: 0 .4rem !important; border-radius: 999px !important; font-size: .74rem !important; font-weight: 800 !important;
  white-space: nowrap; overflow: hidden; margin: 0 !important;
}
.pedido--novo .pedido__topo .pedido__situacao { background: #1b7a34 !important; color: #fff !important; }
.pedido__topo .pedido__situacao, .pedido__topo .pedido__ver, .pedido__topo .pedido__mapa { min-height: 30px !important; max-height: 30px !important; line-height: 1 !important; }
/* CAIXA LIVRE / PAUSADO fora da fileira dos pedidos por enquanto (Mateus, 03/10/2026). */
#aba-pedidos #ped-filtros > #ped-caixa { display: none !important; }
/* PEDIDO ATRASADO: o número grande e ATRASADO !!! (Mateus, 03/10/2026). */
.atraso__linha { display: flex; align-items: center; justify-content: center; gap: .55rem; margin: .2rem 0; font-weight: 800; }
.atraso__num { font-size: 1.9rem; line-height: 1; color: #281b11; }
.atraso__txt { color: #c0392b; font-size: 1.15rem; }
/* JANELAS DE INFORMAÇÕES (Mateus, 03/10/2026): o texto no MEIO da janela inteira (ignorando o MatIA),
   com o MESMO espaço dos dois lados -- do tamanho do MatIA -- para nunca passar por cima dele. */
dialog.janela--aviso .janela__mensagem { padding-left: 7rem !important; padding-right: 7rem !important; text-align: center !important; }
/* SAIU PARA ENTREGA: FECHAR · CONCLUIR · VENDER centralizados e do mesmo tamanho (Mateus, 03/10/2026). */
dialog .janela__pe--tres { display: flex !important; justify-content: center !important; align-items: center; gap: .6rem; position: relative; padding-left: 7rem !important; padding-right: 7rem !important; }
dialog .janela__pe--tres > .botao { width: 144px !important; height: 36px !important; min-height: 36px !important; flex: 0 0 144px !important; padding: 0 !important; margin: 0 !important; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
/* SAIU PARA ENTREGA: o conteúdo também no meio (cliente, QUEM VAI LEVAR). */
dialog.janela-entrega .janela__corpo { text-align: center; padding-left: 7rem !important; padding-right: 7rem !important; }
dialog.janela-entrega .janela__corpo .campo { align-items: center; text-align: center; }
dialog.janela-entrega .janela__corpo .campo > span { display: block; text-align: center; }
dialog.janela-entrega .janela__corpo select { margin: 0 auto; display: block; text-align: center; text-align-last: center; }
/* CAIXAS DE SELEÇÃO (Mateus, 03/10/2026): borda mais visível e cantos ARREDONDADOS, em todo o sistema. */
select { border: 2px solid #c1a087 !important; border-radius: 14px !important; background-color: #fff; min-height: 40px; padding: .35rem 2.2rem .35rem .8rem !important;
  -webkit-appearance: none; appearance: none; font-weight: 700; color: #281b11;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c492e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important; background-position: right .7rem center !important; background-size: 16px !important; }
select:hover { border-color: #6c492e !important; }
select:focus, select:focus-visible { outline: none !important; border-color: #8f613d !important; box-shadow: 0 0 0 3px #f5c542 !important; }
/* PARÂMETROS (Mateus, 03/10/2026): tudo no meio, a caixa de marcar e a seleção do aviso sonoro. */
dialog.janela--parametros .janela__mensagem { display: flex; flex-direction: column; align-items: center; gap: 1rem; text-transform: none !important; }
dialog.janela--parametros .par-linha { justify-content: center; text-align: left; }
dialog.janela--parametros .par-campo { display: flex; flex-direction: column; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 800; }
dialog.janela--parametros .par-campo select { min-width: 240px; text-align: center; text-align-last: center; }
/* PARÂMETROS: rótulo e seleção NA MESMA LINHA; janela mais larga para caber sem chegar no MatIA. */
dialog.janela--parametros { max-width: min(800px, calc(100vw - 1.5rem)) !important; }
dialog.janela--parametros .par-campo { flex-direction: row !important; align-items: center; gap: .7rem; font-size: .9rem; }
dialog.janela--parametros .par-campo > span { white-space: nowrap; }
/* TELA PARÂMETROS (Mateus, 03/10/2026): no modelo das OPÇÕES -- faixas do mesmo tamanho, nome à esquerda,
   controle à direita, uma embaixo da outra no centro; o GRAVAR no formato dos botões das OPÇÕES. */
#aba-parametros .parametros { display: flex; flex-direction: column; align-items: center; gap: .6rem; margin: 0 auto 1rem; }
#aba-parametros .par-item {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; box-sizing: border-box;
  width: min(640px, 100%); min-height: 56px; padding: .45rem .6rem .45rem 1.1rem; cursor: pointer;
  background: #f0e9e3; border: 2px solid #dfcfc2; border-radius: 16px;
}
#aba-parametros .par-nome { font-size: .82rem; font-weight: 800; color: #281b11; text-transform: uppercase; text-align: left; }
#aba-parametros .par-ctl { flex: 0 0 240px; display: flex; justify-content: center; }
#aba-parametros .par-ctl select { width: 240px; text-align: center; text-align-last: center; }
#aba-parametros .par-check { width: 26px; height: 26px; accent-color: #8f613d; cursor: pointer; }
#aba-parametros .barra-acoes { display: flex; justify-content: center; }
#aba-parametros #par-gravar { width: 150px !important; height: 56px !important; border-radius: 16px !important; font-size: .82rem !important; font-weight: 800 !important; }
/* PARÂMETROS: faixas com a MESMA altura e o nome numa linha só. */
#aba-parametros .par-item { width: min(760px, 100%); height: 56px; min-height: 56px; }
#aba-parametros .par-nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#aba-parametros .par-ctl { flex: 0 0 230px; }
#aba-parametros .par-ctl select { width: 230px; min-height: 40px; height: 40px; }
/* TELA INTEGRAÇÕES (Mateus, 03/10/2026): as logos em grade, mesmo tamanho dos botões das OPÇÕES, fileiras centralizadas. */
#aba-integracoes .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; margin: 0; }
#aba-integracoes .barra-acoes > .botao {
  width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: .4rem;
  padding: .3rem .6rem !important; border-radius: 16px !important; font-size: .9rem !important; font-weight: 800 !important;
}
#aba-integracoes .barra-acoes > .botao img { height: 26px; width: auto; }
/* PARÂMETROS medidos (Mateus, 03/10/2026): faixas largas, o mesmo respiro dos dois lados, os dois controles
   com a MESMA moldura (260 x 40) na mesma coluna, e os vãos verticais todos iguais (16 px). */
#aba-parametros > .lista { padding: 16px !important; }
#aba-parametros .parametros { gap: 16px !important; margin: 0 auto 16px !important; }
#aba-parametros .par-item { width: min(960px, 100%) !important; height: 64px !important; min-height: 64px !important; padding: 0 12px 0 20px !important; }
#aba-parametros .par-ctl { flex: 0 0 260px !important; height: 40px; }
#aba-parametros .par-ctl select { width: 260px !important; height: 40px !important; min-height: 40px !important; }
#aba-parametros .par-ctl:has(> .par-check) { box-sizing: border-box; width: 260px; border: 2px solid #c1a087; border-radius: 14px; background: #fff; align-items: center; }
#aba-parametros .par-check { width: 24px !important; height: 24px !important; margin: 0; }
#aba-parametros .par-item:has(.par-check:focus-visible) .par-ctl { box-shadow: 0 0 0 3px #f5c542; }
#aba-parametros > .lista > .barra-acoes { margin: 0 !important; padding: 0 !important; }
#aba-parametros #par-gravar { margin: 0 !important; }
#aba-parametros .par-item { padding: 0 12px !important; }

/* ===== JANELA PADRÃO (Mateus, 03/10/2026) — TODAS as janelas =====
   Sem ✕ e sem − no canto; título no MEIO; corpo com o mesmo respiro; botões de baixo CENTRALIZADOS,
   do MESMO TAMANHO e com o MESMO espaço entre eles; texto dos botões em maiúsculo. */
dialog .janela__barra > button, dialog .janela__barra > .janela__min { display: none !important; }
dialog .janela__barra { justify-content: center !important; }
dialog .janela__barra .janela__titulo { flex: 1 1 auto; text-align: center !important; }
dialog .janela__corpo { padding: 16px 20px !important; }
dialog .janela__corpo .campo { display: flex; flex-direction: column; gap: 6px; margin: 0 0 12px; }
dialog .janela__corpo .campo:last-child { margin-bottom: 0; }
dialog .janela__corpo textarea, dialog .janela__corpo input:not([type=checkbox]):not([type=radio]) { border: 2px solid #c1a087; border-radius: 14px; padding: .55rem .8rem; box-sizing: border-box; }
dialog .janela__corpo textarea:focus, dialog .janela__corpo input:not([type=checkbox]):not([type=radio]):focus { outline: none; border-color: #8f613d; box-shadow: 0 0 0 3px #f5c542; }
dialog .janela__pe { display: flex !important; justify-content: center !important; align-items: center !important; gap: 10px !important; flex-wrap: wrap; padding-top: 10px !important; padding-bottom: 10px !important; }
dialog .janela__pe > .botao, dialog .janela__pe > button.botao {
  min-width: 144px !important; height: 36px !important; min-height: 36px !important; margin: 0 !important;
  padding: 0 1rem !important; display: inline-flex !important; align-items: center; justify-content: center;
  font-weight: 800; text-transform: uppercase;
}
dialog .janela__pe > [hidden] { display: none !important; }

/* LISTA ARREDONDADA das seleções (seletor.js). */
.seletor__lista {
  z-index: 10000; overflow-y: auto; box-sizing: border-box; padding: 6px;
  background: #fff; border: 2px solid #6c492e; border-radius: 14px; box-shadow: 0 12px 28px rgba(40, 27, 17, .28);
}
.seletor__item { padding: .5rem .8rem; border-radius: 10px; font-weight: 700; color: #281b11; text-align: center; cursor: pointer; white-space: nowrap; }
.seletor__item + .seletor__item { margin-top: 2px; }
.seletor__item--escolhido { background: #f0e9e3; }
.seletor__item--ativo { background: #8f613d; color: #fff; }
.seletor__item--off { opacity: .45; cursor: default; }
select.seletor--aberto { border-color: #8f613d !important; box-shadow: 0 0 0 3px #f5c542 !important; }
/* PEDIDOS piscando: vermelho com as LETRAS e o SÍMBOLO BRANCOS (Mateus, 03/10/2026). */
@keyframes pedidos-pisca { 50% { background: #c0392b; color: #fff; box-shadow: 0 0 16px rgba(220,38,38,.75); } }
.cabecalho .botao--pedidos.botao--piscando { animation: pedidos-pisca-branco 1s steps(1, end) infinite !important; }
@keyframes pedidos-pisca-branco {
  0%, 49% { background: #c0392b; box-shadow: 0 0 16px rgba(220,38,38,.75); }
  50%, 100% { background: #be9b81; box-shadow: none; }
}
.cabecalho .botao--pedidos.botao--piscando, .cabecalho .botao--pedidos.botao--piscando span, .cabecalho .botao--pedidos.botao--piscando svg { color: #fff !important; }
/* SEM TEXTO DE SUGESTÃO NOS CAMPOS (Mateus, 03/10/2026): nada escrito dentro dos campos, em todo o sistema. */
input::placeholder, textarea::placeholder { color: transparent !important; opacity: 0 !important; }
/* Título das janelas em MAIÚSCULO, como as faixas (Mateus, 03/10/2026). */
dialog .janela__barra .janela__titulo { text-transform: uppercase; }
/* LOCALIZAR IMPRESSORAS (Mateus, 03/10/2026): campo da FAIXA DE IP e os botões FORÇAR / PROCURAR TUDO
   na mesma linha, mesma altura (40 px), botões do mesmo tamanho, tudo centralizado. */
.imp-forcar { display: flex !important; align-items: flex-end !important; justify-content: center !important; gap: 10px !important; flex-wrap: wrap; }
.imp-forcar .campo { margin: 0 !important; flex: 0 1 300px; }
.imp-forcar .campo input { height: 40px !important; min-height: 40px !important; text-align: center; }
.imp-forcar > .botao { width: 150px !important; height: 40px !important; min-height: 40px !important; flex: 0 0 150px !important; margin: 0 !important; padding: 0 !important; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.imp-ident { font-size: .8rem; color: #6c492e; margin-top: .15rem; text-transform: uppercase; }
.imp-forcar .campo > span { display: block; text-align: center !important; }
/* ADICIONAR como ETIQUETA MARCADA, com o tique (Mateus, 03/10/2026). */
.imp-etiqueta { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; height: 32px; padding: 0 1rem; border: 2px solid #8f613d; border-radius: 999px; background: #f7f2ef; color: #8f613d; font-weight: 800; font-size: .8rem; cursor: pointer; white-space: nowrap; }
.imp-etiqueta:hover { background: #8f613d; color: #fff; }
.imp-etiqueta:focus-visible { outline: 3px solid #f5c542; outline-offset: 2px; }
/* ADICIONAR como caixa de marcar, no mesmo modelo da do dinheiro (PARÂMETROS). */
.imp-marcar { display: inline-flex; align-items: center; gap: .6rem; cursor: pointer; font-weight: 800; font-size: .82rem; color: #281b11; }
.imp-marcar__caixa { box-sizing: border-box; width: 64px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #c1a087; border-radius: 14px; background: #fff; }
.imp-marcar__caixa input { width: 24px; height: 24px; margin: 0; accent-color: #8f613d; cursor: pointer; }
.imp-marcar:has(input:focus-visible) .imp-marcar__caixa { box-shadow: 0 0 0 3px #f5c542; }
/* LOCALIZANDO com a ampulheta girando, no centro. */
.imp-localizando { display: flex; align-items: center; justify-content: center; gap: .6rem; margin: 1rem 0; font-weight: 800; font-size: 1rem; color: #6c492e; }
.imp-ampulheta { display: inline-block; font-size: 1.6rem; animation: imp-gira 1.4s ease-in-out infinite; }
@keyframes imp-gira { 0% { transform: rotate(0); } 45% { transform: rotate(180deg); } 50% { transform: rotate(180deg); } 95% { transform: rotate(360deg); } 100% { transform: rotate(360deg); } }
/* FORÇAR e PROCURAR TUDO com folga: 190 px (o texto maior com ~25 px de cada lado), os dois iguais. */
.imp-forcar > .botao { width: 190px !important; flex: 0 0 190px !important; }
.imp-forcar .campo { flex: 0 1 280px !important; }
/* CAMPOS DAS JANELAS (Mateus, 03/10/2026): rótulo em MAIÚSCULO e CENTRALIZADO sobre o campo; o conteúdo
   dos campos de uma linha e das seleções também no meio. */
dialog .janela__corpo .campo > span { display: block; text-transform: uppercase !important; text-align: center !important; }
dialog .janela__corpo .campo { align-items: stretch; }
dialog .janela__corpo .campo input:not([type=checkbox]):not([type=radio]), dialog .janela__corpo .campo select { text-align: center !important; text-align-last: center; }
/* CADASTRO DA IMPRESSORA (depois do ADICIONAR, Mateus 03/10/2026): TUDO CENTRALIZADO e em MAIÚSCULO. */
dialog:has(#i-nome) .janela__corpo, dialog:has(#i-nome) .janela__corpo * { text-transform: uppercase; }
dialog:has(#i-nome) .janela__corpo .linha { justify-content: center; }
dialog:has(#i-nome) fieldset.grupo { display: flex; flex-direction: column; align-items: center; text-align: center; }
dialog:has(#i-nome) fieldset.grupo > legend { margin: 0 auto; text-align: center; padding: 0 .5rem; }
dialog:has(#i-nome) .imp-tipos { display: flex; justify-content: center; gap: 1.2rem; flex-wrap: wrap; }
dialog:has(#i-nome) fieldset.grupo .marcavel { justify-content: center; text-align: center; }
dialog:has(#i-nome) .imp-vias { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .6rem; text-align: center; }
dialog:has(#i-nome) .imp-vias input { text-align: center; }
dialog:has(#i-nome) .dois { justify-content: center; }
dialog:has(#i-nome) fieldset.grupo { min-width: 0 !important; max-width: 100%; box-sizing: border-box; margin-left: 0; margin-right: 0; }
dialog:has(#i-nome) fieldset.grupo .marcavel, dialog:has(#i-nome) fieldset.grupo .marcavel span { white-space: normal !important; max-width: 100%; }
dialog:has(#i-nome) .janela__corpo { overflow-x: hidden; }
/* Cadastro da impressora: a LISTA de caixas de marcar ALINHADA À ESQUERDA (Mateus, 03/10/2026). */
dialog:has(#i-nome) fieldset.grupo > .marcavel { align-self: stretch !important; justify-content: flex-start !important; text-align: left !important; }
dialog:has(#i-nome) fieldset.grupo > .marcavel.imp-sub { padding-left: 2rem; }
/* Lista de impressoras: TESTAR e EDITAR do MESMO TAMANHO, em maiúsculo; a lixeira na mesma altura (Mateus, 03/10/2026). */
[data-testar], [data-editar], [data-loc-editar] { width: 110px !important; height: 34px !important; min-height: 34px !important; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; text-transform: uppercase; font-weight: 800; }
.imp-linha .botao--simbolo { width: 34px !important; height: 34px !important; min-height: 34px !important; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; }

/* O QUE ELA IMPRIME (Mateus, 03/10/2026): DELIVERY · RETIRADA · NO LOCAL · VISUALIZAR, os quatro na MESMA
   LINHA, com o mesmo espaço entre eles e nas pontas. */
dialog:has(#i-nome) .imp-tipos { flex-direction: row !important; flex-wrap: nowrap !important; justify-content: space-evenly !important; align-items: center !important; gap: 0 !important; width: 100% !important; margin-left: 0 !important; }
dialog:has(#i-nome) .imp-tipos > label { white-space: nowrap; }

/* QUANTIDADE DE VIAS (Mateus, 03/10/2026): subtítulo no meio do tracejado e as vias em DUAS COLUNAS
   alinhadas -- à esquerda as de venda (NFC-e, COMPROVANTE, TEF, ABERTURA/FECHAMENTO), à direita as do pedido
   (APELIDO/SETOR, VIA DO PEDIDO, VIA DA ENTREGA). Nome à esquerda, número à direita, linhas na mesma altura. */
dialog:has(#i-nome) .imp-vias { display: block !important; align-self: stretch !important; width: 100%; border-top: 0 !important; padding-top: 0 !important; margin-top: .6rem !important; }
dialog:has(#i-nome) .imp-vias__tit { display: flex; align-items: center; gap: .6rem; margin: 0 0 .5rem; font-size: .8rem; font-weight: 800; color: var(--apagado); }
dialog:has(#i-nome) .imp-vias__tit::before, dialog:has(#i-nome) .imp-vias__tit::after { content: ''; flex: 1; border-top: 1px dashed #e0d1c6; }
dialog:has(#i-nome) .imp-vias__grade { display: grid; grid-template-columns: 1fr 1fr; gap: 0 2.5rem; padding: 0 1rem; }
dialog:has(#i-nome) .imp-vias__col { display: flex; flex-direction: column; gap: .4rem; }
dialog:has(#i-nome) .imp-vias__col > label { display: flex !important; justify-content: space-between; align-items: center; margin: 0 !important; padding: 0 !important; font-weight: 700; }
dialog:has(#i-nome) .imp-vias__col > label > span { white-space: nowrap; font-size: .8rem; }
dialog:has(#i-nome) .imp-vias__col input { width: 3.2rem; flex: 0 0 auto; }

/* MAIS TELEFONES no cadastro do cliente (Mateus, 03/10/2026): o ＋ dentro do campo do telefone; os outros
   telefones numa linha embaixo, cada um do tamanho do principal. Linha vazia não ocupa espaço. */
#cf-fones { justify-content: flex-start; flex-wrap: wrap; }
#cf-fones:empty { display: none; }
#cf-fones .cf-fone-campo { flex: 0 0 11rem; }
#cf-mais-fone, #cf-fones .com-lupa__botao { font-weight: 900; font-size: 1.15rem; line-height: 1; }
/* O telefone com ＋/− do MESMO tamanho e letra dos outros campos; a linha dos outros telefones com o mesmo vão. */
dialog #cf-fone, dialog .cf-fone-extra { font-size: 1rem !important; padding-right: 2.6rem !important; }
#cf-fones { margin-bottom: .75rem; }

/* CADASTRO DE CLIENTE/FORNECEDOR (Mateus, 03/10/2026): janela mais larga; cada linha com os campos na
   largura certa; CLIENTE / FORNECEDOR marcáveis no alto, no meio. */
dialog.janela-cliente { width: min(64rem, 96vw) !important; max-width: 96vw !important; }
dialog.janela-cliente .janela__corpo { text-transform: none; }
dialog.janela-cliente .cf-tipo { display: flex; justify-content: center; gap: 2.5rem; margin: 0 0 .6rem; }
/* Tela larga: cada linha inteira; tela estreita: os campos descem de linha (nada passa da borda). */
dialog.janela-cliente .linha { flex-wrap: nowrap; }
dialog.janela-cliente .cf-l2 { flex-wrap: wrap; }
dialog.janela-cliente .cf-bloco { display: flex; gap: inherit; flex: 1 1 auto; min-width: 0; }
dialog.janela-cliente .cf-bloco:first-child { flex: 0 0 auto; }
dialog.janela-cliente .linha > .campo, dialog.janela-cliente .cf-bloco > .campo { min-width: 0; }
/* Seleção da mesma altura das caixas de texto. */
dialog.janela-cliente select { height: 45px; box-sizing: border-box; }
dialog.janela-cliente .cf-c-fone { flex: 0 0 13rem; }
dialog.janela-cliente .cf-c-cod { flex: 0 0 7rem; }
dialog.janela-cliente .cf-c-nome { flex: 1 1 auto; }
dialog.janela-cliente .cf-c-ativo { flex: 0 0 7rem; }
dialog.janela-cliente .cf-c-cnpj { flex: 0 0 13rem; }
dialog.janela-cliente .cf-c-ie { flex: 0 0 13rem; }
dialog.janela-cliente .cf-c-cpf { flex: 0 0 11rem; }
dialog.janela-cliente .cf-c-rg { flex: 1 1 auto; }
dialog.janela-cliente .cf-c-cf { flex: 0 0 10rem; }
dialog.janela-cliente .cf-c-cep { flex: 0 0 9rem; }
dialog.janela-cliente .cf-c-end { flex: 1 1 auto; }
dialog.janela-cliente .cf-c-num { flex: 0 0 7rem; }
dialog.janela-cliente .cf-c-compl { flex: 1 1 50%; }
dialog.janela-cliente .cf-c-bairro { flex: 1 1 50%; }
dialog.janela-cliente .cf-c-cidade { flex: 1 1 auto; }
dialog.janela-cliente .cf-c-uf { flex: 0 0 7rem; }
dialog.janela-cliente #cf-ie { font-size: 1rem !important; padding-right: 2.6rem !important; }
dialog.janela-cliente input:disabled, dialog.janela-cliente select:disabled { opacity: .45; }
dialog.janela-cliente .cf-doc-aviso:empty, dialog.janela-cliente #cf-cep-aviso:empty { display: none; }
dialog.janela-cliente .cf-doc-aviso { text-align: center; margin: -.3rem 0 .6rem; font-weight: 700; }
dialog.janela-cliente fieldset.cf-endereco > legend { margin: 0 auto; text-align: center; padding: 0 .5rem; text-transform: uppercase; }
/* Botão do menu em 2 linhas: CLIENTES/ FORNECEDORES */
button[data-aba="clientes"] > span { line-height: 1.1; text-align: center; }
/* TELEFONE 2, 3... do MESMO tamanho do TELEFONE, e o ＋ e o − iguais. */
dialog.janela-cliente #cf-fones .cf-fone-campo { flex: 0 0 13rem !important; }
dialog.janela-cliente #cf-mais-fone, dialog.janela-cliente #cf-fones .com-lupa__botao { font-size: 1.15rem !important; font-weight: 900; width: 2.1rem; height: 2.1rem; padding: 0; }
dialog.janela-cliente .cf-bloco:first-child { flex: 1 1 auto; }
dialog.janela-cliente .cf-bloco .cf-c-ie { flex: 1 1 13rem; }
dialog.janela-cliente #cf-cnpj { font-size: 1rem !important; padding-right: 2.6rem !important; }
dialog.janela-cliente .cf-l2 { row-gap: 0 !important; }
dialog.janela-cliente .cf-c-cep { flex: 0 0 10.5rem; }
dialog.janela-cliente #cf-cep { font-size: 1rem !important; padding-right: 2.6rem !important; }

/* IDENTIFICAÇÃO NUMA LINHA SÓ (Mateus, 03/10/2026): CNPJ · IE · CPF · RG · CONSUMIDOR FINAL, cada um na
   proporção do que cabe nele (a IE não estica), e o CONSUMIDOR FINAL é uma caixinha no meio da sua coluna. */
dialog.janela-cliente .cf-l2 { flex-wrap: nowrap !important; }
dialog.janela-cliente .cf-l2 > .campo { min-width: 0; }
dialog.janela-cliente .cf-l2 .cf-c-cnpj { flex: 13 1 0 !important; }
dialog.janela-cliente .cf-l2 .cf-c-ie { flex: 10 1 0 !important; }
dialog.janela-cliente .cf-l2 .cf-c-cpf { flex: 10 1 0 !important; }
dialog.janela-cliente .cf-l2 .cf-c-rg { flex: 9 1 0 !important; }
dialog.janela-cliente .cf-l2 .cf-c-cf { flex: 0 0 auto !important; }
dialog.janela-cliente .cf-l2 input { font-size: .95rem !important; }
dialog.janela-cliente .cf-marca { display: flex; align-items: center; justify-content: center; height: 45px; }
dialog.janela-cliente .cf-marca input { width: 26px; height: 26px; margin: 0; accent-color: var(--primaria, #6c492e); cursor: pointer; }
/* Tela estreita: a mesma linha, com letra e folgas menores para caber tudo sem cortar. */
@media (max-width: 62rem) {
  dialog.janela-cliente .cf-l2 { gap: .35rem !important; }
  dialog.janela-cliente .cf-l2 input:not([type=checkbox]) { font-size: .8rem !important; padding-left: .3rem !important; padding-right: .3rem !important; }
  dialog.janela-cliente .cf-l2 #cf-cnpj { padding-right: 1.9rem !important; }
  dialog.janela-cliente .cf-l2 #cf-cnpj-buscar { width: 1.6rem; height: 1.8rem; font-size: .8rem; right: .15rem; }
  dialog.janela-cliente .cf-l2 > .campo > span:first-child { font-size: .68rem; white-space: nowrap; }
}
/* O documento em uso ganha espaço; o outro (travado) encolhe: CNPJ+IE preenchidos ou CPF+RG preenchidos cabem inteiros. */
dialog.janela-cliente .cf-l2.com-cnpj .cf-c-cnpj { flex: 19 1 0 !important; }
dialog.janela-cliente .cf-l2.com-cnpj .cf-c-ie { flex: 16 1 0 !important; }
dialog.janela-cliente .cf-l2.com-cnpj .cf-c-cpf, dialog.janela-cliente .cf-l2.com-cnpj .cf-c-rg { flex: 6 1 0 !important; }
dialog.janela-cliente .cf-l2.com-cpf .cf-c-cnpj, dialog.janela-cliente .cf-l2.com-cpf .cf-c-ie { flex: 7 1 0 !important; }
dialog.janela-cliente .cf-l2.com-cpf .cf-c-cpf, dialog.janela-cliente .cf-l2.com-cpf .cf-c-rg { flex: 14 1 0 !important; }

/* LISTA DE CLIENTES/FORNECEDORES (Mateus, 03/10/2026): nome - código; telefones embaixo; tipo bem à direita. */
#c-lista .item--cliente { display: flex !important; align-items: center; justify-content: space-between; gap: 1rem; text-transform: uppercase; }
#c-lista .cl-esq { min-width: 0; }
#c-lista .cl-fones { display: flex; flex-wrap: wrap; gap: .15rem 1.4rem; }
#c-lista .cl-tipo { flex: 0 0 auto; font-weight: 900; color: var(--primaria, #6c492e); text-align: right; }
.barra-acoes .botao--acao { text-transform: uppercase; }

/* NOVO PEDIDO: a pergunta do tipo (Mateus, 03/10/2026) -- DELIVERY · RETIRADA · NO LOCAL, três botões
   grandes do MESMO tamanho, no meio; FECHAR embaixo. */
dialog.janela-tipo-pedido { width: min(34rem, 94vw); }
dialog.janela-tipo-pedido .tipo-pedido { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: .6rem 0; }
dialog.janela-tipo-pedido .tipo-pedido__b { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem;
  height: 7rem; font-size: 1rem; font-weight: 900; text-transform: uppercase; }
dialog.janela-tipo-pedido .tipo-pedido__b > span { font-size: 2.2rem; line-height: 1; }

/* NOVO PEDIDO EM PASSOS (Mateus, 03/10/2026): 1 CLIENTE · 2 PRODUTOS + PEDIDO · 3 PAGAMENTO + PEDIDO. */
.janela-novo-delivery .nd__etapas { display: flex; justify-content: center; gap: .5rem; padding: .5rem .8rem 0; }
.janela-novo-delivery .nd__etapas > span { flex: 0 0 11rem; text-align: center; padding: .35rem 0; border-radius: 999px; font-weight: 900; font-size: .85rem;
  background: #f4eeea; color: #6b7a93; }
.janela-novo-delivery .nd__etapas > .nd__etapa--feita { background: #ece2da; color: #6c492e; }
.janela-novo-delivery .nd__etapas > .nd__etapa--atual { background: #6c492e; color: #fff; }
.janela-novo-delivery .nd__navega { display: flex; justify-content: center; gap: 1rem; padding: .6rem; border-top: 1px solid #f0e8e1; }
.janela-novo-delivery .nd__navega > .botao { flex: 0 0 11rem; height: 2.6rem; font-weight: 900; }
.janela-novo-delivery .nd__navega > [hidden] { display: none !important; }
.janela-novo-delivery .nd__recado { text-align: center; font-weight: 900; color: #1d7a3a; margin: 0 0 .6rem; }
/* passo 1: só o CLIENTE, no meio */
dialog.janela-novo-delivery[data-passo="1"] .janela__corpo.nd { grid-template-columns: minmax(0, 40rem) !important; justify-content: center; }
dialog.janela-novo-delivery[data-passo="1"] .nd__produtos,
dialog.janela-novo-delivery[data-passo="1"] .nd__pedido,
dialog.janela-novo-delivery[data-passo="1"] .nd__pagto { display: none !important; }
/* passo 2: PRODUTOS e o PEDIDO ao lado (sem os botões de gravar) */
dialog.janela-novo-delivery[data-passo="2"] .janela__corpo.nd { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) !important; }
dialog.janela-novo-delivery[data-passo="2"] .nd__cliente,
dialog.janela-novo-delivery[data-passo="2"] .nd__botoes { display: none !important; }
/* passo 3: PAGAMENTO e o PEDIDO ao lado (com IMPRIMIR · CANCELAR · GRAVAR) */
dialog.janela-novo-delivery[data-passo="3"] .janela__corpo.nd { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; }
dialog.janela-novo-delivery[data-passo="3"] .nd__produtos { display: none !important; }
dialog.janela-novo-delivery[data-passo="3"] .nd__cliente > :not(.nd__pagto) { display: none !important; }
@media (max-width: 860px) {
  dialog.janela-novo-delivery[data-passo="2"] .janela__corpo.nd,
  dialog.janela-novo-delivery[data-passo="3"] .janela__corpo.nd { grid-template-columns: 1fr !important; overflow-y: auto; }
}
/* A barra VOLTAR · FECHAR · AVANÇAR do novo pedido: em LINHA, botões do mesmo tamanho, sem esticar. */
dialog.janela-novo-delivery > .janela__pe.nd__navega { flex: 0 0 auto !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: 1rem !important; height: auto !important; }
dialog.janela-novo-delivery > .janela__pe.nd__navega > .botao { flex: 0 0 11rem !important; width: 11rem !important; height: 2.6rem !important; min-height: 0 !important; border-radius: 999px; }
.janela-novo-delivery .nd__pagto > .nd__titulo { text-align: center; margin-top: 0; }

/* BOTÕES DO PEDIDO (Mateus, 03/10/2026): TODOS DO MESMO TAMANHO, em todos os pedidos e em qualquer situação --
   a linha tem lugar para 7 botões iguais; com menos botões, eles NÃO esticam: ficam encostados à direita
   (o botão da próxima etapa sempre no fim). */
.pedido__acoes { display: flex !important; flex-wrap: nowrap !important; justify-content: flex-end !important; gap: .4rem !important; }
.pedido__acoes > .botao { flex: 0 0 calc((100% - 6 * .4rem) / 7) !important; width: calc((100% - 6 * .4rem) / 7) !important; min-width: 0 !important;
  height: 2.4rem !important; min-height: 0 !important; display: flex !important; align-items: center; justify-content: center; text-align: center;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; }

/* ENTREGA · QUEM VAI LEVAR (Mateus, 03/10/2026): botões iguais em grade, centralizados; o marcado fica azul. */
dialog.janela-entrega .se-titulo { text-align: center; font-weight: 800; font-size: .8rem; color: var(--apagado); margin: .4rem 0 .5rem; }
dialog.janela-entrega .se-quem { display: grid; grid-template-columns: repeat(2, 13rem); justify-content: center; gap: .6rem; }
dialog.janela-entrega .se-quem:has(> :only-child) { grid-template-columns: 13rem; }
dialog.janela-entrega .se-quem__b { height: 3.2rem; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.15;
  font-weight: 900; text-transform: uppercase; background: #f4eeea; color: #6c492e; border: 2px solid #e0d1c6; }
dialog.janela-entrega .se-quem__b small { font-weight: 700; font-size: .72rem; }
dialog.janela-entrega .se-quem__b--marcado { background: #6c492e !important; color: #fff !important; border-color: #6c492e !important; }
@media (max-width: 34rem) { dialog.janela-entrega .se-quem { grid-template-columns: 1fr; } }
dialog.janela-entrega .se-quem { grid-template-columns: repeat(2, 15rem); }
dialog.janela-entrega .se-quem:has(> :only-child) { grid-template-columns: 15rem; }
dialog.janela-entrega .se-quem__b { white-space: nowrap; padding: 0 .6rem; }
/* O TIPO (DELIVERY · RETIRADA · NO LOCAL) já foi escolhido na pergunta do NOVO e está no título:
   na tela em passos a escolha repetida não aparece (Mateus, 03/10/2026). */
dialog.janela-novo-delivery[data-passo] .nd__tipo { display: none !important; }

/* QUEM VAI LEVAR: a seleção e a caixinha PADRÃO na mesma linha, no meio (Mateus, 03/10/2026). */
dialog.janela-entrega .se-linha { display: flex; align-items: center; justify-content: center; gap: .8rem; }
dialog.janela-entrega .se-linha > select { flex: 0 1 18rem; height: 45px; }
dialog.janela-entrega .se-padrao { display: flex; align-items: center; gap: .4rem; font-weight: 900; font-size: .85rem; cursor: pointer; }
dialog.janela-entrega .se-padrao input { width: 22px; height: 22px; margin: 0; accent-color: #6c492e; }

/* MOTOBOY PADRÃO na lista (Mateus, 03/10/2026). */
.mb-padrao { display: inline-block; padding: .05rem .5rem; border-radius: 999px; background: #6c492e; color: #fff; font-weight: 900; font-size: .72rem; vertical-align: middle; }

/* GRADE DE HORÁRIOS (Mateus, 03/10/2026): uma linha por dia; nome à esquerda, horários no meio, ＋ à direita.
   Dia sem horário aparece FECHADO. */
.cfg-grade { margin-top: .4rem; }
.cfg-grade > legend { margin: 0 auto; text-align: center; padding: 0 .5rem; }
.cfg-dia { display: grid; grid-template-columns: 7rem 1fr 2.6rem; align-items: center; gap: .6rem; padding: .35rem 0; border-bottom: 1px dashed #e0d1c6; }
.cfg-dia:last-child { border-bottom: 0; }
.cfg-dia__nome { font-weight: 900; }
.cfg-dia__turnos { display: flex; flex-wrap: wrap; gap: .4rem .8rem; min-height: 2.4rem; align-items: center; }
.cfg-dia--fechado .cfg-dia__turnos::before { content: 'FECHADO'; font-weight: 900; color: #a33; }
.cfg-turno { display: inline-flex; align-items: center; gap: .35rem; }
.cfg-turno input[type=time] { width: 7.2rem; height: 2.4rem; text-align: center; }
.cfg-turno i { font-style: normal; font-weight: 800; font-size: .75rem; color: var(--apagado); }
.cfg-dia__mais, .cfg-turno__tirar { width: 2.4rem; height: 2.4rem; padding: 0; font-weight: 900; font-size: 1.1rem; }
.cfg-grade__acoes { display: flex; justify-content: center; padding-top: .5rem; }

/* TRIBUTAÇÕES e CONFERÊNCIA DE PRODUTOS foram para a tela FISCAL (Mateus, 03/10/2026). */
#aba-config #cfg-tributacoes, #aba-config #cfg-conferencia { display: none !important; }
/* TELA FISCAL: os botões do MESMO tamanho dos das OPÇÕES e INTEGRAÇÕES (150 × 56), fileira centralizada;
   texto comprido quebra em 2 linhas dentro do botão. */
#aba-fiscal .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; margin: 0; }
#aba-fiscal .barra-acoes > .botao {
  width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important; text-align: center;
  padding: .3rem .6rem !important; border-radius: 16px !important; font-size: .9rem !important; font-weight: 800 !important;
  white-space: normal !important; line-height: 1.15;
}
/* COMO ELE TRABALHA (motoboy, Mateus, 03/10/2026): as 8 opções em DUAS COLUNAS alinhadas, aos pares --
   SALÁRIO | DIÁRIA · DIÁRIA + ENTREGA FIXA | DIÁRIA + TAXA DO BAIRRO · POR ENTREGA FIXA | POR ENTREGA PELA TAXA DO
   BAIRRO · PACOTE | CRÉDITO + TAXA POR BAIRRO. */
.mb-pag fieldset.grupo > div { display: grid !important; grid-template-columns: 1fr 1fr; gap: .25rem 1.2rem !important; }
.mb-pag fieldset.grupo > div > label.marcavel { width: 100%; margin: 0; justify-content: flex-start !important; text-align: left !important; }
@media (max-width: 34rem) { .mb-pag fieldset.grupo > div { grid-template-columns: 1fr; } }
.mb-pag fieldset.grupo { min-width: 0 !important; max-width: 100%; box-sizing: border-box; }
.mb-pag fieldset.grupo > div { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mb-pag fieldset.grupo > div > label.marcavel, .mb-pag fieldset.grupo > div > label.marcavel span { white-space: normal !important; min-width: 0; }

/* FECHAR · GRAVAR das telas de OPÇÕES (Mateus, 03/10/2026): do MESMO tamanho (150 × 56), lado a lado, no meio. */
#aba-parametros .barra-acoes { gap: .6rem; }
#aba-parametros #par-fechar, .tela-fechar > .botao { width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  border-radius: 16px !important; font-size: .82rem !important; font-weight: 800 !important; }
.tela-fechar { display: flex !important; justify-content: center; margin-top: 1rem !important; }

/* SAIR / TROCAR (Mateus, 03/10/2026): texto no meio, botões do mesmo tamanho. */
dialog.janela-sair .sair-info { text-align: center; text-transform: uppercase; }
dialog.janela-sair .sair-info p { margin: .45rem 0; }

/* QUADROS (fieldset) COM FUNDO AZUL-CLARO (Mateus, 03/10/2026): o ENDEREÇO do cliente e todos os quadros das
   janelas se destacam do branco; os campos brancos ficam visíveis dentro. Borda mais forte. */
dialog fieldset.grupo { background: #f6f1ed !important; border: 1.5px solid #d2bba9 !important; border-radius: 12px; }
dialog fieldset.grupo > legend { background: #f6f1ed; border-radius: 8px; padding: 0 .6rem !important; color: #6c492e !important; font-weight: 900 !important; }
dialog fieldset.grupo input:not([type=checkbox]):not([type=radio]), dialog fieldset.grupo select, dialog fieldset.grupo textarea { background-color: #fff !important; }
/* RODAPÉ (Mateus, 03/10/2026): as palavras EMPRESA:, USUÁRIO: e GestorFoodMI em BRANCO puro; o resto continua azul-claro. */
.rodape .rodape__empresa > b, .rodape #rodape-usuario b, .rodape .rodape__sistema { color: #fff !important; }

/* TODO BOTÃO EM MAIÚSCULAS (Mateus, 03/10/2026) -- no sistema inteiro (painel e todas as janelas): EDITAR, GRAVAR,
   EXCLUIR, CANCELAR... Ficam como são só as MARCAS (iFood, Keeta, 99Food, Anota AI). */
body:has(#aba-pedidos) button:not(.botao--ifood):not(.botao--plataforma),
body:has(#aba-pedidos) a.botao, body:has(#aba-pedidos) .botao:not(.botao--ifood):not(.botao--plataforma) { text-transform: uppercase !important; }
/* EDITAR das listas (usuários, motoboys, impressoras): todos do MESMO tamanho, 110 × 34. */
[data-ed] { width: 110px !important; height: 34px !important; min-height: 34px !important; padding: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; font-weight: 800; }

/* JANELA DO USUÁRIO (Mateus, 03/10/2026): 3 linhas certinhas; o CAIXA só mostra (apagado). */
dialog.janela-usuario { width: min(58rem, 96vw) !important; }
dialog.janela-usuario .linha { flex-wrap: nowrap; }
dialog.janela-usuario .linha > .campo { margin: 0 !important; min-width: 0; }
dialog.janela-usuario .us-c-caixa { flex: 0 0 6.5rem; }
dialog.janela-usuario .us-c-nome { flex: 1 1 12rem; }
dialog.janela-usuario .us-c-perfil { flex: 0 0 11rem; }
dialog.janela-usuario .us-c-modo { flex: 0 0 15rem; }
dialog.janela-usuario .us-c-empresa { flex: 1 1 auto; }
dialog.janela-usuario .us-c-ativo { flex: 0 0 7rem; }
dialog.janela-usuario .us-l3 > * { flex: 1 1 0; }
dialog.janela-usuario .us-c-caixa input:disabled { background: #f2edea !important; color: #6b7a93 !important; border-color: #e0d5cc !important; cursor: not-allowed; }
@media (max-width: 52rem) { dialog.janela-usuario .us-l1 { flex-wrap: wrap; } dialog.janela-usuario .us-c-modo { flex: 1 1 100%; } }

/* PDV CEGO nos PARÂMETROS: a faixa cresce com a lista de usuários (caixinhas, uma embaixo da outra). */
#aba-parametros .par-item--lista { align-items: flex-start; height: auto !important; min-height: 64px; padding-top: .7rem; padding-bottom: .7rem; }
#aba-parametros .par-item--lista .par-nome small { display: block; font-size: .68rem; font-weight: 700; color: var(--apagado); margin-top: .2rem; }
#aba-parametros .par-cego { display: flex; flex-direction: column; align-items: flex-start; gap: .2rem; }
#aba-parametros .par-cego .marcavel { margin: 0; }

/* CAIXA DOS USUÁRIOS (PARÂMETROS): uma linha por usuário -- nome, CAIXA DE e PDV CEGO, alinhados em colunas. */
#aba-parametros .par-usu { display: flex; flex-direction: column; gap: .4rem; flex: 0 1 34rem; }
#aba-parametros .par-usu__linha { display: grid; grid-template-columns: minmax(0, 1fr) 15rem 8rem; align-items: center; gap: .6rem; }
#aba-parametros .par-usu__linha select { height: 40px; min-height: 40px; }
#aba-parametros .par-usu__linha .marcavel { margin: 0; white-space: nowrap; }
#aba-parametros .par-usu__nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 52rem) { #aba-parametros .par-item--lista { flex-direction: column; } #aba-parametros .par-usu { flex-basis: auto; width: 100%; } }
/* FECHAR SEMPRE NO FIM do rodapé das janelas (Mateus, 03/10/2026): NOVO · EXCLUIR · GRAVAR · FECHAR. */
.janela__pe > [data-fechar], .janela__pe > [data-x] { order: 99; }
/* EMPRESA: CNPJ · INSCRIÇÃO ESTADUAL · RAZÃO SOCIAL sempre na MESMA linha (Mateus, 03/10/2026). */
dialog.janela-empresa .linha:has(#em-cnpj) { flex-wrap: nowrap !important; }
dialog.janela-empresa .linha:has(#em-cnpj) > .campo { min-width: 0; }
dialog.janela-empresa .linha:has(#em-cnpj) > .campo:has(#em-cnpj) { flex: 0 1 13rem !important; }
/* + INSCRIÇÃO MUNICIPAL (NFS-e), do mesmo tamanho da estadual (03/10/2026). */
dialog.janela-empresa .linha:has(#em-cnpj) > .campo:has(#em-ie), dialog.janela-empresa .linha:has(#em-cnpj) > .campo:has(#em-im) { flex: 0 1 10rem !important; }
/* SMART POS: a caixinha (ativa) e a LIXEIRA alinhadas com os campos -- mesma altura (45 px), no meio da linha dos
   campos; lixeira quadrada arredondada do tamanho do campo (Mateus, 03/10/2026). */
.sp-maq { align-items: end !important; grid-template-columns: 2.2rem 1.2fr 1.2fr 1fr 1.1fr .9fr 1.3fr 45px !important; }
.sp-maq > .pg-ativo { align-self: end; height: 45px; display: flex !important; align-items: center; justify-content: center; margin: 0 !important; }
.sp-maq > .pg-ativo input { width: 22px; height: 22px; margin: 0; accent-color: #6c492e; }
.sp-maq > [data-mq-tirar] { align-self: end; width: 45px !important; height: 45px !important; min-height: 45px !important; padding: 0 !important;
  border-radius: 12px !important; display: inline-flex !important; align-items: center; justify-content: center; margin: 0 !important; }
.sp-maq .campo input, .sp-maq .campo select { height: 45px; box-sizing: border-box; }
.pg-tef .linha > .campo:has(#sp-srv) { flex: 0 0 24rem !important; }
.pg-tef .linha > .campo:has(#sp-srv) > span { white-space: nowrap; }
.sp-maq > .campo { margin: 0 !important; }
/* FORMAS DE PAGAMENTO: lixeiras quadradas arredondadas do tamanho dos campos da linha e caixinhas iguais (22 px). */
.pg-ativo input, .pg-cond input[type=checkbox] { width: 22px !important; height: 22px !important; margin: 0; accent-color: #6c492e; }
.pg-cond { align-items: center !important; }
.pg-cond > select { height: 34px; box-sizing: border-box; }
.pg-cond__tirar { width: 34px !important; height: 34px !important; min-height: 34px !important; padding: 0 !important; border-radius: 10px !important; display: inline-flex !important; align-items: center; justify-content: center; }
.pg-linha [data-tirar], .pg-linha [data-op-tirar], [data-op-tirar] { width: 40px !important; height: 40px !important; min-height: 40px !important; padding: 0 !important; border-radius: 12px !important; display: inline-flex !important; align-items: center; justify-content: center; }
.pg-linha input, .pg-linha select { height: 40px; box-sizing: border-box; }
.pg-cond__tirar { width: 40px !important; height: 40px !important; min-height: 40px !important; }
.pg-cond > select { height: 40px !important; }
.pg-ativo, .pg-cond > label { display: flex !important; align-items: center; justify-content: center; align-self: center; height: 40px; margin: 0; }

/* ABERTURA DE CAIXA: USUÁRIO (seleção) · CAIXA · EMPRESA numa linha; CAIXA e EMPRESA só mostram (apagados). */
dialog.janela-abertura .ab-l1 { flex-wrap: nowrap; }
dialog.janela-abertura .linha > .campo { margin: 0 !important; min-width: 0; }
dialog.janela-abertura .ab-c-usu { flex: 1 1 12rem; }
dialog.janela-abertura .ab-c-cx { flex: 0 0 7rem; }
dialog.janela-abertura .ab-c-emp { flex: 1 1 12rem; }
dialog.janela-abertura .ab-c-troco { flex: 0 0 12rem; }
dialog.janela-abertura input:disabled { background: #f2edea !important; color: #6b7a93 !important; border-color: #e0d5cc !important; cursor: not-allowed; }
/* ABERTURA: as 4 coisas na MESMA linha (Mateus, 03/10/2026); janela mais larga para a empresa caber. */
dialog.janela-abertura { width: min(64rem, 96vw) !important; }
dialog.janela-abertura .ab-c-usu { flex: 1 1 11rem; }
dialog.janela-abertura .ab-c-emp { flex: 2 1 14rem; }
dialog.janela-abertura .ab-c-troco { flex: 0 0 11rem; }
dialog.janela-abertura .ab-c-troco > span:first-child { white-space: nowrap; }
dialog.janela-abertura .ab-c-troco { flex: 0 0 9rem !important; }
/* ABRIR CAIXA: VERDE com letras BRANCAS, em maiúsculas (Mateus, 03/10/2026). */
#pdv-abrir { background: #1f8f4e !important; border-color: #1f8f4e !important; color: #fff !important; text-transform: uppercase; }
#pdv-abrir:hover { background: #18773f !important; border-color: #18773f !important; }
/* VALOR: o número sempre ALINHADO À DIREITA, o R$ na frente (regra de 01/10/2026). */
.com-simbolo > input { text-align: right !important; }

/* RELATÓRIOS DO CAIXA (conferência, 03/10/2026): os caixas do dia, cada um com 3 botões iguais para reimprimir. */
.janela-relatorio .rel-titulo { text-align: center; font-size: .85rem; font-weight: 900; color: #6c492e; margin: .8rem 0 .4rem; }
.janela-relatorio .rel-sessoes { display: flex; flex-direction: column; gap: .4rem; }
.janela-relatorio .rel-sessao { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .5rem .7rem; background: #f6f1ed; border: 1.5px solid #d2bba9; border-radius: 12px; flex-wrap: wrap; }
.janela-relatorio .rel-sessao__info { display: flex; flex-direction: column; min-width: 0; }
.janela-relatorio .rel-sessao__info span { font-size: .78rem; color: var(--apagado); font-weight: 700; }
.janela-relatorio .rel-sessao__botoes { display: flex; gap: .4rem; }
.janela-relatorio .rel-sessao__botoes .botao { width: 9.5rem; height: 2.4rem; padding: 0 .3rem; font-size: .72rem; font-weight: 900; line-height: 1.1; white-space: normal; }
/* FECHAR CAIXA: VERMELHO com letras BRANCAS (Mateus, 03/10/2026). */
#pdv-fechar, #pdv-ok, #sx-fechar { background: #a32d2d !important; border-color: #a32d2d !important; color: #fff !important; text-transform: uppercase; }
#pdv-fechar:hover, #pdv-ok:hover, #sx-fechar:hover { background: #8a2424 !important; border-color: #8a2424 !important; }
/* FECHAR CAIXA do tamanho da frase, no meio da tela (Mateus, 03/10/2026). */
.pdv-botoes > #pdv-fechar { width: auto !important; min-width: 0 !important; max-width: none !important; flex: 0 0 auto !important; justify-self: center !important; align-self: center; margin-left: auto !important; margin-right: auto !important; padding: 0 2.2rem !important; grid-column: 1 / -1; }
/* FECHAR CAIXA numa linha só dele, no MEIO, do tamanho da frase. */
.pdv-fechar-linha { display: flex; justify-content: center; margin-top: .6rem; }
.pdv-fechar-linha > #pdv-fechar { width: auto !important; flex: 0 0 auto !important; padding: 0 2.4rem !important; height: 2.4rem; }
/* PDV: os 6 botões (VOLTAR · VENDA DIRETA · NOTAS · RELATÓRIO · IMPORTAR PEDIDOS · FECHAR CAIXA) TODOS DO MESMO
   TAMANHO -- grade de 3 colunas iguais (6 numa linha em tela larga). FECHAR CAIXA vermelho com letras brancas. */
dialog.janela-pdv .pdv-botoes { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: .5rem !important; }
@media (min-width: 75rem) { dialog.janela-pdv .pdv-botoes { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; } }
dialog.janela-pdv .pdv-botoes > .botao, dialog.janela-pdv .pdv-botoes > #pdv-fechar { width: auto !important; min-width: 0 !important; height: 2.6rem !important; padding: 0 .4rem !important;
  margin: 0 !important; justify-self: stretch !important; grid-column: auto !important; flex: none !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* VISUALIZAR: o rodapé da Mateus em letra pequena e no meio, como sai no papel (fonte B). */
.previa-papel__pe { text-align: center; font-size: .72em; line-height: 1.3; white-space: normal; margin-top: .3rem; }
/* RELATÓRIOS DO CAIXA: em cada caixa, a informação em cima e os 3 botões NO MEIO, embaixo (Mateus, 03/10/2026). */
.janela-relatorio .rel-sessao { flex-direction: column !important; align-items: center !important; text-align: center; }
.janela-relatorio .rel-sessao__info { align-items: center; }
.janela-relatorio .rel-sessao__botoes { justify-content: center !important; width: 100%; }

/* RELATÓRIOS DO CAIXA: PERÍODO com DATA INICIAL e DATA FINAL lado a lado, no meio. */
.janela-relatorio .rel-periodo-rot { text-align: center; font-weight: 900; color: #6c492e; margin: 0 0 .3rem; }
.janela-relatorio .rel-periodo { justify-content: center !important; flex-wrap: nowrap; gap: .8rem; }
.janela-relatorio .rel-periodo > .campo { flex: 0 0 11rem !important; margin: 0 !important; }
/* NOTAS: o filtro (DOCUMENTO · DATA INICIAL · DATA FINAL · BUSCAR) no MEIO, tudo na mesma altura. */
.janela-notas .nf-filtro { display: flex !important; justify-content: center !important; align-items: flex-end !important; gap: .6rem; flex-wrap: wrap; }
.janela-notas .nf-filtro > .campo { flex: 0 0 10.5rem !important; margin: 0 !important; }
.janela-notas .nf-filtro > .campo:first-child { flex-basis: 9rem !important; }
.janela-notas .nf-filtro > .botao { height: 45px; padding: 0 1.4rem; }
.janela-notas .nf-filtro select, .janela-notas .nf-filtro input { height: 45px; box-sizing: border-box; }
.janela-notas .nf-docs { display: flex; gap: .9rem; align-items: center; height: 45px; align-self: flex-end; }
.janela-notas .nf-docs .marcavel { margin: 0; }
.janela-notas .nf-docs input { width: 22px; height: 22px; accent-color: #6c492e; }
.janela-notas .nf-filtro > .botao { height: 45px !important; min-height: 45px !important; align-self: flex-end !important; margin: 0 !important; }

/* A TELA IGUAL AO PAPEL: 48 colunas exatas, negrito onde o papel tem negrito, título no tamanho real. */
.previa-igual { white-space: pre; width: 48ch; max-width: 100%; margin: 0 auto; font-size: .82rem; overflow-x: auto; }
.previa-igual b { font-weight: 800; }
.previa-igual .pp-c { text-align: center; white-space: pre; }
.previa-igual .pp-tit { line-height: 1.1; margin: .1rem 0 .25rem; }
.previa-igual .pp-dobro { font-size: 2em; }
.previa-igual .pp-alto b { display: inline-block; transform: scaleY(2); margin: .45em 0; }
.previa-igual .pp-pe { font-size: .75em; line-height: 1.35; white-space: normal; }
/* VISUALIZAR sem barra de rolagem: a janela tem a largura do papel (48 colunas + margem) e nada passa dos lados. */
dialog.janela-previa { width: auto !important; max-width: 96vw; }
.previa-igual { overflow: hidden !important; width: 48ch !important; box-sizing: content-box; padding-left: 1rem !important; padding-right: 1rem !important; }
.previa-igual > div { overflow: hidden; }
@media (max-width: 34rem) { .previa-igual { font-size: 2.4vw !important; } }

/* FORMAS DE PAGAMENTO: cabeçalho de cada canal (EMPRESA, IFOOD, KEETA, 99FOOD, ANOTA AI) AZUL-ESCURO, nome NO MEIO e a
   caixinha USA à direita (Mateus, 03/10/2026). */
.pg-canal { position: relative; display: flex !important; justify-content: center !important; align-items: center; background: #3a2719 !important; color: #fff !important; }
.pg-canal__nome { font-weight: 900; }
.pg-canal__usa { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: .35rem; font-weight: 900; font-size: .8rem; cursor: pointer; }
.pg-canal__usa input { width: 20px; height: 20px; margin: 0; accent-color: #be9b81; }
.pg-canal { min-height: 2.6rem; padding: 0 3.5rem !important; box-sizing: border-box; }
.pg-canal > .pg-canal__nome { position: static !important; transform: none !important; margin: 0 auto !important; font-size: .95rem; color: #fff !important; background: none !important; }
.pg-canal__usa > span { position: static !important; transform: none !important; margin: 0 !important; color: #fff !important; background: none !important; font-size: .8rem; }

/* PASTA PADRÃO DOS XML: o caminho (só leitura) e o SELECIONAR; janela de pastas do servidor. */
#aba-parametros .par-pasta { display: flex; gap: .4rem; flex: 0 1 26rem !important; }
#aba-parametros .par-pasta input { flex: 1 1 auto; min-width: 0; height: 40px; text-transform: none; }
#aba-parametros .par-pasta .botao { flex: 0 0 auto; height: 40px; padding: 0 .9rem; }
dialog.janela-pasta { width: min(36rem, 94vw); }
dialog.janela-pasta .pasta-atual { text-align: center; font-weight: 900; color: #6c492e; margin: 0 0 .5rem; word-break: break-all; }
dialog.janela-pasta .pasta-lista { display: flex; flex-direction: column; gap: .3rem; max-height: 50vh; overflow-y: auto; }
dialog.janela-pasta .pasta-item { justify-content: flex-start !important; text-align: left; text-transform: none !important; height: 2.4rem; }
.trb-abas[hidden], .trb-pe[hidden] { display: none !important; }

/* EMPRESA (Mateus, 03/10/2026): TUDO EM MAIÚSCULAS (rótulos, certificado, teste da SEFAZ); tamanhos e organização iguais.
   O que se digita nos campos fica como foi digitado. */
dialog.janela-empresa { text-transform: uppercase; }
dialog.janela-empresa input, dialog.janela-empresa textarea { text-transform: none; }
dialog.janela-empresa #em-cnae, dialog.janela-empresa #em-atividade { text-transform: uppercase; }
/* EMISSÃO DE NOTAS: 7 campos (ambiente + NFC-e, NF-e, NFS-e) dividindo a linha toda, centralizados (03/10/2026). */
dialog.janela-empresa .em-emissao { justify-content: center; flex-wrap: nowrap; }
dialog.janela-empresa .em-emissao > .campo { flex: 1 1 0 !important; min-width: 0; }
dialog.janela-empresa .em-emissao > .campo:first-child { flex: 1.5 1 0 !important; }
dialog.janela-empresa .em-emissao > .campo > span { text-align: center; white-space: nowrap; }
dialog.janela-empresa .em-emissao input { text-align: center; }

/* TABELAS FISCAIS · REFORMA TRIBUTÁRIA 2026 A 2033 (Mateus, 03/10/2026): o botão ao lado do campo da tabela e o
   cronograma em 7 colunas centralizadas; o ano de hoje em destaque. */
.trb-grade--topo:has(#trb-reforma) { display: flex !important; gap: .6rem; align-items: start; justify-content: center; }
.trb-grade--topo:has(#trb-reforma) > .trb-escolha { flex: 1 1 auto; min-width: 0; }
.trb-reforma-bt { flex: 0 0 auto; height: 2.7rem; white-space: nowrap; background: #3a2719 !important; color: #fff !important; font-weight: 900; }
.rf-tabela { display: flex; flex-direction: column; gap: .25rem; margin-top: .4rem; }
.rf-linha { display: grid; grid-template-columns: 4.5rem 1.6fr 1fr 1fr 1fr 1.2fr 1fr; gap: .4rem; align-items: center; text-align: center;
  padding: .55rem .4rem; border: 1px solid #e7dad0; border-radius: 10px; background: #fff; font: inherit; color: inherit; cursor: pointer; width: 100%; }
.rf-linha--cab { background: #3a2719; color: #fff; font-weight: 900; font-size: .8rem; cursor: default; }
.rf-linha--hoje { border: 2px solid #1f9d55; background: #eefaf2; }
.rf-linha b { font-size: 1.1rem; }
.rf-eventos { padding: .5rem 1rem .7rem; margin: -.15rem .3rem .2rem; background: #fbf8f6; border-radius: 0 0 10px 10px; font-size: .85rem; line-height: 1.5; }
.rf-lei { margin-top: .3rem; font-weight: 800; color: #6c492e; }
.rf-obs { margin-top: .6rem; text-align: center; font-size: .75rem; font-weight: 700; color: #6b7a90; }
/* CONFIGURAÇÕES DO DELIVERY numa linha só, os quatro campos do mesmo tamanho, centralizados (03/10/2026). */
.cfg-delivery { flex-wrap: nowrap !important; justify-content: center; }
.cfg-delivery > .campo:not([hidden]) { flex: 1 1 0 !important; min-width: 0; }
.cfg-delivery > .campo > span { text-align: center; white-space: nowrap; }
.cfg-delivery input, .cfg-delivery select { text-align: center; text-align-last: center; }
/* E-MAIL SEMPRE EM MINÚSCULAS em todo o sistema (03/10/2026), mesmo dentro de telas em MAIÚSCULAS. */
input[type=email], input[id*=email], input.minusculas { text-transform: lowercase !important; }

/* PIX: CHAVE · NOME DA CHAVE · QR CODE na mesma linha; o botão na altura dos campos (03/10/2026). */
dialog.janela-empresa .em-pix-linha { align-items: flex-end; flex-wrap: nowrap; }
dialog.janela-empresa .em-pix-qr { flex: 0 0 9rem; height: 45px; margin: 0; }
dialog.janela-pix-qr { width: min(24rem, 94vw); }
.pix-qr { display: flex; flex-direction: column; align-items: center; gap: .3rem; text-align: center; }
.pix-qr__img svg { width: 15rem; height: 15rem; display: block; }
.pix-qr__tipo { font-size: .75rem; font-weight: 900; color: #6b7a90; }
.pix-qr__chave { font-size: 1.1rem; font-weight: 900; color: #3a2719; text-transform: none; }
.pix-qr__nome { font-weight: 800; }

/* PASTA DOS XML: só o SELECIONAR à direita; escolhida, o NOME da pasta escrito à esquerda, sem caixa (03/10/2026). */
#aba-parametros .par-pasta { justify-content: flex-end; align-items: center; }
#aba-parametros .par-pasta input { border: 0 !important; background: transparent !important; box-shadow: none !important; text-align: right; font-weight: 800; color: #3a2719; }
/* PIX: o QR CODE na mesma base dos campos (os campos têm 12 px embaixo). */
dialog.janela-empresa .em-pix-qr { margin-bottom: 12px !important; }

/* TRIBUTAÇÕES: as três partes em abas do mesmo tamanho, centralizadas; OPERAÇÕES E CFOP em tabelas limpas (03/10/2026). */
.trb-abas.trb-abas--3 { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: .5rem; padding: .6rem 1rem 0; }
.trb-abas.trb-abas--3 > .nd__modo { width: 100%; justify-content: center; text-align: center; }
.op { display: flex; flex-direction: column; gap: 1rem; }
.op-titulo { text-align: center; font-weight: 900; color: #3a2719; margin-bottom: .35rem; }
.op-linha { display: grid; grid-template-columns: 6rem repeat(calc(var(--cols) - 1), 1fr); gap: .4rem; align-items: center; text-align: center;
  padding: .5rem .4rem; border: 1px solid #e7dad0; border-radius: 10px; background: #fff; margin-bottom: .25rem; }
.op-linha--cab { background: #3a2719; color: #fff; font-weight: 900; font-size: .8rem; }
/* OPERAÇÕES E CFOP em TRÊS COLUNAS lado a lado (ICMS · PIS/COFINS · REFORMA), aproveitando a tela (03/10/2026). */
.op { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; align-items: start; }
.op-linha { grid-template-columns: 3.5rem repeat(calc(var(--cols) - 1), minmax(0, 1fr)); font-size: .85rem; padding: .45rem .3rem; }
.op-linha span { overflow-wrap: anywhere; }
@media (max-width: 60rem) { .op { grid-template-columns: 1fr; } }
/* TELA RELATÓRIOS (Mateus, 03/10/2026): os mesmos botões da tela CADASTROS -- mesmo tamanho, letra e grade no meio. */
#aba-relatorios .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; margin: 0; }
#aba-relatorios .barra-acoes > .botao {
  width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  display: inline-flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: .4rem !important;
  text-align: center !important; padding: .3rem .6rem !important; border-radius: 16px !important; text-decoration: none;
  font-size: .82rem !important; font-weight: 800 !important; line-height: 1.15 !important; text-transform: uppercase !important;
  background: var(--creme, #f0e9e3); color: #281b11 !important;
}
#aba-relatorios .barra-acoes > .botao svg { width: 20px !important; height: 20px !important; flex: 0 0 auto; }
#aba-relatorios .barra-acoes > .botao span { display: inline !important; font-size: inherit !important; white-space: normal !important; }
/* NOVO PEDIDO (Mateus, 03/10/2026): DELIVERY · RETIRADA · NO LOCAL no TAMANHO PADRÃO dos botões (150 × 56, o mesmo
   das telas CADASTROS e RELATÓRIOS) e o símbolo AO LADO do nome, não em cima. */
dialog.janela-tipo-pedido { width: auto !important; }
dialog.janela-tipo-pedido .tipo-pedido { display: flex !important; justify-content: center; gap: .6rem; padding: .4rem 0; }
dialog.janela-tipo-pedido .tipo-pedido__b { flex: 0 0 150px !important; width: 150px !important; height: 56px !important; min-height: 0 !important;
  flex-direction: row !important; gap: .45rem !important; padding: .3rem .6rem !important; border-radius: 16px !important;
  font-size: .82rem !important; font-weight: 800 !important; }
dialog.janela-tipo-pedido .tipo-pedido__b > span { font-size: 1.25rem !important; }
dialog.janela-tipo-pedido { width: fit-content !important; min-width: 0 !important; max-width: 94vw; }
dialog.janela-tipo-pedido .janela__corpo { padding-left: 1.2rem; padding-right: 1.2rem; }

/* NOVO PEDIDO NUMA TELA SÓ (Mateus, 03/10/2026): CLIENTE · PRODUTOS · PEDIDO em três colunas; o PAGAMENTO embaixo do
   PEDIDO, por último; IMPRIMIR · GRAVAR PEDIDO · FECHAR no pé. O tipo já veio da pergunta (está no título). */
dialog.janela-novo-delivery[data-uma-tela] .janela__corpo.nd { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr) !important; gap: 1rem; }
dialog.janela-novo-delivery[data-uma-tela] .nd__tipo { display: none !important; }
dialog.janela-novo-delivery[data-uma-tela] .janela__barra [data-fechar] { display: none !important; }
.janela-novo-delivery .nd__pedido .nd__pagto { margin-top: .6rem; padding-top: .5rem; border-top: 2px solid #6c492e; }
@media (max-width: 860px) { dialog.janela-novo-delivery[data-uma-tela] .janela__corpo.nd { grid-template-columns: 1fr !important; overflow-y: auto; } }
/* TRIBUTAÇÕES em QUATRO abas do mesmo tamanho (03/10/2026). */
.trb-abas.trb-abas--4 { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: .5rem; padding: .6rem 1rem 0; }
.trb-abas.trb-abas--4 > .nd__modo { width: 100%; justify-content: center; text-align: center; white-space: nowrap; }
.trb-abas.trb-abas--4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
.trb-abas.trb-abas--4 > .nd__modo { min-width: 0; overflow: hidden; text-overflow: ellipsis; padding-left: .3rem; padding-right: .3rem; }
/* NOVO PEDIDO: SEMPRE em três colunas, em qualquer largura -- 1 CLIENTE · 2 GRUPOS/PRODUTOS · 3 o PEDIDO sendo montado
   (com o pagamento embaixo). Mateus, 03/10/2026. */
@media (max-width: 860px) { dialog.janela-novo-delivery[data-uma-tela] .janela__corpo.nd { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1fr) !important; } }
dialog.janela-novo-delivery[data-uma-tela] { width: min(96vw, 110rem) !important; }
dialog.janela-novo-delivery[data-uma-tela] .janela__corpo.nd > section { min-width: 0; overflow-y: auto; }
/* A coluna do PEDIDO nunca rola de lado: os botões dividem a largura e a linha da taxa quebra se precisar. */
dialog.janela-novo-delivery[data-uma-tela] .nd__pedido { overflow-x: hidden !important; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes { display: flex !important; flex-wrap: wrap; gap: .4rem; justify-content: center; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes > .botao { flex: 1 1 7rem !important; min-width: 0 !important; width: auto !important; padding-left: .4rem; padding-right: .4rem; white-space: nowrap; }
dialog.janela-novo-delivery[data-uma-tela] .nd__taxa { flex-wrap: wrap; row-gap: .3rem; }

/* NOVO PEDIDO · PROCURAR EM em três botões iguais; o marcado com fundo azul (TODOS já vem marcado). */
.nd__procurar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
.nd__procurar-b { height: 40px; border-radius: 12px; border: 2px solid #e0d1c6; background: #f4eeea; color: #6c492e; font: inherit; font-weight: 900; font-size: .78rem;
  cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 .3rem; }
.nd__procurar-b--sel { background: #6c492e; color: #fff; border-color: #6c492e; }
/* As três colunas com os TÍTULOS na mesma altura e os botões do pedido numa linha só, do mesmo tamanho. */
dialog.janela-novo-delivery[data-uma-tela] .janela__corpo.nd > section { padding-top: .4rem !important; margin-top: 0 !important; }
dialog.janela-novo-delivery[data-uma-tela] .janela__corpo.nd > section > .nd__titulo:first-child { margin-top: 0 !important; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes > .botao { width: 100% !important; height: 2.6rem !important; font-size: .78rem !important; }

/* TRIBUTAÇÕES · TABELAS: o campo da tabela ocupa a largura toda (Mateus, 03/10/2026). */
.janela-tributacoes .trb-grade--topo { grid-template-columns: 1fr !important; }
.janela-tributacoes .trb-grade--topo > .trb-escolha { width: 100%; }

/* NOVO PEDIDO: tudo do cliente no QUADRO AZUL (endereço, complemento, ponto de referência, e-mail) e as OBSERVAÇÕES em
   três linhas logo abaixo (Mateus, 03/10/2026). */
.nd__resumo-email { text-transform: lowercase !important; }
.janela-novo-delivery .nd__obs textarea { width: 100%; box-sizing: border-box; min-height: 4.6rem; resize: vertical; border: 2px solid #c8ab95; border-radius: 12px;
  padding: .4rem .6rem; font: inherit; text-transform: uppercase; }

/* NOVO PEDIDO: sem o rótulo PROCURAR EM -- TODOS · CLIENTES · FORNECEDORES na MESMA LINHA e ALTURA de GRUPOS · PRODUTOS. */
.janela-novo-delivery .nd__procurar-campo { margin: 0 0 .5rem !important; }
.janela-novo-delivery .nd__linha--uma:has(.nd__procurar-campo) { margin-top: 0 !important; }

/* NOVO PEDIDO: TODOS · CLIENTES · FORNECEDORES na mesma altura e no mesmo topo de GRUPOS · PRODUTOS (42 px). */
.janela-novo-delivery .nd__procurar-b { height: 42px !important; }
.janela-novo-delivery .nd__procurar-campo { margin-top: 3px !important; }
/* NOME sem o ＋ ao lado: o campo ocupa a linha toda. */
.janela-novo-delivery #nd-cadastrar[hidden] { display: none !important; }

/* NOVO PEDIDO: CONCLUIR · VENDER · VOLTAR, os três do mesmo tamanho numa linha. */
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes > [hidden] { display: none !important; }

/* 💾 BACKUP DIÁRIO (PARÂMETROS): o horário e o FAZER AGORA na mesma linha; o último backup embaixo do nome. */
#aba-parametros .par-bkp { display: flex; gap: .4rem; align-items: center; justify-content: flex-end; }
#aba-parametros .par-bkp input[type=time] { height: 40px; width: 7.5rem; text-align: center; }
#aba-parametros .par-bkp .botao { height: 40px; padding: 0 .9rem; flex: 0 0 auto; }
#aba-parametros .par-nome small { display: block; font-size: .7rem; font-weight: 800; color: #1d7a3a; margin-top: .15rem; }
#aba-parametros .par-nome small.erro { color: #c0392b; }
dialog.janela-pasta { width: min(36rem, 94vw); }
dialog.janela-pasta .pasta-atual { text-align: center; font-weight: 900; color: #6c492e; margin: 0 0 .5rem; word-break: break-all; }
dialog.janela-pasta .pasta-lista { display: flex; flex-direction: column; gap: .3rem; max-height: 50vh; overflow-y: auto; }
dialog.janela-pasta .pasta-item { justify-content: flex-start !important; text-align: left; height: 2.4rem; }
#aba-parametros .par-item[hidden] { display: none !important; }

/* NOVO PEDIDO · os itens mais à vista e o EDITOR DO ITEM (quantidade e valor) embaixo da lista (Mateus, 03/10/2026). */
.janela-novo-delivery .nd__cupom-item { font-size: .9rem; padding: .3rem .35rem; border-radius: 8px; cursor: pointer; }
.janela-novo-delivery .nd__cupom-item--sel { background: #f0e9e3 !important; outline: 2px solid #6c492e; }
.nd__editor { margin: .5rem 0; padding: .5rem .6rem; border: 2px solid #6c492e; border-radius: 12px; background: #fff; }
.nd__editor[hidden] { display: none !important; }
.nd__ed-nome { text-align: center; font-weight: 900; color: #3a2719; margin-bottom: .35rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd__ed-linha { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, .8fr); gap: .4rem; align-items: end; }
.nd__ed-campo { display: flex; flex-direction: column; gap: .2rem; text-align: center; min-width: 0; }
.nd__ed-campo > span:first-child { font-size: .68rem; font-weight: 800; color: var(--apagado); white-space: nowrap; }
.nd__ed-qtd { display: grid; grid-template-columns: 2rem minmax(0, 1fr) 2rem; gap: .2rem; }
.nd__ed-qtd input, .nd__editor .com-simbolo input { height: 38px; text-align: center; min-width: 0; width: 100%; box-sizing: border-box; font-weight: 800; }
.nd__ed-mm { height: 38px; border: 0; border-radius: 10px; background: #6c492e; color: #fff; font-size: 1.2rem; font-weight: 900; cursor: pointer; }
.nd__ed-total b { display: flex; align-items: center; justify-content: center; height: 38px; font-size: 1rem; color: #3a2719; white-space: nowrap; }
/* NOVO PEDIDO: VOLTAR · IMPORTAR · CONCLUIR · VENDER -- quatro iguais na largura da coluna, nunca estouram. */
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes { grid-template-columns: repeat(var(--nb, 4), minmax(0, 1fr)) !important; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes > .botao { min-width: 0 !important; padding: 0 .25rem !important; font-size: clamp(.62rem, .9vw, .78rem) !important;
  overflow: hidden; text-overflow: clip; white-space: nowrap; letter-spacing: -.01em; }
/* PAGAMENTO: só o rótulo pequeno em cima ("PAGAMENTO:") e o SELECIONE -- sem o título grande (Mateus, 03/10/2026). */
.janela-novo-delivery .nd__pedido .nd__pagto > .nd__titulo { display: none !important; }
.janela-novo-delivery .nd__pedido .nd__pagto { border-top: 0 !important; padding-top: 0 !important; margin-top: .4rem !important; }

/* FORMAS DE PAGAMENTO na lista: alinhadas à ESQUERDA -- o código e o nome em NEGRITO, a condição ao lado, menor. */
.janela-novo-delivery #nd-pag { text-align: left !important; text-align-last: left !important; padding-left: .7rem; }
.seletor__item--duas { text-align: left !important; display: flex; align-items: baseline; gap: .5rem; }
.seletor__item--duas > b { font-weight: 900; }
.seletor__det { font-weight: 500; font-size: .82em; opacity: .85; }
/* NOVO PEDIDO: VOLTAR · CONCLUIR · VENDER (3) e, na VENDA DIRETA, VOLTAR · IMPORTAR · GRAVAR VENDA. */
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes { --nb: 3; }
dialog.janela-fim .janela__pe { display: flex; justify-content: center; gap: .6rem; }
dialog.janela-fim .janela__pe > .botao { flex: 0 0 9rem; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes { width: 100% !important; box-sizing: border-box; }
dialog.janela-novo-delivery[data-uma-tela] .nd__pe-pedido { width: 100%; }
/* IMPRESSORA · GRUPOS e PRODUTOS: a lista SEMPRE ABERTA, esticada, cada item com a caixinha à esquerda (03/10/2026). */
.sel-marca--sempre > .sel-marca__campo { display: none !important; }
.sel-marca--sempre > .sel-marca__lista { display: block !important; position: static !important; margin: 0; box-shadow: none; }
.janela-impressoras .sel-marca--sempre .sel-marca__itens { max-height: 18rem; }
.sel-marca--sempre .sel-marca__itens > .marcavel, .sel-marca--sempre .sel-marca__todos { display: flex !important; justify-content: flex-start !important; text-align: left !important; align-items: center; gap: .5rem; width: 100%; }
.sel-marca--sempre .sel-marca__itens > .marcavel > span, .sel-marca--sempre .sel-marca__todos > span { text-align: left !important; }

/* VENDA DIRETA: a linha da TELE aparece (vem ISENTA) e o CPF/CNPJ é pedido no fim. */
dialog.janela-novo-delivery.nd--balcao #nd-t-taxa { display: flex !important; }
dialog.janela-novo-delivery.nd--balcao .nd-venda label[hidden] { display: none !important; }
dialog.janela-cpf-fim .cf-nome { text-align: center; font-weight: 900; color: #1d7a3a; min-height: 1.3em; margin-top: .3rem; }
dialog.janela-cpf-fim .janela__pe { display: flex; justify-content: center; gap: .5rem; }

/* OPÇÕES na barra do título, à direita (em cima do PEDIDO / VENDA DIRETA); o menu abre embaixo. */
dialog.janela-novo-delivery > .janela__barra { position: relative; }
.nd__opcoes { position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); z-index: 5; }
.nd__opcoes-bt { height: 32px; padding: 0 1rem; border-radius: 999px; border: 2px solid #d1b9a6; background: #6c492e; color: #fff; font: inherit; font-weight: 900; font-size: .8rem; cursor: pointer; }
.nd__opcoes-menu { position: absolute; right: 0; top: calc(100% + 6px); min-width: 17rem; background: #fff; border: 2px solid #6c492e; border-radius: 12px; padding: .35rem; display: flex; flex-direction: column; gap: .25rem; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.nd__opcoes-menu[hidden] { display: none !important; }
.nd__opcao { display: flex; align-items: center; gap: .5rem; border: 0; background: #faf7f5; border-radius: 8px; padding: .45rem .55rem; cursor: pointer; text-align: left; font: inherit; font-size: .8rem; font-weight: 800; color: #2e1f14; }
.nd__opcao:hover { background: #f0e9e3; }
.nd__opcao b { background: #3a2719; color: #fff; border-radius: 6px; padding: .1rem .35rem; min-width: 2.4rem; text-align: center; }
.nd-teclas[hidden] { display: none !important; }
/* VENDA DIRETA MENOR: sem a coluna do cliente (o CPF/CNPJ é no fim) -- PRODUTOS e a VENDA. */
dialog.janela-novo-delivery.nd--balcao { width: min(96vw, 72rem) !important; }
dialog.janela-novo-delivery.nd--balcao .janela__corpo.nd { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) !important; }
dialog.janela-novo-delivery.nd--balcao .nd__cliente { display: none !important; }
/* VENDA DIRETA: menor (duas colunas) e os botões na ordem VOLTAR · IMPORTAR · FECHAR VENDA. */
dialog.janela-impressoras.janela-novo-delivery.nd--balcao { width: min(96vw, 62rem) !important; max-width: 62rem !important; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > #nd-cancelar { order: 1; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > #nd-importar { order: 2; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > #nd-gravar { order: 3; }
/* CONFERÊNCIA: tudo no MEIO -- os quatro botões redondos lado a lado e o resultado embaixo (Mateus, 03/10/2026). */
.janela-tributacoes .cns-centro { width: min(100%, 64rem); margin: 0 auto; display: flex; flex-direction: column; gap: .8rem; }
.janela-tributacoes .cns-botoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; padding-top: .4rem; }
.janela-tributacoes .cns-bt { height: 46px; border-radius: 999px; border: 2px solid #e0d1c6; background: #f4eeea; color: #6c492e; font: inherit; font-weight: 900; font-size: .85rem; cursor: pointer; white-space: nowrap; }
.janela-tributacoes .cns-bt:hover { background: #f0e9e3; }
.janela-tributacoes .cns-bt--sel { background: #6c492e; color: #fff; border-color: #6c492e; }
.janela-tributacoes .cns-centro .trb-pesq { justify-content: center; }

/* OPERAÇÕES: a linha é um botão (clica e altera); NOVO no título de cada tabela. */
.op-titulo { display: flex; align-items: center; justify-content: center; gap: .6rem; }
.op-novo { height: 28px; padding: 0 .8rem; border-radius: 999px; border: 0; background: #6c492e; color: #fff; font: inherit; font-weight: 900; font-size: .72rem; cursor: pointer; }
.op-linha--bt { width: 100%; font: inherit; color: inherit; cursor: pointer; }
.op-linha--bt:hover { background: #f0e9e3; border-color: #6c492e; }
.op-linha { grid-template-columns: 3rem repeat(calc(var(--cols) - 1), minmax(0, 1fr)) !important; }
dialog.janela-operacao { width: min(46rem, 94vw); }
dialog.janela-operacao .janela__pe { display: flex; justify-content: center; gap: .6rem; }

/* GRUPOS: o nome em texto (com quantos produtos) e os botões ✎ ▲ ▼ 🗑 do mesmo tamanho, alinhados à direita. */
#aba-grupos .g-linha { display: grid !important; grid-template-columns: minmax(0, 1fr) repeat(4, 40px); gap: .5rem; align-items: center; }
#aba-grupos .g-linha > .botao { width: 40px !important; height: 40px !important; min-width: 0 !important; padding: 0 !important; display: flex; align-items: center; justify-content: center; border-radius: 50%; }
#aba-grupos .g-nome { display: flex; align-items: baseline; gap: .6rem; padding: 0 .6rem; min-width: 0; }
#aba-grupos .g-nome b { font-size: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#aba-grupos .g-nome small { font-size: .7rem; font-weight: 800; color: var(--apagado); white-space: nowrap; }
#aba-grupos .g-editar { background: #f4eeea; color: #6c492e; font-size: 1.1rem; }
#aba-grupos .g-busca { padding: .4rem 1rem; }
#aba-grupos .g-busca[hidden] { display: none !important; }
#aba-grupos .g-busca input { width: 100%; height: 42px; box-sizing: border-box; text-transform: uppercase; }

/* ADICIONAR · RETIRAR · SABORES: o nome, o VALOR e os botões ✎ 🗑 sempre na mesma coluna (como os GRUPOS). */
.lc-linha { display: grid !important; grid-template-columns: minmax(0, 1fr) 9rem 40px 40px; gap: .5rem; align-items: center; }
.lc-linha > .botao { width: 40px !important; height: 40px !important; min-width: 0 !important; padding: 0 !important; display: flex; align-items: center; justify-content: center; border-radius: 50%; }
.lc-linha .g-nome { display: flex; align-items: baseline; gap: .6rem; padding: 0 .6rem; min-width: 0; }
.lc-linha .g-nome b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lc-linha .g-editar { background: #f4eeea; color: #6c492e; font-size: 1.1rem; }
.lc-preco { text-align: right; font-weight: 900; color: #3a2719; padding-right: .4rem; }
.lc-preco--zero { color: var(--apagado); font-weight: 700; }
.lc-linha .lc-valor { width: 9rem; }
.lc-linha .lc-valor input { width: 100%; box-sizing: border-box; }
.lc-busca { padding: .4rem 1rem; }
.lc-busca[hidden] { display: none !important; }
.lc-busca input { width: 100%; height: 42px; box-sizing: border-box; text-transform: uppercase; }

/* PRODUTO: DESCRIÇÃO e GRUPO na linha dos códigos; INTEGRAÇÕES na linha dos preços. */
.prod-grupo__linha { display: flex; gap: .4rem; align-items: center; }
.prod-grupo__linha select { flex: 1 1 auto; min-width: 0; }
.prod-grupo__linha .prod-grupo__mais { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; padding: 0; }
.prod-integ { align-self: flex-end; height: 45px; padding: 0 1rem; margin-bottom: 12px; }
dialog.janela-integ { width: min(34rem, 94vw); }
.integ-grade { display: grid; grid-template-columns: 7rem minmax(0, 1fr) 9rem; gap: .5rem; align-items: center; }
.integ-grade > b { text-align: center; font-size: .75rem; color: var(--apagado); }
.integ-grade > .integ-nome { text-align: left; font-size: .95rem; color: #3a2719; }
.integ-grade input { height: 40px; width: 100%; box-sizing: border-box; text-align: center; }
dialog.janela-integ .janela__pe { display: flex; justify-content: center; gap: .6rem; }
/* PEDE VALOR no cartão: QUANTIDADE e VALOR lado a lado. */
.nd-cartao__pede { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.nd-cartao__pede input { text-align: center; font-weight: 800; }

/* TRIBUTAÇÃO DO PRODUTO: o ALTERAR no canto de cima; travado = campos apagadinhos. */
.fiscal { position: relative; }
.fx-alterar { position: absolute; right: .8rem; top: -.2rem; height: 32px; padding: 0 1rem; border-radius: 999px; font-weight: 900; font-size: .78rem; background: #f4eeea; color: #6c492e; }
.fx-alterar--on { background: #6c492e !important; color: #fff !important; }
.fiscal select:disabled, .fiscal input:disabled { background: #f7f2ef !important; color: #5c4534 !important; opacity: 1; }
/* SABORES · ADICIONAR · RETIRAR do produto: listas como a das impressoras (caixinha à esquerda, rolagem). */
.tres[hidden], .tres > fieldset[hidden] { display: none !important; }
.tres .marcaveis { max-height: 14rem; overflow-y: auto; display: flex; flex-direction: column; gap: .2rem; }
.tres .marcaveis > .marcavel { display: flex !important; justify-content: flex-start !important; align-items: center; gap: .5rem; text-align: left; }
.tres .marcaveis > .marcavel .preco { margin-left: auto; }

/* CLIENTE · IDENTIFICAÇÃO HARMONIZADA (03/10/2026): CNPJ · IE · CPF · RG do mesmo tamanho; CONSUMIDOR FINAL no fim. */
dialog.janela-cliente .cf-l2 { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) 9rem; gap: .6rem; align-items: end; }
dialog.janela-cliente .cf-l2 > .campo { flex: none !important; width: auto !important; min-width: 0 !important; margin: 0 !important; }
dialog.janela-cliente .cf-l2 input { width: 100% !important; box-sizing: border-box; }
dialog.janela-cliente .cf-l2 .cf-marca input:disabled { opacity: 1; cursor: default; }
dialog.janela-cliente .cf-obs textarea { width: 100%; box-sizing: border-box; min-height: 4.6rem; resize: vertical; border: 2px solid #c8ab95; border-radius: 12px; padding: .4rem .6rem; font: inherit; text-transform: uppercase; }
/* TAXA DE ENTREGA: o campo fininho, da altura do ISENTAR, e mais estreito (Mateus, 03/10/2026). */
.janela-novo-delivery .nd__taxa-dir { display: inline-flex !important; align-items: center; gap: .35rem; }
.janela-novo-delivery .nd__isentar { height: 26px; display: inline-flex !important; align-items: center; gap: .25rem; padding: 0 .55rem; border-radius: 999px; box-sizing: border-box; }
.janela-novo-delivery .nd__taxa-campo { display: inline-flex; align-items: center; gap: .25rem; }
.janela-novo-delivery #nd-taxa { height: 26px !important; min-height: 0 !important; width: 5.2rem !important; padding: 0 .5rem !important; border-radius: 999px !important; font-size: .85rem !important; text-align: right; box-sizing: border-box; }

/* TOTAIS DO PEDIDO / VENDA maiores (Mateus, 03/10/2026). */
.janela-novo-delivery .nd__tot-linha > b:first-child { font-size: 1.02rem !important; }
.janela-novo-delivery #nd-t-itens { font-size: 1.1rem; }
.janela-novo-delivery .nd__total { font-size: 1.45rem !important; }
.janela-novo-delivery .nd__total b { font-size: 1.6rem; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > #nd-v-concluir { order: 2; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > #nd-v-vender { order: 3; }

/* VENDA DIRETA: o pagamento é depois (no VENDER/CONCLUIR) -- a forma não aparece na coluna. */
dialog.janela-novo-delivery.nd--venda .nd__pedido .nd__pagto { display: none !important; }
dialog.janela-cpf-fim .cf-achados { display: flex; flex-direction: column; gap: .25rem; margin-top: .4rem; max-height: 14rem; overflow-y: auto; }
/* CARTÃO DO PRODUTO (Mateus, 03/10/2026): o topo como o título das janelas -- azul-escuro, o nome e o preço em branco.
   PEDE VALOR: um cartão mais simples, só QUANTIDADE e VALOR (sem observação), o total e o OK. */
.nd-cartao { overflow: hidden; padding-top: 0 !important; }
.nd-cartao__topo { background: #3a2719; color: #fff; margin: 0 -1.1rem .8rem !important; padding: .75rem 1.1rem !important; display: flex; justify-content: space-between; align-items: center; gap: .8rem; }
.nd-cartao__topo b, .nd-cartao__topo span { color: #fff !important; font-weight: 900; }
.nd-cartao--pede .nd-cartao__sub, .nd-cartao--pede .nd-cartao__adics, .nd-cartao--pede label.campo:has(#ndc-obs) { display: none !important; }
.nd-cartao--pede .nd-cartao__pede { margin: .3rem 0 .6rem; }
.nd-cartao--pede .nd-cartao__pede input { height: 52px; font-size: 1.3rem; }
/* SEM o quadro EDITOR embaixo do pedido (Mateus, 03/10/2026: atrapalha o PDV) -- edita-se pelo ✎ da linha.
   O ✎ bem PEQUENO e REDONDO. */
.janela-novo-delivery #nd-editor { display: none !important; }
.janela-novo-delivery .nd__cupom-lapis { width: 24px !important; height: 24px !important; min-width: 0 !important; min-height: 0 !important; padding: 0 !important;
  border-radius: 50% !important; font-size: .72rem !important; line-height: 1 !important; display: inline-flex !important; align-items: center; justify-content: center; flex: 0 0 24px !important; }
/* NOVO PEDIDO: o que se digita aparece em MAIÚSCULAS, igual ao que vai gravado (e-mail fica minúsculo). */
.janela-novo-delivery input:not([type=email]):not([id*=email]), .janela-novo-delivery textarea { text-transform: uppercase; }

/* CLIENTE (03/10/2026): CIDADE · UF · SENHA DO APP · ALTERAR SENHA numa linha; E-MAIL embaixo da referência;
   OBSERVAÇÕES no fim; CONSUMIDOR FINAL numa pílula arredondada (SIM / NÃO), como os outros campos. */
dialog.janela-cliente .cf-c-cidade { flex: 1 1 12rem !important; }
dialog.janela-cliente .cf-c-uf { flex: 0 0 6rem !important; }
dialog.janela-cliente .cf-c-senha { flex: 0 0 10rem !important; margin: 0 !important; }
dialog.janela-cliente .cf-senha-bt { flex: 0 0 auto; align-self: flex-end; height: 45px; padding: 0 1rem; margin-bottom: 12px; }
dialog.janela-cliente .cf-obs { display: block; margin-top: .4rem; }
dialog.janela-cliente .cf-marca { height: 45px; }
dialog.janela-cliente .cf-pilula { display: flex; align-items: center; justify-content: center; width: 100%; height: 45px; box-sizing: border-box;
  border: 2px solid #c8ab95; border-radius: 12px; background: #f7f2ef; color: #6b7a90; font-weight: 900; font-size: .95rem; }
dialog.janela-cliente .cf-pilula--sim { background: #e6f5ec; border-color: #1f9d55; color: #1d7a3a; }
dialog.janela-cliente .cf-l2 #cf-cnpj { font-size: .9rem !important; }
/* PEDE VALOR: QUANTIDADE (com − e + pequenos) e VALOR UNITÁRIO, os dois CENTRALIZADOS. */
.nd-cartao--pede .ndc-pq { display: grid; grid-template-columns: 34px minmax(0, 1fr) 34px; gap: .3rem; align-items: center; }
.nd-cartao--pede .ndc-pq__mm { width: 34px; height: 34px; border-radius: 50%; border: 0; background: #6c492e; color: #fff; font-size: 1.1rem; font-weight: 900; cursor: pointer; }
.nd-cartao--pede #ndc-pq, .nd-cartao--pede #ndc-pv { text-align: center !important; width: 100%; box-sizing: border-box; }
.nd-cartao--pede .com-simbolo:has(#ndc-pv) { justify-content: center; }
dialog.janela-fv #fv-forma { text-align: left !important; text-align-last: left !important; padding-left: .7rem; }
/* FECHAR VENDA: VOLTAR · CONCLUIR · VENDER na mesma linha, do mesmo tamanho. */
dialog.janela-fv > .janela__pe { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; justify-content: center !important; gap: .6rem !important; }
dialog.janela-fv > .janela__pe > .botao { flex: 0 0 11rem !important; width: 11rem !important; order: 0 !important; }
dialog.janela-fv > .janela__pe > [data-x] { order: 1 !important; }
dialog.janela-fv > .janela__pe > #fv-comp { order: 2 !important; }
dialog.janela-fv > .janela__pe > #fv-nfce { order: 3 !important; }
dialog.janela-fv > .janela__pe > [hidden] { display: none !important; }

dialog.janela-fv .fv-venc[hidden] { display: none !important; }
dialog.janela-fv .fv-venc input { height: 45px; text-align: center; }
/* − e + no ESTILO DO OK (Mateus, 03/10/2026): achatadinhos, cantos arredondados, azul com o sinal branco. */
.nd-cartao .nd-cartao__mm:not(.nd-cartao__mm--peq), .nd-cartao--pede .ndc-pq__mm {
  width: 56px !important; height: 36px !important; border-radius: 999px !important; border: 0 !important;
  background: #92633f !important; color: #fff !important; font-size: 1.2rem !important; font-weight: 900 !important;
  display: inline-flex !important; align-items: center; justify-content: center; padding: 0 !important; line-height: 1; }
.nd-cartao .nd-cartao__mm:not(.nd-cartao__mm--peq):hover, .nd-cartao--pede .ndc-pq__mm:hover { background: #765032 !important; }
.nd-cartao--pede .ndc-pq { grid-template-columns: 56px minmax(0, 1fr) 56px !important; }
/* VENDA: VOLTAR · CONCLUIR · VENDER ocupam a largura toda da coluna, do mesmo tamanho (como no pedido). */
dialog.janela-novo-delivery.nd--venda .nd__pe-pedido { width: 100%; }
dialog.janela-novo-delivery.nd--venda .nd__botoes { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: .4rem; width: 100% !important; box-sizing: border-box; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > .botao { width: 100% !important; min-width: 0 !important; height: 2.6rem !important; padding: 0 .25rem !important; white-space: nowrap; font-size: .8rem !important; }
dialog.janela-novo-delivery.nd--venda .nd__botoes > [hidden] { display: none !important; }
/* CARTÃO RESPONSIVO (Mateus, 03/10/2026): mais largo no PEDE VALOR, para caber a quantidade com 4 casas (0,3500 KG). */
.nd-cartao.nd-cartao--pede { width: min(600px, 94vw) !important; }
.nd-cartao--pede .nd-cartao__pede { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) !important; }
.nd-cartao--pede #ndc-pq { font-size: 1.25rem; letter-spacing: .02em; min-width: 7.5rem; }
@media (max-width: 560px) { .nd-cartao--pede .nd-cartao__pede { grid-template-columns: 1fr !important; } }

/* CARTÃO DO PRODUTO, UM MODELO SÓ (03/10/2026): a mesma largura, QUANTIDADE (− campo +) ao lado do VALOR, observação
   sempre; o valor travado (produto com preço) fica cinza-claro. */
.nd-cartao { width: min(600px, 94vw) !important; }
.nd-cartao .nd-cartao__pede { display: grid !important; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) !important; gap: .6rem; margin: .3rem 0 .6rem; }
.nd-cartao .ndc-pq { display: grid; grid-template-columns: 56px minmax(0, 1fr) 56px; gap: .35rem; align-items: center; }
.nd-cartao .ndc-pq__mm { width: 56px; height: 36px; border-radius: 999px; border: 0; background: #92633f; color: #fff; font-size: 1.2rem; font-weight: 900; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.nd-cartao .ndc-pq__mm:hover { background: #765032; }
.nd-cartao #ndc-pq, .nd-cartao #ndc-pv { height: 48px; text-align: center !important; font-size: 1.25rem; font-weight: 800; width: 100%; box-sizing: border-box; }
.nd-cartao #ndc-pv[readonly] { background: #f7f2ef !important; color: #5c4534; }
.nd-cartao .nd-cartao__qtd { display: none !important; }
.nd-cartao label.campo:has(#ndc-obs) { display: block !important; }
@media (max-width: 560px) { .nd-cartao .nd-cartao__pede { grid-template-columns: 1fr !important; } }
/* PRODUTO · GRUPO: a seleção alinhada à ESQUERDA e o ＋ / − ao lado direito, na mesma linha (03/10/2026). */
.janela-impressoras .prod-grupo__linha { display: flex !important; flex-wrap: nowrap !important; gap: .35rem; align-items: center; }
.janela-impressoras .prod-grupo__linha #f-grupo { flex: 1 1 auto; min-width: 0; text-align: left !important; text-align-last: left !important; padding-left: .7rem; }
.janela-impressoras .prod-grupo__linha .prod-grupo__mais { flex: 0 0 40px !important; width: 40px !important; height: 40px !important; min-width: 0 !important; border-radius: 50% !important; padding: 0 !important; margin: 0 !important; }
.janela-impressoras .prod-grupo { flex: 0 1 20rem !important; }
/* CARTÃO DO PRODUTO: VOLTAR e OK do mesmo tamanho. */
.nd-cartao .nd-cartao__pe > .botao { flex: 0 0 8rem !important; width: 8rem !important; }
/* PRODUTO · PREÇOS ALINHADOS (03/10/2026): todos os campos da mesma altura e na mesma base; o LUCRO % sem o "%" solto;
   INTEGRAÇÕES do tamanho do texto, na altura dos campos. */
.janela-impressoras .linha:has(#f-custo) { align-items: flex-end !important; flex-wrap: nowrap !important; }
.janela-impressoras .linha:has(#f-custo) > .campo { margin-bottom: 12px !important; }
.janela-impressoras .linha:has(#f-custo) input, .janela-impressoras .linha:has(#f-custo) select { height: 45px !important; box-sizing: border-box; }
.janela-impressoras #f-lucro { text-align: center !important; width: 100%; }
.janela-impressoras .linha:has(#f-custo) > .prod-integ { flex: 0 0 auto !important; width: auto !important; padding: 0 1.4rem !important; height: 45px !important; margin: 0 0 12px !important; }
/* GRUPO do produto alinhado à ESQUERDA. */
dialog .prod-grupo__linha select#f-grupo { text-align: left !important; text-align-last: left !important; }
/* BORDAS DOS CAMPOS MAIS VISÍVEIS EM TODO O SISTEMA (Mateus, 03/10/2026): nada de campo apagado. */
.campo input:not([type=checkbox]):not([type=radio]), .campo select, .campo textarea, input.campo, select.campo, textarea.campo {
  border: 2px solid #9b7150 !important; }
.campo input:disabled, .campo select:disabled, .campo input[readonly] { border-color: #d0b8a5 !important; }
.campo input:focus, .campo select:focus, .campo textarea:focus { border-color: #92633f !important; box-shadow: 0 0 0 3px rgba(146, 99, 63, .18) !important; outline: none; }
/* PREÇOS: tudo na altura dos campos (40 px) e o INTEGRAÇÕES do tamanho do texto. */
.janela-impressoras .linha:has(#f-custo) input, .janela-impressoras .linha:has(#f-custo) select { height: 40px !important; }
.janela-impressoras .linha:has(#f-custo) > #f-integracoes { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; height: 40px !important; padding: 0 1.4rem !important; margin: 0 0 12px auto !important; }
/* GRUPO: o ＋ e o − na MESMA linha da seleção. */
.janela-impressoras .prod-grupo__linha { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; }
dialog.janela-impressoras input#f-lucro { height: 40px !important; min-height: 0 !important; }
dialog.janela-impressoras button#f-integracoes { height: 40px !important; min-height: 0 !important; max-height: 40px !important; }
/* PRODUTO · PREÇOS (03/10/2026, pelos próprios campos): mesma altura (40 px), mesma base; LUCRO % do tamanho dos
   outros; INTEGRAÇÕES do tamanho do texto, com borda bem visível. */
.linha:has(#f-custo) { align-items: flex-end !important; flex-wrap: nowrap !important; gap: .6rem; }
.linha:has(#f-custo) > .campo { margin: 0 !important; }
.linha:has(#f-custo) input:not([type=checkbox]), .linha:has(#f-custo) select { height: 40px !important; min-height: 0 !important; box-sizing: border-box !important; }
.linha:has(#f-custo) > .campo:has(#f-lucro) { flex: 0 0 9rem !important; }
#f-lucro { height: 40px !important; text-align: center !important; width: 100% !important; box-sizing: border-box !important; }
#f-integracoes { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; height: 40px !important; min-height: 0 !important;
  padding: 0 1.4rem !important; margin: 0 0 0 auto !important; border: 2px solid #6c492e !important; color: #3a2719 !important; font-weight: 900 !important; }
/* GRUPO do produto: seleção à esquerda, ＋ e − ao lado. */
.prod-grupo__linha { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: .35rem; align-items: center; }
#f-grupo { text-align: left !important; text-align-last: left !important; padding-left: .7rem !important; flex: 1 1 auto; min-width: 0; }
#f-grupo-mais, #f-grupo-menos { flex: 0 0 40px !important; width: 40px !important; height: 40px !important; min-height: 0 !important; border-radius: 50% !important; padding: 0 !important; margin: 0 !important; }
/* PRODUTO · CÓDIGOS, DESCRIÇÃO e GRUPO (03/10/2026): todos os campos com 40 px e na mesma base; descrição à esquerda;
   ＋ azul-escuro e − azul-claro (o marrom é só das teclas), na altura dos campos. */
.linha.prod-codigos { align-items: flex-end !important; flex-wrap: nowrap !important; gap: .6rem; }
.linha.prod-codigos > .campo { margin: 0 !important; }
.linha.prod-codigos input, .linha.prod-codigos select { height: 40px !important; min-height: 0 !important; box-sizing: border-box !important; }
#f-nome { text-align: left !important; padding-left: .8rem !important; }
.linha.prod-codigos > .prod-grupo { flex: 0 0 22rem !important; }
#f-grupo-mais, #f-grupo-menos { flex: 0 0 52px !important; width: 52px !important; height: 40px !important; border-radius: 999px !important; font-size: 1.15rem !important; font-weight: 900 !important; border: 0 !important; }
#f-grupo-mais { background: #3a2719 !important; color: #fff !important; }
#f-grupo-menos { background: #f0e9e3 !important; color: #3a2719 !important; border: 2px solid #c8ab95 !important; }
/* PREÇOS: o R$ (caixa com símbolo) na mesma base dos outros. */
.linha:has(#f-custo) .com-simbolo { height: 40px !important; box-sizing: border-box; display: flex; align-items: center; }
.linha:has(#f-custo) > .campo:has(.com-simbolo) { margin-bottom: -2px !important; }
.linha:has(#f-custo) > .campo:has(.com-simbolo) { margin-bottom: -1px !important; }
/* Tela estreita: a linha dos códigos e a dos preços quebram em vez de espremer (responsivo). */
.linha.prod-codigos > .campo:has(#f-nome) { min-width: 12rem; }
@media (max-width: 1100px) {
  .linha.prod-codigos, .linha:has(#f-custo) { flex-wrap: wrap !important; }
  .linha.prod-codigos > .prod-grupo { flex: 1 1 20rem !important; }
}
/* CAMPO DE PERCENTUAL (ex.: OU DESCONTO %) -- uma caixa só, com o "%" dentro, à direita (03/10/2026). */
.campo > .com-pct, .com-pct { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important;
  height: 40px; box-sizing: border-box; border: 2px solid #9b7150 !important; border-radius: 12px; background: #fff; padding: 0 .7rem 0 0 !important; font-size: inherit !important; text-align: right; }
.campo .com-pct input, .com-pct input { border: 0 !important; box-shadow: none !important; background: transparent !important; height: 100% !important; text-align: right !important; padding: 0 .3rem 0 .7rem !important; }
.com-pct > i { font-style: normal; font-weight: 800; color: #5f6f86; margin: 0 !important; position: static !important; }
.com-pct:focus-within { border-color: #92633f !important; box-shadow: 0 0 0 3px rgba(146, 99, 63, .18); }
/* Os campos com R$: a borda forte é a do próprio campo (sem linha dobrada). */
.campo .com-simbolo > input { border: 2px solid #9b7150 !important; }
.campo .com-pct input:not([type=checkbox]):not([type=radio]), .campo .com-pct input:not([type=checkbox]):not([type=radio]):focus {
  border: 0 !important; box-shadow: none !important; outline: none !important; }

/* F4: DESCONTO | ACRÉSCIMO em dois botões iguais, no meio. ✎ do item: o valor editável fica branco. */
.janela-pdv .f4-tipo { display: grid; grid-template-columns: repeat(2, minmax(0, 12rem)); justify-content: center; gap: .5rem; margin: .4rem 0 .6rem; }
.nd-cartao #ndc-pv:not([readonly]) { background: #fff !important; }
/* F4: a linha "PREÇO DO CADASTRO · AGORA" centralizada. */
.janela-pdv .janela__corpo > p.item__meta:first-child { text-align: center !important; }

/* NOVO PEDIDO: sem cliente, GRUPOS e PRODUTOS ficam apagados (clicar avisa); sem OPÇÕES; CANCELAR · CONCLUIR. */
dialog.janela-novo-delivery.nd--sem-cliente .nd__produtos { opacity: 1; }
dialog.janela-novo-delivery.nd--sem-cliente .nd__produtos * { cursor: not-allowed !important; }
dialog.janela-novo-delivery[data-uma-tela] .nd__opcoes { display: none !important; }
dialog.janela-novo-delivery[data-uma-tela] .nd__botoes { --nb: 2; }
/* PEDIDO PARADO (Mateus, 03/10/2026): o selo vermelho do MESMO tamanho da situação (NOVO) e do VER, numa linha só,
   texto curto (⚠ 7 MIN) -- não estoura. */
.pedido__topo .pedido__parado, .pedido__topo .pedido__situacao, .pedido__topo .pedido__ver {
  display: inline-flex !important; align-items: center; justify-content: center; height: 34px !important; min-height: 0 !important;
  box-sizing: border-box; white-space: nowrap !important; border-radius: 999px; }
.pedido__topo .pedido__parado { flex: 0 0 auto; padding: 0 .9rem !important; font-size: .78rem !important; }
/* LINHA DO PEDIDO SEM QUEBRAS (Mateus, 03/10/2026): Nº, tipo, hora, selos e botões cada um numa linha só; no máximo
   duas linhas por pedido (a de cima e a dos botões). O que não cabe, diminui a letra, não quebra. */
.pedido__topo .pedido__numero { white-space: nowrap !important; flex: 0 0 auto; }
.pedido__topo .pedido__tipo { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: .3rem; white-space: nowrap !important;
  height: 30px !important; min-height: 0 !important; padding: 0 .8rem !important; box-sizing: border-box; flex: 0 0 auto; }
.pedido__topo .pedido__tipo br { display: none; }
.pedido__topo .pedido__hora { white-space: nowrap; flex: 0 0 auto; }
.pedido__topo .pedido__cliente-linha { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1 1 auto; }
.pedido__topo .pedido__parado { height: 30px !important; width: 120px !important; flex: 0 0 120px !important; padding: 0 .4rem !important; font-size: .66rem !important; letter-spacing: -.01em; }
/* CPF/CNPJ NA NOTA: janela pequena, o campo do tamanho de um CNPJ, no meio. */
dialog.janela-cpf-nota { width: min(26rem, 94vw) !important; }
dialog.janela-cpf-nota .campo { width: 15rem; margin: 0 auto; text-align: center; }
dialog.janela-cpf-nota #cn-doc { text-align: center; height: 40px; }
dialog.janela-cpf-nota .janela__pe { display: flex; justify-content: center; gap: .6rem; }

/* REJEITADAS: o botão vermelho-claro nos filtros e a lista com o motivo embaixo de cada pedido. */
.filtro--rejeitadas { color: #a12a1d !important; border: 2px solid #e2a9a2 !important; background: #fdecea !important; }
dialog.janela-rejeitadas { width: min(52rem, 96vw); }
dialog.janela-rejeitadas .rj-periodo { justify-content: center; }
dialog.janela-rejeitadas .rj-periodo .campo { flex: 0 0 11rem; }
dialog.janela-rejeitadas .rj-lista { display: flex; flex-direction: column; gap: .4rem; max-height: 60vh; overflow-y: auto; }
dialog.janela-rejeitadas .rj-item { border: 2px solid #e2a9a2; border-radius: 12px; padding: .5rem .7rem; background: #fff; }
dialog.janela-rejeitadas .rj-l1 { display: grid; grid-template-columns: 8rem 6rem minmax(0, 1fr) 6rem 5rem; gap: .5rem; align-items: center; }
dialog.janela-rejeitadas .rj-l1 span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
dialog.janela-rejeitadas .rj-motivo { margin-top: .3rem; color: #a12a1d; font-weight: 700; font-size: .85rem; }

dialog.janela-rejeitadas .rj-l1 { grid-template-columns: 8rem 6rem minmax(0, 1fr) 6rem 5rem 7rem !important; }
dialog.janela-rejeitadas .rj-tipo { font-size: .72rem; font-weight: 900; color: #6b7a90; margin-top: .2rem; }
dialog.janela-rejeitadas .rj-item--cont { border-color: #e8c66a; }
dialog.janela-rejeitadas .rj-item--cont .rj-motivo { color: #8a6500; }
/* NADA ESTOURA (Mateus, 03/10/2026): selo e botão crescem até caber o texto inteiro (mínimo de 120 px, todos da
   mesma altura) -- nunca cortam nem passam da borda. */
.pedido__topo .pedido__situacao, .pedido__topo .pedido__ver, .pedido__topo .pedido__parado {
  width: auto !important; min-width: 120px !important; max-width: none !important; flex: 0 0 auto !important;
  padding: 0 .9rem !important; overflow: visible !important; text-overflow: clip !important; }

/* CANCELAR NFC-e: o aviso e o MOTIVO centralizados. */
.nf-canc-aviso { text-align: center !important; }
.nf-canc-motivo { text-align: center; display: block; width: min(30rem, 100%); margin: .4rem auto 0; }
.nf-canc-motivo input { width: 100%; text-align: center; box-sizing: border-box; }

/* AGUARDANDO MOTOBOY (Mateus, 03/10/2026): o botão cresce até caber o texto inteiro -- botão nunca estoura. */
.pedido__acoes > .botao.botao--aguardando { flex: 0 0 auto !important; width: auto !important; padding: 0 1rem !important;
  overflow: visible !important; text-overflow: clip !important; white-space: nowrap !important; }

/* CANCELAR NFC-e (Mateus, 03/10/2026): o MOTIVO bem no meio da janela, o título em cima do campo, centralizados. */
label.campo.nf-canc-motivo { display: flex !important; flex-direction: column !important; align-items: center !important;
  width: min(30rem, 100%) !important; max-width: 100% !important; margin: .6rem auto 0 !important; float: none !important; }
label.campo.nf-canc-motivo > span { text-align: center !important; width: 100% !important; }
label.campo.nf-canc-motivo > input { width: 100% !important; text-align: center !important; }

/* SEM FRESTA AO ROLAR (Mateus, 03/10/2026): entre o cabeçalho e a barra fixa aparecia uma listrinha dos pedidos
   (cantos arredondados do cabeçalho / medida arredondada). A barra encosta 1px por baixo do cabeçalho e uma
   faixa da cor do fundo cobre o que sobra em cima dela. */
#ped-filtros, main > section > .barra-acoes:first-child, section[id^="aba-"] > .barra-acoes:first-child {
  top: calc(var(--cab-h, 112px) - 1px) !important;
  box-shadow: 0 -16px 0 0 var(--papel), 0 6px 8px -8px rgba(0,0,0,.25) !important;
}

/* RELATÓRIO DE PEDIDOS (Mateus, 03/10/2026): DATA INICIAL · DATA FINAL · CAIXA na mesma linha, os três com a MESMA
   largura e a MESMA altura, títulos alinhados em cima e tudo centralizado. */
dialog.janela-fechamento .lucro-filtros:first-child { display: grid !important; grid-template-columns: repeat(3, 1fr) !important;
  gap: .8rem !important; align-items: end !important; justify-content: stretch !important; }
dialog.janela-fechamento .lucro-filtros:first-child > .campo { display: flex !important; flex-direction: column !important;
  justify-content: flex-end !important; width: auto !important; min-width: 0 !important; margin: 0 !important; flex: none !important; }
dialog.janela-fechamento .lucro-filtros:first-child > .campo > span { text-align: center !important; display: block !important; margin-bottom: .3rem !important; }
dialog.janela-fechamento .lucro-filtros:first-child > .campo > input,
dialog.janela-fechamento .lucro-filtros:first-child > .campo > select { width: 100% !important; height: 2.6rem !important; min-height: 0 !important;
  box-sizing: border-box !important; text-align: center !important; text-align-last: center; margin: 0 !important; }

/* TRIBUTAÇÃO DETALHADA (Mateus, 03/10/2026). */
dialog.janela-trib-det { width: min(1200px, 97vw); }
dialog.janela-trib-det .td-topo { display: flex; align-items: end; justify-content: center; gap: 1rem; margin-bottom: .6rem; }
dialog.janela-trib-det .td-busca { width: min(28rem, 100%); }
dialog.janela-trib-det .td-busca > span { text-align: center; display: block; }
dialog.janela-trib-det .td-conta { font-weight: 900; color: #6c492e; padding-bottom: .55rem; white-space: nowrap; }
dialog.janela-trib-det .td-tabela { max-height: 60vh; overflow: auto; border: 2px solid #e0d1c6; border-radius: 12px; }
dialog.janela-trib-det table { width: 100%; border-collapse: collapse; font-size: .8rem; }
dialog.janela-trib-det th { position: sticky; top: 0; background: #302014; color: #fff; text-align: left; padding: .45rem .5rem; white-space: nowrap; font-size: .72rem; }
dialog.janela-trib-det td { padding: .35rem .5rem; border-bottom: 1px solid #f2ebe5; white-space: nowrap; }
dialog.janela-trib-det td.td-nome { white-space: normal; min-width: 14rem; font-weight: 700; }
dialog.janela-trib-det .td-pe { display: grid; grid-template-columns: repeat(4, 1fr); gap: .6rem; }
dialog.janela-trib-det .td-pe .botao { white-space: nowrap; }
dialog.janela-td-matia { width: min(900px, 96vw); }
dialog.janela-td-matia .td-matia { max-height: 60vh; overflow: auto; }
dialog.janela-td-matia h3 { font-size: .9rem; margin: .6rem 0 .3rem; color: #1d6b2c; } dialog.janela-td-matia h3.td-erro { color: #a12a1d; }
dialog.janela-td-matia table { width: 100%; border-collapse: collapse; font-size: .8rem; }
dialog.janela-td-matia th, dialog.janela-td-matia td { border-bottom: 1px solid #f2ebe5; padding: .3rem .4rem; text-align: left; }
dialog.janela-td-matia .td-pergunta { text-align: center; font-weight: 900; margin-top: .8rem; }
/* VISUALIZAR A4: a folha na tela, como sai no papel. */
dialog.janela-a4 { width: min(1180px, 97vw); }
dialog.janela-a4 .a4-folha { display: block; margin: 0 auto; width: 100%; height: 70vh; border: 1px solid #e0d1c6; border-radius: 8px; background: #fff; }

/* VISUALIZAR RELATÓRIO (03/10/2026): o papel do cupom no meio da janela, como sai na impressora. */
dialog.janela-ver-rel { width: min(640px, 96vw); }
dialog.janela-ver-rel .vr-papel { max-height: 64vh; overflow: auto; background: #fff; border: 1px dashed #d3c6bc; border-radius: 10px; padding: .8rem; display: flex; justify-content: center; }
dialog.janela-ver-rel .vr-papel pre { margin: 0; font: 13px/1.4 'Courier New', monospace; white-space: pre; color: #111; }
dialog.janela-ver-rel .vr-pe { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
dialog.janela-ver-rel .vr-pe .botao { white-space: nowrap; }

/* TRIBUTAÇÕES (Mateus, 03/10/2026): abas e botões da conferência do MESMO tamanho, sem estourar; nas OPERAÇÕES o
   cabeçalho numa linha, o nome com a descrição oficial embaixo (letra menor), as colunas medidas. */
.janela-tributacoes [data-aba], dialog [data-aba].nd__modo { white-space: nowrap !important; overflow: hidden; text-overflow: clip; font-size: clamp(.7rem, 1.05vw, .95rem) !important; min-width: 0 !important; }
.cns-botoes { display: grid !important; grid-template-columns: repeat(5, minmax(0, 11rem)) !important; justify-content: center !important; gap: .6rem !important; }
.cns-botoes .cns-bt { white-space: nowrap !important; min-width: 0 !important; width: 100% !important; font-size: clamp(.68rem, .95vw, .85rem) !important; padding-left: .3rem !important; padding-right: .3rem !important; }
.op-linha { grid-template-columns: 3rem minmax(0, 2.6fr) repeat(calc(var(--cols) - 2), minmax(0, 1fr)) !important; }
.op-linha--cab span, .op-linha--cab { white-space: nowrap !important; font-size: .72rem !important; }
.op-linha .op-nome { text-align: left !important; line-height: 1.2; font-weight: 800; }
.op-linha .op-nome small { display: block; font-weight: 500; font-size: .7rem; color: #5b6b85; text-transform: none; margin-top: .15rem; }
.op-titulo { white-space: nowrap; }

/* 👁 VER A NOTA: a cancelada com a faixa vermelha em cima e embaixo do cupom. */
.nf-ver-canc { background: #fdecea; color: #a12a1d; border: 2px solid #e2a9a2; border-radius: 10px; text-align: center; font-weight: 900; padding: .4rem; margin: .4rem 0; }
.nf-acoes { display: inline-flex; gap: .3rem; justify-content: flex-end; }

/* CONFERÊNCIA (Mateus, 03/10/2026): o título, os contadores e os botões CENTRALIZADOS; o aviso do MatIA PEQUENO,
   do tamanho do texto (até 2-3 linhas), no meio -- nunca a tela inteira. Vale para todo aviso .cns-aviso. */
.cns-aviso { display: block !important; width: fit-content !important; max-width: min(40rem, 92%) !important; margin: .5rem auto !important;
  text-align: center !important; font-size: .82rem !important; line-height: 1.35 !important; padding: .4rem .8rem !important; }
.cns-contador { display: flex !important; justify-content: center !important; flex-wrap: wrap; gap: .6rem !important; margin: .5rem auto !important; }
.cns-contador .botao { white-space: nowrap !important; }
#cns-res > h3, #cns-res .cns-titulo, #cns-res .cns-resumo { text-align: center !important; justify-content: center !important; }

/* IBPT (03/10/2026): uma linha só, centralizada, em cima das tabelas. */
.ibpt-linha { display: flex; align-items: center; justify-content: center; gap: .8rem; flex-wrap: wrap; margin: 0 auto .6rem; padding: .4rem .8rem;
  width: fit-content; max-width: 96%; border: 2px solid #c9dfcb; background: #eef8ef; border-radius: 12px; font-size: .82rem; }
.ibpt-linha--alerta { border-color: #e8c66a; background: #fff6df; }

/* 🔎 ANÁLISE (03/10/2026): três botões iguais no meio; a lista PARA VER COM O CONTADOR em cartões. */
.an-botoes { grid-template-columns: repeat(3, minmax(0, 15rem)) !important; }
.an-lista { display: flex; flex-direction: column; gap: .5rem; max-width: 52rem; margin: .4rem auto; }
.an-item { border: 2px solid #e8c66a; background: #fffaf0; border-radius: 12px; padding: .5rem .8rem; }
.an-item--ok { border-color: #c9dfcb; background: #f3faf4; }
.an-l1 { display: flex; align-items: center; gap: .6rem; } .an-l1 .botao { margin-left: auto; white-space: nowrap; }
.an-texto { font-weight: 700; font-size: .85rem; margin-top: .3rem; } .an-fonte { font-size: .72rem; color: #5b6b85; margin-top: .2rem; }
.an-resp { font-size: .78rem; color: #1d6b2c; margin-top: .3rem; font-weight: 700; }

/* LUCRATIVIDADE (Mateus, 03/10/2026): os campos ALINHADOS -- 1ª linha: DATA INICIAL · DATA FINAL · atalhos e IMPRIMIR;
   2ª linha: VER · GRUPO · CAIXA · ORIGEM · DOCUMENTO · VERIFICAR PREÇOS, todos da mesma largura e altura, títulos em cima. */
dialog .lucro-filtros { display: grid !important; gap: .6rem !important; align-items: end !important; margin-bottom: .6rem !important; }
dialog .lucro-filtros:has(#lu-de) { grid-template-columns: 10rem 10rem minmax(0, 1fr) !important; }
dialog .lucro-filtros:has(#lu-ver) { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
dialog .lucro-filtros > .campo { margin: 0 !important; min-width: 0 !important; width: auto !important; display: flex !important; flex-direction: column !important; }
dialog .lucro-filtros > .campo > span { text-align: center !important; margin-bottom: .3rem !important; }
dialog .lucro-filtros > .campo > input, dialog .lucro-filtros > .campo > select { width: 100% !important; height: 2.6rem !important; box-sizing: border-box !important;
  text-align: center !important; text-align-last: center; min-width: 0 !important; text-overflow: ellipsis; }
dialog .lucro-filtros .atalhos-periodo { display: flex !important; gap: .4rem !important; justify-content: center !important; flex-wrap: nowrap !important; }
dialog .lucro-filtros .atalhos-periodo .botao { height: 2.6rem !important; white-space: nowrap !important; flex: 1 1 0; min-width: 0; }
dialog .lucro-filtros .lucro-precos { height: 2.6rem !important; white-space: nowrap !important; min-width: 0 !important; width: 100% !important; font-size: clamp(.68rem, .9vw, .85rem) !important; }

/* Botões do CONTADOR (03/10/2026): os quatro do mesmo tamanho, numa linha (quebram para a de baixo se não couber),
   texto inteiro -- botão nunca estoura. */
.cns-contador { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)) !important; max-width: 64rem; }
.cns-contador .botao { width: 100% !important; min-width: 0 !important; white-space: nowrap !important; font-size: clamp(.7rem, .95vw, .88rem) !important; padding-left: .4rem !important; padding-right: .4rem !important; }

/* CNPJ SEM IE (03/10/2026): os quatro botões iguais numa linha, sem estourar. */
dialog.janela-cnpj-ie { width: min(44rem, 96vw); }
dialog.janela-cnpj-ie .janela-cnpj-ie__pe { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
dialog.janela-cnpj-ie .janela-cnpj-ie__pe .botao { white-space: nowrap; min-width: 0; font-size: clamp(.68rem, 1vw, .85rem); padding-left: .3rem; padding-right: .3rem; }

/* 👁 CUPOM NA TELA (03/10/2026): a folha de 80 mm no meio da janela; 48 colunas na letra normal e 64 na pequena,
   as duas da mesma largura -- tudo alinhado como no papel. */
.cp-folha { width: 25rem; max-width: 100%; margin: 0 auto; background: #fff; border: 1px dashed #d3c6bc; border-radius: 10px; padding: .8rem .9rem;
  font-family: 'Courier New', monospace; font-size: 13px; line-height: 1.35; color: #111; box-sizing: border-box; }
.cp-folha .cp-p { font-size: 9.8px; }
.cp-folha .cp-n { font-weight: 800; }
.cp-folha .cp-c { text-align: center; white-space: pre-wrap; }
.cp-folha .cp-t { text-align: left; white-space: pre-wrap; }
.cp-folha .cp-ld { display: flex; justify-content: space-between; gap: .6rem; white-space: pre; }
.cp-folha .cp-ld span:last-child { text-align: right; }
.cp-folha .cp-traco { border-top: 1px dashed #777; margin: .35rem 0; }
.cp-folha .cp-cab { margin-bottom: .2rem; }
.cp-folha .cp-qr { width: 7rem; height: 7rem; margin: .4rem auto; border: 2px solid #111; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 11px; }
.cp-folha .cp-barras { height: 2.4rem; margin: .3rem auto; width: 90%; background: repeating-linear-gradient(90deg, #111 0 2px, #fff 2px 4px, #111 4px 5px, #fff 5px 8px); }
.cp-folha .cp-corte { text-align: center; color: #888; margin: .4rem 0; border-top: 1px dashed #888; }

/* VERSÃO no cantinho do rodapé, depois do crédito (03/10/2026). */
.rodape__versao { margin-left: .5rem; font-size: .68rem; font-weight: 700; opacity: .75; }
/* AVISO DE ATUALIZAÇÃO do MatIA. */
dialog.janela-atualizar .atu-itens { text-align: left; display: inline-block; margin: .5rem auto; font-size: .85rem; }
dialog.janela-atualizar .janela__pe .botao { white-space: nowrap; }
dialog.janela-atualizar .atu-itens { display: block !important; width: fit-content; margin: .5rem auto !important; }
dialog.janela-atualizar .atu-pergunta { display: block; font-weight: 900; margin-top: .4rem; text-align: center; }

/* NOTAS E COMPROVANTES (Mateus, 04/10/2026): 4 marcas (NFC-e · NF-e · NFS-e · COMPROVANTE) e o TOTAL DE CADA UM no pé. */
.janela-notas .nf-docs { flex-wrap: wrap; height: auto; min-height: 45px; }
.nf-totais { margin-top: .5rem; border-top: 2px solid #6c492e; }
.nf-linha.nf-total { grid-template-columns: 1fr 12rem 9rem; font-size: .95rem; }
.nf-linha.nf-total-geral { background: #f5f0ec; font-size: 1.05rem; }

/* RETIRADAS (Mateus, 04/10/2026): ao lado de REJEITADAS, em verde. */
.filtro--retiradas { color: #1f6b2b !important; border: 2px solid #9fd3a8 !important; background: #e8f6ea !important; }
.filtro--retiradas.filtro--ativo { background: #2f7d3b !important; color: #fff !important; border-color: #2f7d3b !important; }

/* NOVO CLIENTE embaixo das OBSERVAÇÕES (Mateus, 04/10/2026): largura toda, sem estourar. */
.nd__novo-cli { display: block; width: 100%; margin: .4rem 0 .2rem; min-height: 40px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* CANCELAR DO PEDIDO com 4 botões (Mateus, 04/10/2026): mais larga, os 4 do MESMO tamanho numa linha só (sem estourar),
   o espaço do MatIA à direita. */
dialog.janela--aviso.janela-quatro { width: min(800px, calc(100vw - 1.5rem)) !important; max-width: min(800px, calc(100vw - 1.5rem)) !important; }
dialog.janela-quatro > .janela__pe--aviso { justify-content: flex-start; flex-wrap: nowrap; gap: .5rem; padding-left: .8rem; padding-right: 120px; }
dialog.janela-quatro > .janela__pe--aviso .botao { flex: 1 1 0; min-width: 0 !important; width: auto !important; white-space: normal; line-height: 1.05; text-align: center; font-size: .82rem; min-height: 40px !important; padding: .2rem .4rem !important; }
/* SEMPRE OS 4 NA MESMA LINHA (Mateus, 04/10/2026): tela estreita só diminui a letra e o espaço do MatIA. */
@media (max-width: 760px) {
  dialog.janela-quatro > .janela__pe--aviso { padding-right: 96px; gap: .35rem; }
  dialog.janela-quatro > .janela__pe--aviso .botao { font-size: .74rem; }
}

/* QR CODE do CONTROLE MOTOBOY na tela de motoboys (Mateus, 04/10/2026). */
.mb-qr { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: 0 0 .8rem; padding: .6rem; border: 2px dashed #d3bba9; border-radius: 12px; text-align: center; flex-wrap: wrap; }
.mb-qr svg { width: 150px; height: 150px; background: #fff; }

/* DOIS QR CODES (Android · iPhone) na tela de motoboys (Mateus, 04/10/2026): lado a lado, sem estourar. */
.mb-qr.mb-qr--dois { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.mb-qr__um { display: flex; flex-direction: column; align-items: center; gap: .25rem; text-align: center; }
.mb-qr__um svg { width: 140px; height: 140px; background: #fff; }

/* 🔍 PROCURAR BAIRRO (Mateus, 04/10/2026). */
.b-procura { display: block; margin: .5rem 0; }
.b-procura input { width: 100%; }

/* ✎ ITEM DO PEDIDO ALTERADO (Mateus, 04/10/2026): QUANTIDADE · VALOR UNITÁRIO · TOTAL lado a lado, no padrão das janelas. */
dialog.janela--aviso.janela-item { width: min(680px, calc(100vw - 1.5rem)) !important; max-width: min(680px, calc(100vw - 1.5rem)) !important; }
dialog.janela-item .janela__corpo.ex-corpo { padding: 1.1rem 7.2rem 1.4rem 7.2rem !important; }   /* igual dos dois lados: os campos no MEIO */
dialog.janela-item .ex-linha { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; align-items: start; }
dialog.janela-item .ex-linha .campo { margin: 0; display: flex; flex-direction: column; gap: .3rem; }
dialog.janela-item .ex-linha .campo > span:first-child { display: block; text-align: center; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
dialog.janela-item .ex-linha input { width: 100%; min-width: 0; }
@media (max-width: 560px) { dialog.janela-item .janela__corpo.ex-corpo { padding-right: 1.2rem !important; } dialog.janela-item .ex-linha { grid-template-columns: 1fr; } }
dialog.janela-item .ex-linha input { text-align: center !important; }

/* ＋ NOVO PEDIDO da janela PEDIDOS EM ESPERA (Mateus, 04/10/2026): numa linha só, largo, centralizado, sem estourar. */
.esp-pe { justify-content: center !important; }
dialog .janela__pe.esp-pe .botao.esp-novo { white-space: nowrap; min-width: 16rem !important; max-width: 100%; min-height: 48px !important; padding: .6rem 1.8rem !important; font-size: 1.1rem !important; font-weight: 900; }

/* CARTÃO DO PRODUTO COM ADICIONAIS (Mateus, 04/10/2026): com muitos adicionais o OK / VOLTAR sumiam para fora da tela
   (o cartão estava com overflow hidden). Agora: a LISTA DE ADICIONAIS rola sozinha e o PÉ (VOLTAR · OK) fica sempre à vista. */
.nd-cartao { overflow-y: auto !important; }
.nd-cartao__adics { max-height: min(34vh, 17rem); overflow-y: auto; padding-right: .25rem; overscroll-behavior: contain; }
.nd-cartao__pe { position: sticky; bottom: 0; z-index: 2; background: #fff; margin: .3rem -1.1rem -1rem; padding: .6rem 1.1rem .8rem; box-shadow: 0 -6px 10px -8px rgba(0,0,0,.25); }
.nd-cartao > * { flex-shrink: 0; }   /* nada encolhe: o cartão rola por inteiro e o pé (VOLTAR · OK) fica fixo embaixo */
/* ADICIONAIS COMPACTOS (Mateus, 04/10/2026): "pode até ficar menor a tela dos adicionais" -- linhas baixas,
   lista menor com barra de rolagem bem visível; o título mostra quantos são e que dá para correr. */
.nd-cartao__adics { max-height: min(26vh, 11.5rem); gap: .25rem; border: 1px solid var(--linha); border-radius: 10px; padding: .3rem .35rem .3rem .3rem; background: #fbf9f8; scrollbar-width: thin; scrollbar-color: #8f613d #f1eae5; }
.nd-cartao__adics::-webkit-scrollbar { width: 8px; }
.nd-cartao__adics::-webkit-scrollbar-thumb { background: #8f613d; border-radius: 8px; }
.nd-cartao__adics::-webkit-scrollbar-track { background: #f1eae5; border-radius: 8px; }
.nd-cartao__adic { padding: .15rem .45rem; background: #fff; min-height: 0; }
.nd-cartao__adic .botao, .nd-cartao__adic button { width: 2rem !important; height: 2rem !important; min-height: 0 !important; padding: 0 !important; font-size: 1.1rem !important; }
.nd-cartao__adics > .nd-cartao__adic { flex-shrink: 0; }   /* linha não esmaga: a lista rola */
/* QR DO MOTOBOY (Mateus, 04/10/2026): QR maior, link escrito embaixo e botão COPIAR LINK (para mandar no WhatsApp). */
.mb-qr__um svg { width: 170px !important; height: 170px !important; }
.mb-qr__link { display: block; max-width: 100%; font-size: .7rem; word-break: break-all; background: #faf7f4; border-radius: 6px; padding: .2rem .4rem; user-select: all; }
.mb-qr__dica { text-align: center; margin: -.4rem 0 .8rem; font-weight: 700; }
.mb-qr__um { min-width: 0; }
.mb-qr__link { white-space: normal !important; overflow-wrap: anywhere; width: 100%; font-family: inherit; color: #5c4533; }
/* FECHAR DAS TELAS DE MENU (Mateus, 04/10/2026): numa linha própria, separado dos botões, centralizado; e o ícone
   ao lado do texto (CONTABILIDADE não quebra em duas linhas). */
.tela-fechar { display: flex; justify-content: center; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--linha); }
.tela-fechar .botao { min-width: 10rem; }
#aba-fiscal .grade-botoes .botao, #aba-integracoes .grade-botoes .botao { white-space: nowrap; display: inline-flex; flex-direction: row; align-items: center; justify-content: center; gap: .4rem; }
#aba-fiscal .grade-botoes .botao, #aba-integracoes .grade-botoes .botao { white-space: nowrap !important; width: auto !important; min-width: 9.5rem; padding-inline: 1rem !important; }
#aba-fiscal .grade-botoes .botao, #aba-integracoes .grade-botoes .botao { min-width: 11.5rem !important; }
/* FINANCEIRO no cabeçalho (Mateus, 05/10/2026): IGUAL ao RELATÓRIOS, ao lado dele -- mesma cor, formato e letra. */
.cabecalho #financeiro-botao { display: flex !important; flex-direction: row; align-items: center; justify-content: center !important; gap: .5rem !important; padding: .3rem .55rem; overflow: hidden; min-width: 0; color: #281b11 !important; }
.cabecalho #financeiro-botao svg { width: 24px !important; height: 24px !important; flex: 0 0 auto; }
.cabecalho #financeiro-botao span { display: block !important; font-size: .82rem !important; font-weight: 800 !important; color: #281b11 !important; white-space: nowrap; }
/* PLANO DE CONTAS (Mateus, 05/10/2026): árvore TIPO › CATEGORIA › SUBCATEGORIA. */
#aba-plano .pc-filtros { display: flex; align-items: flex-end; gap: .8rem; flex-wrap: wrap; margin: .2rem 0 .6rem; }
#aba-plano #pc-busca { flex: 1 1 18rem; }
#aba-plano .pc-mostrar { flex: 0 0 auto; }
.pc-linha { display: flex; align-items: center; gap: .6rem; cursor: pointer; user-select: none; }
.pc-linha--tipo { cursor: default; background: var(--linha); font-weight: 800; }
.pc-linha--cat { font-weight: 700; padding-left: 1.6rem; }
.pc-linha--sub { padding-left: 3.2rem; }
.pc-linha--inativa { opacity: .55; }
.pc-linha--escolhida { outline: 2px solid var(--verde); outline-offset: -2px; background: #f6f2ee; }
.pc-cod { min-width: 4.6rem; color: var(--apagado); font-variant-numeric: tabular-nums; }
.pc-tag { margin-left: auto; font-size: .7rem; font-weight: 800; padding: .1rem .5rem; border-radius: 8px; white-space: nowrap; }
.pc-tag + .pc-tag { margin-left: .3rem; }
.pc-tag--E { background: #d9f2e3; color: #14532d; }
.pc-tag--S { background: #f7dada; color: var(--vermelho); }
.pc-tag--inativa { background: #e5e7eb; color: #374151; }
.pc-tag--aviso { background: #fff3cd; color: #7a5a00; }
.janela-plano .pc-radios { display: flex; gap: 1rem; flex-wrap: wrap; padding: .35rem 0; }
.janela-plano .pc-f-l1, .janela-plano .pc-f-l2 { display: flex; gap: 1rem; flex-wrap: wrap; }
.janela-plano .pc-f-cat { flex: 1 1 16rem; }
.janela-plano .pc-f-cod, .janela-plano .pc-f-ativo { flex: 0 0 8rem; }
.janela-plano textarea { width: 100%; resize: vertical; }
/* TELA FINANCEIRO (Mateus, 05/10/2026): os cartões IGUAIS aos da tela RELATÓRIOS -- tamanho, letra e grade no meio. */
#aba-financeiro .barra-acoes { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6rem; margin: 0; }
#aba-financeiro .barra-acoes > .botao {
  width: 150px !important; height: 56px !important; flex: 0 0 150px !important; margin: 0 !important;
  display: inline-flex !important; flex-direction: row !important; align-items: center !important; justify-content: center !important; gap: .4rem !important;
  text-align: center !important; padding: .3rem .6rem !important; border-radius: 16px !important; text-decoration: none;
  font-size: .82rem !important; font-weight: 800 !important; line-height: 1.15 !important; text-transform: uppercase !important;
  background: var(--creme, #f0e9e3); color: #281b11 !important;
}
#aba-financeiro .barra-acoes > .botao svg { width: 20px !important; height: 20px !important; flex: 0 0 auto; }
#aba-financeiro .barra-acoes > .botao span { display: inline !important; font-size: inherit !important; white-space: normal !important; }
/* FINANCEIRO: BANCOS, CAIXA, CONTAS A RECEBER / A PAGAR e BAIXAS (Mateus, 05/10/2026). Só classes novas (fin-...). */
.fin-linha .fin-nome { min-width: 12rem; }
.fin-meio { color: var(--apagado); font-size: .85rem; }
.fin-valor { margin-left: auto; font-variant-numeric: tabular-nums; }
.fin-e { color: #14532d; }
.fin-s { color: var(--vermelho); }
.fin-tag { font-size: .68rem; font-weight: 800; padding: 0 .35rem; border-radius: 6px; background: var(--linha); color: var(--tinta); }
.fin-resumo { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; align-items: center; padding: .55rem .8rem; margin: .3rem 0 .6rem; background: #fff; border: 1px solid var(--linha); border-radius: 10px; font-size: .85rem; }
.fin-resumo b { font-size: 1rem; margin-left: .3rem; font-variant-numeric: tabular-nums; }
.fin-tabela { overflow: auto; max-height: 55vh; border: 1px solid var(--linha); border-radius: 10px; background: #fff; }
.fin-mov { width: 100%; border-collapse: collapse; font-size: .82rem; }
.fin-mov th { position: sticky; top: 0; background: var(--faixa); color: var(--creme); text-align: left; padding: .4rem .5rem; font-weight: 800; white-space: nowrap; }
.fin-mov td { padding: .35rem .5rem; border-bottom: 1px solid var(--linha); vertical-align: top; }
.fin-mov .num, .fin-cx .num, .fin-tit .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fin-mov tbody tr[data-id], .fin-mov tbody tr[data-tid] { cursor: pointer; }
.fin-mov tr.fin-escolhida td { background: #f6f2ee; }
.fin-mov tr.fin-ant td { background: var(--papel); font-weight: 700; }
.fin-mov tr.fin-estornada td { text-decoration: line-through; color: var(--apagado); }
.fin-mov tr.fin-estornada td:last-child { text-decoration: none; }
.fin-cx { display: grid !important; grid-template-columns: 4.5rem minmax(10rem, 1.6fr) 6.5rem minmax(9rem, 1.4fr) repeat(4, minmax(6rem, 1fr)); gap: .6rem; }
.fin-tit { display: grid !important; grid-template-columns: 7rem minmax(9rem, 1.4fr) minmax(10rem, 1.8fr) minmax(8rem, 1.2fr) 7rem 7rem 7.5rem; gap: .6rem; }
.fin-cx > *, .fin-tit > * { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.fin-tit.fin-vencida { background: #fdeeee; }
.fin-mov tr.fin-vencida td { color: var(--vermelho); }
.fin-periodo { align-items: flex-end; }
.fin-periodo .campo { flex: 0 0 auto; }
.fin-busca { flex: 1 1 16rem; }
.fin-duas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: .8rem; }
@media (max-width: 60rem) { .fin-duas { grid-template-columns: 1fr; } .fin-cx, .fin-tit { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.janela-fin .fin-l { display: flex; gap: .8rem; flex-wrap: wrap; align-items: flex-end; }
.janela-fin .fin-l > .campo { flex: 1 1 9rem; }
.janela-fin .fin-c-larga, .janela-fin .fin-c-plano, .janela-fin .fin-c-banco { flex: 2 1 16rem !important; }
.janela-fin .fin-c-valor { flex: 0 1 9rem !important; }
.janela-fin .fin-c-ativo, .janela-fin .fin-c-parc { flex: 0 0 7rem !important; }
.janela-fin textarea { width: 100%; resize: vertical; }
.janela-fin .pc-radios { display: flex; gap: 1rem; flex-wrap: wrap; padding: .35rem 0; }
.janela-fin .fin-outros { align-self: flex-end; white-space: nowrap; }
.janela-fin .fin-aviso { background: #fff3cd; color: #7a5a00; padding: .4rem .6rem; border-radius: 8px; }
.janela-fin.janela--larga { width: min(1200px, 96vw); max-width: 96vw; }
.janela-titulo { width: min(980px, 96vw); max-width: 96vw; }
.fin-pessoa { position: relative; }
.fin-pessoas { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; max-height: 16rem; overflow: auto; background: #fff; border: 1px solid #e7dad0; border-radius: 10px; box-shadow: 0 8px 20px rgba(0,0,0,.18); }
.fin-pessoas .pc-linha, .fin-oficiais .pc-linha { gap: .8rem; }
.fin-oficiais { max-height: 50vh; overflow: auto; }
.fin-ficha .fin-resumo .botao { margin-left: auto; }
.fin-ficha .fin-resumo .botao + .botao { margin-left: 0; }
.fin-ficha .fin-tabela { max-height: 14rem; }
.fin-baixas .fin-tabela { max-height: 12rem; }
/* LISTAS ENXUTAS (Mateus, 05/10/2026): RECEBER / PAGAR = VENCIMENTO · CLIENTE · VALOR · SITUAÇÃO; CAIXA = CAIXA ·
   ABERTO POR / EM · SITUAÇÃO · SALDO. Cada linha em no máximo DUAS linhas; filtros e datas em MAIÚSCULO. */
.fin-tit { grid-template-columns: 7rem minmax(0, 1fr) 8rem 7.5rem !important; align-items: center; }
.fin-cx { grid-template-columns: 4.5rem minmax(0, 1fr) 6.5rem 8rem !important; align-items: center; }
.fin-tit__nome { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; line-height: 1.25; }
@media (max-width: 60rem) { .fin-tit { grid-template-columns: 6.5rem minmax(0, 1fr) 7rem 6.5rem !important; } .fin-cx { grid-template-columns: 3.8rem minmax(0, 1fr) 5.5rem 6.5rem !important; } }
#aba-receber .pc-filtros .campo > span, #aba-pagar .pc-filtros .campo > span, #aba-caixafin .pc-filtros .campo > span { text-transform: uppercase; }
#aba-receber input[type="date"], #aba-pagar input[type="date"], #aba-caixafin input[type="date"], .janela-fin input[type="date"] { text-transform: uppercase; }
/* Nas janelas do FINANCEIRO, botão escondido fica escondido (a regra dos botões de baixo forçava display: flex). */
dialog.janela-fin .janela__pe > .botao[hidden], dialog.janela-fin .janela__pe > button[hidden], dialog.janela-fin [hidden] { display: none !important; }

/* COMBOS (Mateus, 10/10/2026): na ficha do produto, SABORES, ADICIONAR, COMBOS e RETIRAR lado a lado -- os que tiverem cadastro. */
@media (min-width: 861px) { .tres { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-flow: row; } }   /* sempre 4 lugares (cada quadro 1/4); passando de 4, vai para a linha de baixo */

/* CADASTROS NUMA LINHA SÓ (Mateus, 10/10/2026): com o COMBOS são 8 botões; a tela fica um pouco mais larga que as outras (centrada)
   e os botões não quebram linha. Em tela estreita, volta a quebrar. Tamanho e cor dos botões continuam os mesmos. */
@media (min-width: 1340px) {
  #aba-cadastros:not([hidden]) { position: relative; width: max-content; left: 50%; transform: translateX(-50%); }
  #aba-cadastros .barra-acoes { flex-wrap: nowrap; }
}

/* VALOR NAS LISTAS DE CADASTRO (Mateus, 10/10/2026): ADICIONAR, COMBOS, RETIRAR e SABORES -- o campo do valor com a MESMA altura,
   borda, cantos e fundo do campo do nome (antes herdava a pílula escura da taxa de tele). As TAXAS TELE continuam iguais. */
.lc-linha .lc-valor.taxa-campo { width: 100%; min-width: 0; box-sizing: border-box; align-self: center; display: flex; align-items: center; margin: 0; }   /* ocupa a coluna dele (9rem), sem invadir o botão */
.lc-linha .lc-valor.taxa-campo > input { height: 44px; width: 100%; box-sizing: border-box; background: #fff; color: var(--texto, #23281f); font-size: 16px; font-weight: 700;
  border: 1.6px solid rgba(155, 113, 80); border-radius: 10px; padding: .55rem .7rem .55rem 2.4rem; text-align: right; }
.lc-linha .lc-valor.taxa-campo > input:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(143, 97, 61, .15); }
.lc-linha .lc-valor.taxa-campo > i { color: var(--apagado, #6f7a6b); font-weight: 700; font-size: .9rem; }
.lc-linha > input.campo { margin: 0; }   /* nome e valor na mesma altura (a margem de baixo do campo empurrava o nome para cima) */

/* COMBOS = PRODUTO COM VALOR DIFERENCIADO (Mateus, 10/10/2026): o campo do produto com a lista que abre embaixo. */
.cb-produto { position: relative; display: block; min-width: 0; }
.cb-produto > input.campo { margin: 0; width: 100%; box-sizing: border-box; }
.cb-sugestoes { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 30; max-height: 18rem; overflow-y: auto; background: #fff; border: 1.6px solid rgba(155, 113, 80); border-radius: 10px; box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.cb-sugestoes[hidden] { display: none !important; }
.cb-sugestao { display: flex; align-items: center; gap: .7rem; padding: .55rem .8rem; cursor: pointer; border-bottom: 1px solid var(--linha); }
.cb-sugestao:hover { background: #f6f2ee; }
.cb-sugestao .cb-normal { margin-left: auto; }
.cb-cod { min-width: 3.5rem; color: var(--apagado); font-variant-numeric: tabular-nums; }
.cb-normal { color: var(--apagado); font-weight: 600; }
.cb-aviso { font-size: .72rem; font-weight: 800; color: #7a5a00; background: #fff3cd; padding: .1rem .45rem; border-radius: 6px; }
.cb-linha .g-nome { display: flex; align-items: center; gap: .5rem; min-width: 0; }
/* COMBO SAI NA NOTA e MOVIMENTA ESTOQUE (Mateus, 10/10/2026): pequenos, na linha dos PREÇOS, antes do INTEGRAÇÕES. */
.prod-mini { flex: 0 0 6.6rem !important; min-width: 0; }
.prod-mini > span { font-size: .62rem !important; white-space: nowrap; letter-spacing: 0; }

/* PREÇOS NUMA LINHA SÓ (Mateus, 10/10/2026): com o PREÇO DO COMBO são 8 campos + INTEGRAÇÕES -- todos estreitados
   por igual e o INTEGRAÇÕES um pouco menor. Só a linha dos preços da ficha do produto. */
.linha:has(#f-custo) { flex-wrap: nowrap !important; gap: .55rem !important; }
.linha:has(#f-custo) > .campo:has(#f-custo), .linha:has(#f-custo) > .campo:has(#f-preco), .linha:has(#f-custo) > .prod-combo { flex: 0 0 7.4rem !important; min-width: 0 !important; }
.linha:has(#f-custo) > .campo:has(#f-lucro), .linha:has(#f-custo) > .campo:has(#f-unidade) { flex: 0 0 5.2rem !important; min-width: 0 !important; }
.linha:has(#f-custo) > .campo:has(#f-pede) { flex: 0 0 6.2rem !important; min-width: 0 !important; }
.linha:has(#f-custo) > .prod-mini { flex: 0 0 7rem !important; }
.linha:has(#f-custo) > .campo > span:first-child { white-space: nowrap; }
.prod-combo > span:first-child, .linha:has(#f-custo) > .prod-mini > span:first-child { font-size: .6rem !important; }
.janela-impressoras .linha:has(#f-custo) > .prod-integ, .linha:has(#f-custo) > .prod-integ { padding: 0 .8rem !important; font-size: .78rem !important; flex: 0 0 auto !important; width: auto !important; }
/* CORES DA PAMPA (Mateus, 17/10/2026): link sem estilo (ex.: telefone do cliente no pedido) sem o azul do navegador. */
a:not([class]) { color: inherit; }
.pedido__cliente-linha a { color: var(--tinta); font-weight: 700; }
/* LINHA ENTRE OS PEDIDOS (Mateus, 17/10/2026): uma linha grossinha separa um pedido do outro. */
.pedido + .pedido { border-top: 3px solid var(--faixa); }

/* BARRA DE ROLAGEM SEMPRE À VISTA (Mateus, 17/10/2026): para rolar sem depender da rodinha do mouse. Grossa, na cor da casa.
   (as regras antigas escondiam a barra na página, nas janelas e nas listas; aqui ela volta em tudo — menos na faixa das abas.) */
html, html.topo-cravado, body, dialog, dialog *, .chat, .chat *, .lista, .janela__corpo, dialog .janela__corpo, dialog .janela__corpo * { scrollbar-width: auto !important; scrollbar-color: var(--faixa) var(--linha) !important; }
html::-webkit-scrollbar, html.topo-cravado::-webkit-scrollbar, html.topo-cravado body::-webkit-scrollbar, body::-webkit-scrollbar, dialog::-webkit-scrollbar, dialog *::-webkit-scrollbar, .chat::-webkit-scrollbar, .chat *::-webkit-scrollbar, .lista::-webkit-scrollbar { display: block !important; width: 14px !important; height: 14px !important; }
html::-webkit-scrollbar-track, body::-webkit-scrollbar-track, dialog *::-webkit-scrollbar-track, .lista::-webkit-scrollbar-track { background: var(--linha); border-radius: 8px; }
html::-webkit-scrollbar-thumb, body::-webkit-scrollbar-thumb, dialog *::-webkit-scrollbar-thumb, .lista::-webkit-scrollbar-thumb { background: var(--faixa); border-radius: 8px; border: 3px solid var(--linha); }
.abas-grupos { scrollbar-width: none !important; }
/* CAIXINHAS DE MARCAR na cor da casa (17/10/2026): sem o azul do navegador. */
input[type=checkbox], input[type=radio], progress, input[type=range] { accent-color: var(--verde); }
/* CONTA DE BANCO (17/10/2026): os campos e o + OUTROS BANCOS alinhados embaixo; o rodapé com os botões centralizados e iguais. */
.janela-banco .linha.fin-l { align-items: flex-end !important; }
.janela-banco .fin-outros { align-self: flex-end !important; min-height: 3rem; }
.janela-banco .janela__pe { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.janela-banco .janela__pe .botao { flex: 1 1 9rem; max-width: 13rem; }
.janela-banco .fin-tab { width: 100%; border-collapse: collapse; font-size: .8rem; } .janela-banco .fin-tab th, .janela-banco .fin-tab td { padding: .25rem .35rem; border-bottom: 1px solid var(--linha); text-align: left; }
/* AS 5 ABAS DE TRIBUTAÇÕES NUMA LINHA SÓ (Mateus, 17/10/2026). */
.trb-abas, .trb-abas--4 { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: .5rem !important; flex-wrap: nowrap !important; }
.trb-abas .nd__modo { min-width: 0 !important; width: auto !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-inline: .5rem !important; font-size: .9rem !important; }
@media (max-width: 700px) { .trb-abas, .trb-abas--4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
dialog .trb-abas.trb-abas--4 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
@media (max-width: 700px) { dialog .trb-abas.trb-abas--4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
/* LUPA DO CÓDIGO DE BARRAS e o GRUPO (Mateus, 17/10/2026). */
.prod-barras { display: flex; gap: .3rem; align-items: stretch; } .prod-barras input { flex: 1 1 auto; min-width: 0; } .prod-barras .botao { flex: 0 0 auto; padding-inline: .55rem; }
.prod-grupo select { text-align: center; text-align-last: center; }
/* 🔎 ANÁLISE DOS PRODUTOS (17/10/2026): 4 botões, a frase do MaTIA, filtros, sugestão e lotes. */
.an-botoes.an-botoes--4 { grid-template-columns: repeat(4, minmax(0, 15rem)) !important; }
@media (max-width: 700px) { .an-botoes.an-botoes--4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.an-matia { display: flex; gap: .8rem; align-items: center; max-width: 52rem; margin: .4rem auto; padding: .7rem .9rem; border-radius: 14px; border: 2px solid #d7c1b0; background: #faf7f5; font-size: .9rem; }
.an-matia img { width: 52px; height: 52px; object-fit: contain; flex: 0 0 auto; }
.an-filtro { border: 1px solid transparent; cursor: pointer; font: inherit; font-size: .72rem; font-weight: 800; }
.an-filtro--sel { outline: 2px solid #6c492e; }
.an-eco { border-color: #9ccfa8 !important; background: #f3faf4 !important; max-width: 52rem; margin: .4rem auto; }
.an-lote .an-l1 b { font-size: .85rem; }
.an-sug { margin: .25rem 0 .1rem; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: .82rem; }
.an-sug .botao { margin-left: auto; }
.an-imp { font-size: .72rem; color: #8a1c24; }
.janela-an-hist .janela__corpo { max-height: 70vh; overflow: auto; }
.janela-an-pergunta { max-width: min(36rem, 94vw); }
.janela-an-pergunta .an-pergunta { font-size: .9rem; line-height: 1.35; max-height: 60vh; overflow: auto; text-align: left; }
.janela-an-pergunta .an-pergunta p { margin: .4rem 0; }
.an-pergunta__q { font-size: 1.05rem; font-weight: 900; text-align: center; margin-top: .8rem !important; }
.janela-an-pergunta .an-pergunta__pe { display: flex !important; justify-content: center !important; gap: .8rem; }
.janela-an-pergunta .an-pergunta__pe .botao { min-width: 8rem; }
.an-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin: .5rem auto; }
.an-lote .an-l1 { flex-wrap: wrap; } .an-lote .an-l1 b { min-width: 0; flex: 1 1 12rem; } .an-item { min-width: 0; overflow-wrap: anywhere; }
/* CABEÇALHO (Mateus, 17/10/2026): a logo da Mateus com a LUZ BRANCA em volta; GestorFoodMI® = Gestor na cor da casa, Food BRANCO, MI como era, ® registrado. */
.cab-inicial__logo { filter: drop-shadow(0 0 1px #fff) drop-shadow(0 0 4px rgba(255,255,255,.95)) drop-shadow(0 0 10px rgba(255,255,255,.75)) !important; }
#cab-inicial-titulo { display: inline-flex !important; align-items: flex-start; }
#cab-inicial-titulo .gf-gestor, #cab-inicial-titulo .gf-mi { color: #c2a28a; }
#cab-inicial-titulo .gf-food { color: #fff; }
#cab-inicial-titulo .gf-r { color: #fff; font-size: .5em; margin-left: .08em; line-height: 1; position: relative; top: .1em; }
#cab-inicial-titulo span { display: inline !important; margin: 0 !important; font-size: inherit !important; font-weight: inherit !important; }
/* FICHA DO MOTOBOY (17/10/2026): a ficha à esquerda e a FOTO numa 2ª coluna; no celular a foto vai para baixo. */
.mb-colunas { display: grid; grid-template-columns: minmax(0, 1fr) 12rem; gap: 1rem; align-items: start; }
.mb-col-foto { display: flex; flex-direction: column; align-items: center; gap: .45rem; }
.mb-foto-rot { align-self: flex-start; font-size: .8rem; font-weight: 800; color: var(--apagado); }
.mb-foto { width: 11rem; height: 13rem; border: 2px dashed var(--dourado); border-radius: 12px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: var(--papel); color: var(--apagado); font-weight: 700; }
.mb-foto img { width: 100%; height: 100%; object-fit: cover; }
.mb-col-foto .botao { width: 11rem; }
@media (max-width: 700px) { .mb-colunas { grid-template-columns: 1fr; } }
/* BARRA DE ROLAGEM ARREDONDADA EM TUDO (Mateus, 17/10/2026): sem os quadradinhos de seta do Windows; trilho e puxador redondos. */
::-webkit-scrollbar-button { display: none !important; width: 0 !important; height: 0 !important; }
::-webkit-scrollbar-track { border-radius: 999px !important; }
::-webkit-scrollbar-thumb { border-radius: 999px !important; }
::-webkit-scrollbar-corner { background: transparent; }
.janela-nfe .nfe-cli-lista { border-radius: 14px !important; padding: .3rem; scrollbar-width: thin !important; }
.janela-nfe .nfe-cli-lista div { border-radius: 10px; }
.janela-nfe .nfe-cli-lista::-webkit-scrollbar { width: 10px !important; }
.janela-nfe .nfe-cli-lista::-webkit-scrollbar-track { background: transparent !important; margin: 10px 0; }
.janela-nfe .nfe-cli-lista::-webkit-scrollbar-thumb { background: var(--dourado) !important; border: 2px solid #fff !important; }
/* VEIO DO APP (Mateus, 17/10/2026): igual às marcas do iFood / 99Food, na cor da casa. */
.pedido__tipo--app { background: var(--verde) !important; color: #fff !important; border-color: var(--verde) !important; }
.pedido__tipo--app .pedido__selo { border-radius: 50%; background: #fff; }

/* ------------------------------------------------ 📊 DASHBOARD DA TELA INICIAL (17/10/2026) -- */
/* No meio da tela, sem nenhuma tela aberta (publico/dashboard.js). Cada card com a sua cor (--cor), harmonizando
   com o marrom da casa; no centro, o QUADRADO DE CANTOS ARREDONDADOS com o ANEL em volta. */
main:has(#dashboard:not([hidden])) { max-width: 1320px; }
.dash { --dash-gap: 12px; display: flex; flex-direction: column; gap: var(--dash-gap); padding: .2rem 0 1rem; }
.dash__cima { display: grid; grid-template-columns: minmax(0, 1fr) 250px minmax(0, 1fr); gap: var(--dash-gap); align-items: stretch; }
.dash__lado { display: grid; grid-template-rows: repeat(3, 1fr); gap: var(--dash-gap); }
.dash__baixo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dash-gap); }

/* O centro: anel (círculo) girando devagar + quadrado de cantos arredondados escrito DASHBOARD. */
.dash__centro { display: flex; align-items: center; justify-content: center; }
.dash__anel {
  position: relative; width: 236px; height: 236px; border-radius: 50%; display: grid; place-items: center;
  background: radial-gradient(circle, var(--papel) 60%, transparent 61%);
}
.dash__anel::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%; padding: 6px;
  background: conic-gradient(#C2562E, #C98A1A, #5E8B3A, #3F8A5A, #8F613D, #A12F3C, #7B4A6E, #A8742A, #C2562E);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  animation: dash-gira 24s linear infinite;
}
.dash__anel::after { content: ''; position: absolute; inset: 14px; border-radius: 50%; border: 2px dashed var(--dourado); opacity: .7; }
@keyframes dash-gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dash__anel::before { animation: none; } }
.dash__quadro {
  position: relative; z-index: 1; width: 150px; height: 150px; border-radius: 26px;
  background: linear-gradient(150deg, #3a2719 0%, var(--faixa) 70%);
  color: var(--creme); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  box-shadow: 0 10px 26px rgba(40, 27, 17, .35), inset 0 0 0 2px rgba(202, 174, 152, .35);
}
.dash__marca { color: var(--dourado); }
.dash__marca svg { width: 30px; height: 30px; }
.dash__titulo { font-size: 1.12rem; letter-spacing: .12em; font-weight: 900; color: #fff; }
.dash__data { font-size: .82rem; font-weight: 700; color: var(--dourado); }
.dash__hora { font-size: .62rem; letter-spacing: .03em; color: rgba(240, 233, 227, .75); }

/* Os cards. */
.dash-card {
  --cor: #8F613D; position: relative; overflow: hidden; min-width: 0;
  background: #fff; border: 1px solid var(--linha); border-radius: 16px; padding: 10px 14px 10px 18px;
  box-shadow: 0 2px 10px rgba(40, 27, 17, .07);
}
.dash-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--cor); }
.dash-card::after {
  content: ''; position: absolute; right: -40px; top: -40px; width: 120px; height: 120px; border-radius: 50%;
  background: var(--cor); opacity: .08; pointer-events: none;
}
.dash-card__topo { display: flex; align-items: center; gap: 9px; margin-bottom: 4px; }
.dash-card__ico {
  flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: var(--cor); color: #fff; box-shadow: 0 3px 8px color-mix(in srgb, var(--cor) 40%, transparent);
}
.dash-card__ico svg { width: 20px; height: 20px; }
.dash-card__titulo { margin: 0; font-size: .78rem; font-weight: 800; letter-spacing: .04em; color: var(--tinta); text-transform: uppercase; }
.dash-card__num { font-size: 1.6rem; line-height: 1.1; font-weight: 900; color: var(--cor); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-card__num--txt { font-size: 1.05rem; letter-spacing: .02em; white-space: normal; }
.dash-card__leg { font-size: .72rem; font-weight: 700; color: var(--apagado); text-transform: uppercase; margin-top: 1px; }
.dash-card__miolo { margin-top: 6px; display: flex; flex-direction: column; gap: 2px; }

.dash-card--breve { background: transparent; border: 2px dashed var(--linha); box-shadow: none; opacity: .75; }
.dash-card--breve::before, .dash-card--breve::after { display: none; }
.dash-card--breve .dash-card__ico { background: var(--linha); color: var(--apagado); box-shadow: none; }
.dash-card--breve .dash-card__num { color: var(--dourado); font-size: 1rem; letter-spacing: .1em; }

.dash-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.dash-chip {
  font-size: .66rem; font-weight: 800; padding: 3px 8px; border-radius: 999px;
  background: color-mix(in srgb, var(--cor) 12%, #fff); color: var(--tinta); border: 1px solid color-mix(in srgb, var(--cor) 30%, #fff);
}
.dash-chip b { color: var(--cor); margin-left: 2px; }

.dash-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.dash-lista li { position: relative; display: flex; justify-content: space-between; gap: 8px; font-size: .72rem; line-height: 1.25; padding: 3px 7px 6px; border-radius: 7px; overflow: hidden; background: color-mix(in srgb, var(--cor) 6%, #fff); }
.dash-lista__nome { position: relative; z-index: 1; font-weight: 800; color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-lista__val { position: relative; z-index: 1; white-space: nowrap; color: var(--tinta); font-variant-numeric: tabular-nums; }
.dash-lista__barra { position: absolute; left: 0; bottom: 0; height: 3px; background: var(--cor); border-radius: 0 3px 3px 0; opacity: .85; }

.dash-par { display: flex; justify-content: space-between; gap: 8px; font-size: .72rem; line-height: 1.3; padding: 2px 0; border-bottom: 1px dashed var(--linha); }
.dash-par:last-child { border-bottom: 0; }
.dash-par span { color: var(--apagado); font-weight: 700; }
.dash-par b { color: var(--tinta); white-space: nowrap; font-variant-numeric: tabular-nums; }
.dash-par--alerta b { color: #A12F3C; }
.dash-par--atencao b { color: #B4730F; }

.dash-var { font-weight: 900; white-space: nowrap; }
.dash-var--sobe { color: #3F8A5A; }
.dash-var--desce { color: #A12F3C; }
.dash-var--neutro { color: var(--apagado); }
.dash-cresc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.dash-cresc .dash-var {
  display: flex; flex-direction: column; align-items: center; text-align: center; font-size: .9rem;
  background: var(--papel); border-radius: 10px; padding: 5px 4px; white-space: normal;
}
.dash-cresc small { font-size: .55rem; font-weight: 700; color: var(--apagado); white-space: normal; line-height: 1.2; }

.dash-graf { width: 100%; height: auto; max-height: 170px; display: block; }
.dash-graf line { stroke: var(--linha); stroke-width: 2; }
.dash-graf rect { fill: var(--dourado); }
.dash-graf__atual rect { fill: var(--cor); }
.dash-graf text { text-anchor: middle; font-family: inherit; }
.dash-graf__val { font-size: 9px; font-weight: 800; fill: var(--tinta); }
.dash-graf__mes { font-size: 10px; font-weight: 800; fill: var(--tinta); }
.dash-graf__ped { font-size: 8px; font-weight: 700; fill: var(--apagado); }

.dash-fonte { margin: 2px 0 0; font-size: .6rem; line-height: 1.3; color: var(--apagado); text-transform: uppercase; }
.dash-fonte--aviso { color: #B4730F; font-weight: 700; }
.dash-nada { margin: 4px 0; font-size: .75rem; font-weight: 700; color: var(--apagado); text-align: center; }

/* TABLET: o centro em cima, os cards em duas colunas. */
@media (max-width: 1050px) {
  .dash__cima { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dash__centro { grid-column: 1 / -1; order: -1; }
  .dash__baixo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* CELULAR: uma coluna só. */
@media (max-width: 640px) {
  .dash__cima, .dash__baixo { grid-template-columns: minmax(0, 1fr); }
  .dash__lado { grid-template-rows: none; }
  .dash__anel { width: 200px; height: 200px; }
  .dash__quadro { width: 128px; height: 128px; border-radius: 22px; }
  .dash__titulo { font-size: .92rem; letter-spacing: .08em; }
  .dash-card__num { font-size: 1.55rem; }
}
/* DASHBOARD (Mateus, 17/10/2026): título simples no alto (2 colunas) e os cards em 3 colunas; no celular, 1. */
.dash__faixa { display: flex !important; justify-content: space-between; align-items: center; gap: 1rem; padding-inline: 1.2rem !important; }
.dash__faixa b { letter-spacing: .14em; } .dash__faixa span { font-size: .8rem; font-weight: 700; color: var(--dourado); }
.dash__grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dash-gap, 12px); }
@media (max-width: 900px) { .dash__grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .dash__grade { grid-template-columns: 1fr; } .dash__faixa { flex-direction: column; gap: .2rem; } }
/* DASHBOARD: período no título; cards ALINHADOS e CENTRALIZADOS (Mateus, 17/10/2026). */
.dash__faixa { flex-wrap: wrap; } .dash__periodo { display: inline-flex; align-items: center; gap: .5rem; color: #fff !important; font-size: .8rem; }
.dash__periodo label { display: inline-flex; align-items: center; gap: .3rem; font-weight: 800; }
.dash__periodo input { height: 2rem; border-radius: 8px; border: 1px solid var(--dourado); padding: 0 .4rem; font-weight: 700; }
.dash__hora2 { font-size: .75rem; font-weight: 700; color: var(--dourado); }
.dash__grade { max-width: 1400px; margin: 0 auto; width: 100%; align-items: stretch; }
.dash-card { text-align: center; }
.dash-card__topo { justify-content: center; }
.dash-card__num, .dash-card__leg { text-align: center; }
.dash-chips { justify-content: center; }
.dash-card__miolo { align-items: stretch; text-align: left; }
.dash__periodo { align-items: flex-end !important; gap: .6rem !important; flex-wrap: wrap; justify-content: center; }
.dash__periodo label { flex-direction: column !important; align-items: center !important; gap: .15rem !important; font-size: .68rem; letter-spacing: .04em; }
.dash__periodo label span { text-align: center; white-space: nowrap; }
.dash__periodo input { width: 9.5rem; max-width: 100%; }
.dash__periodo .botao { align-self: flex-end; height: 2rem; padding: 0 .8rem; white-space: nowrap; }
.dash__faixa { justify-content: space-between; padding-block: .45rem !important; }
@media (max-width: 700px) { .dash__faixa { justify-content: center; text-align: center; } }
/* FAIXA DO DASHBOARD (17/10/2026): o ".faixa span" geral põe todo span em position:absolute à direita — aqui não. Três partes: título | período | atualizado. */
.dash__faixa { display: grid !important; grid-template-columns: auto 1fr auto; align-items: center; gap: .6rem 1rem; padding: .5rem 1rem !important; text-align: left; }
.dash__faixa span, .dash__faixa label, .dash__faixa label span { position: static !important; right: auto !important; top: auto !important; }
.dash__periodo { justify-self: center; display: inline-flex !important; }
.dash__hora2 { justify-self: end; white-space: nowrap; }
@media (max-width: 900px) { .dash__faixa { grid-template-columns: 1fr; justify-items: center; text-align: center; } .dash__hora2 { justify-self: center; } }
/* DASHBOARD NA ÁREA LIVRE, SEM ROLAGEM (17/10/2026): título + datas no centro; a grade 3x3 divide a altura que sobra. */
.dash { overflow: hidden; padding-bottom: 0 !important; }
.dash__faixa { grid-template-columns: 1fr auto 1fr !important; }
.dash__vazio { display: block; }
.dash__grade { flex: 1 1 auto; min-height: 0; grid-template-rows: repeat(3, minmax(0, 1fr)); }
.dash-card { min-height: 0; overflow: hidden; padding-top: .5rem !important; padding-bottom: .5rem !important; }
.dash-card__miolo { overflow: hidden; }
.dash-card .dash-graf { max-height: 100%; }
@media (max-width: 900px) { .dash { height: auto !important; overflow: visible; } .dash__grade { grid-template-rows: none; } .dash__faixa { grid-template-columns: 1fr !important; } .dash__vazio { display: none; } }
/* CARDS COMPACTOS PARA CABER SEM ROLAGEM (17/10/2026). */
@media (min-width: 901px) {
  .dash { gap: 8px !important; } .dash__grade { gap: 8px !important; }
  .dash-card { padding: .4rem .7rem .4rem 1rem !important; }
  .dash-card__topo { margin-bottom: 1px !important; gap: 6px !important; }
  .dash-card__ico { width: 24px !important; height: 24px !important; } .dash-card__ico svg { width: 15px !important; height: 15px !important; }
  .dash-card__titulo { font-size: .68rem !important; }
  .dash-card__num { font-size: 1.22rem !important; }
  .dash-card__leg { font-size: .62rem !important; }
  .dash-card__miolo { margin-top: 3px !important; gap: 1px !important; }
  .dash-par { font-size: .64rem !important; line-height: 1.12 !important; padding: 1px 0 !important; }
  .dash-lista { gap: 2px !important; } .dash-lista li { font-size: .63rem !important; padding: 1px 6px 3px !important; line-height: 1.1 !important; }
  .dash-chip { font-size: .6rem !important; padding: 1px 6px !important; }
  .dash-fonte { font-size: .56rem !important; margin: 2px 0 0 !important; line-height: 1.1 !important; }
  .dash-graf { height: auto; max-height: 120px; }
}
/* TRIBUTOS: a frase do contador em destaque, amarela com vermelho (17/10/2026). */
.dash-alerta { margin: 4px 0 0; padding: 3px 8px; border-radius: 8px; background: #fff3b0; border: 1.5px solid #c0392b; color: #b3261e; font-size: .64rem; font-weight: 900; letter-spacing: .02em; text-align: center; line-height: 1.2; }
/* ÚLTIMOS 6 MESES: o gráfico se ajusta ao espaço que sobra no card (sem rolagem). */
@media (min-width: 901px) {
  .dash-card { display: flex !important; flex-direction: column; }
  .dash-card__miolo { flex: 1 1 auto; min-height: 0; }
  .dash-card__miolo .dash-graf { flex: 1 1 auto; min-height: 40px; height: 100%; max-height: none !important; width: 100%; }
}
.dash-par--forte span, .dash-par--forte b { color: var(--tinta) !important; font-weight: 900 !important; }
/* FRASE PADRÃO DO CONTADOR em toda tela fiscal (17/10/2026): amarela com vermelho, igual à do Dashboard. */
.alerta-contador { margin: .4rem auto .5rem; padding: .3rem .8rem; border-radius: 10px; background: #fff3b0; border: 1.5px solid #c0392b; color: #b3261e; font-size: .78rem; font-weight: 900; letter-spacing: .02em; text-align: center; line-height: 1.25; max-width: 60rem; }
/* PEDIDOS POR INTEGRAÇÃO responsivo (17/10/2026): muitas origens = 2 colunas compactas; nome longo corta com "…", o valor nunca sai do card. */
.dash-integ { min-height: 0; overflow: hidden; }
.dash-integ .dash-lista li { min-width: 0; }
.dash-integ .dash-lista__nome { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dash-integ .dash-lista__val { flex: 0 0 auto; }
.dash-integ--muitas .dash-lista { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px !important; }
.dash-integ--muitas .dash-lista li { font-size: .58rem !important; padding: 1px 5px 3px !important; }
@media (max-width: 600px) { .dash-integ--muitas .dash-lista { grid-template-columns: 1fr; } }
/* (17/10/2026) o número grande e a legenda NÃO encolhem (estavam sendo espremidos e a legenda passava por cima do valor). */
.dash-card__topo, .dash-card__num, .dash-card__leg { flex: 0 0 auto !important; }
.dash-card__num { line-height: 1.2 !important; padding-bottom: 1px; overflow: visible !important; }
.dash-card__leg { margin-top: 2px !important; }
/* ANÁLISE — quadro do MaTIA (Mateus, 17/10/2026): texto CENTRALIZADO; o MaTIA à DIREITA, maior, encostado na borda direita e na base. */
.an-matia { flex-direction: row-reverse !important; align-items: flex-end !important; padding: .7rem 0 0 1.1rem !important; overflow: hidden; gap: .6rem !important; text-align: center; }
.an-matia > div { flex: 1 1 auto; align-self: center; padding-bottom: .7rem; }
.an-matia img { width: 104px !important; height: 104px !important; object-fit: contain; object-position: right bottom; align-self: flex-end; margin: 0 !important; display: block; }
.an-matia .an-fonte { text-align: center; }
.cns-resumo { justify-content: center !important; text-align: center; }
@media (max-width: 600px) { .an-matia img { width: 72px !important; height: 72px !important; } }

/* 📦 EXPORTAR PARA A CONTABILIDADE e ✉ E-MAIL DE ENVIO (Mateus, 17/10/2026) [EXPORTAR-CONTABIL-1710] */
dialog.janela-exportar { width: min(780px, calc(100vw - 1.5rem)); }
dialog.janela-exportar .janela__titulo { flex: 1; text-align: center; }
dialog.janela-exportar .janela__corpo { max-height: 78vh; overflow: auto; }
.ex-linha { justify-content: center; }
.ex-linha .campo { flex: 0 1 13rem; }
.ex-centro { text-align: center; }
.ex-modelos, .ex-destinos { display: flex; flex-wrap: wrap; justify-content: center; gap: .7rem; }
.ex-modelo { display: flex; align-items: center; gap: .6rem; flex: 1 1 15rem; max-width: 21rem; padding: .6rem .8rem;
  border: 2px solid var(--dourado); border-radius: 10px; background: #fff; cursor: pointer; }
.ex-modelo span { display: flex; flex-direction: column; text-align: left; }
.ex-modelo b { color: var(--faixa); }
.ex-modelo small { font-size: .78rem; color: var(--apagado); }
.ex-modelo input, .ex-destino input { width: 20px; height: 20px; accent-color: var(--verde); flex: 0 0 auto; }
.ex-destino { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .3rem;
  flex: 1 1 13rem; max-width: 15rem; padding: .9rem .7rem .7rem; border: 2px solid var(--dourado); border-radius: 12px; background: #fff; cursor: pointer; }
.ex-destino input { position: absolute; top: .5rem; left: .5rem; }
.ex-destino__icone { font-size: 1.8rem; line-height: 1; }
.ex-destino b { color: var(--faixa); letter-spacing: .5px; }
.ex-destino small { font-size: .74rem; color: var(--apagado); line-height: 1.3; }
.ex-destino small .botao { margin-top: .3rem; }
.ex-destino:has(input:checked), .ex-modelo:has(input:checked) { border-color: var(--verde); background: #f7efe8; box-shadow: 0 0 0 2px rgba(143, 97, 61, .18); }
.ex-zap-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-top: .7rem; }
.ex-zap-links .botao { text-decoration: none; }
#em-grupo-email .em-sm-pe { align-items: center; justify-content: center; gap: .7rem; flex-wrap: wrap; }
#em-grupo-email #em-sm-dica { text-align: center; }
fieldset.grupo.em-grupo--foco { box-shadow: 0 0 0 3px var(--dourado); }
@media (max-width: 600px) { .ex-destino, .ex-modelo { max-width: none; } }
.cabecalho .botao--dash { display: inline-flex; align-items: center; gap: .4rem; } .cabecalho .botao--dash .dash-olhos { font-size: 1.15rem; line-height: 1; }

/* 📱 UTILIZA APLICATIVO PRÓPRIO (Mateus, 17/10/2026): a GRADE dos dias da semana nos PARÂMETROS (ABRE / FECHA). */
#aba-parametros .par-app-grade { width: min(960px, 100%); box-sizing: border-box; background: #fff; border: 2px solid var(--p-200, #caae98); border-radius: 14px; padding: 12px 16px; }
#aba-parametros .par-app-grade[hidden] { display: none !important; }
.par-app-grade__tit { margin: 0 0 .4rem; text-align: center; font-weight: 900; letter-spacing: .04em; color: #3a2719; }
.par-app-dia { display: grid; grid-template-columns: 7rem 1fr 2.6rem; align-items: center; gap: .6rem; padding: .35rem 0; border-bottom: 1px dashed #e0d1c6; }
.par-app-dia:last-child { border-bottom: 0; }
.par-app-dia__nome { font-weight: 900; }
.par-app-dia__turnos { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; }
.par-app-dia__fechado { display: none; font-weight: 900; color: #a33; grid-column: 2; grid-row: 1; }
.par-app-dia--fechado .par-app-dia__fechado { display: block; }
.par-app-turno { display: inline-flex; align-items: center; gap: .5rem; }
.par-app-turno label { display: inline-flex; align-items: center; gap: .3rem; }
.par-app-turno i { font-style: normal; font-weight: 800; font-size: .75rem; color: var(--apagado); }
.par-app-turno input[type=time] { width: 7.2rem; height: 2.4rem; text-align: center; }
.par-app-mais, .par-app-tirar { width: 2.4rem; height: 2.4rem; padding: 0; font-weight: 900; font-size: 1.1rem; }
.par-app-grade__acoes { display: flex; justify-content: center; margin-top: .6rem; }
@media (max-width: 40rem) { .par-app-dia { grid-template-columns: 1fr 2.6rem; } .par-app-dia__nome { grid-column: 1 / -1; } .par-app-dia__fechado { grid-column: 1; grid-row: 2; } }
/* 📱 IMPRESSORAS: o que sai quando o pedido vem do aplicativo. */
.imp-app { margin-top: .6rem; padding-top: .5rem; border-top: 1px dashed #e0d1c6; }
.imp-app[hidden] { display: none; }
