/* ═══════════════════════════════════════════════════════════
   Design system — Fiscalis
   Cores de identidade vêm da planilha oficial (tema do Excel):
     azul   #4F81BD  → Federal   (accent1 do tema)
     teal   #4BACC6  → Estadual  (accent5 do tema)
     laranja#F79646  → Municipal (accent6 do tema)
     oliva  #9BBB59  → cabeçalho de receita (accent3 do tema)
     dourado#FFC000  → Totais
     vermelho→ valores calculados (Fundeb/Fus/MDE/FMS/FMAS)
   Usadas como ACENTO (bordas, badges, ícones), nunca como
   preenchimento grande — é isso que separa "cores certas" de
   "bonito".
   ═══════════════════════════════════════════════════════════ */
html{color-scheme:light only;}
:root{
  --bg:#F3F4F7;
  --papel:#FFFFFF;
  --sidebar:#152238;
  --sidebar-hover:#1e304d;
  --borda:#E3E5EB;
  --texto:#1C2130;
  --dim:#707585;
  --dim-2:#646d7d;

  --federal:#4F81BD;
  --estadual:#3FA6BC;
  --municipal:#E8873A;
  --royalties:#C9A227;
  --oliva:#7FA33D;
  --oliva-suave:#EEF3E3;
  --dourado:#FFC000;
  --dourado-suave:#FFF6DC;
  --amarelo:#FDE94A;
  --vermelho:#C23B3B;

  --radius:12px;
  --sombra:0 1px 2px rgba(20,25,40,.04), 0 6px 20px rgba(20,25,40,.05);
}

@keyframes subir-suave{
  from{opacity:0; transform:translateY(8px);}
  to{opacity:1; transform:translateY(0);}
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
/* Entrada em cascata dos cards — só quando o container tem
   .anim-entrada (controlado pelo JS), nunca durante digitação,
   pra não piscar a cada tecla */
.anim-entrada > .card,
.anim-entrada > .stat,
.anim-entrada > .relatorio-wrap{
  animation:subir-suave .32s cubic-bezier(.16,1,.3,1) backwards;
}
.anim-entrada > *:nth-child(1){animation-delay:0ms;}
.anim-entrada > *:nth-child(2){animation-delay:55ms;}
.anim-entrada > *:nth-child(3){animation-delay:110ms;}
.anim-entrada > *:nth-child(4){animation-delay:165ms;}
.anim-entrada > *:nth-child(5){animation-delay:220ms;}

*{box-sizing:border-box}
html,body{height:100%;}
body{
  margin:0; background:var(--bg); color:var(--texto);
  font-family:'Sora',sans-serif;
  background-image:
    linear-gradient(var(--bg) 1px, transparent 1px);
  background-size: 100% 42px;
}
.app{display:flex; min-height:100vh;}

/* ── Sidebar ─────────────────────────────────────────────── */
.sidebar{
  width:236px; flex-shrink:0; background:var(--sidebar); color:#fff;
  padding:26px 18px; display:flex; flex-direction:column; gap:26px;
  position:sticky; top:0; height:100vh;
}
.marca{display:flex; align-items:center; gap:10px; padding:0 4px;}
.marca .selo-img{width:34px; height:34px; border-radius:8px; object-fit:cover; display:block; flex-shrink:0;}
.marca .nome{font-family:'Bebas Neue',sans-serif; font-size:19px; letter-spacing:.6px; line-height:1;}
.marca .ano{font-size:10.5px; color:#8fa0c2; margin-top:2px;}

.nav-grupo{display:flex; flex-direction:column; gap:2px;}
.nav-titulo{font-size:10px; letter-spacing:1px; color:#6d7fa0; text-transform:uppercase; padding:0 10px; margin-bottom:6px;}
.nav-item{
  display:flex; align-items:center; gap:10px; padding:9px 10px; border-radius:8px;
  font-size:13px; font-weight:600; color:#c3cde2; cursor:pointer;
  text-decoration:none;
}
.nav-item:hover{background:var(--sidebar-hover); color:#fff;}
.nav-item.ativo{background:var(--dourado); color:#3d2c00;}
.nav-item .dot{width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.6;}

.sidebar-rodape{padding:12px 10px; border-top:1px solid #26365520; font-size:10.5px; color:#5f719a;}

/* ── Resumo rápido na sidebar (preenche o espaço com informação real) ─ */
.sidebar-resumo{
  background:#0e1830; border:1px solid #24365a; border-radius:10px;
  padding:12px 14px; margin-top:auto;
}
.sidebar-resumo-titulo{
  font-size:10px; letter-spacing:.6px; text-transform:uppercase; color:#6d7fa0;
  font-weight:700; margin-bottom:8px;
}
.sidebar-resumo-linha{
  display:flex; justify-content:space-between; align-items:baseline; gap:8px;
  font-size:11.5px; color:#8fa0c2; padding:4px 0;
}
.sidebar-resumo-linha b{
  color:#e2e8f5; font-weight:700; font-variant-numeric:tabular-nums; font-size:12px;
  white-space:nowrap;
}
.sidebar-resumo-linha.destaque{
  border-top:1px dashed #24365a; margin-top:4px; padding-top:8px;
}
.sidebar-resumo-linha.destaque b{color:var(--dourado); font-size:13.5px;}

/* ── Cartão de perfil (usuário logado) ──────────────────────── */
.usuario-logado{
  display:flex; align-items:center; gap:10px;
  padding:10px; border-top:1px solid #26365520; margin-top:4px;
  background:#0e1830; border-radius:10px; border:1px solid #24365a;
}
.usuario-avatar{
  width:34px; height:34px; border-radius:9px; background:var(--dourado);
  color:#3d2c00; font-family:'Bebas Neue',sans-serif; font-size:16px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.usuario-info{flex:1; min-width:0;}
.usuario-nome{font-size:12.5px; font-weight:700; color:#e2e8f5; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.usuario-legenda{font-size:10px; color:#6d7fa0; margin-top:1px;}
.botao-sair{
  background:none; border:1px solid #3a4a6b; color:#c3cde2; border-radius:6px;
  padding:6px 9px; font-size:11px; font-weight:700; cursor:pointer; font-family:'Sora',sans-serif;
  flex-shrink:0;
}
.botao-sair:hover{border-color:var(--vermelho); color:#ff9a9a;}

/* ── Modal simples (novo usuário) ────────────────────────────── */
.modal-fundo{
  position:fixed; inset:0; background:rgba(10,14,25,.55); z-index:200;
  display:flex; align-items:center; justify-content:center; padding:20px;
}
.modal-caixa{
  background:#fff; border-radius:14px; padding:26px; width:100%; max-width:400px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);
}
.modal-caixa .mes-campo{margin-bottom:14px;}

/* ── Modal "Meus Arquivos" — janela tipo gerenciador de arquivo ─ */
.modal-arquivos{
  background:#fff; border-radius:14px; width:100%; max-width:680px; max-height:82vh;
  box-shadow:0 24px 70px rgba(0,0,0,.35); display:flex; flex-direction:column; overflow:hidden;
  animation:subir-suave .22s cubic-bezier(.16,1,.3,1) backwards;
}
.modal-arquivos-cabeca{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 20px; border-bottom:1px solid var(--borda);
}
.modal-arquivos-cabeca h2{
  margin:0; font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:.5px; color:var(--texto);
}
.modal-arquivos-fechar{
  background:none; border:1px solid var(--borda); border-radius:8px; width:30px; height:30px;
  cursor:pointer; color:var(--dim); font-size:14px; flex-shrink:0;
}
.modal-arquivos-fechar:hover{border-color:var(--vermelho); color:var(--vermelho);}
.modal-arquivos-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:12px 20px; border-bottom:1px solid var(--borda); background:var(--painel);
}
.modal-arquivos-corpo{padding:18px 20px; overflow-y:auto; flex:1;}

.grade-arquivos{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:14px;
}
.arquivo-icone-card{
  position:relative; display:flex; flex-direction:column; align-items:center; gap:6px;
  padding:14px 8px 10px; border-radius:10px; border:1.5px solid transparent; cursor:pointer;
  transition:.13s; text-align:center;
}
.arquivo-icone-card:hover{background:var(--painel); border-color:var(--borda);}
.arquivo-icone-card.arquivo-icone-ativo{background:var(--oliva-suave); border-color:var(--oliva);}
.arquivo-icone-svg{width:46px; height:56px; flex-shrink:0;}
.arquivo-icone-nome{
  font-size:11.5px; font-weight:700; color:var(--texto); line-height:1.25;
  word-break:break-word; max-width:100%;
}
.arquivo-icone-data{font-size:9.5px; color:var(--dim-2);}
.arquivo-icone-badge{
  font-size:8.5px; font-weight:800; background:var(--dourado); color:#4d3800;
  padding:1px 7px; border-radius:20px; letter-spacing:.2px;
}
.arquivo-icone-acoes{
  position:absolute; top:6px; right:6px; display:flex; gap:3px;
}
.arquivo-icone-acoes button{
  width:24px; height:24px; border-radius:6px; border:1px solid var(--borda); background:#fff;
  cursor:pointer; font-size:11px; color:var(--dim); padding:0; line-height:1;
  box-shadow:0 1px 3px rgba(20,25,40,.08);
}
.arquivo-icone-acoes button:hover{border-color:var(--vermelho); color:var(--vermelho); background:#fff;}
.arquivo-novo-card{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  padding:14px 8px; border-radius:10px; border:1.5px dashed var(--borda); cursor:pointer;
  color:var(--dim); font-size:11px; font-weight:700; min-height:96px; transition:.13s;
}
.arquivo-novo-card:hover{border-color:var(--oliva); color:var(--oliva); background:var(--oliva-suave);}
.arquivo-novo-card .mais{font-size:26px; line-height:1;}
.status-badge{
  display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700;
}
.status-badge.ativo{background:#EDF7EF; color:#256b39;}
.status-badge.inativo{background:#fdecec; color:var(--vermelho);}
.badge-admin{
  display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700;
  background:var(--dourado-suave); color:#6b5900;
}
.badge-usuario{
  display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:700;
  background:var(--painel); color:var(--dim);
}

/* ── Topbar mobile (só aparece em telas pequenas) ───────────── */
.topbar-mobile{
  display:none; align-items:center; justify-content:space-between;
  padding:12px 16px; background:var(--sidebar); color:#fff;
  position:sticky; top:0; z-index:60;
}
.topbar-mobile .marca .nome{font-size:16px;}
.topbar-mobile .marca .selo-img{width:28px; height:28px;}
.botao-menu{
  background:none; border:1px solid #3a4a6b; color:#fff; border-radius:8px;
  width:38px; height:38px; font-size:18px; cursor:pointer; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.backdrop-menu{display:none;}

@media (max-width:860px){
  .app{display:block;}
  .topbar-mobile{display:flex;}
  .sidebar{
    display:none; position:fixed; top:0; left:0; height:100vh; width:82%;
    max-width:300px; z-index:100; box-shadow:6px 0 30px rgba(0,0,0,.35);
  }
  .sidebar.aberta{display:flex;}
  .backdrop-menu.ativo{
    display:block; position:fixed; inset:0; background:rgba(10,14,25,.55);
    z-index:90;
  }
}

/* ── Área principal ──────────────────────────────────────── */
.main{flex:1; min-width:0; padding:30px 34px 90px;}
.topo{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:22px; flex-wrap:wrap; gap:12px;}
.topo h1{
  font-family:'Bebas Neue',sans-serif; letter-spacing:1px;
  font-size:30px; margin:0; color:var(--texto);
}
.topo .sub{color:var(--dim); font-size:13px; margin-top:3px;}
.status{font-size:12px; display:flex; align-items:center; gap:6px;}
.status .bolinha{width:7px; height:7px; border-radius:50%; background:var(--dim-2);}
.status.ok .bolinha{background:#2e9e5b;}
.status.ok{color:#2e9e5b;}
.status.erro .bolinha{background:var(--vermelho);}
.status.erro{color:var(--vermelho);}

.aviso{
  display:flex; gap:10px; align-items:flex-start;
  background:var(--dourado-suave); border:1px solid #f0d98a; color:#6b5900; font-size:12.5px;
  padding:12px 14px; border-radius:var(--radius); margin-bottom:22px;
}
.aviso code{background:#00000010; padding:1px 5px; border-radius:3px;}

/* ── Ações no cabeçalho (Salvar / Exportar) ─────────────────── */
.topo-acoes{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.botao-topo{
  display:flex; align-items:center; gap:6px; background:var(--papel); color:var(--texto);
  border:1px solid var(--borda); border-radius:8px; padding:8px 14px; font-size:12.5px;
  font-weight:700; cursor:pointer; font-family:'Sora',sans-serif; box-shadow:var(--sombra);
}
.botao-topo:hover{border-color:var(--dim-2);}
.botao-topo.primario-topo{background:var(--texto); color:#fff; border-color:var(--texto);}
.botao-topo.primario-topo:hover{background:#000;}

/* ── Indicador de arquivo aberto (sidebar) ──────────────────── */
.arquivo-ativo-widget{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:#0e1830; border:1px solid #24365a; border-radius:10px;
  padding:9px 12px; margin-top:8px; font-size:11.5px;
}
.arquivo-ativo-widget .nome-arquivo{
  color:#e2e8f5; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.arquivo-ativo-widget .rotulo-arquivo{color:#6d7fa0; font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; display:block; margin-bottom:2px;}
.arquivo-ativo-widget a{color:var(--dourado); font-weight:700; font-size:10.5px; text-decoration:none; flex-shrink:0;}
.arquivo-ativo-widget a:hover{text-decoration:underline;}

/* ── Impressão (Exportar PDF) — some com sidebar/ações, deixa só o conteúdo ─ */
/* ── Dashboard de totais ─────────────────────────────────── */
.dashboard{display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,320px)); gap:12px; margin-bottom:28px;}
.stat{
  background:var(--papel); border:1px solid var(--borda); border-radius:var(--radius);
  padding:16px 18px; box-shadow:var(--sombra); border-top:3px solid var(--dim-2);
  position:relative;
}
.stat:hover{box-shadow:0 4px 8px rgba(20,25,40,.06), 0 12px 28px rgba(20,25,40,.09);}
.stat.federal{border-top-color:var(--federal);}
.stat.estadual{border-top-color:var(--estadual);}
.stat.municipal{border-top-color:var(--municipal);}
.stat.royalties{border-top-color:var(--royalties);}
.stat.geral{
  background:var(--sidebar); border-top:3px solid var(--dourado); color:#fff;
  box-shadow:0 2px 4px rgba(20,25,40,.08), 0 14px 34px rgba(21,34,56,.28);
}
.stat.geral:hover{box-shadow:0 4px 10px rgba(20,25,40,.1), 0 18px 40px rgba(21,34,56,.32);}
.stat .rotulo{font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--dim); font-weight:700;}
.stat.geral .rotulo{color:#a9b6cf;}
.stat .valor{font-family:'Bebas Neue',sans-serif; font-size:26px; letter-spacing:.3px; margin-top:6px; color:var(--texto); font-variant-numeric:tabular-nums;}
.stat.geral .valor{color:#fff; font-size:34px;}
.stat .legenda{font-size:11px; color:var(--dim-2); margin-top:2px;}
.stat.geral .legenda{color:#7f8fb0;}

/* ── Tabs de esfera ──────────────────────────────────────── */
.tabs{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; background:var(--papel); padding:5px; border-radius:10px; border:1px solid var(--borda); width:100%;}
.tab{
  padding:10px 18px; border-radius:7px; cursor:pointer; font-size:13.5px; font-weight:700;
  color:var(--dim); display:flex; align-items:center; gap:7px;
}
.tab .chip{width:9px; height:9px; border-radius:50%; background:var(--dim-2);}
.tab[data-esfera="Federal"] .chip{background:var(--federal);}
.tab[data-esfera="Estadual"] .chip{background:var(--estadual);}
.tab[data-esfera="Municipal"] .chip{background:var(--municipal);}
.tab[data-esfera="Royalties"] .chip{background:var(--royalties);}
.tab.ativo{background:var(--texto); color:#fff;}
.tab.ativo .chip{background:#fff;}
.painel-esfera{display:none;}
.painel-esfera.ativo{display:block;}

/* ── Cards de lançamento ─────────────────────────────────── */
.card{
  background:var(--papel); border:1px solid var(--borda); border-radius:var(--radius);
  margin-bottom:12px; overflow:hidden; box-shadow:var(--sombra);
}
.card:hover{box-shadow:0 3px 6px rgba(20,25,40,.05), 0 10px 24px rgba(20,25,40,.07);}
.card-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; background:var(--oliva-suave); border-bottom:1px solid var(--borda);
}
.card-head h3{
  margin:0; font-size:12.5px; letter-spacing:.4px; text-transform:uppercase;
  color:#4a6323; font-weight:700; display:flex; align-items:center; gap:8px;
}
.card-head h3::before{content:""; width:8px; height:8px; border-radius:2px; background:var(--oliva);}
.card-head .total-linha{font-size:12px; color:#4a6323; font-weight:700; font-variant-numeric:tabular-nums;}

.tabela-wrap{padding:14px 16px; overflow-x:auto;}
.tabela-lancamento{width:100%; border-collapse:collapse; min-width:760px;}
.tabela-lancamento th, .tabela-lancamento td{padding:5px 4px; text-align:center; font-size:11.5px;}
.tabela-lancamento th{
  font-size:10px; color:var(--dim-2); text-transform:uppercase; letter-spacing:.4px;
  font-weight:700; padding-bottom:6px;
}
.tabela-lancamento th:first-child, .tabela-lancamento td:first-child{
  text-align:left; width:90px; font-weight:700; color:var(--dim);
  padding-right:8px;
}
.tabela-lancamento .linha-bruto td:first-child{color:var(--texto);}
.tabela-lancamento input.in-valor{
  width:100%; min-width:64px; background:#FAFBFC; border:1px solid var(--borda);
  color:var(--texto); border-radius:6px; padding:7px 6px; font-size:12.5px;
  text-align:right; font-family:'Sora',sans-serif; font-variant-numeric:tabular-nums;
}
.tabela-lancamento input.in-valor:hover{border-color:#c4c9d4;}
.tabela-lancamento input.in-valor:focus{
  outline:none; border-color:var(--oliva); background:#fff; box-shadow:0 0 0 3px var(--oliva-suave);
}
.tabela-lancamento tr:not(.linha-bruto) td{
  padding-top:6px; font-variant-numeric:tabular-nums; color:var(--dim);
}
.tabela-lancamento .linha-bruto td{font-variant-numeric:tabular-nums;}
.tabela-lancamento .linha-vermelha td{color:var(--vermelho);}
.tabela-lancamento .linha-vermelha td:first-child{color:var(--vermelho); font-weight:700;}
.tabela-lancamento .linha-prefeitura td{color:var(--texto); font-weight:700;}
.tabela-lancamento .linha-prefeitura td:first-child{color:var(--texto);}

.mes-campo{display:flex; flex-direction:column; gap:4px;}
.mes-campo label{
  font-size:11px; color:var(--dim-2); text-transform:uppercase;
  letter-spacing:.4px; font-weight:700; padding-left:1px;
}
input{
  width:100%; background:#FAFBFC; border:1px solid var(--borda);
  color:var(--texto); border-radius:6px; padding:9px 10px; font-size:14px;
  text-align:right; font-family:'Sora',sans-serif;
  font-variant-numeric:tabular-nums;
}
input:hover{border-color:#c4c9d4;}
input:focus{outline:none; border-color:var(--oliva); background:#fff; box-shadow:0 0 0 3px var(--oliva-suave);}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
input[type=number]{ -moz-appearance:textfield; }

/* ── Barra de ações (sticky no rodapé) ───────────────────── */
.acoes{
  position:sticky; bottom:0; margin:20px -34px -90px; padding:16px 34px;
  background:linear-gradient(to top, var(--bg) 60%, transparent);
  display:flex; gap:10px;
}
button{
  border:none; padding:12px 24px; border-radius:9px; font-weight:700;
  font-size:13.5px; cursor:pointer; letter-spacing:.2px; font-family:'Sora',sans-serif;
}
button.primario{background:var(--texto); color:#fff; box-shadow:var(--sombra);}
button.primario:hover{background:#000;}
button.secundario{background:var(--papel); color:var(--texto); border:1px solid var(--borda);}
button.secundario:hover{border-color:var(--dim-2);}

/* ── Resultado detalhado por esfera ──────────────────────── */
.resultados{margin-top:26px;}

h2.secao{
  font-family:'Bebas Neue',sans-serif; font-size:19px; letter-spacing:.5px;
  color:var(--texto); margin:0 0 2px;
}
.secao-sub{color:var(--dim); font-size:12px; margin-bottom:12px;}

@media (max-width:860px){
  .main{padding:18px 16px 40px;}
  .acoes{
    position:static; margin:20px 0 0; padding:0; background:none;
    flex-direction:column;
  }
  .acoes button{width:100%;}
}

/* ── Tabela de relatório (Evolução) — leitura, não digitação ─ */
.relatorio-wrap{
  background:var(--papel); border:1px solid var(--borda); border-radius:var(--radius);
  overflow:hidden; box-shadow:var(--sombra); margin-bottom:20px; position:relative;
}
.relatorio-scroll{overflow-x:auto;}
.relatorio-scroll::-webkit-scrollbar{height:8px;}
.relatorio-scroll::-webkit-scrollbar-thumb{background:var(--borda); border-radius:4px;}
/* sombra sutil na borda direita indicando que a tabela rola pros lados */
.relatorio-wrap::after{
  content:""; position:absolute; top:0; right:0; bottom:0; width:28px;
  background:linear-gradient(to right, transparent, rgba(0,0,0,.06));
  pointer-events:none; border-radius:0 var(--radius) var(--radius) 0;
}
table.relatorio{border-collapse:collapse; font-size:12px; width:100%; min-width:1060px;}
table.relatorio th{
  text-align:right; color:var(--dim); font-weight:700; padding:8px 10px;
  font-size:10px; white-space:nowrap; text-transform:uppercase; letter-spacing:.3px;
  background:#FAFBFC; border-bottom:2px solid var(--borda); position:sticky; top:0;
}
table.relatorio th:first-child, table.relatorio td:first-child{
  text-align:left; width:160px; min-width:160px;
  position:sticky; left:0; background:#FAFBFC; z-index:2;
}
table.relatorio td{
  padding:7px 10px; text-align:right; color:var(--texto); border-bottom:1px solid #EEF0F4;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
table.relatorio td:first-child{font-weight:600; font-size:11.5px; color:var(--dim); background:#fff;}
table.relatorio tr.total td{background:var(--dourado-suave); font-weight:700; color:#6b5900;}
table.relatorio tr.total td:first-child{background:var(--dourado-suave); color:#6b5900;}
table.relatorio tr.secao td{
  background:var(--amarelo); color:#5c4b00; font-weight:700; font-size:11.5px;
  text-transform:uppercase; letter-spacing:.4px; padding:9px 10px; text-align:center;
}
table.relatorio tr.vermelho td{color:var(--vermelho); font-weight:700;}
table.relatorio tr.vermelho td:first-child{color:var(--dim); font-weight:600;}
table.relatorio td.col-total{font-weight:700; border-left:2px solid var(--borda);}

/* ── Sub-campos dentro do card de lançamento (Bruto/Fundeb/Fus/Prefeitura) ─ */
.subcampo-label{
  padding:8px 16px 0; font-size:10.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:.4px; color:var(--dim);
}

/* ── Resumo de convênio (Valor Total/Medido/Pago/Saldo) ─────── */
.resumo-convenio{padding:12px 16px 14px; border-top:1px solid var(--borda);}
.resumo-convenio-linha{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:5px 0; font-size:12px; color:var(--dim);
}
.resumo-convenio-linha b{font-variant-numeric:tabular-nums; color:var(--texto); font-weight:700;}
.resumo-convenio-linha.vermelho b{color:var(--vermelho);}
.resumo-convenio-linha.destaque{border-top:1px dashed var(--borda); margin-top:4px; padding-top:9px;}
.resumo-convenio-linha.destaque b{font-size:14px;}

/* ── Tabela de despesas (linhas dinâmicas) ──────────────────── */
table.despesa-tabela th:first-child, table.despesa-tabela td:first-child{
  position:sticky; left:0; background:#fff; z-index:2; min-width:170px;
}
table.despesa-tabela .in-descricao{
  width:100%; border:1px solid var(--borda); border-radius:6px; padding:7px 9px;
  font-size:12.5px; font-family:'Sora',sans-serif; background:#FAFBFC;
}
table.despesa-tabela .in-descricao:focus{outline:none; border-color:var(--oliva); background:#fff;}
table.despesa-tabela input.in-valor{width:96px; padding:6px 7px; font-size:12px;}
.remover-linha{
  background:none; border:1px solid var(--borda); color:var(--vermelho); border-radius:7px;
  width:34px; height:34px; cursor:pointer; font-size:14px; padding:0;
}
.remover-linha:hover{background:#fdecec; border-color:var(--vermelho);}
.botao-detalhes{
  background:none; border:1px solid var(--borda); color:var(--dim); border-radius:7px;
  width:34px; height:34px; cursor:pointer; font-size:14px; padding:0; margin-right:4px;
}
.botao-detalhes:hover{border-color:var(--oliva); background:var(--oliva-suave);}
.botao-detalhes.tem-conteudo{border-color:var(--oliva); color:var(--oliva); background:var(--oliva-suave);}
.detalhes-painel{
  border-top:1px solid var(--borda); background:#FAFBFC; padding:14px 16px;
}
.detalhes-cabeca{
  display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;
  font-size:12px; font-weight:700; color:var(--dim);
}
.detalhes-cabeca button{
  background:none; border:1px solid var(--borda); border-radius:6px; width:24px; height:24px;
  cursor:pointer; color:var(--dim); font-size:11px;
}
.detalhes-cabeca button:hover{border-color:var(--vermelho); color:var(--vermelho);}
.detalhes-grid{display:flex; flex-wrap:wrap; gap:10px;}
.detalhes-grid .mes-campo{min-width:150px; flex:1;}
.detalhes-grid label{
  font-size:11px; color:var(--dim-2); text-transform:uppercase; letter-spacing:.4px;
  font-weight:700; padding-left:1px; display:block; margin-bottom:4px;
}
.detalhes-grid input{
  width:100%; background:#fff; border:1px solid var(--borda); border-radius:6px;
  padding:7px 9px; font-size:12.5px; font-family:'Sora',sans-serif;
}
.detalhes-grid input:focus{outline:none; border-color:var(--oliva);}
