Add a dashboard progress widget for post-onboarding activation.

Context:
This is a powder coating shop management app. We recently shortened the setup wizard and added a guided activation flow. Some setup items are intentionally deferred so users can evaluate the system quickly before fully configuring everything.

Goal:
Create a dashboard widget that helps users “get the most out of their shop” without making it feel like unfinished homework.

Do NOT call it “Complete setup.”

Recommended title:
“Get the most out of your shop”

Purpose:
Show progress based on real usage/configuration milestones and give users clear next actions.

Requirements:

1. Inspect existing dashboard structure

* Locate the dashboard controller/view/components.
* Reuse existing card, alert, progress bar, and button styles.
* Follow existing UI conventions.

2. Widget visibility
   Show the widget for companies that:

* Have completed the setup wizard
* Are not yet meaningfully activated OR still have recommended setup tasks incomplete

It is okay to keep showing it until all tasks are complete.

3. Progress calculation
   Create a checklist of 5–6 items max.

Suggested items:

A. Create your first quote or job
Complete when:

* company has at least one quote OR at least one job

CTA:

* “Create quote/job” or “Start workflow”

B. Move a job through your workflow
Complete when:

* at least one job has had a status/stage change
* If there is no existing way to detect this, use the closest available activity/history/status timestamp

CTA:

* “Open daily board”

C. Create your first invoice
Complete when:

* company has at least one invoice

CTA:

* “Create invoice”

D. Invite your team
Complete when:

* company has more than one active user/team member

CTA:

* “Invite team”

E. Customize pricing
Complete when:

* company has configured pricing tiers/custom pricing settings beyond defaults
* If this is hard to detect reliably, make this optional or use a simple existing flag/count

CTA:

* “Customize pricing”

F. Review payment terms
Complete when:

* company has customized payment terms from default
* If this is hard to detect reliably, make this optional or use a simple existing flag/value comparison

CTA:

* “Review terms”

4. UX copy
   Use friendly, value-focused language.

Widget title:
“Get the most out of your shop”

Subtitle:
“Complete a few quick steps to unlock the full workflow.”

Progress text:
“X of Y complete”

Avoid wording like:

* “Incomplete setup”
* “Missing configuration”
* “Required steps”

5. Visual design

* Use a card-style widget near the top of the dashboard.
* Include a progress bar.
* Show checklist rows with completed and incomplete states.
* Completed items should feel rewarding.
* Incomplete items should have one clear CTA.
* Keep it compact and non-annoying.

6. Behavior

* Each checklist item should link to the most relevant existing page or action.
* Do not build new duplicate workflows.
* Reuse existing guided activation route for “Create your first quote or job” if available.
* If a task cannot be detected reliably yet, implement it conservatively or leave a TODO comment explaining why.

7. Data/query logic

* Prefer calculating progress server-side in the dashboard view model.
* Avoid expensive queries.
* Reuse existing repositories/services if available.
* Keep the logic readable and testable.

8. Dismissal behavior
   Add optional dismissal if easy:

* Let user collapse or dismiss the widget.
* If dismissed, do not permanently hide it forever unless all tasks are complete.
* Prefer “collapse” over full dismissal.
* Store dismissal/collapse state only if there is already a simple place to store dashboard preferences.

9. Important product guidance
   This widget should guide users from evaluation into real adoption.

The emotional framing should be:
“You’re already making progress — here are the next valuable things to try.”

Not:
“You failed to finish setup.”

10. Implementation style
    Before coding:

* Inspect relevant dashboard, setup wizard, guided activation, company preference, quote, job, invoice, user/team, pricing, and payment term structures.
* Propose a concise implementation plan.
* Then implement incrementally.

After coding:

* Summarize changed files.
* Explain how progress is calculated.
* Provide manual QA steps.

Manual QA scenarios:

* Brand new company after setup wizard
* Company with first quote/job created
* Company with moved job/status change
* Company with invoice created
* Company with invited team member
* Company with all tasks complete
