/* Controle de Vencidos Ômega: estilo das telas.
   Cores da Ômega. Dourado só para destaque e item ativo; vermelho só para o que pede ação. */

@font-face { font-family: "Space Grotesk"; font-weight: 500; font-display: swap; src: url("fontes/space-grotesk-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Space Grotesk"; font-weight: 700; font-display: swap; src: url("fontes/space-grotesk-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-display: swap; src: url("fontes/ibm-plex-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 500; font-display: swap; src: url("fontes/ibm-plex-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-display: swap; src: url("fontes/ibm-plex-sans-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-display: swap; src: url("fontes/ibm-plex-mono-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 500; font-display: swap; src: url("fontes/ibm-plex-mono-latin-500-normal.woff2") format("woff2"); }

:root {
  --verde-escuro: #0F2615;
  --verde-escuro-2: #1F4A27;
  --verde: #2B5A33;
  --verde-claro: #E3EBE1;   /* trilho das barras e linhas de apoio */
  --dourado: #D4A82C;
  --fundo: #F3F5F0;
  --cartao: #FFFFFF;
  --texto: #1D2B20;
  --texto-apoio: #4F6154;
  --borda: #DCE3D8;
  --vermelho: #B42318;
  --vermelho-fundo: #FBEAE8;

  --fonte-titulo: "Space Grotesk", "Segoe UI", sans-serif;
  --fonte-texto: "IBM Plex Sans", "Segoe UI", sans-serif;
  --fonte-numero: "IBM Plex Mono", Consolas, monospace;
  color-scheme: light;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--fundo);
  color: var(--texto);
  font-family: var(--fonte-texto);
  font-size: 15px;
  line-height: 1.5;
  min-width: 320px;
}
h1, h2, h3 { font-family: var(--fonte-titulo); font-weight: 500; font-style: normal; margin: 0; }
button { font: inherit; }

/* ---------- Topo ---------- */
/* O topo rola junto com a página (pedido do Lucas, 06/11/2026): não fica parado cobrindo o conteúdo */
.topo { position: relative; z-index: 20; }
.topo-linha1 {
  background: var(--verde-escuro);
  color: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  padding: 12px 32px;
}
.marca { display: flex; align-items: baseline; gap: 12px; }
.marca-nome { font-family: var(--fonte-titulo); font-weight: 700; font-size: 22px; letter-spacing: .5px; }
.marca-app { color: #B9C7BB; font-size: 14px; }
.hoje { color: #D9E2DA; font-size: 14px; text-align: right; }

.seletor { display: inline-flex; background: rgba(255,255,255,.08); border-radius: 8px; padding: 3px; }
.seletor button {
  border: 0; background: transparent; color: #E6EDE7; cursor: pointer;
  padding: 6px 18px; border-radius: 6px; font-weight: 500;
}
.seletor button:hover { background: rgba(255,255,255,.08); }
.seletor button[aria-checked="true"] { background: var(--dourado); color: var(--verde-escuro); }

.topo-linha2 {
  background: var(--verde-escuro-2);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 0 32px;
}
.abas { display: flex; gap: 4px; }
.abas a {
  color: #D3DED5; text-decoration: none; padding: 12px 14px; font-weight: 500;
  border-bottom: 3px solid transparent;
}
.abas a:hover { color: #fff; }
.abas a[aria-current="page"] { color: #fff; border-bottom-color: var(--dourado); }
.acoes { display: flex; gap: 8px; padding: 8px 0; }

.botao {
  border: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff;
  padding: 6px 14px; border-radius: 6px; cursor: pointer; font-weight: 500; white-space: nowrap;
}
.botao:hover:not(:disabled) { background: rgba(255,255,255,.1); }
.botao-principal { background: #fff; color: var(--verde-escuro); border-color: #fff; }
.botao-principal:hover:not(:disabled) { background: #EEF3EC; }
.botao-leve { border-color: transparent; color: #D3DED5; }
.botao:disabled { opacity: .55; cursor: not-allowed; }
.botao:focus-visible, .seletor button:focus-visible, .abas a:focus-visible, .ajuda:focus-visible, .linha-ranking:focus-visible {
  outline: 2px solid var(--dourado); outline-offset: 2px;
}

/* ---------- Conteúdo ---------- */
.conteudo { max-width: 1280px; margin: 0 auto; padding: 32px; }
.carregando, .vazio { color: var(--texto-apoio); }
.erro { background: var(--vermelho-fundo); color: var(--vermelho); padding: 16px 20px; border-radius: 8px; }

.frase { margin-bottom: 28px; }
.frase h1 { font-size: 32px; line-height: 1.25; max-width: 980px; }
.frase h1 strong { font-weight: 700; color: var(--verde-escuro); }
.frase p { margin: 8px 0 0; color: var(--texto-apoio); font-size: 16px; }

.cartoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.cartao {
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; padding: 20px;
}
.cartao-topo { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--texto-apoio); font-size: 14px; font-weight: 500; }
.cartao-valor { font-family: var(--fonte-titulo); font-weight: 500; font-size: 28px; margin-top: 8px; line-height: 1.2; }
.cartao-nota { color: var(--texto-apoio); font-size: 13px; margin-top: 4px; }

/* "?" que explica o cartão */
.ajuda {
  position: relative; flex: none;
  width: 22px; height: 22px; border-radius: 50%;
  border: 1px solid var(--borda); background: var(--fundo); color: var(--texto-apoio);
  font-size: 13px; font-weight: 600; line-height: 1; cursor: help; padding: 0;
}
.ajuda .explica {
  display: none; position: absolute; right: -8px; top: 30px; z-index: 10;
  width: 260px; padding: 10px 12px; border-radius: 8px;
  background: var(--verde-escuro); color: #fff; font-size: 13px; font-weight: 400; line-height: 1.45; text-align: left;
  box-shadow: 0 6px 20px rgba(15,38,21,.18);
}
.ajuda:hover .explica, .ajuda:focus .explica, .ajuda[aria-expanded="true"] .explica { display: block; }

.grade { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px; margin-bottom: 24px; align-items: start; }
.ver-todos { display: inline-block; margin-top: 12px; color: var(--verde); font-weight: 600; text-decoration: none; }
.ver-todos:hover { text-decoration: underline; }
.bloco { background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; padding: 24px; }
.bloco-cabeca { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.bloco-cabeca h2 { font-size: 19px; }
.bloco-cabeca span { color: var(--texto-apoio); font-size: 13px; }

/* Gráfico por faixa de atraso (barras horizontais) */
.faixas { display: grid; gap: 14px; }
.faixa { display: grid; grid-template-columns: 128px minmax(0, 1fr) 132px; align-items: center; gap: 12px; cursor: default; }
.faixa-nome { font-size: 14px; color: var(--texto); }
.faixa-trilho { height: 22px; position: relative; }
.faixa-trilho { border-left: 1px solid var(--borda); }
.faixa-barra { height: 100%; background: var(--verde); border-radius: 0 4px 4px 0; }
.faixa.alerta .faixa-barra { background: var(--vermelho); }
.faixa:hover .faixa-barra { filter: brightness(1.12); }
.faixa-valor { text-align: right; font-family: var(--fonte-numero); font-size: 14px; }
.faixa-valor small { display: block; font-family: var(--fonte-texto); color: var(--texto-apoio); font-size: 12px; }
.faixa.alerta .faixa-nome { color: var(--vermelho); font-weight: 600; }
.legenda-alerta { margin-top: 16px; font-size: 13px; color: var(--texto-apoio); display: flex; align-items: center; gap: 8px; }
.legenda-alerta i { width: 12px; height: 12px; border-radius: 2px; background: var(--vermelho); display: inline-block; }

.dica-grafico {
  position: fixed; z-index: 30; pointer-events: none;
  background: var(--verde-escuro); color: #fff; border-radius: 8px; padding: 10px 12px; font-size: 13px;
  box-shadow: 0 6px 20px rgba(15,38,21,.18); max-width: 260px;
}
.dica-grafico b { font-family: var(--fonte-numero); font-weight: 500; }

/* Ranking dos cedentes */
.ranking { list-style: none; margin: 0; padding: 0; }
.linha-ranking {
  display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 4px 10px; align-items: baseline;
  width: 100%; text-align: left; background: none; border: 0; border-radius: 8px; padding: 10px 8px; cursor: pointer; color: inherit;
}
.linha-ranking:hover { background: var(--fundo); }
.ranking li + li { border-top: 1px solid var(--borda); }
.pos { font-family: var(--fonte-numero); color: var(--texto-apoio); font-size: 13px; }
.nome-cedente { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.valor-cedente { font-family: var(--fonte-numero); font-size: 14px; text-align: right; }
.detalhe-cedente { grid-column: 2 / 4; display: flex; justify-content: space-between; gap: 8px; color: var(--texto-apoio); font-size: 13px; }
.mini-trilho { grid-column: 2 / 4; height: 4px; background: var(--verde-claro); border-radius: 2px; }
.mini-barra { height: 100%; background: var(--verde); border-radius: 2px; }
.atraso-alto { color: var(--vermelho); font-weight: 600; }
.etiqueta { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 6px; border-radius: 4px; background: var(--verde-claro); color: var(--verde-escuro-2); margin-left: 6px; vertical-align: 1px; }

/* Tabela */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { text-align: left; color: var(--texto-apoio); font-weight: 500; font-size: 13px; padding: 8px 10px; border-bottom: 1px solid var(--borda); }
td { padding: 10px; border-bottom: 1px solid var(--borda); }
td.num, th.num { text-align: right; }
td.mono { font-family: var(--fonte-numero); }
tr:last-child td { border-bottom: 0; }

.em-breve { background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; padding: 40px; text-align: center; color: var(--texto-apoio); }
.em-breve h1 { color: var(--texto); font-size: 24px; margin-bottom: 8px; }

/* ---------- Telas de lista ---------- */
.mono { font-family: var(--fonte-numero); }
.num { text-align: right; }
.oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.nota { color: var(--texto-apoio); font-size: 14px; }
.voltar { margin: 0 0 8px; }
.voltar a { color: var(--verde); text-decoration: none; font-weight: 500; }
.voltar a::before { content: "‹ "; }
.cabeca-tela { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.cabeca-tela h1 { font-size: 28px; }
.cabeca-tela .campo { margin: 0; flex: none; }
.botoes-tela { display: flex; gap: 8px; flex-wrap: wrap; }
.busca { width: 320px; max-width: 100%; }
.bloco + .bloco, .cartoes + .bloco { margin-top: 16px; }
.bloco h2 .etiqueta { vertical-align: 3px; }
.cabeca-tela h1 .etiqueta { font-size: 12px; vertical-align: 6px; }

.botao-claro {
  background: var(--cartao); color: var(--verde-escuro-2); border: 1px solid var(--borda);
  padding: 8px 14px; border-radius: 6px; font-weight: 500; cursor: pointer;
}
.botao-claro:hover:not(:disabled) { border-color: var(--verde); }
.botao-claro:disabled { opacity: .5; cursor: not-allowed; }
.link { background: none; border: 0; color: var(--verde); font-weight: 600; cursor: pointer; padding: 4px 0; }
.link:hover { text-decoration: underline; }

.tabela-rolagem { overflow-x: auto; }
td a { color: var(--verde-escuro-2); text-decoration: none; font-weight: 500; }
td a:hover { text-decoration: underline; }
td small { display: block; color: var(--texto-apoio); font-size: 12px; }
td small.atraso-alto { color: var(--vermelho); }
.texto-longo { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
td.mono, td.num { white-space: nowrap; }
td.num small { white-space: nowrap; }
.tabela-titulos td, .tabela-titulos th { padding: 8px 6px; }
.tabela-titulos .texto-longo { max-width: 165px; }
.etiqueta-sem-margem { margin-left: 0; }
.tabela-titulos td { font-size: 13.5px; }
.col-sel { width: 28px; }
.col-acoes { white-space: nowrap; }
.linha-cancelada td { color: var(--texto-apoio); text-decoration: line-through; }
.linha-cancelada td.col-acoes, .linha-cancelada td.col-acoes * { text-decoration: none; }
.linha-clicavel { cursor: pointer; }
.linha-clicavel:hover td { background: var(--fundo); }
tfoot td { font-weight: 600; border-top: 1px solid var(--borda); border-bottom: 0; }

.status { display: inline-block; font-size: 12px; font-weight: 600; padding: 1px 7px; border-radius: 4px; white-space: nowrap; }
.st-aberto { background: var(--verde-claro); color: var(--verde-escuro-2); }
.st-protesto { background: var(--vermelho-fundo); color: var(--vermelho); }
.st-vencido { background: #FFF1D6; color: #7A5300; }
.st-pago, .st-recomprado { background: #EDF0EA; color: var(--texto-apoio); }
.st-cancelado { background: #EEEEEE; color: #5B5B5B; }

.acao {
  background: var(--cartao); border: 1px solid var(--borda); color: var(--verde-escuro-2);
  padding: 3px 8px; border-radius: 5px; font-size: 12.5px; font-weight: 500; cursor: pointer; list-style: none;
}
.acao:hover { border-color: var(--verde); }
.acao + .acao, .acao + .mais { margin-left: 4px; }
.mais { display: inline-block; position: relative; }
.mais summary::-webkit-details-marker { display: none; }
.mais .menu {
  position: fixed; z-index: 25; min-width: 170px;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: 8px; padding: 6px;
  box-shadow: 0 8px 24px rgba(15,38,21,.14);
}
.mais .menu button, .mais .menu a {
  display: block; width: 100%; text-align: left; background: none; border: 0; padding: 8px 10px; border-radius: 6px;
  color: var(--texto); font-size: 14px; font-weight: 400; cursor: pointer; text-decoration: none;
}
.mais .menu button:hover, .mais .menu a:hover { background: var(--fundo); }

.filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; margin-bottom: 16px; }
.filtros .campo { margin: 0; min-width: 150px; }
.filtros .campo input[name=cedente] { width: 260px; }
.botao-pdf-lista { margin-left: auto; }

.historico { list-style: none; margin: 0; padding: 0; }
.historico li {
  display: grid; grid-template-columns: 130px 150px minmax(0, 1fr) auto; gap: 12px; align-items: baseline;
  padding: 10px 0; border-bottom: 1px solid var(--borda); font-size: 14px;
}
.historico li:last-child { border-bottom: 0; }
.historico li.desfeito .hist-texto { color: var(--texto-apoio); text-decoration: line-through; }
.hist-quando { color: var(--texto-apoio); font-size: 13px; }
.hist-acao { font-weight: 600; }
.hist-acao small { display: block; font-weight: 400; color: var(--texto-apoio); font-size: 12px; }

/* ---------- Formulários (janela) ---------- */
.dialogo { border: 0; padding: 0; border-radius: 12px; width: min(680px, calc(100vw - 32px)); max-height: calc(100vh - 48px); color: var(--texto); }
.dialogo::backdrop { background: rgba(15, 38, 21, .45); }
.dialogo-caixa { display: flex; flex-direction: column; max-height: calc(100vh - 48px); }
.dialogo-cabeca { display: flex; justify-content: space-between; align-items: center; padding: 20px 24px 8px; }
.dialogo-cabeca h2 { font-size: 22px; }
.fechar { background: none; border: 0; font-size: 26px; line-height: 1; color: var(--texto-apoio); cursor: pointer; padding: 4px 8px; border-radius: 6px; }
.fechar:hover { background: var(--fundo); }
.dialogo-corpo { padding: 8px 24px 8px; overflow-y: auto; }
.dialogo-erro { margin: 0 24px; padding: 10px 12px; background: var(--vermelho-fundo); color: var(--vermelho); border-radius: 8px; font-size: 14px; }
.dialogo-pe { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px 20px; }
.botao-dlg { padding: 10px 20px; border-radius: 8px; font-weight: 600; cursor: pointer; border: 1px solid var(--borda); background: var(--cartao); color: var(--texto); }
.botao-dlg.primario { background: var(--verde-escuro-2); border-color: var(--verde-escuro-2); color: #fff; }
.botao-dlg.primario:hover:not(:disabled) { background: var(--verde-escuro); }
.botao-dlg:focus-visible, .acao:focus-visible, .botao-claro:focus-visible, .link:focus-visible { outline: 2px solid var(--dourado); outline-offset: 2px; }
.botao-dlg:disabled { opacity: .6; cursor: wait; }

.campo { display: flex; flex-direction: column; gap: 4px; margin: 0 0 14px; border: 0; padding: 0; min-width: 0; flex: 1; }
.campo-rotulo { font-size: 13px; font-weight: 600; color: var(--texto-apoio); padding: 0; }
.campo small { color: var(--texto-apoio); font-size: 12px; }
.campo input, .campo select, .busca {
  font: inherit; font-size: 15px; padding: 8px 10px; border: 1px solid #C6CFC2; border-radius: 6px; background: #fff; color: var(--texto);
  min-width: 0;
}
.campo input:focus, .campo select:focus, .busca:focus { outline: 2px solid var(--dourado); outline-offset: 0; border-color: var(--verde); }
.linha-campos { display: flex; gap: 12px; flex-wrap: wrap; }
.linha-campos > .campo { min-width: 160px; }
.opcoes { display: flex; flex-wrap: wrap; gap: 8px; }
.opcao { display: flex; align-items: flex-start; gap: 8px; padding: 8px 12px; border: 1px solid var(--borda); border-radius: 8px; cursor: pointer; flex: 1 1 140px; }
.opcao:has(input:checked) { border-color: var(--verde); background: #F4F8F2; }
.opcao input { margin-top: 4px; accent-color: var(--verde); }
.opcao small { display: block; color: var(--texto-apoio); font-size: 12.5px; font-weight: 400; }
.opcao span { font-weight: 500; }
.opcao-simples { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.opcao-simples input { accent-color: var(--verde); width: 16px; height: 16px; }
.info-titulo { background: var(--fundo); border-radius: 8px; padding: 10px 12px; margin-bottom: 14px; font-size: 14px; line-height: 1.6; }

.resumo-pergunta { color: var(--texto-apoio); margin: 0 0 8px; font-size: 14px; }
.resumo { font-size: 16px; line-height: 1.6; }
.resumo p { margin: 0 0 10px; }
.resumo b { font-family: var(--fonte-titulo); font-weight: 700; }
.alerta-resumo { background: #FFF6DD; border-left: 3px solid var(--dourado); padding: 8px 12px; border-radius: 4px; font-size: 14px; }
.tabela-resumo { font-size: 14px; margin-top: 8px; }

.resultados { display: grid; gap: 6px; max-height: 360px; overflow-y: auto; }
.resultado {
  display: flex; justify-content: space-between; align-items: center; gap: 12px; text-align: left;
  border: 1px solid var(--borda); background: #fff; border-radius: 8px; padding: 10px 12px; cursor: pointer; font: inherit; color: inherit;
}
.resultado:hover, .resultado:focus-visible { border-color: var(--verde); background: #F4F8F2; outline: none; }
.resultado small { display: block; color: var(--texto-apoio); font-size: 13px; }

.lista-recompra { border: 1px solid var(--borda); border-radius: 8px; padding: 8px 12px; margin-bottom: 14px; max-height: 280px; overflow-y: auto; }
.lista-recompra-topo { display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--texto-apoio); }
.item-recompra { display: grid; grid-template-columns: 20px 110px minmax(0, 1fr) 96px 110px; gap: 8px; align-items: center; padding: 6px 0; border-top: 1px solid var(--borda); font-size: 14px; cursor: pointer; }
.item-recompra input { accent-color: var(--verde); }
.item-recompra span:nth-child(3) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Retorno do banco */
.grade-retorno { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.grade-retorno .bloco + .bloco { margin-top: 0; }
.botao-verde {
  display: inline-block; background: var(--verde-escuro-2); color: #fff; border: 0; border-radius: 8px;
  padding: 10px 18px; font-weight: 600; cursor: pointer;
}
.botao-verde:hover:not(:disabled) { background: var(--verde-escuro); }
.botao-verde:disabled { opacity: .5; cursor: not-allowed; }
.botao-verde:focus-within, .botao-verde:focus-visible { outline: 2px solid var(--dourado); outline-offset: 2px; }
td.motivo { font-size: 13px; color: var(--texto-apoio); min-width: 220px; }
.grupo-atencao .bloco-cabeca h2 { color: var(--vermelho); }
details.bloco { margin-top: 16px; }
.resumo-grupo { cursor: pointer; font-weight: 600; }
.resumo-grupo + .tabela-rolagem { margin-top: 12px; }
.barra-aplicar { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-color: var(--verde); }
.barra-aplicar p { margin: 0; }

/* Aviso depois de salvar */
.aviso {
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 50;
  display: flex; align-items: center; gap: 16px; max-width: min(760px, calc(100vw - 32px));
  background: var(--verde-escuro); color: #fff; padding: 12px 16px 12px 20px; border-radius: 10px;
  box-shadow: 0 10px 30px rgba(15,38,21,.25); font-size: 14px;
}
.aviso[hidden] { display: none; }
.aviso button { background: transparent; color: var(--dourado); border: 1px solid var(--dourado); border-radius: 6px; padding: 6px 14px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.aviso button:hover { background: rgba(212,168,44,.12); }

/* Notebook de 1366 px e telas menores */
@media (max-width: 1240px) {
  .topo-linha1, .topo-linha2, .conteudo { padding-left: 20px; padding-right: 20px; }
  .abas a { padding: 12px 10px; }
  .botao { padding: 6px 10px; }
}
@media (max-width: 1100px) {
  .topo-linha2 { flex-wrap: wrap; }
  .cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grade { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .topo-linha1 { flex-wrap: wrap; padding: 12px 16px; }
  .topo-linha2, .conteudo { padding-left: 16px; padding-right: 16px; }
  .abas { overflow-x: auto; }
  .cartoes { grid-template-columns: minmax(0, 1fr); }
  .frase h1 { font-size: 24px; }
  .faixa { grid-template-columns: 96px minmax(0, 1fr) 104px; }
}

/* A vencer */
.alerta-avencer { display: block; background: var(--vermelho-fundo); border: 1px solid var(--vermelho); border-radius: 10px; padding: 12px 16px; margin-bottom: 16px; color: var(--texto); text-decoration: none; line-height: 1.7; }
.alerta-avencer span { display: inline-block; margin-left: 10px; padding: 0 8px; background: #fff; border-radius: 4px; font-size: 13px; }
.alerta-avencer u { margin-left: 10px; color: var(--vermelho); font-weight: 600; }
.dia-aviso { margin: 14px 0 4px; font-size: 16px; }
.dia-aviso small, .apoio { color: var(--texto-apoio); font-weight: 400; font-size: 12px; }
.linha-alta td { background: var(--vermelho-fundo); }

.nivel { display: inline-block; margin-left: 8px; padding: 0 7px; border-radius: 4px; font-size: 11px; font-weight: 600; background: #fff; color: var(--texto-apoio); border: 1px solid var(--borda); }
.nivel-3 { background: var(--vermelho); color: #fff; border-color: var(--vermelho); }
.nivel-2 { color: var(--vermelho); border-color: var(--vermelho); }
.botao-msg, .botao-enviar { padding: 4px 10px; font-size: 13px; white-space: nowrap; }
.botoes-aviso { white-space: nowrap; }
.botoes-aviso .botao-enviar { margin-left: 6px; }
.avisado { margin-top: 4px; font-size: 12px; color: var(--verde, #2B5A33); font-weight: 600; }
.avisado-lista { background: #F3F5F0; border-left: 3px solid #D4A82C; padding: 6px 10px; font-size: 13px; }
.escolha-envio { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin: 8px 0; }
.escolha-envio .rotulo-escolha { font-size: 12px; font-weight: 600; color: var(--texto-apoio); min-width: 74px; }
.escolha-envio label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
input.falta { border-color: #D4A82C; background: #FFFBEF; }
.faixa-desvio { background: #FFFBEF; border-left: 3px solid #D4A82C; padding: 6px 10px; font-size: 13px; margin: 6px 0; }
.texto-alerta { color: #B42318; }
.lista-envio { max-height: 280px; overflow: auto; margin: 6px 0; padding-left: 18px; font-size: 13px; }
.diario-status { white-space: nowrap; }
.linha-msg td { background: #fff; color: var(--texto-apoio); font-size: 13px; padding: 6px 8px 12px; border-top: 0; }

/* Clientes com acesso (Área do Cliente) */
.st-sem-acesso { background: #FBF4DF; color: #7A5B00; }
.aviso-senha { background: #FBF4DF; border-left: 4px solid var(--dourado); padding: 10px 12px; border-radius: 6px; margin: 0 0 12px; }
.senha-gerada { font-family: var(--fonte-numero); font-weight: 500; font-size: 15px; letter-spacing: .5px; white-space: nowrap; user-select: all; }

/* Vencidos do dia */
.filtros-dia { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.filtros-dia input { border: 1px solid var(--borda); border-radius: 8px; padding: 6px 8px; font: inherit; }
.frase-dia { font-size: 16px; margin: 4px 0; }

/* Logo no topo */
.marca { align-items: center; }
.marca-logo { height: 38px; width: auto; display: block; }

/* Tela de entrada pelo celular */
.pagina-entrar { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; }
.entrar-celular { width: 100%; max-width: 400px; background: #fff; border: 1px solid var(--borda); border-radius: 16px; padding: 28px 22px; text-align: center; }
.entrar-celular img { width: 210px; max-width: 80%; }
.entrar-celular h1 { font-size: 20px; margin: 14px 0 18px; color: var(--verde-escuro); }
.entrar-celular label { display: block; text-align: left; font-weight: 600; margin-bottom: 6px; }
.entrar-celular input { width: 100%; padding: 13px; border: 1px solid var(--borda); border-radius: 10px; font-family: var(--fonte-numero); font-size: 16px; text-transform: uppercase; margin-bottom: 12px; }
.entrar-celular button { width: 100%; border: 0; border-radius: 10px; padding: 13px; background: var(--verde-escuro-2); color: #fff; font-weight: 600; font-size: 16px; }
.entrar-celular .erro { color: var(--vermelho); background: var(--vermelho-fundo); border-radius: 8px; padding: 8px; }

/* Celular (iPhone): topo empilhado, abas e botões com rolagem lateral, tabelas roláveis */
@media (max-width: 760px) {
  body { min-width: 0; font-size: 14px; }
  .topo { padding-top: env(safe-area-inset-top); }
  .topo-linha1 { flex-wrap: wrap; padding: 10px 14px; gap: 10px; }
  .marca-logo { height: 30px; }
  .marca-app, .hoje { display: none; }
  .seletor { order: 3; width: 100%; }
  .seletor button { flex: 1; }
  .topo-linha2 { flex-direction: column; align-items: stretch; gap: 6px; padding: 6px 10px; }
  .abas { overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
  .abas a { white-space: nowrap; }
  .acoes { display: flex; overflow-x: auto; gap: 6px; padding-bottom: 4px; }
  .acoes .botao { flex: none; }
  .conteudo { padding: 12px 10px 40px; }
  .cartoes { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .tabela-rolagem, .bloco { overflow-x: auto; }
  .cabeca-tela { flex-wrap: wrap; gap: 8px; }
  .filtros { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .dialogo { width: calc(100vw - 16px); }
}

/* Menu de três pontinhos: só no celular */
.menu-abas { display: none; }
@media (max-width: 760px) {
  .topo-linha2 { position: relative; }
  .menu-abas {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: 8px;
    padding: 8px 12px; font: inherit; font-weight: 600; cursor: pointer;
  }
  .menu-pontos { font-size: 22px; line-height: 1; }
  .abas { display: none; }
  .abas.aberto {
    display: flex; flex-direction: column; position: absolute; left: 10px; right: 10px; top: 46px; z-index: 40;
    background: var(--verde-escuro); border: 1px solid rgba(255,255,255,.2); border-radius: 10px; padding: 6px;
    box-shadow: 0 10px 30px rgba(0,0,0,.35); overflow: visible; white-space: normal;
  }
  .abas.aberto a { padding: 12px 14px; border-radius: 8px; font-size: 16px; }
  .abas.aberto a[aria-current="page"] { background: rgba(212,168,44,.18); color: var(--dourado); }
}

/* Menu "Ações": só no celular */
.menu-acoes { display: none; }
@media (max-width: 760px) {
  .topo-linha2 { flex-direction: row !important; flex-wrap: wrap; align-items: center !important; gap: 8px !important; }
  .menu-abas { flex: 1; width: auto; }
  .menu-acoes {
    display: flex; align-items: center; gap: 6px; flex: none;
    background: var(--dourado); color: var(--verde-escuro); border: 0; border-radius: 8px;
    padding: 9px 12px; font: inherit; font-weight: 700; cursor: pointer;
  }
  .acoes { display: none !important; }
  .acoes.aberto {
    display: flex !important; flex-direction: column; position: absolute; right: 10px; top: 46px; z-index: 40;
    width: min(260px, calc(100vw - 20px)); background: #fff; border: 1px solid var(--borda); border-radius: 10px;
    padding: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.35); overflow: visible;
  }
  .acoes.aberto .botao { width: 100%; text-align: left; padding: 12px 14px; font-size: 16px; border-radius: 8px;
    background: #fff; color: var(--texto); border: 0; }
  .acoes.aberto .botao + .botao { border-top: 1px solid var(--verde-claro); }
  .acoes.aberto .botao-principal { color: var(--verde-escuro-2); font-weight: 700; }
}

/* Situação no meio da célula */
.tabela-titulos td.col-situacao, .tabela-titulos th.col-situacao { text-align: center; vertical-align: middle; }
.tabela-titulos td.col-situacao small { display: block; }

/* Vence hoje: amarelo */
.st-vence-hoje { background: #FFE58A; color: #5C4300; font-weight: 700; }

/* Cadastro do cliente (pasta) */
.icone-pasta { color: var(--dourado); vertical-align: -2px; }
.form-cadastro { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.form-cadastro .campo:nth-child(1), .form-cadastro .campo:nth-child(5), .form-cadastro .campo:nth-child(6), .form-cadastro p { grid-column: span 2; }
.form-cadastro input, .form-cadastro textarea { width: 100%; }
.botao-pasta { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.botao-pasta svg { color: var(--dourado); }
.botao-pasta-mini { display: inline-flex; align-items: center; gap: 3px; color: var(--dourado); text-decoration: none; font-size: 12px; font-weight: 700;
  border: 1px solid var(--borda); border-radius: 6px; padding: 3px 6px; background: #fff; }
.botao-pasta-mini.pasta-vazia { color: #A3B0A6; }
@media (max-width: 760px) { .form-cadastro { grid-template-columns: 1fr; } .form-cadastro .campo, .form-cadastro p { grid-column: auto !important; } }

/* Ranking dos cedentes */
.col-posicao { width: 44px; }
.posicao { font-family: var(--fonte-titulo); font-weight: 700; color: var(--texto-apoio); }
.posicao-topo { color: var(--verde-escuro); background: #FBF4DF; border: 1px solid var(--dourado); border-radius: 999px; padding: 1px 8px; }

/* ===== App Ômega: menu por módulo ===== */
.marca-link { display: inline-flex; }
.abas .aba-telas { display: none; }
.subabas { display: flex; gap: 4px; padding: 0 32px; background: var(--verde-escuro-2); border-top: 1px solid rgba(255,255,255,.08); overflow-x: auto; }
.subabas[hidden] { display: none; }
.subabas a { color: #D9E2DA; text-decoration: none; padding: 8px 12px; font-size: 13.5px; border-bottom: 3px solid transparent; white-space: nowrap; }
.subabas a[aria-current="page"] { color: #fff; border-bottom-color: var(--dourado); font-weight: 600; }
/* Vencidos (muitas telas): botão ☰ com a tela atual e a lista com explicação */
.subabas.sub-com-menu { overflow: visible; padding-top: 7px; padding-bottom: 7px; }
.sub-menu { position: relative; }
.sub-menu-botao { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; font: inherit; font-size: 14px;
  background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.22); border-radius: 8px; padding: 7px 14px 7px 11px; }
.sub-menu-botao:hover, .sub-menu-botao[aria-expanded="true"] { border-color: var(--dourado); background: rgba(212,168,44,.12); }
.sub-menu-icone { color: var(--dourado); font-size: 17px; line-height: 1; }
.sub-menu-modulo { color: #C9D4CB; }
.sub-menu-modulo::after { content: " ·"; }
.sub-menu-seta { color: var(--dourado); font-size: 12px; }
/* A lista nunca passa do fim da tela: o JS ajusta a altura máxima ao abrir, e o que sobrar rola com a rodinha do mouse */
.sub-menu-lista { position: absolute; left: 0; top: calc(100% + 8px); z-index: 45; width: 380px; padding: 5px;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; box-shadow: 0 16px 40px rgba(15,38,21,.28);
  display: grid; grid-template-columns: 1fr; max-height: calc(100vh - 140px); overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--dourado) transparent; }
.sub-menu-lista[hidden] { display: none; }
.subabas .sub-menu-lista a { display: block; color: var(--texto); border: 0; border-left: 3px solid transparent; border-radius: 6px;
  padding: 6px 12px; white-space: normal; font-size: 14px; line-height: 1.3; }
.subabas .sub-menu-lista a small { display: block; color: var(--texto-apoio); font-size: 12px; margin-top: 1px; }
/* tela baixa (monitor pequeno): só o nome de cada tela, para caber sem rolar */
@media (max-height: 760px) {
  .subabas .sub-menu-lista a small { display: none; }
  .subabas .sub-menu-lista a { padding: 7px 12px; }
}
.subabas .sub-menu-lista a:hover { background: var(--fundo); }
.subabas .sub-menu-lista a[aria-current="page"] { background: #FBF4DF; border-left-color: var(--dourado); color: var(--verde-escuro); }
@media (max-width: 760px) {
  .subabas { display: none !important; }
  .abas.aberto .aba-modulo { font-weight: 700; color: #fff; padding: 10px 14px 4px; }
  .abas.aberto .aba-telas { display: flex; flex-direction: column; padding-left: 10px; border-left: 2px solid rgba(212,168,44,.35); margin: 0 0 6px 14px; }
  .abas.aberto .aba-telas a { padding: 9px 12px; font-size: 15px; }
}

/* ===== Hoje ===== */
.avisos-hoje { display: grid; gap: 10px; margin-bottom: 18px; }
.aviso-hoje { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border-radius: 10px; text-decoration: none; color: var(--texto);
  border: 1px solid var(--borda); border-left: 5px solid var(--dourado); background: #fff; }
.aviso-hoje b { font-size: 15.5px; }
.aviso-hoje span { color: var(--texto-apoio); font-size: 13.5px; }
.aviso-amarelo { border-left-color: #E8B800; background: #FFFBEA; }
.aviso-vermelho { border-left-color: var(--vermelho); background: var(--vermelho-fundo); }
.aviso-cinza { border-left-color: #A3B0A6; }
.atalhos-hoje { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }

/* ===== Financeiro ===== */
.seletor-mes { display: inline-flex; gap: 6px; align-items: center; }
.seletor-mes select { padding: 6px 8px; border: 1px solid var(--borda); border-radius: 8px; font: inherit; }
.seletor-mes .desligado { opacity: .35; pointer-events: none; }
.tabela-fin td, .tabela-fin th { white-space: nowrap; }
.tabela-fin small { display: block; color: var(--texto-apoio); white-space: normal; }
.tabela-painel .col-invest, .tabela-painel td.col-invest { color: var(--texto-apoio); border-left: 2px dashed var(--borda); }
.despesas-lado { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
@media (min-width: 1200px) { .despesas-lado { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.bloco-amex .bloco-cabeca h2 { color: #0B4F6C; }
.bloco-amex thead th { background: #0B4F6C; }
.sem-comprovante { color: var(--vermelho); border-color: var(--vermelho-fundo); }
.tabela-comparativo .faixa-bloco td { background: var(--verde-claro); font-weight: 700; color: var(--verde-escuro); }
.tabela-comparativo .subtotal td { font-weight: 700; border-top: 2px solid var(--dourado); }
.grafico-painel svg { width: 100%; max-height: 260px; }
.grafico-painel .legenda { display: flex; gap: 16px; font-size: 13px; color: var(--texto-apoio); flex-wrap: wrap; }
.grafico-painel .legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.divergencia { font-size: 12.5px; margin: 4px 0; padding: 6px 8px; background: #FFFBEA; border-radius: 6px; white-space: normal; }
.divergencia label { margin-right: 10px; white-space: nowrap; }
.resumo-receita { font-size: 15px; margin-top: 10px; }
.item-amex { display: grid; grid-template-columns: 140px 1fr 110px; gap: 6px; margin-bottom: 6px; }
@media (max-width: 760px) { .item-amex { grid-template-columns: 1fr 1fr; } .item-amex input[name=i_desc] { grid-column: span 2; order: -1; } }
.vermelho { color: var(--vermelho); }

/* ===== Tela inteira: sem rolar para o lado ===== */
/* Computador: usa a largura toda da tela; tabelas largas encolhem a letra antes de pedir rolagem */
.conteudo { max-width: none; padding: 24px 28px; }
@media (min-width: 761px) {
  .tabela-fin, .tabela-titulos, .tabela-painel { font-size: 13px; }
  .tabela-fin th, .tabela-fin td, .tabela-titulos th, .tabela-titulos td { padding-left: 7px; padding-right: 7px; }
  .tabela-fin td, .tabela-fin th { white-space: normal; }
  .tabela-fin td.mono, .tabela-fin td.num { white-space: nowrap; }
}
/* Celular: cada linha de tabela vira um cartão, com o nome da coluna ao lado de cada valor */
@media (max-width: 760px) {
  .conteudo { padding: 12px 10px 40px; }
  .tabela-rolagem { overflow-x: visible; }
  table.cartoes-celular, table.cartoes-celular tbody, table.cartoes-celular tr, table.cartoes-celular td { display: block; width: 100%; }
  table.cartoes-celular thead { display: none; }
  table.cartoes-celular tbody tr { border: 1px solid var(--borda); border-radius: 10px; background: #fff; margin: 0 0 10px; padding: 8px 12px; }
  table.cartoes-celular tbody td { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border: 0 !important;
    padding: 4px 0 !important; text-align: right !important; white-space: normal !important; max-width: none !important; overflow: visible !important; }
  table.cartoes-celular tbody td::before { content: attr(data-rotulo); color: var(--texto-apoio); font-size: 12.5px; text-align: left; flex: none; max-width: 48%; }
  table.cartoes-celular tbody td[data-rotulo=""]::before { content: none; }
  table.cartoes-celular tbody td:first-child { font-weight: 700; font-size: 15px; }
  table.cartoes-celular tbody td:empty { display: none; }
  table.cartoes-celular tbody td.col-situacao { justify-content: space-between; }
  table.cartoes-celular tfoot { display: block; }
  table.cartoes-celular tfoot tr { display: block; border-top: 2px solid var(--dourado); padding: 8px 0; }
  table.cartoes-celular tfoot td { display: inline-block; border: 0; padding: 2px 8px 2px 0; font-weight: 700; }
  table.cartoes-celular tfoot td:empty { display: none; }
  table.cartoes-celular tr.faixa-bloco td { display: block; text-align: left !important; background: var(--verde-claro); border-radius: 6px; padding: 6px 8px !important; }
  table.cartoes-celular tr.faixa-bloco td::before, table.cartoes-celular tr.faixa-bloco { content: none; }
  table.cartoes-celular tbody tr.faixa-bloco { border: 0; padding: 0; background: none; }
}

/* Comparativo: 9+ meses lado a lado cabendo na tela do notebook */
@media (min-width: 761px) {
  .tabela-comparativo { font-size: 12px; }
  .tabela-comparativo th, .tabela-comparativo td { padding-left: 4px !important; padding-right: 4px !important; }
  .tabela-comparativo td.texto-longo { white-space: normal; max-width: 190px; }
}

/* Despesas: no celular, some o "—" das categorias que não são da despesa */
@media (max-width: 760px) { table.cartoes-celular tbody td.cel-vazia { display: none; } }
.dados-despesa { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 0; }
.dados-despesa dt { color: var(--texto-apoio); }
.dados-despesa dd { margin: 0; }

/* ===== Hoje: agenda do dia ===== */
.grade-hoje { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
@media (min-width: 1000px) { .grade-hoje { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.grade-hoje .bloco { margin-bottom: 0; }
.bloco-hoje.bloco-vermelho { border-top: 4px solid var(--vermelho); }
.bloco-hoje.bloco-amarelo { border-top: 4px solid #E8B800; }
.grupo-hoje { border-bottom: 1px solid var(--verde-claro); }
.grupo-hoje summary { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: baseline; padding: 9px 2px; cursor: pointer; }
.grupo-hoje summary span { color: var(--texto-apoio); font-size: 13px; }
.grupo-hoje ul { list-style: none; margin: 0 0 8px; padding: 0 0 0 12px; }
.grupo-hoje li { display: flex; justify-content: space-between; gap: 10px; font-size: 13.5px; padding: 3px 0; color: var(--texto-apoio); }
.bloco-hoje h3 { font-size: 14px; margin: 12px 0 6px; color: var(--texto-apoio); text-transform: uppercase; letter-spacing: .4px; }
.lista-pagar { list-style: none; margin: 0; padding: 0; }
.lista-pagar li { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; padding: 9px 10px; border-radius: 8px; margin-bottom: 6px; background: var(--fundo); }
.lista-pagar li div span { display: block; font-size: 12.5px; color: var(--texto-apoio); }
.conta-vencida { background: var(--vermelho-fundo) !important; }
.conta-hoje { background: #FFF6CC !important; }
.resumo-texto { white-space: pre-wrap; font-size: 13px; max-height: 60vh; overflow: auto; }

/* Hoje: nomes dos clientes sem o azul de link */
.grupo-hoje summary { list-style: none; }
.grupo-hoje summary::-webkit-details-marker { display: none; }
.grupo-hoje summary::before { content: "›"; color: var(--dourado); font-weight: 700; margin-right: 2px; transition: transform .15s; display: inline-block; }
.grupo-hoje[open] summary::before { transform: rotate(90deg); }
.grupo-hoje summary { grid-template-columns: auto 1fr auto auto !important; }
.grupo-nome { font-weight: 600; color: var(--verde-escuro); }
.grupo-abrir { display: inline-block; margin: 0 0 10px 12px; font-size: 13px; color: var(--verde); font-weight: 600; text-decoration: none; }
.grupo-abrir::after { content: " ›"; }

.aviso-hoje .botao-pago { align-self: flex-start; margin-top: 6px; }


/* Gerar senha para um cliente */
.gerar-um { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin: 8px 0 12px; }
.gerar-um .campo { flex: 1; min-width: 240px; margin: 0; }
.gerar-um input { width: 100%; }

/* Juntar empresas num acesso */
.busca-juntar { width: 100%; padding: 8px 10px; border: 1px solid var(--borda); border-radius: 8px; margin: 4px 0 8px; font: inherit; }
.lista-juntar { max-height: 45vh; overflow: auto; display: grid; gap: 4px; }
.lista-juntar small { display: block; color: var(--texto-apoio); font-size: 12px; }

/* Grupo econômico na lista de clientes */
.barra-grupo { position: sticky; top: 0; z-index: 3; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 12px; margin-bottom: 10px; background: #FBF8EE; border: 1px solid #D4A82C; border-radius: 10px; }
.tabela-clientes .col-marca { width: 34px; text-align: center; }
.tabela-clientes .col-marca input { width: 18px; height: 18px; accent-color: #2B5A33; }
.tabela-clientes .linha-grupo td { background: #E8EEE4; border-top: 2px solid #2B5A33; }
.tabela-clientes .linha-grupo small { margin-left: 8px; color: var(--texto-apoio); }
.tabela-clientes .no-grupo td:nth-child(2) { padding-left: 22px; }

/* PDFs dos borderôs na tela Receitas */
.pdfs-decenios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.pdf-decenio { border: 1px solid #DCE3D8; border-radius: 10px; padding: 12px; background: #F3F5F0; min-width: 0; }
.pdf-decenio.decenio-atual { border-color: #D4A82C; background: #FBF8EE; }
.pdf-decenio h3 { margin: 0 0 8px; font-size: 15px; color: #0F2615; }
.pdf-decenio h3 small { font-weight: 400; color: var(--texto-apoio); margin-left: 4px; }
.lista-pdfs { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 6px; }
.lista-pdfs li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13px; overflow-wrap: anywhere; }
.lista-pdfs a { color: #1F4A27; font-weight: 600; }
.enviar-pdf { cursor: pointer; display: inline-block; }
.status.st-agora { background: #D4A82C; color: #0F2615; }
.tit-scanner { margin: 10px 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-apoio); }
.pacote-contador { margin-top: 12px; padding-top: 10px; border-top: 1px dashed #C9D2C4; display: grid; gap: 4px; }
.pacote-contador small { color: var(--texto-apoio); font-size: 12px; }
@media (max-width: 760px) { .pdfs-decenios { grid-template-columns: minmax(0, 1fr); } }

/* Lembrar de mim (entrada pelo celular) */
.entrar-celular label.lembrar { display: flex; align-items: center; gap: 10px; font-weight: 400; margin: 12px 0 4px; cursor: pointer; }
.entrar-celular label.lembrar input { width: 20px; height: 20px; margin: 0; accent-color: #2B5A33; }
.entrar-celular input.campo-login { text-transform: none; }
.entrar-celular button:disabled { opacity: .6; }
.quem-entrou { color: rgba(255, 255, 255, .78); font-size: 13px; white-space: nowrap; align-self: center; }
@media (max-width: 1100px) { .topo .quem-entrou { display: none; } }  /* em tela menor, o nome aparece dentro da engrenagem */
.hist-quem { display: block; color: var(--texto-apoio); font-size: 12px; margin-top: 2px; }
tr.login-desativado td { color: var(--texto-apoio); }
.lista-perfis { margin: 0 0 12px; padding-left: 20px; line-height: 1.6; }

/* Cheques (29/10/2026) */
.aviso-cheques { border-left: 4px solid #D4A82C; display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.aviso-cheques p { margin: 0; }
.texto-mensagem { width: 100%; font: inherit; line-height: 1.45; padding: 10px; border-radius: 8px; border: 1px solid #DCE3D8; }
.acao-msg { border-color: #D4A82C; }

/* Cheques: motivo da devolução */
.col-motivo { min-width: 170px; max-width: 240px; font-size: 13px; }
.col-motivo small { color: var(--texto-apoio); }


/* Ômi, o assistente: chat flutuante no canto de baixo, à direita (06/11/2026) */
.ia-bolha { position: fixed; right: 20px; bottom: 20px; z-index: 60; display: flex; align-items: center; gap: 8px;
  border: 0; border-radius: 999px; padding: 12px 18px 12px 14px; cursor: pointer;
  background: var(--verde-escuro); color: #fff; font-family: var(--fonte-titulo); font-weight: 700; font-size: 16px;
  box-shadow: 0 10px 28px rgba(15,38,21,.35), inset 0 0 0 1.5px rgba(212,168,44,.55); transition: transform .15s; }
.ia-bolha:hover { transform: translateY(-2px); }
.ia-bolha svg { width: 22px; height: 22px; fill: var(--dourado); }
.ia-bolha[aria-expanded="true"] { display: none; }
.ia-painel { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 380px; height: min(580px, calc(100vh - 40px));
  display: flex; flex-direction: column; background: #fff; border-radius: 14px; overflow: hidden;
  box-shadow: 0 24px 60px rgba(15,38,21,.35); border: 1px solid var(--borda); }
.ia-painel[hidden] { display: none; }
.ia-cabeca { display: flex; align-items: center; gap: 10px; padding: 12px 12px 12px 14px; color: #fff;
  background: linear-gradient(135deg, #1F4A27, #0F2615); border-bottom: 3px solid var(--dourado); }
.ia-cabeca div { flex: 1; min-width: 0; line-height: 1.2; }
.ia-cabeca b { font-family: var(--fonte-titulo); font-size: 17px; display: block; }
.ia-cabeca small { color: rgba(255,255,255,.7); font-size: 12px; }
.ia-avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; flex: none;
  background: var(--dourado); color: var(--verde-escuro); font-family: var(--fonte-titulo); font-weight: 700; font-size: 17px; }
.ia-limpar { background: transparent; border: 1px solid rgba(255,255,255,.3); color: #fff; border-radius: 6px; padding: 5px 8px; font-size: 12px; cursor: pointer; }
.ia-limpar:hover { border-color: var(--dourado); }
.ia-fechar { background: transparent; border: 0; color: #fff; font-size: 26px; line-height: 1; padding: 0 4px; cursor: pointer; }
.ia-lista { flex: 1; display: flex; flex-direction: column; gap: 10px; overflow-y: auto; padding: 14px; background: var(--fundo); }
.ia-fala { max-width: 85%; padding: 10px 13px; border-radius: 12px; line-height: 1.5; font-size: 14.5px; overflow-wrap: anywhere; }
.ia-usuario { align-self: flex-end; background: var(--verde-escuro-2); color: #fff; border-bottom-right-radius: 4px; }
.ia-assistente { align-self: flex-start; background: #fff; border: 1px solid var(--borda); color: var(--texto); border-bottom-left-radius: 4px; }
.ia-erro { align-self: flex-start; background: var(--vermelho-fundo); border: 1px solid var(--vermelho); color: var(--vermelho); }
.ia-espera { color: var(--texto-apoio); }
.ia-espera i { font-style: normal; animation: ia-ponto 1.2s infinite; }
.ia-espera i:nth-child(2) { animation-delay: .2s; } .ia-espera i:nth-child(3) { animation-delay: .4s; }
@keyframes ia-ponto { 0%, 60%, 100% { opacity: .2; } 30% { opacity: 1; } }
.ia-boas-vindas { color: var(--texto); font-size: 14.5px; line-height: 1.5; }
.ia-boas-vindas p { margin: 0 0 10px; }
.ia-sugestoes { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ia-sugestao { background: #fff; border: 1px solid var(--borda); border-radius: 999px; padding: 7px 12px; font: inherit; font-size: 13.5px;
  color: var(--verde-escuro-2); cursor: pointer; text-align: left; }
.ia-sugestao:hover { border-color: var(--dourado); }
.ia-form { display: flex; gap: 8px; padding: 10px 12px 4px; border-top: 1px solid var(--borda); background: #fff; }
.ia-form input { flex: 1; min-width: 0; padding: 11px 12px; border: 1px solid var(--borda); border-radius: 10px; font: inherit; font-size: 16px; }
.ia-form input:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(212,168,44,.3); }
.ia-form button { flex: none; width: 44px; border: 0; border-radius: 10px; background: var(--dourado); cursor: pointer; display: grid; place-items: center; }
.ia-form button:disabled { opacity: .5; cursor: default; }
.ia-form button svg { width: 20px; height: 20px; fill: var(--verde-escuro); }
.ia-rodape { margin: 0; padding: 4px 14px 10px; color: var(--texto-apoio); font-size: 11.5px; background: #fff; }
/* espaço no fim da página para a bolha não cobrir a última linha */
body:has(#ia-bolha) .conteudo { padding-bottom: 88px; }
/* no celular, o aviso de "Salvo / Desfazer" sobe um pouco para não ficar atrás da bolha */
@media (max-width: 760px) {
  .ia-bolha { right: 14px; bottom: 14px; padding: 11px 15px 11px 12px; font-size: 15px; }
  .ia-painel { right: 0; bottom: 0; width: 100%; height: 100%; height: 100dvh; border-radius: 0; border: 0; }
  .ia-fala { max-width: 92%; }
  .aviso { bottom: 76px; }
  body.ia-aberto { overflow: hidden; }
}

/* ---------- Telas de acesso (login e criar senha), no visual do site da Ômega (06/11/2026) ---------- */
body.tela-acesso {
  min-height: 100vh; min-height: 100dvh; margin: 0; color: #fff;
  background:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 100% 56px,
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 56px 100%,
    radial-gradient(120% 90% at 0% 0%, #1F4A27 0%, #0F2615 55%, #0A1C0F 100%);
  background-color: #0F2615;
  display: grid; place-items: center; padding: 32px 16px;
}
.acesso { width: 100%; max-width: 1040px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.acesso-marca img { width: 190px; max-width: 60%; display: block; }
.acesso-selo { font-family: var(--fonte-numero); font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--dourado); margin: 44px 0 14px; }
.acesso-marca h1 { font-family: var(--fonte-titulo); font-weight: 700; font-size: 44px; line-height: 1.08; letter-spacing: -.5px; color: #fff; margin: 0; }
.acesso-marca h1 span { color: var(--dourado); }
.acesso-marca p { color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.55; max-width: 430px; margin: 18px 0 0; }
.acesso-empresas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.acesso-empresas span { font-family: var(--fonte-numero); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.8);
  border: 1px solid rgba(255,255,255,.22); padding: 8px 12px; border-radius: 4px; }
.acesso-cartao { background: #fff; color: var(--texto); border-radius: 14px; padding: 34px 30px 26px; position: relative; overflow: hidden;
  box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.acesso-cartao::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--dourado); }
.acesso-cartao h2 { font-family: var(--fonte-titulo); font-weight: 700; font-size: 24px; color: var(--verde-escuro); margin: 0 0 6px; }
.acesso-cartao .sub { color: var(--texto-apoio); font-size: 14px; margin: 0 0 22px; line-height: 1.5; }
.acesso-cartao label { display: block; font-weight: 600; font-size: 14px; color: var(--texto); margin: 0 0 6px; }
.acesso-cartao input[type=text], .acesso-cartao input[type=password] {
  width: 100%; padding: 13px 14px; border: 1px solid var(--borda); border-radius: 8px; font-family: var(--fonte-texto); font-size: 16px;
  color: var(--texto); background: #FAFBF8; margin: 0 0 16px; text-transform: none; }
.acesso-cartao input:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(212,168,44,.35); background: #fff; }
.acesso-cartao button { width: 100%; border: 0; border-radius: 6px; padding: 14px; margin-top: 4px; cursor: pointer;
  background: var(--dourado); color: var(--verde-escuro); font-family: var(--fonte-numero); font-weight: 500; font-size: 14px;
  letter-spacing: 2px; text-transform: uppercase; transition: filter .15s; }
.acesso-cartao button:hover { filter: brightness(1.06); }
.acesso-cartao button:disabled { opacity: .6; cursor: default; }
.acesso-cartao .erro { background: var(--vermelho-fundo); color: var(--vermelho); border-radius: 8px; padding: 10px 12px; font-size: 14px; margin: 0 0 14px; }
.acesso-cartao .nota { font-size: 13px; line-height: 1.5; color: var(--texto-apoio); margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--borda); }
.acesso-cartao .nota a { color: var(--verde); font-weight: 600; }
.acesso-cartao .marcar { display: flex; align-items: center; gap: 10px; font-weight: 400; margin: -4px 0 14px; cursor: pointer; }
.acesso-cartao .marcar input { width: 18px; height: 18px; margin: 0; accent-color: var(--verde); }
.acesso-cartao .regras { list-style: none; padding: 0; margin: 0 0 16px; font-size: 13px; color: var(--texto-apoio); }
.acesso-cartao .regras li { padding-left: 22px; position: relative; margin: 4px 0; }
.acesso-cartao .regras li::before { content: ""; position: absolute; left: 2px; top: 5px; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--borda); }
.acesso-cartao .regras li.ok { color: var(--verde); }
.acesso-cartao .regras li.ok::before { background: var(--verde); border-color: var(--verde); }
.acesso-rodape { grid-column: 1 / -1; font-family: var(--fonte-numero); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,.45); }
@media (max-width: 860px) {
  body.tela-acesso { place-items: start center; padding: 28px 16px; }
  .acesso { grid-template-columns: 1fr; gap: 26px; max-width: 440px; }
  .acesso-marca img { width: 150px; }
  .acesso-selo { margin: 26px 0 10px; font-size: 11px; letter-spacing: 2.5px; }
  .acesso-marca h1 { font-size: 30px; }
  .acesso-marca p, .acesso-empresas { display: none; }
  .acesso-cartao { padding: 28px 20px 22px; }
  .acesso-rodape { text-align: center; }
}
/* Configurações > Uso do app */
.uso-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 18px; }
.uso-bolinha { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; }
.uso-verde { background: #2E9E4F; box-shadow: 0 0 0 3px rgba(46,158,79,.18); }
.uso-amarelo { background: var(--dourado); }
.uso-cinza { background: #B8C2BA; }
/* Financeiro > Painel: faixa pequena da Provisão (antes "Previsão JM" em Configurações) */
.faixa-provisao { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; margin: 0 0 16px; padding: 9px 14px;
  background: #FBF8EE; border: 1px solid #EBDDB0; border-left: 4px solid var(--dourado); border-radius: 8px; font-size: 14px; }
.faixa-provisao-rotulo { font-family: var(--fonte-numero); font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: #7A5B00; }
.faixa-provisao-motivo { color: var(--texto-apoio); flex: 1; min-width: 180px; }
.faixa-provisao .link { margin-left: auto; }
/* Engrenagem ⚙ no topo (Configurações, 06/11/2026): nome de quem entrou, Logins, Uso do app, Trocar minha senha, Sair */
.topo-direita { display: flex; align-items: center; gap: 16px; }
.topo-conta { display: flex; align-items: center; gap: 10px; }
.engrenagem { position: relative; }
.engrenagem-botao { width: 38px; height: 38px; display: grid; place-items: center; cursor: pointer; border-radius: 50%;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); transition: background .15s, transform .3s; }
.engrenagem-botao svg { width: 20px; height: 20px; fill: #E6EDE7; }
.engrenagem-botao:hover, .engrenagem-botao[aria-expanded="true"] { background: rgba(212,168,44,.18); border-color: var(--dourado); }
.engrenagem-botao[aria-expanded="true"] { transform: rotate(45deg); }
.engrenagem-botao[aria-expanded="true"] svg, .engrenagem-botao:hover svg { fill: var(--dourado); }
.engrenagem-lista { position: absolute; right: 0; top: calc(100% + 8px); z-index: 50; width: 270px; padding: 6px;
  background: #fff; border: 1px solid var(--borda); border-radius: 12px; box-shadow: 0 16px 40px rgba(15,38,21,.28); }
.engrenagem-lista[hidden] { display: none; }
.engrenagem-quem { margin: 0 0 4px; padding: 8px 12px 10px; border-bottom: 1px solid var(--borda); color: var(--texto); }
.engrenagem-quem b, .engrenagem-quem small { display: block; }
.engrenagem-quem small { color: var(--texto-apoio); font-size: 12px; }
.engrenagem-lista a { display: block; padding: 8px 12px; border-radius: 6px; color: var(--texto); text-decoration: none; font-size: 14px; }
.engrenagem-lista a small { display: block; color: var(--texto-apoio); font-size: 12px; }
.engrenagem-lista a:hover { background: var(--fundo); }
.engrenagem-sair { display: block; width: 100%; text-align: left; margin-top: 4px; padding: 9px 12px; border: 0; border-top: 1px solid var(--borda);
  background: transparent; color: var(--vermelho); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; border-radius: 0 0 6px 6px; }
.engrenagem-sair:hover { background: var(--vermelho-fundo); }
@media (max-width: 760px) {
  .topo-direita { margin-left: auto; }
  .engrenagem-lista { width: min(270px, calc(100vw - 28px)); }
}
/* Cheques > Conferir hoje: o bloco do que precisa ser conferido no banco fica destacado */
.bloco.bloco-alerta { border-left: 4px solid var(--dourado); }
/* ===== Menu na lateral esquerda (06/11/2026): substitui o topo. Logo, empresa, módulos e, no pé, data, nome e ⚙ ===== */
:root { --lateral: 236px; }
body { padding-left: var(--lateral); }
.lateral { position: fixed; left: 0; top: 0; bottom: 0; width: var(--lateral); z-index: 30; display: flex; flex-direction: column; gap: 14px;
  padding: 18px 12px 12px; color: #fff; background: linear-gradient(180deg, #0F2615 0%, #0B1E10 100%); border-right: 1px solid rgba(255,255,255,.06); }
.lateral-logo img { width: 150px; display: block; margin: 2px 8px 2px; }
.lateral .seletor { display: flex; width: 100%; order: 0; }
.lateral .seletor button { flex: 1; padding: 6px 4px; font-size: 13px; }
.lateral .abas { display: flex !important; flex-direction: column; gap: 2px; flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden;
  white-space: normal; position: static; background: none; border: 0; box-shadow: none; padding: 0; margin: 0 -4px; padding: 0 4px;
  scrollbar-width: thin; scrollbar-color: rgba(212,168,44,.5) transparent; }
.lateral .aba-modulo { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 8px; border: 0;
  color: #D3DED5; text-decoration: none; font-weight: 500; font-size: 15px; }
.lateral .aba-modulo:hover { background: rgba(255,255,255,.06); color: #fff; }
.lateral .aba-modulo.modulo-atual { color: #fff; font-weight: 600; }
.lateral .aba-modulo[aria-current="page"] { background: rgba(212,168,44,.16); color: var(--dourado); }
.nav-icone { width: 19px; height: 19px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.lateral .aba-telas { display: none !important; flex-direction: column; margin: 2px 0 8px 19px; padding: 0 0 0 10px;
  border-left: 1px solid rgba(255,255,255,.14); }
.lateral .nav-modulo.aberto .aba-telas { display: flex !important; }
.lateral .aba-telas a { color: #B9C7BB; text-decoration: none; padding: 6px 10px; border-radius: 6px; font-size: 14px; border: 0; }
.lateral .aba-telas a:hover { color: #fff; background: rgba(255,255,255,.05); }
.lateral .aba-telas a[aria-current="page"] { color: var(--dourado); background: rgba(212,168,44,.12); font-weight: 600; }
.lateral-pe { border-top: 1px solid rgba(255,255,255,.1); padding-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.lateral .hoje { display: block !important; text-align: left; font-size: 13px; color: #B9C7BB; padding: 0 6px; }
.lateral .topo-conta { position: relative; justify-content: space-between; padding: 0 2px 0 6px; }
.lateral .quem-entrou { display: block !important; white-space: normal; font-size: 14px; color: #fff; font-weight: 500; }
.lateral .engrenagem { position: static; }
.lateral .engrenagem-lista { top: auto; bottom: calc(100% + 8px); left: 0; right: auto; width: 260px; }
.lateral .engrenagem-botao[aria-expanded="true"] { transform: rotate(-45deg); }
.barra-celular, .lateral-fundo { display: none; }
.botao-exportar { white-space: nowrap; }
@media (max-width: 760px) {
  body { padding-left: 0; }
  .lateral { width: min(280px, 84vw); z-index: 70; transform: translateX(-100%); transition: transform .2s ease;
    padding-top: calc(18px + env(safe-area-inset-top)); }
  body.lateral-aberta { overflow: hidden; }
  body.lateral-aberta .lateral { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.45); }
  body.lateral-aberta .lateral-fundo { display: block; position: fixed; inset: 0; z-index: 65; background: rgba(0,0,0,.45); }
  .barra-celular { display: flex; align-items: center; gap: 12px; padding: calc(10px + env(safe-area-inset-top)) 14px 10px;
    background: var(--verde-escuro); color: #fff; }
  .barra-celular .menu-abas { display: grid; place-items: center; flex: none; width: 40px; height: 40px; padding: 0; font-size: 20px;
    color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 8px; }
  .barra-celular-titulo { flex: 1; font-weight: 600; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .barra-celular-logo { width: 30px; height: 30px; border-radius: 6px; }
}
.barra-exportar { display: flex; justify-content: flex-end; margin: -8px 0 12px; }

/* ===== Visão geral (antes "Hoje"), painel visual (06/11/2026) ===== */
.visao-cabeca { align-items: flex-end; }
.visao-cabeca h1 { font-size: 30px; font-weight: 700; color: var(--verde-escuro); }
.visao-data { margin: 4px 0 0; color: var(--texto-apoio); font-size: 14px; }
/* KPIs: número grande, faixa colorida em cima, clicável */
.visao-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 26px; }
.kpi { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 18px 18px 16px; border-radius: 12px; overflow: hidden;
  background: var(--cartao); border: 1px solid var(--borda); text-decoration: none; color: var(--texto); transition: transform .12s, box-shadow .12s; }
.kpi::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: var(--verde); }
.kpi-vermelho::before { background: var(--vermelho); }
.kpi-dourado::before { background: var(--dourado); }
.kpi:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(15,38,21,.10); }
.kpi-rotulo { font-size: 13px; color: var(--texto-apoio); font-weight: 500; }
.kpi-valor { font-family: var(--fonte-titulo); font-weight: 700; font-size: 30px; line-height: 1.1; letter-spacing: -.3px; color: var(--verde-escuro); }
.kpi-vermelho .kpi-valor { color: var(--vermelho); }
.kpi-nota { font-size: 13px; color: var(--texto-apoio); }
/* Para fazer hoje: cartões curtos */
.visao-bloco { margin-bottom: 26px; }
.visao-titulo { font-size: 18px; font-weight: 700; color: var(--verde-escuro); margin: 0 0 12px; display: flex; align-items: baseline; gap: 10px; }
.visao-titulo span { font-family: var(--fonte-texto); font-size: 13px; font-weight: 500; color: var(--texto-apoio); }
.tarefas { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 10px; }
.tarefa { position: relative; display: grid; grid-template-columns: 12px 1fr auto; column-gap: 10px; row-gap: 3px; align-items: start;
  padding: 13px 14px; border-radius: 10px; background: var(--cartao); border: 1px solid var(--borda); text-decoration: none; color: var(--texto); }
a.tarefa:hover { border-color: var(--verde); }
.tarefa > b { grid-column: 2; font-size: 15px; }
.tarefa-texto { grid-column: 2; font-size: 13px; color: var(--texto-apoio); line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tarefa-ponto { grid-row: 1 / span 2; width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; background: #A3B0A6; }
.tarefa-vermelho .tarefa-ponto { background: var(--vermelho); box-shadow: 0 0 0 3px var(--vermelho-fundo); }
.tarefa-amarelo .tarefa-ponto { background: #E8B800; box-shadow: 0 0 0 3px #FFF6D6; }
.tarefa-vermelho { border-left: 3px solid var(--vermelho); }
.tarefa-amarelo { border-left: 3px solid #E8B800; }
.tarefa-ir { grid-column: 3; grid-row: 1 / span 2; align-self: center; color: var(--verde); font-size: 18px; }
.tarefa .botao-pago { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
.tudo-em-dia { color: var(--verde); font-weight: 600; margin: 4px 0; }
/* Gráficos */
.visao-graficos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }
.grafico-card { margin: 0; padding: 18px 20px; }
.grafico-card .bloco-cabeca { margin-bottom: 14px; }
.grafico-card .bloco-cabeca h2 { font-size: 16px; font-weight: 700; color: var(--verde-escuro); }
.grafico-card .bloco-cabeca a { font-size: 13px; color: var(--verde); }
.grafico-total { margin: 0 0 8px; color: var(--texto-apoio); font-size: 14px; }
.grafico-total b { font-family: var(--fonte-titulo); font-size: 22px; color: var(--vermelho); }
.grafico-sub { margin: 14px 0 6px; font-size: 13px; color: var(--texto-apoio); }
/* colunas por dia */
.colunas { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 8px; align-items: end; height: 190px; }
.coluna { display: flex; flex-direction: column; align-items: center; height: 100%; text-decoration: none; color: var(--texto); }
.coluna-valor { font-size: 11px; color: var(--texto-apoio); height: 16px; white-space: nowrap; }
.coluna-trilho { flex: 1; width: 100%; max-width: 40px; display: flex; align-items: flex-end; border-bottom: 1px solid var(--borda); }
.coluna-barra { width: 100%; background: var(--verde); border-radius: 4px 4px 0 0; min-height: 0; transition: filter .12s; }
.coluna-hoje .coluna-barra { background: var(--dourado); }
.coluna:hover .coluna-barra { filter: brightness(1.15); }
.coluna-dia { margin-top: 6px; font-size: 11px; color: var(--texto-apoio); text-align: center; line-height: 1.25; }
.coluna-dia b { display: block; font-size: 12px; color: var(--texto); text-transform: capitalize; }
.coluna-hoje .coluna-dia b { color: #8A6A00; }
/* barras deitadas */
.barras-h { display: flex; flex-direction: column; gap: 10px; }
.barra-h { display: grid; grid-template-columns: 112px 1fr auto; align-items: center; gap: 10px; text-decoration: none; color: var(--texto); font-size: 13.5px; }
.barras-nomes .barra-h { grid-template-columns: minmax(0, 150px) 1fr auto; }
.barra-h-nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-h-trilho { height: 14px; border-left: 1px solid var(--borda); }
.barra-h-fill { display: block; height: 100%; background: var(--verde); border-radius: 0 4px 4px 0; transition: filter .12s; }
.barra-alerta .barra-h-fill { background: var(--vermelho); }
.barra-alerta .barra-h-valor { color: var(--vermelho); font-weight: 600; }
.barra-h:hover .barra-h-fill { filter: brightness(1.15); }
.barra-h-valor { font-family: var(--fonte-numero); font-size: 13px; text-align: right; white-space: nowrap; }
.lista-curta { list-style: none; margin: 0; padding: 0; }
.lista-curta li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--borda); font-size: 14px; }
.lista-curta li:last-child { border-bottom: 0; }
.lista-curta a { color: var(--texto); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-curta a:hover { color: var(--verde); }
/* financeiro: 3 números e o resultado mês a mês */
.visao-financeiro { margin-bottom: 16px; }
.fin-mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.fin-mini div { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; background: var(--fundo); border-radius: 8px; }
.fin-mini span { font-size: 12.5px; color: var(--texto-apoio); }
.fin-mini b { font-family: var(--fonte-titulo); font-size: 21px; color: var(--verde-escuro); }
.resultado-colunas { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; height: 130px; }
.resultado-colunas.com-negativo { height: 170px; }
.res-col { display: grid; grid-template-rows: 1fr 0fr auto; text-decoration: none; color: var(--texto-apoio); }
.com-negativo .res-col { grid-template-rows: 2fr 1fr auto; }
.res-pos, .res-negs { display: flex; justify-content: center; }
.res-pos { align-items: flex-end; border-bottom: 1px solid var(--borda); }
.res-negs { align-items: flex-start; }
.res-barra { width: 70%; max-width: 34px; background: var(--verde); }
.res-pos .res-barra { border-radius: 4px 4px 0 0; }
.res-negs .res-barra { background: var(--vermelho); border-radius: 0 0 4px 4px; }
.res-atual .res-pos .res-barra { background: var(--dourado); }
.res-col:hover .res-barra { filter: brightness(1.15); }
.res-mes { font-size: 11px; text-align: center; margin-top: 4px; text-transform: capitalize; }
@media (max-width: 1100px) { .visao-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .visao-graficos { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .visao-cabeca h1 { font-size: 24px; }
  .kpi { padding: 14px 14px 12px; }
  .kpi-valor { font-size: 21px; }
  .fin-mini { grid-template-columns: minmax(0, 1fr); }
  .colunas { gap: 4px; height: 160px; }
  .barra-h, .barras-nomes .barra-h { grid-template-columns: 96px 1fr auto; font-size: 13px; }
}
/* Cheques: botão "Devolvido" em vermelho claro; KPIs de 3 colunas na tela Devolvidos */
.acao.acao-perigo { color: var(--vermelho); border-color: #E7B7B2; }
.acao.acao-perigo:hover { background: var(--vermelho-fundo); border-color: var(--vermelho); }
.visao-kpis.kpis-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .visao-kpis.kpis-3 { grid-template-columns: minmax(0, 1fr); } }
/* Comprovantes de pagamento de um título */
.lista-comprovantes { list-style: none; padding: 0; margin: 10px 0 14px; }
.lista-comprovantes li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 10px; border: 1px solid var(--borda); border-radius: 8px; margin-bottom: 6px; }
.lista-comprovantes a { color: var(--verde); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.lista-comprovantes small { color: var(--texto-apoio); white-space: nowrap; }
/* ---------- Financeiro > Importar lançamentos (09/11/2026) ---------- */
.importar-passo { background: var(--cartao); border: 1px solid var(--borda); border-radius: 12px; padding: 18px 20px; margin-bottom: 18px; }
.importar-passo h2 { font-family: var(--fonte-titulo); font-size: 17px; margin: 0 0 12px; display: flex; align-items: center; gap: 10px; }
.passo-num { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--verde-escuro); color: var(--dourado); font-size: 14px; }
.importar-escolhas { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 18px; }
.zona-arquivos { display: flex; flex-direction: column; align-items: center; gap: 4px; margin: 14px 0 8px; padding: 26px 16px; border: 2px dashed var(--borda);
  border-radius: 12px; background: var(--fundo); text-align: center; cursor: pointer; color: var(--texto-apoio); }
.zona-arquivos b { color: var(--verde); font-size: 15px; }
.zona-arquivos.sobre, .zona-arquivos:hover { border-color: var(--dourado); background: #FFFBEA; }
.zona-arquivos input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.zona-arquivos:focus-within { outline: 2px solid var(--dourado); outline-offset: 2px; }
.imp-lista { list-style: none; margin: 0 0 8px; padding: 0; }
.imp-lista li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borda); flex-wrap: wrap; }
.imp-tipo-arq { font-family: var(--fonte-numero); font-size: 11px; padding: 2px 6px; border-radius: 4px; background: var(--verde-claro); color: var(--verde-escuro); }
.imp-nome { flex: 1 1 220px; overflow-wrap: anywhere; }
.imp-lista small { color: var(--texto-apoio); }
.imp-situ { font-size: 13px; color: var(--verde); }
.imp-erro { color: var(--vermelho); }
.imp-progresso { min-height: 1.4em; color: var(--texto-apoio); font-size: 14px; }
.imp-tabela input, .imp-tabela select { font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--borda); border-radius: 6px; background: #fff; max-width: 100%; }
.imp-tabela .imp-num { width: 9.5em; text-align: right; font-family: var(--fonte-numero); }
.imp-tabela .imp-texto { min-width: 14em; width: 100%; }
.imp-tabela td { vertical-align: top; }
.imp-origem { font-size: 12.5px; color: var(--texto-apoio); max-width: 13em; overflow-wrap: anywhere; }
.imp-tabela tr.imp-duvida > td { background: #FFF4CC; }
.imp-tabela tr.imp-nota > td { font-size: 13px; padding-top: 0; white-space: normal; }
.imp-tabela tr.imp-nota span { display: inline-block; margin-right: 14px; }
.imp-conferi { font-weight: 600; white-space: nowrap; }
.imp-tabela tr.imp-fora > td:not(:first-child) { opacity: .45; }
.imp-amex { font-size: 12.5px; margin-top: 4px; }
.imp-amex ul { margin: 4px 0 0; padding-left: 18px; }
.imp-totais { margin: 14px 0; }
