/* ============================================================
   Sistema de Gestao Financeira - Talkplast + Talk4you
   ============================================================ */
:root {
  color-scheme: dark;
  --plane:        #0d0f14;
  --surface-1:    #171a23;
  --surface-2:    #1e222d;
  --surface-3:    #262b38;
  --linha:        #2c3140;
  --linha-forte:  #3a4152;
  --ink:          #ffffff;
  --ink-2:        #a9b1c4;
  --ink-3:        #737d92;
  --grade:        #242938;
  --eixo:         #383f4f;

  --serie-1:      #3987e5;   /* Talkplast */
  --serie-2:      #d95926;   /* Talk4you  */
  --serie-3:      #199e70;
  --serie-4:      #c98500;
  --serie-5:      #d55181;
  --serie-6:      #9085e9;

  --bom:          #0ca30c;
  --atencao:      #fab219;
  --serio:        #ec835a;
  --critico:      #d03b3b;

  --marca:        #4f46e5;
  --marca-2:      #06b6d4;
  --raio:         14px;
  --raio-s:       9px;
  --sombra:       0 1px 2px rgba(0,0,0,.35), 0 10px 30px -12px rgba(0,0,0,.55);
  --fonte: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

:root[data-tema="claro"] {
  color-scheme: light;
  --plane:        #f4f5f8;
  --surface-1:    #ffffff;
  --surface-2:    #f8f9fc;
  --surface-3:    #eef0f6;
  --linha:        #e2e5ee;
  --linha-forte:  #cfd4e2;
  --ink:          #0e1116;
  --ink-2:        #525a6b;
  --ink-3:        #8a92a3;
  --grade:        #edeff4;
  --eixo:         #cfd4e2;
  --serie-1:      #2a78d6;
  --serie-2:      #eb6834;
  --serie-3:      #1baf7a;
  --serie-4:      #eda100;
  --serie-5:      #e87ba4;
  --serie-6:      #4a3aa7;
  --sombra:       0 1px 2px rgba(16,24,40,.06), 0 12px 28px -14px rgba(16,24,40,.22);
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0; background: var(--plane); color: var(--ink);
  font-family: var(--fonte); font-size: 14px; line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; color: inherit; }
a { color: var(--serie-1); }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-thumb { background: var(--linha-forte); border-radius: 8px; border: 3px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

/* ------------------------------------------------------- LOGIN */
.tela-auth {
  min-height: 100vh; display: grid; grid-template-columns: 1fr; place-items: center;
  padding: 24px; background:
    radial-gradient(1000px 620px at 12% -10%, rgba(79,70,229,.20), transparent 60%),
    radial-gradient(900px 560px at 92% 108%, rgba(6,182,212,.16), transparent 62%),
    var(--plane);
}
.cartao-auth {
  width: 100%; max-width: 424px; background: var(--surface-1);
  border: 1px solid var(--linha); border-radius: 20px; padding: 36px 34px;
  box-shadow: var(--sombra);
}
.logo-auth { display: flex; align-items: center; gap: 11px; margin-bottom: 26px; }
.logo-quadro {
  width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--marca), var(--marca-2));
  color: #fff; font-weight: 800; font-size: 17px; letter-spacing: -.5px;
}
/* Marca TalkPlast — wordmark 341x112, proporcao ~3,05:1.
   O fundo preto e do proprio logotipo, entao a caixa acompanha. */
.logo-marca {
  flex: none; border-radius: 8px; background-color: #000;
  background-image: url("data:image/png;base64,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");
  background-size: contain; background-position: center; background-repeat: no-repeat;
}
.logo-auth .logo-marca { width: 104px; height: 34px; }
.lateral-topo .logo-marca { width: 72px; height: 24px; }
.logo-nome { font-size: 15.5px; font-weight: 700; letter-spacing: -.2px; }
.logo-sub { font-size: 11.5px; color: var(--ink-3); }
.cartao-auth h1 { font-size: 20px; margin: 0 0 6px; letter-spacing: -.3px; }
.cartao-auth .desc { color: var(--ink-2); font-size: 13.5px; margin: 0 0 24px; }

.campo { margin-bottom: 16px; }
.campo label { display: block; font-size: 12.5px; font-weight: 600; color: var(--ink-2); margin-bottom: 7px; }
.campo input, .campo select, .campo textarea {
  width: 100%; padding: 11px 13px; background: var(--surface-2);
  border: 1px solid var(--linha); border-radius: 10px; outline: none; transition: .15s;
}
.campo input:focus, .campo select:focus, .campo textarea:focus {
  border-color: var(--marca); box-shadow: 0 0 0 3px rgba(79,70,229,.18); background: var(--surface-1);
}
.campo .dica { font-size: 11.5px; color: var(--ink-3); margin-top: 6px; }
.campo-senha { position: relative; }
.campo-senha button {
  position: absolute; right: 6px; top: 50%; transform: translateY(-50%);
  background: none; border: 0; color: var(--ink-3); cursor: pointer; padding: 6px 8px; font-size: 12px;
}

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 10px 16px; border-radius: 10px; border: 1px solid var(--linha);
  background: var(--surface-2); cursor: pointer; font-size: 13.5px; font-weight: 600;
  transition: .14s; white-space: nowrap;
}
.btn:hover { background: var(--surface-3); border-color: var(--linha-forte); }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.btn-principal {
  background: linear-gradient(135deg, var(--marca), #6366f1); border-color: transparent; color: #fff;
}
.btn-principal:hover { filter: brightness(1.08); background: linear-gradient(135deg, var(--marca), #6366f1); }
.btn-bloco { width: 100%; padding: 12px; }
.btn-perigo { color: var(--critico); border-color: rgba(208,59,59,.35); }
.btn-perigo:hover { background: rgba(208,59,59,.12); }
.btn-mini { padding: 5px 9px; font-size: 12px; border-radius: 8px; }

.link-texto { background: none; border: 0; color: var(--serie-1); cursor: pointer; font-size: 13px; padding: 0; }
.link-texto:hover { text-decoration: underline; }

.aviso { padding: 11px 13px; border-radius: 10px; font-size: 13px; margin-bottom: 16px; display: flex; gap: 9px; align-items: flex-start; }
.aviso-erro { background: rgba(208,59,59,.13); border: 1px solid rgba(208,59,59,.32); color: #ff9a9a; }
.aviso-ok   { background: rgba(12,163,12,.13); border: 1px solid rgba(12,163,12,.32); color: #7ee07e; }
.aviso-info { background: rgba(57,135,229,.12); border: 1px solid rgba(57,135,229,.30); color: #a8cbf5; }
.aviso-alerta { background: rgba(250,178,25,.12); border: 1px solid rgba(250,178,25,.32); color: #f2c964; }
:root[data-tema="claro"] .aviso-erro { color: #a11c1c; }
:root[data-tema="claro"] .aviso-ok { color: #146c14; }
:root[data-tema="claro"] .aviso-info { color: #1c4e8f; }
:root[data-tema="claro"] .aviso-alerta { color: #8a5c00; }

/* -------------------------------------------------- ESTRUTURA */
.app { display: grid; grid-template-columns: 246px 1fr; min-height: 100vh; }
.lateral {
  background: var(--surface-1); border-right: 1px solid var(--linha);
  display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh;
}
.lateral-topo { padding: 20px 18px; border-bottom: 1px solid var(--linha); display: flex; align-items: center; gap: 11px; }
.nav { padding: 12px 10px; overflow-y: auto; flex: 1; }
.nav-grupo { font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); padding: 14px 10px 7px; font-weight: 700; }
.nav a {
  display: flex; align-items: center; gap: 11px; padding: 9px 11px; border-radius: 9px;
  color: var(--ink-2); text-decoration: none; font-size: 13.5px; font-weight: 500; margin-bottom: 2px;
}
.nav a:hover { background: var(--surface-2); color: var(--ink); }
.nav a.ativo { background: rgba(79,70,229,.15); color: var(--ink); font-weight: 600; }
.nav a.ativo .ico { color: var(--marca-2); }
.ico { width: 17px; height: 17px; flex: none; color: var(--ink-3); }
.lateral-base { padding: 12px; border-top: 1px solid var(--linha); }
.usuario-box { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 10px; }
.avatar {
  width: 33px; height: 33px; border-radius: 50%; display: grid; place-items: center; flex: none;
  background: linear-gradient(135deg, var(--marca), var(--marca-2)); color: #fff; font-weight: 700; font-size: 12.5px;
}
.usuario-nome { font-size: 13px; font-weight: 600; line-height: 1.25; }
.usuario-papel { font-size: 11px; color: var(--ink-3); }

.conteudo { display: flex; flex-direction: column; min-width: 0; }
.barra-topo {
  display: flex; align-items: center; gap: 14px; padding: 14px 26px;
  border-bottom: 1px solid var(--linha); background: var(--surface-1);
  position: sticky; top: 0; z-index: 20;
}
.barra-topo h1 { font-size: 17px; margin: 0; letter-spacing: -.25px; }
.barra-topo .sub { font-size: 12px; color: var(--ink-3); }
.espaco { flex: 1; }
.seletor {
  padding: 7px 11px; background: var(--surface-2); border: 1px solid var(--linha);
  border-radius: 9px; font-size: 13px; cursor: pointer;
}
.segmentado { display: inline-flex; background: var(--surface-2); border: 1px solid var(--linha); border-radius: 10px; padding: 3px; gap: 2px; }
.segmentado button {
  border: 0; background: none; padding: 6px 13px; border-radius: 7px; cursor: pointer;
  font-size: 12.5px; font-weight: 600; color: var(--ink-3);
}
.segmentado button.ativo { background: var(--surface-1); color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.pagina { padding: 24px 26px 60px; }

/* ------------------------------------------------------ CARDS */
.grade-kpi { display: grid; grid-template-columns: repeat(auto-fit, minmax(228px, 1fr)); gap: 14px; margin-bottom: 20px; }
.kpi {
  background: var(--surface-1); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 17px 18px; box-shadow: var(--sombra); position: relative; overflow: hidden;
}
.kpi::after { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--acento, transparent); }
.kpi-rotulo { font-size: 11.5px; color: var(--ink-3); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 9px; display: flex; align-items: center; gap: 6px; }
.kpi-valor { font-size: 22px; font-weight: 700; letter-spacing: -.7px; line-height: 1.15; white-space: nowrap; }
.kpi-rodape { font-size: 12px; color: var(--ink-3); margin-top: 7px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.delta { font-weight: 700; display: inline-flex; align-items: center; gap: 3px; }
.delta-sobe { color: var(--bom); }
.delta-desce { color: var(--critico); }

.cartao {
  background: var(--surface-1); border: 1px solid var(--linha); border-radius: var(--raio);
  box-shadow: var(--sombra); margin-bottom: 18px; overflow: hidden;
}
.cartao-topo { padding: 16px 18px 4px; display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; }
.cartao-titulo { font-size: 14.5px; font-weight: 700; letter-spacing: -.2px; margin: 0; }
.cartao-desc { font-size: 12px; color: var(--ink-3); margin: 3px 0 0; }
.cartao-corpo { padding: 14px 18px 18px; }
.duas-colunas { display: grid; grid-template-columns: 1.55fr 1fr; gap: 18px; align-items: start; }
.tres-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; align-items: start; }
@media (max-width: 1080px) { .duas-colunas { grid-template-columns: 1fr; } .app { grid-template-columns: 1fr; } .lateral { display: none; } }

/* --------------------------------------------------- LEGENDA */
.legenda { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; font-size: 12.5px; color: var(--ink-2); }
.legenda span { display: inline-flex; align-items: center; gap: 7px; }
.ponto { width: 10px; height: 10px; border-radius: 3px; flex: none; }

/* --------------------------------------------------- TABELAS */
.rolagem { overflow-x: auto; }
table.tabela { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; }
table.tabela th {
  text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .05em;
  color: var(--ink-3); font-weight: 700; padding: 9px 11px; border-bottom: 1px solid var(--linha);
  white-space: nowrap; background: var(--surface-1); position: sticky; top: 0; z-index: 2;
}
table.tabela td { padding: 8px 11px; border-bottom: 1px solid var(--grade); vertical-align: middle; }
table.tabela tr:hover td { background: var(--surface-2); }
table.tabela td.num, table.tabela th.num { text-align: right; font-variant-numeric: tabular-nums; }
.total-linha td { font-weight: 700; background: var(--surface-2) !important; border-top: 2px solid var(--linha-forte); }

.etiqueta {
  display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 100px;
  font-size: 11.5px; font-weight: 600; border: 1px solid transparent; white-space: nowrap;
}
.et-talkplast { background: rgba(57,135,229,.14); color: var(--serie-1); border-color: rgba(57,135,229,.3); }
.et-talk4you  { background: rgba(217,89,38,.14); color: var(--serie-2); border-color: rgba(217,89,38,.3); }
.et-ok       { background: rgba(12,163,12,.14); color: var(--bom); border-color: rgba(12,163,12,.3); }
.et-pendente { background: rgba(250,178,25,.14); color: var(--atencao); border-color: rgba(250,178,25,.32); }
.et-atraso   { background: rgba(208,59,59,.14); color: var(--critico); border-color: rgba(208,59,59,.32); }
.et-neutro   { background: var(--surface-3); color: var(--ink-2); border-color: var(--linha); }

/* --------------------------------- GRADE EDITAVEL (planilha) */
.planilha-wrap { overflow: auto; max-height: calc(100vh - 250px); border: 1px solid var(--linha); border-radius: var(--raio); background: var(--surface-1); }
table.planilha { border-collapse: separate; border-spacing: 0; font-size: 12.5px; width: max-content; table-layout: fixed; }
table.planilha th:not(.fixa), table.planilha td:not(.fixa) { width: 92px; }
table.planilha th:last-child, table.planilha td:last-child { width: 78px; }
table.planilha th {
  position: sticky; top: 0; z-index: 3; background: var(--surface-2); color: var(--ink-3);
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; font-weight: 700;
  padding: 9px 8px; border-bottom: 1px solid var(--linha); white-space: nowrap;
}
table.planilha th.fixa, table.planilha td.fixa {
  position: sticky; left: 0; z-index: 2; background: var(--surface-1); border-right: 1px solid var(--linha);
  min-width: 210px; max-width: 240px;
}
table.planilha th.fixa { z-index: 4; background: var(--surface-2); }
table.planilha td { padding: 0; border-bottom: 1px solid var(--grade); }
table.planilha td.fixa { padding: 7px 11px; }
table.planilha .celula {
  width: 100%; border: 0; background: none; padding: 8px 9px; text-align: right;
  font-variant-numeric: tabular-nums; font-size: 12.5px; outline: none; border-radius: 0;
}
table.planilha .celula:hover { background: var(--surface-2); }
table.planilha .celula:focus { background: rgba(79,70,229,.15); box-shadow: inset 0 0 0 2px var(--marca); }
table.planilha .celula.zero { color: var(--ink-3); }
table.planilha .celula.salvo { animation: brilho .9s ease; }
@keyframes brilho { 0% { background: rgba(12,163,12,.32); } 100% { background: transparent; } }
table.planilha tr.grupo td {
  background: var(--surface-3); font-weight: 700; font-size: 11.5px; padding: 7px 11px;
  text-transform: uppercase; letter-spacing: .05em; color: var(--ink-2);
}
table.planilha tr.total td { background: var(--surface-2); font-weight: 700; border-top: 2px solid var(--linha-forte); }
table.planilha td.total-cel { padding: 8px 9px; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.cliente-nome { font-weight: 600; }
.cliente-meta { font-size: 11px; color: var(--ink-3); }

/* ---------------------------------------------------- MODAIS */
.fundo-modal {
  position: fixed; inset: 0; background: rgba(5,7,12,.66); backdrop-filter: blur(3px);
  display: grid; place-items: center; z-index: 100; padding: 20px;
}
.modal {
  background: var(--surface-1); border: 1px solid var(--linha); border-radius: 18px;
  width: 100%; max-width: 540px; max-height: 88vh; overflow: auto; box-shadow: 0 24px 70px -20px rgba(0,0,0,.7);
}
.modal-topo { padding: 20px 24px 12px; display: flex; align-items: center; gap: 12px; }
.modal-topo h2 { font-size: 16.5px; margin: 0; flex: 1; letter-spacing: -.2px; }
.modal-corpo { padding: 4px 24px 8px; }
.modal-base { padding: 14px 24px 20px; display: flex; gap: 10px; justify-content: flex-end; }
.fechar { background: none; border: 0; color: var(--ink-3); cursor: pointer; font-size: 20px; line-height: 1; padding: 4px 8px; }
.linha-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* -------------------------------------------------- TOASTS */
.toasts { position: fixed; bottom: 22px; right: 22px; display: flex; flex-direction: column; gap: 9px; z-index: 200; }
.toast {
  background: var(--surface-1); border: 1px solid var(--linha); border-left: 3px solid var(--marca);
  border-radius: 11px; padding: 11px 15px; font-size: 13px; box-shadow: var(--sombra);
  animation: entra .22s ease; max-width: 350px;
}
.toast.ok { border-left-color: var(--bom); }
.toast.erro { border-left-color: var(--critico); }
@keyframes entra { from { opacity: 0; transform: translateX(16px); } }

/* ------------------------------------------------ BARRA META */
.barra-fundo { height: 7px; background: var(--surface-3); border-radius: 100px; overflow: hidden; }
.barra-frente { height: 100%; border-radius: 100px; transition: width .5s ease; }

/* ---------------------------------------------------- SVG */
.grafico { width: 100%; display: block; overflow: visible; }
.grafico .grade-linha { stroke: var(--grade); stroke-width: 1; }
.grafico .eixo-linha { stroke: var(--eixo); stroke-width: 1; }
.grafico text { fill: var(--ink-3); font-size: 10.5px; font-family: var(--fonte); }
.grafico .rotulo-valor { fill: var(--ink-2); font-size: 10.5px; font-weight: 600; }
.dica-grafico {
  position: fixed; pointer-events: none; background: var(--surface-1); border: 1px solid var(--linha-forte);
  border-radius: 10px; padding: 9px 12px; font-size: 12.5px; box-shadow: var(--sombra);
  z-index: 300; opacity: 0; transition: opacity .1s; min-width: 150px;
}
.dica-grafico .dt { font-weight: 700; margin-bottom: 6px; font-size: 12px; }
.dica-grafico .dl { display: flex; align-items: center; gap: 7px; justify-content: space-between; margin-top: 3px; }
.dica-grafico .dl span { display: inline-flex; align-items: center; gap: 6px; color: var(--ink-2); }
.dica-grafico .dl b { font-variant-numeric: tabular-nums; }

.vazio { text-align: center; padding: 42px 20px; color: var(--ink-3); font-size: 13.5px; }
.carregando { display: grid; place-items: center; padding: 60px; color: var(--ink-3); }
.girando { width: 26px; height: 26px; border: 2.5px solid var(--linha); border-top-color: var(--marca); border-radius: 50%; animation: gira .7s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.barra-ferramentas { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.busca { padding: 8px 12px; background: var(--surface-1); border: 1px solid var(--linha); border-radius: 9px; min-width: 220px; outline: none; }
.busca:focus { border-color: var(--marca); }

/* ------------------------------------------------------ ANEXOS */
.lista-anexos { display: flex; flex-direction: column; gap: 7px; margin-bottom: 12px; }
.anexo {
  display: flex; align-items: center; gap: 11px; padding: 9px 11px;
  background: var(--surface-2); border: 1px solid var(--linha); border-radius: 10px;
}
.anexo-ico { font-size: 17px; flex: none; line-height: 1; }
.anexo-info { flex: 1; min-width: 0; }
.anexo-nome { font-size: 13px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.anexo-meta { font-size: 11.5px; color: var(--ink-3); }
.anexo-vazio { font-size: 12.5px; color: var(--ink-3); padding: 14px; text-align: center;
  border: 1px dashed var(--linha); border-radius: 10px; }
.area-solta {
  border: 1.5px dashed var(--linha-forte); border-radius: 11px; padding: 18px;
  text-align: center; cursor: pointer; transition: .15s; background: var(--surface-2);
}
.area-solta:hover { border-color: var(--marca); background: var(--surface-3); }
.area-solta.sobre { border-color: var(--marca); background: rgba(79,70,229,.12); }
.area-solta.enviando { opacity: .6; pointer-events: none; }
.solta-texto { display: block; font-size: 13px; color: var(--ink-2); }
.solta-dica { display: block; font-size: 11.5px; color: var(--ink-3); margin-top: 4px; }
.clipe-btn { font-size: 13px; padding: 4px 8px; line-height: 1; }
.clipe-btn.tem { border-color: var(--marca); color: var(--marca-2); background: rgba(79,70,229,.12); }

/* -------------------------------------------------------- DRE */
table.dre { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; }
table.dre th {
  text-align: right; font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em;
  color: var(--ink-3); font-weight: 700; padding: 9px 10px; white-space: nowrap;
  border-bottom: 1px solid var(--linha); background: var(--surface-1); position: sticky; top: 0; z-index: 2;
}
table.dre th:first-child { text-align: left; }
table.dre td { padding: 7px 10px; border-bottom: 1px solid var(--grade); text-align: right;
  font-variant-numeric: tabular-nums; white-space: nowrap; }
table.dre td:first-child { text-align: left; white-space: normal; }
table.dre tr.linha-grupo { cursor: pointer; }
table.dre tr.linha-grupo:hover td { background: var(--surface-2); }
table.dre tr.subtotal td { font-weight: 700; background: var(--surface-2); border-top: 1px solid var(--linha-forte); }
table.dre tr.total-dre td { font-weight: 800; font-size: 14px; background: var(--surface-3);
  border-top: 2px solid var(--linha-forte); border-bottom: 2px solid var(--linha-forte); }
table.dre tr.conta td { font-size: 12px; color: var(--ink-2); }
table.dre tr.conta td:first-child { padding-left: 32px; }
table.dre .neg { color: var(--critico); }
table.dre .pos { color: var(--bom); }
.seta-abre { display: inline-block; width: 13px; color: var(--ink-3); font-size: 10px; transition: transform .15s; }
.seta-abre.aberto { transform: rotate(90deg); }

/* --------------------------------------------- SELECAO EM LOTE */
.barra-selecao {
  position: fixed; bottom: 18px; left: 50%; transform: translateX(-50%); z-index: 60; display: flex; align-items: center; gap: 12px;
  background: var(--surface-1); border: 1px solid var(--marca); border-radius: 12px;
  padding: 11px 16px; box-shadow: 0 12px 34px -12px rgba(0,0,0,.55); margin-top: 14px; flex-wrap: wrap;
}
.barra-selecao b { color: var(--marca-2); }
tr.selecionada td { background: rgba(79,70,229,.12) !important; }
.chk { width: 15px; height: 15px; accent-color: var(--marca); cursor: pointer; }

/* ------------------------------------------------- CNPJ / FICHA */
.ficha-receita {
  background: var(--surface-2); border: 1px solid var(--linha); border-radius: 11px;
  padding: 13px 15px; margin-bottom: 14px; font-size: 12.5px;
}
.ficha-receita dl { display: grid; grid-template-columns: auto 1fr; gap: 5px 14px; margin: 0; }
.ficha-receita dt { color: var(--ink-3); }
.ficha-receita dd { margin: 0; font-weight: 500; }
.busca-cnpj { display: flex; gap: 8px; align-items: flex-end; }
.busca-cnpj .campo { flex: 1; margin-bottom: 0; }
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin-bottom: 18px; flex-wrap: wrap; }
.abas button {
  border: 0; background: none; padding: 9px 15px; cursor: pointer; font-size: 13px; font-weight: 600;
  color: var(--ink-3); border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.abas button.ativo { color: var(--ink); border-bottom-color: var(--marca); }

/* ------------------------- COMPARATIVO POR EMPRESA (blocos) */
.bloco-empresa {
  border: 1px solid var(--linha); border-radius: 11px; padding: 12px 14px; margin-bottom: 10px;
  background: var(--surface-2);
}
.bloco-empresa.consolidado { background: var(--surface-3); border-color: var(--linha-forte); }
.bloco-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.bloco-saldo { font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bloco-linhas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bloco-linhas > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.bloco-linhas span { font-size: 11px; color: var(--ink-3); text-transform: uppercase; letter-spacing: .04em; }
.bloco-linhas b { font-size: 14px; font-variant-numeric: tabular-nums; }
.bloco-linhas i { font-size: 11px; color: var(--critico); font-style: normal; }
