:root {
  --navy: #0b2a4a;
  --azul: #0d5d8c;
  --teal: #1a9e9a;
  --menta: #4fe3b5;
  --fundo: #f3f6f9;
  --cartao: #ffffff;
  --borda: #e1e7ee;
  --texto: #14243a;
  --suave: #5f6f84;
  --verde: #12805c;
  --verde-bg: #e3f6ee;
  --vermelho: #c0392b;
  --vermelho-bg: #fbe9e7;
  --ambar: #a86400;
  --ambar-bg: #fff3dc;
  --azul-bg: #e5f0f8;
  --sombra: 0 1px 2px rgba(11, 42, 74, .06), 0 2px 8px rgba(11, 42, 74, .05);
  --raio: 10px;
  --fundo2: #f7f9fb;
  --navy-bg: #0b2a4a;
  --borda2: #c9d5e2;
}
@media screen {
  :root[data-tema="escuro"] {
    color-scheme: dark;
    --navy: #8fc4ee; --azul: #5aaee6; --teal: #2fc2bd; --menta: #4fe3b5;
    --fundo: #0e1620; --fundo2: #172231; --cartao: #162030; --borda: #263447; --borda2: #33465c;
    --navy-bg: #2a78b5;
    --texto: #e3eaf3; --suave: #93a4b9;
    --verde: #3ccf9b; --verde-bg: #11382d; --vermelho: #ff8d7e; --vermelho-bg: #402019;
    --ambar: #f0b45a; --ambar-bg: #3b2d12; --azul-bg: #15304a;
    --sombra: 0 1px 2px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .3);
  }
  :root[data-tema="escuro"] .marca img { background: #fff; border-radius: 8px; padding: 6px; }
  :root[data-tema="escuro"] input, :root[data-tema="escuro"] select, :root[data-tema="escuro"] textarea { background: var(--fundo2); color: var(--texto); border-color: var(--borda2); }
  :root[data-tema="escuro"] .btn.sec { background: var(--cartao); color: var(--texto); }
  :root[data-tema="escuro"] #menu { background: var(--cartao); }
}
* { box-sizing: border-box; }
html, body { margin: 0; }
:root { --z: 1; }
@media (min-width: 1100px) { :root { --z: .8; } html { zoom: .8; } }
body {
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  font-size: 14px; color: var(--texto); background: var(--fundo);
  display: flex; min-height: calc(100vh / var(--z));
}
a { color: var(--azul); }

/* ---------- menu lateral */
#menu {
  width: 236px; flex-shrink: 0; background: var(--cartao); border-right: 1px solid var(--borda);
  display: flex; flex-direction: column; position: sticky; top: 0; height: calc(100vh / var(--z)); z-index: 20;
}
.marca { padding: 18px 20px 6px; text-align: center; }
.marca img { width: 120px; height: auto; }
nav { padding: 4px 10px; overflow-y: auto; flex: 1; }
nav .grupo { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); margin: 14px 10px 4px; }
nav a {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px;
  color: var(--texto); text-decoration: none; font-weight: 500;
}
nav a .ic { width: 18px; text-align: center; color: var(--teal); font-size: 13px; }
nav a:hover { background: var(--fundo); }
nav a.ativo { background: linear-gradient(90deg, var(--navy-bg), var(--azul)); color: #fff; }
nav a.ativo .ic { color: var(--menta); }
.rodape-menu { padding: 12px 18px; font-size: 11px; color: var(--suave); border-top: 1px solid var(--borda); }
#abrir-menu { display: none; }

/* ---------- área principal */
main { flex: 1; min-width: 0; padding: 22px 28px 60px; }
#topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
#topo h1 { margin: 0; font-size: 22px; color: var(--navy); }
.sub { color: var(--suave); margin-top: 3px; font-size: 13px; }
.topo-dir { display: flex; gap: 10px; align-items: center; }
.pill { background: var(--azul-bg); color: var(--azul); padding: 6px 12px; border-radius: 99px; font-size: 12px; font-weight: 600; }

.cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); box-shadow: var(--sombra); padding: 16px 18px; margin-bottom: 16px; }
.cartao h2 { font-size: 15px; margin: 0 0 12px; color: var(--navy); display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.cartao h2 small { font-weight: 400; color: var(--suave); font-size: 12px; }
.grade { display: grid; gap: 16px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 16px; }
.kpi { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 14px 16px; box-shadow: var(--sombra); position: relative; overflow: hidden; }
.kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(var(--teal), var(--menta)); }
.kpi.neg::before { background: var(--vermelho); }
.kpi .rot { color: var(--suave); font-size: 12px; }
.kpi .val { font-size: 21px; font-weight: 700; margin-top: 4px; color: var(--navy); font-variant-numeric: tabular-nums; }
.kpi .det { font-size: 12px; color: var(--suave); margin-top: 4px; }
.kpi .det b { color: var(--vermelho); }

/* ---------- tabelas */
.tabela-wrap { overflow-x: auto; border: 1px solid var(--borda); border-radius: 8px; }
table { border-collapse: collapse; width: 100%; font-size: 13px; }
th, td { padding: 7px 10px; border-bottom: 1px solid var(--borda); text-align: left; white-space: nowrap; }
th { background: var(--fundo2); color: var(--suave); font-weight: 600; font-size: 12px; position: sticky; top: 0; cursor: pointer; user-select: none; }
th.sem-ord { cursor: default; }
th .seta { color: var(--teal); }
tbody tr:hover { background: var(--fundo2); }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
td.quebra { white-space: normal; min-width: 220px; max-width: 380px; }
tr.total td { font-weight: 700; background: var(--fundo2); }
tr.secao td { background: var(--azul-bg); color: var(--navy); font-weight: 700; }
tr.destaque td { background: var(--verde-bg); font-weight: 700; }
td.neg, span.neg { color: var(--vermelho); }
.vazio { padding: 18px; color: var(--suave); text-align: center; }
.limite { max-height: max(420px, calc(100vh / var(--z) - 260px)); overflow: auto; }

.badge { display: inline-block; padding: 2px 9px; border-radius: 99px; font-size: 11.5px; font-weight: 600; }
.b-verde { background: var(--verde-bg); color: var(--verde); }
.b-vermelho { background: var(--vermelho-bg); color: var(--vermelho); }
.b-ambar { background: var(--ambar-bg); color: var(--ambar); }
.b-azul { background: var(--azul-bg); color: var(--azul); }
.b-cinza { background: var(--fundo2); color: var(--suave); }

/* ---------- formulários */
.barra { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.barra .esp { flex: 1; }
input, select, textarea {
  font: inherit; color: inherit; border: 1px solid var(--borda); border-radius: 7px; padding: 7px 9px; background: var(--cartao); min-width: 0;
}
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(26, 158, 154, .35); border-color: var(--teal); }
input.busca { width: 240px; }
input.peq { width: 110px; text-align: right; }
.btn {
  display: inline-flex; align-items: center; gap: 6px; border: 0; border-radius: 7px; padding: 8px 14px;
  font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; background: var(--navy-bg); color: #fff;
}
.btn:hover { background: var(--azul); }
.btn.sec { background: var(--cartao); color: var(--navy); border: 1px solid var(--borda); }
.btn.sec:hover { background: var(--fundo); }
.btn.verde { background: var(--teal); }
.btn.verde:hover { background: #158783; }
.btn.perigo { background: var(--cartao); color: var(--vermelho); border: 1px solid var(--borda2); }
.btn.mini { padding: 3px 8px; font-size: 12px; font-weight: 600; }
.acoes { display: flex; gap: 4px; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.form label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--suave); font-weight: 600; }
.form .inteiro { grid-column: 1 / -1; }
.ajuda { font-size: 12px; color: var(--suave); margin: 6px 0 0; line-height: 1.45; }

/* ---------- modal e aviso */
#modal-fundo { position: fixed; inset: 0; background: rgba(11, 42, 74, .45); display: flex; align-items: center; justify-content: center; z-index: 50; padding: 16px; }
#modal-fundo[hidden] { display: none; }
#modal { background: var(--cartao); border-radius: 12px; width: 100%; max-width: 620px; max-height: calc(92vh / var(--z)); overflow: auto; box-shadow: 0 20px 50px rgba(0, 0, 0, .25); }
#modal header { padding: 16px 20px; border-bottom: 1px solid var(--borda); font-weight: 700; font-size: 16px; color: var(--navy); }
#modal .corpo { padding: 18px 20px; }
#modal footer { padding: 12px 20px; border-top: 1px solid var(--borda); display: flex; justify-content: flex-end; gap: 8px; }
#modal .erro { color: var(--vermelho); font-size: 13px; margin-top: 10px; }
#toast { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); background: var(--navy-bg); color: #fff; padding: 10px 18px; border-radius: 8px; z-index: 60; box-shadow: var(--sombra); }
#toast.erro { background: var(--vermelho); }
.alerta { padding: 10px 14px; border-radius: 8px; margin-bottom: 8px; font-size: 13px; }
.alerta.am { background: var(--ambar-bg); color: var(--ambar); }
.alerta.vm { background: var(--vermelho-bg); color: var(--vermelho); }
.alerta.ok { background: var(--verde-bg); color: var(--verde); }
.carregando { color: var(--suave); padding: 40px; text-align: center; }

/* ---------- gráfico */
.grafico svg { width: 100%; height: auto; max-height: 300px; display: block; }
.legenda { display: flex; gap: 16px; font-size: 12px; color: var(--suave); margin-top: 6px; flex-wrap: wrap; }
.legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; }
.resumo-dia { display: grid; grid-template-columns: 1fr auto; gap: 8px 20px; font-size: 14px; }
.resumo-dia .num { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.resumo-dia .forte { font-size: 17px; font-weight: 800; color: var(--navy); border-top: 1px solid var(--borda); padding-top: 8px; }
.semana-col { cursor: pointer; }
.semana-col.sel { background: var(--azul-bg); color: var(--navy); }

@media (max-width: 1100px) { .g3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 860px) {
  body { display: block; }
  #menu { position: fixed; left: -260px; transition: left .2s; box-shadow: var(--sombra); }
  #menu.aberto { left: 0; }
  #abrir-menu { display: block; position: fixed; top: 12px; left: 12px; z-index: 30; border: 1px solid var(--borda); background: var(--cartao); border-radius: 8px; font-size: 18px; padding: 4px 10px; }
  main { padding: 60px 16px 40px; }
  .g2, .g3, .form { grid-template-columns: minmax(0, 1fr); }
  input.busca { width: 100%; }
}

/* ---------- caixa do fornecedor/cliente */
tr.clicavel { cursor: pointer; }
tr.clicavel:hover td { background: var(--azul-bg); }
tr.clicavel:focus { outline: 2px solid var(--teal); outline-offset: -2px; }
a.link-parte { color: var(--texto); text-decoration: none; border-bottom: 1px dashed #9fb3c8; }
a.link-parte:hover { color: var(--azul); border-bottom-color: var(--azul); }
.cab-parte { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kpis-parte { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: 18px; }
.kpis-parte .kpi { box-shadow: none; }
.kpis-parte .val { font-size: 18px; }
.secao-parte { border-top: 1px solid var(--borda); padding-top: 14px; margin-top: 16px; }
.secao-parte:first-of-type { margin-top: 0; }
.secao-parte h3 { margin: 0 0 12px; font-size: 14px; color: var(--navy); display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.secao-parte h3 small { font-weight: 400; color: var(--suave); font-size: 12px; margin-left: 6px; }
.form-cad { grid-template-columns: repeat(3, minmax(0, 1fr)); }
textarea { resize: vertical; }
select.sel-rec { padding: 3px 6px; font-size: 12px; }
.form-rec { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 860px) { .form-rec { grid-template-columns: minmax(0, 1fr); } }
.caixa-rec { background: var(--fundo); border: 1px solid var(--borda); border-radius: 8px; padding: 12px; margin-top: 14px; }
.caixa-rec .ajuda { margin-bottom: 0; }
label input:disabled { background: var(--fundo2); }
@media (max-width: 860px) { .form-cad { grid-template-columns: minmax(0, 1fr); } }

/* ---------- listas suspensas no padrão do sistema */
select {
  appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 30px;
  background: var(--cartao) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%235f6f84' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center;
}
select:disabled { cursor: default; background-color: var(--fundo2); }
input[list], input[data-lista] {
  padding-right: 30px;
  background: var(--cartao) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%235f6f84' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 10px center;
}
input[list]::-webkit-calendar-picker-indicator { display: none !important; }
[aria-expanded="true"] { border-color: var(--teal); outline: 2px solid rgba(26, 158, 154, .25); }
#lista-pop {
  position: fixed; z-index: 80; background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px;
  box-shadow: 0 12px 32px rgba(11, 42, 74, .16), 0 2px 6px rgba(11, 42, 74, .08);
  overflow-y: auto; padding: 4px; font-size: 13.5px; color: var(--texto);
}
#lista-pop[hidden] { display: none; }
.pop-grupo {
  font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--teal);
  padding: 9px 10px 4px; position: sticky; top: -4px; background: var(--cartao);
}
.pop-item { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 7px; cursor: pointer; }
.pop-item.recuado { padding-left: 18px; }
.pop-item.ativo { background: var(--azul-bg); color: var(--navy); }
.pop-item.sel { font-weight: 600; color: var(--navy); }
.pop-item.desab { color: #a3afbd; cursor: default; }
.pop-rot { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pop-rot small { display: block; color: var(--suave); font-size: 11.5px; font-weight: 400; overflow: hidden; text-overflow: ellipsis; }
.pop-cod { font-size: 11.5px; color: var(--suave); font-variant-numeric: tabular-nums; min-width: 42px; }
.pop-check { color: var(--teal); font-weight: 700; }
.pop-vazio { padding: 12px; color: var(--suave); font-size: 13px; }

/* ---------- plano de contas */
table.plano td.cod, h2 .cod { font-variant-numeric: tabular-nums; color: var(--suave); width: 70px; }
tr.plano-n1 td { background: var(--fundo2); font-weight: 700; color: var(--navy); }
tr.plano-n2 td:nth-child(2) { padding-left: 12px; }
.recuo { color: #b4c0cd; margin-right: 8px; }
.acoes .btn:disabled { opacity: .35; cursor: default; }

/* ---------- subtotais por nível do plano de contas nos relatórios */
tr.subtotal-nivel td { font-weight: 700; color: var(--navy); background: var(--fundo2); border-top: 1px solid var(--borda); }
tr.linha-subnivel td:first-child { padding-left: 26px; color: var(--texto); }
tr.linha-subnivel td { color: var(--texto); }
.cod-rel { display: inline-block; min-width: 52px; color: var(--suave); font-weight: 400; font-variant-numeric: tabular-nums; font-size: 12px; }
tr.subtotal-nivel .cod-rel { color: var(--teal); font-weight: 700; }

/* ---------- abas */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--borda); margin-bottom: 0; flex-wrap: wrap; }
.aba {
  font: inherit; font-weight: 600; font-size: 14px; color: var(--suave); background: transparent; border: 1px solid transparent;
  border-bottom: none; border-radius: 9px 9px 0 0; padding: 9px 18px; cursor: pointer; margin-bottom: -1px;
  display: inline-flex; align-items: center; gap: 6px;
}
.aba:hover { color: var(--navy); background: var(--cartao); }
.aba.ativa { background: var(--cartao); color: var(--navy); border-color: var(--borda); box-shadow: 0 -2px 0 var(--teal) inset; box-shadow: inset 0 3px 0 var(--teal); }
.aba .cod { color: var(--teal); }
.aba-n { background: var(--fundo); color: var(--suave); border-radius: 99px; font-size: 11.5px; padding: 1px 8px; font-weight: 600; }
.aba.ativa .aba-n { background: var(--azul-bg); color: var(--azul); }
.cartao-aba { border-top-left-radius: 0; }
table.plano td:last-child { width: 1%; }
table.plano td:last-child .acoes { justify-content: flex-end; }
table.plano th, table.plano td { padding: 7px 8px; }
table.plano td:nth-child(2) { white-space: normal; min-width: 160px; }
table.plano .acoes { gap: 3px; }

/* ---------- papéis cliente/fornecedor */
.papel { margin-top: 12px; }
.papel-off, .papel-ok {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; border-radius: 8px;
  background: var(--fundo); border: 1px dashed var(--borda2); font-size: 13px;
}
.papel-ok { background: var(--verde-bg); border: 1px solid #bfe6d4; }
.papel-off select { min-width: 260px; }
.abas-parte { margin-bottom: 10px; }

/* ---------- caixa do cadastro: tabela do registro financeiro sem rolagem lateral */
table.tab-registro th, table.tab-registro td { padding: 7px 7px; }
table.tab-registro td.quebra { min-width: 120px; max-width: none; }
table.tab-registro select.sel-rec { max-width: 132px; }
table.tab-registro td:last-child { width: 1%; }
#modal .kpis-parte { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
table.tab-registro th, table.tab-registro td { padding: 7px 6px; }
table.tab-registro select.sel-rec { max-width: 118px; font-size: 11.5px; padding-right: 24px; background-position: right 7px center; }
table.tab-registro td:nth-child(3), table.tab-registro td:nth-child(4) { white-space: normal; min-width: 90px; }
table.tab-registro td:nth-child(3) { min-width: 120px; }
table.tab-registro th { white-space: normal; }

/* ---------- movimento bancário sem rolagem lateral */
table.tab-mov th, table.tab-mov td { padding: 7px 7px; }
table.tab-mov th { white-space: normal; }
table.tab-mov td:nth-child(3) { white-space: normal; min-width: 200px; max-width: none; }
table.tab-mov td:nth-child(5), table.tab-mov td:nth-child(7), table.tab-mov td:nth-child(8) { white-space: normal; min-width: 90px; }
table.tab-mov td:last-child { width: 1%; }
table.tab-mov td:nth-child(2) { white-space: normal; min-width: 70px; }
table.tab-mov td:nth-child(3) { min-width: 180px; }

/* ---------- baixa com desconto, juros e multa */
.form-baixa { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-ajustes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.resumo-baixa { margin-top: 14px; background: var(--fundo); border: 1px solid var(--borda); border-radius: 8px; padding: 12px 14px; }
td.ajustes { white-space: normal; }
td.ajustes .badge { margin: 1px 0; }
@media (max-width: 860px) { .form-ajustes, .form-baixa { grid-template-columns: minmax(0, 1fr); } }
table.tab-mov td:nth-child(9) { white-space: normal; min-width: 90px; }

table.tab-mov td:nth-child(9) { white-space: nowrap; min-width: 0; }
table.tab-mov td:nth-child(8) { white-space: normal; min-width: 90px; }
div.ajustes { margin-top: 3px; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
div.ajustes .badge { font-size: 10.5px; padding: 1px 7px; }

input.busca-larga { width: 380px; max-width: 100%; }

/* ---------- clientes/fornecedores sem rolagem lateral */
table.tab-resumo th, table.tab-resumo td { padding: 7px 7px; }
table.tab-resumo th { white-space: normal; }
table.tab-resumo td:first-child { white-space: normal; min-width: 170px; }
table.tab-resumo td:last-child select { max-width: 130px; }

/* ---------- faixas de adimplência */
tr.faixa-inativa td { color: var(--suave); }
tr.faixa-inativa .badge:first-child { opacity: .55; }
label.radio-auto { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--suave); cursor: pointer; }
label.radio-auto input { accent-color: var(--teal); }

/* ---------- salvar Configurações */
.barra-salvar {
  position: sticky; bottom: 12px; z-index: 15; display: flex; align-items: center; gap: 10px;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 12px 16px; margin-bottom: 16px; box-shadow: var(--sombra);
}
.barra-salvar.pendente { border-color: var(--teal); box-shadow: 0 6px 20px rgba(26, 158, 154, .18); font-weight: 600; color: var(--navy); }
.barra-salvar .btn:disabled { opacity: .45; cursor: default; }
ul.lista-conf { margin: 8px 0 0; padding-left: 20px; line-height: 1.7; }

/* =========================================================
   Sem barras de rolagem: tabelas usam a rolagem da página e
   os textos quebram linha em vez de alargar a tela
   ========================================================= */
.limite { max-height: none !important; overflow-y: visible; }
th, td { padding: 7px 8px; }
th { white-space: normal; vertical-align: bottom; }
td { white-space: normal; overflow-wrap: anywhere; }
td.num, th.num { white-space: nowrap; overflow-wrap: normal; }
.badge, .acoes, .acoes .btn, td input, td select { white-space: nowrap; overflow-wrap: normal; }
td.quebra { min-width: 140px; max-width: none; }
th { position: static; }

.sub { font-size: 11.5px; color: var(--suave); margin-top: 2px; white-space: nowrap; }
td.num .sub { text-align: right; }

.btn.mini { padding: 3px 7px; }
.acoes { gap: 3px; }
@media (max-width: 1400px) { .g2-larga { grid-template-columns: minmax(0, 1fr); } }

/* ---------- telas estreitas (até 1200px): menu só com ícones e tabelas mais compactas */
@media (min-width: 861px) and (max-width: 1200px) {
  #menu { width: 68px; }
  .marca { padding: 14px 8px 4px; }
  .marca img { width: 48px; }
  nav { padding: 4px 8px; }
  nav .grupo { font-size: 0; margin: 10px 0 2px; border-top: 1px solid var(--borda); }
  nav a { justify-content: center; padding: 9px 0; font-size: 0; }
  nav a .ic { font-size: 15px; width: auto; }
  .rodape-menu { display: none; }
  main { padding: 20px 18px 50px; }
  table { font-size: 12.5px; }
  th, td { padding: 6px 6px; }
  .btn.mini { padding: 3px 6px; font-size: 11.5px; }
}
@media (min-width: 861px) and (max-width: 1200px) {
  td.quebra { min-width: 105px; }
  .badge { padding: 2px 7px; font-size: 11px; }
}
/* quebra só entre palavras; IDs, datas e valores nunca quebram */
td { overflow-wrap: normal; word-break: normal; hyphens: manual; }
td.id { white-space: nowrap; }
td.quebra, table.tab-resumo td:first-child, table.tab-mov td:nth-child(3), table.tab-registro td:nth-child(3) { white-space: normal; }
td.data { white-space: nowrap; }
@media (min-width: 861px) and (max-width: 1200px) {
  table.tab-mov td:nth-child(3) { min-width: 130px; }
  table.tab-mov td:nth-child(2), table.tab-mov td:nth-child(5), table.tab-mov td:nth-child(7), table.tab-mov td:nth-child(8) { min-width: 0; }
}

/* ---------- caixa central de alterações não salvas (Configurações) */
.caixa-salvar {
  position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 40;
  display: flex; align-items: center; gap: 22px; padding: 14px 18px 14px 22px;
  background: var(--cartao); border: 1px solid var(--teal); border-radius: 12px;
  box-shadow: 0 14px 40px rgba(11, 42, 74, .22), 0 2px 8px rgba(11, 42, 74, .08);
  max-width: calc(100vw / var(--z) - 32px);
}
.caixa-salvar[hidden] { display: none; }
.caixa-salvar-txt { display: flex; flex-direction: column; gap: 2px; color: var(--navy); }
.caixa-salvar-txt span { font-size: 12.5px; color: var(--suave); }
.caixa-salvar-bts { display: flex; gap: 8px; }
@media (min-width: 861px) { .caixa-salvar { left: calc(50% + 118px); } }
@media (min-width: 861px) and (max-width: 1200px) { .caixa-salvar { left: calc(50% + 34px); } }
#conteudo:has(.caixa-salvar:not([hidden])) { padding-bottom: 90px; }

/* ---------- Fluxo por categoria: filtros, cabeçalho fixo e divisões */
.filtros-fluxo { padding: 12px 16px; position: sticky; top: 0; z-index: 12; }
.filtro-rot { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--suave); font-weight: 600; }
.chk { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--texto); cursor: pointer; user-select: none; }
.chk input { accent-color: var(--teal); width: 15px; height: 15px; }
.segmentado { display: inline-flex; border: 1px solid var(--borda); border-radius: 8px; overflow: hidden; background: var(--cartao); }
.segmentado .seg { font: inherit; font-size: 13px; font-weight: 600; border: 0; background: transparent; color: var(--suave); padding: 7px 14px; cursor: pointer; }
.segmentado .seg + .seg { border-left: 1px solid var(--borda); }
.segmentado .seg:hover { background: var(--fundo); color: var(--navy); }
.segmentado .seg.ativo { background: var(--navy-bg); color: #fff; }
/* sem rolagem própria: o cabeçalho gruda no topo da página ao rolar */
.tabela-fixa { overflow: visible; }
.tab-fluxo thead { position: sticky; top: var(--topo-fluxo, 62px); z-index: 11; }
.tab-fluxo thead th { background: var(--fundo2); box-shadow: inset 0 -1px 0 var(--borda); }
.tab-fluxo th.grupo-col { text-align: center; color: var(--navy); font-size: 12.5px; }
.tab-fluxo .ini-mes { border-left: 1px solid var(--borda2); }
.tab-fluxo .ini-total { border-left: 2px solid var(--navy); }
.tab-fluxo td.ini-total, .tab-fluxo th.ini-total ~ th { background-clip: padding-box; }

/* muitas colunas no fluxo: letra e espaçamento menores para caber sem rolagem lateral */
.tab-fluxo td:first-child { min-width: 150px; }
.tab-fluxo.compacto { font-size: 12px; }
.tab-fluxo.compacto th, .tab-fluxo.compacto td { padding: 6px 5px; }
.tab-fluxo.compacto .cod-rel { min-width: 40px; font-size: 11px; }
.tab-fluxo.compacto2 { font-size: 11px; }
.tab-fluxo.compacto2 th, .tab-fluxo.compacto2 td { padding: 5px 3px; }
.tab-fluxo.compacto2 .cod-rel { display: none; }
.tab-fluxo.compacto2 td:first-child { min-width: 120px; }

.sub.sub-per { text-align: center; white-space: normal; }

.tab-fluxo.compacto2 .sub-per { display: none; }
.tab-fluxo.compacto2 th { font-size: 10.5px; }

/* ---------- Planejamento semanal: cabeçalho fixo e divisões entre semanas */
.tab-plan thead { position: sticky; top: 0; z-index: 11; }
.tab-plan thead th { background: var(--fundo2); box-shadow: inset 0 -1px 0 var(--borda); }
.tab-plan thead th.semana-col.sel { background: var(--azul-bg); }
.tab-plan .ini-sem { border-left: 1px solid var(--borda2); }
.tab-plan .ini-forte { border-left: 2px solid var(--navy); }

/* ---------- Planejamento > Detalhado: escolha da semana */
.chips-sem { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-sem {
  font: inherit; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; cursor: pointer;
  border: 1px solid var(--borda); background: var(--cartao); border-radius: 8px; padding: 6px 12px; color: var(--navy);
}
.chip-sem span { font-size: 11.5px; color: var(--suave); }
.chip-sem:hover { border-color: var(--teal); }
.chip-sem.ativo { background: var(--navy-bg); border-color: var(--navy-bg); color: #fff; }
.chip-sem.ativo span { color: rgba(255,255,255,.8); }
.kpis-semana { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); margin-bottom: 14px; }
.kpis-semana .kpi { box-shadow: none; }
.kpis-semana .val { font-size: 18px; }
.tab-semana thead { position: sticky; top: 0; z-index: 5; }
.tab-semana thead th { background: var(--fundo2); box-shadow: inset 0 -1px 0 var(--borda); }

/* ---------- escolha do escopo em série recorrente */
.escopo-fundo { position: fixed; inset: 0; background: rgba(11, 42, 74, .35); display: flex; align-items: center; justify-content: center; z-index: 70; padding: 16px; }
.escopo-caixa { background: var(--cartao); border-radius: 12px; width: 100%; max-width: 520px; box-shadow: 0 20px 50px rgba(0, 0, 0, .28); }
.escopo-caixa header { padding: 16px 20px; border-bottom: 1px solid var(--borda); font-weight: 700; font-size: 16px; color: var(--navy); }
.escopo-caixa .corpo { padding: 16px 20px; }
.escopo-caixa footer { padding: 12px 20px; border-top: 1px solid var(--borda); display: flex; justify-content: flex-end; gap: 8px; }
.escopo-op { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--borda); border-radius: 8px; margin-bottom: 8px; cursor: pointer; }
.escopo-op:has(input:checked) { border-color: var(--teal); background: var(--verde-bg); }
.escopo-op input { accent-color: var(--teal); margin-top: 3px; }
.escopo-op span { display: flex; flex-direction: column; gap: 2px; }
.escopo-op small { color: var(--suave); font-size: 12.5px; }
.btn.perigo-cheio { background: var(--vermelho); }
.btn.perigo-cheio:hover { background: #a93226; }

/* ---------- Painel: filtro de período */
.filtros-painel { padding: 12px 16px; }
.filtros-painel input[type=date] { width: 150px; }

/* ---------- alertas clicáveis */
.link-alerta { display: flex; align-items: center; justify-content: space-between; gap: 12px; text-decoration: none; color: inherit; }
a.link-alerta:hover { filter: brightness(.97); box-shadow: inset 0 0 0 1px rgba(168, 100, 0, .35); }
a.link-alerta.vm:hover { box-shadow: inset 0 0 0 1px rgba(192, 57, 43, .35); }
.link-alerta .ir { white-space: nowrap; font-weight: 700; font-size: 12.5px; text-decoration: underline; }
.link-alerta a { color: inherit; }

/* ---------- Pontos críticos */
.tab-criticos td { vertical-align: top; }
.tab-criticos td.sugestao { min-width: 260px; }
.sug-linha { margin-bottom: 4px; line-height: 1.45; }
.sug-linha:last-child { margin-bottom: 0; }
.tab-criticos td:nth-child(2) { min-width: 170px; }

/* ---------- registrar acordo */
.form-acordo { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.form-acordo .inteiro { grid-column: 1 / -1; }
.previa-acordo .tabela-wrap { max-height: none; }
@media (max-width: 860px) { .form-acordo { grid-template-columns: minmax(0, 1fr); } }

/* ---------- botão Excluir dentro do modal de edição */
#modal footer { align-items: center; }
#modal footer .btn-extra { margin-right: auto; }

/* ---------- Diário: barra de totais fixa */
.barra-diario {
  position: sticky; top: 0; z-index: 14; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 10px 14px; margin-bottom: 12px;
  box-shadow: 0 4px 14px rgba(11, 42, 74, .10);
}
.bd-item { display: flex; flex-direction: column; gap: 1px; padding: 2px 8px; }
.bd-item span { font-size: 11.5px; color: var(--suave); white-space: nowrap; }
.bd-item b { font-size: 16px; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bd-item.forte { background: var(--azul-bg); border-radius: 8px; padding: 4px 12px; }
.bd-item.forte b { font-size: 18px; }
.bd-item.neg { background: var(--vermelho-bg); }
.bd-item.neg b { color: var(--vermelho); }
.bd-op { font-size: 18px; color: var(--suave); font-weight: 700; }
.bd-acao { margin-left: auto; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bd-aviso { flex-basis: 100%; font-size: 12.5px; color: var(--vermelho); font-weight: 600; }
.vazio-diario { text-align: center; padding: 28px 16px; }
@media (max-width: 860px) { .bd-acao { margin-left: 0; } }

/* ---------- acordo: entrada em R$ ou % */
.form .campo { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--suave); font-weight: 600; }
.entrada-cab { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 20px; }
.mini-seg .seg { padding: 2px 10px; font-size: 12px; }
.ent-eq { font-size: 11.5px; font-weight: 400; color: var(--suave); }
.ent-eq.erro-ent { color: var(--vermelho); font-weight: 600; }

/* ---------- Diário: pagamento total/parcial e edição de saldos */
.link-btn { border: 0; background: none; color: var(--azul); text-decoration: underline; cursor: pointer; font: inherit; padding: 0; }
.link-btn:hover { color: var(--navy); }
td.pg { min-width: 210px; white-space: normal; }
.pg-ctrl { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.pg-parcial { display: inline-flex; align-items: center; gap: 6px; }
.pg-ctrl .sub { flex-basis: 100%; margin: 0; }
.pg-ctrl input.peq { width: 96px; }
.mini-seg .seg { padding: 2px 10px; font-size: 12px; }

/* ---------- acordo: proposta em PDF / texto */
.proposta-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--linha, var(--borda)); font-size: 13px; color: var(--navy); }

/* ---------- base completa */
.acoes-base { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
#cab-impressao { display: none; }
.logo-campo { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.logo-previa { max-height: 80px; max-width: 280px; object-fit: contain; border: 1px solid var(--borda, #d8e0ea); border-radius: 6px; padding: 6px; background: var(--cartao); }

/* ---------- impressão / PDF da tela */
@page { size: A4 landscape; margin: 10mm; }
@media print {
  body { background: var(--cartao) !important; }
  aside, #abrir-menu, .topo-dir .btn, #toast, #modal-fundo, .caixa-salvar, .barra-diario .link-btn,
  .filtros-painel .btn, .filtros-fluxo .btn, .acoes, .btn.mini { display: none !important; }
  main { margin: 0 !important; padding: 0 !important; max-width: none !important; width: 100% !important; }
  #topo { position: static !important; border: 0 !important; padding: 0 0 8px !important; }
  #cab-impressao { display: flex; align-items: center; gap: 12px; color: var(--suave); font-size: 11px; margin-bottom: 8px; }
  #cab-impressao img { max-height: 48px; max-width: 160px; object-fit: contain; }
  .cartao, .kpi { box-shadow: none !important;  }
  .tabela-wrap, .tabela-fixa { overflow: visible !important; max-height: none !important; }
  thead th, thead tr, .barra-diario, .tab-fluxo th, .tab-fluxo td { position: static !important; }
  table { font-size: 10px !important; }
  tr { break-inside: avoid; }
  thead { display: table-header-group; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* impressão: sem espaços entre as folhas (flex/grid não quebram bem entre páginas) */
@media print {
  html, body { display: block !important; height: auto !important; min-height: 0 !important; }
  main { display: block !important; }
  .grade { display: block !important; }
  .grade > * { margin-bottom: 12px; }
  .kpis { display: flex !important; flex-wrap: wrap; gap: 10px; }
  .kpis .kpi { flex: 1 1 180px; break-inside: avoid; }
  .cartao { break-inside: auto !important; page-break-inside: auto !important; margin-bottom: 12px; }
  .cartao h2, .abas { break-after: avoid; }
  .limite, .tabela-wrap, .tabela-fixa { max-height: none !important; height: auto !important; overflow: visible !important; }
  section, #conteudo { display: block !important; }
}

/* ---------- metas */
.barra-prog { height: 8px; background: var(--borda); border-radius: 6px; overflow: hidden; min-width: 90px; margin-left: auto; }
.barra-prog i { display: block; height: 100%; background: var(--azul, #1f7fb5); border-radius: 6px; }
.form-metas { align-items: start; }
.check-meta { justify-content: flex-end; }
.check-meta input { width: auto; }

/* ---------- metas: gráfico */
.grafico-meta { position: relative; }
.grafico-meta svg { width: 100%; height: auto; display: block; }
#gm-dica { position: absolute; z-index: 5; background: var(--cartao); border: 1px solid var(--borda); border-radius: 8px; padding: 8px 10px; font-size: 12px; box-shadow: var(--sombra); pointer-events: none; white-space: nowrap; }
#gm-dica i, .leg-meta i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 6px; }
.leg-meta { display: inline-flex; align-items: center; gap: 4px; }
.leg-meta small { color: var(--suave); }

/* ---------- conciliação bancária */
.tab-conc td { vertical-align: top; }
.tab-conc tr.conc-ok td { color: var(--suave); }
.barra-conc { position: sticky; bottom: 12px; z-index: 15; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; background: var(--cartao); border: 1px solid var(--borda);
  border-radius: 12px; padding: 12px 16px; box-shadow: 0 8px 24px rgba(11, 42, 74, .16); margin-top: 14px; }
.barra-conc .btn { margin-left: auto; }
.conc-parte { margin-bottom: 4px; }

/* ---------- conciliação: vínculo e busca de lançamento */
.chip-vinc { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 99px; background: var(--verde-bg); color: var(--verde); white-space: nowrap; margin: 1px 0; }
.chip-vinc small { font-weight: 400; color: var(--suave); }
.chip-vinc.chip-prop { background: var(--azul-bg); color: var(--azul); border: 1px dashed var(--azul); }
.chip-vinc.chip-pend { background: var(--vermelho-bg); color: var(--vermelho); }
.chip-cat { font-size: 12px; color: var(--suave); }
.busca-lanc { border: 1px solid var(--borda); border-radius: 10px; padding: 10px 12px; margin-bottom: 14px; background: var(--fundo2); }
.busca-lanc summary { cursor: pointer; margin-bottom: 8px; }
.busca-lanc .busca { width: 100%; }

.conc-dif { font-weight: 700; padding: 4px 10px; border-radius: 99px; }
.conc-dif.ok { background: var(--verde-bg); color: var(--verde); }
.conc-dif.erro { background: var(--vermelho-bg); color: var(--vermelho); }

.conc-saldo { display: flex; align-items: stretch; gap: 18px; flex-wrap: wrap; border-radius: 12px; padding: 14px 20px; margin-bottom: 16px; border: 2px solid; }
.conc-saldo > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.conc-saldo span { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; }
.conc-saldo b { font-size: 22px; font-variant-numeric: tabular-nums; }
.conc-saldo small { font-size: 12px; opacity: .85; }
.conc-sinal { font-size: 30px; font-weight: 700; align-self: center; }
.conc-res { margin-left: auto; align-self: center; text-align: right; }
.conc-res b { font-size: 17px; }
.conc-saldo.ok { background: var(--verde-bg); border-color: var(--verde); color: var(--verde); }
.conc-saldo.erro { background: var(--vermelho-bg); border-color: var(--vermelho); color: var(--vermelho); }

.dia-conc td { background: var(--azul-bg); border-top: 2px solid var(--borda); padding: 8px 12px; }
.dia-conc.dia-ok td { background: var(--verde-bg); }
.dia-cab { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dia-cab .link-btn { margin-left: auto; }

.chip-vinc.chip-pend-t { background: var(--ambar-bg); color: var(--ambar); }

.bl-modo { display: flex; flex-direction: column; gap: 4px; margin-top: 6px; font-weight: 400; }
.bl-modo label { display: flex; gap: 6px; align-items: flex-start; cursor: pointer; }

/* ---------- movimento: saldo corrente e saldo do dia */
.tab-mov td.saldo { font-weight: 600; color: var(--navy); white-space: nowrap; }
.tab-mov td.saldo.neg { color: var(--vermelho); }
.dia-saldo td { background: var(--azul-bg); border-top: 2px solid var(--borda); padding: 7px 12px; }
.dia-saldo .saldo-dia { margin-left: auto; font-size: 15px; color: var(--navy); }
.dia-saldo .saldo-dia.neg { color: var(--vermelho); }

.conc-chk { text-align: center; }
.conc-chk input { width: 18px; height: 18px; accent-color: var(--verde); cursor: pointer; }

.tab-fluxo tr.saldo-caixa td { background: var(--ambar-bg); color: var(--navy); }

.check-saldo { font-size: 12px; font-weight: 700; margin-top: 3px; }
.check-saldo.ok { color: var(--verde); }
.check-saldo.dif { color: var(--vermelho); }
.tab-fluxo tr.saldo-bancos td { background: var(--ambar-bg); }
.tab-fluxo tr.saldo-bancos.ok td:first-child { box-shadow: inset 4px 0 0 var(--verde); }
.tab-fluxo tr.saldo-bancos.dif td:first-child { box-shadow: inset 4px 0 0 var(--vermelho); }

/* ---------- relatórios (fluxo de caixa e DRE) */
.rel-tab td.filha { padding-left: 26px; }
.rel-tab tr.grupo-linha td { font-weight: 700; background: var(--azul-bg); }
.rel-tab .cod { color: var(--teal); font-size: 12px; margin-right: 4px; }
.rel-var.pos { color: var(--verde); }
.rel-var.neg { color: var(--vermelho); }
.rel-var .sub { font-size: 11px; opacity: .85; }
input.orc { width: 100px; text-align: right; border: 1px solid transparent; border-radius: 6px; padding: 3px 6px; background: var(--ambar-bg); font: inherit; }
input.orc:hover, input.orc:focus { border-color: var(--azul); background: var(--cartao); }

.rel-tab td.pct { color: var(--suave); font-size: 12px; }

/* ---------- composição dos valores (links nos números) */
.vlink, .vlink-t { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.vlink:hover { color: var(--azul, #0b6bcb); text-decoration-style: solid; }
.vlink-t { color: var(--azul, #0b6bcb); }
@media print { .vlink { text-decoration: none; } }

/* ---------- agenda */
.ag-grade { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 14px; align-items: start; }
.ag-cal { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.ag-cab { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--suave, var(--suave)); text-align: center; padding: 4px 0; }
.ag-dia { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-height: 78px; padding: 6px; border: 1px solid var(--borda, var(--borda)); border-radius: 8px; background: var(--cartao); cursor: pointer; font: inherit; text-align: left; }
.ag-dia:hover { border-color: #0d8a8a; }
.ag-dia.fds { background: var(--fundo2); }
.ag-dia.hoje { box-shadow: inset 0 0 0 2px #0d8a8a; }
.ag-dia.sel { background: var(--verde-bg); border-color: #0d8a8a; }
.ag-n { font-weight: 700; font-size: 13px; }
.ag-r, .ag-p { font-size: 11.5px; font-weight: 600; border-radius: 10px; padding: 1px 7px; white-space: nowrap; }
.ag-r { background: var(--verde-bg); color: var(--verde); }
.ag-p { background: var(--vermelho-bg); color: var(--vermelho); }
.ag-resumo { font-size: 12.5px; padding: 3px 10px; }
.ag-tit { margin: 14px 0 6px; font-size: 13px; padding: 4px 8px; border-radius: 6px; }
.ag-tit.r { background: var(--verde-bg); color: var(--verde); }
.ag-tit.p { background: var(--vermelho-bg); color: var(--vermelho); }
.ag-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ag-lista li { display: flex; flex-direction: column; border-bottom: 1px solid var(--borda, #e8edf2); padding-bottom: 5px; }
.ag-lista small { color: var(--suave, var(--suave)); }
.ac-comp { margin: 0 0 12px; }
.ac-comp summary { cursor: pointer; font-weight: 700; margin-bottom: 6px; }
.ac-comp summary small { font-weight: 400; color: var(--suave, var(--suave)); }
@media (max-width: 900px) { .ag-grade { grid-template-columns: minmax(0, 1fr); } .ag-dia { min-height: 56px; padding: 4px; } .ag-r, .ag-p { font-size: 10px; padding: 0 4px; } }

/* ---------- janela móvel da agenda */
.ag-badge { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 10px; background: #0d8a8a; color: #fff; font-size: 12px; font-weight: 700; text-align: center; line-height: 20px; }
.ag-badge.zero { background: var(--suave); }
#agenda-janela { position: fixed; z-index: 40; background: var(--fundo2); border: 1px solid var(--borda, var(--borda)); border-radius: 12px; box-shadow: 0 20px 50px rgba(0, 0, 0, .3); display: flex; flex-direction: column; resize: both; overflow: hidden; min-width: 340px; min-height: 280px; max-width: calc(98vw / var(--z)); max-height: calc(98vh / var(--z)); }
#agenda-janela[hidden] { display: none; }
.aj-cab { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--navy-bg); color: #fff; cursor: move; user-select: none; touch-action: none; }
.aj-cab .ajuda { color: #b9c7d8; flex: 1; }
.aj-cab .btn { cursor: pointer; }
.aj-corpo { padding: 12px; overflow: auto; flex: 1; }
.aj-corpo .cartao { margin-bottom: 10px; }
@media print { #agenda-janela { display: none !important; } }

/* ---------- atalho Criar */
.criar-wrap { position: relative; display: inline-block; }
#menu-criar { position: absolute; right: 0; top: calc(100% + 6px); z-index: 45; min-width: 190px; background: var(--cartao); border: 1px solid var(--borda, var(--borda)); border-radius: 10px; box-shadow: 0 12px 30px rgba(0, 0, 0, .2); padding: 6px; display: flex; flex-direction: column; }
#menu-criar[hidden] { display: none; }
#menu-criar button { background: none; border: 0; text-align: left; padding: 9px 12px; border-radius: 7px; font: inherit; cursor: pointer; }
#menu-criar button:hover { background: var(--verde-bg); }
@media print { .criar-wrap { display: none !important; } }

/* ---------- login e conta */
body.sem-login aside, body.sem-login main, body.sem-login #abrir-menu { display: none !important; }
#tela-login { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; background: linear-gradient(160deg, var(--azul-bg), #dfeaf2); }
#tela-login[hidden] { display: none; }
#form-login { width: 100%; max-width: 380px; background: var(--cartao); border: 1px solid var(--borda, var(--borda)); border-radius: 14px; box-shadow: 0 20px 50px rgba(11, 42, 74, .18); padding: 28px 26px; display: flex; flex-direction: column; gap: 14px; }
#form-login h1 { margin: 0; font-size: 20px; color: var(--navy); }
#form-login label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; }
#form-login input { padding: 11px 12px; border: 1px solid var(--borda, #c9d3de); border-radius: 8px; font: inherit; }
.login-logo { max-width: 170px; align-self: center; }
#login-erro { min-height: 18px; color: var(--vermelho); font-size: 13px; }
#menu-usuario { position: absolute; right: 0; top: calc(100% + 6px); z-index: 45; min-width: 220px; background: var(--cartao); border: 1px solid var(--borda, var(--borda)); border-radius: 10px; box-shadow: 0 12px 30px rgba(0, 0, 0, .2); padding: 6px; display: flex; flex-direction: column; }
#menu-usuario[hidden] { display: none; }
#menu-usuario button { background: none; border: 0; text-align: left; padding: 9px 12px; border-radius: 7px; font: inherit; cursor: pointer; }
#menu-usuario button:hover { background: var(--verde-bg); }
#btn-usuario { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

#menu-usuario .usr-perfil { display: flex; flex-direction: column; gap: 2px; padding: 8px 12px 10px; margin-bottom: 4px; border-bottom: 1px solid var(--borda, var(--borda)); font-size: 13px; color: #5b6b7b; }
#menu-usuario .usr-perfil b { color: var(--navy); font-size: 14px; }

.btn.perigo-cheio { color: #fff; font-weight: 700; border: 0; }

.sub-tit { display: flex; align-items: center; gap: 10px; font-size: 14px; margin: 16px 0 8px; color: var(--navy); }
.neg-hist { display: flex; flex-direction: column; gap: 8px; max-height: 220px; overflow: auto; }
.neg-item { border-left: 3px solid var(--teal); padding: 4px 10px; background: var(--fundo2); border-radius: 0 6px 6px 0; }
.neg-item div { white-space: pre-wrap; }

/* busca automática nas listas */
.busca-tab { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
.busca-tab input { flex: 1; max-width: 380px; padding: 7px 10px; border: 1px solid var(--borda); border-radius: 8px; font: inherit; background: var(--cartao); }
.busca-tab input:focus { outline: 2px solid #1a9e9a55; border-color: #1a9e9a; }
.busca-cont { color: var(--suave); font-size: 12px; white-space: nowrap; }
tr.busca-oculta { display: none !important; }
@media print { .busca-tab { display: none !important; } tr.busca-oculta { display: table-row !important; } }

.ct-resumo { margin-top: 8px; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.ct-atraso { color: var(--vermelho); font-weight: 600; }

.neg-linha { margin-top: 8px; padding: 8px 10px; border: 1px solid var(--azul, #2f6fb5); border-radius: 8px; background: rgba(47,111,181,.07); display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }

/* laudos de aprovação */
.selo{display:inline-block;margin-left:8px;background:#d92d20;color:#fff;border-radius:10px;font-size:11px;font-weight:700;padding:0 6px;line-height:17px}
.laudo h3{font-size:13px;margin:14px 0 4px}
.laudo .kpis{margin:6px 0}
.laudo-hist{margin:4px 0 0 18px;padding:0;font-size:12px}
#btn-laudos{text-decoration:none;display:inline-flex;align-items:center}#btn-laudos.ativo{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.st-laudo{text-transform:uppercase;font-weight:700;letter-spacing:.3px}.laudo-st{float:right;margin-left:12px}

.forma-chk{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:4px}
.forma-chk .chk{display:inline-flex;align-items:center;gap:6px;font-weight:500}
.form .forma-chk{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:6px}
.form .forma-chk label.chk{display:inline-flex;flex-direction:row;align-items:center;gap:7px;font-weight:600;color:var(--navy,var(--navy));cursor:pointer}
.form .forma-chk label.chk input{width:auto;margin:0}
.form .campo-forma{border:1px solid var(--borda,var(--borda));border-radius:10px;padding:10px 12px;background:var(--fundo-suave,var(--fundo2))}

.neg-linha .neg-cab{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.neg-linha .esp{flex:1}
.neg-prop{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:8px 10px;margin-top:8px;border:1px solid var(--borda,var(--borda));border-radius:10px;background:var(--cartao,var(--cartao));opacity:.8}
.neg-prop.viva{opacity:1;border-color:#2aa198;box-shadow:0 0 0 2px rgba(42,161,152,.15)}
.neg-obs{display:flex;gap:8px;align-items:flex-end;margin-top:8px}
.neg-obs textarea{flex:1;min-width:0;font:inherit;padding:6px 8px;border:1px solid var(--borda,var(--borda));border-radius:8px}
.neg-linha .neg-item{margin-top:4px;font-size:12px}

table.tab-acordos th, table.tab-acordos td { white-space: normal; padding: 7px 8px; vertical-align: top; }
table.tab-acordos td.num { white-space: nowrap; }
table.tab-acordos .acoes { flex-wrap: wrap; }

.pz { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.pz svg { width: 100%; max-width: 190px; height: auto; }
.pz-legs { width: 100%; display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; }
.pz-leg { display: grid; grid-template-columns: 10px 1fr auto 34px; align-items: center; gap: 6px; }
.pz-leg i { width: 10px; height: 10px; border-radius: 3px; }
.pz-leg b { font-variant-numeric: tabular-nums; }
.pz-leg small { color: var(--suave); text-align: right; }

.dados-ct { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; }
.dados-ct span { color: var(--suave); }

.bpo-arv { list-style: none; margin: 8px 0 0; padding: 0; }
.bpo-arv li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 4px; border-bottom: 1px solid var(--borda); }
.bpo-arv li.bpo-n1 { font-weight: 700; color: var(--navy); background: var(--fundo2); margin-top: 6px; }
.bpo-arv li.bpo-n2 { padding-left: 22px; }

.pill-empresa { font-weight: 800; letter-spacing: .03em; text-transform: uppercase; border: 2px solid currentColor; }

#menu-troca { position: absolute; right: 0; top: calc(100% + 6px); z-index: 45; min-width: 230px; background: var(--cartao); border: 1px solid var(--borda); border-radius: 10px; box-shadow: 0 12px 30px rgba(0, 0, 0, .2); padding: 6px; display: flex; flex-direction: column; }
#menu-troca[hidden] { display: none; }
#menu-troca button, #menu-troca a { background: none; border: 0; text-align: left; padding: 9px 12px; border-radius: 7px; font: inherit; cursor: pointer; color: inherit; text-decoration: none; }
#menu-troca button:hover, #menu-troca a:hover { background: var(--verde-bg); }
/* páginas públicas de senha (redefinir.html): mesmo visual da tela de entrada */
.form-publica { width: 100%; max-width: 380px; background: var(--cartao); border: 1px solid var(--borda, var(--borda)); border-radius: 14px; box-shadow: 0 20px 50px rgba(11, 42, 74, .18); padding: 28px 26px; display: flex; flex-direction: column; gap: 14px; }
.form-publica h1 { margin: 0; font-size: 20px; color: var(--navy); }
.form-publica label { display: flex; flex-direction: column; gap: 5px; font-size: 13px; font-weight: 600; }
.form-publica input { padding: 11px 12px; border: 1px solid var(--borda, #c9d3de); border-radius: 8px; font: inherit; }
.form-publica [role="alert"] { min-height: 18px; color: var(--vermelho); font-size: 13px; }
.form-publica[hidden] { display: none; }

nav a[hidden] { display: none; }
