html{scrollbar-gutter:stable}:root{--fundo:#f3f5f2;--superficie:#fff;--tinta:#17251f;--suave:#5c6b63;--linha:#e2e7e2;--primario:#0d5c4d;--primario-claro:#e3f0ec;--negativo:#b94139;--raio:14px;--sombra:0 1px 2px #17251f0d,0 4px 16px #17251f0f}*{box-sizing:border-box}body{margin:0;background:var(--fundo);color:var(--tinta);font:14px/1.5 Inter,system-ui,sans-serif}h1,h2,h3,strong{font-family:Sora,Inter,sans-serif}h1{margin:0;font-size:24px}h2{margin:0 0 14px;font-size:18px}p{color:var(--suave)}header{position:sticky;top:0;z-index:30;background:var(--superficie);border-bottom:1px solid var(--linha)}main{scroll-margin-top:90px}.card{position:relative;z-index:0}.header-inner,main{max-width:1280px;margin:auto;padding:16px 24px}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:10px}.brand>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--primario);color:#fff;font-weight:700}.brand small{display:block;color:var(--suave);font-size:10px;text-transform:uppercase;letter-spacing:.05em}.header-actions,.home-acoes{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.header-actions[hidden],.home-acoes[hidden]{display:none}button,input,select{font:inherit;border-radius:10px;min-height:42px}button{cursor:pointer;border:0;background:var(--primario);color:#fff;padding:0 15px;font-weight:700}button:hover{filter:brightness(.93)}button:disabled{opacity:.6;cursor:default;filter:none}button:focus-visible,input:focus-visible,select:focus-visible,.empresa-card:focus-visible{outline:3px solid #87b9aa;outline-offset:2px}.secondary{background:var(--superficie);border:1px solid var(--linha);color:var(--tinta)}input,select{border:1px solid var(--linha);background:#fff;padding:0 12px;color:var(--tinta)}.status{max-width:1232px;margin:12px auto;padding:10px 14px;border-radius:10px;background:#f9e9e7;color:var(--negativo)}.home-topo,.page-title{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap;margin:12px 0 22px}.home-topo p,.page-title p{margin:4px 0 0}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.empresa-card,.card,.form-card,.empty-card{background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra)}.empresa-card{grid-column:span 4;padding:18px;display:grid;gap:8px;cursor:pointer}.empresa-card small{color:var(--suave)}.empresa-mono{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--primario);color:#fff;font-weight:700}
.empresa-mono svg{width:20px;height:20px;fill:currentColor}
.form-card{display:grid;gap:13px;max-width:520px;padding:20px;margin:0 0 20px}.form-card label{display:grid;gap:6px;font-weight:700;font-size:13px}.form-error{margin:0;color:var(--negativo);font-weight:600}.empty,.empty-card{text-align:center;padding:36px}.empty-card h1{font-size:18px}.empty-card{max-width:560px;margin:48px auto}.company-form-view .page-title{margin:0 0 18px}.company-form-view .page-title p{font-size:12.5px}.page-title>div{flex:1;min-width:240px}.page-title>.icon-action{flex-shrink:0}.config-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.config-layout .form-card{max-width:none}.kpi-grid{margin-bottom:16px}.kpi{grid-column:span 3;padding:18px}.kpi label{color:var(--suave);font-weight:700;font-size:12px;text-transform:uppercase}.kpi strong{font-size:25px}.card{grid-column:span 6;padding:20px}.card.wide{grid-column:span 12}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--linha)}.list li:first-child{border:0}.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:var(--primario-claro);color:var(--primario);font-size:12px}.json{white-space:pre-wrap;overflow:auto;background:var(--fundo);padding:12px;border-radius:9px;font-size:12px}.tabela-empresas{width:100%;table-layout:fixed;border-collapse:collapse;background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);overflow:hidden;box-shadow:var(--sombra)}.tabela-empresas thead th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--suave);font-weight:700;padding:12px 16px;border-bottom:1px solid var(--linha)}.tabela-empresas tbody tr{cursor:pointer;border-top:1px solid var(--linha)}.tabela-empresas tbody tr:first-child{border-top:0}.tabela-empresas tbody tr:hover{background:var(--primario-claro)}.tabela-empresas tbody tr:focus-visible{outline:3px solid #87b9aa;outline-offset:-3px}.tabela-empresas td{padding:11px 16px;vertical-align:middle}.td-empresa{display:flex;align-items:center;gap:12px}.td-empresa strong{font-family:Sora,Inter,sans-serif}.tabela-empresas .empresa-mono{width:38px;height:38px;font-size:14px}.td-acoes{text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:12px}.td-acoes .icon-action{width:34px;min-width:34px;min-height:34px;padding:0}.td-acoes .icon-action svg{width:16px;height:16px}.td-acoes .icon-action.danger{border-color:var(--linha);color:var(--suave)}.td-acoes .icon-action.danger:hover{border-color:var(--negativo);color:var(--negativo);background:#fdf5f4}.td-acoes button{min-height:34px;padding:0 12px;font-size:13px}.row-arrow{color:var(--suave);font-size:17px;line-height:1}.tabela-empresas tbody tr:hover .row-arrow{color:var(--primario)}@media(max-width:720px){.tabela-empresas th:nth-child(2),.tabela-empresas td:nth-child(2),.tabela-empresas th:nth-child(3),.tabela-empresas td:nth-child(3){display:none}.header-inner,main{padding:14px}.header-actions{width:100%}.header-actions select{flex:1;min-width:130px}.empresa-card,.card,.card.wide,.kpi{grid-column:span 12}.config-layout{grid-template-columns:1fr}.home-acoes{width:100%}.home-acoes input{flex:1;min-width:160px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}



/* ===== Dashboard v2 — layout espelhando o mockup de referência ===== */
[hidden]{display:none!important}
:root{--positivo:#148f6b;--positivo-claro:#e1f3ec;--negativo-claro:#f9e9e7;--atencao:#b8862b;--atencao-claro:#f7eedc}
.toggle-regime{display:inline-flex;background:var(--fundo);border:1px solid var(--linha);border-radius:10px;padding:3px;gap:2px}
.toggle-regime[hidden]{display:none}
.fluxo-controles{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.legenda-custom{display:flex;align-items:center;gap:16px;font-size:12.5px;font-weight:600;color:var(--suave)}
.legenda-custom span{white-space:nowrap}
.toggle-opcao{min-height:36px;border:0;background:transparent;color:var(--suave);font-weight:600;font-size:12.5px;padding:6px 14px;border-radius:8px}
.toggle-opcao:hover{color:var(--tinta);background:transparent;filter:none}
.toggle-opcao[aria-pressed=true]{background:var(--primario);color:#fff}
.span-12{grid-column:span 12}.span-8{grid-column:span 8}.span-6{grid-column:span 6}.span-4{grid-column:span 4}
.kpi{display:flex;flex-direction:column;gap:6px}
.kpi strong{letter-spacing:-.01em}
.kpi strong.negativo{color:var(--negativo)}
.kpi-variacao{margin-top:2px;font-size:12px;font-weight:600;display:inline-flex;gap:5px;align-items:center;padding:3px 9px;border-radius:99px;width:fit-content}
.kpi-variacao.pos{background:var(--positivo-claro);color:var(--positivo)}
.kpi-variacao.neg{background:var(--negativo-claro);color:var(--negativo)}
.kpi-variacao small{font-weight:500;color:var(--suave)}
.card-titulo{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:Sora,Inter,sans-serif;font-size:18px;font-weight:700;margin-bottom:4px}
.card-sub{margin:0 0 16px;font-size:12px;color:var(--suave)}
.selo{font-size:11px;font-weight:600;padding:3px 9px;border-radius:99px;background:var(--primario-claro);color:var(--primario);white-space:nowrap}
.area-grafico{position:relative;height:300px}.area-grafico.baixa{height:250px}
/* ranking de categorias */
.rank-lista{display:flex;flex-direction:column;gap:14px;margin-top:4px}
.rank-topo{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px}
.rank-nome{font-size:12.5px;font-weight:500;color:var(--tinta)}
.rank-valores{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.rank-valor{font-size:12.5px;font-weight:600}
.rank-pct{font-size:11px;font-weight:600;color:var(--suave);min-width:38px;text-align:right}
body.modal-open{overflow:hidden}
.empresa-logo{object-fit:contain;background:#fff;border:1px solid var(--linha)}.brand>.empresa-mono{width:48px;height:48px;border-radius:12px}.logo-config-row{display:flex;align-items:center;gap:14px;padding:12px;border:1px solid var(--linha);border-radius:12px;background:var(--superficie)}.logo-preview{width:72px;height:72px;flex:0 0 72px;border-radius:12px;display:grid;place-items:center;overflow:hidden;font-size:18px}.logo-preview img{width:100%;height:100%;object-fit:contain;background:#fff}.logo-config-actions{display:grid;gap:8px}.logo-config-actions p{margin:0;font-size:12px}.logo-config-actions div{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:520px){.logo-config-row{align-items:flex-start}.logo-config-actions{flex:1}.logo-config-actions button{padding:0 10px}}
.rank-barra{height:8px;background:var(--fundo);border-radius:99px;overflow:hidden}
.rank-barra>div{height:100%;border-radius:99px;background:var(--primario)}
.rank-item:first-child .rank-barra>div{background:var(--negativo)}
.rank-item:first-child .rank-pct{color:var(--negativo)}
.rank-total{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--linha);font-size:12.5px;font-weight:600}
.rank-total strong{font-family:Sora,Inter,sans-serif;font-size:15px}
/* contas a pagar / receber */
.card-contas{padding:0;overflow:hidden}
.contas-cabecalho{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--linha)}
.contas-corpo{padding:16px 20px 20px}
.contas-icone{width:30px;height:30px;border-radius:9px;flex:0 0 30px;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff}
.contas-titulo{font-family:Sora,Inter,sans-serif;font-size:14px;font-weight:600}
.contas-legenda{font-size:11.5px;color:var(--suave);display:block}
.card-contas.receber .contas-cabecalho{background:var(--positivo-claro)}
.card-contas.receber .contas-icone{background:var(--positivo)}
.card-contas.receber{border-top:3px solid var(--positivo)}
.card-contas.pagar .contas-cabecalho{background:var(--negativo-claro)}
.card-contas.pagar .contas-icone{background:var(--negativo)}
.card-contas.pagar{border-top:3px solid var(--negativo)}
.contas-id{min-width:0;flex:1}
.contas-hero{text-align:right;white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end}
.contas-hero strong{font-family:Sora,Inter,sans-serif;font-size:20px;font-weight:700;letter-spacing:-.01em}
.contas-hero span{font-size:11px;color:var(--suave);font-weight:500}
.card-contas.receber .contas-hero strong{color:var(--positivo)}
.card-contas.pagar .contas-hero strong{color:var(--negativo)}
.contas-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.chip-filtro{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid var(--linha);border-radius:99px;background:var(--superficie);color:var(--suave);font-size:12px;font-weight:600;transition:border-color .15s,background-color .15s,color .15s}
.chip-filtro:hover:not(:disabled){filter:none;border-color:var(--primario);color:var(--tinta)}
.chip-filtro:disabled{opacity:.45;cursor:default}
.chip-num{min-width:18px;padding:0 5px;border-radius:99px;background:var(--fundo);color:var(--suave);font-size:11px;font-weight:700;text-align:center}
.chip-filtro[aria-pressed=true]{background:var(--primario);border-color:var(--primario);color:#fff}
.chip-filtro[aria-pressed=true] .chip-num{background:#ffffff2e;color:#fff}
.chip-filtro.alerta{border-color:var(--negativo);color:var(--negativo)}
.chip-filtro.alerta .chip-num{background:var(--negativo-claro);color:var(--negativo)}
.chip-filtro.alerta[aria-pressed=true]{background:var(--negativo);border-color:var(--negativo);color:#fff}
.chip-filtro.alerta[aria-pressed=true] .chip-num{background:#ffffff2e;color:#fff}
.contas-ferramentas{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.contas-ferramentas input[type=search]{flex:1;min-width:0;min-height:36px}
.contas-ordem{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--suave);text-transform:uppercase;letter-spacing:.04em}
.contas-ordem select{min-height:36px;font-size:12.5px}
.tabela-wrap{height:340px;overflow-y:auto;overflow-x:hidden;border:1px solid var(--linha);border-radius:10px}
.card-contas table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.card-contas th{text-align:left;font-size:11px;font-weight:600;color:var(--suave);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;border-bottom:1px solid var(--linha);position:sticky;top:0;background:var(--superficie);z-index:1}
.card-contas td{padding:10px;border-bottom:1px solid var(--linha);vertical-align:top}
.card-contas tbody tr:hover td{background:var(--fundo)}
.card-contas td:first-child{overflow-wrap:anywhere}
.card-contas th:nth-child(2),.card-contas td:nth-child(2){width:112px}
.card-contas th:nth-child(3),.card-contas td:nth-child(3){width:110px}
.card-contas td.dir,.card-contas th.dir{text-align:right}
.venc-data{display:block}
.venc-prazo{display:block;font-size:11px;font-weight:600;margin-top:2px}
.venc-prazo.vencido{color:var(--negativo)}
.venc-prazo.hoje{color:var(--atencao)}
.venc-prazo.proximo{color:var(--primario)}
.venc-prazo.aberto{color:var(--suave)}
.contas-vazio{margin:0;padding:28px 10px;text-align:center;font-size:12.5px;color:var(--suave)}
.contas-rodape{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:var(--suave);font-weight:600}
.rodape-total{display:inline-flex;align-items:baseline;gap:8px;color:var(--suave)}
.rodape-total strong{font-family:Sora,Inter,sans-serif;font-size:15px;color:var(--tinta)}
@media(max-width:860px){
  .contas-cabecalho{flex-wrap:wrap}
  .contas-id{flex:1 1 60%}
  .contas-hero{flex:1 1 100%;align-items:flex-start;text-align:left;padding-left:40px}
  .contas-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -20px 12px;padding:0 20px 4px}
  .contas-chips::-webkit-scrollbar{display:none}
  .chip-filtro{flex:0 0 auto}
  .contas-ferramentas{flex-direction:column;align-items:stretch}
  .contas-ordem{justify-content:space-between}
  .contas-ordem select{flex:1;max-width:60%}
  .contas-rodape{flex-direction:column;align-items:flex-start;gap:4px}
  .tabela-wrap{height:auto;max-height:340px}
  .card-contas table{font-size:12px}
  .card-contas th,.card-contas td{padding:8px 6px}
  .card-contas th:nth-child(2),.card-contas td:nth-child(2){width:31%}
  .card-contas th:nth-child(3),.card-contas td:nth-child(3){width:30%;white-space:nowrap}
}
/* DRE */
.card-dre .dre-cabecalho{flex:0 0 auto;background:var(--superficie)}
.card-dre .dre-corpo{margin-top:4px}
.dre-pendentes{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;margin-bottom:12px;font-size:12.5px;font-weight:600}
.dre-pendentes.alerta{background:var(--atencao-claro);color:var(--atencao);border:1px solid var(--atencao)}
.dre-pendentes.ok{background:var(--positivo-claro);color:var(--positivo)}
.dre-pendentes button{min-height:34px;padding:0 14px;font-size:12.5px}
.dre-linha{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:9px 10px;border-bottom:1px solid var(--linha);font-size:13px;text-align:left;background:transparent;border-radius:0;color:var(--tinta);font-weight:400;min-height:0}
.dre-linha .nome{color:var(--suave)}
.dre-linha.grupo{background:var(--fundo);border-radius:8px;border-bottom:none;margin-top:8px}
.dre-linha.grupo .nome{font-weight:600;color:var(--tinta)}
button.dre-linha.grupo{cursor:pointer;border:0}
button.dre-linha.grupo:hover{filter:brightness(0.97)}
button.dre-linha.sub{cursor:pointer;border:0;border-bottom:1px solid var(--linha)}
button.dre-linha.sub:hover{background:var(--fundo);filter:none}
.dre-linha.sub .nome{padding-left:6px;color:var(--tinta);font-weight:500}
.dre-seta{display:inline-block;transition:transform .15s;font-size:10px;color:var(--suave)}
button.dre-linha.sub[aria-expanded=true] .dre-seta{transform:rotate(90deg)}
button.dre-linha.grupo[aria-expanded=true] .dre-seta{transform:rotate(90deg)}
.estrutura-toggle[aria-expanded=true] .dre-seta{transform:rotate(90deg)}
.dre-linha.grupo.estrutura-fluxo-linha{cursor:grab;padding:0 10px 0 0}
.dre-linha.grupo.estrutura-fluxo-linha:active{cursor:grabbing}
.dre-linha.grupo.estrutura-fluxo-linha:hover{filter:brightness(.97)}
.dre-linha.grupo.estrutura-fluxo-linha .estrutura-toggle{padding:9px 0 9px 10px;cursor:pointer}
.dre-linha.grupo.estrutura-fluxo-linha .estrutura-coluna-conta{flex-shrink:0}
.dre-linha.grupo.estrutura-fluxo-linha.dragging{opacity:.5}
.dre-subgrupos[hidden]{display:none}
.toggle-detalhe .toggle-opcao{padding:6px 12px;display:grid;place-items:center}
.dre-barras{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:16px}
.dre-barras i{display:block;height:2px;border-radius:1px;background:currentColor;opacity:.28}
.dre-barras i:nth-child(1){width:7px}
.dre-barras i:nth-child(2){width:11px}
.dre-barras i:nth-child(3){width:16px}
.dre-barras[data-nivel="1"] i:nth-child(1){opacity:1}
.dre-barras[data-nivel="2"] i:nth-child(1),.dre-barras[data-nivel="2"] i:nth-child(2){opacity:1}
.dre-barras[data-nivel="3"] i{opacity:1}
.dre-linha.cat{padding-left:32px;font-size:12.5px;background:var(--fundo)}
.dre-linha.total{background:var(--primario-claro);border-radius:8px;border-bottom:none;margin-top:6px}
.dre-linha.total .nome,.dre-linha.total .num{font-weight:700;color:var(--primario)}
.dre-linha.total.final{margin-top:14px;padding:12px 10px;font-size:14.5px;border:1px solid var(--primario)}
.dre-linha.total.final .nome,.dre-linha.total.final .num{font-weight:800}
.dre-linha .num{font-weight:600}
.dre-linha .valores{display:flex;align-items:baseline;gap:10px}
.dre-linha .pct{font-size:11px;color:var(--suave);font-weight:500;min-width:44px;text-align:right}
.neg-txt{color:var(--negativo)}
.num{font-variant-numeric:tabular-nums}
@media(max-width:1024px){.span-8,.span-4,.span-6{grid-column:span 12}.kpi{grid-column:span 6}}
dialog.import-success{border:0;border-radius:var(--raio);box-shadow:0 20px 60px #17251f33;padding:28px;max-width:400px;width:calc(100% - 40px);background:var(--superficie);color:var(--tinta);animation:dlg-in .22s cubic-bezier(.16,1,.3,1)}
dialog.import-success::backdrop{background:#17251f70;backdrop-filter:blur(3px);animation:dlg-backdrop-in .22s ease-out}
dialog.import-success h2{margin:0 0 10px;font-size:19px;font-family:Sora,Inter,sans-serif;letter-spacing:-.01em}
dialog.import-success p{margin:0 0 22px;color:var(--suave);font-size:14px;line-height:1.5}
dialog.import-alert{border-top:4px solid var(--negativo);text-align:center}
dialog.import-alert h2,dialog.import-alert>p{text-align:center}
dialog.import-alert label{display:grid;gap:6px;margin-bottom:16px;font-weight:700;font-size:13px;text-align:left}
dialog.import-alert .confirm-label-text{white-space:nowrap}
dialog.import-alert input{width:100%;transition:border-color .15s ease-out,box-shadow .15s ease-out}
dialog.import-alert input:focus-visible{border-color:var(--primario);box-shadow:0 0 0 3px #0d5c4d26;outline:none}
dialog.import-alert .alert-icon{width:48px;height:48px;margin:0 auto 14px;border-radius:50%;background:var(--negativo-claro);color:var(--negativo);display:grid;place-items:center}
dialog.import-alert .alert-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
dialog.import-alert button.danger{background:var(--negativo);border:0;color:#fff}
dialog.import-alert button.danger:hover:not(:disabled){filter:brightness(.9);box-shadow:0 6px 16px #b9413933}
dialog.import-alert button.danger:disabled{opacity:1;background:var(--negativo-claro);color:var(--negativo)}
@keyframes dlg-in{from{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}
@keyframes dlg-backdrop-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){dialog.import-success{animation:none}dialog.import-success::backdrop{animation:none}}
#dlgRenomearEstrutura label{display:grid;gap:6px;margin-bottom:16px;font-weight:700;font-size:13px}
#dlgRenomearEstrutura input{width:100%}
.import-resumo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 22px}
.import-resumo dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--suave);font-weight:700;margin:0 0 4px}
.import-resumo dd{margin:0;font-family:Sora,Inter,sans-serif;font-weight:700;font-size:15px;color:var(--tinta)}
.import-resumo-total{grid-column:1/-1;background:var(--primario-claro);border-radius:10px;padding:10px 12px}
.import-resumo-total dd{font-size:22px;color:var(--primario)}
.modal-acoes{display:flex;gap:10px;justify-content:flex-end}
.modal-acoes button{padding:0 20px}
.import-loading{text-align:center}
.import-loading .spinner{width:36px;height:36px;margin:0 auto 16px;border:3px solid var(--linha);border-top-color:var(--primario);border-radius:50%;animation:spin .7s linear infinite}
.import-loading p{margin:0;color:var(--tinta);font-weight:600;font-size:15px}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:600px){.kpi{grid-column:span 12}}
dialog.dlg-vincular{border:0;border-radius:var(--raio);box-shadow:0 12px 40px #17251f2e;padding:24px;width:min(860px,calc(100% - 40px));max-width:none;max-height:min(85vh,760px);background:var(--superficie);color:var(--tinta);display:flex;flex-direction:column;gap:14px}
dialog.dlg-vincular:not([open]){display:none}
dialog.dlg-vincular::backdrop{background:#17251f66}
.toast-sucesso{position:fixed;right:24px;bottom:24px;z-index:100;min-width:320px;padding:16px 20px;border:1px solid #b8ddcf;border-radius:12px;background:var(--primario-claro);color:var(--primario);box-shadow:var(--sombra);font-size:16px;font-weight:700;text-align:center}
.toast-sucesso[hidden]{display:none}
@media(max-width:600px){.toast-sucesso{left:16px;right:16px;bottom:16px;min-width:0}}
.dlg-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.dlg-topo h2{margin:0 0 4px;font-size:19px}
.dlg-topo p{margin:0;font-size:12.5px}
.dlg-abas{display:inline-flex;background:var(--fundo);border:1px solid var(--linha);border-radius:10px;padding:3px;gap:2px;width:fit-content}
.dlg-aba{min-height:34px;border:0;background:transparent;color:var(--suave);font-weight:600;font-size:12.5px;padding:0 14px;border-radius:8px}
.dlg-aba:hover{background:transparent;filter:none;color:var(--tinta)}
.dlg-aba[aria-selected=true]{background:var(--primario);color:#fff}
.dlg-aba-badge{opacity:.7;font-weight:500}
.dlg-filtros{display:flex;gap:8px;margin:10px 0}
.dlg-filtros input[type=search]{flex:1;min-height:36px;font-size:13px;padding:0 10px;border:1px solid var(--linha);border-radius:8px;background:var(--fundo)}
.dlg-filtros select{min-height:36px;font-size:13px;border:1px solid var(--linha);border-radius:8px;background:var(--fundo)}
.dlg-corpo{flex:1;overflow-y:auto;scrollbar-gutter:stable;border:1px solid var(--linha);border-radius:10px}
.tabela-vinculos{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px}
.tabela-vinculos th{position:sticky;top:0;background:var(--superficie);text-align:left;font-size:11px;font-weight:600;color:var(--suave);text-transform:uppercase;letter-spacing:.05em;padding:10px;border-bottom:1px solid var(--linha);z-index:1}
.tabela-vinculos td{padding:8px 10px;border-bottom:1px solid var(--linha);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabela-vinculos td.dir,.tabela-vinculos th.dir{text-align:right}
.tabela-vinculos th:nth-child(2),.tabela-vinculos td:nth-child(2){width:80px}
.tabela-vinculos th:nth-child(3),.tabela-vinculos td:nth-child(3){width:44%}
.tabela-vinculos select{width:100%;min-height:36px;font-size:12.5px}
@media(max-width:640px){dialog.dlg-vincular{padding:16px}.dlg-filtros{flex-direction:column}.tabela-vinculos th:nth-child(2),.tabela-vinculos td:nth-child(2){display:none}}
.estrutura-view{display:flex;flex-direction:column;gap:16px}
.estrutura-td-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start;margin-top:12px}
.estrutura-td-card{background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);padding:0;display:flex;flex-direction:column;overflow:hidden}
.estrutura-td-card-cab{display:flex;align-items:center;padding-right:14px;border-bottom:1px solid var(--linha)}
.estrutura-td-total{margin:12px 16px 4px;font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.estrutura-td-lista{margin:8px 0 0;padding:2px;list-style:none;display:flex;flex-direction:column;gap:0;font-size:13px;color:var(--suave);max-height:min(30vh,280px);overflow-y:auto}
.estrutura-td-item{padding:12px 16px}
.estrutura-td-item .nome{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estrutura-td-card-lanc{flex-shrink:0;font-size:11.5px;color:var(--suave);font-variant-numeric:tabular-nums;white-space:nowrap}
.estrutura-td-vazio{margin:0;padding:20px 16px;text-align:center;font-size:12.5px;color:var(--suave);font-style:italic}
@media (max-width:900px){.estrutura-td-cards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.estrutura-td-cards{grid-template-columns:1fr}}
.estrutura-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.estrutura-toolbar input[type="search"]{min-width:220px}
.card-titulo .titulo-busca{flex:0 1 260px;min-width:180px;min-height:36px;font-size:13px;font-weight:400;font-family:Inter,system-ui,sans-serif}
.estrutura-macros{display:flex;flex-direction:column;gap:0}
.dre-pendentes-wrap{margin-bottom:12px;border-radius:var(--raio);overflow:hidden;border:1px solid var(--atencao)}
.dre-pendentes-wrap .estrutura-semvinculo-cab{background:var(--atencao-claro);border:0;padding:12px 18px}
.dre-pendentes-wrap .estrutura-semvinculo-cab .nome{color:var(--atencao);font-weight:700}
.dre-pendentes-wrap .estrutura-semvinculo-cab .estrutura-coluna-conta{color:var(--atencao);margin-right:2px}
.dre-pendentes-wrap .dre-cats{background:#fdfaf3;min-height:60px;padding:8px;max-height:min(34vh,360px);overflow-y:auto}
.dre-pendentes-wrap .dre-linha.cat{background:var(--superficie);border-radius:8px;margin-bottom:4px;border-bottom:0;padding:12px 16px}
.dre-pendentes-wrap .dre-linha.cat:last-child{margin-bottom:0}
.dre-pendentes-wrap .estrutura-semvinculo-vazio{background:transparent}
.dre-subgrupos{display:flex;flex-direction:column}
.estrutura-coluna{margin:0}
.estrutura-coluna+.estrutura-coluna{border-top:1px solid var(--linha)}
.estrutura-coluna-cab{cursor:grab;background:var(--superficie);border-left:3px solid var(--linha);display:flex;align-items:stretch;gap:0;padding:0;transition:background-color .15s,border-color .15s}
.estrutura-coluna-cab:hover{background:var(--fundo);border-left-color:var(--primario)}
.estrutura-coluna-cab:active{cursor:grabbing}
.estrutura-toggle{flex:1;display:flex;align-items:baseline;gap:8px;background:none;border:0;padding:9px 14px 9px 10px;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:0;min-width:0}
button.estrutura-toggle.dre-linha.grupo{width:100%;cursor:pointer}
.estrutura-toggle .nome{display:flex;align-items:baseline;gap:6px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estrutura-coluna-conta{margin-left:auto;padding-left:10px;font-size:11px;color:var(--suave);font-weight:600;flex-shrink:0}
.estrutura-coluna-corpo{min-height:56px;background:var(--fundo);padding:2px}
.estrutura-coluna-corpo:empty{min-height:0}
.estrutura-coluna-corpo[hidden]{display:none}
.estrutura-semvinculo-vazio{margin:0;padding:14px;text-align:center;font-size:12px;color:var(--suave);font-style:italic}
.estrutura-rename-btn{align-self:center;flex-shrink:0;margin:0 10px 0 4px;width:30px;min-width:30px;height:30px;border-radius:8px;background:transparent;border:1px solid transparent;color:var(--suave)}
.estrutura-rename-btn svg{width:15px;height:15px}
.estrutura-rename-btn:hover{background:var(--primario-claro);color:var(--primario);border-color:var(--primario)}
.estrutura-card{cursor:grab;background:transparent;border-bottom:1px dashed var(--linha);transition:background-color .12s,transform .12s}
.estrutura-card:last-child{border-bottom:0}
.estrutura-card:hover{background:var(--superficie)}
.estrutura-card:active{cursor:grabbing}
.estrutura-card.dragging{opacity:.35;background:var(--primario-claro)}
.estrutura-coluna-corpo,.estrutura-coluna-cab,.dre-pendentes-wrap .dre-cats{transition:background-color .12s,box-shadow .12s,border-color .12s}
.estrutura-coluna-corpo.estrutura-drop-hover{background:var(--primario-claro);box-shadow:inset 0 0 0 2px var(--primario);border-radius:8px}
.estrutura-coluna-corpo.estrutura-drop-hover .estrutura-card{border-color:var(--primario)}
.dre-pendentes-wrap .dre-cats.estrutura-drop-hover{background:var(--atencao-claro);box-shadow:inset 0 0 0 2px var(--atencao)}
.estrutura-card .nome{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estrutura-card select{flex-shrink:0;width:auto;min-width:170px;max-width:220px;min-height:32px;font-size:11.5px;border-radius:8px;padding-right:26px}
.estrutura-add{margin:8px 10px 10px}
.estrutura-add>button{min-height:38px;font-size:12.5px}
.estrutura-add-form{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}
.estrutura-add-form input[type="text"],.estrutura-add-form select{min-height:38px;font-size:12.5px}
.estrutura-add-form input[type="text"]{flex:1;min-width:120px}
.estrutura-add-form button{min-height:38px;font-size:12.5px}

.estrutura-totais-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--linha);border-radius:9px;background:var(--superficie);cursor:grab}
.estrutura-totais-item:active{cursor:grabbing}
.estrutura-totais-item.dragging{opacity:.5}
.estrutura-totais-item.grupo{background:var(--fundo);color:var(--suave);font-weight:600}
.estrutura-totais-item.total{border-left:3px solid var(--primario);background:var(--primario-claro)}
.estrutura-totais-item .nome{display:flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estrutura-totais-item .nome small{color:var(--suave);font-weight:500;overflow:hidden;text-overflow:ellipsis}
.estrutura-totais-acoes{display:flex;gap:6px;flex-shrink:0}
.estrutura-totais-acoes .icon-action{width:30px;min-width:30px;min-height:30px;height:30px;font-size:13px}
.estrutura-macros .estrutura-totais-item{margin:8px 0}
.estrutura-grupo-automatico{margin:0;padding:10px 12px;font-size:12px;color:var(--suave);font-style:italic}

.company-form-view{max-width:960px}.company-form-view .page-title{margin-left:0;margin-right:0}.company-form-card{max-width:none;margin:0;padding:28px;gap:18px}.company-form-card h2{margin:0;padding-bottom:14px;border-bottom:1px solid var(--linha)}.company-fields{display:grid;grid-template-columns:2fr 1fr;gap:16px}.profile-field{display:grid;gap:10px;font-weight:700;font-size:13px}.profile-field>label{color:var(--suave);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.profile-switch-list{border:1px solid var(--linha);border-radius:10px;overflow:hidden}.profile-switch-row{min-height:54px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--linha);font-size:14px;font-weight:500;background:var(--superficie)}.profile-switch-row:first-child{border-top:0}.profile-switch-row:hover{background:var(--fundo)}.toggle{width:52px;height:28px;min-height:28px;flex:0 0 52px;padding:0;border:0;border-radius:999px;background:#d4d6d8;position:relative;transition:background .18s}.toggle::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #17251f26;transition:transform .18s}.toggle.on{background:var(--primario)}.toggle.on::after{transform:translateX(24px)}.toggle:focus-visible{outline:3px solid #87b9aa;outline-offset:3px}.profile-switch-row #cfgDataInicio{max-width:170px}.form-hint{margin:2px 2px 0;font-size:12px;font-weight:400}.company-form-card button[type=submit]{margin-top:6px;justify-self:start;padding:0 28px}.company-form-actions{display:flex;align-items:center;gap:6px}@media(max-width:640px){.company-fields{grid-template-columns:1fr}.company-form-card{padding:20px}.company-form-card>button[type=submit]{justify-self:stretch}.company-form-actions{display:grid;grid-template-columns:1fr}.company-form-actions button{width:100%}}

/* fluxo de caixa: barras (resultado) + área do saldo no mesmo plano, eixos duplos alinhados */
.painel-fluxo{position:relative;height:340px;margin-top:2px}
.fluxo-resumo{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--linha);border:1px solid var(--linha);border-radius:12px;overflow:hidden;margin:0 0 16px}
.rz-item{background:var(--superficie);padding:12px 15px;display:flex;flex-direction:column;gap:3px}
.rz-lab{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
.rz-val{font-family:Sora,Inter,sans-serif;font-size:21px;font-weight:700;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.rz-val.rz-neg{color:var(--negativo)}.rz-val.rz-pos{color:var(--positivo)}
.rz-hint{font-size:11px;color:var(--suave);font-variant-numeric:tabular-nums}
@media(max-width:720px){.header-inner{flex-wrap:wrap}}
@media(max-width:600px){.fluxo-cabecalho{align-items:stretch;flex-direction:column}.fluxo-controles{align-items:flex-start;gap:10px;min-width:0}.legenda-custom{width:100%;gap:10px;flex-wrap:wrap}.painel-fluxo{height:340px}.fluxo-resumo{grid-template-columns:repeat(2,1fr)}.rz-val{font-size:18px}}

.icon-label{justify-content:center!important;gap:8px}.icon-label svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-action{width:42px;min-width:42px;padding:0;display:grid;place-items:center}.icon-action svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
/* seletor de período (navegação por mês + card de período personalizado) */
.periodo{position:relative;display:flex;align-items:center;gap:0;border:1px solid var(--linha);border-radius:10px;padding:3px;background:var(--superficie)}
.periodo-rot{font-size:11px;font-weight:700;color:var(--suave);text-transform:uppercase;letter-spacing:.04em;padding:0 10px 0 8px;border-right:1px solid var(--linha)}
.periodo-controle{display:flex;align-items:center;gap:4px;padding:0 0 0 3px}
.periodo-nav,.periodo-atual{border:0;background:transparent;color:var(--tinta);border-radius:8px}
.periodo-nav{width:30px;min-height:36px;align-self:stretch;padding:0;font-size:17px;line-height:1;color:var(--suave)}
.periodo-nav:hover:not(:disabled),.periodo-atual:hover{filter:none;background:var(--primario-claro);color:var(--primario)}
.periodo-nav:disabled{opacity:.35;cursor:default}
.periodo-atual{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;font-size:14px;font-weight:700;color:var(--primario);white-space:nowrap;line-height:1;min-width:17ch}
.periodo-atual[aria-expanded=true]{background:var(--primario-claro)}
.periodo-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:5;width:max-content;max-width:min(94vw,380px);padding:16px;background:var(--superficie);border:1px solid var(--linha);border-radius:12px;box-shadow:0 10px 28px #17251f1f}
.periodo-pop[hidden]{display:none}
.periodo-pop::before{content:"";position:absolute;top:-6px;left:30px;width:11px;height:11px;background:var(--superficie);border-left:1px solid var(--linha);border-top:1px solid var(--linha);transform:rotate(45deg)}
.periodo-campos{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:8px}
.periodo-campos label{min-width:0;display:grid;gap:5px;font-size:11px;font-weight:600;color:var(--suave)}
.periodo-campos input{width:100%;min-width:0;min-height:38px;padding:0 8px;font-size:13px;font-variant-numeric:tabular-nums}
.periodo-ate{height:38px;display:flex;align-items:center;font-size:12px;color:var(--suave)}
.periodo-erro{margin:10px 0 0;font-size:12px;font-weight:600;color:var(--negativo)}
.periodo-acoes{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.periodo-acoes button{min-height:36px;padding:0 16px;font-size:13px;font-weight:600;border-radius:8px}
@media(max-width:720px){.periodo{width:100%;flex-wrap:wrap}.periodo-controle{flex:1}.periodo-atual{flex:1;justify-content:center}.periodo-pop{width:100%;max-width:none}}

/* date picker: substitui popup nativo por calendário consistente com cockpit */
.date-picker{position:relative;display:inline-flex;min-width:156px}.date-picker__trigger{width:100%;min-height:40px;padding:0 10px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--superficie);border:1px solid var(--linha);border-radius:9px;color:var(--tinta);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;box-shadow:none}.date-picker__trigger:hover,.date-picker__trigger[aria-expanded=true]{background:var(--primario-claro);border-color:#b9d9ce;filter:none}.date-picker__trigger svg{width:17px;height:17px;fill:none;stroke:var(--primario);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.date-picker__popover{position:absolute;top:calc(100% + 9px);right:0;z-index:20;width:286px;padding:12px;background:var(--superficie);border:1px solid var(--linha);border-radius:14px;box-shadow:0 16px 34px #17251f20}.date-picker__header{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;margin-bottom:10px}.date-picker__header strong{text-align:center;font-family:Sora,Inter,sans-serif;font-size:12px;color:var(--tinta)}.date-picker__nav{width:30px;min-height:30px;padding:0;border-radius:50%;background:transparent;color:var(--suave);font-size:21px;font-weight:400;line-height:1}.date-picker__nav:hover{background:var(--primario-claro);color:var(--primario);filter:none}.date-picker__week,.date-picker__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.date-picker__week{margin-bottom:4px}.date-picker__week span{padding:2px 0;color:var(--suave);font-size:10px;font-weight:700;text-transform:uppercase}.date-picker__day{min-height:34px;padding:0;border-radius:8px;background:transparent;color:var(--tinta);font-size:12px;font-weight:600}.date-picker__day:hover{background:var(--primario-claro);color:var(--primario);filter:none}.date-picker__day.is-outside{color:#a9b3ad;font-weight:500}.date-picker__day.is-today:not(.is-selected){box-shadow:inset 0 0 0 1px #8cc2b1;color:var(--primario)}.date-picker__day.is-selected{background:var(--primario);color:#fff;box-shadow:0 3px 7px #0d5c4d38}.date-picker__footer{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid var(--linha)}.date-picker__text{min-height:30px;padding:0 6px;background:transparent;color:var(--suave);font-size:12px;font-weight:700}.date-picker__text:hover{background:transparent;color:var(--tinta);filter:none}.date-picker__text.is-primary{color:var(--primario)}.profile-switch-row .date-picker{min-width:170px}.periodo-campos .date-picker{min-width:0;width:100%}.periodo-campos .date-picker__popover{right:auto;left:0}.periodo-campos .date-picker__trigger{min-height:38px;font-size:12px}@media(max-width:520px){.date-picker__popover{width:min(286px,calc(100vw - 32px))}.periodo-campos .date-picker__popover{left:50%;transform:translateX(-50%)}}

/* Permite que o calendário aberto ultrapasse a lista de configurações. */
.profile-switch-list:has(.date-picker__popover:not([hidden])){overflow:visible}
.profile-switch-row .date-picker__popover{top:auto;bottom:calc(100% + 9px)}
.date-picker__popover.is-up{top:auto;bottom:calc(100% + 9px)}
.date-picker__popover.is-left{right:auto;left:0}

/* Controles do extrato: alinhamento, hierarquia e feedback tátil consistentes. */
.profile-switch-row .date-picker,.profile-switch-row .secondary{width:170px;min-width:170px}.profile-switch-row .date-picker__trigger,.profile-switch-row .secondary{min-height:40px;border:1px solid #cdded7;border-radius:10px;box-shadow:0 1px 1px #17251f08,0 3px 8px #17251f08;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease}.profile-switch-row .secondary{display:inline-flex;align-items:center;justify-content:flex-start;text-align:left;padding:0 14px;background:#fbfdfc;color:var(--tinta);font-size:13px;font-weight:700}.profile-switch-row .secondary:hover{transform:translateY(-1px);background:var(--primario-claro);border-color:#9dcdbd;box-shadow:0 5px 12px #0d5c4d1a;filter:none}.profile-switch-row .secondary:active{transform:translateY(0);box-shadow:0 1px 3px #0d5c4d1a}.profile-switch-row #btnConfigImportar{background:var(--primario-claro);color:var(--primario);border-color:#afd8ca}.profile-switch-row .date-picker__trigger{box-shadow:0 1px 1px #17251f08,0 3px 8px #17251f08}.profile-switch-row .date-picker__trigger:hover{transform:translateY(-1px);box-shadow:0 5px 12px #0d5c4d1a}@media(max-width:640px){.profile-switch-row .date-picker,.profile-switch-row .secondary{width:100%;min-width:0}}
.profile-switch-row .date-picker__trigger{justify-content:center;gap:8px;padding:0 12px}.profile-switch-row .date-picker__trigger svg{order:-1}

/* Perfil TD: leitura executiva de valor bruto, caixa recebido e custo da antecipação. */
.card-td{min-width:0;border-top:3px solid var(--primario);padding:22px}.td-cabecalho{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.td-cabecalho h2{margin:2px 0 3px;font-size:19px}.td-cabecalho p{margin:0;font-size:12px}.td-sobrelinha{display:block;color:var(--primario);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.td-periodo{flex:0 0 auto;padding:7px 10px;border:1px solid var(--linha);border-radius:8px;color:var(--suave);font-size:11px;font-weight:600}.td-indicadores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--linha);border-radius:11px;overflow:hidden;margin-bottom:18px}.td-indicadores>div{min-width:0;padding:15px 16px;border-right:1px solid var(--linha);display:flex;flex-direction:column}.td-indicadores>div:last-child{border:0}.td-indicadores small{color:var(--suave);font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.td-indicadores strong{margin:6px 0 2px;font-size:clamp(17px,1.55vw,22px);letter-spacing:-.02em;overflow-wrap:anywhere}.td-indicadores span{color:var(--suave);font-size:10.5px}.td-indicadores .td-negativo,.td-indicador--perda strong{color:var(--negativo)}.td-indicadores .td-indicador--perda{background:var(--negativo-claro)}.td-grafico{min-width:0;padding:18px;border:1px solid var(--linha);border-radius:11px}.td-grafico__topo{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px}.td-grafico h3{margin:0 0 2px;font-size:15px}.td-grafico p{margin:0;font-size:11px}.td-legenda{display:flex;gap:14px;color:var(--suave);font-size:10.5px;white-space:nowrap}.td-legenda span{display:flex;align-items:center;gap:5px}.td-legenda i{width:9px;height:9px;border-radius:2px}.td-legenda__liquido{background:var(--primario)}.td-legenda__custo{background:var(--negativo)}.td-meses{display:grid;gap:18px}.td-mes{min-width:0}.td-mes__topo{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:7px}.td-mes__topo>strong{font-size:13px;text-transform:capitalize}.td-mes__topo>span{color:var(--suave);font-size:10.5px}.td-mes__topo b{color:var(--tinta);font-size:12.5px}.td-barra{display:flex;width:100%;height:38px;overflow:hidden;border-radius:8px;background:var(--fundo)}.td-barra>span{min-width:0}.td-barra__liquido{display:flex;align-items:center;padding-left:11px;background:var(--primario);color:#fff;white-space:nowrap;overflow:hidden}.td-barra__liquido b{font-size:11.5px;text-overflow:ellipsis;overflow:hidden}.td-barra__custo{background:var(--negativo)}.td-barra--vazia{border:1px dashed var(--linha)}.td-mes__legendas{display:flex;justify-content:space-between;gap:12px;margin-top:5px;font-size:10.5px}.td-mes__legendas span:first-child{color:var(--primario)}.td-mes__legendas span:last-child{color:var(--negativo);text-align:right}.td-destaque{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding:13px 15px;border-radius:9px;background:var(--negativo-claro);font-size:12px}.td-destaque>strong{color:var(--negativo);font-size:17px;white-space:nowrap}.td-rodape{display:flex;justify-content:space-between;gap:18px;margin-top:12px;color:var(--suave);font-size:10.5px}.td-rodape b{color:var(--tinta)}
@media(max-width:900px){.td-indicadores{grid-template-columns:repeat(2,minmax(0,1fr))}.td-indicadores>div:nth-child(2){border-right:0}.td-indicadores>div:nth-child(-n+2){border-bottom:1px solid var(--linha)}}
@media(max-width:700px){.card-td{min-width:0;padding:17px}.td-cabecalho,.td-grafico__topo,.td-destaque,.td-rodape{align-items:flex-start;flex-direction:column}.td-periodo{margin-top:4px}.td-indicadores{grid-template-columns:repeat(2,minmax(0,1fr))}.td-indicadores>div{padding:13px 12px}.td-indicadores strong{font-size:17px}.td-grafico{padding:14px}.td-legenda{white-space:normal;flex-wrap:wrap}.td-barra{height:34px}.td-barra__liquido{padding-left:7px}.td-barra__liquido b{font-size:10px}.td-mes__topo{align-items:flex-start}.td-mes__topo>span{text-align:right}.td-mes__legendas{font-size:10px}.td-destaque{gap:4px}.td-destaque>strong{font-size:15px;white-space:normal}.td-rodape{gap:4px}}

/* consolidação gerencial */
.home-consolidations{margin-top:34px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.section-heading h2{margin:0}.section-heading p{margin:4px 0 0}.consolidated-badge{display:inline-flex;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--primario-claro);color:var(--primario);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.consolidated-warning{margin:0 0 16px;padding:13px 16px;border:1px solid #dfc688;border-left:4px solid var(--atencao);border-radius:10px;background:var(--atencao-claro);color:#765718;font-weight:600}.consolidation-form-view{max-width:768px}.consolidation-form-card{max-width:none;margin:0;padding:28px;gap:18px}.consolidation-form-card h2{margin:0;padding-bottom:14px;border-bottom:1px solid var(--linha)}.consolidation-company-list{display:grid;gap:8px}.consolidation-member-control{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border:1px solid var(--linha);border-radius:10px;background:var(--superficie);cursor:pointer}.consolidation-member-control:hover{background:var(--fundo)}.consolidation-member-control input{width:18px;height:18px}.consolidation-member-control span{display:grid}.consolidation-member-control small,.company-origin{display:block;color:var(--suave);font-size:11px;font-weight:500}.consolidation-member-control.disabled{cursor:not-allowed;opacity:.62}.consolidation-memberships>span:last-child{max-width:55%;text-align:right;color:var(--suave)}
@media(max-width:720px){.section-heading{align-items:stretch;flex-direction:column}.section-heading button{width:100%}.home-consolidations{margin-top:26px}.consolidation-memberships{align-items:flex-start;flex-direction:column}.consolidation-memberships>span:last-child{max-width:none;text-align:left}}


/* exclusão de empresa/consolidação */
.danger-zone{margin-top:8px;padding-top:18px;border-top:1px solid var(--linha)}.danger-zone label{color:var(--negativo)}.danger-zone .profile-switch-list{border-color:#e3a8a2}.danger-zone .profile-switch-row{background:#faeae8}.danger-zone .danger{border-width:1.5px}.chip{display:inline-block;max-width:260px;padding:5px 12px;border-radius:999px;background:var(--primario-claro);color:var(--primario);font-size:12px;font-weight:700;text-transform:none;letter-spacing:normal;white-space:normal;line-height:1.35;text-align:right}.form-footer{margin-top:4px;padding-top:18px;border-top:1px solid var(--linha);display:flex;justify-content:flex-end}.form-footer button[type=submit]{margin-top:0}
button.danger{background:var(--superficie);border:1px solid var(--negativo);color:var(--negativo)}
button.danger:hover{background:var(--negativo-claro);filter:none}
.estrutura-savebar{position:sticky;bottom:0;background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 -4px 16px #17251f1a}


/* ===== Layout do dashboard — grid livre + modo edição ===== */
.dashboard-grid{position:relative;display:block;column-gap:16px;min-height:0}
.dashboard-grid>[data-module]{position:absolute;left:0;top:0;min-width:0;margin:0;align-self:start;box-sizing:border-box;display:flex;flex-direction:column}
.dashboard-grid .kpi{min-width:0;padding:16px 18px;justify-content:flex-start}
.dashboard-grid .kpi label{font-size:11.5px;letter-spacing:.04em;line-height:1.3}
.dashboard-grid .kpi strong{font-size:clamp(18px,1.55vw,25px);overflow-wrap:anywhere}
.dashboard-grid .kpi .kpi-variacao{font-size:11.5px;padding:3px 8px}
/* Região rolável interna preenche só o espaço após os cabeçalhos do card
   (flex:1 + min-height:0). Antes usava max-height:100%, que ignorava a altura
   de título/subtítulo/alerta e fazia o conteúdo vazar pela borda inferior. */
[data-module="dre"] .dre-corpo{flex:1 1 0;min-height:0;overflow:auto}
/* O gráfico acompanha a altura do card em vez de ficar preso nos 340px fixos,
   que deixavam espaço morto ao aumentar o módulo. */
[data-module="fluxo-caixa"] .painel-fluxo{flex:1 1 0;min-height:260px;height:auto}
[data-module="contas-receber"] .contas-corpo,[data-module="contas-pagar"] .contas-corpo{flex:1 1 0;min-height:0;display:flex;flex-direction:column}
[data-module="contas-receber"] .tabela-wrap,[data-module="contas-pagar"] .tabela-wrap{flex:1 1 0;min-height:0;height:auto}
.layout-vazio{width:100%;text-align:center;padding:36px}
.layout-vazio .card-titulo{justify-content:center}
.layout-vazio button{margin-top:10px}
.layout-tray{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--superficie);border:1px dashed var(--linha);border-radius:var(--raio);padding:12px 16px;margin:0 0 16px}
.layout-tray-rot{font-size:12px;font-weight:700;color:var(--suave);text-transform:uppercase;letter-spacing:.04em}
.layout-tray-chips{display:flex;gap:8px;flex-wrap:wrap}
.layout-tray-chip{min-height:34px;padding:0 14px;border-radius:999px;background:var(--primario-claro);border:1px solid transparent;color:var(--primario);font-weight:600;font-size:13px}
.layout-tray-chip:hover{filter:none;border-color:var(--primario)}
.layout-savebar{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:40;width:min(1232px,calc(100vw - 32px));gap:14px;flex-wrap:wrap}
.layout-savebar-acoes{display:flex;gap:8px;flex-wrap:wrap}
.layout-savebar #layoutSaveCount{font-weight:700}
.layout-hint{position:fixed;left:50%;transform:translateX(-50%);bottom:84px;z-index:41;display:flex;align-items:center;gap:12px;background:var(--tinta);color:#fff;border-radius:12px;padding:10px 16px;font-size:13px;box-shadow:var(--sombra)}
.layout-hint button{min-height:32px;padding:0 12px;font-size:12.5px;background:transparent;border-color:#ffffff55;color:#fff}

/* modo edição de layout */
body.layout-edit .dashboard-grid>[data-module]{outline:2px dashed #87b9aa;outline-offset:-2px;cursor:grab;user-select:none}
body.layout-edit .dashboard-grid>[data-module].layout-selecionado{outline:3px solid var(--primario);outline-offset:-3px}
body.layout-arrastando,body.layout-arrastando *{cursor:grabbing!important}
body.layout-edit .dashboard-grid>[data-module],body.layout-edit .layout-tray-chip{touch-action:none}
.layout-chrome{position:absolute;inset:0;z-index:5;background:transparent;border-radius:var(--raio)}
.layout-chrome:focus-visible{outline:3px solid #87b9aa;outline-offset:2px}
.layout-olho{position:absolute;top:8px;right:8px;width:34px;min-width:34px;min-height:34px;padding:0;display:grid;place-items:center;background:var(--superficie);border:1px solid var(--linha);color:var(--suave);border-radius:9px}
.layout-olho:hover{color:var(--tinta);filter:none;border-color:var(--primario)}
.layout-olho svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.layout-alca{position:absolute;z-index:6}
.layout-alca-larg{top:0;right:-5px;width:12px;height:100%;cursor:ew-resize}
.layout-alca-larg::after{content:'';position:absolute;top:50%;right:4px;transform:translateY(-50%);width:4px;height:34px;border-radius:4px;background:var(--primario);opacity:.45}
.layout-alca-larg:hover::after{opacity:1}
.layout-alca-alt{right:-4px;bottom:-4px;width:20px;height:20px;cursor:nwse-resize}
.layout-alca-alt::after{content:'';position:absolute;right:5px;bottom:5px;width:10px;height:10px;border-right:3px solid var(--primario);border-bottom:3px solid var(--primario);border-radius:2px;opacity:.55}
.layout-alca-alt:hover::after{opacity:1}
.layout-ghost{position:fixed!important;left:0;top:0;z-index:60;pointer-events:none;opacity:.92;box-shadow:0 18px 40px #17251f40;background:var(--superficie);outline:2px dashed var(--primario)}
.layout-ghost>.layout-chrome{display:none!important}
.layout-placeholder{outline:2px dashed var(--primario)!important;background:var(--primario-claro)}
.layout-placeholder>*{visibility:hidden}
.layout-colunas{position:absolute;inset:0 0 auto;z-index:1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;pointer-events:none}
.layout-colunas i{background:#0d5c4d0d;border-inline:1px dashed #0d5c4d33}
.layout-resize-label{position:absolute;top:8px;left:8px;z-index:7;background:var(--tinta);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:8px;pointer-events:none;white-space:nowrap}
body.layout-entrando .dashboard-grid>[data-module]{animation:layoutEntra .22s ease both;animation-delay:calc(var(--i,0)*22ms)}
@keyframes layoutEntra{from{opacity:.6}to{opacity:1}}
@media(prefers-reduced-motion:reduce){body.layout-entrando .dashboard-grid>[data-module]{animation:none}}
body.layout-edit #toggleRegime .toggle-opcao:disabled{opacity:.5;cursor:default}
.toast-sucesso.erro{background:var(--negativo)}
dialog.import-alert input{width:100%}
@media(max-width:1024px){.layout-alca{display:none}}
@media(max-width:600px){
  .dashboard-grid{display:flex;flex-direction:column;gap:16px;height:auto!important}
  .dashboard-grid>[data-module]{position:static!important;width:100%!important;height:auto!important;transform:none!important;order:initial!important}
  .layout-colunas{display:none!important}
}
