Stability checkpoint — Customer widgets + ConfirmModal + 5 specs Single MR landed since stable-v1.0.40 (UI !109 → 87568f2) : ♻️ Refactoring - B-7-2b extension : CustomerDetailPanel + CustomerCreateForm widgets. customers.component.html : 494 → 252 LOC (-49%) net of all extractions. Each widget self-contained with signal inputs + event outputs. - B-7-2c : new ConfirmModal generic widget (shared/) replaces 2 near- identical confirmation modals in customers (Delete + Batch Delete). Reusable for any "are you sure?" UX across the app. 🧪 Tests - 5 widget spec files added : - dashboard-health-probes (statusClass + statusLabel logic tests) - dashboard-quality-summary (smoke) - dashboard-architecture-map (6 topology helpers tested) - customer-detail-panel (smoke) - customer-create-form (form state lifecycle + submit guard tests) - confirm-modal (smoke + variant/defaults) - Total : 308 tests passing across 45 spec files (was 297/42 in 1.0.39 baseline = +11 tests, +3 spec files). 🐛 Bug fix - ConfirmModal outputs renamed cancel/confirm → cancelled/confirmed (eslint @angular-eslint/no-output-native flagged the DOM-event shadowing). Past-tense form keeps semantics + lints clean. Post-merge main pipeline #411 green on SHA a1c731c (final commit of the MR).