Dynamic — change the destination later without reprinting.
Clients
Group QR codes by client. Deleting a client never deletes its codes — they become unassigned.
Campaigns
Campaigns live under a client. Pick a client, then add campaigns.
Import QR codes from CSV
Columns: name,destination,tags,client,campaign (header row optional). Missing clients/campaigns are created automatically (admins). One row = one code.