diff --git a/src/index.html b/src/index.html
index 4bafd66..cfb0a75 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1323,9 +1323,13 @@ function buildConfirmHTML(data) {
// Relatório completo — mesmo layout do PDF
const fmt = v => 'R$ ' + (v || 0).toFixed(2).replace('.', ',');
const fmtNeg = v => (v < 0 ? '-' : '') + 'R$ ' + Math.abs(v || 0).toFixed(2).replace('.', ',');
- // Diferença = fechamento - saldo_esperado - cancelamentos
+ // Diferença = Total Sistema - Saldo Esperado - Cancelamentos
+ // ⚠️ buildReciboData retorna snake_case (sys_total, total_cancelamentos)
+ 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
- : ((data.fechamento || 0) - (data.saldo_esperado || 0) - (data.cancelamentos || 0));
+ : (sysTotalCalc - saldoEsperadoCalc - cancelamentosCalc);
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffOk = diferenca === 0;
@@ -1490,9 +1494,10 @@ function buildPrintHTML(data) {
const fmt = v => 'R$ ' + (v || 0).toFixed(2).replace('.', ',');
const fmtNeg = v => (v < 0 ? '-' : '') + 'R$ ' + Math.abs(v || 0).toFixed(2).replace('.', ',');
// Diferença = Total Sistema - Saldo Esperado - Cancelamentos
- const sysTotalCalc = (data.sysTotal || 0);
+ // ⚠️ buildReciboData retorna snake_case (sys_total, total_cancelamentos)
+ const sysTotalCalc = (data.sys_total || data.sysTotal || 0);
const saldoEsperadoCalc = (data.saldo_esperado || 0);
- const cancelamentosCalc = (data.cancelamentos || 0);
+ const cancelamentosCalc = (data.total_cancelamentos || data.cancelamentos || 0);
const diferenca = sysTotalCalc - saldoEsperadoCalc - cancelamentosCalc;
const diffStr = diferenca >= 0 ? `+${fmt(diferenca)}` : fmtNeg(diferenca);
const diffColor = diferenca === 0 ? '#2e7d32' : (diferenca > 0 ? '#e65100' : '#c0272d');