Stability checkpoint — D1 finale + root hygiene (MR !117)

Closes D1 customers split started in B-7-2b. 4 dedicated services :
- CustomerImportExportService (step 1)
- CustomerSelectionService (step 2)
- CustomerCrudService (step 3)
- CustomerListStateService (step 4, this tag)

customers.component.ts : 838 → 457 LOC (-46 % cumulative). 4 services
= 670 LOC bounded, each one concern, all @Injectable providedIn:'root'.
Only aggregate + detail panel + create remain in parent — different
concerns each with their own reason to change.

Plus root hygiene : eslint.config.mjs moved to config/ with CI +
npm scripts updated. UI root file count 16 → 15 (cap met per
CLAUDE.md 'Root file hygiene').