{% with messages = get_flashed_messages(with_categories=true) %}
{% for category, message in messages %}
{{ message }}
{% endfor %}
{% endwith %}
{# ===== Top summary card with sparkline ===== #}
{% if account.current_balance is not none %}${{ '{:,.2f}'.format(account.current_balance) }}{% else %}—{% endif %}
APR
{% if account.apr %}{{ '{:.2f}'.format(account.apr) }}%{% else %}—{% endif %}
Min
{% if account.minimum_payment %}${{ '{:,.2f}'.format(account.minimum_payment) }}{% else %}—{% endif %}
Alloc
{% if account.attack_allocation %}${{ '{:,.0f}'.format(account.attack_allocation) }}{% else %}—{% endif %}
Status
{{ account.status }}
{% if account.autopay_enabled %}
Next autopay
{{ account.autopay_next_date or '—' }}
{% endif %}
{% if spark and spark|length > 1 %}
{% endif %}
{% if account.notes %}
{{ account.notes }}
{% endif %}
{% if account.current_balance is not none and account.current_balance <= 5 and account.status == 'active' %}
{% endif %}
{# ===== Snapshot quick-add ===== #}
// Snapshot balance
{# ===== Edit form ===== #}
// Edit account
{# ===== Recent transactions ===== #}
// Recent transactions
{% if transactions %}
| Date | Type | Description |
Amount | Source | Conf? |
{% for t in transactions %}
| {{ t.tx_date }} |
{{ t.tx_type }} |
{{ t.description or '—' }} |
${{ '{:,.2f}'.format(t.amount) }} |
{{ t.source }} |
{{ '✓' if t.confirmed else '·' }} |
{% endfor %}
{% else %}
No transactions yet.
{% endif %}
{# ===== Snapshot history ===== #}
// Snapshot history
{% if snapshots %}
| When | Balance | Source | Notes |
{% for s in snapshots %}
| {{ s.snapshot_at[:19] | replace('T',' ') }} |
${{ '{:,.2f}'.format(s.balance) }} |
{{ s.source }} |
{{ s.notes or '' }} |
{% endfor %}
{% else %}
No snapshots yet.
{% endif %}
{% include 'includes/today_panel.html' ignore missing %}
{% include 'includes/active_timer_strip.html' ignore missing %}