/* =====================================================================================
   PADRÃO VISUAL GONTIJO — folha de estilo de referência (extraída do sistema "Gerencial Gontijo")
   Use como base: tokens (:root) + componentes. Nomes de classe iguais aos do Gerencial para facilitar a comparação.
   ===================================================================================== */

:root{
  /* marca */
  --preto:#0A0A0A;            /* menu lateral, botão principal, aba ativa, cabeçalho de acumulado */
  --vermelho:#E11D2E;         /* destaque da marca: item ativo do menu, faixa dos filtros, botões de ação */
  /* superfícies e texto */
  --bg:#F7F7F8;               /* fundo da página */
  --card:#FFFFFF;
  --texto:#0A0A0A;
  --texto-2:#27272A;
  --muted:#71717A;            /* rótulos, legendas, texto secundário */
  --linha:#E4E4E7;            /* bordas de filtros, cards, tabelas */
  --linha-suave:#EFEFF1;
  --campo:#FAFAFA;            /* fundo de selects/inputs */
  /* semântica financeira (NÃO trocar o sentido) */
  --orcado:#B8B8BD;           /* orçado / budget / forecast / previsto: sempre cinza */
  --receita:#16834A;          /* receita e resultado bom */
  --despesa:#991B1B;          /* custos, impostos, investimentos e resultado ruim */
  --resultado:#18181B;        /* Ebitda realizado nos gráficos (neutro escuro) */
  --verde-bg:#F3FBF6;  --vermelho-bg:#FEF5F5;
  --aviso-bg:#FFF7ED;  --aviso-borda:#F59E0B;  --aviso-texto:#78350F;
  /* tabelas (estilo DRE) */
  --t-cab:#4A4A4A;            /* cabeçalho dos meses */
  --t-cab-aberto:#7A7A7A;     /* mês aberto */
  --t-acum:#0A0A0A;           /* acumulado e média */
  --t-base:#404040;           /* receita e linhas-base */
  --t-custo:#9B1C1C;          /* custos, impostos, investimentos */
  --t-resultado:#8C8C8C;      /* margens, Ebitda, resultados e linhas de % */
  --t-neutro:#6B6B6B;
  --sombra:0 1px 2px rgba(0,0,0,.045);
  --raio-card:13px; --raio-campo:7px;
  --fonte:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font:13px/1.45 var(--fonte);background:var(--bg);color:var(--texto);letter-spacing:-.005em}
a{color:#B3121F}

/* ---------- estrutura: menu lateral + conteúdo ---------- */
#app{display:grid;grid-template-columns:244px 1fr;min-height:100vh}
nav{background:var(--preto);border-right:1px solid #202024;position:sticky;top:0;height:100vh;overflow:auto}
nav .marca{padding:18px 16px 14px;min-height:78px;border-bottom:1px solid rgba(255,255,255,.07)}   /* logo branca/vermelha, altura 42px */
nav .itens{padding:10px 10px 16px}
.nav-grupo{margin:17px 11px 6px;color:var(--muted);font-size:9.5px;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:750}
nav a.item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:7px;color:#fff;margin-bottom:2px;font-size:12.5px;font-weight:550;text-decoration:none}
nav a.item:hover{background:#18181B}
nav a.item.ativo{background:var(--vermelho);color:#fff}
nav a.item svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}
main{padding:24px clamp(20px,2.4vw,36px) 64px;max-width:1760px;width:100%;margin:0 auto}
.topo{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.topo h2{margin:0;font-size:23px;line-height:1.15;font-weight:750;letter-spacing:-.035em}
.topo .sub{font-size:12.5px;color:var(--muted);margin-top:5px}
.chip{padding:4px 9px;border-radius:7px;font-size:10.5px;font-weight:650;background:#fff;border:1px solid var(--linha);color:var(--muted)}
.chip.green{color:#047857}.chip.gold{color:#B45309}

/* ---------- cards e indicadores ---------- */
.card{background:var(--card);border:1px solid rgba(0,0,0,.065);border-radius:var(--raio-card);padding:16px 17px;box-shadow:var(--sombra);margin-bottom:14px}
.card h3{margin:0 0 13px;font-size:12px;font-weight:700;color:var(--resultado)}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi{position:relative;min-height:112px;padding:16px 16px 14px}
.kpi::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--resultado)}
.kpi.green::before{background:var(--receita)}.kpi.red::before{background:var(--vermelho)}
.kpi .l{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.kpi .v{font-size:23px;font-weight:700;letter-spacing:-.045em;margin:7px 0 3px}
.kpi .d{font-size:11.5px;color:var(--muted)}
.pos{color:var(--receita)}.neg{color:var(--despesa)}.mut{color:var(--muted)}   /* bom = verde, ruim = vermelho */

/* ---------- barra de filtros compacta ---------- */
.filtros{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;padding:8px 12px 9px 10px;margin-bottom:14px;border:1px solid var(--linha);border-left:3px solid var(--vermelho);border-radius:10px;background:#fff;box-shadow:var(--sombra)}
.filtros .filtro-ico{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--preto);color:#fff}
.filtros label{display:flex;flex-direction:column;gap:2px;font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--muted)}
.filtros label select,.filtros label input{height:28px;min-width:132px;padding:3px 24px 3px 8px;font:inherit;font-size:11.5px;letter-spacing:0;text-transform:none;color:var(--texto);border:1px solid var(--linha);border-radius:var(--raio-campo);background:var(--campo)}
.filtros label.ativo{color:var(--vermelho)}
.filtros label.ativo select,.filtros label.ativo input{border-color:var(--vermelho);background:#FFF5F5;font-weight:600}   /* filtro em uso */

/* ---------- botões, abas, selos ---------- */
.btn{height:28px;padding:0 12px;border:1px solid var(--linha);border-radius:var(--raio-campo);background:#fff;color:var(--texto-2);font-size:11.5px;cursor:pointer}
.btn:hover{background:#F4F4F5}.btn.pri{background:var(--preto);border-color:var(--preto);color:#fff}.btn.bad{color:var(--vermelho)}
.seg{display:inline-flex;padding:2px;background:#fff;border:1px solid var(--linha);border-radius:8px}
.seg button{padding:5px 11px;border:0;border-radius:6px;background:transparent;font-size:11.5px;cursor:pointer}
.seg button.ativo{background:var(--preto);color:#fff}
.pill{display:inline-block;padding:1px 9px;border-radius:999px;font-size:10.5px}
.pill.ok{background:#E8F6EE;color:var(--receita)}.pill.bad{background:#FDECEC;color:var(--despesa)}.pill.warn{background:var(--aviso-bg);color:#B45309}
.banner{padding:9px 13px;border-radius:9px;border:1px solid var(--linha);background:#F4F4F5;font-size:12.5px}
.banner.warn{background:var(--aviso-bg);border-color:#FBD38D;color:#9A3412}.banner.ok{background:#F0FDF4;border-color:#BBF7D0;color:#166534}.banner.bad{background:#FEF2F2;border-color:#FECACA;color:#991B1B}

/* ---------- tabelas ---------- */
.tblwrap{border:1px solid var(--linha);border-radius:10px;overflow:auto}
table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}
th,td{padding:8px 10px;white-space:nowrap;text-align:right;border-bottom:1px solid #EAEAEC}
th{text-align:center!important;vertical-align:middle;font-size:10.5px;letter-spacing:.045em;text-transform:uppercase;font-weight:700}   /* TODOS os cabeçalhos centralizados */
td:first-child{text-align:left}
/* tabela simples (listas, lançamentos) */
.tbl-simple th{background:var(--t-cab);color:#fff}
.tbl-simple tr:hover td{background:#F4F4F5}
/* tabela hierárquica estilo DRE/DFC */
.tblwrap.dre thead th{background:var(--t-cab);color:#fff;border-left:1px solid rgba(255,255,255,.22)}
.tblwrap.dre thead th.aberto{background:var(--t-cab-aberto)}
.tblwrap.dre thead th.acum{background:var(--t-acum);border-left:3px solid #fff}
.tblwrap.dre tbody td{background:#fff;color:var(--texto);border-left:1px solid var(--linha)}
.tblwrap.dre tr.dre-pos td,.tblwrap.dre tr.dre-res td{background:var(--t-base);color:#fff;font-weight:700;border-left-color:rgba(255,255,255,.28);border-bottom:1px solid #fff}
.tblwrap.dre tr.dre-neg td{background:var(--t-custo);color:#fff;font-weight:700;border-left-color:rgba(255,255,255,.28);border-bottom:1px solid #fff}
.tblwrap.dre tr.dre-res2 td,.tblwrap.dre tr.pct.ind0 td{background:var(--t-resultado);color:#fff;border-left-color:rgba(255,255,255,.28);border-bottom:1px solid #fff}
.tblwrap.dre tr.pct.ind0 td{font-style:italic;font-weight:600}
.tblwrap.dre tr.dre-neu td{background:var(--t-neutro);color:#fff;font-weight:700}
.tblwrap.dre td.acum{border-left:3px solid #fff}
.tblwrap.dre tr.linha td.acum{background:#F1F1F2;font-weight:650}
/* regra de cor dos valores: negativo em linha de detalhe = vermelho */

/* ---------- gráficos (SVG simples de colunas) ---------- */
.chart text{fill:var(--muted);font-size:10.5px}
.legenda{display:flex;gap:5px 12px;font-size:11px;margin-top:9px}.legenda i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.tt{background:#fff;color:var(--texto-2);border:1px solid var(--linha);border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.18);padding:8px 12px;font-size:12px}
.info-i{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#F4F4F5;color:#52525B;font-size:10px;font-style:normal;cursor:help;position:relative}
.info-i:hover::after{content:attr(data-tip);position:absolute;left:22px;top:-6px;width:280px;max-width:min(290px,calc(100vw - 24px));background:#18181B;color:#fff;padding:8px 11px;border-radius:8px;font-weight:400;font-size:12px;line-height:1.4;z-index:60;text-transform:none;letter-spacing:0}

/* ---------- modais ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.52);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:100}
.modal{background:#fff;border-radius:14px;padding:20px;width:min(520px,92vw);box-shadow:0 24px 70px rgba(0,0,0,.28)}

/* ---------- rótulos de gráfico, unidade e seleção múltipla ---------- */
.unid-graf{margin:2px 0 0 4px;font-size:11px;font-style:italic;color:#52525B}
.msw{display:flex;flex-direction:column;gap:2px}.msw .msl{font-size:8.5px;letter-spacing:.09em;color:#71717A;text-transform:uppercase;font-weight:600}
.ms{position:relative}.ms-btn{width:148px;height:28px;padding:3px 24px 3px 8px;font-size:11.5px;border:1px solid #E4E4E7;border-radius:7px;background:#FAFAFA;text-align:left;color:#18181B;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msw.ativo .ms-btn{border-color:#E11D2E;background:#FFF5F5;font-weight:600}
.ms-pop{position:absolute;left:0;top:calc(100% + 4px);z-index:60;min-width:230px;max-width:340px;background:#fff;border:1px solid #E4E4E7;border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.16);padding:8px}.ms-pop[hidden]{display:none}
.ms-acoes{display:flex;justify-content:space-between;padding:2px 4px 6px;border-bottom:1px solid #EFEFF1;margin-bottom:4px}.ms-acoes a{font-size:11.5px;font-weight:600;color:#E11D2E;cursor:pointer}
.ms-lista{max-height:260px;overflow:auto}.ms-it{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;font-size:12px;color:#27272A;cursor:pointer}.ms-it:hover{background:#F4F4F5}.ms-it input{accent-color:#E11D2E;width:15px;height:15px}

/* ===== extras do DFC Logística ===== */
nav .marca{background:#fff;margin:12px;border-radius:10px;padding:10px 12px;min-height:0;border:0;display:block}
nav .marca img{width:100%;display:block}
nav .rodape{padding:12px 14px;border-top:1px solid rgba(255,255,255,.08);color:#A1A1AA;font-size:11.5px;margin-top:8px}
nav .rodape b{color:#fff;display:block;font-size:12.5px}
nav .rodape a{color:#fff;cursor:pointer;text-decoration:underline;margin-right:10px}
nav a.item{cursor:pointer}
input,select,textarea{font:inherit;font-size:12.5px}
.campo{display:flex;flex-direction:column;gap:3px;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:650;color:var(--muted);margin-bottom:11px}
.campo input,.campo select,.campo textarea{height:32px;padding:4px 9px;font-size:13px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--texto);border:1px solid var(--linha);border-radius:var(--raio-campo);background:var(--campo)}
.campo textarea{height:150px;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.campo input:focus,.campo select:focus,.campo textarea:focus,.filtros label input:focus,.filtros label select:focus{outline:2px solid #F5B5BA;border-color:var(--vermelho)}
.btn{height:32px;font-weight:550}
.btn.pri{background:var(--preto)}.btn.red{background:var(--vermelho);border-color:var(--vermelho);color:#fff}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.mini{height:24px;padding:0 8px;font-size:11px}
.modal{max-height:92vh;overflow:auto}.modal.largo{width:min(980px,95vw)}.modal.medio{width:min(720px,94vw)}
.modal h3{margin:0 0 14px;font-size:16px;letter-spacing:-.02em}
.modal .acoes{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.dois{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.login{min-height:100vh;display:grid;place-items:center;background:var(--preto)}
.login form{background:#fff;border-radius:16px;padding:28px;width:min(380px,92vw);box-shadow:0 24px 70px rgba(0,0,0,.4)}
.login img{width:100%;margin-bottom:10px}
.login h1{font-size:15px;margin:0 0 4px;text-align:center}.login p{margin:0 0 16px;color:var(--muted);text-align:center;font-size:12px}
.erro{color:var(--despesa);font-size:12px;min-height:16px;margin:2px 0 8px}
.tblwrap.dre{max-height:calc(100vh - 230px)}
.tblwrap.dre thead th{position:sticky;top:0;z-index:3}
.tblwrap.dre td:first-child,.tblwrap.dre th:first-child{position:sticky;left:0;z-index:2}
.tblwrap.dre thead th:first-child{z-index:4}
.tblwrap.dre tbody td:first-child{background:inherit;min-width:330px;max-width:420px;overflow:hidden;text-overflow:ellipsis}
.tblwrap.dre tr.linha td:first-child{background:#fff}
.tblwrap.dre tr.linha td:first-child{padding-left:30px}

.tblwrap.dre tr.grupo.sub td:first-child{padding-left:24px}
.tblwrap.dre td.clic{cursor:pointer}.tblwrap.dre td.clic:hover{outline:2px solid var(--vermelho);outline-offset:-2px}
.tblwrap.dre tr.sep td{height:10px;padding:0;background:var(--bg);border:0}
.tblwrap.dre tr.sim td{background:#FAFAFA}
.tblwrap.dre tr.sim.dif td{font-weight:700}
.tblwrap.dre td.neg0,.neg0{color:var(--despesa)}
.tblwrap.dre tr.dre-pos td.neg0,.tblwrap.dre tr.dre-neg td.neg0,.tblwrap.dre tr.dre-res td.neg0,.tblwrap.dre tr.dre-res2 td.neg0{color:#FFD0D0}
.tblwrap.dre tr.tit td{background:var(--preto);color:#fff;font-weight:700;letter-spacing:.04em;font-size:11px;text-transform:uppercase}
.tgl{cursor:pointer;display:inline-block;width:14px;color:var(--muted)}
.tblwrap.dre tr.dre-pos .tgl,.tblwrap.dre tr.dre-neg .tgl{color:#fff}
.tbl-simple td{text-align:left}.tbl-simple td.n,.tbl-simple th.n{text-align:right}
.tbl-simple td.c{text-align:center}
.tbl-simple td.desc{max-width:340px;overflow:hidden;text-overflow:ellipsis}
.tbl-simple tr.sel td{background:#FFF5F5}
.tbl-simple td select{max-width:230px;font-size:11.5px;padding:2px 4px;border:1px solid var(--linha);border-radius:6px;background:var(--campo)}
.tbl-simple td select.vazia{border-color:var(--vermelho);background:#FFF5F5}
.pill.inv{background:#FDECEC;color:var(--despesa)}
.barra-massa{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--preto);color:#fff;padding:9px 12px;border-radius:10px;margin-bottom:10px}
.barra-massa .btn{height:28px}
.barra-massa b{margin-right:6px}
.rod-tab{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.kpi{min-height:92px}
.chk{width:15px;height:15px;accent-color:var(--vermelho)}
.vazio{padding:36px;text-align:center;color:var(--muted)}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--preto);color:#fff;padding:10px 18px;border-radius:10px;z-index:200;font-size:13px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.toast.bad{background:var(--despesa)}
.lastro-tot{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0 12px;font-size:12.5px}
.ro{background:var(--aviso-bg);border:1px solid #FBD38D;color:#9A3412;padding:3px 9px;border-radius:7px;font-size:11px;font-weight:650}
.menu-mob{display:none}
@media (max-width:900px){
  #app{grid-template-columns:1fr}
  nav{position:static;height:auto}
  nav .marca{max-width:240px}
  nav .itens{display:flex;flex-wrap:wrap;gap:4px;padding:4px 10px 10px}
  .nav-grupo{display:none}
  .dois{grid-template-columns:1fr}
  .tblwrap.dre{max-height:none}
  .tblwrap.dre tbody td:first-child{min-width:210px}
  .g2{grid-template-columns:1fr}
}
@media print{nav,.filtros,.btn,.barra-massa{display:none!important}#app{display:block}.tblwrap.dre{max-height:none;overflow:visible}main{padding:0}}

/* ===== DFC: leitura limpa (v2) ===== */
.tblwrap.dre.dfc{max-height:calc(100vh - 130px);background:#fff}
.tblwrap.dre.dfc thead th{background:#0A0A0A;color:#fff;border-left:1px solid #26262b;min-width:78px}
.tblwrap.dre.dfc thead th:first-child{min-width:340px}
.tblwrap.dre.dfc thead th.acum{background:#0A0A0A;border-left:3px solid var(--vermelho)}
.tblwrap.dre.dfc tbody td{background:#fff;color:#27272A;border-left:1px solid #F0F0F2;border-bottom:1px solid #F0F0F2;font-size:12.5px}
.tblwrap.dre.dfc tbody td:first-child{border-left:0;border-right:2px solid #E4E4E7;min-width:340px;text-align:left}
.tblwrap.dre.dfc tbody td.acum{background:#FAFAFA;font-weight:650;border-left:2px solid #E4E4E7}
.tblwrap.dre.dfc tr.grupo td{background:#F1F1F3;color:#0A0A0A;font-weight:700;border-bottom:1px solid #E4E4E7}
.tblwrap.dre.dfc tr.grupo td.acum{background:#E9E9EC}
.tblwrap.dre.dfc tr.grupo.sub td{background:#FAFAFB;font-weight:650}
.tblwrap.dre.dfc tr.grupo.sub td:first-child{padding-left:28px}
.tblwrap.dre.dfc tr.grupo.sub td.acum{background:#F4F4F5}
.tblwrap.dre.dfc tr.linha td{background:#fff}
.tblwrap.dre.dfc tr.linha td:first-child{padding-left:50px;color:#3F3F46}
.tblwrap.dre.dfc tr.linha td.acum{background:#FAFAFA}
.tblwrap.dre.dfc tr.total td{background:#fff;color:#0A0A0A;font-weight:800;border-top:2px solid #0A0A0A;border-bottom:1px solid #0A0A0A}
.tblwrap.dre.dfc tr.total td.acum{background:#F1F1F3}
.tblwrap.dre.dfc tr.total.final td{background:#0A0A0A;color:#fff;border-color:#0A0A0A}
.tblwrap.dre.dfc tr.total.final td.neg0{color:#FF9A9A}
.tblwrap.dre.dfc tr.total.final .zero{color:#777}
.tblwrap.dre.dfc tr.pct td{background:#fff;color:#71717A;font-style:italic;font-size:11.5px}
.tblwrap.dre.dfc tr.pct td.acum{background:#FAFAFA}
.tblwrap.dre.dfc tr.sep td{height:14px;padding:0;background:var(--bg);border:0}
.tblwrap.dre.dfc tr.tit td{background:#fff;color:#B3121F;font-weight:700;text-transform:uppercase;letter-spacing:.07em;font-size:10.5px;border-top:2px solid #E4E4E7;padding-top:11px;text-align:left}
.tblwrap.dre.dfc tr.sim td{background:#fff}
.tblwrap.dre.dfc tr.sim td.acum{background:#FAFAFA}
.tblwrap.dre.dfc tr.sim.dif td{font-weight:800;background:#FFF8F8}
.tblwrap.dre.dfc td.neg0,.neg0{color:#B91C1C}
.tblwrap.dre.dfc td.clic:hover{background:#FFF1F2;box-shadow:inset 0 0 0 1px var(--vermelho);outline:none}
.zero{color:#C9C9CE}
.tgl{width:16px}
.tblwrap.dre.dfc tr.grupo .tgl{color:var(--vermelho);font-size:13px}

/* ===== Plano e saldos ===== */
.cab-card{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.cab-card h3{margin:0;font-size:14px}.esp{flex:1}
.tbl-simple tr.gr td{background:#F4F4F5;font-weight:600;border-top:1px solid #E4E4E7}
.explica{background:#F8F8F9;border-left:3px solid var(--vermelho);padding:10px 14px;border-radius:8px;font-size:12.5px;line-height:1.6;margin-bottom:12px;color:var(--texto-2)}
.tbl-simple td.n{text-align:right}

/* ===== Importar extrato ===== */
.drop{border:2px dashed #D4D4D8;border-radius:12px;padding:34px 20px;text-align:center;background:#FAFAFA;font-size:14px}
.drop.sobre{border-color:var(--vermelho);background:#FFF5F5}.drop.lendo{opacity:.55}
.link-arq{color:var(--vermelho);text-decoration:underline;cursor:pointer}
.barra-imp{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.barra-imp select{height:28px;border:1px solid var(--linha);border-radius:7px;background:var(--campo);font-size:12px}
.imp-id{width:100%;min-width:230px;height:28px;border:1px solid var(--linha);border-radius:6px;padding:0 8px;font:inherit;font-size:12px}
.imp-id.vazia,select.imp-cat.vazia{border-color:var(--vermelho);background:#FFF5F5}
tr.dup td{opacity:.55}

/* ===== Menu recolhível ===== */
#app{transition:grid-template-columns .18s ease}
nav{overflow-x:hidden}
nav .menu-btn{display:flex;align-items:center;gap:8px;margin:0 12px 4px;padding:7px 11px;background:transparent;border:1px solid rgba(255,255,255,.14);color:#D4D4D8;border-radius:7px;cursor:pointer;font:inherit;font-size:12px;width:calc(100% - 24px)}
nav .menu-btn:hover{background:#18181B;color:#fff}
nav .logo-mini{display:none}
#app.rec{grid-template-columns:64px 1fr}
#app.rec nav .txt,#app.rec nav .nav-grupo,#app.rec nav .rodape,#app.rec nav .logo-full{display:none}
#app.rec nav .logo-mini{display:block;width:36px;margin:0 auto;border-radius:6px}
#app.rec nav .marca{margin:10px 8px;padding:6px}
#app.rec nav a.item{justify-content:center;padding:10px 0}
#app.rec nav .menu-btn{margin:0 8px 4px;width:calc(100% - 16px);justify-content:center}
#app.rec .menu-btn .seta{transform-origin:12px 12px;transform:rotate(180deg)}
nav a.item .txt{white-space:nowrap}
@media (max-width:900px){nav .menu-btn{display:none}#app.rec{grid-template-columns:1fr}#app.rec nav .txt,#app.rec nav .nav-grupo{display:inline}}
nav .marca img.logo-mini{display:none}
#app.rec nav .marca img.logo-full{display:none}
#app.rec nav .marca img.logo-mini{display:block;width:36px;margin:0 auto}

/* ===== DFC com as cores originais da planilha ===== */
.tblwrap.dre.dfc{border-color:#B4C0D8}
.tblwrap.dre.dfc thead th{background:#1F3864;color:#fff;border-left:1px solid #3A5489}
.tblwrap.dre.dfc thead th.acum{background:#1F3864;border-left:2px solid #fff}
.tblwrap.dre.dfc tbody td{background:#fff;color:#1A1A1A;border-left:1px solid #E1E5EE;border-bottom:1px solid #E1E5EE}
.tblwrap.dre.dfc tbody td:first-child{border-right:2px solid #B4C0D8}
.tblwrap.dre.dfc tbody td.acum{background:#F7F8FB;border-left:1px solid #B4C0D8}
.tblwrap.dre.dfc tr.grupo td,.tblwrap.dre.dfc tr.grupo.sub td{background:#D9E1F2;color:#1F3864;font-weight:700;border-bottom:1px solid #fff}
.tblwrap.dre.dfc tr.grupo td.acum,.tblwrap.dre.dfc tr.grupo.sub td.acum{background:#D9E1F2}
.tblwrap.dre.dfc tr.grupo.maior td,.tblwrap.dre.dfc tr.grupo.maior td.acum{background:#2F5597;color:#fff}
.tblwrap.dre.dfc tr.grupo.maior td.neg0{color:#FFC7C7}
.tblwrap.dre.dfc tr.grupo.maior .tgl,.tblwrap.dre.dfc tr.grupo .tgl{color:inherit}
.tblwrap.dre.dfc tr.total td,.tblwrap.dre.dfc tr.total td.acum{background:#F2F2F2;color:#000;font-weight:700;border-top:1px solid #BFBFBF;border-bottom:1px solid #BFBFBF}
.tblwrap.dre.dfc tr.total.final td,.tblwrap.dre.dfc tr.total.final td.acum{background:#E2EFDA;color:#000;border-top:1px solid #A9D08E;border-bottom:1px solid #A9D08E}
.tblwrap.dre.dfc tr.total.final td.neg0{color:#C00000}
.tblwrap.dre.dfc tr.total.final .zero{color:#9AAF8C}
.tblwrap.dre.dfc tr.pct td,.tblwrap.dre.dfc tr.pct td.acum{background:#fff;color:#404040}
.tblwrap.dre.dfc tr.tit td{background:#D9E1F2;color:#1F3864;border-top:0;padding-top:8px;font-size:11px}
.tblwrap.dre.dfc tr.sim td.acum{background:#F7F8FB}
.tblwrap.dre.dfc tr.sim.dif td{background:#fff;font-style:italic;font-weight:600}
.tblwrap.dre.dfc td.neg0,.neg0{color:#C00000}
.tblwrap.dre.dfc td.clic:hover{background:#FFF2CC;box-shadow:inset 0 0 0 1px #BF9000}
.tblwrap.dre.dfc tr.sep td{background:#fff}
.chip-carga{display:inline-flex;gap:6px;align-items:center;background:#FFF5F5;border:1px solid var(--vermelho);border-radius:7px;padding:3px 9px;font-size:11.5px}
.chip-carga a{cursor:pointer;font-weight:700;color:var(--vermelho)}

.tblwrap.dre.dfc tr.sim.forte td,.tblwrap.dre.dfc tr.sim.forte td.acum{background:#F2F2F2;font-weight:700;border-top:1px solid #BFBFBF;border-bottom:1px solid #BFBFBF}
.tblwrap.dre.dfc tr.sim.dif td{color:#C00000}
.tblwrap.dre.dfc tr.sim.dif td.neg0{color:#C00000}

th.ord{cursor:pointer;user-select:none}
th.ord:hover{background:#5a5a5e}
th.ord .seta-ord{margin-left:5px;opacity:.45;font-size:9px}
th.ord.on .seta-ord{opacity:1;color:#fff}

.tblwrap.rolagem{max-height:calc(100vh - 300px);min-height:260px;overflow:auto}
.tblwrap.rolagem thead th{position:sticky;top:0;z-index:3}

/* detalhe do lastro: tudo visível, sem rolagem horizontal */
.modal.extra{width:min(1400px,97vw)}
.modal.extra .tblwrap{overflow-x:hidden}
.modal.extra table{table-layout:auto}
.modal.extra th,.modal.extra td{white-space:normal;padding:7px 8px;word-break:break-word}
.modal.extra td.desc{max-width:none;overflow:visible;text-overflow:clip}
.modal.extra td:nth-child(1),.modal.extra td.n,.modal.extra td.c,.modal.extra td .pill{white-space:nowrap}
.modal.extra th{white-space:nowrap;padding:7px 6px}
.modal.extra td .btn{white-space:nowrap}
.modal.extra td:last-child{white-space:nowrap}

.prog-barra{height:12px;background:#E4E4E7;border-radius:999px;overflow:hidden;margin:18px 0 8px}
.prog-barra i{display:block;height:100%;background:var(--vermelho);border-radius:999px;transition:width .2s}
.prog-linha{display:flex;justify-content:space-between;font-size:13px;color:var(--texto-2);margin-bottom:6px}
.prog-linha b{font-size:15px}
.prog-fim{display:flex;gap:14px;align-items:flex-start;padding:10px 0 4px;line-height:1.55}
.prog-ico{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:20px;font-weight:700}
.prog-fim.ok .prog-ico{background:var(--receita)}.prog-fim.bad .prog-ico{background:var(--despesa)}

.btn.ativo{border-color:var(--vermelho);background:#FFF5F5;color:#8B1019;font-weight:650}

.tbl-simple tr.gr.sec td{background:#D9E1F2;color:#1F3864;font-weight:700;border-top:2px solid #fff}
.tbl-simple tr.gr.sub td{background:#F4F4F5}
.tbl-simple tr.gr.sub td:first-child{padding-left:26px}

.tblwrap.dre.dfc tr.pct td{font-size:13.5px}

/* tela de login: mais respiro */
.login form{padding:44px 40px 36px;width:min(440px,92vw)}
.login img{width:78%;display:block;margin:0 auto 30px}
.login h1{font-size:17px;margin:0 0 8px}
.login p{margin:0 0 28px;font-size:13px}
.login .campo{margin-bottom:18px}
.login .erro{margin:0 0 14px}
.login .btn.pri{height:42px;font-size:14px;margin-top:4px}

/* Resultado de Caixa: mesmo padrão do cabeçalho do DFC */
.tblwrap.dre.dfc tr.total.final td,.tblwrap.dre.dfc tr.total.final td.acum{background:#1F3864;color:#fff;font-weight:700;border-top:0;border-bottom:0;border-left:1px solid #3A5489;font-size:13px}
.tblwrap.dre.dfc tr.total.final td:first-child{text-transform:uppercase;letter-spacing:.04em;font-size:12px;border-left:0}
.tblwrap.dre.dfc tr.total.final td.acum{border-left:2px solid #fff}
.tblwrap.dre.dfc tr.total.final td.neg0{color:#FFB4B4}
.tblwrap.dre.dfc tr.total.final .zero{color:#8FA3C7}

.tblwrap.dre.dfc{max-height:none}
.tblwrap.dre.dfc thead th{position:static}
