Collect payment from the field, portal access controls tightened, and a wave of tech app and dispatch improvements
- Techs can now charge a customer's card or send a payment link directly from a job — the invoice is issued and a Stripe Checkout session opens in one step, with no office follow-up required.
- Shop owners can connect a Stripe account from the onboarding wizard or Settings → Payments, and a persistent nudge stays visible until card and ACH collection are fully enabled.
- Portal contacts with view-only roles (billing, spend viewer) can no longer submit approvals, upload evidence, or record sign-offs by posting directly — the controls are now hidden and the server refuses the request.
- Techs tapping their name in the top bar now land on their profile page, the dispatch schedule now shows a visible edge shade when hours extend past the visible area, and the tech app's Help sheet separates guide search, guide browsing, and the chat entry point into clearly labeled zones.
- Payroll exports now support ADP RUN's Time Sheet Import format alongside the existing CSV — choose the provider in Settings → Payroll, assign each employee a provider ID, and export; employees with no ID mapped are refused loudly before any rows are sent.
- Form controls across the app (selects, date inputs, buttons) now share a consistent 36px height on desktop so filter bars and side-by-side fields no longer render at mismatched sizes.
- Email CTAs now render correctly in dark mode across all 32 notification templates, including invitation emails.