diff --git a/src/index.html b/src/index.html
index d34fae9..3740db3 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1325,11 +1325,11 @@ function buildConfirmHTML(data) {
const fmtNeg = v => (v < 0 ? '-' : '') + 'R$ ' + Math.abs(v || 0).toFixed(2).replace('.', ',');
// Diferença = Total Sistema - Saldo Esperado - Cancelamentos
// ⚠️ buildReciboData retorna snake_case (sys_total, total_cancelamentos)
+ // Sempre recalcula para garantir consistência — ignora data.diferenca
const sysTotalCalc = (data.sys_total || data.sysTotal || 0);
const saldoEsperadoCalc = (data.saldo_esperado || 0);
const cancelamentosCalc = (data.total_cancelamentos || data.cancelamentos || 0);
- const diferenca = data.diferenca !== undefined ? data.diferenca
- : (sysTotalCalc - saldoEsperadoCalc - cancelamentosCalc);
+ const diferenca = sysTotalCalc - saldoEsperadoCalc - cancelamentosCalc;
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffOk = diferenca === 0;
@@ -1733,12 +1733,11 @@ function buildReportHTML(data) {
const sysTotal = data.sys_total || 0;
const saldoEsp = data.saldo_esperado || 0;
// Diferença = Total Sistema - Saldo Esperado - Cancelamentos
- // ⚠️ buildReciboData retorna snake_case (sys_total, total_cancelamentos)
+ // Sempre recalcula para garantir consistência
const sysTotalCalc = (data.sys_total || data.sysTotal || 0);
const saldoEspCalc = (data.saldo_esperado || 0);
const cancelamentosCalc = (data.total_cancelamentos || data.cancelamentos || 0);
- const diferenca = data.diferenca !== undefined ? data.diferenca
- : (sysTotalCalc - saldoEspCalc - cancelamentosCalc);
+ const diferenca = sysTotalCalc - saldoEspCalc - cancelamentosCalc;
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffColor = diferenca === 0 ? '#2e7d32' : '#c0272d';