A checking/savings account with a genuinely negative balance was shown as
positive on the dashboard account card and ADDED to the net worth chart,
while the accounts page displayed it correctly as negative.
Root cause: the dashboard used `getAccountSign(type) * Math.abs(value)`.
Liabilities (credit_card/loan) are stored as positive magnitudes, so
`-abs()` was correct for them, but for an asset holding a negative balance
`+abs()` flipped the sign and summed it in.
- Add `netWorthContribution(type, balance)`: liabilities subtract their
magnitude, assets keep their real sign.
- Dashboard account card now shows the raw signed balance, matching the
accounts page.
- Net worth totals, trend indicators and the stacked-asset total use the
raw signed value instead of `Math.abs`.
- Add regression tests for a negative asset balance.