Remove newest-card highlighting so every active service point looks the same, sort the board stably by destination, and have the display announce whenever a counter’s ticket changes (falling back when a server voice row is missing).
Co-authored-by: Cursor <cursoragent@cursor.com>
Welcome screen, choice cards, form progress, and success state now follow the same lobby-tablet visual language with idle reset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Customers can pick a service, optionally enter details, and receive a ticket on a branded touchscreen flow with admin-configurable queues and auto-reset.
Co-authored-by: Cursor <cursoragent@cursor.com>
Server-render initial payload, poll with same-origin relative URLs, fall back to branch queues when none assigned, and improve contrast so stats remain visible if custom CSS is missing.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add corporate layout, live preview, URL copy, queue details, and a polished TV display with clock, stats sidebar, and branded now-serving cards.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add tap-to-enable speech overlay, stop marking announcements played on TTS errors, pick voices by locale, and scope pending announcements to the display's queues.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace Alpine-incompatible Set and stuck speaking lock with a plain-object queue; resume speechSynthesis and exempt display ack from CSRF.
Co-authored-by: Cursor <cursoragent@cursor.com>
Poll displays every 1.2s with client-side TTS ack; expose service API for sibling apps; redesign tickets, counters, and staff console.
Co-authored-by: Cursor <cursoragent@cursor.com>