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').