Ticket UI and generation logic