diff --git a/CHANGELOG.md b/CHANGELOG.md
index bbcd048..0ee37d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,22 @@ O formato segue [Keep a Changelog](https://keepachangelog.com/pt-BR/).
Este projeto adota [Versionamento Semântico](https://semver.org/pt-BR/).
+## [1.43.6] - 2025-12-16
+
+### Improved
+- **Modal Detalhes Liabilities - Mobile Otimizado** - Visualização completa mobile
+ - Modal: fullscreen mobile vs xl desktop
+ - Header: fontes 0.95rem, ícone 0.9rem, texto truncado
+ - Summary cards: Grid 2x2 mobile, padding 0.5rem, fontes 0.65-0.85rem
+ - Taxas: Grid 3 colunas mobile, labels curtos (Mensal/Anual/Total)
+ - Progress bar: 12px mobile, fontes 0.65-0.75rem
+ - Parcelas: **Cards layout mobile** com todas as info compactas
+ - Cards parcelas: status badge, valores, juros, taxas, botões de ação
+ - Botão footer: full-width mobile, fonte 0.85rem
+ - Desktop: Tabela completa preservada
+ - i18n: Adicionadas chaves 'monthly', 'annual', 'total' em pt-BR e es
+
+
## [1.43.5] - 2025-12-16
### Improved
diff --git a/VERSION b/VERSION
index 5c898c3..ea67177 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.43.5
+1.43.6
diff --git a/frontend/src/i18n/locales/es.json b/frontend/src/i18n/locales/es.json
index ad40b8b..2b7cb07 100644
--- a/frontend/src/i18n/locales/es.json
+++ b/frontend/src/i18n/locales/es.json
@@ -395,8 +395,11 @@
"dueDate": "Vencimiento",
"paid": "Pagado",
"monthlyRate": "Tasa Mensual",
+ "monthly": "Mensual",
"annualRate": "Tasa Anual",
+ "annual": "Anual",
"totalRate": "Tasa Total",
+ "total": "Total",
"progress": "Progreso",
"paymentProgress": "Progreso de Pago",
"markPaid": "Marcar como Pagado",
diff --git a/frontend/src/i18n/locales/pt-BR.json b/frontend/src/i18n/locales/pt-BR.json
index 605dc72..673986a 100644
--- a/frontend/src/i18n/locales/pt-BR.json
+++ b/frontend/src/i18n/locales/pt-BR.json
@@ -397,8 +397,11 @@
"dueDate": "Vencimento",
"paid": "Pago",
"monthlyRate": "Taxa Mensal",
+ "monthly": "Mensal",
"annualRate": "Taxa Anual",
+ "annual": "Anual",
"totalRate": "Taxa Total",
+ "total": "Total",
"progress": "Progresso",
"paymentProgress": "Progresso de Pagamento",
"markPaid": "Marcar como Pago",
diff --git a/frontend/src/pages/LiabilityAccounts.jsx b/frontend/src/pages/LiabilityAccounts.jsx
index 21ca717..6f1f7e3 100644
--- a/frontend/src/pages/LiabilityAccounts.jsx
+++ b/frontend/src/pages/LiabilityAccounts.jsx
@@ -729,13 +729,13 @@ const LiabilityAccounts = () => {
{/* Detail Modal */}
{showDetailModal && selectedAccount && (
-
+
-
-
+
+
- {selectedAccount.name}
+ style={{ color: selectedAccount.color, fontSize: isMobile ? '0.9rem' : '1rem' }}>
+ {selectedAccount.name}
-
+
{/* Contract Type / Description */}
{selectedAccount.description && (
-
+
{t('liabilities.contractType')}: {selectedAccount.description}
)}
{/* Summary Cards */}
-
-
+
+
-
-
{t('liabilities.principal')}
-
{formatCurrency(selectedAccount.principal_amount, selectedAccount.currency)}
+
+
{t('liabilities.principal')}
+
{formatCurrency(selectedAccount.principal_amount, selectedAccount.currency)}
-
+
-
-
{t('liabilities.totalInterest')}
-
{formatCurrency(selectedAccount.total_interest, selectedAccount.currency)}
+
+
{t('liabilities.totalInterest')}
+
{formatCurrency(selectedAccount.total_interest, selectedAccount.currency)}
-
+
-
-
{t('liabilities.totalFees')}
-
{formatCurrency(selectedAccount.total_fees, selectedAccount.currency)}
-
{t('liabilities.extraCharges')}
+
+
{t('liabilities.totalFees')}
+
{formatCurrency(selectedAccount.total_fees, selectedAccount.currency)}
+ {!isMobile &&
{t('liabilities.extraCharges')}
}
-
+
-
-
{t('liabilities.totalContract')}
-
{formatCurrency(selectedAccount.total_contract_value, selectedAccount.currency)}
+
+
{t('liabilities.totalContract')}
+
{formatCurrency(selectedAccount.total_contract_value, selectedAccount.currency)}
{/* Interest Rates */}
-
-
+
+
-
-
{t('liabilities.monthlyRate')}
-
{formatPercent(selectedAccount.monthly_interest_rate)}
+
+
{isMobile ? t('liabilities.monthly') : t('liabilities.monthlyRate')}
+
{formatPercent(selectedAccount.monthly_interest_rate)}
-
+
-
-
{t('liabilities.annualRate')}
-
{formatPercent(selectedAccount.annual_interest_rate)}
+
+
{isMobile ? t('liabilities.annual') : t('liabilities.annualRate')}
+
{formatPercent(selectedAccount.annual_interest_rate)}
-
+
-
-
{t('liabilities.totalRate')}
-
{formatPercent(selectedAccount.total_interest_rate)}
+
+
{isMobile ? t('liabilities.total') : t('liabilities.totalRate')}
+
{formatPercent(selectedAccount.total_interest_rate)}
{/* Progress */}
-
-
+
+
{t('liabilities.paymentProgress')}
- {selectedAccount.paid_installments}/{selectedAccount.total_installments} {t('liabilities.installments').toLowerCase()}
+ {selectedAccount.paid_installments}/{selectedAccount.total_installments} {isMobile ? '' : t('liabilities.installments').toLowerCase()}
-
+
{selectedAccount.progress_percentage}%
-
+
{t('liabilities.paid')}: {formatCurrency(selectedAccount.principal_paid, selectedAccount.currency)}
{t('liabilities.remaining')}: {formatCurrency(selectedAccount.remaining_balance, selectedAccount.currency)}
{/* Installments Table */}
-
+
{t('liabilities.installmentsList')}
+
+ {isMobile ? (
+ /* Mobile: Cards layout */
+
+ {selectedAccount.installments?.map(inst => (
+
+
+ {/* Header */}
+
+
+ {inst.installment_number} - {formatDate(inst.due_date)}
+
+
+ {getStatusLabel(inst.status, true)}
+
+
+
+ {/* Values */}
+
+
+
{t('liabilities.installmentAmount')}
+
{formatCurrency(inst.installment_amount, selectedAccount.currency)}
+
+ {inst.paid_amount > 0 && (
+
+
{t('liabilities.paidAmount')}
+
inst.installment_amount ? 'text-warning' : 'text-success'}`}>
+ {formatCurrency(inst.paid_amount, selectedAccount.currency)}
+ {inst.paid_amount > inst.installment_amount && }
+
+
+ )}
+
+
{t('liabilities.capital')}
+
{formatCurrency(inst.principal_amount, selectedAccount.currency)}
+
+
+
{t('liabilities.interest')}
+
{formatCurrency(inst.interest_amount, selectedAccount.currency)}
+
+ {inst.fee_amount > 0 && (
+
+
{t('liabilities.fees')}
+
{formatCurrency(inst.fee_amount, selectedAccount.currency)}
+
+ )}
+
+
+ {/* Reconciliation */}
+ {inst.reconciled_transaction_id ? (
+
+
+ {t('liabilities.reconciled')}
+
+
+
+ ) : (
+
+ {inst.status !== 'paid' && (
+
+ )}
+
+
+ )}
+
+
+ ))}
+
+ ) : (
+ /* Desktop: Table layout */
@@ -948,12 +1040,14 @@ const LiabilityAccounts = () => {
+ )}
-