/* calculos.css - painel "Todos os cálculos" (projeto v12, seção 000). Vale junto com cliente.css e contatos.css (mesmos tokens, tema claro e botões).
 * Texto normal 16px, rótulo e cabeçalho 14,4px, nada abaixo de 14px. Botões e filtros com 48px de altura. Sem barra de rolagem: a lista é dividida em páginas.
 */

/* ------------------------------------------------------------------ filtros: cinco botões, o ligado em dourado */
.ct-filtros { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
.ct-filtros[hidden] { display: none; }
.pag-contatos .ct-filtro--ligado, .pag-contatos .ct-filtro--ligado:hover:not(:disabled) { background: var(--gold); border-color: #a97618; color: #0c1b3a; }
@media (max-width: 480px) { .ct-filtros .ct-filtro { flex: 1 1 calc(50% - 6px); } }

/* ------------------------------------------------------------------ tabela de oito colunas (as sete da copy e o botão Abrir) */
table.ct-t.ct-calc th:nth-child(1), table.ct-t.ct-calc td:nth-child(1) { width: 10%; }
table.ct-t.ct-calc th:nth-child(2), table.ct-t.ct-calc td:nth-child(2) { width: 18%; }
table.ct-t.ct-calc th:nth-child(3), table.ct-t.ct-calc td:nth-child(3) { width: 12%; }
table.ct-t.ct-calc th:nth-child(4), table.ct-t.ct-calc td:nth-child(4) { width: 14%; }
table.ct-t.ct-calc th:nth-child(5), table.ct-t.ct-calc td:nth-child(5) { width: 13%; }
table.ct-t.ct-calc th:nth-child(6), table.ct-t.ct-calc td:nth-child(6) { width: 13%; }
table.ct-t.ct-calc th:nth-child(7), table.ct-t.ct-calc td:nth-child(7) { width: 12%; }
table.ct-t.ct-calc th:nth-child(8), table.ct-t.ct-calc td:nth-child(8) { width: 8%; }
.ct-calc .ct-c-data .ct-din { display: block; }
.ct-calc .ct-c-valor { text-align: left; }
.ct-calc .ct-c-valor .ct-din { text-align: left; }
.ct-calc .ct-c-acao .ct-botao { padding-left: 10px; padding-right: 10px; }
.ct-calc td.ct-c-acao > .ct-botao + .ct-botao { margin-top: 8px; }   /* Abrir e Excluir, um embaixo do outro */
.pag-contatos .ct-excluir { border-color: var(--st-vermelho); color: var(--st-vermelho); }
.pag-contatos .ct-excluir:hover:not(:disabled) { border-color: var(--st-vermelho); color: #ffffff; background: var(--st-vermelho); }

/* ------------------------------------------------------------------ janela de confirmar a exclusão */
.ct-janela-fundo { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(12,27,58,.55); }
.ct-janela { width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow-wrap: anywhere; background: #ffffff; color: #0c1b3a; border: 1px solid #c3cde0; border-radius: 12px; padding: 24px; box-shadow: 0 12px 40px rgba(12,27,58,.35); }
.ct-janela h2 { font-size: 1.25rem; line-height: 1.3; margin: 0 0 12px; }
.ct-janela p { font-size: 1rem; line-height: 1.6; margin: 0 0 16px; }
.ct-janela .ct-excluir-erro { color: #a32b22; font-weight: 600; }
.ct-janela .ct-excluir-erro[hidden] { display: none; }
.ct-janela-botoes { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; }
@media (max-width: 480px) { .ct-janela-botoes .ct-botao { flex: 1 1 100%; } .ct-janela { padding: 20px; } }
.ct-nao-gravado { color: var(--gray); }
.ct-sem-contato { color: var(--gray); }
.ct-motivo { font-size: 1.0625rem; line-height: 1.6; color: var(--white); }
.ct-ficha-rotulo { font-size: .9rem; font-weight: 600; letter-spacing: .04em; color: var(--gray); margin-bottom: 4px; }

/* ------------------------------------------------------------------ A conta ano a ano: tabela larga, e cartões quando a coluna é estreita */
.ct-detalhe-painel { container-type: inline-size; }
.ct-conta { overflow: visible; }
table.ct-ano { width: 100%; border-collapse: collapse; table-layout: fixed; }
table.ct-ano th { text-align: left; font-size: .9rem; font-weight: 600; letter-spacing: .02em; color: var(--gray); line-height: 1.35; padding: 12px 10px; border-bottom: 1px solid var(--border); vertical-align: bottom; overflow-wrap: anywhere; }
table.ct-ano td { font-size: 1rem; color: var(--white); line-height: 1.5; padding: 12px 10px; border-bottom: 1px solid #d5dcea; vertical-align: top; overflow-wrap: anywhere; }
table.ct-ano th:nth-child(1), table.ct-ano td:nth-child(1) { width: 12%; }
table.ct-ano tbody tr:last-child td { border-bottom: none; }
@container (max-width: 700px) {
  .ct-conta { background: none; border: none; }
  table.ct-ano, table.ct-ano tbody, table.ct-ano tr, table.ct-ano td { display: block; width: auto !important; }
  table.ct-ano thead { display: none; }
  table.ct-ano tr { border: 1px solid var(--border); border-radius: 12px; padding: 6px 14px 10px; margin-bottom: 12px; }
  table.ct-ano td { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid #d5dcea; }
  table.ct-ano td:last-child { border-bottom: none; }
  table.ct-ano td::before { content: attr(data-rotulo); font-size: .9rem; font-weight: 600; color: var(--gray); }
}
@container (max-width: 420px) {
  table.ct-ano td { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ------------------------------------------------------------------ A conta de cada caminho: tabela de totais (caminho x ano) e, ao tocar, as parcelas. Cartões quando a coluna é estreita. */
.ct-caminhos { overflow: visible; }
table.ct-cc, table.ct-pa { width: 100%; border-collapse: collapse; }
table.ct-cc { table-layout: fixed; }
table.ct-cc th, table.ct-pa th { text-align: left; font-size: .9rem; font-weight: 600; letter-spacing: .02em; color: var(--gray); line-height: 1.35; padding: 12px 10px; border-bottom: 1px solid var(--border); vertical-align: bottom; overflow-wrap: anywhere; }
table.ct-cc td, table.ct-pa td { font-size: 1rem; color: var(--white); line-height: 1.5; padding: 12px 10px; border-bottom: 1px solid #d5dcea; vertical-align: top; overflow-wrap: anywhere; }
table.ct-cc th.ct-cc-nome { font-size: 1rem; font-weight: 600; letter-spacing: 0; color: var(--white); vertical-align: top; text-align: left; border-bottom: 1px solid #d5dcea; }
table.ct-cc th:first-child { width: 17%; }
table.ct-cc td .ct-din { display: block; }
table.ct-cc .ct-cc-menor { display: block; margin-top: 8px; width: fit-content; max-width: 100%; white-space: normal; }
table.ct-cc .ct-cc-ver { margin-top: 10px; padding-left: 10px; padding-right: 10px; max-width: 100%; }
table.ct-cc .ct-cc-motivo, table.ct-cc .ct-cc-nao-existe { font-size: .9rem; color: var(--gray); line-height: 1.45; }
table.ct-cc tr.ct-cc-detalhe > td { padding: 8px 10px 16px; background: #f4f6fb; }
.ct-parcelas { display: grid; gap: 12px; }
.ct-parcelas .ct-tabela { margin: 0; }
table.ct-pa th:nth-child(1) { width: 40%; }
.ct-soma-parcelas { font-size: 1rem; line-height: 1.6; color: var(--white); overflow-wrap: anywhere; }
@container (max-width: 900px) {
  .ct-caminhos { background: none; border: none; }
  table.ct-cc, table.ct-cc tbody, table.ct-cc tr, table.ct-cc th.ct-cc-nome, table.ct-cc td { display: block; width: auto !important; }
  table.ct-cc thead { display: none; }
  table.ct-cc tr { border: 1px solid var(--border); border-radius: 12px; padding: 6px 14px 10px; margin-bottom: 12px; }
  table.ct-cc th.ct-cc-nome { padding: 10px 0; font-size: 1.0625rem; }
  table.ct-cc td { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid #d5dcea; }
  table.ct-cc td:last-child { border-bottom: none; }
  table.ct-cc td::before { content: attr(data-rotulo); font-size: .9rem; font-weight: 600; color: var(--gray); }
  table.ct-cc tr.ct-cc-detalhe { padding: 0; border: none; margin-top: -6px; }
  table.ct-cc tr.ct-cc-detalhe > td { display: block; padding: 8px 0 12px; border-bottom: none; }
  table.ct-cc tr.ct-cc-detalhe > td::before { content: none; }
}
@container (max-width: 700px) {
  table.ct-pa, table.ct-pa tbody, table.ct-pa tr, table.ct-pa td { display: block; width: auto !important; }
  table.ct-pa thead { display: none; }
  table.ct-pa tr { border: 1px solid var(--border); border-radius: 12px; padding: 6px 14px 10px; margin-bottom: 12px; background: #fff; }
  table.ct-pa td { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid #d5dcea; }
  table.ct-pa td:last-child { border-bottom: none; }
  table.ct-pa td::before { content: attr(data-rotulo); font-size: .9rem; font-weight: 600; color: var(--gray); }
}
@container (max-width: 420px) {
  table.ct-cc td, table.ct-pa td { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ------------------------------------------------------------------ copiar o link do resultado (PROJETO-LINK-DO-RESULTADO-v1.md) */
.ct-link-resultado { margin: 4px 0 18px; }
.ct-link-resultado .ct-link-aviso { margin: 10px 0 0; font-size: 1rem; line-height: 1.5; font-weight: 600; color: var(--goldl); }
.ct-link-resultado .ct-link-aviso[hidden] { display: none; }
.ct-link-resultado .ct-link-campo { display: block; box-sizing: border-box; width: 100%; max-width: 560px; margin-top: 10px; padding: 10px 12px; font-size: 1rem; font-family: inherit; color: var(--white); background: var(--navy2); border: 1px solid var(--gold); border-radius: 8px; }
.ct-link-resultado .ct-link-campo[hidden] { display: none; }
@media (max-width: 480px) { .ct-link-resultado .ct-copiar-link { width: 100%; } }

/* ------------------------------------------------------------------ a ficha do cálculo como janela larga por cima de tudo (PROJETO-RELATORIO-PDF-v1.md, seção 1)
 * Só acréscimo: as regras de contatos.css que punham a ficha na coluna da direita continuam no arquivo, mas a ficha agora é uma janela fixa e elas deixam de ter efeito.
 * Tamanhos: nome da empresa 32px (26px no celular); títulos dos blocos 20px (18px no celular); texto, tabelas e botões 16px.
 */
.ct[data-vista="lista"] .ct-janela-fundo--ficha { display: none; }
.ct .ct-janela-fundo--ficha { z-index: 990; padding: 24px; }   /* a janela de excluir (z-index 1000) fica por cima da ficha */
.ct[data-vista] .ct-lista-painel { display: block; }            /* a lista continua atrás da janela, escurecida */
@media (min-width: 1500px) { .ct { grid-template-columns: minmax(0, 1fr); } }
.pag-contatos .ct .ct-janela.ct-janela--ficha {
  box-sizing: border-box; width: 100%; max-width: 1600px; height: calc(100vh - 48px); max-height: none; overflow-y: auto; overflow-x: hidden;
  padding: 0 32px 32px; display: block; border-radius: 12px; background: #ffffff;
}
@supports (height: 100dvh) { .pag-contatos .ct .ct-janela.ct-janela--ficha { height: calc(100dvh - 48px); } }
html.ct-sem-rolagem { overflow: hidden; }
.ct .ct-voltar { display: inline-flex; }   /* em tela larga o contatos.css escondia o Voltar; na janela ele existe */

.ct-ficha-barra { position: sticky; top: 0; z-index: 3; display: flex; justify-content: flex-end; padding: 16px 0 8px; margin: 0; background: #ffffff; }
.ct-ficha-barra .ct-fechar { width: 48px; padding: 0; font-size: 24px; line-height: 1; }
/* O cabeçalho da ficha é uma grade: tudo ocupa a linha inteira, menos o botão de copiar o link (coluna 1) e o botão do PDF ou a frase de que não há relatório (coluna 2), que ficam lado a lado. */
.ct-janela--ficha .ct-detalhe-cab { display: grid; grid-template-columns: max-content minmax(0, 1fr); grid-auto-flow: row dense; column-gap: 20px; align-items: start; }
.ct-janela--ficha .ct-detalhe-cab > * { grid-column: 1 / -1; min-width: 0; }
.ct-janela--ficha .ct-detalhe-cab > .ct-link-resultado { grid-column: 1; }
.ct-janela--ficha .ct-detalhe-cab > .ct-relatorio-pdf, .ct-janela--ficha .ct-detalhe-cab > .ct-relatorio-sem { grid-column: 2; }
.ct-janela--ficha .ct-detalhe-cab > .ct-voltar { justify-self: start; }
.ct-relatorio-pdf { margin: 4px 0 18px; }
.ct-relatorio-pdf .ct-relatorio-aviso { margin: 10px 0 0; line-height: 1.5; font-weight: 600; color: var(--st-vermelho); max-width: 560px; }
.ct-relatorio-pdf .ct-relatorio-aviso[hidden] { display: none; }
.ct-relatorio-sem { margin: 4px 0 18px; max-width: 640px; line-height: 1.5; }

/* tamanhos de texto dentro da janela */
.pag-contatos .ct-janela--ficha .ct-detalhe-nome { font-size: 32px; line-height: 1.2; }
.pag-contatos .ct-janela--ficha .ct-secao h3 { font-size: 20px; line-height: 1.3; }
.pag-contatos .ct-janela--ficha :is(th, td, dt, dd, p, li, button, .etiqueta, .ct-link-campo) { font-size: 16px; }
.pag-contatos .ct-janela--ficha table .ct-cc-motivo, .pag-contatos .ct-janela--ficha table .ct-cc-nao-existe { font-size: 16px; }
.pag-contatos .ct-janela--ficha .ct-ficha-barra .ct-fechar { font-size: 24px; }

/* celular: a janela ocupa a tela inteira e o botão de fechar fica fixo no topo */
@media (max-width: 767px) {
  .ct .ct-janela-fundo--ficha { padding: 0; }
  .pag-contatos .ct .ct-janela.ct-janela--ficha { max-width: none; height: 100vh; border-radius: 0; border: none; padding: 0 16px 24px; }
  @supports (height: 100dvh) { .pag-contatos .ct .ct-janela.ct-janela--ficha { height: 100dvh; } }
  .pag-contatos .ct-janela--ficha .ct-detalhe-nome { font-size: 26px; }
  .pag-contatos .ct-janela--ficha .ct-secao h3 { font-size: 18px; }
  .ct-janela--ficha .ct-detalhe-cab { display: block; }
  .ct-link-resultado .ct-copiar-link, .ct-relatorio-pdf .ct-baixar-relatorio { width: 100%; }
}
