{# One expense-account row from a loop-bound `row` view-model. All structure, wiring, and field names are literal here, built from `row.index` + the shared `urls`; only data (the Alpine x-data, db/id, errors, and the typeahead / location / money control contexts) comes from the view-model. The location cell (#account-location-N) swaps just itself on account change; the remove button swaps the whole #bulk-code-form. #}
{{ row.account_error }}
{{ row.location_error }}
{{ row.pct_error }}