CompanySettings/Logo requires tenant context and fails on anonymous kiosk pages. Added Kiosk/Logo which resolves the company from the KioskDevice cookie and proxies the blob directly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Invoice SMS: - Send Invoice modal now prompts Email/SMS/Both based on customer contact data - New /invoice/{token} customer-facing view page with full line items and pay button - PublicViewToken (permanent) added to Invoice; separate from expiring PaymentLinkToken - InvoiceSent SMS default template added; customizable via Notification Templates settings - {{viewUrl}} placeholder documented in template editor Customer Intake Kiosk: - Tablet kiosk flow: Contact → Job → Terms/Signature → Confirmation - Remote link mode for off-site customers (lighter form, no signature) - KioskHub (AllowAnonymous SignalR) for staff-to-tablet push without login - Staff activates tablet via cookie; sends remote link manually - Submitted sessions create Customer + Job automatically; fires in-app notification Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>