Remplace le formulaire-liste (champs quantite) par un ecran de caisse facon
tablette : onglets categories + grille de tuiles produits/menus (tap = ajout)
+ panneau commande persistant a droite (lignes avec +/-, total, bouton
"Encaisser X,XX EUR"). Le contrat serveur ne change pas (items_json -> store ->
createStaffOrder) ; les acquis du lot precedent sont conserves (verrou drive,
service_tag dine_in, format Normal/Maxi, prix indicatifs cote client).
Accessibilite : pattern tablist clavier complet (roving tabindex + fleches +
Home/End + aria-controls/tabpanel), focus conserve au changement d'onglet,
region live concise (total + nb articles), tuiles ouvrant une modale annoncees
(aria-haspopup + libelle "a composer"). Quantite menu desormais ajustable
(facturee par quantite). Catalogue passe en scripts JSON inertes (JSON_HEX_*),
rendu via textContent. CSP-safe (aucun handler inline).
Tests : JS 135, PHP unit 406, PHPStan L6. Apercu valide par le commanditaire.