- add CurrencyField renderer (inherits NumberField for editing) with
cached Intl formatter; route via uiType "currency" in list/detail/form
- add resourceConfig.fieldTypes override applied in AppProvider, so
amount becomes currency for both Admin and the Expenses page
- render Expenses page through react-openapi fields (ListCellRenderer,
DetailFieldRenderer, applyDisplayFormat) instead of custom fields
- resolve relative /uploads entity logos against the API base URL on
load so entity logos render on the expenses feed
- drop custom avatar, currency/date formatters from the Expense module
- memoize accordion cards and groupByMonth so toggling one
expense re-renders O(1) cards instead of the whole list
- cache Intl.NumberFormat and date formatters per key (was
~2-3 instantiations per item per render)
- unmount collapsed accordion details via unmountOnExit to cut
initial mount cost and input delay
- restructure Account row in ExpenseDetail so Chip is not nested
inside <p> (fixes validateDOMNesting warning)
- avoid mutating expenses state array when sorting