0 ? `Last month: ${fmt(summary.previous_month_total)}` : undefined}
+ />
+ {/* In bank mode the hero card already surfaces the projected remaining,
+ so only show the Remaining card when there's no bank hero. */}
+ {!bankTracking?.enabled && (
+
+ )}
-
{summary.trend && }
) : null}
+ {/* Compact month-progress line — quick "how far through the month am I?" */}
+ {showSummaryCards && !loading && !isError && summary?.total_expected > 0 && (() => {
+ const billsLeft = (summary.count_upcoming ?? 0) + (summary.count_late ?? 0);
+ return (
+
+ {fmt(summary.paid_toward_due)}
+ {' of '}
+ {fmt(summary.total_expected)}
+ {' paid'}
+ {billsLeft > 0 && <> · {billsLeft} bill{billsLeft === 1 ? '' : 's'} left>}
+
+ );
+ })()}
+
{/* ── Safe to Spend ── */}
{!isError && !loading && showSafeToSpend && isCurrentMonth && cashflow && (