:root{--marque-fond:#f5efe6;--marque-primaire:#5c3a21;--marque-primaire-appuye:#472c18;--marque-sur-primaire:#fff;--marque-filet:#e3d7c6;--marque-teinte:#ede3d5;--surface-carte:#fff;--texte:#2b211a;--texte-doux:#6e6157;--texte-inactif:#a69a90;--surface-inactive:#e9e3dc;--ombre-carte:0 1px 2px #5c3a210d, 0 8px 24px -12px #5c3a212e;--anneau-focus:0 0 0 3px #5c3a2166;--succes:#1f7a4c;--succes-fond:#e3efe8;--attention:#b9781a;--attention-fond:#f6ecd4;--danger:#b23a2a;--danger-fond:#f7e6e2;--statut-recue:#8b8f94;--statut-confirmee:#2f8fa8;--statut-preparation:#e05a1e;--statut-prete:#f2a51a;--statut-livraison:#6aa63a;--statut-livree:#1f7a4c;--statut-payee:#032f1a;--statut-expiree:#6b7076;--statut-annulee:#b23a2a}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--marque-fond);color:var(--texte);-webkit-font-smoothing:antialiased;font-family:"Source Sans 3",Segoe UI,system-ui,sans-serif;font-size:16px;line-height:1.5}h1,h2,h3{margin:0;font-family:Montserrat,Helvetica Neue,Arial,sans-serif}button,input,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--anneau-focus);border-radius:4px;outline:none}.bandeau{background:var(--marque-primaire);color:var(--marque-sur-primaire);padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top,0px));z-index:10;flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex;position:sticky;top:0}.bandeau h1{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:15px;font-weight:800}.bandeau .droite{align-items:center;gap:8px;min-width:0;margin-left:auto;font-size:14px;display:flex}.bandeau .compte{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bandeau button{border:1px solid var(--marque-sur-primaire);color:var(--marque-sur-primaire);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:4px 12px}.navigation-admin{scrollbar-width:none;flex-basis:100%;gap:8px;font-size:14px;display:flex;overflow-x:auto}.bandeau .langues{gap:4px;margin-left:auto;display:flex}.bandeau .langues button{letter-spacing:.06em;min-width:44px;min-height:32px;font-size:13px;font-weight:700}.bandeau .langues button[aria-pressed=true]{background:var(--marque-sur-primaire);color:var(--marque-primaire)}.page{max-width:720px;margin:0 auto;padding:16px}.carte{background:var(--surface-carte);border:1px solid var(--marque-filet);box-shadow:var(--ombre-carte);border-radius:16px;margin-bottom:16px;padding:16px}.titre-carte{letter-spacing:.14em;text-transform:uppercase;color:var(--marque-primaire);margin:0 0 12px;font-family:Montserrat,sans-serif;font-size:12px;font-weight:700}.ligne{border-bottom:1px solid var(--marque-filet);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.ligne:last-child{border-bottom:0}.ligne .nom{font-weight:600}.ligne .detail{color:var(--texte-doux);font-size:14px}.ligne .quantite{white-space:nowrap;flex:none}.total{font-size:19px;font-weight:700}.pas{align-items:center;gap:10px;display:flex}.pas button{border:1px solid var(--marque-filet);background:var(--marque-teinte);width:40px;height:40px;color:var(--marque-primaire);cursor:pointer;border-radius:50%;font-size:20px}.pas .q{text-align:center;min-width:1.5em;font-weight:700}.bouton-principal,.bouton-second{cursor:pointer;text-align:center;border-radius:12px;width:100%;margin-top:12px;padding:14px 16px;font-size:16px;font-weight:700;display:block}.bouton-principal{background:var(--marque-primaire);color:var(--marque-sur-primaire);border:0}a.bouton-principal,a.bouton-second{text-decoration:none}.bouton-principal:active{background:var(--marque-primaire-appuye)}.bouton-principal:disabled{background:var(--surface-inactive);color:var(--texte-inactif);cursor:default}.bouton-second{color:var(--marque-primaire);border:1px solid var(--marque-primaire);background:0 0}.bouton-ligne{width:auto;margin:0;padding:10px 16px}.moyen.inactif,.moyen.inactif .detail{color:var(--texte-inactif)}.avis{border-radius:12px;margin:12px 0;padding:12px 14px}.avis.succes{background:var(--succes-fond);color:var(--succes)}.avis.attention{background:var(--attention-fond);color:var(--attention)}.avis.danger{background:var(--danger-fond);color:var(--danger)}.numero{text-align:center;padding:8px 0 4px}.numero .etiquette{color:var(--texte-doux);font-size:14px}.numero .valeur{color:var(--marque-primaire);letter-spacing:.02em;font-family:Montserrat,sans-serif;font-size:56px;font-weight:900}.pastille{color:var(--marque-sur-primaire);border-radius:999px;padding:4px 12px;font-size:14px;font-weight:700;display:inline-block}.pastille.recue{background:var(--statut-recue)}.pastille.payee{background:var(--statut-payee)}.pastille.prete{background:var(--statut-prete);color:var(--texte)}.pastille.livree{background:var(--statut-livree)}.pastille.expiree{background:var(--statut-expiree)}.pastille.annulee{background:var(--statut-annulee)}.champ{margin:8px 0 4px;font-weight:600;display:block}.saisie{border:1px solid var(--marque-filet);background:var(--surface-carte);border-radius:10px;width:100%;padding:12px;font-size:18px}.vide{text-align:center;color:var(--texte-doux);padding:24px 8px}.onglets{gap:8px;margin-bottom:12px;display:flex}.onglets button{border:1px solid var(--marque-primaire);color:var(--marque-primaire);cursor:pointer;background:0 0;border-radius:10px;flex:1;padding:10px;font-weight:700}.onglets button[aria-pressed=true]{background:var(--marque-primaire);color:var(--marque-sur-primaire)}.onglets.quatre{flex-wrap:wrap}.onglets.quatre button{flex:140px}.etat-caisse{color:var(--texte-doux);margin:0 0 8px;font-size:14px}.cloture .ecart-non-nul .montant{color:var(--danger)}.especes-agent{font-weight:700}.detail.annulees{color:var(--texte-doux);padding:6px 0 0;font-size:14px}.pied{justify-content:center;gap:20px;max-width:720px;margin:0 auto;padding:8px 16px 24px;font-size:14px;display:flex}.pied a,.vos-commandes a{color:var(--marque-primaire)}.texte-legal{white-space:pre-wrap}.vos-commandes{font-weight:600}.photo-formule{object-fit:cover;border-radius:10px;flex:none;width:64px;height:64px}.ligne .texte-formule{flex:1}.page.admin{max-width:1100px}.onglets-admin{flex-wrap:wrap}.onglets-admin button{flex:140px}.grille-champs{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 16px;display:grid}.champ .saisie,.champ input[type=file]{margin-top:4px;font-weight:400;display:block}.case{cursor:pointer;margin:8px 0;display:block}.carte.inactif{opacity:.6}.photo-admin{flex-wrap:wrap;align-items:center;gap:16px;margin:8px 0;display:flex}.photo-admin img{object-fit:cover;border-radius:10px;width:96px;height:96px}.tableau{border-collapse:collapse;width:100%;margin:12px 0}.tableau th,.tableau td{text-align:left;border-bottom:1px solid var(--marque-filet);padding:8px}.saisie-courte{max-width:110px}.saisie.a-choisir{border:2px solid var(--danger)}.alerte-champ{color:var(--danger);margin-top:4px;font-size:14px;font-weight:400;display:block}.libelle{border-bottom:1px solid var(--marque-filet);padding:10px 0}.ligne-libelle{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.ligne-libelle .saisie{flex:280px;padding:8px 10px;font-size:16px}.ligne-libelle .langue{color:var(--texte-doux);width:2em;font-weight:700}.ligne-libelle .avis{flex-basis:100%;margin:4px 0 0}.espace-haut{margin-top:20px}.grille-qr{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.carte.qr img{width:100%;max-width:280px;margin:0 auto;display:block}.carte.qr .adresse{text-align:center;word-break:break-all;margin:8px 0;font-family:ui-monospace,monospace}.grille-cuisine{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.ticket{background:var(--surface-carte);border:1px solid var(--marque-filet);border-left:8px solid var(--statut-payee);border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.ticket .num{color:var(--marque-primaire);font-family:Montserrat,sans-serif;font-size:34px;font-weight:900}.ticket ul{margin:0;padding-left:18px;font-size:18px}.ticket .heure{color:var(--texte-doux);font-size:14px}.etat-connexion{font-size:13px}.page.murale{max-width:none}.entete-mur{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.total-formules{gap:18px;margin:0 0 12px;font-size:20px;display:flex}.ticket.corrige{border-left-color:var(--attention)}.ticket .correction{background:var(--attention-fond);color:var(--attention);border-radius:8px;padding:6px 8px;font-weight:700}.ticket.annulee{border-left-color:var(--danger);background:var(--danger-fond)}.ticket.annulee .num,.ticket.annulee ul{color:var(--texte-doux);text-decoration:line-through}.ticket .annulation{background:var(--danger);color:var(--surface-carte);border-radius:8px;padding:6px 8px;font-size:18px;font-weight:900}.production{margin-top:20px}.lot-formule .gauche{flex:auto;min-width:0}.jauge{background:var(--marque-teinte);border-radius:3px;height:6px;margin:6px 0;overflow:hidden}.jauge i{background:var(--succes);height:100%;display:block}.lot-formule .reste{text-align:right;flex:none;min-width:76px}.lot-formule .reste .k{letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);font-family:Montserrat,sans-serif;font-size:11px;font-weight:700}.lot-formule .reste .v{font-variant-numeric:tabular-nums;color:var(--marque-primaire);font-size:30px;font-weight:800;line-height:1.1}.lot-formule.stock-bas{border-left:6px solid var(--danger);background:var(--danger-fond);border-radius:8px;padding-left:10px;padding-right:8px}.lot-formule.stock-bas .reste .v{color:var(--danger)}.pastille.stock-bas{background:var(--danger);color:var(--surface-carte);white-space:nowrap;padding:2px 10px;font-size:12px}.pastille.aucun-lot{background:var(--surface-inactive);color:var(--texte-doux);white-space:nowrap;padding:2px 10px;font-size:12px}.saisie-lot{border-top:1px solid var(--marque-filet);margin-top:8px;padding-top:12px}.champs-lot{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px;display:grid}.champs-lot .champ{margin:0}select.saisie{font:inherit;font-size:16px}.derniers-lots{margin-top:16px}.derniers-lots .ligne{padding:6px 0}.correction-lot .montant{color:var(--danger)}.page.equipes{max-width:900px}.tableau-equipes td.n,.tableau-equipes th:not(:first-child){text-align:center}.personne .actions-personne{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.personne .actions-personne .saisie{width:auto;padding:8px;font-size:15px}.personne .en-poste{color:var(--succes);font-weight:600}.personne{flex-wrap:wrap}.page.distribution{max-width:900px}.commande-retrait .entete-commande{justify-content:space-between;align-items:center;gap:12px;display:flex}.commande-retrait .num{color:var(--marque-primaire);font-family:Montserrat,sans-serif;font-size:30px;font-weight:900}.commande-retrait .detail{color:var(--texte-doux);margin:6px 0;font-size:14px}.actions{flex-wrap:wrap;gap:8px;display:flex}.actions button{flex:140px}.bouton-second.danger{color:var(--danger);border-color:var(--danger)}.motifs{border:0;margin:8px 0;padding:0}.trouvee .carte{border:2px solid var(--marque-primaire)}.page.retrait{text-align:center;max-width:none}.titre-retrait{color:var(--marque-primaire);flex-direction:column;gap:4px;margin:8px 0 16px;font-size:34px;display:flex}.traduction{color:var(--texte-doux);font-size:.6em;font-weight:400;display:block}.tableau-retrait{flex-wrap:wrap;justify-content:center;gap:20px;margin:24px 0;display:flex}.tableau-retrait b{background:var(--surface-carte);color:var(--marque-primaire);border:2px solid var(--marque-filet);border-radius:16px;padding:12px 28px;font-family:Montserrat,sans-serif;font-size:72px;font-weight:900}.tableau-retrait b.neuf{background:var(--statut-prete);color:var(--texte);border-color:var(--statut-prete)}.consigne{flex-direction:column;gap:4px;font-size:24px;display:flex}.choix-comptoir{justify-content:center;gap:24px;font-size:40px;font-weight:900;display:flex}.choix-comptoir a{color:var(--marque-primaire)}.page.direction{max-width:1100px}.entete-direction{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.choix-jour{color:var(--texte-doux);font-size:14px}.choix-jour input{font:inherit;border:1px solid var(--marque-filet);border-radius:8px;padding:4px 8px}.tuiles{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.tuile{background:var(--surface-carte);border:1px solid var(--marque-filet);border-radius:16px;padding:16px}.tuile .k{letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);font-family:Montserrat,sans-serif;font-size:11px;font-weight:700}.tuile .v{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--marque-primaire);font-size:clamp(1.5rem,1.2rem + 1.4vw,2.5rem);font-weight:600;line-height:1.15}.tuile .d{color:var(--texte-doux);font-size:12px}.tuile.fort{background:var(--marque-primaire);border-color:var(--marque-primaire)}.tuile.fort .k,.tuile.fort .v,.tuile.fort .d{color:var(--marque-sur-primaire)}.scroll-x{overflow-x:auto}.tableau-direction{font-size:14px}.tableau-direction th{letter-spacing:.14em;text-transform:uppercase;color:var(--texte-doux);font-family:Montserrat,sans-serif;font-size:11px}.tableau-direction td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tableau-direction th:not(:first-child){text-align:right}.tableau-direction.bilan th:nth-child(2),.tableau-direction.stocks th:nth-child(2){text-align:left}.tableau-direction td.neg{color:var(--danger);font-weight:600}.total-ligne{font-weight:700}.ligne .montant{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.note{color:var(--texte-doux);margin:8px 0 0;font-size:14px}.avis.neutre{background:var(--marque-teinte);color:var(--texte-doux)}@media (width<=600px){.tableau-direction th,.tableau-direction td{padding:8px 4px}.tableau-direction th{letter-spacing:.04em}.tableau-direction td.n:last-child{white-space:normal}.tableau-direction .pastille{padding:2px 8px;font-size:11px}.tableau-direction.bilan,.tableau-direction.bilan thead,.tableau-direction.bilan tbody{display:block}.tableau-direction.bilan tr{grid-template-columns:minmax(0,1.2fr) repeat(4,minmax(0,1fr));display:grid}.tableau-direction.bilan th:first-child{display:none}.tableau-direction.bilan td:first-child{color:var(--marque-primaire);border-bottom:0;grid-column:1/-1;padding:12px 4px 0;font-weight:700}.tableau-direction.bilan tr.suite td:first-child{display:none}.tableau-direction.stocks,.tableau-direction.stocks thead,.tableau-direction.stocks tbody{display:block}.tableau-direction.stocks tr{grid-template-columns:minmax(0,1.2fr) repeat(4,minmax(0,1fr));display:grid}.tableau-direction.stocks th:first-child{display:none}.tableau-direction.stocks td:first-child{color:var(--marque-primaire);border-bottom:0;grid-column:1/-1;padding:12px 4px 0;font-weight:700}.tableau-direction.stocks tr.suite td:first-child{display:none}}.remarque{padding:0 16px calc(16px + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:flex-end;gap:6px;display:flex}.remarque .avis{margin:0;padding:6px 10px;font-size:14px}.bouton-remarque{background:var(--surface-carte);color:var(--marque-primaire);border:1px solid var(--marque-primaire);box-shadow:var(--ombre-carte);cursor:pointer;border-radius:999px;padding:8px 14px;font-weight:700}.remarque.ouverte{align-items:stretch}.remarque.ouverte .carte{width:100%;max-width:720px;margin:0 auto}.remarque textarea.saisie{resize:vertical;min-height:96px}.actions-remarque{flex-wrap:wrap;gap:8px;display:flex}.actions-remarque button{flex:140px}.remarque-ligne .texte-remarque{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:4px}
