:root{--fond:#f6f5f1;--carte:#fff;--texte:#1c1b19;--texte-2:#6b675f;--trait:#e7e4dc;--accent:#1f6f5c;--accent-clair:#e3efe9;--alerte:#b54708;--alerte-clair:#fdf0e3;--danger:#b42318;--barre:calc(64px + env(safe-area-inset-bottom));--pied:72px;--rayon:14px;--ombre:0 1px 2px #0000000f}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--fond);color:var(--texte);margin:0;font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.45}h1{margin:8px 0 16px;font-size:28px;font-weight:700;line-height:1.2}h2{margin:0 0 8px;font-size:21px;font-weight:650;line-height:1.25}h3{margin:0}p{margin:0 0 8px}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.page{max-width:560px;padding:16px 16px calc(var(--barre) + 24px);margin:0 auto}.page.avec-pied{padding-bottom:calc(var(--barre) + var(--pied) + 24px)}.entete{margin-bottom:16px}.entete h1{margin-bottom:0}.date{color:var(--texte-2);margin:0}.carte{background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);margin-bottom:12px;padding:16px}.entete-carte{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.petit{color:var(--texte-2);font-size:15px}.discret{color:var(--texte-2);padding:8px 0;font-size:15px}.montant{font-variant-numeric:tabular-nums;margin:8px 0 4px;font-size:40px;font-weight:700;line-height:1.1}.prix,.quantite,.compteur,.jauge-legende{font-variant-numeric:tabular-nums}.etiquette{color:var(--accent);background:var(--accent-clair);border-radius:8px;padding:0 8px;font-size:15px;display:inline-block}.alerte{color:var(--alerte);background:var(--alerte-clair);border-radius:8px;padding:8px;font-weight:650}.erreur{color:var(--alerte);min-height:1em;font-size:15px}.actions{flex-direction:column;gap:8px;margin-top:16px;display:flex}.bouton{cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:48px;padding:8px 16px;font-weight:650}.bouton.principal{background:var(--accent);color:#fff}.bouton.secondaire{background:var(--carte);border-color:var(--trait);color:var(--accent)}.bouton.grand{min-height:64px;font-size:21px}.bouton.large{width:100%;margin-top:8px}.bouton.rond{background:var(--accent-clair);width:48px;color:var(--accent);padding:0;font-size:24px}.bouton.petit-bouton{font-size:15px}.jauge{background:var(--accent-clair);border-radius:8px;height:16px;margin:8px 0;overflow:hidden}.jauge-plein{background:var(--accent);height:100%}.jauge.depasse{background:var(--alerte-clair)}.jauge.depasse .jauge-plein{background:var(--alerte)}.jauge-legende{justify-content:space-between;align-items:baseline;display:flex}.plats,.ingredients,.lignes,.resultats,.stocks{margin:0;padding:0;list-style:none}.plats>li{border-top:1px solid var(--trait);padding:8px 0}.plats>li:first-child{border-top:none}.plats>li:has(.plat-bouton){padding:0}.plat-bouton{text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:48px;padding:8px 0;display:flex}.chevron{color:var(--accent);text-align:center;width:24px;font-size:24px}.ingredients{padding:0 0 8px 16px}.ingredients li{color:var(--texte-2);justify-content:space-between;gap:8px;font-size:15px;display:flex}.rayon{background:var(--fond);color:var(--texte-2);text-transform:uppercase;letter-spacing:.04em;margin:16px -16px 0;padding:8px 16px;font-size:15px;font-weight:650}.ligne{border-bottom:1px solid var(--trait);align-items:flex-start;gap:8px;display:flex}.ligne-case{cursor:pointer;flex:1;align-items:flex-start;gap:16px;min-width:0;min-height:56px;padding:8px 0;display:flex}.case{width:32px;height:32px;accent-color:var(--accent);flex:none;margin:4px 0 0}.ligne-corps{flex-direction:column;flex:1;min-width:0;display:flex}.ligne-haut,.ligne-bas{justify-content:space-between;gap:8px;display:flex}.ligne-bas{color:var(--texte-2);flex-wrap:wrap;justify-content:flex-start;font-size:15px}.nom{font-weight:650}.pour{flex:1}.ligne.cochee .nom,.ligne.cochee .prix,.ligne.cochee .ligne-bas{color:var(--texte-2);text-decoration:line-through}.ligne.cochee{opacity:.6}.ligne.en-rupture .nom,.ligne.en-rupture .prix,.ligne.en-rupture .ligne-bas{color:var(--texte-2)}.ligne.en-rupture .prix{opacity:.6;text-decoration:none}.etiquette.rupture{color:var(--alerte);background:var(--alerte-clair)}.bouton-rupture{border:1px solid var(--trait);background:var(--carte);min-width:48px;min-height:48px;color:var(--texte-2);cursor:pointer;border-radius:12px;flex:none;margin:4px 0;padding:0 8px;font-size:15px}.bouton-rupture.actif{background:var(--alerte-clair);border-color:var(--alerte);color:var(--alerte);font-weight:650}.plats>li.incomplet{padding-bottom:8px}.manque{color:var(--alerte);font-size:15px;display:block}.pied{left:0;right:0;bottom:var(--barre);height:var(--pied);background:var(--carte);border-top:1px solid var(--trait);justify-content:center;align-items:center;gap:16px;padding:0 16px;display:flex;position:fixed}.pied .montant{margin:0;font-size:28px}.stock{border-bottom:1px solid var(--trait);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.stock-texte{flex-direction:column;min-width:0;display:flex}.stock-actions{gap:8px;display:flex}.fixes{margin:0;padding:0;list-style:none}.fixe{border-bottom:1px solid var(--trait);justify-content:space-between;align-items:center;gap:8px;min-height:56px;padding:8px 0;display:flex}.fixe-texte{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;display:flex}.fixe .bouton{flex:none}.fixe.a-la-maison .nom{color:var(--texte-2)}.bouton.bascule[aria-pressed=true]{background:var(--accent-clair);border-color:var(--accent)}.resultat:disabled{color:var(--texte-2);cursor:default}.mois{margin:16px 0 0;font-size:18px;font-weight:650}.tickets,.lignes-ticket{margin:0;padding:0;list-style:none}.ticket{border-top:1px solid var(--trait)}.ticket-bouton{text-align:left;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:48px;padding:8px 0;display:flex}.lignes-ticket li{flex-wrap:wrap;justify-content:space-between;gap:0 8px;padding:4px 0;font-size:15px;display:flex}.lignes-ticket .libelle{flex:1;min-width:0}.lignes-ticket .remise{text-align:right;width:100%;color:var(--accent)}.plat-ligne{justify-content:space-between;align-items:center;gap:8px;min-height:48px;display:flex}.plat-ligne .bouton{flex:none}.niveau-minime{--niveau:var(--accent)}.niveau-important{--niveau:var(--alerte)}.niveau-a_ne_pas_faire{--niveau:var(--danger)}.pastille{background:var(--niveau);vertical-align:-1px;border-radius:50%;flex:none;width:14px;height:14px;margin-right:8px;display:inline-block}.groupe-niveau,.niveau{color:var(--niveau);align-items:center;font-weight:650;display:flex}.groupe-niveau{margin:16px 0 0;font-size:18px}.niveau{margin-bottom:8px}.candidat{flex-direction:column;align-items:stretch;gap:2px}.candidat-haut{justify-content:space-between;gap:8px;display:flex}.raisons{margin:0 0 8px;padding-left:20px}.raisons li{margin-bottom:4px}.corrections summary{min-height:48px;color:var(--accent);cursor:pointer;align-items:center;font-weight:650;display:flex}.ticket.semaine{flex-direction:column;gap:2px;padding:8px 0;display:flex}.feuille-fond{z-index:10;background:#1c1b1966;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.feuille{background:var(--carte);border-radius:var(--rayon) var(--rayon) 0 0;width:100%;max-width:560px;max-height:85vh;padding:24px 16px calc(16px + env(safe-area-inset-bottom));overflow-y:auto}.champ{border:1px solid var(--trait);background:var(--fond);border-radius:12px;width:100%;min-height:48px;margin:8px 0;padding:8px 16px}.resultat{border:none;border-bottom:1px solid var(--trait);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:48px;padding:8px 0;display:flex}.choix-quantite .nom{margin-top:8px}.barre{height:var(--barre);padding-bottom:env(safe-area-inset-bottom);background:var(--carte);border-top:1px solid var(--trait);z-index:5;display:flex;position:fixed;bottom:0;left:0;right:0}.onglet{min-height:48px;color:var(--texte-2);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:15px;text-decoration:none;display:flex}.onglet.actif{color:var(--accent);font-weight:650}.bascules{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.catalogue-texte{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.badges{flex-wrap:wrap;gap:4px;display:flex}.badges:empty{display:none}.produit{justify-content:space-between;align-items:center;gap:8px;display:flex}.produit .bouton{flex:none}.doses{margin:0;padding:0;list-style:none}.dose{border-top:1px solid var(--trait);grid-template-columns:1fr;gap:4px;padding:8px 0;display:grid}.dose .bouton{justify-self:start}.formulaire{flex-direction:column;gap:8px;display:flex}.formulaire p{margin:0}.identifiant{color:var(--texte-2);min-height:1em;font-size:13px}.contenance{grid-template-columns:2fr 1fr;gap:8px;display:grid}.coche{align-items:center;gap:8px;min-height:44px;display:flex}.coche input{flex:none;width:22px;height:22px}.ligne-ticket{flex-direction:column;align-items:flex-start}.modifications>li{flex-direction:column;gap:2px;display:flex}.bascules .bouton{padding-left:4px;padding-right:4px}.mesure{font-variant-numeric:tabular-nums;margin:0 0 4px;font-size:28px;font-weight:700}.code-sauvegarde{letter-spacing:.04em;text-align:center;word-break:break-all;-webkit-user-select:all;user-select:all;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:1.35rem}.proposition{border-left:3px solid var(--accent);margin:.5rem 0;padding-left:.75rem}.proposition p{margin:.2rem 0}
