/* ==========================================================================
   COMPONENTES - consulta (busca, abas, tabela, paginacao), ficha, etiqueta,
   atalhos da tela inicial.
   ========================================================================== */

/* ---------------------------------------------------------------- Busca */
.busca { position: relative; max-width: 40rem; }
.busca__icone { position: absolute; left: 0.65rem; top: 50%; transform: translateY(-50%); color: var(--texto-suave); pointer-events: none; }
.busca__campo {
  width: 100%;
  min-height: 2.125rem;
  font: inherit; font-size: var(--t-corpo); color: var(--texto);
  background: var(--superficie);
  border: 1px solid var(--linha-forte);
  border-radius: var(--raio-grande);
  padding: 0.3rem 0.75rem 0.3rem 2.1rem;
  box-shadow: var(--sombra-leve);
}
.busca__campo:hover:not(:focus-visible) { border-color: var(--texto-suave); }
.busca__campo:focus-visible { border-color: var(--acento); }
.busca__campo::placeholder { color: var(--texto-suave); }

/* ---------------------------------------------------------------- Abas de filtro (com contagem) */
.abas-filtro { display: flex; gap: 0.25rem; margin-top: 0.6rem; border-bottom: 1px solid var(--linha); overflow-x: auto; }
.aba {
  display: flex; align-items: baseline; gap: 0.4rem;
  padding: 0.35rem 0.7rem 0.4rem;
  border: 0; border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  background: transparent; color: var(--texto-suave);
  font: inherit; font-weight: 600; white-space: nowrap; cursor: pointer;
}
.aba:hover { color: var(--texto); }
.aba[aria-selected="true"] { color: var(--acento); border-bottom-color: var(--acento); }
.aba__contagem { font-size: var(--t-mini); font-weight: 500; font-variant-numeric: tabular-nums; color: var(--texto-suave); }
.aba__contagem:empty { display: none; }

/* ---------------------------------------------------------------- Tabela */
.tabela-rolagem {
  position: relative;
  margin-top: 0.6rem;
  overflow-x: auto;
  background: var(--superficie);
  border: 1px solid var(--linha);
  border-radius: var(--raio-grande);
  box-shadow: var(--sombra-leve);
}
/* Faixa de carregamento no topo enquanto a busca roda (resposta ao que a pessoa digitou) */
.tabela-rolagem:has(> .tabela[aria-busy="true"])::before {
  content: ""; position: absolute; top: 0; left: 0; z-index: 2;
  width: 30%; height: 2px; background: var(--acento);
  animation: carregando 700ms ease-in-out infinite;
}
@keyframes carregando { from { left: -30%; } to { left: 100%; } }
.tabela { width: 100%; border-collapse: collapse; font-size: var(--t-tabela); }
.tabela[aria-busy="true"] tbody { opacity: 0.6; }
.tabela th {
  position: sticky; top: 0;
  height: 2rem;
  padding: 0.25rem 0.65rem;
  background: var(--superficie-2);
  border-bottom: 1px solid var(--linha-forte);
  color: var(--texto-suave);
  font-size: var(--t-pequeno); font-weight: 600;
  text-align: left; white-space: nowrap;
}
.tabela td { height: 1.875rem; padding: 0.3rem 0.65rem; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela tbody tr:last-child td { border-bottom: 0; }
.tabela tbody tr { cursor: pointer; }
.tabela tbody tr:hover { background: var(--superficie-2); }
.tabela tbody tr[aria-selected="true"] { background: var(--acento-suave); box-shadow: inset 3px 0 0 var(--acento); }
.tabela tbody tr:focus-visible { box-shadow: inset 0 0 0 2px var(--acento); border-radius: 0; }
/* Grade compacta (consulta.js com compacta): letra menor e uma linha por registro, como nas centrais */
.tabela--compacta { font-size: var(--t-mini); }
.tabela--compacta th { height: 1.5rem; padding: 0.15rem 0.5rem; font-size: var(--t-mini); }
.tabela--compacta td {
  height: 1.5rem; padding: 0.1rem 0.5rem; vertical-align: middle;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 22rem;
}
.tabela--compacta td .selo { margin-left: 0.3rem; }

/* Titulo de coluna ordenavel */
.ordenar {
  display: inline-flex; align-items: center; gap: 0.2rem;
  padding: 0; border: 0; background: none;
  color: inherit; font: inherit; cursor: pointer;
}
.ordenar:hover { color: var(--texto); }
th[aria-sort="ascending"] .ordenar, th[aria-sort="descending"] .ordenar { color: var(--acento); }
.icone--ordem { width: 0.85rem; height: 0.85rem; }

/* Tipos de coluna */
.col-num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
.col-num .ordenar { flex-direction: row-reverse; }
.col-codigo { font-variant-numeric: tabular-nums; color: var(--texto-suave); white-space: nowrap; }
.col-destaque { font-weight: 700; }
.tabela .secundario { display: block; font-size: var(--t-pequeno); color: var(--texto-suave); }
.estoque-negativo { color: var(--erro); font-weight: 600; }
.tabela__vazia { height: 5rem; }

/* ---------------------------------------------------------------- Rodape: resumo + paginas */
.consulta__rodape { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-top: 0.5rem; }
.consulta__resumo { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.consulta__resumo--erro { color: var(--erro); font-weight: 600; }
.paginacao { display: flex; align-items: center; gap: 0.15rem; }
.paginacao__botao {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 1.75rem; height: 1.75rem; padding: 0 0.4rem;
  border: 0; border-radius: var(--raio);
  background: transparent; color: var(--texto);
  font: inherit; font-size: var(--t-pequeno); font-variant-numeric: tabular-nums; cursor: pointer;
}
.paginacao__botao .icone { width: 1rem; height: 1rem; }
.paginacao__botao:hover:not(:disabled) { background: var(--superficie); }
.paginacao__botao[aria-current="page"] { background: var(--acento); color: var(--sobre-acento); font-weight: 700; }
.paginacao__botao:disabled { opacity: 0.35; cursor: default; }
.paginacao__reticencias { padding: 0 0.2rem; color: var(--texto-suave); }

/* ---------------------------------------------------------------- Ficha (painel lateral) */
.ficha {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(27rem, 100%);
  padding: 1rem 1.25rem 2rem;
  background: var(--superficie);
  border-left: 1px solid var(--linha);
  box-shadow: var(--sombra-painel);
  overflow-y: auto;
  z-index: 3;
  animation: ficha-entra 110ms ease-out;
}
@keyframes ficha-entra { from { transform: translateX(1rem); opacity: 0; } }
.ficha__cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
.ficha__titulo { margin: 0.15rem 0 0; font-size: 1.125rem; font-stretch: var(--largura-titulo); line-height: 1.2; }
.ficha__titulo:focus { box-shadow: none; }
.ficha__subtitulo { margin: 0.2rem 0 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
/* foto do produto no alto da ficha, a direita do codigo / Editar / preco; clique amplia (largura toda) */
.ficha__foto { float: right; display: flex; align-items: center; justify-content: center; width: 9.5rem; height: 9.5rem;
  margin: 0.2rem 0 0.5rem 1rem; padding: 0.25rem; border: 1px solid var(--linha); border-radius: var(--raio);
  background: var(--superficie); cursor: zoom-in; }
.ficha__foto img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.cfor__imagem { display: block; max-width: 100%; max-height: 7rem; object-fit: contain; margin: 0.25rem 0 0.5rem; }
.fornecedor__imagem-ficha { display: block; max-width: 100%; max-height: 8rem; object-fit: contain; }
.ficha__foto--grande { float: none; width: 100%; height: auto; aspect-ratio: 1; margin: 0.5rem 0; cursor: zoom-out; }
.ficha__fim-foto { clear: both; }
@media (max-width: 30rem) { .ficha__foto { width: 7rem; height: 7rem; } }

.dados { display: grid; grid-template-columns: 8.5rem 1fr; gap: 0.35rem 0.85rem; margin: 1rem 0 0; }
.dados dt { color: var(--texto-suave); font-size: var(--t-pequeno); padding-top: 0.05rem; }
.dados dd { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.dados__grupo { grid-column: 1 / -1; margin-top: 0.6rem; padding-top: 0.6rem; border-top: 1px solid var(--linha); font-weight: 700; color: var(--texto) !important; font-size: var(--t-corpo) !important; }

/* Etiqueta de preco: o unico elemento "chamativo" da tela */
.etiqueta {
  position: relative;
  display: flex; flex-direction: column; width: fit-content;
  margin-top: 1rem;
  padding: 0.65rem 1.3rem 0.7rem 2.3rem;
  background: var(--etiqueta);
  color: var(--sobre-etiqueta);
  clip-path: polygon(1.1rem 0, 100% 0, 100% 100%, 1.1rem 100%, 0 50%);
}
.etiqueta::before {
  content: "";
  position: absolute; left: 0.95rem; top: 50%;
  width: 0.6rem; height: 0.6rem; margin-top: -0.3rem;
  border-radius: 50%;
  background: var(--superficie);
}
.etiqueta__valor { font-size: var(--t-preco); font-weight: 700; font-stretch: 80%; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.etiqueta__extra { margin-top: 0.3rem; font-size: var(--t-pequeno); font-weight: 600; }

/* ---------------------------------------------------------------- Inicio: indice das telas por secao */
/* secoes pequenas lado a lado; a secao com muitas telas ocupa a linha e divide a lista em colunas */
.indice { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.25rem 2rem; max-width: 80rem; margin: 1.25rem 0; }
.indice__secao { min-width: 0; }
.indice__secao--larga { grid-column: 1 / -1; }
.indice__secao--larga .indice__lista { columns: 15rem auto; column-gap: 2rem; }
.indice__lista li { break-inside: avoid; }
.indice__titulo {
  display: flex; align-items: center; gap: 0.45rem;
  margin: 0 0 0.3rem; padding-bottom: 0.35rem;
  border-bottom: 1px solid var(--linha-forte);
  font-size: var(--t-subtitulo); font-weight: 700; font-stretch: var(--largura-titulo);
}
.indice__titulo .icone { color: var(--acento); }
.indice__lista { list-style: none; margin: 0; padding: 0; }
.indice__item {
  display: block; padding: 0.25rem 0.4rem; margin: 0 -0.4rem;
  border-radius: var(--raio);
  color: var(--texto); text-decoration: none;
}
.indice__item:hover { background: var(--superficie); color: var(--acento); }
.inicio__nota { margin-top: 0.5rem; font-size: var(--t-pequeno); max-width: 60ch; }

/* atalhos (cartoes): mantidos para telas que ainda os usem */
.atalhos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 0.5rem; }
.atalho {
  display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 0.65rem;
  padding: 0.6rem 0.75rem;
  background: var(--superficie);
  border: 1px solid var(--linha);
  border-radius: var(--raio-grande);
  color: var(--texto); text-decoration: none;
}
.atalho:hover { border-color: var(--acento); }
.atalho__icone { grid-row: span 2; align-self: center; width: 1.25rem; height: 1.25rem; color: var(--acento); }
.atalho__titulo { font-weight: 600; }
.atalho__secao { font-size: var(--t-pequeno); color: var(--texto-suave); }

/* ---------------------------------------------------------------- Celular */
@media (max-width: 900px) {
  .tabela .secundario.so-celular { display: block !important; }
  .dados { grid-template-columns: 1fr; gap: 0.1rem; }
  .dados dd { margin-bottom: 0.5rem; }
  .ficha { z-index: 7; }
}

/* ==========================================================================
   FORMULARIOS (cadastro) - grade de 12 colunas, campos, busca em tabela,
   resumo de erros, barra de acoes fixa e avisos.
   ========================================================================== */

.pagina__acao { margin-left: auto; }
.botao--pequeno { min-height: var(--altura-pequena); padding: 0.15rem 0.6rem; font-size: var(--t-pequeno); }
.link { padding: 0; border: 0; background: none; color: var(--acento); font: inherit; text-decoration: underline; cursor: pointer; text-align: left; }
.ficha__editar { margin-top: 0.6rem; text-decoration: none; }
.pagina__trilha a { color: inherit; text-underline-offset: 2px; }
.pagina__trilha a:hover { color: var(--acento); }

.form { display: grid; gap: 0.5rem; max-width: 76rem; padding-bottom: 4rem; }
/* conteudo proprio da secao (secao.elemento): sempre na ultima coluna, a dos campos (uma coluna so no celular) */
.form__secao > .form__secao-extra { grid-column: -2 / -1; }
.form__secao {
  display: grid; grid-template-columns: minmax(10rem, 13rem) 1fr; gap: 1.25rem;
  padding: 1rem 0;
  border-top: 1px solid var(--linha);
}
.form__secao:first-child { border-top: 0; padding-top: 0.25rem; }
.form__secao-titulo { margin: 0; font-size: var(--t-subtitulo); font-weight: 700; font-stretch: var(--largura-titulo); }
.form__secao-descricao { margin: 0.25rem 0 0; font-size: var(--t-pequeno); color: var(--texto-suave); max-width: 30ch; }
.form__grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.6rem 0.75rem; align-items: start; }

/* Largura do campo em colunas da grade (definicao "largura" do campo) */
.campo--l1 { grid-column: span 1; } .campo--l2 { grid-column: span 2; } .campo--l3 { grid-column: span 3; } .campo--l4 { grid-column: span 4; } .campo--l5 { grid-column: span 5; } .campo--l6 { grid-column: span 6; } .campo--l7 { grid-column: span 7; } .campo--l8 { grid-column: span 8; } .campo--l9 { grid-column: span 9; } .campo--l10 { grid-column: span 10; } .campo--l11 { grid-column: span 11; } .campo--l12 { grid-column: span 12; }

.campo input, .campo select, .campo textarea {
  width: 100%; min-height: var(--altura-campo);
  font: inherit; color: var(--texto);
  background: var(--superficie);
  border: 1px solid var(--linha-forte);
  border-radius: var(--raio);
  padding: 0.25rem 0.5rem;
}
.campo select { padding-right: 1.5rem; }
.campo textarea { line-height: 1.4; resize: vertical; }
.campo select:hover:not(:focus-visible), .campo textarea:hover:not(:focus-visible) { border-color: var(--texto-suave); }
.campo select:focus-visible, .campo textarea:focus-visible { border-color: var(--acento); }
.campo input:read-only { background: var(--superficie-2); color: var(--texto-suave); }
.campo input[aria-invalid="true"], .campo select[aria-invalid="true"] { border-color: var(--erro); box-shadow: 0 0 0 1px var(--erro); }
.campo__obrigatorio { color: var(--erro); }
.campo__dica { margin: 0; font-size: var(--t-mini); color: var(--texto-suave); line-height: 1.3; }
/* "Rota: ..." embaixo da cidade no cliente (fora de .campo__dica, que o formulario compacto esconde) */
.cliente__rota { margin: 0.15rem 0 0; font-size: var(--t-mini); line-height: 1.3; color: var(--acento); font-weight: 600; }
.cliente__rota[hidden] { display: none; }
.campo__erro { margin: 0; font-size: var(--t-pequeno); font-weight: 600; color: var(--erro); }
.campo__erro:empty { display: none; }

/* Numero com R$ / % / kg */
.campo__grupo { display: flex; align-items: stretch; }
.campo__grupo input { text-align: right; font-variant-numeric: tabular-nums; }
.campo__adorno {
  display: inline-flex; align-items: center; padding: 0 0.45rem;
  background: var(--superficie-2); color: var(--texto-suave); font-size: var(--t-pequeno);
  border: 1px solid var(--linha-forte);
}
.campo__adorno:first-child { border-right: 0; border-radius: var(--raio) 0 0 var(--raio); }
.campo__adorno:last-child { border-left: 0; border-radius: 0 var(--raio) var(--raio) 0; }
.campo__grupo .campo__adorno:first-child + input { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.campo__grupo input:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }

/* Sim/nao */
.campo--logico { align-self: end; min-height: var(--altura-campo); justify-content: center; }
.campo__marcar { display: flex; align-items: center; gap: 0.45rem; font-weight: 500 !important; color: var(--texto) !important; font-size: var(--t-corpo) !important; cursor: pointer; }
.campo__marcar input { width: 0.95rem; height: 0.95rem; min-height: 0; margin: 0; accent-color: var(--acento); }

/* Busca em tabela (combobox): codigo + nome ao lado + lista de sugestoes */
.combo { position: relative; display: flex; align-items: center; gap: 0.6rem; }
.campo .campo__codigo { width: 6.5rem; flex: none; }
.campo__nome { color: var(--texto-suave); font-size: var(--t-pequeno); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.combo__lista {
  position: absolute; top: calc(100% + 0.2rem); left: 0; z-index: 5;
  width: max(100%, 22rem); max-height: 18rem; overflow-y: auto;
  margin: 0; padding: 0.2rem; list-style: none;
  background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio-grande);
  box-shadow: var(--sombra-painel);
}
.combo__opcao { display: flex; gap: 0.6rem; padding: 0.3rem 0.5rem; border-radius: var(--raio); cursor: pointer; font-size: var(--t-tabela); }
.combo__opcao:hover, .combo__opcao[aria-selected="true"] { background: var(--acento-suave); }
.combo__codigo { min-width: 3.5rem; color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.combo__vazio { padding: 0.4rem 0.5rem; color: var(--texto-suave); font-size: var(--t-pequeno); }

/* Telefones */
.campo--telefones { border: 0; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.campo--telefones legend { padding: 0; margin-bottom: 0.2rem; font-weight: 600; font-size: var(--t-pequeno); color: var(--texto-suave); }
.telefones { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 0.4rem 0.75rem; }
.telefone { display: flex; gap: 0.35rem; align-items: center; }
.campo .telefone__ddd { width: 3.6rem; flex: none; }
.campo--telefones .botao { justify-self: start; }

/* lista de linhas de texto (descricao tecnica do produto) */
.linhas { display: grid; gap: 0.35rem; margin-bottom: 0.4rem; }
.linhas__item { display: flex; gap: 0.35rem; align-items: center; }
.linhas__item input { flex: 1; min-width: 0; }

/* margem embaixo de cada preco do produto: verde >= 15%, vermelha abaixo */
.margem-preco { margin: 0.15rem 0 0; font-size: var(--t-pequeno); font-weight: 700; min-height: 1em; }
.margem-preco--boa { color: var(--sucesso); }
.margem-preco--baixa { color: var(--erro); }

/* foto do produto no cadastro */
.foto-produto { display: grid; gap: 0.5rem; justify-items: center; }
.foto-produto__quadro { width: 100%; aspect-ratio: 1; max-width: 16rem; display: grid; place-items: center;
  background: var(--superficie-2); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.foto-produto__quadro img { width: 100%; height: 100%; object-fit: contain; }
.foto-produto__vazio { color: var(--texto-suave); font-size: var(--t-pequeno); }
.foto-produto__acoes { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; }
/* logos da empresa (cadastro de empresas do sistema) */
.empresa-logo__grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem; }
.empresa-logo__titulo { margin: 0; font-size: var(--t-normal, 1rem); }
.empresa-logo__dica, .empresa-logo__aviso { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.empresa-logo__quadro { aspect-ratio: 3 / 2; max-width: 14rem; }

/* Grade de linhas (campos.js grade): cabecalho com os rotulos, celulas sem rotulo visivel */
.campo--grade { border: 0; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.campo--grade legend { padding: 0; margin-bottom: 0.2rem; font-weight: 600; font-size: var(--t-pequeno); color: var(--texto-suave); }
.grade__linhas { display: grid; gap: 0.3rem; }
.grade__linha { display: grid; gap: 0.5rem; align-items: start; }
.grade__cabecalho { font-size: var(--t-mini); font-weight: 600; color: var(--texto-suave); }
.grade__linha > .campo { grid-column: auto; min-width: 0; } /* sem o span das larguras do formulario */
.grade__linha > .campo > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.grade__linha > .campo .campo__erro:empty { display: none; }
.grade__remover { align-self: center; }
.grade__vazio { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.campo--grade > .botao { justify-self: start; }

/* Senha + confirmacao lado a lado */
.campo__senha { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }

/* Permissoes por modulo (usuarios) */
.campo--permissoes { border: 0; margin: 0; padding: 0; }
.permissoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 0.5rem; }
.permissao { margin: 0; padding: 0.4rem 0.65rem 0.5rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); display: flex; flex-wrap: wrap; gap: 0.3rem 0.85rem; align-items: center; }
.permissao legend { padding: 0 0.25rem; font-weight: 600; font-size: var(--t-pequeno); }
.permissao__opcao { display: inline-flex; align-items: center; gap: 0.3rem; font-size: var(--t-pequeno); cursor: pointer; }
.campo .permissao__opcao input { flex: none; width: auto; height: auto; min-height: 0; margin: 0; } /* nao herda o tamanho dos campos de texto */
.permissao__todas { margin-left: auto; font-size: var(--t-mini); }
@media (max-width: 700px) {
  .grade__cabecalho { display: none; }
  .grade__linha { grid-template-columns: minmax(0, 1fr) 2.5rem !important; padding-bottom: 0.5rem; border-bottom: 1px solid var(--linha); }
  .grade__linha > .campo { grid-column: 1; }
  .grade__linha > .campo > label { position: static; width: auto; height: auto; clip: auto; }
  .grade__remover { grid-column: 2; grid-row: 1; }
}

/* Resumo de erros, aviso de permissao, barra de acoes */
.form__resumo {
  max-width: 76rem; margin-bottom: 0.75rem; padding: 0.6rem 0.85rem;
  border: 1px solid var(--erro); border-left-width: 4px; border-radius: var(--raio);
  background: var(--alerta-suave);
}
.form__resumo-titulo { margin: 0; font-weight: 700; color: var(--erro); }
.form__resumo ul { margin: 0.3rem 0 0; padding-left: 1.1rem; }
.form__aviso { max-width: 76rem; margin: 0 0 0.75rem; padding: 0.5rem 0.8rem; border-radius: var(--raio); background: var(--superficie-2); color: var(--texto-suave); }
.form__acoes {
  position: sticky; bottom: 0; z-index: 2;
  display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem;
  margin: 0 calc(-1 * clamp(0.75rem, 1.6vw, 1.5rem));
  padding: 0.55rem clamp(0.75rem, 1.6vw, 1.5rem);
  background: var(--superficie);
  border-top: 1px solid var(--linha);
  box-shadow: 0 -4px 12px rgba(15, 28, 52, 0.05);
}
.form__acoes .botao--secundario { text-decoration: none; }
.form__legenda { margin: 0 auto 0 0; font-size: var(--t-mini); color: var(--texto-suave); }

/* Excluir (acao destrutiva): contorno vermelho na barra; cheio so na confirmacao */
.botao--perigo { background: var(--erro); color: #fff; }
.botao--perigo:hover:not(:disabled) { filter: brightness(0.92); }
.botao--perigo-contorno { background: var(--superficie); color: var(--erro); border-color: var(--erro); }
.botao--perigo-contorno:hover:not(:disabled) { background: var(--alerta-suave); }

/* Pergunta de confirmacao (componentes/confirmacao.js) */
.dialogo {
  width: min(26rem, calc(100vw - 2rem)); padding: 1.1rem 1.25rem 1rem;
  border: 1px solid var(--linha); border-radius: var(--raio-grande);
  background: var(--superficie); color: var(--texto); box-shadow: var(--sombra-painel);
}
.dialogo[open] { animation: dialogo-entra 110ms ease-out; }
@keyframes dialogo-entra { from { opacity: 0; transform: translateY(0.4rem) scale(0.99); } }
.dialogo::backdrop { background: rgba(8, 15, 28, 0.45); }
.dialogo__titulo { margin: 0 0 0.4rem; font-size: var(--t-subtitulo); font-stretch: var(--largura-titulo); }
.dialogo__texto { margin: 0 0 1rem; color: var(--texto-suave); line-height: 1.5; }
.dialogo__acoes { display: flex; justify-content: flex-end; gap: 0.5rem; flex-wrap: wrap; }
.dialogo__campo { margin: 0 0 1rem; }
.dialogo__campo .pedido__avisos { margin-top: 0.6rem; }

/* Avisos rapidos (canto inferior) */
.avisos { position: fixed; right: 1rem; bottom: 4rem; z-index: 10; display: grid; gap: 0.4rem; }
.aviso {
  margin: 0; padding: 0.55rem 0.85rem; border-radius: var(--raio-grande);
  background: var(--texto); color: var(--superficie);
  box-shadow: var(--sombra-painel); font-weight: 600;
  animation: aviso-entra 120ms ease-out;
}
.aviso--erro { background: var(--erro); color: #fff; }
.aviso--atencao { background: var(--acento); color: var(--sobre-acento); }
@keyframes aviso-entra { from { transform: translateY(0.4rem); opacity: 0; } }

@media (max-width: 900px) {
  .form__secao { grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
  .form__grade > .campo { grid-column: span 12; }
  .form__grade > .campo--logico { grid-column: span 12; }
  .form__acoes { margin: 0 -1rem; padding: 0.55rem 1rem; }
}

/* Botao de acao junto ao campo (ex.: Buscar dados do CNPJ) */
.campo__acao { justify-self: start; margin-top: 0.1rem; }


/* Pedido de venda (telas/pedido-form.js): conteudo + painel de totais fixo ao lado */
.pedido__corpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 1.25rem; align-items: start; }
.pedido__totais { margin: 0.4rem 0 0.75rem; }
/* no pedido o titulo da secao vai em cima: os itens precisam da largura toda */
.pedido .form__secao { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
.pedido__mais { list-style: none; margin-left: -1.1rem; }
.pedido__mais summary { cursor: pointer; }
.pedido__totais { position: sticky; top: 0.75rem; padding: 0.75rem 0.9rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); box-shadow: var(--sombra-leve); }
.pedido__totais-titulo { margin: 0 0 0.45rem; font-size: var(--t-subtitulo); font-stretch: var(--largura-titulo); }
.pedido__totais-lista { display: grid; grid-template-columns: 1fr auto; gap: 0.2rem 0.75rem; margin: 0; font-size: var(--t-pequeno); }
.pedido__totais-lista dt { color: var(--texto-suave); }
.pedido__totais-lista dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.pedido__totais-lista dd.secundario { grid-column: 1 / -1; text-align: left; color: var(--texto-suave); }
.pedido__totais-lista .pedido__total { font-size: var(--t-subtitulo); font-weight: 700; color: var(--texto); padding-top: 0.3rem; border-top: 1px solid var(--linha); }
.pedido__margem-baixa { color: var(--erro); font-weight: 600; }
.pedido__pendencias, .pedido__avisos { margin: 0.6rem 0 0; padding-left: 1.1rem; font-size: var(--t-pequeno); }
.pedido__pendencias { color: var(--erro); font-weight: 600; }
.pedido__avisos { color: var(--texto-suave); }
.pedido__cliente { margin: -0.3rem 0 0; font-size: var(--t-pequeno); color: var(--texto-suave); display: flex; gap: 0.6rem; flex-wrap: wrap; align-items: center; }
.pedido__cliente-linha { min-height: 0; }
/* sugestao de preco: o seletor da base precisa caber "Preço à vista" */
.campo .campo__grupo .pedido__modo.pedido__sug-base { flex: 0 0 7.6rem; width: 7.6rem; }
/* "Usar observacao cadastrada" na frente do titulo Observacoes */
.form__secao-cabecalho--com-campo { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 1rem; }
.pedido__obs-cadastrada { flex-direction: row; align-items: center; gap: 0.45rem; width: min(26rem, 100%); }
.pedido__obs-cadastrada > label { white-space: nowrap; }
.pedido__obs-cadastrada .combo { flex: 1; min-width: 0; }
.pedido__endereco { margin: 0; font-size: var(--t-pequeno); color: var(--texto); }
.pedido__endereco:empty { display: none; }
/* nome do cliente como link para o painel de informacoes (pnlInfCli do desktop) */
.pedido__campo-cliente { position: relative; }
.campo__nome.pedido__nome-cliente--link { color: var(--acento); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.campo__nome.pedido__nome-cliente--link:hover { color: var(--acento-hover); }
.info-cliente {
  position: absolute; top: 100%; left: 0; z-index: 6; margin-top: 0.25rem;
  width: min(34rem, calc(100vw - 2rem)); max-height: 70vh; overflow-y: auto;
  padding: 0.5rem 0.75rem 0.65rem;
  background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio-grande);
  box-shadow: var(--sombra-painel); font-size: var(--t-pequeno);
}
.info-cliente__cabecalho { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding-bottom: 0.35rem; border-bottom: 1px solid var(--linha); }
.info-cliente__bloco { padding: 0.4rem 0 0.1rem; }
.info-cliente__bloco + .info-cliente__bloco { border-top: 1px solid var(--linha); }
.info-cliente__titulo { margin: 0 0 0.15rem; font-size: var(--t-mini); font-weight: 600; color: var(--texto-suave); }
.info-cliente__linha { margin: 0; font-weight: 600; color: var(--texto); }
.info-cliente__destaque { color: var(--erro); }
.info-cliente__vazio { font-weight: 400; color: var(--texto-suave); }
.campo .campo__grupo .pedido__modo { flex: 0 0 4.2rem; width: 4.2rem; min-width: 0; padding: 0 0.35rem; border: 0; border-right: 1px solid var(--linha-forte); background: var(--superficie-2); color: var(--texto); }
.form__secao--larga { grid-template-columns: minmax(0, 1fr); }
.pedido__adicionar { margin-bottom: 0.5rem; }
.pedido__adicionar-botao { align-self: end; }
.pedido__itens { overflow-x: auto; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.pedido__tabela { min-width: 58rem; margin: 0; }
.pedido__tabela td, .pedido__tabela th { height: auto; padding: 0.2rem 0.35rem; vertical-align: middle; }
.pedido__tabela input, .pedido__tabela select { width: 100%; min-width: 0; min-height: 1.625rem; padding: 0.15rem 0.3rem; font: inherit; font-size: var(--t-pequeno);
  border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); color: var(--texto); }
.pedido__tabela input:focus-visible, .pedido__tabela select:focus-visible { border-color: var(--acento); }
.pedido__num { width: 5rem !important; text-align: right; font-variant-numeric: tabular-nums; }
.pedido__cst { width: 3.2rem !important; }
/* produto do item numa linha so: codigo + nome cortado (o nome inteiro fica no title) */
.pedido__produto { white-space: nowrap; }
.pedido__codigo { font-variant-numeric: tabular-nums; }
.pedido__seq { color: var(--texto-suave); font-size: var(--t-mini); }
.pedido__nome { display: inline-block; vertical-align: bottom; min-width: 8rem; max-width: 16rem; margin-left: 0.5rem; overflow: hidden; text-overflow: ellipsis; color: var(--texto-suave); font-size: var(--t-mini); }
.pedido__tabela select { min-width: 5.4rem; }
.pedido__adicionar-botao { display: flex; flex-direction: row; gap: 0.5rem; flex-wrap: wrap; }
/* digitacao e alteracao (canto superior direito) */
.pedido__registro { margin-left: auto; text-align: right; font-size: var(--t-mini); color: var(--texto-suave); line-height: 1.4; }
.pedido__registro p { margin: 0; }
/* margem do item antes de adicionar: verde >= 15%, vermelha abaixo */
.campo .campo__grupo .pedido__margem-item { flex: 0 0 auto; align-self: center; padding: 0 0.45rem; font-size: var(--t-pequeno); font-weight: 700; white-space: nowrap; }
.pedido__adicionar [data-campo="novoPreco"] input { min-width: 5.5rem; border-radius: var(--raio); }
.pedido__margem-item--boa { color: var(--sucesso); }
.pedido__margem-item--baixa { color: var(--erro); }
/* painel do produto escolhido (PreencheDadosPro do desktop) */
.pedido__painel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 0.9rem; align-items: start; margin-top: 0.5rem; padding: 0.5rem 0.7rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie-2); font-size: var(--t-pequeno); }
.pedido__painel-info { min-width: 0; }
/* foto do produto (FIGPROD) ao lado do painel; clique amplia */
.pedido__foto { display: flex; align-items: center; justify-content: center; width: 8rem; height: 8rem; padding: 0.25rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); cursor: zoom-in; }
.pedido__foto img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.pedido__foto--grande { width: 20rem; height: 20rem; cursor: zoom-out; }
@media (max-width: 700px) {
  .pedido__painel { grid-template-columns: minmax(0, 1fr); }
  .pedido__foto--grande { width: 100%; }
}
.pedido__painel-dados { margin: 0 0 0.4rem; color: var(--texto-suave); }
.pedido__painel-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0.4rem 1rem; }
.pedido__painel-titulo { margin: 0 0 0.2rem; font-size: var(--t-pequeno); font-weight: 700; color: var(--texto); }
.pedido__painel-tabela { width: 100%; border-collapse: collapse; font-size: var(--t-mini); font-variant-numeric: tabular-nums; }
.pedido__painel-tabela th { text-align: left; font-weight: 600; color: var(--texto-suave); border-bottom: 1px solid var(--linha); padding: 0.1rem 0.3rem 0.1rem 0; }
.pedido__painel-tabela td { padding: 0.1rem 0.3rem 0.1rem 0; color: var(--texto); }
.pedido__painel-vazio { margin: 0; color: var(--texto-suave); font-size: var(--t-mini); }
.pedido__painel-precos { display: flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; margin-top: 0.45rem; padding-top: 0.4rem; border-top: 1px solid var(--linha); }
.pedido__painel-valor { display: flex; gap: 0.35rem; align-items: baseline; font-variant-numeric: tabular-nums; }
.pedido__painel-rotulo { color: var(--texto-suave); }
.pedido__painel-valor--sem-estoque strong { color: var(--erro); }
/* telas largas: totais fixos ao lado; nas demais ficam abaixo dos itens */
@media (min-width: 1400px) {
  .pedido__corpo { grid-template-columns: minmax(0, 1fr) 17rem; }
  .pedido__corpo > .form__secao { grid-column: 1; }
  .pedido__corpo > .pedido__totais { grid-column: 2; grid-row: 1 / span 4; margin: 0; }
}
@media (max-width: 1399px) {
  .pedido__totais { position: static; }
  .pedido__totais-lista { grid-template-columns: repeat(auto-fill, minmax(9rem, auto) minmax(7rem, auto)); }
}

/* ---------------------------------------------------------------- atendimento */
.atend { grid-template-columns: minmax(0, 1fr); }
.atend__cliente { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; align-items: baseline; font-size: var(--t-pequeno); }
.atend__cliente:empty { display: none; }
.atend__dado { display: flex; flex-direction: column; gap: 0.05rem; }
.atend__dado span { color: var(--texto-suave); font-size: var(--t-mini); }
.atend__dado strong { font-weight: 600; font-variant-numeric: tabular-nums; }
.atend__dado--alerta strong { color: var(--erro); }
.atend__obs { flex-basis: 100%; margin: 0; color: var(--erro); }
.atend__tabela { min-width: 40rem; margin: 0; }
.atend__tabela td, .atend__tabela th { height: auto; padding: 0.2rem 0.35rem; vertical-align: middle; }
.atend__tabela input { min-height: 1.625rem; padding: 0.15rem 0.3rem; font: inherit; font-size: var(--t-pequeno); border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); color: var(--texto); }
.atend__total { margin: 0.5rem 0 0; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------------- formulario compacto
   Pedido, nota e atendimento sao telas de digitacao: densas como o desktop (texto 12px,
   campos de 24px), secoes em cartoes e o produto do item numa linha so. */
.pagina__cabecalho--compacto { min-height: 2.25rem; margin-bottom: 0.5rem; }
.pagina__cabecalho--compacto .pagina__titulo { font-size: 1.125rem; }
.form--compacto { --altura-campo: 1.5rem; --altura-pequena: 1.375rem; max-width: 100rem; gap: 0.6rem; font-size: var(--t-pequeno); }
.form--compacto .campo { gap: 0.1rem; }
.form--compacto .campo label { font-size: var(--t-mini); }
.form--compacto .campo input, .form--compacto .campo select, .form--compacto .campo textarea { padding: 0.1rem 0.4rem; }
.form--compacto .campo select { padding-right: 1.3rem; }
.form--compacto .campo .campo__codigo { width: 5rem; }
/* codigo com tamanho conhecido (campos.js: produtos 7, fornecedores 5, planos 3): largura do codigo,
   em qualquer formulario (vem depois da regra compacta, mesma especificidade); a digitacao e livre */
.campo .campo__codigo.campo__codigo--tamanho { width: calc(var(--tam-codigo) * 1.15ch + 1.4rem); }
.form--compacto .campo__nome { font-size: var(--t-mini); }
.form--compacto .campo__dica { display: none; }  /* vira o title do campo */
.form--compacto .form__grade { gap: 0.35rem 0.6rem; }
.form--compacto .form__secao,
.form--compacto .form__secao:first-child {
  gap: 0.35rem; padding: 0.45rem 0.75rem 0.6rem;
  border: 1px solid var(--linha); border-radius: var(--raio-grande);
  background: var(--superficie); box-shadow: var(--sombra-leve);
}
.form--compacto .form__secao-titulo { font-size: var(--t-corpo); }
/* Cadastros compactos (formulario.js com compacto): titulo da secao em cima e secoes lado a lado
   (largura 4, 6 ou 8 de 12); em tela estreita cada secao ocupa a linha inteira. */
.form--secoes { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; }
.form--secoes > * { grid-column: 1 / -1; }
.form--secoes > .form__secao { grid-template-columns: minmax(0, 1fr); align-self: stretch; align-content: start; }
.form--secoes > .form__secao--l4 { grid-column: span 4; }
.form--secoes > .form__secao--l6 { grid-column: span 6; }
.form--secoes > .form__secao--l8 { grid-column: span 8; }
@media (max-width: 1100px) { .form--secoes > .form__secao--l4, .form--secoes > .form__secao--l6, .form--secoes > .form__secao--l8 { grid-column: 1 / -1; } }
/* Grade em cartoes (campos.js grade com "cartoes"): cada linha e um mini formulario com rotulos */
.grade__cartao { position: relative; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.3rem 0.6rem;
  padding: 0.4rem 2.5rem 0.5rem 0.6rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--fundo); }
.grade__cartao > .campo .campo__erro:empty { display: none; }
.grade__cartao > .grade__remover { position: absolute; top: 0.3rem; right: 0.3rem; }
@media (max-width: 700px) { .grade__cartao > .campo { grid-column: 1 / -1; } }
.form--compacto .form__secao-descricao { max-width: none; font-size: var(--t-mini); }
.form--compacto .botao { padding: 0.1rem 0.7rem; }
.form--compacto .botao-icone { width: var(--altura-campo); height: var(--altura-campo); }
.form--compacto .pedido__corpo { gap: 0.6rem 0.75rem; }
.form--compacto .pedido__totais { margin: 0; padding: 0.5rem 0.75rem; }
.form--compacto .pedido__cliente { margin: 0; }
.form--compacto .pedido__adicionar { margin-bottom: 0.4rem; }
.form--compacto .pedido__tabela th, .form--compacto .atend__tabela th { height: auto; padding: 0.2rem 0.25rem; font-size: var(--t-mini); }
.form--compacto .pedido__tabela td, .form--compacto .atend__tabela td { padding: 0.1rem 0.25rem; }
.form--compacto .pedido__tabela input, .form--compacto .pedido__tabela select, .form--compacto .atend__tabela input { min-height: 1.375rem; padding: 0.05rem 0.3rem; }
.form--compacto .pedido__tabela { min-width: 50rem; }
.form--compacto .pedido__num { width: 4.4rem !important; }
.form--compacto .pedido__num--perc { width: 3.2rem !important; }
.form--compacto .pedido__cst { width: 2.6rem !important; }
.form--compacto .pedido__tabela select { min-width: 4.4rem; }
/* a coluna do produto fica com o que sobrar: o nome e cortado com reticencias (inteiro no title) */
.form--compacto td.pedido__produto { width: 100%; max-width: 0; overflow: hidden; text-overflow: ellipsis; }
.form--compacto .pedido__nome { display: inline; min-width: 0; max-width: none; }
@media (min-width: 1400px) {
  .form--compacto .pedido__corpo { grid-template-columns: minmax(0, 1fr) 15rem; }
}
.form--compacto .form__acoes { padding-top: 0.4rem; padding-bottom: 0.4rem; }

/* ---------------------------------------------------------------- central de atendimento */
.central__busca { max-width: 36rem; margin-bottom: 0.75rem; }
.central__cliente { padding: 0.7rem 0.85rem; margin-bottom: 0.75rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); box-shadow: var(--sombra-leve); }
.central__cliente--bloqueado { border-color: var(--erro); background: var(--alerta-suave); }
.central__cliente--bloqueado .central__cliente-nome { color: var(--erro); }
.central__cliente-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; margin-bottom: 0.45rem; }
.central__cliente-nome { margin: 0 0 0.2rem; font-size: var(--t-subtitulo); font-weight: 700; font-stretch: var(--largura-titulo); }
.central__cliente-codigo { font-variant-numeric: tabular-nums; color: var(--texto-suave); }
.central__dados { display: flex; flex-wrap: wrap; gap: 0.35rem 1.25rem; }
.central__dado { display: flex; flex-direction: column; min-width: 0; }
.central__dado span { font-size: var(--t-mini); color: var(--texto-suave); }
.central__dado strong { font-size: var(--t-pequeno); font-weight: 600; overflow-wrap: anywhere; }
.central__obs { margin: 0.4rem 0 0; font-size: var(--t-pequeno); }
.central__obs strong { color: var(--texto-suave); font-weight: 600; }
.central__grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0.6rem; align-items: start; }
.central__pilha { display: grid; gap: 0.6rem; min-width: 0; }
.central__bloco { min-width: 0; padding: 0.5rem 0.6rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.central__bloco--l3 { grid-column: span 3; }
.central__bloco--l4 { grid-column: span 4; }
.central__bloco--l5 { grid-column: span 5; }
.central__bloco--l8 { grid-column: span 8; }
.central__bloco--l12 { grid-column: span 12; }
.central__pilha > .central__bloco { grid-column: auto; }
.central__bloco-cabecalho { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; margin-bottom: 0.3rem; }
.central__bloco-titulo { margin: 0; font-size: var(--t-corpo); font-weight: 700; }
.central__rolagem { overflow-x: auto; }
.central__tabela { margin: 0; font-size: var(--t-pequeno); }
.central__tabela th, .central__tabela td { height: auto; padding: 0.2rem 0.35rem; white-space: nowrap; }
.central__tabela th { background: transparent; }
.central__tabela td a { font-weight: 600; }
.central__linha--alerta td { color: var(--erro); }
.central__vazio { margin: 0.25rem 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.central__rodape { margin: 0.3rem 0 0; font-size: var(--t-pequeno); font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) {
  .central__bloco--l3, .central__bloco--l4, .central__bloco--l5 { grid-column: span 6; }
  .central__bloco--l8 { grid-column: span 12; }
}
@media (max-width: 700px) {
  .central__grade > * { grid-column: 1 / -1; }
  .central__cliente-topo { flex-direction: column; }
}

/* NF-e: faixa de homologacao, acoes de emissao na nota e na ficha */
.faixa { max-width: 76rem; margin: 0 0 0.75rem; padding: 0.45rem 0.85rem; border-radius: var(--raio); font-weight: 600; }
.faixa--alerta { border: 1px solid var(--erro); border-left-width: 4px; background: var(--alerta-suave); color: var(--erro); }
.form__extras { display: contents; }
.ficha__acoes { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.6rem; }
.ficha__acoes:empty { display: none; }

/* Acoes da NF-e na nota (cancelar, carta, e-mail) e tela Numeros a inutilizar */
.dialogo--larga { width: min(36rem, calc(100vw - 2rem)); }
.dialogo__contador { font-size: var(--t-pequeno); color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.dialogo__contador--ruim { color: var(--erro); }
.dialogo__estado { margin: 0 0 1rem; padding: 0.4rem 0.6rem; border-radius: var(--raio); background: var(--superficie-2); color: var(--texto-suave); font-size: var(--t-pequeno); line-height: 1.4; }
.dialogo__estado--erro { background: var(--alerta-suave); color: var(--erro); font-weight: 600; }
.dialogo__lista { list-style: none; margin: 0 0 0.9rem; padding: 0; max-height: 11rem; overflow-y: auto; border: 1px solid var(--linha); border-radius: var(--raio); }
.dialogo__lista li { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.6rem; padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--linha); font-size: var(--t-pequeno); }
.dialogo__lista li:last-child { border-bottom: 0; }
.dialogo__trecho { display: block; margin-top: 0.15rem; overflow-wrap: anywhere; }
.so-leitor { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.inutil__tabela tbody tr { cursor: default; }
.inutil__marca { width: 2rem; }
.inutil__marca input { width: 1rem; height: 1rem; margin: 0; }
.inutil__marca input:focus-visible { outline: 0; box-shadow: var(--foco); }
.inutil__atrasado td { background: var(--alerta-suave); }
.inutil__vazio { margin: 0.6rem 0; }
.inutil__form { max-width: 48rem; margin-top: 1rem; padding-top: 0.75rem; border-top: 1px solid var(--linha); display: grid; gap: 0.6rem; }
.inutil__acoes { display: flex; justify-content: flex-end; }

/* Tela DIFAL a recolher */
.difal__filtros { max-width: 52rem; margin: 0.6rem 0; }
.difal__filtrar { align-self: end; }
.difal__tabela tbody tr { cursor: default; }
.difal__marca { width: 2rem; }
.difal__marca input { width: 1rem; height: 1rem; margin: 0; }
.difal__marca input:focus-visible { outline: 0; box-shadow: var(--foco); }
.difal__grupo th { text-align: left; background: var(--superficie-2); color: var(--texto-suave); font-size: var(--t-pequeno); }
.difal__subtotal th, .difal__subtotal td { font-weight: 600; border-top: 1px solid var(--linha-forte); }
.difal__subtotal th, .difal__geral th { text-align: right; }
.difal__geral th, .difal__geral td { font-weight: 700; background: var(--superficie-2); }
.difal__cancelada td { background: var(--alerta-suave); }
.difal__vazio { margin: 0.6rem 0; }
.difal__gnre { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem; }
.difal__acoes { display: flex; justify-content: flex-end; gap: 0.6rem; margin-top: 0.75rem; }

/* Consulta com filtros extras (cfg.filtros) e acoes no cabecalho (cfg.acoes) */
.consulta__filtros { max-width: 52rem; margin: 0.5rem 0 0.25rem; }
.consulta__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }

/* Entradas (telas/entradas.js e entrada-form.js) */
.entrada__importar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; max-width: 100rem; margin: 0 0 0.6rem; padding: 0.45rem 0.75rem; border: 1px dashed var(--linha-forte); border-radius: var(--raio-grande); background: var(--superficie-2); }
.entrada__importar--sobre { border-color: var(--acento); background: var(--acento-suave); }
.entrada__importar-texto { color: var(--texto-suave); font-size: var(--t-pequeno); }
.entrada__importar-estado { flex-basis: 100%; margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.entrada__importar-estado:empty { display: none; }
.entrada__importar-estado--erro { color: var(--erro); font-weight: 600; }
.consulta__acoes .entrada__importar { margin: 0; padding: 0.2rem 0.5rem; }
.entrada__origem { max-width: 100rem; margin: 0 0 0.6rem; padding: 0.45rem 0.75rem; border: 1px solid var(--linha); border-left: 4px solid var(--acento); border-radius: var(--raio); background: var(--superficie); font-size: var(--t-pequeno); }
.entrada__origem p { margin: 0.1rem 0; }
.entrada__origem-titulo { font-weight: 700; }
.entrada__origem--erro { border-left-color: var(--erro); background: var(--alerta-suave); }
.entrada__origem-erro { color: var(--erro); font-weight: 700; }
.form--compacto .entrada__tabela { min-width: 104rem; }
/* CFOP de entrada convertido (abaixo do CFOP da nota), valores calculados pelas aliquotas, dados do fornecedor */
.entrada__cfop-entrada { display: block; font-size: var(--t-mini); color: var(--texto-suave); white-space: nowrap; }
.entrada__cfop-entrada:empty { display: none; }
.form--compacto .entrada__calculado { background: var(--superficie-2); color: var(--texto-suave); }
.entrada__fornecedor-info { color: var(--texto-suave); }
.form--compacto .entrada__num { width: 3.9rem !important; }
.entrada__cfop { width: 3.2rem !important; }
.form--compacto td.entrada__produto { min-width: 15rem; white-space: normal; }
/* custo atual / ERP comparados com o custo de entrada (title diz qual) */
.entrada__custo.entrada__custo--maior { color: var(--sucesso); font-weight: 600; }
.entrada__custo.entrada__custo--menor { color: var(--erro); font-weight: 600; }
/* "#" e Produto ficam fixos ao rolar os itens para o lado; :where mantem os fundos de destaque das linhas */
.entrada__tabela :where(th:nth-child(1), td:nth-child(1)) { position: sticky; left: 0; z-index: 2; width: 2.25rem; min-width: 2.25rem; max-width: 2.25rem; background: var(--superficie); }
.entrada__tabela :where(th:nth-child(2), td:nth-child(2)) { position: sticky; left: 2.25rem; z-index: 2; background: var(--superficie); box-shadow: 1px 0 0 var(--linha-forte); }
.entrada__tabela :where(thead th:nth-child(1), thead th:nth-child(2)) { z-index: 3; background: var(--superficie-2); }
.entrada__tabela tbody tr:hover :where(td:nth-child(1), td:nth-child(2)) { background: var(--superficie-2); }
/* a lista do produto aberta fica por cima das celulas fixas das outras linhas */
.entrada__tabela td:nth-child(2):focus-within { z-index: 4; }
.entrada__produto-campo .campo__codigo { width: 5.2rem !important; }
.entrada__produto-campo .campo__nome { max-width: 12rem; }
/* a lista de produtos abre dentro da tabela com rolagem: o quadro cresce enquanto ela esta aberta */
.entrada .pedido__itens:has(.combo__lista:not([hidden])) { padding-bottom: 19rem; }
.entrada__notas { display: flex; flex-direction: column; gap: 0.05rem; }
.entrada__notas:empty { display: none; }
.entrada__xml { font-size: var(--t-mini); color: var(--texto-suave); }
.entrada__nota { font-size: var(--t-mini); color: var(--erro); font-weight: 600; }
/* item sem produto (cor de aviso) e item com produto repetido */
.entrada__sem-produto td, .entrada__repetido td { background: var(--alerta-suave); }
.entrada__sem-produto td:first-child, .entrada__repetido td:first-child { box-shadow: inset 3px 0 0 var(--erro); }
.entrada__custo { color: var(--texto-suave); font-size: var(--t-mini); }
.entrada__repetidos { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; margin: 0 0 0.4rem; padding: 0.35rem 0.6rem; border: 1px solid var(--erro); border-radius: var(--raio); background: var(--alerta-suave); color: var(--erro); font-size: var(--t-pequeno); font-weight: 600; }
.entrada__repetidos p { margin: 0; }
.entrada__titulo-parcelas { margin-top: 0.7rem !important; }
.entrada__parcelas-tabela { width: 100%; border-collapse: collapse; font-size: var(--t-pequeno); font-variant-numeric: tabular-nums; }
.entrada__parcelas-tabela th { text-align: left; font-weight: 600; color: var(--texto-suave); border-bottom: 1px solid var(--linha); padding: 0.1rem 0.25rem 0.1rem 0; }
.entrada__parcelas-tabela td { padding: 0.1rem 0.25rem 0.1rem 0; }
.entrada__sem-pagar { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.entrada__bloqueios { margin: 0; max-width: 40rem; color: var(--erro); font-size: var(--t-pequeno); font-weight: 600; }
.entrada__ficha-tabela { width: 100%; border-collapse: collapse; margin: 0.2rem 0 0.6rem; font-size: var(--t-pequeno); font-variant-numeric: tabular-nums; }
.entrada__ficha-tabela th { text-align: left; font-weight: 600; color: var(--texto-suave); border-bottom: 1px solid var(--linha); padding: 0.15rem 0.3rem 0.15rem 0; }
.entrada__ficha-tabela td { padding: 0.15rem 0.3rem 0.15rem 0; border-bottom: 1px solid var(--linha); vertical-align: top; }
.entrada__ficha-titulo { margin: 0.6rem 0 0.2rem; font-size: var(--t-pequeno); font-weight: 700; }
/* Notas de servico: contas a pagar do formulario */
.nserv__parcelas { display: grid; gap: 0.4rem; min-width: 0; overflow-x: auto; }
.nserv__acoes { display: flex; gap: 0.5rem; flex-wrap: wrap; }
/* Pedido de compra (telas/pedidos-compra.js, pedido-compra-form.js) e entrada ligada a um pedido */
.selo--pedido-aberto { background: var(--acento-suave); color: var(--acento); }
.selo--pedido-parcial { background: var(--superficie); color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.selo--pedido-recebido { background: var(--superficie); color: var(--sucesso); box-shadow: inset 0 0 0 1px var(--sucesso); }
.selo--pedido-encerrado { background: var(--superficie-2); color: var(--texto-suave); }
.pedido-compra__acoes-ficha { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.4rem 0 0.2rem; }
/* ao lado do "Abrir" da consulta */
.ficha__editar + .pedido-compra__acoes-ficha { display: inline-flex; margin: 0.6rem 0 0 0.4rem; vertical-align: top; }
.entrada__vinculo .entrada__origem-titulo .selo { vertical-align: 0.05em; }
.entrada__vinculo .pedido__avisos { margin: 0.1rem 0 0.2rem; }
.entrada__vinculo .botao--pequeno { margin-top: 0.2rem; }
.entrada__ligar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; margin-top: 0.25rem; }
.entrada__ligar select { min-height: var(--altura-pequena); max-width: 100%; border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); color: var(--texto); font: inherit; padding: 0 0.4rem; }
.entrada__ligar select:focus-visible { outline: none; box-shadow: var(--foco); }
/* item que difere do pedido (quantidade acima do saldo, preco diferente, fora do pedido): so aviso, nao bloqueia */
.entrada__aviso-pedido:not(.entrada__repetido):not(.entrada__sem-produto) td { background: var(--acento-suave); }
.entrada__aviso-pedido:not(.entrada__repetido):not(.entrada__sem-produto) td:first-child { box-shadow: inset 3px 0 0 var(--acento); }
.entrada__aviso-pedido-nota { font-size: var(--t-mini); color: var(--acento); font-weight: 600; }
.entrada__aviso-pedido-nota::before { content: "Aviso: "; }
.entrada__motivo { width: 100%; }

/* Notas recebidas (telas/notas-recebidas.js): faixa da busca na SEFAZ, alerta clicavel, selos e eventos */
.faixa--info { border: 1px solid var(--linha); border-left: 4px solid var(--acento); background: var(--superficie); color: var(--texto); font-weight: 400; }
.selo--ok { background: var(--superficie); color: var(--sucesso); box-shadow: inset 0 0 0 1px var(--sucesso); }
.selo--info { background: var(--acento-suave); color: var(--acento); }
.recebidas__topo:empty { display: none; }
.recebidas__busca { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.75rem; }
.recebidas__busca-texto { flex: 1 1 18rem; }
.recebidas__busca-erro { flex-basis: 100%; order: 3; color: var(--erro); font-size: var(--t-pequeno); font-weight: 600; }
.recebidas__busca-acoes { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.recebidas__alerta { display: block; width: 100%; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.recebidas__alerta:hover { text-decoration: underline; }
.recebidas__selos { display: flex; flex-wrap: wrap; gap: 0.2rem; }
.recebidas__selos .selo { margin-left: 0; }
.ficha .recebidas__selos { margin: 0.5rem 0 0; }
.recebidas__eventos td { overflow-wrap: anywhere; }
.recebidas__evento--rejeitado td { color: var(--erro); }
.recebidas__evento-quando { white-space: nowrap; }
.recebidas__evento-detalhe { display: block; color: var(--texto-suave); font-size: var(--t-mini); }
.recebidas__evento--rejeitado .recebidas__evento-detalhe { color: inherit; }

/* Central de Produtos (telas/central-produtos.js): filtros em etiquetas, lista densa e painel fixo a direita */
.cprod__acoes .botao { min-height: var(--altura-pequena); padding: 0.15rem 0.65rem; font-size: var(--t-pequeno); }
/* filtros compactos (como o formulario compacto): campos de 24px, letra 12px, rotulos 11px */
.cprod__filtros { --altura-campo: 1.5rem; --altura-pequena: 1.375rem; font-size: var(--t-pequeno); margin-bottom: 0.4rem; padding: 0.3rem 0.5rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); box-shadow: var(--sombra-leve); }
.cprod__filtros-campos { display: grid; gap: 0.2rem; margin-bottom: 0.25rem; }
.cprod__linha-filtros { display: flex; flex-wrap: wrap; align-items: start; gap: 0.2rem 0.5rem; }
.cprod__filtros .campo { gap: 0.05rem; }
.cprod__filtros .campo label { font-size: var(--t-mini); }
.cprod__filtros .campo input, .cprod__filtros .campo select { padding: 0.05rem 0.35rem; font-size: var(--t-pequeno); }
.cprod__filtros .campo select { padding-right: 1.3rem; }
.cprod__filtros .campo__erro:empty { display: none; }
.cprod__filtros .botao { min-height: var(--altura-pequena); padding: 0.1rem 0.6rem; font-size: var(--t-pequeno); }
.cprod__linha-filtros > .campo { flex: 0 1 9rem; min-width: 0; }
.cprod__linha-filtros > .cprod__campo--largo { flex: 1 1 12rem; }
.cprod__linha-filtros > .cprod__campo--codigo { flex: 0 1 11rem; }
.cprod__linha-filtros > .cprod__campo--composto { flex: 1 1 14rem; }
.cprod__linha-filtros > .cprod__campo--medio { flex: 0 1 7rem; }
.cprod__linha-filtros > .cprod__campo--curto { flex: 0 0 4.5rem; }
.cprod__linha-filtros > .cprod__campo--opcao { flex: 0 1 6.2rem; }
.cprod__linha-filtros > .cprod__campo--data { flex: 0 0 7.6rem; }
.cprod__linha-filtros > .cprod__campo--situacao { flex: 0 1 8rem; }
/* Central de Clientes: situação "Sem canceladas" e ordem "Maior valor líquido" pedem mais largura */
.ccli__abas .cprod__linha-filtros > .cprod__campo--situacao { flex: 0 1 11rem; }
.cprod__campo input, .cprod__campo select { width: 100%; min-width: 0; }
.cprod__filtros input.maiusculas::placeholder { text-transform: none; }
.cprod__composto { display: flex; gap: 0.3rem; align-items: start; min-width: 0; }
.cprod__composto > select { flex: 0 0 7.2rem; width: 7.2rem; }
.cprod__composto > input { flex: 1; }
.cprod__composto-codigo { flex: 1; min-width: 0; }
.cprod__composto-codigo > .campo .campo__erro:empty { display: none; }
.cprod__filtros-rodape { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.75rem; }
.cprod__filtros-rodape > .botao { margin-left: auto; }
.cprod__etiquetas { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.4rem; flex: 1 1 20rem; min-width: 0; font-size: var(--t-pequeno); }
.cprod__ativo { padding: 0 0.45rem; border-radius: 999px; background: var(--superficie-2); color: var(--texto-suave); font-weight: 600; line-height: 1.6; }
.cprod__grupo { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.3rem; }
.cprod__grupo-rotulo { color: var(--texto-suave); font-weight: 600; }
.cprod__conector { color: var(--texto-suave); font-size: var(--t-mini); }
.cprod__conector--e { font-weight: 700; color: var(--texto); }
.cprod__etiqueta { display: inline-flex; align-items: center; gap: 0.15rem; max-width: 22rem; padding: 0 0.1rem 0 0.5rem; border: 1px solid var(--acento); border-radius: 999px; background: var(--acento-suave); color: var(--texto); line-height: 1.5; }
.cprod__etiqueta > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cprod__etiqueta-x { display: inline-grid; place-items: center; width: 1.15rem; height: 1.15rem; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--texto-suave); font: inherit; font-size: 0.95rem; line-height: 1; cursor: pointer; }
.cprod__etiqueta-x:hover { background: var(--superficie); color: var(--erro); }

.cprod__corpo { display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: 0.6rem; align-items: start; }
.cprod__lista { min-width: 0; }
.cprod__barra { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.9rem; font-size: var(--t-pequeno); }
.cprod__barra .consulta__resumo { margin-left: auto; }
.cprod__todos { font-size: var(--t-pequeno) !important; }
.cprod__todos input { width: 0.95rem; height: 0.95rem; margin: 0; accent-color: var(--acento); }
.cprod__limpar-sel { font-size: var(--t-pequeno); }
.cprod__rolagem { margin-top: 0.3rem; max-height: calc(100vh - 13rem); overflow: auto; }
/* lista densa: letra 11px, uma linha por produto (nome longo cortado com reticencias; o painel mostra inteiro) */
.cprod__tabela { font-size: var(--t-mini); }
.cprod__tabela th { height: 1.45rem; padding: 0.1rem 0.35rem; font-size: var(--t-mini); }
.cprod__tabela td { height: auto; padding: 0.08rem 0.35rem; white-space: nowrap; vertical-align: middle; }
.cprod__tabela td.cprod__col-nome { min-width: 11rem; max-width: 22rem; overflow: hidden; text-overflow: ellipsis; }
.cprod__tabela td.cprod__col-forn { max-width: 8rem; overflow: hidden; text-overflow: ellipsis; }
.cprod__forn-codigo { font-variant-numeric: tabular-nums; color: var(--texto-suave); }
.cprod__marca { width: 1.6rem; text-align: center !important; }
.cprod__marca input { width: 0.9rem; height: 0.9rem; margin: 0; accent-color: var(--acento); vertical-align: middle; }
.cprod__tabela tbody tr.cprod__marcada:not([aria-selected="true"]) { background: var(--superficie-2); }
.cprod__tabela tbody tr.cprod__inativo td { color: var(--erro); }
.cprod__tabela tbody tr.cprod__vazia { cursor: default; }
.cprod__tabela td.cprod__vazia-texto { white-space: normal; color: var(--texto-suave); text-align: center; vertical-align: middle; }
.cprod__fim { display: flex; justify-content: center; }
.cprod__fim .botao { margin-top: 0.3rem; }
.cprod__sentinela { width: 1px; height: 1px; }
.cprod__totais { margin: 0.35rem 0 0; font-size: var(--t-pequeno); font-weight: 600; font-variant-numeric: tabular-nums; }

.cprod__painel { position: sticky; top: 0.5rem; max-height: calc(100vh - 1rem); overflow-y: auto; display: grid; gap: 0.45rem; padding: 0.55rem 0.65rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); box-shadow: var(--sombra-leve); font-size: var(--t-pequeno); }
.cprod__painel[aria-busy="true"] > * { opacity: 0.6; }
.cprod__painel-vazio { margin: 0; color: var(--texto-suave); }
.cprod__painel-topo { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.6rem; align-items: start; }
.cprod__painel-titulo { display: grid; gap: 0.25rem; justify-items: start; min-width: 0; }
.cprod__painel-codigo { margin: 0; color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.cprod__painel-nome { margin: 0; font-size: var(--t-subtitulo); font-weight: 700; font-stretch: var(--largura-titulo); line-height: 1.2; overflow-wrap: anywhere; }
.cprod__painel-nome--inativo { color: var(--erro); }
.cprod__painel-titulo .selo { margin-left: 0; }
.cprod__selos { display: flex; flex-wrap: wrap; gap: 0.2rem; }
.cprod__selos .selo { margin-left: 0; }
.cprod__foto { position: relative; display: flex; align-items: center; justify-content: center; width: 6.5rem; height: 6.5rem; padding: 0.2rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie-2); color: var(--texto-suave); font: inherit; font-size: var(--t-mini); cursor: zoom-in; }
.cprod__foto:disabled { cursor: default; }
.cprod__foto img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.cprod__foto img:not([src]) { display: none; }
.cprod__foto--com .cprod__foto-vazia { display: none; }
.cprod__foto--grande { grid-column: 1 / -1; width: 100%; height: 20rem; cursor: zoom-out; }
.cprod__precos, .cprod__quantidades, .cprod__custos { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.9rem; padding-top: 0.35rem; border-top: 1px solid var(--linha); }
.cprod__valor { display: flex; flex-direction: column; font-variant-numeric: tabular-nums; }
.cprod__valor span { font-size: var(--t-mini); color: var(--texto-suave); }
.cprod__valor strong { font-weight: 600; }
.cprod__valor--negativo strong { color: var(--erro); }
.cprod__custos .cprod__valor strong { color: var(--texto-suave); }
.cprod__preco { display: flex; flex-direction: column; padding: 0.15rem 0.5rem; border-radius: var(--raio); background: var(--etiqueta); color: var(--sobre-etiqueta); font-variant-numeric: tabular-nums; }
.cprod__preco span { font-size: var(--t-mini); font-weight: 600; }
.cprod__preco strong { font-size: var(--t-subtitulo); }
.cprod__bloco { padding-top: 0.35rem; border-top: 1px solid var(--linha); min-width: 0; }
.cprod__bloco-titulo { margin: 0 0 0.2rem; font-size: var(--t-pequeno); font-weight: 700; }
.cprod__dados { display: grid; grid-template-columns: 6.6rem minmax(0, 1fr); gap: 0.1rem 0.5rem; margin: 0; }
.cprod__dados dt { color: var(--texto-suave); }
.cprod__dados dd { margin: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.cprod__mini { width: 100%; border-collapse: collapse; font-size: var(--t-mini); font-variant-numeric: tabular-nums; }
.cprod__mini th { text-align: left; font-weight: 600; color: var(--texto-suave); border-bottom: 1px solid var(--linha); padding: 0.1rem 0.3rem 0.1rem 0; white-space: nowrap; }
.cprod__mini td { padding: 0.1rem 0.3rem 0.1rem 0; color: var(--texto); vertical-align: top; }
.cprod__mini td:nth-child(3) { overflow-wrap: anywhere; }
.cprod__vazio { margin: 0; color: var(--texto-suave); font-size: var(--t-mini); }
.cprod__desctec { margin: 0; white-space: pre-wrap; }
/* Central de Produtos: area de abas abaixo da lista e aba Notas (telas/central-produtos-notas.js) */
.cprod__abas { margin-top: 0; }
.cprod__abas-lista, .cpnotas__subabas { overflow: visible; flex-wrap: wrap; }
.cprod__abas-lista { margin-top: 0; }
.cprod__aba { font-size: var(--t-subtitulo); }
.cprod__aba-painel { padding-top: 0.4rem; }
.cpnotas { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.45rem; min-width: 0; }
.cpnotas__topo { display: flex; flex-wrap: wrap; align-items: end; gap: 0.3rem 1rem; }
.cpnotas__descricao { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.cpnotas__descricao:empty { display: none; }
.cpnotas__subabas { margin-top: 0; flex: 1 1 auto; }
.cpnotas__filtros { margin-bottom: 0; }
.cprod__linha-filtros > .cpnotas__campo-codigo { flex: 0 1 9rem; max-width: 19rem; }
.cpnotas__campo-codigo .campo__erro:empty { display: none; }
.cpnotas__limpar { align-self: end; padding-bottom: 0.35rem; font-size: var(--t-pequeno); }
.cpnotas__barra { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.9rem; }
.cpnotas__barra .consulta__resumo { flex: 1 1 auto; }
.cpnotas__mensagem { margin: 0; padding: 1rem; border: 1px dashed var(--linha-forte); border-radius: var(--raio-grande); color: var(--texto-suave); text-align: center; }
.cpnotas__rolagem { margin-top: 0.3rem; max-height: calc(100vh - 10rem); overflow: auto; }
.cpnotas__tabela td.cpnotas__col-nome { min-width: 9rem; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; }
.cpnotas__tabela td.cpnotas__col-nat { min-width: 6rem; max-width: 9rem; overflow: hidden; text-overflow: ellipsis; }
.cpnotas__tabela td.ccli-hist__texto { min-width: 14rem; max-width: 40rem; white-space: normal; overflow-wrap: anywhere; }
.ccli-hist__dialogo { display: grid; gap: 0.5rem; margin: 0 0 1rem; }
.ccli-hist__dialogo textarea { width: 100%; resize: vertical; }
.ccli-hist__contador { margin: 0; font-size: 0.8125rem; color: var(--texto-suave); text-align: right; }
.ccli-hist__contador--excedeu { color: var(--erro); font-weight: 600; }
.ccli-hist__erro { margin: 0; color: var(--erro); font-size: 0.875rem; }
/* historico do usuario (cadastro de usuarios) */
.uhist { display: grid; gap: 0.5rem; }
.uhist__botoes { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.uhist__nota { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.uhist__tabela { width: 100%; }
.uhist__texto { white-space: normal; overflow-wrap: anywhere; }
.uhist__linha { cursor: pointer; }
.uhist__linha--destaque td { background: var(--acento-suave); }
.uhist__linha:focus-visible { outline: 2px solid var(--acento); outline-offset: -2px; }
.cpnotas__tabela tbody tr.cpnotas__cancelada td { color: var(--texto-suave); text-decoration: line-through; text-decoration-color: var(--erro); }
.cpnotas__tabela tbody tr.cpnotas__cancelada td .selo { text-decoration: none; }
/* Central de Produtos: aba Alteracao de preco (telas/central-produtos-precos.js) */
.cpprecos { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; min-width: 0; }
.cpprecos__descricao { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.cpprecos__descricao:empty { display: none; }
.cpprecos__margens { align-items: start; }
/* quadro das margens: 4 campos iguais (rotulo curto, % dentro do campo) e o botao embaixo, a esquerda */
.cpprecos__quadro { display: grid; gap: 0.3rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; }
.cpprecos__quadro .cpprecos__titulo { margin: 0; font-size: var(--t-corpo); }
.cpprecos__dica { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.cprod__linha-filtros > .cpprecos__campo { flex: 0 0 7.5rem; }
.cpprecos__campo .campo__grupo input { min-width: 0; }
.cpprecos__campo .campo__erro { max-width: 12rem; }
.cpprecos__acoes { display: flex; justify-content: flex-start; padding-top: 0.15rem; }
.cpprecos__aviso { margin: 0; padding: 0.6rem 0.8rem; color: var(--texto-suave); }
.cpprecos__aviso:empty { display: none; }
.cpprecos__rolagem { max-height: calc(100vh - 16rem); overflow: auto; }
.cpprecos__tabela td.cpprecos__col-nome { min-width: 9rem; max-width: 16rem; }
.cpprecos__preco { display: flex; flex-direction: column; gap: 0.1rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cpprecos__margem { font-size: var(--t-pequeno); }
.cpprecos__margem .margem-preco { display: inline; margin: 0; }
.cpprecos__historico { margin-top: 0.4rem; padding: 0.5rem 0.7rem; }
.cpprecos__titulo { margin: 0 0 0.3rem; font-size: var(--t-subtitulo); }
@media (max-width: 700px) { .cprod__linha-filtros > .cpprecos__campo { flex: 1 1 45%; } }
@media (min-width: 1101px) and (max-width: 1700px) { .cprod__tabela .cprod__col-larga { display: none; } }
@media (max-width: 1100px) {
  .cprod__corpo { grid-template-columns: minmax(0, 1fr); }
  .cprod__painel { position: static; max-height: none; }
  .cprod__rolagem { max-height: 60vh; }
}
@media (max-width: 700px) {
  .cprod__linha-filtros > .campo, .cprod__linha-filtros > .cprod__campo--curto, .cprod__linha-filtros > .cprod__campo--data { flex: 1 1 100%; }
  .cprod__linha-filtros > .cprod__campo--opcao { flex: 1 1 45%; }
  .cprod__acoes { margin-left: 0; }
  .pagina__cabecalho:has(.cprod__acoes) { flex-wrap: wrap; }
  .cprod__barra .consulta__resumo { margin-left: 0; flex-basis: 100%; }
}

/* Central de Produtos: aba Alteracao de quantidade */
.cpquant { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; min-width: 0; }
.cpquant__quadro { display: grid; gap: 0.3rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; }
.cpquant__alerta-negativo { margin: 0.5rem 0 0; color: var(--erro); font-weight: 700; }
.cpquant__nome { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.cpquant__linha { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 0.6rem 1.5rem; }
.cpquant__produto { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.1rem 0.8rem; margin: 0; font-size: var(--t-pequeno); min-width: 0; }
.cpquant__produto dt { color: var(--texto-suave); }
.cpquant__produto dd { margin: 0; overflow-wrap: anywhere; }
.cpquant__atual { display: flex; flex-direction: column; align-items: flex-end; margin: 0; }
.cpquant__atual-rotulo { color: var(--texto-suave); font-size: var(--t-pequeno); }
.cpquant__atual strong { font-size: 1.6rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.cpquant__titulo { margin: 0 0 0.3rem; font-size: var(--t-subtitulo); }
.cpquant__quadro .cpquant__titulo { margin: 0; font-size: var(--t-corpo); }
.cpquant__dica { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.cpquant__campos { align-items: start; }
.cpquant__tipo { display: flex; flex-wrap: wrap; gap: 0.2rem 1rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.cpquant__tipo legend { padding: 0; margin-bottom: 0.2rem; font-size: var(--t-pequeno); color: var(--texto-suave); }
.cprod__linha-filtros > .cpquant__campo-qtd { flex: 0 0 8rem; }
.cprod__linha-filtros > .cpquant__campo-motivo { flex: 1 1 14rem; max-width: 28rem; }
.cpquant__campo-qtd input, .cpquant__campo-motivo input { width: 100%; min-width: 0; }
.cpquant__acoes { display: flex; justify-content: flex-start; padding-top: 0.15rem; }
.cpquant__aviso { margin: 0; padding: 0.6rem 0.8rem; color: var(--texto-suave); }
.cpquant__aviso:empty { display: none; }
.cpquant__historico { margin-top: 0.4rem; padding: 0.5rem 0.7rem; }
.cpquant__tabela td.cpquant__col-motivo { max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 700px) {
  .cpquant__atual { align-items: flex-start; }
  .cprod__linha-filtros > .cpquant__campo-qtd, .cprod__linha-filtros > .cpquant__campo-motivo { flex: 1 1 100%; max-width: none; }
}

/* ==========================================================================
   Central de Produtos: aba Tabela de precos (cadastro)
   ========================================================================== */
.cptab { display: grid; grid-template-columns: 16rem minmax(0, 1fr); gap: 0.5rem; align-items: start; min-width: 0; }
.cptab__lista { display: grid; gap: 0.4rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; min-width: 0; }
.cptab__lista-topo { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; flex-wrap: wrap; }
.cptab__titulo { margin: 0; font-size: var(--t-corpo); }
.cptab__msg { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.cptab__msg:empty { display: none; }
.cptab__itens { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.2rem; max-height: 70vh; overflow-y: auto; }
.cptab__item { display: flex; flex-wrap: wrap; align-items: center; gap: 0.1rem 0.5rem; width: 100%; min-height: 2.25rem; padding: 0.25rem 0.6rem; text-align: left; font: inherit; color: var(--texto); background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio); cursor: pointer; }
.cptab__item:hover:not(:disabled) { background: var(--superficie-2); }
.cptab__item[aria-current="true"] { background: var(--acento-suave); border-color: var(--acento); box-shadow: inset 3px 0 0 var(--acento); font-weight: 700; }
.cptab__item:disabled { color: var(--texto-suave); cursor: not-allowed; opacity: 0.75; }
.cptab__item-nome { overflow-wrap: anywhere; }
.cptab__etiqueta-custo { padding: 0 0.4rem; font-size: var(--t-mini); color: var(--texto-suave); border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie-2); }
.cptab__direita { display: grid; gap: 0.5rem; min-width: 0; }
.cptab__form, .cptab__imprimir { display: grid; gap: 0.5rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; min-width: 0; }
.cptab__aviso { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.cptab__aviso:empty { display: none; }
.cptab__bloqueio { color: var(--erro); font-weight: 700; padding: 0.6rem 0.8rem; }
.cptab__linha-campo { display: flex; align-items: flex-start; gap: 0.5rem; flex-wrap: wrap; min-width: 0; }
.cptab__linha-campo > .campo { flex: 0 1 22rem; min-width: 0; }
.cptab__forn-caixa .cptab__linha-campo { align-items: flex-end; }
.cprod__linha-filtros > .cptab__campo-codigo { flex: 0 0 5rem; }
.cprod__linha-filtros > .cptab__campo-nome { flex: 1 1 12rem; max-width: 18rem; }
.cptab__campo-codigo input, .cptab__campo-nome input { width: 100%; min-width: 0; }
.cptab__exemplo { align-self: center; color: var(--texto-suave); font-size: var(--t-pequeno); font-variant-numeric: tabular-nums; }
.cptab__marcas { display: flex; flex-wrap: wrap; gap: 0.3rem 1.5rem; }
.cptab__forn-caixa { display: grid; gap: 0.4rem; }
.cptab__fornecedores { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.1rem; max-width: 30rem; }
.cptab__forn { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.1rem 0.2rem 0.1rem 0.5rem; border-bottom: 1px solid var(--linha); font-size: var(--t-pequeno); }
.cptab__forn-texto { min-width: 0; overflow-wrap: anywhere; }
.cptab__forn-tirar { flex: 0 0 auto; }
.cptab__acoes { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.15rem; }
.cptab__imp-campos { align-items: flex-start; }
@media (max-width: 48rem) {
  .cptab { grid-template-columns: minmax(0, 1fr); }
  .cptab__itens { max-height: 14rem; }
}

/* ==========================================================================
   Inventario (celular primeiro): uma coluna, alvos de toque de 44px, fonte >= 16px nos campos.
   ========================================================================== */
.inv { display: flex; flex-direction: column; gap: 0.9rem; width: 100%; max-width: 32rem; margin: 0 auto; }
.inv .secundario { color: var(--texto-suave); }
.inv__titulo { margin: 0; font-size: var(--t-titulo); }
.inv .botao { min-height: 2.75rem; font-size: 1rem; }
.inv .campo input { min-height: 2.75rem; font-size: 1rem; }
.inv__contagens { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.inv__contagem { flex: 1 1 10rem; min-height: 5rem !important; font-size: 1.25rem !important; }
.inv__faixa { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.5rem 0.75rem; background: var(--acento-suave); border: 1px solid var(--linha-forte); border-radius: var(--raio-grande); }
.inv__faixa-texto { font-size: 1.125rem; }
.inv__codigo { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.inv__codigo .botao { flex: 1 1 8rem; }
.inv__escolha { display: flex; flex-direction: column; gap: 0.5rem; }
.inv__opcao { justify-content: flex-start; text-align: left; height: auto; white-space: normal; }
.inv__camera { display: flex; flex-direction: column; gap: 0.5rem; }
.inv__camera:empty { display: none; }
.inv__video { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio-grande); border: 1px solid var(--linha-forte); background: var(--superficie-2); }
.inv__area-produto { display: flex; flex-direction: column; gap: 0.9rem; }
.inv__area-produto:empty { display: none; }
.inv__produto { display: flex; gap: 0.75rem; padding: 0.75rem; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-grande); }
.inv__foto { flex: none; width: 6rem; min-height: 6rem; display: flex; align-items: center; justify-content: center; text-align: center; background: var(--superficie-2); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.inv__foto img { width: 100%; height: 100%; object-fit: contain; display: block; }
.inv__dados { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; font-size: 0.9375rem; }
.inv__nome { overflow-wrap: anywhere; }
.inv__contado { color: var(--texto-suave); }
.inv__quantidade { display: flex; gap: 0.5rem; }
.inv__quantidade input { flex: 1; min-width: 0; }
.inv__sinal { flex: none; min-width: 2.75rem; }
.inv__lancar { width: 100%; }
.inv__ultimos { display: flex; flex-direction: column; gap: 0.4rem; padding-top: 0.5rem; border-top: 1px solid var(--linha); }
.inv__subtitulo { margin: 0; font-size: var(--t-subtitulo); }
.inv__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.inv__item { display: flex; align-items: baseline; gap: 0.6rem; padding: 0.35rem 0; border-bottom: 1px solid var(--linha); font-size: var(--t-tabela); }
.inv__item-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inv__item-qtd { flex: none; }
.inv .botao:focus-visible, .inv input:focus-visible { box-shadow: var(--foco); outline: none; }
@media (max-width: 480px) {
  .inv__produto { flex-direction: column; }
  .inv__foto { width: 100%; min-height: 9rem; }
}

/* Central de Produtos: aba Balanco (digitacao das contagens) */
.cpbal { display: grid; gap: 0.5rem; min-width: 0; }
.cpbal__resumo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4rem 1.5rem; margin-bottom: 0; padding: 0.5rem 0.7rem; }
.cpbal__totais { display: flex; flex-wrap: wrap; gap: 0.2rem 1.5rem; min-width: 0; }
.cpbal__total { font-weight: 600; }
.cpbal__admin { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.cpbal__quadros { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; align-items: start; min-width: 0; }
.cpbal__quadro { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.4rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; min-width: 0; }
.cpbal__titulo { margin: 0; font-size: var(--t-subtitulo); }
.cpbal__subtitulo { margin: 0.2rem 0 0.2rem; font-size: var(--t-corpo); }
.cpbal__dica { margin: -0.2rem 0 0; font-size: var(--t-pequeno); }
.cpbal__quadro > .campo { grid-column: auto; }
.cpbal__quadro .combo, .cpbal__quadro .combo input { max-width: 100%; }
.cpbal__escolha { display: grid; gap: 0.3rem; }
.cpbal__opcao { justify-content: flex-start; text-align: left; overflow-wrap: anywhere; }
.cpbal__produto { display: flex; gap: 0.7rem; min-width: 0; }
.cpbal__foto { flex: none; display: grid; place-items: center; width: 6rem; min-height: 4.5rem; background: var(--superficie-2); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.cpbal__foto img { display: block; max-width: 100%; max-height: 6rem; object-fit: contain; }
.cpbal__dados { display: grid; gap: 0.15rem; align-content: start; min-width: 0; }
.cpbal__nome { overflow-wrap: anywhere; }
.cpbal__linha-dados { display: flex; flex-wrap: wrap; gap: 0.1rem 0.9rem; }
.cpbal__dado { overflow-wrap: anywhere; }
.cpbal__lancado { font-weight: 600; }
.cpbal__lancar { display: grid; gap: 0.3rem; }
.cpbal__qtd { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; }
.cpbal__qtd input { flex: 1 1 6rem; min-width: 0; }
.cpbal__sinal { min-width: 2.2rem; }
.cpbal__arquivo-linha { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; min-width: 0; }
.cpbal__arquivo { max-width: 100%; font-size: var(--t-pequeno); }
.cpbal__tabela { overflow-x: auto; max-width: 100%; }
.cpbal__trunca { max-width: 9rem; overflow: hidden; text-overflow: ellipsis; }
.cpbal__relato { margin-top: 0.5rem; }
.cpbal__relato ul { margin: 0.2rem 0 0; padding-left: 1.1rem; max-height: 9rem; overflow: auto; font-size: var(--t-pequeno); }
.cpbal__relatorios { display: grid; gap: 0.4rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; min-width: 0; }
.cpbal__opcoes { display: grid; gap: 0.5rem; margin: 0.5rem 0; min-width: 0; text-align: left; }
.cpbal__opcoes .campo { grid-column: auto; min-width: 0; }
.cpbal__opcoes input[type=text], .cpbal__opcoes input[type=date], .cpbal__opcoes select { width: 100%; max-width: 100%; }
.cpbal__opcoes-par, .cpbal__opcoes-data { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.5rem; align-items: end; min-width: 0; }
.cpbal__opcoes-data[hidden] { display: none; }
.cpbal__opcoes-exporta { display: flex; justify-content: flex-start; }
.cpbal__grupo { margin: 0; padding: 0; border: 0; min-width: 0; }
.cpbal__grupo legend { padding: 0; margin-bottom: 0.2rem; font-size: var(--t-pequeno); color: var(--texto-suave); }
.cpbal__radios { display: flex; flex-wrap: wrap; gap: 0.3rem 1rem; }
.cpbal__radio { display: inline-flex; align-items: center; gap: 0.35rem; cursor: pointer; }
.cpbal__opcoes :focus-visible, .cpbal__relatorios :focus-visible { box-shadow: var(--foco); outline: none; }
.cpbal__estoque { display: grid; gap: 0.4rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; min-width: 0; }
.cpbal__estoque-lotes { min-width: 0; font-size: var(--t-pequeno); }
.cpbal__estoque-lotes td, .cpbal__estoque-lotes th { white-space: nowrap; }
.cpbal__estoque-resumo { margin: 0 0 0.3rem; font-weight: 600; }
.cpbal__estoque-previa { max-height: 12rem; }
.cpbal__estoque :focus-visible { box-shadow: var(--foco); outline: none; }
.cpbal__quadro :focus-visible, .cpbal__resumo :focus-visible { box-shadow: var(--foco); outline: none; }
@media (max-width: 56rem) {
  .cpbal__quadros { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .cpbal__produto { flex-direction: column; }
  .cpbal__foto { width: 100%; }
}

/* Central de Produtos: aba Analise para Compra (telas/central-produtos-analise-compra.js) */
.cpana { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; min-width: 0; }
.cpana__quadro { display: grid; gap: 0.3rem; margin-bottom: 0; padding: 0.5rem 0.7rem 0.6rem; }
.cpana__topo { flex-wrap: wrap; align-items: end; gap: 0.3rem 0.7rem; }
.cprod__linha-filtros > .cpana__campo { flex: 0 1 11rem; min-width: 7rem; }
.cpana__campo select, .cpana__campo input { width: 100%; min-width: 0; }
.cpana__campo .campo__erro { max-width: 12rem; }
.cpana__campo .campo__erro:empty { display: none; }
.cpana__analisar { padding-bottom: 0.15rem; }
.cpana__descricao { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.cpana__descricao:empty { display: none; }
.cpana__resultado { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.4rem; min-width: 0; }
.cpana__acoes { display: flex; flex-wrap: wrap; gap: 0.3rem 0.4rem; }
.cpana__grade { margin-top: 0; max-height: calc(100vh - 16rem); min-height: 6rem; overflow: auto; }
.cpana__grade--velha .cpana__tabela { opacity: 0.55; }
.cpana__tabela { font-size: var(--t-pequeno); }
.cpana__tabela th, .cpana__tabela td { padding: 0.15rem 0.45rem; height: 1.5rem; vertical-align: middle; }
.cpana__tabela th { z-index: 1; }
.cpana__ordena { white-space: nowrap; }
.cpana__ordena:focus-visible { outline: 0; box-shadow: var(--foco); border-radius: var(--raio); }
.cpana__tabela td.cpana__col-nome { min-width: 9rem; max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cpana__tabela td.cpana__col-ultima { white-space: nowrap; max-width: 15rem; overflow: hidden; text-overflow: ellipsis; }
.cpana__tabela td.cpana__col-comprar { min-width: 7rem; white-space: nowrap; }
.cpana__negativo { color: var(--erro); font-weight: 600; }
.cpana__comprar-caixa { display: flex; flex-direction: column; align-items: flex-end; gap: 0.1rem; }
.cpana__comprar { width: 4.5rem; height: 1.4rem; padding: 0 0.3rem; text-align: right; font: inherit; font-variant-numeric: tabular-nums; color: var(--texto); background: var(--superficie); border: 1px solid var(--linha-forte); border-radius: var(--raio); }
.cpana__comprar:focus-visible { outline: 0; border-color: var(--acento); box-shadow: var(--foco); }
.cpana__comprar[aria-invalid] { border-color: var(--erro); }
.cpana__caixas { color: var(--texto-suave); font-size: var(--t-mini); text-align: right; }
.cpana__caixas:empty { display: none; }
.cpana__caixas.cpana__erro { color: var(--erro); white-space: normal; min-width: 8rem; text-align: right; }
.cpana__tabela tbody tr.cpana__linha-aberta { background: var(--acento-suave); }
.cpana__rodape { margin: 0; }
.cpana__grafico { display: grid; gap: 0.3rem; margin-bottom: 0; padding: 0.5rem 0.7rem; }
.cpana__grafico-titulo { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.cpana__grafico-vazio { margin: 0; color: var(--texto-suave); }
.cpana__svg { width: 100%; max-width: 40rem; height: auto; }
.cpana__eixo { stroke: var(--linha-forte); stroke-width: 1; }
.cpana__eixo-texto { fill: var(--texto-suave); font-size: 11px; }
.cpana__linha { fill: none; stroke: var(--acento); stroke-width: 2; }
.cpana__ponto { fill: var(--acento); stroke: var(--superficie); stroke-width: 1.5; }
.cpana__gravados { margin-bottom: 0; padding: 0.5rem 0.7rem; }
.cpana__lista-pedidos, .cpana__lista-avisos { margin: 0.2rem 0; padding-left: 1.2rem; overflow-wrap: anywhere; }
.cpana__lista-avisos { color: var(--texto-suave); }
.cpana__total { margin: 0.3rem 0 0; font-weight: 700; }
@media (max-width: 700px) {
  .cprod__linha-filtros > .cpana__campo { flex: 1 1 45%; }
  .cpana__grade { max-height: 70vh; }
}

/* ---------- Central de Prospecção (telas/prospeccao-central.js) ---------- */
.prosp__retornos, .prosp__busca { padding: 0.4rem 0.6rem; }
.prosp__retornos-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.prosp__titulo { margin: 0 0.25rem 0 0; font-size: var(--t-subtitulo); }
.prosp__subtitulo { margin: 0.5rem 0 0.25rem; font-size: var(--t-corpo); }
.prosp__btn-atraso:not(:disabled) { color: var(--erro); border-color: var(--erro); }
.prosp__lista { display: grid; gap: 0.15rem; margin: 0.4rem 0 0; padding: 0; list-style: none; }
.prosp__retorno, .prosp__resultado {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.15rem 0.6rem; width: 100%; padding: 0.3rem 0.5rem;
  border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); color: var(--texto);
  font: inherit; font-size: var(--t-pequeno); text-align: left; cursor: pointer;
}
.prosp__retorno:hover, .prosp__resultado:hover { border-color: var(--acento); background: var(--superficie-2); }
.prosp__retorno:focus-visible, .prosp__resultado:focus-visible { outline: none; box-shadow: var(--foco); }
.prosp__retorno-nome, .prosp__resultado-nome { font-weight: 600; }
.prosp__retorno-obs { color: var(--texto-suave); overflow-wrap: anywhere; }
.prosp__suave { color: var(--texto-suave); }
.prosp__atraso { color: var(--erro); font-weight: 600; }
.prosp__ultima { color: var(--erro); font-size: var(--t-mini); font-weight: 600; }
.prosp__erro { color: var(--erro); font-weight: 600; }
.prosp__dica { margin: 0.3rem 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.prosp__busca-linha { display: flex; flex-wrap: wrap; align-items: end; gap: 0.4rem 0.6rem; }
.prosp__busca-campo { flex: 1 1 16rem; min-width: 0; }
.prosp__resultados { margin-top: 0.3rem; }
.prosp__rolagem { max-height: 28rem; }
.prosp__tabela td { white-space: nowrap; vertical-align: middle; }
.prosp__tabela tbody tr:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--acento); }
.prosp__tabela tbody tr[aria-selected="true"] { background: var(--acento-suave); }
.prosp__obs { max-width: 16rem; overflow: hidden; text-overflow: ellipsis; }
.prosp__flag { margin-left: 0; margin-right: 0.2rem; }
.prosp__sentinela { height: 1px; }
.prosp__rodape { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.prosp__dialogo { max-height: calc(100vh - 2rem); overflow-y: auto; }
.prosp__cliente { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.6rem; margin-bottom: 0.6rem; }
.prosp__cliente .selo { margin-left: 0; }
.prosp__grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 0.75rem; margin-bottom: 0.5rem; }
.prosp__flags { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.3rem 0.75rem; align-content: center; }
.prosp__leitura { margin: 0; padding: 0.3rem 0; font-weight: 600; }
.prosp__c-obs { margin-bottom: 0.5rem; }
.prosp__c-obs textarea { width: 100%; resize: vertical; }
.prosp__hist-rolagem { max-height: 11rem; }
.prosp__acoes { margin-top: 0.75rem; }
@media (max-width: 700px) {
  .prosp__grade, .prosp__flags { grid-template-columns: minmax(0, 1fr); }
  .prosp__obs { max-width: 10rem; }
  .prosp__rolagem { max-height: 24rem; }
}

/* Central de Prospecção: oferta depois de tornar cliente normal e link do aviso no pedido/atendimento */
.prosp__opcoes { border: 0; margin: 0.5rem 0; padding: 0; display: grid; gap: 0.4rem; }
.prosp__opcoes legend { padding: 0; font-weight: 600; margin-bottom: 0.25rem; }
.prosp__opcao { display: flex; align-items: center; gap: 0.4rem; cursor: pointer; }
.form__resumo-link { margin: 0.4rem 0 0; }

/* ---------- Central de Prospecção: aba Rotas de Prospecção (telas/prospeccao-rotas.js) ---------- */
.prot { display: grid; gap: 0.4rem; min-width: 0; }
.prot__adm { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.75rem; }
.prot__adm-texto { color: var(--texto-suave); }
.prot__bloqueio { color: var(--erro); font-weight: 600; }
.prot__grade { display: grid; grid-template-columns: 25rem minmax(0, 1fr); gap: 0.5rem; align-items: start; min-width: 0; }
.prot__lista, .prot__ficha, .prot__direita { min-width: 0; }
.prot__lista-topo { display: flex; flex-wrap: wrap; align-items: end; gap: 0.3rem 0.5rem; }
.prot__busca { flex: 1 1 10rem; min-width: 0; }
.prot__rolagem { max-height: 70vh; margin-top: 0.4rem; }
.prot__tabela td { white-space: nowrap; vertical-align: middle; }
.prot__col-nome { max-width: 13rem; overflow: hidden; text-overflow: ellipsis; }
.prot__col-nome .selo { margin-left: 0.25rem; }
.prot__tabela tbody tr { cursor: pointer; }
.prot__tabela tbody tr:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--acento); }
.prot__tabela tbody tr[aria-selected="true"] { background: var(--superficie-2); }
.prot__tabela tbody tr[aria-current="true"] { background: var(--acento-suave); box-shadow: inset 3px 0 0 var(--acento); font-weight: 700; }
.prot__cabeca { display: flex; flex-wrap: wrap; align-items: end; gap: 0.3rem 0.75rem; }
.prot__nome { flex: 1 1 18rem; min-width: 0; }
.prot__nome input { width: 100%; }
.prot__totais { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.4rem; margin: 0.3rem 0; font-size: var(--t-corpo); }
.prot__totais .selo { margin-left: 0; }
.prot__avisos { margin: 0 0 0.3rem; padding-left: 1.1rem; color: var(--erro); overflow-wrap: anywhere; }
.prot__corpo { display: grid; grid-template-columns: minmax(16rem, 24rem) minmax(0, 1fr); gap: 0.5rem; align-items: start; min-width: 0; }
.prot__roteiro { min-width: 0; }
.prot__cidades { display: grid; gap: 0.15rem; margin: 0; padding: 0; list-style: none; max-height: 480px; overflow-y: auto; }
.prot__cidade {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.1rem 0.4rem; min-height: 1.9rem; padding: 0.15rem 0.35rem;
  border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie);
}
.prot__cidade[draggable="true"] { cursor: grab; }
.prot__cidade--partida, .prot__cidade--volta { background: var(--superficie-2); }
.prot__cidade--arrastando { opacity: 0.5; }
.prot__cidade--alvo { border-color: var(--acento); box-shadow: inset 0 2px 0 var(--acento); }
.prot__num {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-width: 1.4rem; height: 1.4rem; padding: 0 0.2rem;
  border-radius: 999px; background: var(--acento); color: var(--sobre-acento); font-size: var(--t-mini); font-weight: 700;
}
.prot__num--partida { border-radius: var(--raio); background: var(--texto); color: var(--superficie); }
.prot__cidade-nome { flex: 1 1 8rem; min-width: 0; font-weight: 600; overflow-wrap: anywhere; }
.prot__trecho { color: var(--texto-suave); font-size: var(--t-pequeno); white-space: nowrap; }
.prot__cidade .selo { margin-left: 0; }
.prot__cidade-acoes { display: inline-flex; gap: 0.1rem; margin-left: auto; }
.prot__mini { width: 1.6rem; height: 1.6rem; }
.prot__mini .icone { width: 0.95rem; height: 0.95rem; }
.prot__mini:disabled { opacity: 0.35; cursor: default; }
.prot__mini:focus-visible { outline: none; box-shadow: var(--foco); }
.prot__adicionar { margin-top: 0.3rem; }
.prot__adicionar .campo__codigo { width: 16rem; max-width: 100%; }
.prot__atribuicao a { color: var(--acento); }
.prot__mapa-caixa { min-width: 0; }
.prot__mapa { height: 480px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie-2); }
.prot__mapa:focus-visible { outline: none; box-shadow: var(--foco); }
.prot__mapa-estado { margin: 0.2rem 0 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.prot__mapa-estado:empty { display: none; }
.prot__acoes { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.5rem; }
.prot__partes { margin: 0.4rem 0; padding-left: 1.2rem; display: grid; gap: 0.25rem; }
/* "Definir posição" no modo de ajuste: botão por linha e o painel com latitude e longitude (ou clique no mapa) */
.prot__posicao-botao { margin-left: 0; }
.prot__posicao-botao--sem { color: var(--erro); border-color: var(--erro); }
.prot__posicao { display: grid; gap: 0.3rem; margin: 0 0 0.4rem; padding: 0.4rem 0.5rem; border: 1px solid var(--acento); border-radius: var(--raio); background: var(--acento-suave); }
.prot__posicao[hidden] { display: none; }
.prot__posicao-texto { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.prot__posicao-linha { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.3rem 0.4rem; }
.prot__posicao-campo { flex: 1 1 7rem; min-width: 0; }
.prot__posicao-campo input { width: 100%; }
/* Leaflet nas cores do tema (as imagens do mapa continuam as do OpenStreetMap) */
.prot__mapa.leaflet-container { background: var(--superficie-2); font-family: var(--fonte); }
.prot__mapa .leaflet-bar a { background: var(--superficie); color: var(--texto); border-bottom-color: var(--linha); }
.prot__mapa .leaflet-bar a:hover, .prot__mapa .leaflet-bar a:focus-visible { background: var(--superficie-2); }
.prot__mapa .leaflet-control-attribution { background: var(--superficie); color: var(--texto-suave); }
.prot__mapa .leaflet-control-attribution a { color: var(--acento); }
.prot__mapa .leaflet-tooltip { background: var(--superficie); color: var(--texto); border-color: var(--linha-forte); }
/* .leaflet-marker-icon (display: block do leaflet.css, carregado depois) perde para a classe dupla */
.leaflet-marker-icon.prot__marcador {
  display: flex; align-items: center; justify-content: center; box-sizing: border-box;
  border: 2px solid var(--superficie); border-radius: 50%; background: var(--acento); color: var(--sobre-acento);
  font: 700 var(--t-mini)/1 var(--fonte); box-shadow: 0 0 0 1px var(--linha-forte);
}
.leaflet-marker-icon.prot__marcador--partida { border-radius: var(--raio); background: var(--texto); color: var(--superficie); }
.leaflet-marker-icon.prot__marcador--arrastavel { cursor: move; outline: 2px dashed var(--texto); outline-offset: 1px; }
@media (max-width: 1100px) {
  .prot__corpo { grid-template-columns: minmax(0, 1fr); }
  .prot__cidades { max-height: 22rem; }
}
@media (max-width: 700px) {
  .prot__grade { grid-template-columns: minmax(0, 1fr); }
  .prot__rolagem { max-height: 14rem; }
  .prot__mapa { height: 300px; }
}

/* ---------------------------------------------------------------- Mapa da prospecção (aba Rotas, bloco 3) */
.pmapa__filtros .cprod__linha-filtros { align-items: end; }
.pmapa__regiao-caixa { display: flex; align-items: end; padding-bottom: 0.05rem; }
.pmapa__regiao[aria-pressed="true"] { background: var(--acento); border-color: var(--acento); color: var(--sobre-acento); }
.pmapa__regiao[aria-pressed="true"]:hover { background: var(--acento-hover); }
.pmapa__ver-cidade .campo__codigo { width: 100%; }
.pmapa__estado { display: flex; flex-wrap: wrap; gap: 0.15rem 0.75rem; margin: 0.25rem 0 0; font-size: var(--t-pequeno); overflow-wrap: anywhere; }
.pmapa__estado:empty { display: none; }
.pmapa__aviso { color: var(--texto); font-weight: 600; }
.pmapa__sem-posicao { color: var(--erro); font-weight: 600; }
/* marcadores numerados da rota com a cor da cidade (três classes: ganham de .leaflet-marker-icon.prot__marcador) */
.leaflet-marker-icon.prot__marcador.pmapa__marcador--venda { background: var(--mapa-venda); color: var(--mapa-sobre-venda); }
.leaflet-marker-icon.prot__marcador.pmapa__marcador--atendimento { background: var(--mapa-atendimento); color: var(--mapa-sobre-atendimento); }
.leaflet-marker-icon.prot__marcador.pmapa__marcador--parado { background: var(--mapa-parado); color: var(--mapa-sobre-parado); }
.leaflet-marker-icon.prot__marcador.pmapa__marcador--nada { background: var(--mapa-nada); color: var(--mapa-sobre-nada); }
.leaflet-marker-icon.prot__marcador.pmapa__marcador--sem-cor { background: var(--superficie); color: var(--texto); border-style: dashed; border-color: var(--texto-suave); }
/* sem as cores (carregando, erro ou rota nova): neutro, nunca o acento (azul parecido com o de "parado") */
.leaflet-marker-icon.prot__marcador.pmapa__marcador--neutro { background: var(--superficie); color: var(--texto); border-color: var(--texto-suave); }
/* 503 do modo região sem rota: a mensagem no lugar do mapa */
.pmapa__erro-mapa { margin: 0; padding: 1rem; border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); }
.pmapa__erro-mapa[hidden], .prot__mapa[hidden] { display: none; }
/* legenda (controle do Leaflet no canto inferior esquerdo) */
.pmapa__legenda {
  max-width: 15rem; padding: 0.3rem 0.45rem; border: 1px solid var(--linha-forte); border-radius: var(--raio);
  background: var(--superficie); color: var(--texto); box-shadow: var(--sombra-leve); font: var(--t-mini)/1.35 var(--fonte);
}
.pmapa__legenda[hidden] { display: none; }
.pmapa__legenda-titulo { margin: 0 0 0.15rem; font-weight: 700; }
.pmapa__legenda-itens { display: grid; gap: 0.1rem; margin: 0; padding: 0; list-style: none; }
.pmapa__legenda-item { display: flex; align-items: center; gap: 0.3rem; }
.pmapa__legenda-num { margin-left: auto; padding-left: 0.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.pmapa__legenda-nota { margin: 0.2rem 0 0; color: var(--erro); font-weight: 600; }
.pmapa__legenda-nota:empty { display: none; }
.pmapa__quadro { flex: 0 0 auto; width: 0.75rem; height: 0.75rem; border: 1px solid var(--mapa-contorno); border-radius: 2px; }
.pmapa__quadro--venda, .pmapa__selo--venda { background: var(--mapa-venda); color: var(--mapa-sobre-venda); }
.pmapa__quadro--atendimento, .pmapa__selo--atendimento { background: var(--mapa-atendimento); color: var(--mapa-sobre-atendimento); }
.pmapa__quadro--parado, .pmapa__selo--parado { background: var(--mapa-parado); color: var(--mapa-sobre-parado); }
.pmapa__quadro--nada, .pmapa__selo--nada { background: var(--mapa-nada); color: var(--mapa-sobre-nada); }
.pmapa__selo { display: inline-block; padding: 0.05rem 0.5rem; border-radius: 999px; font-size: var(--t-mini); font-weight: 700; line-height: 1.5; }
/* mapa + painel: lado a lado quando a área tem largura, senão o painel fica abaixo do mapa (celular) */
.pmapa__area { container-type: inline-size; min-width: 0; }
.pmapa__area[hidden] { display: none; }
.pmapa__grade { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; align-items: start; min-width: 0; }
@container (min-width: 46rem) {
  .pmapa__grade:has(> .pmapa__painel:not([hidden])) { grid-template-columns: minmax(0, 1fr) minmax(19rem, 25rem); }
}
.prot__direita > .pmapa__area { margin-top: 0.4rem; }
/* painel da cidade */
.pmapa__painel { display: grid; gap: 0.25rem; align-content: start; min-width: 0; margin: 0; }
.pmapa__painel[hidden] { display: none; }
.pmapa__painel > * { min-width: 0; }
.pmapa__p-cabeca { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.5rem; }
.pmapa__p-titulo { margin: 0; font-size: var(--t-subtitulo); overflow-wrap: anywhere; }
.pmapa__p-titulo:focus-visible { outline: none; border-radius: var(--raio); box-shadow: var(--foco); }
.pmapa__p-situacao { margin: 0; color: var(--texto-suave); }
.pmapa__p-situacao:empty, .pmapa__p-aviso:empty { display: none; }
.pmapa__p-aviso { margin: 0; }
.pmapa__numeros { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.05rem 0.75rem; margin: 0; }
.pmapa__numeros dt { color: var(--texto-suave); }
.pmapa__numeros dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.pmapa__abas { flex-wrap: wrap; margin-top: 0.2rem; overflow-x: visible; }
.pmapa__aba { padding: 0.25rem 0.45rem 0.3rem; font-size: var(--t-pequeno); }
.pmapa__aba:focus-visible { outline: none; box-shadow: var(--foco); }
.pmapa__rolagem { max-height: 22rem; }
.pmapa__tabela td { white-space: nowrap; vertical-align: middle; }
.pmapa__tabela tbody tr { cursor: pointer; }
.pmapa__tabela tbody tr:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--acento); }
.pmapa__tabela tbody tr[aria-selected="true"] { background: var(--acento-suave); }
/* o nome fica com o espaço que sobra (max-width 0 + width 100%) e corta com reticências */
.pmapa__tabela { width: 100%; }
.pmapa__col-nome { width: 100%; max-width: 0; min-width: 7rem; overflow: hidden; text-overflow: ellipsis; }
.pmapa__col-obs { max-width: 9rem; overflow: hidden; text-overflow: ellipsis; }
.pmapa__col-acao { width: 1%; }
.pmapa__prospectar { min-height: 1.3rem; padding: 0 0.45rem; font-size: var(--t-mini); }
.pmapa__p-acoes { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.2rem; }
@media (max-width: 700px) {
  .pmapa__legenda-titulo { display: none; }
  /* celular: Tipo e Últ. compra saem das listas do painel para o "Prospectar" ficar à vista */
  .pmapa__tabela .pmapa__col-extra { display: none; }
}

/* ---- Central de Clientes (telas/central-clientes.js): reaproveita .cprod__*; so o que e especifico */
.ccli__corpo { grid-template-columns: minmax(0, 1fr) 20rem; }
.ccli__tabela td.cprod__col-nome { min-width: 8rem; max-width: 16rem; }
.ccli__tabela td.ccli__col-cidade { max-width: 7.5rem; overflow: hidden; text-overflow: ellipsis; }
.ccli__tabela td.cprod__col-forn { max-width: 7rem; overflow: hidden; text-overflow: ellipsis; }
.ccli__tabela td.ccli__col-fone, .ccli__tabela td.ccli__col-ult { font-variant-numeric: tabular-nums; }
.ccli__nome--bloqueado .selo { margin-left: 0.4rem; }
.ccli__botoes { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.ccli__vencidos { margin: 0.3rem 0 0; font-weight: 600; color: var(--texto-suave); }
.ccli__vencidos--sim { color: var(--erro); }
.ccli__painel .cprod__dados { grid-template-columns: 5.6rem minmax(0, 1fr); }
.ccli__painel .cprod__dados dt { overflow-wrap: anywhere; }
@media (min-width: 1001px) and (max-width: 1700px) { .ccli__tabela .ccli__col-fone { display: none; } }
@media (min-width: 1001px) and (max-width: 1400px) { .ccli__tabela .cprod__col-forn { display: none; } }
@media (min-width: 1001px) and (max-width: 1400px) { .ccli__tabela td.cprod__col-nome { max-width: 12rem; } .ccli__tabela td.ccli__col-cidade { max-width: 6rem; } }
@media (max-width: 1000px) {
  .ccli__corpo { grid-template-columns: minmax(0, 1fr); }
  .ccli__tabela .ccli__col-fone, .ccli__tabela .ccli__col-sit, .ccli__tabela .cprod__col-forn { display: none; }
}

/* ---- Painel gerencial da Central de Clientes (telas/central-clientes-painel.js; graficos em nucleo/graficos.js) */
.pger { display: grid; gap: 0.6rem; min-width: 0; }
.pger__filtros { margin-bottom: 0; }
.cprod__linha-filtros > .pger__campo-rota { flex: 0 1 11rem; }
.pger__filtros .pger__campo-rota .campo__codigo { width: 10rem; max-width: 100%; }
.cprod__linha-filtros > .pger__campo-tipo { flex: 0 1 8.5rem; }
.pger__comparacao { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.pger__comparacao:empty { display: none; }
.pger__conteudo { display: grid; gap: 0.6rem; min-width: 0; }
.pger__carregando, .pger__vazio { margin: 0; padding: 1.2rem 0; color: var(--texto-suave); text-align: center; }
.pger__aviso { margin: 0; padding: 0.8rem 1rem; border: 1px solid var(--erro); border-radius: var(--raio-grande); background: var(--alerta-suave); color: var(--texto); font-weight: 600; }
.pger__aviso--atencao { border-color: var(--linha-forte); background: var(--superficie-2); }
.pger__cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: 0.5rem; }
.pger__cartao { display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem; min-width: 0; margin: 0; padding: 0.5rem 0.65rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); box-shadow: var(--sombra-leve); color: var(--texto); font: inherit; text-align: left; }
.pger__cartao--clicavel { cursor: pointer; }
.pger__cartao--clicavel:hover { border-color: var(--acento); }
.pger__cartao--clicavel:focus-visible { outline: none; box-shadow: var(--foco); }
.pger__cartao-rotulo { color: var(--texto-suave); font-size: var(--t-pequeno); font-weight: 600; }
.pger__cartao-valor { font-size: 1.15rem; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.pger__cartao-valor--destaque { color: var(--acento); }
.pger__cartao-anterior, .pger__cartao-nota { color: var(--texto-suave); font-size: var(--t-mini); font-variant-numeric: tabular-nums; }
.pger__cartao-acao { margin-top: auto; padding-top: 0.15rem; color: var(--acento); font-size: var(--t-mini); font-weight: 600; text-decoration: underline; }
.pger__var { font-weight: 700; white-space: nowrap; }
.pger__var--bom { color: var(--painel-sobe); }
.pger__var--ruim { color: var(--painel-desce); }
.pger__var--neutro { color: var(--texto-suave); }
.pger__carteira { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 0.5rem; }
.pger__barra100-bloco, .pger__bloco { min-width: 0; padding: 0.5rem 0.65rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); box-shadow: var(--sombra-leve); }
.pger__bloco-cabecalho { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.2rem 0.6rem; margin-bottom: 0.3rem; }
.pger__bloco-titulo { margin: 0 0 0.3rem; font-size: var(--t-corpo); font-weight: 700; }
.pger__bloco-cabecalho .pger__bloco-titulo { margin: 0; }
.pger__alterna { font-size: var(--t-pequeno); }
.pger__barra100 { display: flex; height: 0.9rem; overflow: hidden; border-radius: var(--raio); background: var(--superficie-2); }
.pger__seg { height: 100%; }
.pger__seg--1 { background: var(--painel-serie1); }
.pger__seg--2 { background: var(--painel-serie2); }
.pger__seg--ruim { background: var(--painel-desce); }
.pger__legenda { display: flex; flex-wrap: wrap; gap: 0.2rem 0.9rem; margin: 0.3rem 0 0; color: var(--texto-suave); font-size: var(--t-pequeno); font-variant-numeric: tabular-nums; }
.pger__legenda-item { display: inline-flex; align-items: center; gap: 0.3rem; }
.pger__amostra { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 2px; }
.pger__amostra--linha { height: 3px; border-radius: 0; background: var(--painel-serie2); }
.pger__leitura, .pger__nota { margin: 0.2rem 0 0.3rem; min-height: 1.2em; color: var(--texto-suave); font-size: var(--t-pequeno); }
.pger__graficos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 0.5rem; }
.pger__bloco--largo { grid-column: 1 / -1; }
.pger__grafico { min-width: 0; }
.pger__tabela-rolagem { max-height: 22rem; }
.pger__tabela { font-size: var(--t-pequeno); }
/* lista do dialogo (novos, reativados, perdidos, faixas ABC) */
.dialogo--larga:has(.pger__lista) { width: min(60rem, calc(100vw - 2rem)); }
.pger__lista { display: grid; gap: 0.4rem; min-width: 0; }
.pger__lista-barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.3rem 0.6rem; }
.pger__lista-resumo { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.pger__lista-rolagem { max-height: min(55vh, 28rem); }
.pger__lista-tabela { font-size: var(--t-pequeno); }
.pger__lista-tabela td { white-space: nowrap; }
.pger__lista-tabela td.pger__lista-nome { max-width: 18rem; overflow: hidden; text-overflow: ellipsis; }
.pger__lista-tabela tr[aria-selected="true"] { background: var(--acento-suave); }
.pger__lista-tabela tr:focus-visible { outline: 2px solid var(--acento); outline-offset: -2px; }
.pger__lista-fim:has(> [hidden]:only-child) { display: none; }
/* graficos SVG (nucleo/graficos.js) */
.graf { display: block; overflow: visible; font-family: var(--fonte); }
.graf__barra { fill: var(--painel-serie1); }
.graf__barra--b { fill: color-mix(in srgb, var(--painel-serie1) 70%, var(--superficie)); }
.graf__barra--c { fill: color-mix(in srgb, var(--painel-serie1) 45%, var(--superficie)); }
.graf__barra--outros { fill: var(--linha-forte); }
.graf__trilho { fill: var(--superficie-2); }
.graf__linha { fill: none; stroke: var(--painel-serie2); stroke-width: 2; stroke-linejoin: round; }
.graf__ponto { fill: var(--superficie); stroke: var(--painel-serie2); stroke-width: 2; }
.graf__grade { stroke: var(--linha); stroke-width: 1; }
.graf__eixo { stroke: var(--linha-forte); stroke-width: 1; }
.graf__escala, .graf__rotulo { fill: var(--texto-suave); font-size: 10px; font-variant-numeric: tabular-nums; }
.graf__rotulo--nome { fill: var(--texto); font-size: 11px; }
.graf__rotulo--apagado { fill: var(--texto-suave); }
.graf__valor { fill: var(--texto); font-size: 11px; font-variant-numeric: tabular-nums; }
.graf__faixa { fill: transparent; }
.graf__item[tabindex] { outline: none; }
.graf__clicavel { cursor: pointer; }
.graf__item[tabindex]:hover .graf__faixa { fill: var(--acento-suave); }
.graf__item[tabindex]:focus-visible .graf__faixa { fill: var(--acento-suave); stroke: var(--acento); stroke-width: 2; }
.graf__clicavel:hover .graf__rotulo--nome { text-decoration: underline; }
.graf__barra--entrada { fill: var(--fluxo-entrada); }
.graf__barra--saida { fill: var(--fluxo-saida); }
.graf__barra--futuro { opacity: 0.45; }
.graf__linha--saldo { stroke: var(--fluxo-saldo); }
.graf__ponto--saldo { stroke: var(--fluxo-saldo); }
.graf__ponto--neg { fill: var(--fluxo-negativo); stroke: var(--fluxo-negativo); }
@media (max-width: 700px) {
  .pger__cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pger__cartao-valor { font-size: 1rem; }
}

/* Central de Representantes (reusa .cprod__* e .ccli__*) */
.crep__tabela td.crep__col-com { white-space: nowrap; }
.crep__tabela td.crep__col-fone { font-variant-numeric: tabular-nums; }
.crep__tabela td.col-num { font-variant-numeric: tabular-nums; }
.crep__painel .cprod__mini td:nth-child(2) { max-width: 6rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 1000px) { .crep__tabela .crep__col-com, .crep__tabela .crep__col-fone { display: none; } }
/* Central de Representantes: aba Comissao (telas/central-representantes-comissao.js) */
.crcom__filtros { align-items: end; }
.crcom__campo select, .crcom__campo input[type="month"], .crcom__campo input[type="date"] { min-width: 0; }
.crcom__campo-sugerida { flex: 0 0 8rem; }
.crcom__campo .campo__erro:empty { display: none; }
.crcom__apurar { align-self: end; padding-bottom: 0.1rem; }
.crcom__aliquotas { margin: 0 0 6px; font-size: 12px; color: var(--texto-suave); }
.crcom__rolagem { margin-top: 0.3rem; max-height: 22rem; overflow: auto; }
.crcom__tabela td.col-num { font-variant-numeric: tabular-nums; }
.crcom__tabela tbody tr.crcom__linha-total td { font-weight: 700; border-top: 2px solid var(--linha-forte); }
.crcom__acoes { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.crcom__dialogo { display: grid; gap: 0.4rem; margin: 0 0 1rem; }
.crcom__demo:empty { display: none; }
.crcom__titulo { margin: 0.3rem 0; font-size: var(--t-subtitulo); overflow-wrap: anywhere; }
.crcom__grupos { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 0.5rem; align-items: start; }
.crcom__grupo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.15rem 0.8rem; margin: 0; padding: 0.4rem 0.6rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.crcom__grupo dt { color: var(--texto-suave); overflow-wrap: anywhere; }
.crcom__grupo dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.crcom__grupo--devolucoes { background: var(--alerta-suave); }
.crcom__grupo--comissoes { background: var(--acento-suave); }
.crcom__grupo--margens, .crcom__grupo--prazo { border-left: 3px solid var(--sucesso); }
.crcom__forte { font-weight: 700; }
.crcom__grupo dt.crcom__escolhida, .crcom__grupo dd.crcom__escolhida { color: var(--texto); font-weight: 700; }
@media (max-width: 700px) { .crcom__campo-sugerida { flex: 1 1 8rem; } .crcom__grupos { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------- Força de vendas (Central de Representantes) */
.cforca__vermelho { color: var(--erro); font-weight: 600; }
.cforca__dica { margin: 0.2rem 0; color: var(--texto-suave); font-size: var(--t-pequeno); }
.cforca__aviso { margin: 0.2rem 0; padding: 0.3rem 0.6rem; border-radius: var(--raio); background: var(--superficie-2); color: var(--texto-suave); font-size: var(--t-pequeno); }
.cforca__titulo { margin: 0.3rem 0; font-weight: 700; font-size: var(--t-corpo); }
.cforca__barra { margin-top: 0.3rem; }
.cforca__relato:empty { display: none; }
.cforca__relato { margin: 0.4rem 0; padding: 0.4rem 0.7rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.cforca__relato ul { margin: 0.2rem 0 0; padding-left: 1.1rem; }
.cforca__rolagem { margin-top: 0.3rem; max-height: 18rem; overflow: auto; }
.cforca__tabela td.cforca__marca { width: 1.8rem; text-align: center; }
.cforca__tabela td.cforca__selos { white-space: normal; }
.cforca__tabela td.cforca__selos .selo { margin: 0.1rem 0.25rem 0.1rem 0; white-space: normal; }
.cforca__tabela tr.cforca__invalido td { color: var(--texto-suave); }
.cforca__previa { margin-top: 0.6rem; padding: 0.5rem 0.7rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.cforca__previa:empty { display: none; }
.cforca__dados { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.15rem 0.8rem; margin: 0.3rem 0; }
.cforca__dados dt { color: var(--texto-suave); }
.cforca__dados dd { margin: 0; overflow-wrap: anywhere; }
.cforca__itens td.col-num, .cforca__itens th.col-num { font-variant-numeric: tabular-nums; }
.cforca__itens tr.cforca__pendente td { color: var(--erro); }
.cforca__grupos { margin: 0.4rem 0; padding: 0.4rem 0.7rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); min-width: 0; }
.cforca__grupos legend { padding: 0 0.3rem; font-weight: 600; }
.cforca__grupos-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.3rem 1rem; }
.cforca__grupo { display: flex; align-items: flex-start; gap: 0.45rem; min-width: 0; cursor: pointer; }
.cforca__grupo input { margin-top: 0.2rem; flex: none; }
.cforca__grupo input:focus-visible { box-shadow: var(--foco); }
.cforca__grupo-nome { display: block; font-weight: 600; }
.cforca__grupo-arquivos { display: block; color: var(--texto-suave); font-size: var(--t-mini); overflow-wrap: anywhere; }
.cforca__envio-previa { margin-top: 0.3rem; }
.cforca__historico { margin-top: 0.8rem; }
.cprod__linha-filtros > .cprod__campo--marcar { flex: 0 0 auto; align-self: end; padding-bottom: 0.35rem; }

/* ficha do pedido recebido */
.cforca-ficha { display: grid; gap: 0.6rem; max-width: 76rem; }
.cforca-ficha__origem { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); overflow-wrap: anywhere; }
.cforca-ficha__faixa { margin: 0; padding: 0.45rem 0.8rem; border-radius: var(--raio); font-weight: 600; }
.cforca-ficha__faixa--ok { background: var(--superficie-2); color: var(--sucesso); box-shadow: inset 0 0 0 1px var(--sucesso); }
.cforca-ficha__faixa--alerta { background: var(--alerta-suave); color: var(--erro); }
.cforca-ficha__miolo { display: grid; gap: 0.8rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.cforca-ficha__secao { display: grid; gap: 0.3rem; }
.cforca-ficha__itens { display: grid; gap: 0.3rem; }
.cforca-ficha__totais { display: grid; grid-template-columns: auto auto; justify-content: end; gap: 0.15rem 1rem; margin: 0; }
.cforca-ficha__totais dt { color: var(--texto-suave); text-align: right; }
.cforca-ficha__totais dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.cforca-ficha__pendentes { padding: 0.5rem 0.7rem; border: 1px solid var(--erro); border-radius: var(--raio-grande); background: var(--alerta-suave); display: grid; gap: 0.4rem; }
.cforca__linha { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 2.5rem; gap: 0.5rem; align-items: start; }
.cforca__linha--cab { font-size: var(--t-mini); font-weight: 600; color: var(--texto-suave); }
.cforca__linha > .campo { grid-column: auto; min-width: 0; }
.cforca__linha > .campo > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cforca__linha > .campo .campo__erro:empty { display: none; }
.cforca__linha-total { align-self: center; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.cforca__remover { align-self: center; }
.cforca__pendente-linha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.5rem; align-items: start; }
.cforca__pendente-texto { margin: 0; overflow-wrap: anywhere; }
.cforca__pendente-linha > .campo { grid-column: auto; min-width: 0; }
.cforca-ficha .form__acoes { margin: 0; }
@media (max-width: 700px) {
  .cforca__linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) 2.5rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--linha); }
  .cforca__linha > .campo:first-child { grid-column: 1 / -1; }
  .cforca__linha > .campo > label { position: static; width: auto; height: auto; clip: auto; font-size: var(--t-mini); color: var(--texto-suave); }
  .cforca__linha--cab { display: none; }
  .cforca__linha-total { text-align: left; }
  .cforca__pendente-linha { grid-template-columns: minmax(0, 1fr); }
  .cforca-ficha .form__grade > .campo { grid-column: span 12; }
}
.cprod__campo--marcar .campo__marcar { white-space: nowrap; }
.cforca-ficha__secao > .botao { justify-self: start; }
.cforca-ficha, .cforca-ficha__form, .cforca-ficha__miolo, .cforca-ficha__secao, .cforca-ficha__itens { min-width: 0; }
.cforca-ficha { grid-template-columns: minmax(0, 1fr); }
.cforca-ficha__form { grid-template-columns: minmax(0, 1fr); }
.cforca-ficha .form__acoes { flex-wrap: wrap; }
.cforca-ficha__cliente-arquivo { grid-column: 1 / -1; margin: 0; overflow-wrap: anywhere; }

/* Central de Transportadoras: formulario do conhecimento (dialogo) */
.ctconh__form { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: 0.5rem 0.75rem; align-items: end; }
.ctconh__largo { grid-column: 1 / -1; }
.ctconh__pago { display: contents; }
.ctconh__pago[hidden] { display: none; }
.ctconh .cprod__barra { flex-wrap: wrap; gap: 0.5rem; }

/* Contas a Receber / a Pagar (telas/titulos-comum.js): totais da consulta no topo, situacao e aviso de origem */
.titulos__totais { display: flex; flex-wrap: wrap; align-items: stretch; gap: 0.5rem 1.25rem; margin: 0.5rem 0 0.25rem; padding: 0.55rem 0.8rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.titulos__totais[hidden] { display: none; }
.titulos__total { display: flex; flex-direction: column; min-width: 0; font-variant-numeric: tabular-nums; }
.titulos__total-rotulo { font-size: var(--t-pequeno); color: var(--texto-suave); }
.titulos__total-valor { font-size: var(--t-subtitulo); }
.titulos__total--vencido .titulos__total-valor { color: var(--erro); }
.titulos__aviso { flex: 1 1 100%; margin: 0; }
.titulos__origem { display: block; }
.titulos__situacao { min-width: 0; }
.tabela td.titulos__nome { white-space: normal; overflow-wrap: anywhere; }
.titulos__venc, .titulos__codigo { display: flex; flex-direction: column; align-items: flex-start; gap: 0.15rem; }
@media (max-width: 700px) {
  .titulos__totais { gap: 0.4rem 0.9rem; }
  .tabela th.titulos__col, .tabela td.titulos__col { padding-inline: 0.3rem; }
}

/* Contas a Receber em lote (consulta.js com selecao; titulos-comum.js com def.lote): caixinhas, "todos os
   encontrados", linha Selecionados nos totais e a barra de acoes */
.consulta__selecao { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.8rem; margin: 0.4rem 0 0.2rem; }
.consulta__todos { font-size: var(--t-pequeno) !important; }
.consulta__selecao-texto { font-size: var(--t-pequeno); }
.consulta__selecao [hidden] { display: none; }
.tabela--selecao th.col-marca, .tabela--selecao td.col-marca { width: 1.6rem; padding-inline: 0.35rem; text-align: center; }
.tabela--selecao .col-marca input { width: 0.95rem; height: 0.95rem; min-height: 0; margin: 0; vertical-align: middle; accent-color: var(--acento); }
.tabela--selecao tbody tr.consulta__marcada:not([aria-selected="true"]) { background: var(--superficie-2); }
.titulos__selecionados { flex: 1 1 100%; margin: 0; padding-top: 0.35rem; border-top: 1px dashed var(--linha); font-size: var(--t-pequeno); font-weight: 600; font-variant-numeric: tabular-nums; }
.titulos__selecionados[hidden] { display: none; }
.titulos__linha { display: inline-flex; align-items: center; gap: 0.3rem; }
.tabela--compacta td.titulos__cliente { max-width: 18rem; }
.titulos__acoes { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.4rem 0.75rem; margin: 0.3rem 0 0.4rem; padding: 0.45rem 0.6rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.titulos__acoes .campo { margin: 0; min-width: 0; }
.titulos__acoes .campo[hidden], .titulos__acoes [hidden] { display: none; }
.titulos__acao-campo { flex: 0 1 15rem; }
.titulos__acao-campo label { font-size: var(--t-mini); }
.titulos__acao-dica { margin: 0 0 0.35rem; font-size: var(--t-pequeno); }
@media (max-width: 700px) {
  .titulos__acao-campo { flex: 1 1 100%; }
  .titulos__acoes .botao { flex: 1 1 100%; }
  .tabela--compacta td.titulos__cliente { max-width: 9rem; }
}

/* ---- liquidação e estorno do título (telas/titulo-liquidacao.js): botões da ficha/formulário e as janelas */
.liq__acoes { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.6rem 0 0.2rem; }
.liq { width: min(42rem, calc(100vw - 2rem)); }
.liq__corpo { margin: 0 0 1rem; min-width: 0; }
.liq__campos, .liq__vinculo { margin-bottom: 0.5rem; }
.liq__vinculo[hidden] { display: none; }
.liq__info { margin: 0.2rem 0 0.6rem; font-size: var(--t-pequeno); line-height: 1.4; overflow-wrap: anywhere; }
.liq__subtitulo { margin: 0.6rem 0 0.35rem; font-size: var(--t-corpo); }
.liq__previa { min-width: 0; }
.liq__lista { max-height: 14rem; }
.liq__lista li > span { min-width: 0; overflow-wrap: anywhere; }
.liq__alterado { background: var(--alerta-suave); }
.liq__total { margin: 0 0 0.6rem; font-size: var(--t-pequeno); font-weight: 600; font-variant-numeric: tabular-nums; }
.liq__aviso { color: var(--texto); border-left: 3px solid var(--acento); }

/* Central Marketplace (telas/central-marketplace.js): logo da empresa mktp, lista e faixas dos anúncios.
   A faixa usa a cor do marketplace (--cmktp-fundo, do cadastro) e o texto de maior contraste (--cmktp-texto). */
.cmktp__logo { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.cmktp__logo-img { max-height: 2.6rem; max-width: 9rem; object-fit: contain; border-radius: var(--raio); background: #fff; padding: 0.1rem; }
.cmktp__empresa { font-size: var(--t-pequeno); font-weight: 600; color: var(--texto-suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cmktp__filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.4rem 0.75rem; }
.cmktp__campo-busca { flex: 1 1 18rem; }
.cmktp__acoes { margin-left: auto; }
.cmktp__rolagem { max-height: 18rem; }
.cmktp__anuncios { margin-top: 0.6rem; display: grid; gap: 0.25rem; }
.cmktp__anuncios-titulo { margin: 0 0 0.2rem; font-size: var(--t-subtitulo); padding: 0.3rem 0.5rem; background: var(--texto); color: var(--fundo); border-radius: var(--raio); }
.cmktp__anuncios-codigo { font-weight: 700; margin-right: 0.4rem; }
.cmktp__anuncios-vazio { color: var(--texto-suave); font-size: var(--t-pequeno); margin: 0.3rem 0; }
.cmktp__faixa { --cmktp-fundo: #5B6B7F; --cmktp-texto: #FFFFFF; background: var(--cmktp-fundo); color: var(--cmktp-texto); border-radius: var(--raio); padding: 0.15rem 0.5rem; display: grid; grid-template-columns: minmax(7rem, 9rem) minmax(7rem, 9rem) minmax(10rem, 12rem) 1fr; gap: 0.2rem 0.6rem; align-items: center; font-size: var(--t-pequeno); font-weight: 600; font-variant-numeric: tabular-nums; }
.cmktp__faixa:focus-visible { outline: none; box-shadow: var(--foco); }
.cmktp__mktp, .cmktp__custos { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
/* faixa baixa: "Preço:" ao lado do campo e o Atualiza logo abaixo dele */
.cmktp__preco-bloco { display: grid; grid-template-columns: auto 6.5rem; justify-content: start; align-items: center; column-gap: 0.4rem; row-gap: 0.15rem; min-width: 0; }
.cmktp__preco-bloco > label { grid-column: 1; grid-row: 1; }
.cmktp__preco-bloco > .cmktp__preco, .cmktp__preco-bloco > .cmktp__atualiza { grid-column: 2; }
.cmktp__preco-bloco > .cmktp__msg { grid-column: 1 / -1; }
.cmktp__msg:empty { display: none; }
.cmktp__tipo { font-size: var(--t-mini); opacity: 0.9; }
.cmktp__preco { width: 6.5rem; min-height: 1.4rem; border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); color: var(--texto); font: inherit; padding: 0 0.3rem; }
.cmktp__preco:focus-visible { outline: none; box-shadow: var(--foco); }
.cmktp__atualiza { width: 6.5rem; min-height: 1.4rem; padding-block: 0; }
.cmktp__msg { font-size: var(--t-mini); min-height: 1em; }
.cmktp__valores { min-width: 0; overflow-x: auto; }
.cmktp__calculo { border-collapse: collapse; color: inherit; font: inherit; }
.cmktp__calculo th, .cmktp__calculo td { padding: 0 0.45rem 0 0; line-height: 1.25; text-align: right; white-space: nowrap; }
.cmktp__calculo thead th { font-size: var(--t-mini); font-weight: 600; opacity: 0.85; }
.cmktp__calculo tbody th { text-align: left; font-size: var(--t-mini); opacity: 0.85; }
@media (max-width: 1100px) { .cmktp__col-extra { display: none; } }
/* Central Marketplace, aba Cadastro Produto Mktp (central-marketplace-produto.js) */
.cmktp-prod { display: grid; gap: 0.5rem; }
.cmktp-prod__barra { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; }
.cmktp-prod__titulo { margin: 0; font-size: var(--t-subtitulo); min-width: 0; overflow-wrap: anywhere; }
.cmktp-prod__botoes { margin-left: auto; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.cmktp-prod__estado { margin: 0; color: var(--texto-suave); font-size: var(--t-pequeno); min-height: 1em; }
.cmktp-prod__form { display: grid; gap: 0.6rem; }
.cmktp-prod__secao { border: 1px solid var(--linha); border-radius: var(--raio); padding: 0.5rem 0.6rem; min-width: 0; }
.cmktp-prod__secao-titulo { margin: 0 0 0.4rem; font-size: var(--t-pequeno); font-weight: 700; color: var(--texto-suave); text-transform: uppercase; letter-spacing: 0.03em; }
.cmktp-prod__grade { align-items: end; }
.cmktp-prod__custos { display: grid; grid-template-columns: repeat(4, auto); justify-content: start; gap: 0.1rem 1.2rem; margin: 0.5rem 0 0; font-variant-numeric: tabular-nums; }
.cmktp-prod__custos dt { font-size: var(--t-mini); color: var(--texto-suave); grid-row: 1; }
.cmktp-prod__custos dd { margin: 0; font-weight: 600; grid-row: 2; }
.cmktp-prod__links { margin: 0.4rem 0 0; font-size: var(--t-pequeno); overflow-wrap: anywhere; }
/* anúncios: colunas do tamanho do conteúdo, não esticadas na largura toda */
.cmktp-prod__anuncios { width: auto; }
.cmktp-prod__rolagem-anuncios { width: fit-content; max-width: 100%; }
.cmktp-prod__anuncios th, .cmktp-prod__anuncios td { white-space: nowrap; padding-right: 1.2rem; }
.cmktp-prod__anuncios tbody tr { cursor: default; }
.cmktp-prod__anuncios tbody tr:focus-visible { outline: none; box-shadow: var(--foco); }
.cmktp-prod__cor { display: inline-block; width: 0.7rem; height: 0.7rem; border-radius: 50%; margin-right: 0.35rem; vertical-align: middle; background: var(--linha-forte); }
/* Central Marketplace, aba Cadastro Anúncio (central-marketplace-anuncio.js) */
.cmktp-an { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem; }
.cmktp-an .cmktp__filtros > .campo { min-width: 0; max-width: 100%; }
.cmktp-an__rolagem { max-height: 16rem; }
.cmktp-an__form { border-top: 1px solid var(--linha); padding-top: 0.5rem; }
.cmktp-an__calculo { margin-top: 0.5rem; display: grid; gap: 0.35rem; font-size: 1rem; }
.cmktp-an__custos, .cmktp-an__lucro { margin: 0; font-variant-numeric: tabular-nums; }
.cmktp-an__lucro { font-weight: 600; }
.cmktp-an__abaixo { color: var(--erro); font-weight: 700; }
.cmktp-an__acima { color: var(--acento); font-weight: 700; }
/* faixa do título na cor do marketplace (texto de maior contraste); botões centralizados logo abaixo */
.cmktp-an__faixa { --cmktp-fundo: var(--superficie); --cmktp-texto: var(--texto); background: var(--cmktp-fundo); color: var(--cmktp-texto); border: 2px solid var(--texto); border-radius: var(--raio); padding: 0.35rem 0.75rem; text-align: center; }
.cmktp-an__titulo { margin: 0; font-size: var(--t-subtitulo); overflow-wrap: anywhere; }
.cmktp-an__botoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin: 0.6rem 0 0.4rem; }
.cmktp-an__custo { white-space: nowrap; }
@media (min-width: 901px) { .cmktp-an__nova-linha { grid-column-start: 1; } }
.cmktp-an__tabela th, .cmktp-an__tabela td { padding-right: 0.9rem; line-height: 1.4; }
/* cálculo do anúncio em fonte maior: os cabeçalhos sobem de 11px para 13px */
.cmktp-an__tabela thead th, .cmktp-an__tabela tbody th { font-size: var(--t-corpo); }
.cmktp-an__lucro { font-size: 1.0625rem; }
.cmktp-prod__novo-anuncio { margin-top: 0.4rem; }
/* Central Marketplace, aba Cadastro Marketplace (central-marketplace-marketplaces.js) */
.cmktp-mk { display: grid; grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr); gap: 0.75rem; align-items: start; }
.cmktp-mk__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.cmktp-mk__item { width: 100%; display: flex; gap: 0.5rem; align-items: center; text-align: left; padding: 0.35rem 0.5rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); color: var(--texto); font: inherit; cursor: pointer; }
.cmktp-mk__item:hover { border-color: var(--linha-forte); }
.cmktp-mk__item:focus-visible { outline: none; box-shadow: var(--foco); }
.cmktp-mk__item--aberto { border-color: var(--acento); background: var(--acento-suave); }
.cmktp-mk__amostra { flex: none; width: 1.1rem; height: 1.1rem; border-radius: var(--raio); border: 1px solid var(--linha-forte); }
.cmktp-mk__textos { display: grid; min-width: 0; font-size: var(--t-pequeno); }
.cmktp-mk__textos strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cmktp-mk__resumo { color: var(--texto-suave); font-size: var(--t-mini); }
.cmktp-mk__cor { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.cmktp-mk__cor input[type=text] { width: 6.5rem; }
.cmktp-mk__seletor { width: 2.4rem; min-height: var(--altura-campo); padding: 0.1rem; border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); }
.cmktp-mk__exemplo { --cmktp-fundo: #5B6B7F; --cmktp-texto: #FFFFFF; background: var(--cmktp-fundo); color: var(--cmktp-texto); border-radius: var(--raio); padding: 0.25rem 0.6rem; display: flex; gap: 0.6rem; align-items: center; font-size: var(--t-pequeno); }
@media (max-width: 800px) { .cmktp-mk { grid-template-columns: minmax(0, 1fr); } }
/* Central Marketplace, aba Empresa Marketplace (bloco 6): dados à esquerda, logo à direita */
.cmktp-emp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem); gap: 0.75rem; align-items: start; }
.cmktp-emp__logo { display: grid; gap: 0.4rem; padding: 0.5rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.cmktp-emp__subtitulo { margin: 0; font-size: var(--t-pequeno); }
.cmktp-emp__quadro { min-height: 6rem; display: flex; align-items: center; justify-content: center; }
/* logos têm fundo próprio: o fundo branco mantém o desenho no tema escuro, como no cabeçalho */
.cmktp-emp__img { max-width: 100%; max-height: 10rem; object-fit: contain; background: #fff; border-radius: var(--raio); padding: 0.25rem; }
@media (max-width: 800px) { .cmktp-emp { grid-template-columns: minmax(0, 1fr); } }
.cmktp-tp__filtro { margin-bottom: 0.4rem; }
.cmktp-tp__filtro select { width: 100%; }
.cmktp-prod__auditoria { margin: 0; font-size: var(--t-mini); color: var(--texto-suave); }
@media (max-width: 700px) {
  .cmktp-prod__custos { grid-template-columns: auto auto; }
  .cmktp-prod__custos dt, .cmktp-prod__custos dd { grid-row: auto; }
  .cmktp-prod__botoes { margin-left: 0; }
}
@media (max-width: 700px) {
  .cmktp__faixa { grid-template-columns: 1fr 1fr; }
  .cmktp__valores { grid-column: 1 / -1; }
}

/* ---- Fluxo de caixa (telas/fluxo-caixa.js) */
.fcx__filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.5rem 0.75rem; margin-bottom: 0.5rem; min-width: 0; }
.fcx__campo { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.fcx__rotulo { color: var(--texto-suave); font-size: var(--t-mini); font-weight: 600; }
.fcx__entrada { height: 1.75rem; min-width: 0; padding: 0 0.4rem; border: 1px solid var(--linha-forte); border-radius: var(--raio); background: var(--superficie); color: var(--texto); font: inherit; font-size: var(--t-pequeno); }
.fcx__entrada:focus-visible { outline: none; box-shadow: var(--foco); }
.fcx__atalhos { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.fcx__atalho { height: 1.75rem; padding: 0 0.5rem; font-size: var(--t-pequeno); }
.fcx__marca { display: inline-flex; align-items: center; gap: 0.3rem; font-size: var(--t-pequeno); min-height: 1.75rem; }
.fcx__marca input { width: 1rem; height: 1rem; }
.fcx__marca input:focus-visible { outline: none; box-shadow: var(--foco); }
.fcx__acoes { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.fcx__mensagens { display: grid; gap: 0.3rem; margin-bottom: 0.5rem; }
.fcx__mensagens:empty { display: none; }
.fcx__alerta, .fcx__aviso { margin: 0; padding: 0.4rem 0.65rem; border-radius: var(--raio); font-size: var(--t-pequeno); }
.fcx__alerta { border: 1px solid var(--fluxo-negativo); color: var(--fluxo-negativo); font-weight: 700; background: color-mix(in srgb, var(--fluxo-negativo) 10%, var(--superficie)); }
.fcx__aviso { border: 1px solid var(--linha-forte); background: var(--superficie-2); color: var(--texto); }
.fcx__cartoes { margin-bottom: 0.5rem; }
.fcx__cartao-sub { color: var(--texto-suave); font-size: var(--t-mini); overflow-wrap: anywhere; }
.fcx__neg { color: var(--fluxo-negativo); }
.fcx__bloco { margin-bottom: 0.5rem; min-width: 0; }
.fcx__legenda { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.4rem; margin: 0 0 0.3rem; font-size: var(--t-mini); color: var(--texto-suave); }
.fcx__legenda-nota { margin-left: 0.4rem; }
.fcx__amostra { display: inline-block; width: 0.8rem; height: 0.55rem; border-radius: 2px; }
.fcx__amostra--entrada { background: var(--fluxo-entrada); }
.fcx__amostra--saida { background: var(--fluxo-saida); }
.fcx__amostra--saldo { height: 3px; border-radius: 0; background: var(--fluxo-saldo); }
.fcx__periodo-texto { color: var(--texto-suave); font-size: var(--t-mini); }
.fcx__dica { margin: 0.3rem 0 0; color: var(--texto-suave); font-size: var(--t-mini); }
/* grade: rola de lado dentro da caixa, primeira coluna e cabeçalho fixos */
.fcx__grade { max-width: 100%; max-height: 70vh; overflow: auto; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.fcx__grade:focus { outline: none; }
.fcx__tabela { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: var(--t-pequeno); font-variant-numeric: tabular-nums; }
.fcx__th { position: sticky; top: 0; z-index: 2; padding: 0.3rem 0.55rem; background: var(--superficie-2); border-bottom: 1px solid var(--linha-forte); text-align: right; white-space: nowrap; font-weight: 700; }
.fcx__sub { top: 1.9rem; font-weight: 600; font-size: var(--t-mini); }
.fcx__rot { position: sticky; left: 0; z-index: 1; min-width: 12rem; max-width: 16rem; padding: 0.25rem 0.55rem 0.25rem calc(0.55rem + var(--nivel, 0) * 0.9rem); background: var(--superficie); border-bottom: 1px solid var(--linha); border-right: 1px solid var(--linha-forte); text-align: left; font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
th.fcx__rot { text-align: left; }
.fcx__th.fcx__rot { z-index: 3; background: var(--superficie-2); font-weight: 700; padding-left: 0.55rem; }
.fcx__texto { overflow: hidden; text-overflow: ellipsis; }
.fcx__seta { display: inline-block; width: 1rem; color: var(--texto-suave); }
.fcx__valor { padding: 0.25rem 0.55rem; border-bottom: 1px solid var(--linha); text-align: right; white-space: nowrap; }
.fcx__valor.neg { color: var(--fluxo-negativo); }
.fcx__atual { background: var(--fluxo-hoje); }
.fcx__th.fcx__atual { background: color-mix(in srgb, var(--fluxo-saldo) 22%, var(--superficie-2)); }
.fcx__total-col { border-left: 1px solid var(--linha-forte); font-weight: 700; }
.fcx__valor--detalhe { cursor: pointer; }
.fcx__valor--detalhe:hover { text-decoration: underline; }
.fcx__linha--grupo .fcx__rot, .fcx__linha--grupo .fcx__valor, .fcx__linha--total .fcx__rot, .fcx__linha--total .fcx__valor, .fcx__linha--saldo .fcx__rot, .fcx__linha--saldo .fcx__valor { font-weight: 700; }
.fcx__linha--titulo .fcx__rot, .fcx__linha--titulo .fcx__valor { font-weight: 600; }
.fcx__linha--total .fcx__rot, .fcx__linha--total .fcx__valor, .fcx__linha--saldo .fcx__rot, .fcx__linha--saldo .fcx__valor { background-color: var(--superficie-2); }
.fcx__linha--saldo .fcx__atual, .fcx__linha--total .fcx__atual { background-color: color-mix(in srgb, var(--fluxo-saldo) 16%, var(--superficie-2)); }
.fcx__linha--atrasados .fcx__rot { font-style: italic; }
.fcx__tabela th[tabindex]:focus-visible, .fcx__tabela td[tabindex]:focus-visible { outline: 2px solid var(--acento); outline-offset: -2px; }
.fcx__detalhe { min-width: 0; }
.fcx__detalhe-rolagem { max-height: 50vh; overflow: auto; }
.fcx__detalhe-total { margin: 0.4rem 0 0; font-weight: 700; font-size: var(--t-pequeno); }
.dialogo--larga:has(.fcx__detalhe) { width: min(56rem, calc(100vw - 2rem)); }
.dialogo--larga:has(.fcx__previsoes-janela) { width: min(64rem, calc(100vw - 2rem)); }
.dialogo--larga:has(.fcx__previsao-form) { width: min(40rem, calc(100vw - 2rem)); }
.fcx__camadas { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.7rem; min-height: 1.75rem; }
.fcx__dias { width: 5rem; }
.fcx__camada .fcx__rot, .fcx__camada .fcx__valor { background-image: linear-gradient(var(--fluxo-camada), var(--fluxo-camada)); }
.fcx__camada .fcx__rot { font-style: italic; }
.fcx__proximas { margin: 0.5rem 0 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.fcx__form { margin-bottom: 0.25rem; }
.fcx__nova { margin-bottom: 0.5rem; }
.fcx__acao-linha { height: 1.6rem; padding: 0 0.5rem; font-size: var(--t-mini); white-space: nowrap; }
.fcx__acoes-linha { display: flex; flex-wrap: nowrap; gap: 0.25rem; }
.fcx__baixa { display: flex; align-items: center; gap: 0.35rem; white-space: nowrap; }
.fcx__baixa + .fcx__baixa { margin-top: 0.2rem; }
.fcx__detalhe td, .fcx__previsoes td { white-space: normal; overflow: visible; text-overflow: clip; }
.fcx__inativa td { color: var(--texto-suave); }
.fcx__baixada td { color: var(--texto-suave); text-decoration: line-through; }
.fcx__baixada td:last-child, .fcx__baixada .fcx__selo-paga { text-decoration: none; }
@media (max-width: 700px) {
  .fcx__filtros { align-items: stretch; }
  .fcx__campo { flex: 1 1 8rem; }
  .fcx__rot { min-width: 8.5rem; max-width: 10rem; }
  .fcx__grade { max-height: 65vh; }
}

/* Central Marketplace, aba Inventário (bloco 7) */
.cmktp-inv { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
.cmktp-inv__faixa { display: grid; gap: 0.35rem; padding: 0.5rem 0.65rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.cmktp-inv__linha { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem; min-width: 0; }
.cmktp-inv__situacao { color: var(--texto-suave); }
.cmktp-inv__situacao--pendente { color: var(--erro); font-weight: 600; }
.cmktp-inv__ultima { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); overflow-wrap: anywhere; }
.cmktp-inv__totais { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.cmktp-inv__custo--maior { color: var(--erro); font-weight: 600; }
.cmktp-inv__custo--menor { color: var(--sucesso); font-weight: 600; }
.cmktp-inv__avisos { margin: 0; padding-left: 1.2rem; font-size: var(--t-pequeno); max-height: 12rem; overflow: auto; }
.cmktp-inv__historico { max-height: 60vh; }
@media (max-width: 1000px) { .cmktp-inv__tabela .cmktp-inv__col-extra { display: none; } }

/* Caixa e bancos (telas/financeiro.js): extrato e consulta por orçamento, janelas de lançamento e transferência */
.fin__credito { color: var(--fin-credito); }
.fin__debito { color: var(--fin-debito); }
.fin__seta { min-width: 1.75rem; padding: 0 0.35rem; }
.fin__conta { max-width: 20rem; }
.fin__abas { display: flex; gap: 0.25rem; margin-bottom: 0.5rem; border-bottom: 1px solid var(--linha); overflow-x: auto; }
.fin__aba-botao { flex: 0 0 auto; padding: 0.4rem 0.8rem; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--texto-suave); font: inherit; font-weight: 600; cursor: pointer; }
.fin__aba-botao:hover { color: var(--texto); }
.fin__aba-botao:focus-visible { outline: none; box-shadow: var(--foco); border-radius: var(--raio); }
.fin__aba-botao--ativa { color: var(--acento); border-bottom-color: var(--acento); }
.fin__aba[hidden] { display: none; }
.fin__cartoes { margin-bottom: 0.5rem; }
.fin__total { margin-top: 0.5rem; }
.fin__contas-marcas { display: flex; flex-wrap: wrap; gap: 0.2rem 0.6rem; }
.fin__filtros-consulta { margin-bottom: 0.5rem; }
.fin__rolagem { max-height: 62vh; overflow: auto; }
.fin__tabela td, .fin__tabela th { white-space: nowrap; }
.fin__tabela .fin__col-obs, .fin__tabela .fin__col-orc { white-space: normal; min-width: 9rem; max-width: 22rem; overflow-wrap: anywhere; }
.fin__tabela .fin__col-ref { max-width: 8rem; overflow: hidden; text-overflow: ellipsis; }
.fin__linha:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--acento); }
.fin__linha { cursor: pointer; }
.fin__grupo th { text-align: left; background: var(--superficie-2); font-size: var(--t-pequeno); }
.fin__grupo th.col-num { text-align: right; }
.fin__tipo { font-weight: 700; }
.fin__vazio { margin: 1rem 0; color: var(--texto-suave); }
.fin__selo { display: inline-block; padding: 0 0.4rem; border-radius: 999px; font-size: var(--t-mini); font-weight: 700; line-height: 1.5; background: var(--superficie-2); color: var(--texto-suave); box-shadow: inset 0 0 0 1px var(--linha-forte); }
.fin__selo--botao { font-family: inherit; cursor: pointer; }
.fin__selo--botao:hover { color: var(--texto); }
.fin__selo--botao:focus-visible { outline: none; box-shadow: var(--foco); }
.fin__selo--liquidacao { background: var(--acento-suave); color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.fin__selo--transferencia { color: var(--texto); }
.fin__janela { width: min(36rem, calc(100vw - 2rem)); }
.fin__janela-corpo { margin: 0 0 1rem; min-width: 0; display: grid; gap: 0.5rem; }
.fin__janela-acoes { align-items: center; }
.fin__janela-extras { margin-right: auto; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.fin__previa { padding: 0.5rem 0.65rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie-2); }
.fin__previa-titulo { margin: 0 0 0.25rem; font-weight: 700; font-size: var(--t-pequeno); }
.fin__previa-lista { margin: 0; padding-left: 1.1rem; font-size: var(--t-pequeno); }
.fin__nota { color: var(--texto-suave); font-size: var(--t-mini); }
.fin__pessoa-linha { margin: 0 0 0.4rem; font-weight: 600; font-size: var(--t-pequeno); overflow-wrap: anywhere; }
.fin__pessoa-linha:empty { display: none; }
.fin__acoes-pessoa { margin-bottom: 0.5rem; }
.fin__acoes-pessoa:empty { display: none; }
.fin__sub-titulo { margin: 0.75rem 0 0.3rem; font-size: var(--t-pequeno); font-weight: 700; }
.fin__rolagem--ref { max-height: 30vh; }
.fin__contas-lista { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.2rem; }
.fin__conta-item { display: flex; flex-wrap: wrap; align-items: center; gap: 0.1rem 0.6rem; }
.fin__conta-item .fcx__marca { flex-wrap: wrap; }
.fin__resumo { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.15rem 0.75rem; margin: 0; font-size: var(--t-pequeno); }
.fin__resumo dt { color: var(--texto-suave); font-weight: 600; }
.fin__resumo dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .fin__conta { max-width: none; }
  .fin__rolagem { max-height: 55vh; }
  .fin__janela-acoes { flex-wrap: wrap; }
  .fin__rolagem--ref { max-height: 40vh; }
}

/* Caixa e bancos, aba Conciliação (telas/financeiro-conciliacao.js): extrato do banco x lançamentos do sistema */
.conc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
.conc__corpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
.conc__corpo[hidden] { display: none; }
.conc__topo-botoes { align-self: end; }
.conc__arquivo { display: none; }
.conc__soltar { padding: 0.5rem 0.75rem; border: 1px dashed var(--linha-forte); border-radius: var(--raio); background: var(--superficie-2); color: var(--texto-suave); font-size: var(--t-pequeno); text-align: center; }
.conc__soltar--ativo { border-color: var(--acento); background: var(--acento-suave); color: var(--acento); }
.conc__saldo-texto { margin: 0.25rem 0 0; font-size: var(--t-pequeno); overflow-wrap: anywhere; }
.conc__aviso-script { font-weight: 600; }
.conc__quebrados ul { margin: 0.25rem 0 0; padding-left: 1.1rem; }
.conc__quebrados p { margin: 0; }
.conc__acoes { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.conc__colunas { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0.75rem; }
.conc__coluna { min-width: 0; }
.conc__coluna-titulo { margin: 0 0 0.3rem; font-size: var(--t-subtitulo); }
.conc__rolagem { max-height: 58vh; }
.conc__tabela .conc__col-texto { white-space: normal; min-width: 10rem; overflow-wrap: anywhere; }
.conc__col-marca { width: 1.75rem; text-align: center; }
.conc__linha--marcada td { background: var(--acento-suave); }
.conc__linha--par td { box-shadow: inset 0 -2px 0 var(--acento); }
.conc__selo--sugestao { background: var(--acento-suave); color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); }
.conc__selo--ambigua { color: var(--texto); box-shadow: inset 0 0 0 1px var(--etiqueta); }
.conc__selo--conciliada { color: var(--fin-credito); box-shadow: inset 0 0 0 1px var(--fin-credito); }
.conc__selo--ignorada { color: var(--texto-suave); }
.conc__selo--quebrada { color: var(--erro); box-shadow: inset 0 0 0 1px var(--erro); background: var(--alerta-suave); }
.conc__rodape { position: sticky; bottom: 0; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.4rem 0.75rem; padding: 0.4rem 0.6rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); }
.conc__somas { margin: 0; font-size: var(--t-pequeno); font-weight: 600; overflow-wrap: anywhere; }
.conc__resumo { max-height: 9rem; overflow: auto; }
.conc__motivo-campo { display: grid; gap: 0.2rem; margin-bottom: 0.5rem; }
.conc__motivo { width: 100%; }
.conc__avisos { margin: 0 0 0.5rem; padding-left: 1.1rem; font-size: var(--t-pequeno); max-height: 10rem; overflow: auto; }
.conc__historico { max-height: 55vh; }
.conc__col-selos .fin__selo + .fin__selo { margin-left: 0.25rem; }
.conc__selo--titulo { color: var(--acento); box-shadow: inset 0 0 0 1px var(--acento); white-space: normal; border-radius: var(--raio); }
.conc__selo--possiveis { color: var(--texto); box-shadow: inset 0 0 0 1px var(--linha-forte); }
/* janela Liquidar títulos e desfazer de títulos (liquidar pelo extrato) */
.conc-liq.fin__janela { width: min(60rem, calc(100vw - 2rem)); }
.conc-liq__filtros { display: flex; flex-wrap: wrap; gap: 0.4rem 0.6rem; align-items: end; }
.conc-liq__filtros .fcx__entrada { width: 9rem; max-width: 100%; }
.conc-liq__filtros input[type="search"] { width: 14rem; }
.conc-liq__rolagem { max-height: 40vh; }
.conc-liq__tabela td { vertical-align: middle; }
.conc-liq__bloqueado td { color: var(--texto-suave); }
.conc-liq__motivo { font-size: var(--t-mini); white-space: normal; }
.conc-liq__col-pago { min-width: 7.5rem; }
.conc-liq__valor { width: 7rem; text-align: right; font-variant-numeric: tabular-nums; }
.conc-liq__valor[aria-invalid="true"] { box-shadow: inset 0 0 0 1px var(--erro); }
.conc-liq__somas { padding: 0.3rem 0.5rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie-2); }
.conc-liq__previa { min-width: 0; }
.conc-desf__titulo { padding: 0.3rem 0.5rem; border: 1px solid var(--linha); border-radius: var(--raio); min-width: 0; }
.liq__bloqueio { font-weight: 600; }
@media (max-width: 900px) {
  .conc__colunas { grid-template-columns: minmax(0, 1fr); }
  .conc__rolagem { max-height: 45vh; }
}
@media (max-width: 600px) {
  .conc-liq__filtros .fcx__entrada, .conc-liq__filtros input[type="search"] { width: 100%; }
  .conc-liq__filtros .fcx__campo { flex: 1 1 8rem; }
}

/* Central Marketplace, aba Verifica estoque (bloco 8) */
.cmktp-ve { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
.cmktp-ve__origem { margin: 0; font-weight: 600; overflow-wrap: anywhere; }
.cmktp-ve__ultima { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); overflow-wrap: anywhere; }
.cmktp-ve__motivo { margin: 0; color: var(--erro); font-weight: 600; }
.cmktp-ve__resultado { display: grid; gap: 0.4rem; min-width: 0; }
.cmktp-ve__estado { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.cmktp-ve__abas { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.cmktp-ve__barra { display: flex; flex-wrap: wrap; align-items: end; gap: 0.5rem; }
.cmktp-ve__rolagem { max-height: 60vh; }
.cmktp-ve__tabela td { white-space: nowrap; }
.cmktp-ve__tabela td.cmktp-ve__campos { white-space: normal; overflow-wrap: anywhere; min-width: 16rem; }
/* Central Marketplace, aba Vendas (bloco 1) */
.cmktp-vd { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
.cmktp-vd__filtros { flex-wrap: wrap; }
.cmktp-vd__campo-uf input { width: 3.2rem; }
.cmktp-vd__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.cmktp-vd__shopee {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.75rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--linha);
  border-radius: var(--raio);
  background: var(--superficie-2);
  font-size: 0.8rem;
}
.cmktp-vd__shopee-sit--alerta { color: var(--erro); font-weight: 600; }
.cmktp-vd__shein--solta { outline: 2px dashed var(--acento); outline-offset: 2px; background: var(--acento-suave); }
.cmktp-vd__ml { margin-top: 0.5rem; }
.cmktp-vd__ml h4 { margin: 0.25rem 0; font-size: 0.85rem; }
.cmktp-vd__ml ul { margin: 0; padding-left: 1.1rem; font-size: 0.8rem; }
.cmktp-mp { display: grid; gap: 0.75rem; grid-template-columns: minmax(0, 1fr); }
.cmktp-mp__pedidos, .cmktp-mp__saques, .cmktp-mp__conferencia { border: 1px solid var(--linha); border-radius: 6px; padding: 0.5rem 0.75rem; }
.cmktp-mp__titulo { margin: 0 0 0.4rem; font-size: 0.9rem; }
.cmktp-mp__nota { margin: 0.25rem 0; font-size: 0.8rem; color: var(--texto-suave); }
.cmktp-mp__cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.5rem; }
.cmktp-mp__cartao { border: 1px solid var(--linha); border-radius: 6px; padding: 0.4rem 0.6rem; display: grid; gap: 0.15rem; }
.cmktp-mp__rotulo { font-size: 0.75rem; color: var(--texto-suave); }
.cmktp-mp__saques ul, .cmktp-mp__conferencia ul { margin: 0; padding-left: 1.1rem; font-size: 0.85rem; }
.cmktp-amz__aberto td { font-style: italic; }
.cmktp-amz__detalhe { display: grid; gap: 0.5rem; grid-template-columns: minmax(0, 1fr); }
.cmktp-amz__detalhe h4 { margin: 0.25rem 0 0; font-size: 0.85rem; }
.cmktp-amz__pedidos { max-height: 22rem; }
.cmktp-amz__pedidos tbody tr:focus-visible { outline: 2px solid var(--acento); outline-offset: -2px; }
.cmktp-vd__rolagem { max-height: 60vh; }
.cmktp-vd__tabela td, .cmktp-vd__tabela th { white-space: nowrap; }
.cmktp-vd__tabela td.cmktp-vd__longo { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; }
.cmktp-vd__fixa { position: sticky; z-index: 1; background: var(--superficie); }
.cmktp-vd__tabela thead .cmktp-vd__fixa { z-index: 3; background: var(--superficie-2); }
.cmktp-vd__fixa--0 { left: 0; min-width: 2.6rem; width: 2.6rem; }
.cmktp-vd__fixa--1 { left: 2.6rem; box-shadow: 1px 0 0 var(--linha); }
.cmktp-vd__critica td { color: var(--erro); }
.cmktp-vd__totais { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0; font-size: var(--t-pequeno); }
.cmktp-vd__detalhe { display: grid; gap: 0.4rem; }
.cmktp-vd__detalhe:empty { display: none; }
.cmktp-vd__titulo { margin: 0; font-size: var(--t-normal, 1rem); }
.cmktp-vd__dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: 0.15rem 1rem; font-size: var(--t-pequeno); }
.cmktp-vd__dados p { margin: 0; overflow-wrap: anywhere; }

/* Duplicatas da nota (nota-duplicatas.js) */
.fin__janela:has(.dup-nota__tabela) { width: min(58rem, calc(100vw - 2rem)); }
.dup-nota__cab { margin: 0; font-size: var(--t-pequeno); color: var(--texto-suave); }
.dup-nota__rolagem { max-height: 50vh; overflow: auto; border: 1px solid var(--linha); border-radius: var(--raio); }
.dup-nota__tabela input { width: 100%; min-width: 0; font: inherit; padding: 0.15rem 0.3rem; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--superficie); color: var(--texto); }
.dup-nota__tabela input[type="date"] { min-width: 8.5rem; }
.dup-nota__tabela input[aria-invalid="true"] { border-color: var(--erro); box-shadow: 0 0 0 1px var(--erro); }
.dup-nota__tabela td.num, .dup-nota__tabela input.num { text-align: right; }
.dup-nota__paga td { color: var(--texto-suave); }
.dup-nota__tirar { min-width: 2rem; padding: 0.1rem 0.5rem; }
.dup-nota__totais { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; font-size: var(--t-pequeno); }
.dup-nota__dif { color: var(--erro); }
.dup-nota__ok { color: var(--sucesso); }

/* SPED Fiscal (telas/sped.js): pedido do mes, cartoes da apuracao, pendencias por registro, historico e configuracao */
.sped__intro { max-width: 60rem; }
.sped__pedido { max-width: 76rem; margin-bottom: 1rem; }
.sped__botoes { display: flex; align-items: flex-end; gap: 0.5rem; flex-wrap: wrap; }
.sped__ajuda { margin: 0.15rem 0 0; font-size: var(--t-pequeno); }
.sped__estado { margin: 0.4rem 0 0; font-weight: 600; }
.sped__estado:empty { display: none; }
.sped__frase { margin: 0 0 0.6rem; font-weight: 600; }
.sped__cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.75rem; max-width: 76rem; margin-bottom: 1rem; }
.sped__cartao { padding: 0.6rem 0.8rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.sped__cartao-titulo { margin: 0 0 0.4rem; font-size: 0.9rem; }
.sped__valores { display: grid; grid-template-columns: 1fr auto; gap: 0.15rem 0.75rem; margin: 0; font-size: var(--t-pequeno); }
.sped__valores dt { color: var(--texto-suave); }
.sped__valores dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.sped__subtitulo { margin: 1rem 0 0.5rem; font-size: 1rem; }
.sped__ok { color: var(--sucesso); font-weight: 600; }
.sped__pendencias { display: grid; gap: 0.6rem; max-width: 76rem; }
.sped__grupo { border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); padding: 0.5rem 0.75rem; }
.sped__grupo-titulo { margin: 0 0 0.3rem; font-size: 0.9rem; }
.sped__itens { margin: 0; padding-left: 1.1rem; display: grid; gap: 0.2rem; }
.sped__item { overflow-wrap: anywhere; }
.sped__item--erro { color: var(--erro); }
.sped__abrir { margin-left: 0.5rem; white-space: nowrap; }
.sped__historico { max-width: 76rem; }
.sped__config { max-width: 76rem; margin-top: 1.25rem; padding: 0.6rem 0.8rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.sped__config > summary { cursor: pointer; font-weight: 600; }
.sped__difal { display: grid; gap: 0.35rem; margin-bottom: 0.4rem; }
.sped__difal-linha { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.sped__difal-linha input { min-width: 0; }
.sped__difal-linha input:first-child { width: 3.5rem; }
.sped__difal-linha input:nth-child(2) { width: 9rem; }
.sped__difal-linha input:nth-child(3) { width: 5rem; }
.sped__acoes { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.5rem; }
.sped__saldos, .sped__ajustes { max-width: 76rem; margin-bottom: 1rem; padding: 0.6rem 0.8rem; border: 1px solid var(--linha); border-radius: var(--raio-grande); background: var(--superficie); }
.sped__saldos > .sped__subtitulo, .sped__ajustes > .sped__subtitulo { margin-top: 0; }
.sped__linhas-saldo { display: grid; gap: 0.35rem; }
.sped__linha-saldo { display: flex; gap: 0.4rem; align-items: center; flex-wrap: wrap; }
.sped__linha-saldo input { min-width: 0; }
.sped__linha-saldo input:nth-of-type(1) { width: 3.5rem; }
.sped__linha-saldo input:nth-of-type(2) { width: 9rem; text-align: right; }
.sped__ajuste { cursor: pointer; }
.sped__ajuste[aria-selected="true"] td { background: var(--acento-suave); }
.sped__ajuste-descricao { overflow-wrap: anywhere; }
.sped__significado { margin: 0.15rem 0 0; font-size: var(--t-pequeno); }
