/* Menus Cuenet : habillage de l'application (palette lagon / coucher de soleil, Bricolage Grotesque + Roboto) */
:root{
  --ground:#F1F5F8; --surface:#FFFFFF; --surface-2:#E7EEF3; --ink:#0E2433; --muted:#5C6E7A; --line:#D5DFE6;
  --deep:#0E2433; --deep-2:#173848; --deep-ink:#E6EEF3; --deep-muted:#8FA6B4;
  --lagoon:#1B8A9C; --lagoon-bg:#E0F2F4; --sunset:#EE6A3B; --sunset-hover:#D9552A; --on-sunset:#FFFFFF;
  --ok:#2E8B57; --ok-bg:#E1F2E8; --ocre:#94620A; --ocre-bg:#FCF6E9; --ocre-line:#EAD3A0; --warn:#B8790A; --warn-bg:#FBF0D6; --bad:#C43C2C; --bad-bg:#FBE4E0; --draft:#5C6E7A; --draft-bg:#E7EEF3;
  --shadow:0 1px 2px rgba(14,36,51,.06),0 8px 24px rgba(14,36,51,.08); --radius:10px;
  --display:"Bricolage Grotesque","Roboto",system-ui,sans-serif; --body:"Roboto",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:28px;font-weight:800;line-height:1.1} h2{font-size:19px;font-weight:700} h3{font-size:15px;font-weight:700}
p{margin:0} a{color:var(--lagoon)} button{font:inherit;cursor:pointer} img{max-width:100%;display:block}
code{font-size:.92em;background:var(--surface-2);padding:1px 5px;border-radius:4px}
.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}
/* barre latérale */
.side{background:var(--deep);color:var(--deep-ink);padding:22px 16px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}
.retour-portail{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;color:var(--deep-muted);font-size:12px;font-weight:500;letter-spacing:.04em;text-decoration:none;padding:6px 10px;margin:-6px 0 -4px -4px;border-radius:6px;transition:.15s}
.retour-portail span{font-size:15px;line-height:1;transition:transform .15s} .retour-portail:hover{color:#fff;background:var(--deep-2)} .retour-portail:hover span{transform:translateX(-2px)}
.brand{display:flex;align-items:center;gap:12px;padding:2px 6px;color:inherit;text-decoration:none}
.brand img{width:46px;height:46px}
.brand strong{display:block;font-family:var(--display);font-size:20px;font-weight:800;line-height:1}
.brand small{display:block;color:var(--deep-muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:5px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--deep-ink);text-decoration:none;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:500}
.nav a:hover{background:var(--deep-2)}
.nav a.actif{background:var(--deep-2);box-shadow:inset 3px 0 0 var(--sunset)}
.nav .compte{background:var(--sunset);color:var(--on-sunset);font-size:11px;font-weight:700;border-radius:999px;padding:1px 8px;font-variant-numeric:tabular-nums}
.side .photo{border-radius:8px;overflow:hidden;aspect-ratio:16/9;background:var(--deep-2)} .side .photo img{width:100%;height:100%;object-fit:cover}
.side .qui{margin-top:auto;border-top:1px solid var(--deep-2);padding-top:14px;font-size:12px;color:var(--deep-muted);line-height:1.6}
.side .qui b{color:var(--deep-ink);font-weight:500} .side .qui a{color:var(--deep-muted)}
/* zone principale */
main{min-width:0;display:flex;flex-direction:column}
.flash{margin:18px 28px 0;padding:11px 16px;border-radius:8px;background:var(--ok-bg);color:var(--ok);font-weight:500;font-size:14px;border-left:3px solid var(--ok)}
.flash.erreur{background:var(--bad-bg);color:var(--bad);border-left-color:var(--bad)}
.vue{padding:28px;display:flex;flex-direction:column;gap:22px}
.entete{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.entete .sur{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:6px}
.entete .sous{color:var(--muted);margin-top:6px;max-width:64ch}
.entete .droite{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
/* pastilles, boutons */
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.ok{background:var(--ok-bg);color:var(--ok)} .pill.warn{background:var(--warn-bg);color:var(--warn)} .pill.bad{background:var(--bad-bg);color:var(--bad)} .pill.draft{background:var(--draft-bg);color:var(--draft)} .pill.info{background:var(--lagoon-bg);color:var(--lagoon)}
.btn{display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:10px 16px;font-weight:500;font-size:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;transition:background .15s;line-height:1.2}
.btn:hover{background:var(--surface-2)}
.btn.primaire{background:var(--sunset);border-color:var(--sunset);color:var(--on-sunset);font-weight:700} .btn.primaire:hover{background:var(--sunset-hover);border-color:var(--sunset-hover)}
.btn.danger{color:var(--bad);border-color:rgba(196,60,44,.4)} .btn.danger:hover{background:var(--bad-bg)}
.btn.lien{border-color:transparent;background:none;color:var(--lagoon);padding-left:6px;padding-right:6px}
.btn.grand{padding:13px 20px;font-size:15px} .btn.petit{padding:6px 10px;font-size:13px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
form.inline{display:inline}
:focus-visible{outline:2px solid var(--sunset);outline-offset:2px}
/* cartes et grilles */
.carte{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.carte.pleine{padding:0;overflow:hidden}
.carte h2,.carte h3{margin-bottom:10px}
.grille{display:grid;gap:18px} .g2{grid-template-columns:1fr 1fr} .g4{grid-template-columns:repeat(4,1fr)}
.g-edit{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr)} .g-valid{grid-template-columns:minmax(0,1fr) 400px}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,1fr)}.g-edit,.g-valid,.g2{grid-template-columns:1fr}}
@media (max-width:760px){.shell{grid-template-columns:1fr}.side{position:static;height:auto}.g4{grid-template-columns:1fr}.vue{padding:18px}.flash{margin:14px 18px 0}}
/* Téléphone : la barre latérale devient un bandeau compact (marque et compte sur une ligne, navigation en onglets dessous), pour que
   le contenu commence dès le premier écran. La photo d'ambiance est retirée ; le compte ne garde que le nom et le lien. */
@media (max-width:760px){
  .side{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:12px 16px 0}
  .side .retour-portail{grid-column:1/-1;margin:0 0 -4px -6px;padding:4px 6px}
  .side .brand{padding:0;gap:10px} .side .brand img{width:34px;height:34px} .side .brand strong{font-size:17px} .side .brand small{display:none}
  .side .qui{grid-column:2;grid-row:2;margin:0;border:0;padding:0;font-size:0;line-height:1.35;text-align:right}
  .side .qui b,.side .qui a{font-size:12px} .side .qui b{display:block;max-width:44vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .side .qui br{display:none}
  .side .photo,.side .mode-ia{display:none}
  .side .nav{grid-column:1/-1;flex-direction:row;gap:2px;overflow-x:auto;margin:0 -16px;padding:0 10px;scrollbar-width:none}
  .side .nav::-webkit-scrollbar{display:none}
  .side .nav a{flex:none;padding:11px 12px;border-radius:0;white-space:nowrap}
  .side .nav a:hover{background:none} .side .nav a.actif{background:none;box-shadow:inset 0 -3px 0 var(--sunset)}
}
/* accueil */
.hero{position:relative;border-radius:var(--radius);overflow:hidden;min-height:220px;display:flex;align-items:flex-end;color:#fff;box-shadow:var(--shadow)}
.hero > img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%}
.hero .voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,36,51,.05) 20%,rgba(14,36,51,.82) 100%)}
.hero .texte{position:relative;padding:26px 28px;display:flex;justify-content:space-between;align-items:flex-end;gap:18px;width:100%;flex-wrap:wrap}
.hero h1{font-size:32px;color:#fff} .hero p{color:rgba(255,255,255,.85);max-width:54ch;margin-top:6px}
.hero .credit{font-size:11px;color:rgba(255,255,255,.7);letter-spacing:.06em;text-transform:uppercase}
.resto{display:flex;flex-direction:column}
.resto .visuel{aspect-ratio:16/10;background:var(--surface-2);overflow:hidden} .resto .visuel img{width:100%;height:100%;object-fit:cover}
.resto .visuel.claire{background:#fff;display:grid;place-items:center;padding:14px} .resto .visuel.claire img{object-fit:contain;height:auto;max-height:100%}
.resto .corps{padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px;flex:1}
.resto .ligne{display:flex;justify-content:space-between;align-items:center;gap:8px}
.resto .format{font-size:13px;color:var(--muted)}
.resto .dernier{font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:auto} .resto .dernier b{color:var(--ink);font-weight:500}
/* bandeau restaurant */
.bandeau{position:relative;border-radius:var(--radius);overflow:hidden;min-height:170px;display:flex;align-items:flex-end;color:#fff;box-shadow:var(--shadow)}
.bandeau img.fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bandeau .voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,36,51,.1) 10%,rgba(14,36,51,.85) 100%)}
.bandeau .texte{position:relative;padding:22px 26px;display:flex;align-items:flex-end;gap:16px;width:100%;flex-wrap:wrap}
.bandeau .logo{background:#fff;border-radius:8px;padding:6px 10px;height:52px;display:grid;place-items:center} .bandeau .logo img{max-height:40px;width:auto}
.bandeau h1{color:#fff} .bandeau p{color:rgba(255,255,255,.85)}
/* choix de départ */
.depart{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choix{display:flex;gap:12px;align-items:flex-start;border:1.5px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--surface);text-align:left;width:100%;color:inherit}
.choix:hover{border-color:var(--lagoon)} .choix[disabled]{opacity:.55;cursor:not-allowed}
.choix .rond{width:18px;height:18px;border-radius:50%;border:2px solid var(--lagoon);flex:none;margin-top:2px}
label.choix{cursor:pointer} .choix input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.choix:has(input:checked){border-color:var(--lagoon);background:var(--surface-2)} .choix:has(input:checked) .rond{background:radial-gradient(circle,var(--lagoon) 0 42%,transparent 48%)}
.choix:has(input:focus-visible){outline:2px solid var(--lagoon);outline-offset:2px}
.choix b{display:block;font-weight:700} .choix span{font-size:13px;color:var(--muted)}
@media (max-width:640px){.depart{grid-template-columns:1fr}}
/* éditeur des suggestions */
.champ label,.rub .lib{display:block;font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],textarea,select{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
input:focus,textarea:focus,select:focus{outline:2px solid var(--lagoon);outline-offset:0;border-color:transparent}
textarea{resize:vertical;min-height:64px}
.lien-texte{background:none;border:0;color:var(--lagoon);padding:0;font-size:13px;cursor:pointer}
.apercu{position:sticky;top:18px;display:flex;flex-direction:column;gap:10px}
.papier{background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px;box-shadow:var(--shadow)}
.cadre-iframe{position:relative;overflow:hidden;width:100%;height:300px;background:#fff}
.cadre-iframe iframe{position:absolute;top:0;left:0;border:0;transform-origin:0 0;width:1123px;height:794px;background:#fff}
.legende{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap} .legende.bloc{display:block}
[hidden]{display:none!important}
.tampon{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.tampon::after{content:"";flex:1;height:1px;background:var(--line)}
.barre-envoi{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px}
.barre-envoi .etat{font-size:13px;color:var(--muted)}
/* lecture seule */
.lecture{display:flex;flex-direction:column;gap:12px}
.lecture .bloc{padding:10px 14px;border-radius:8px;background:var(--surface-2)}
.lecture .bloc h3{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.lecture .p{display:flex;justify-content:space-between;gap:12px;padding:3px 0} .lecture .p b{font-weight:500} .lecture .p i{color:var(--muted);font-style:italic} .lecture .p .prix{font-variant-numeric:tabular-nums;white-space:nowrap}
/* listes, comparatif, chronologie */
.liste{display:flex;flex-direction:column}
.liste .item{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line)} .liste .item:first-child{border-top:0}
.liste .logo{width:48px;height:48px;border-radius:8px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;padding:5px;overflow:hidden} .liste .logo img{max-height:100%;object-fit:contain}
.liste .titre{font-weight:500} .liste .sous{font-size:13px;color:var(--muted)}
.diff{display:flex;flex-direction:column;gap:8px}
.diff .d{display:grid;grid-template-columns:96px 1fr;gap:10px;font-size:13px;padding:9px 12px;border-radius:8px;background:var(--surface-2)}
.diff .jour{font-weight:700;font-family:var(--display)} .diff del{color:var(--muted);text-decoration:line-through;display:block} .diff ins{text-decoration:none;display:block;font-weight:500}
.refus{border:1px solid rgba(196,60,44,.4);background:var(--bad-bg);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.refus b{color:var(--bad)}
.repli{display:none;flex-direction:column;gap:10px} .repli.ouvert{display:flex}
.chrono{position:relative;padding-left:22px}
.chrono::before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--line)}
.chrono .pas{position:relative;padding:6px 0 12px}
.chrono .pas::before{content:"";position:absolute;left:-19px;top:11px;width:10px;height:10px;border-radius:50%;background:var(--surface);border:2px solid var(--muted)}
.chrono .pas.ok::before{background:var(--ok);border-color:var(--ok)} .chrono .pas.bad::before{background:var(--bad);border-color:var(--bad)} .chrono .pas.mail::before{background:var(--lagoon);border-color:var(--lagoon)}
.chrono .pas b{display:block;font-weight:500} .chrono .pas span{font-size:13px;color:var(--muted)}
/* tableaux */
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:10px 12px;border-bottom:1px solid var(--line)}
td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-variant-numeric:tabular-nums} tr:last-child td{border-bottom:0}
.tableau{overflow-x:auto}
/* paramètres */
.param{display:grid;grid-template-columns:220px 1fr;gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)} .param:first-of-type{border-top:0}
.param .lib{font-weight:500} .param .lib small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:2px}
.param .double{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media (max-width:640px){.param,.param .double{grid-template-columns:1fr}}
.cle-valeur{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px} .cle-valeur span{color:var(--muted)}
/* connexion */
.connexion{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;background:var(--deep)}
.connexion .fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.connexion .boite{position:relative;width:min(440px,100%);background:var(--surface);border-radius:14px;padding:30px 30px 26px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}
.connexion .boite .brand{padding:0} .connexion .boite .brand strong{color:var(--ink)} .connexion .boite .brand img{background:var(--deep);border-radius:10px;padding:5px}
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--deep);color:var(--deep-ink);padding:11px 16px;border-radius:10px;box-shadow:var(--shadow);font-size:13px;opacity:0;pointer-events:none;transition:.25s;z-index:20}
.toast.on{opacity:1}
/* Champ obligatoire : toujours visible. Tout libellé placé devant un champ portant l'attribut required (ou dans un bloc .champ qui en contient un)
   reçoit la mention « obligatoire » ; la classe .requis la pose à la main là où le contrôle est fait autrement (groupes de choix, champs sans required). */
.champ:has(> :required) > label::after,label:has(+ :required)::after,label.requis::after,legend.requis::after{content:"obligatoire";display:inline-block;margin-left:8px;padding:1px 6px;border-radius:999px;
  background:var(--bad-bg);color:var(--bad);font-family:var(--body);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.5;vertical-align:1px}
.aide-champ{font-size:12px;color:var(--muted);margin-top:6px} .erreur-champ{font-size:13px;font-weight:500;color:var(--bad);margin-top:6px}
.champ.invalide > input,.champ.invalide > textarea,.champ.invalide > select,.zone-texte.invalide{border-color:var(--bad)} .champ.invalide > input:focus{outline-color:var(--bad)}
/* éditeur : glisser-déposer, ajout de rubrique */
.poignee{cursor:grab;color:var(--muted);font-size:14px;line-height:1;padding:6px 4px;user-select:none;letter-spacing:-2px}
.poignee:active{cursor:grabbing}
.sur-carte{font-size:12px;color:var(--muted)}
.en-vol{opacity:.4}
/* Éditeur des suggestions : la trame du formulaire papier du groupe (21 octobre 2026). En-tête (période, rempli par), une carte par rubrique
   avec son libellé encadré, des cases plat (nom, accompagnements, prix de vente) et, en ocre, les lignes produit destinées au siège.
   La mise en page suit la largeur de l'éditeur (requêtes de conteneur) : cases empilées sur téléphone, côte à côte sur grand écran. */
#formulaire{container:editeur / inline-size;display:flex;flex-direction:column;gap:14px}
.fiche-entete{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 20px;align-items:start;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.fiche-entete .periode input{font-size:16px;font-weight:500}
.fiche-entete .rempli{display:flex;align-items:flex-start;gap:14px}
.fiche-entete .rempli .champ{width:170px}
.fiche-entete .le{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink);white-space:nowrap}
.fiche-entete .le span{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.fiche-entete .le b{font-weight:500;line-height:38px}
.legende-produits{grid-column:1/-1;display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--muted);border-top:1px dashed var(--line);padding-top:12px}
.legende-produits b{color:var(--ocre)}
.pastille-produit{flex:none;width:24px;height:15px;border-radius:4px;background:var(--ocre-bg);border:1px solid var(--ocre-line)}
@container editeur (max-width:560px){.fiche-entete{grid-template-columns:1fr;padding:14px}.fiche-entete .rempli .champ{flex:1;width:auto}.legende-produits{align-items:flex-start}}
.rubs{display:flex;flex-direction:column;gap:14px}
.rub{padding:14px 16px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 2px rgba(14,36,51,.04)}
.rub > .tete{display:grid;grid-template-columns:auto minmax(0,max-content) minmax(0,1fr) auto;align-items:center;gap:4px 10px}
.rub > .tete > .sur-carte{min-width:0}
@container editeur (max-width:599px){.rub > .tete > .sur-carte{grid-row:2;grid-column:2/-1;margin-top:-2px}}
.zone-texte > .tete{display:flex;flex-wrap:wrap;gap:6px 10px}
.badge-rub{justify-self:start;max-width:100%;font-family:var(--display);font-weight:700;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink);border:1.5px solid #C7D3DC;border-radius:7px;padding:3px 12px;background:var(--surface);line-height:1.35}
.rub > .tete input.libelle{min-width:0;width:100%;font-weight:700}
.rub > .tete:has(input.libelle){grid-template-columns:auto minmax(0,1fr) auto auto}
.rub > .tete .outils-rub{display:flex;gap:2px;justify-self:end;grid-row:1;grid-column:-2}
.ico-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:34px;height:34px;padding:0 7px;border:0;border-radius:8px;background:none;color:#4A5D6A}
.ico-btn:hover{background:var(--surface-2);color:var(--ink)} .ico-btn .ico{display:inline-flex}
.ico-btn.avec-texte{color:var(--lagoon);font-size:13px;font-weight:500;padding-right:10px}
.rub.hors-formulaire{border-style:dashed;border-color:#B9C7D1}
.aide-hors{font-size:12.5px;color:var(--warn);background:var(--warn-bg);padding:7px 10px;border-radius:8px}
.plat{display:flex;flex-direction:column;gap:10px;padding:10px;margin:0 -10px;border-radius:10px;border:1px solid transparent}
.plat + .plat{border-top-color:var(--line);border-top-style:dashed;border-radius:0 0 10px 10px}
.plat.modifie{border:1px solid rgba(238,106,59,.55);border-radius:10px;background:rgba(238,106,59,.05)}
.plat-champs,.zone-champs{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
:is(.plat-champs,.zone-champs,.tailles) .champ label{margin-bottom:5px;font-size:11.5px}
.plat textarea,.zone-texte textarea{min-height:0;resize:none;line-height:1.4;overflow:hidden}
.c-prix{max-width:190px}
.c-prix input,.tailles input{text-align:right;font-variant-numeric:tabular-nums;font-weight:500}
.unite{position:relative;display:block}
.unite::after{content:attr(data-unite);position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:12.5px;font-weight:700;color:var(--muted);pointer-events:none}
.unite input{padding-right:28px} .unite[data-unite="F/Kg"] input{padding-right:46px}
@container editeur (min-width:600px){
  .plat-champs{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) 124px} .plat-champs.sans-prix{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr)}
  .zone-champs{grid-template-columns:minmax(0,1fr) 134px} .zone-champs.sans-prix{grid-template-columns:minmax(0,1fr)}
  .c-prix{max-width:none}
}
.produits{display:grid;grid-template-columns:minmax(0,1fr);gap:8px 14px;padding:8px 10px 10px;border-radius:9px;background:var(--ocre-bg);border:1px solid var(--ocre-line)}
.produit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px 8px;align-items:end}
.produit + .produit{border-top:1px dashed var(--ocre-line);padding-top:8px}
.produit .c-nom{grid-column:1/-1}
.produit label{display:block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ocre);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.produit input{background:#fff;border-color:var(--ocre-line);padding:7px 9px;font-size:14px}
.produit .unite::after{color:var(--ocre);font-size:11.5px}
.produit .unite[data-unite="F/Kg"] input{padding-right:42px}
.produit input:focus{outline-color:var(--ocre)}
@container editeur (min-width:470px){.produit{grid-template-columns:minmax(0,1fr) 112px 122px}.produit .c-nom{grid-column:auto}}
@container editeur (min-width:860px){.produits{grid-template-columns:1fr 1fr}.produit + .produit{border-top:0;padding-top:0;border-left:1px dashed var(--ocre-line);padding-left:14px}}
.pied-plat{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:-4px 0 -4px}
.pied-plat .etat{display:flex;gap:4px 12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);min-width:0}
.pied-plat .etat .tag,.zone-texte .etat .tag,.emporter .etat .tag{color:var(--sunset);font-weight:700}
.outils-plat{display:flex;gap:2px;margin-left:auto;flex:none}
.outils-plat .poignee{display:inline-grid;place-items:center;min-width:34px;height:34px;border-radius:8px;padding:0}
.outils-plat .poignee:hover{background:var(--surface-2)}
.ajout-rubrique{display:flex;gap:8px 14px;align-items:center;flex-wrap:wrap}
.ajout-rubrique select{width:auto;min-width:260px;max-width:100%;color:var(--muted)}
/* zones de texte obligatoires du Bilboquet (haut et bas), encadrées en pointillé comme sur le formulaire */
.zone-texte{border:1.5px dashed rgba(27,138,156,.55);background:var(--lagoon-bg);gap:10px}
.zone-texte .nom-zone{font-family:var(--display);font-size:16px}
.zone-texte.modifie{border:1.5px solid rgba(238,106,59,.55);background:#FDF3EE} .zone-texte.a-saisir{border:1.5px solid var(--bad);background:var(--bad-bg)}
.zone-texte textarea{line-height:1.5;font-weight:500}
.zone-texte .etat,.emporter .etat{display:flex;gap:4px 14px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)} .zone-texte .etat .tag.alerte{color:var(--bad)}
/* prix à emporter dans la rubrique de la pizza (mini carte de la vente à emporter) */
.emporter{padding:12px 14px;border-radius:10px;border:1.5px dashed rgba(27,138,156,.55);background:var(--lagoon-bg);display:flex;flex-direction:column;gap:10px}
.emporter.modifie{border:1.5px solid rgba(238,106,59,.55);background:#FDF3EE}
.emporter .tete-emporter{display:flex;gap:4px 10px;align-items:baseline;flex-wrap:wrap} .emporter .tete-emporter b{font-family:var(--display);font-size:15px} .emporter .tete-emporter span{font-size:12px;color:var(--muted)}
.emporter .tailles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
@media (max-width:760px){   /* téléphone : champs en 16 px, sans quoi Safari agrandit la page à chaque saisie */
  input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],input[type=search],textarea,select,.produit input{font-size:16px}
}
/* aperçu : un onglet par document imprimé */
.onglets-formats{display:flex;gap:6px;flex-wrap:wrap}
.onglets-formats button{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--muted);line-height:1.3;text-align:left}
.onglets-formats button:hover{color:var(--ink);border-color:var(--lagoon)} .onglets-formats button.actif{background:var(--deep);border-color:var(--deep);color:var(--deep-ink);font-weight:500;cursor:default}
.cible-avant{box-shadow:0 -3px 0 0 var(--lagoon)} .cible-apres{box-shadow:0 3px 0 0 var(--lagoon)}
select.ajout{width:auto;min-width:240px}
/* administration des rubriques */
.rubrique-ligne{display:grid;grid-template-columns:18px 1.1fr 1.1fr 150px 1fr auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.rubrique-ligne .options-rubrique{grid-column:2/-1;display:flex;gap:6px 18px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.options-rubrique label{display:inline-flex;align-items:center;gap:6px} .options-rubrique input[type=number]{width:62px;padding:4px 6px}
.options-rubrique .code{font-size:11px;margin-left:auto}
.rubriques-liste{display:flex;flex-direction:column;gap:8px}
.rubriques-entete{display:grid;grid-template-columns:18px 1.1fr 1.1fr 150px 1fr auto;gap:8px;padding:0 10px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media (max-width:900px){.rubrique-ligne,.rubriques-entete{grid-template-columns:1fr}.rubriques-entete{display:none}}
/* portail des outils du groupe */
.portail{min-height:100vh;background:var(--ground);padding:28px;display:flex;flex-direction:column;gap:22px;max-width:1120px;margin:0 auto}
.portail-hero{min-height:220px}
.hero.sombre{background:#0A0C10;box-shadow:none;border:1px solid #1C2230}
.hero.sombre .texte{padding:30px 32px}
.hero.sombre p{color:rgba(255,255,255,.7)} .portail-hero.petite{min-height:180px}
.portail-hero .texte{flex-direction:column;align-items:flex-start;gap:26px}
.portail-hero .brand{color:#fff} .portail-hero .brand img{width:46px;height:46px;object-fit:contain} .portail-hero .brand small{color:rgba(255,255,255,.7)}
.outils .outil h2{font-size:22px;margin:0}
.outils .outil.bientot .visuel img{filter:grayscale(.5);opacity:.85}
.outils .outil .corps{gap:12px;padding:20px 22px 24px}
/* tuile cliquable en entier : au survol elle se soulève, la photo avance, la flèche s'allume, un trait couleur coucher de soleil se déroule */
.outils{gap:22px}
.outils .outil{position:relative;color:inherit;text-decoration:none;border-radius:14px;box-shadow:0 1px 2px rgba(14,36,51,.05);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s cubic-bezier(.2,.8,.2,1),border-color .4s;
  animation:tuile-entre .6s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--rang,0)*80ms)}
.outils .outil::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--sunset),#F6A45C);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.outils .outil .visuel{position:relative}
.outils .outil .visuel img{transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.outils .outil .visuel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,36,51,0) 45%,rgba(14,36,51,.3));opacity:0;transition:opacity .4s}
.outils .outil .fleche{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink);transition:background .3s,color .3s,box-shadow .3s}
.outils .outil .fleche svg{width:17px;height:17px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.outils .outil:is(:hover,:focus-visible){transform:translateY(-6px);border-color:#C3D2DB;box-shadow:0 2px 4px rgba(14,36,51,.05),0 26px 48px -18px rgba(14,36,51,.34)}
.outils .outil:is(:hover,:focus-visible)::after{transform:scaleX(1)}
.outils .outil:is(:hover,:focus-visible) .visuel img{transform:scale(1.06)}
.outils .outil:is(:hover,:focus-visible) .visuel::after{opacity:1}
.outils .outil:is(:hover,:focus-visible) .fleche{background:var(--sunset);color:var(--on-sunset);box-shadow:0 6px 16px rgba(238,106,59,.38)}
.outils .outil:is(:hover,:focus-visible) .fleche svg{transform:translateX(3px)}
.outils .outil:active{transform:translateY(-2px);transition-duration:.12s}
@keyframes tuile-entre{from{opacity:0;transform:translateY(16px)}}
@media (prefers-reduced-motion:reduce){.outils .outil,.outils .outil::after,.outils .outil .visuel img,.outils .outil .fleche svg{animation:none;transition:none} .outils .outil:is(:hover,:focus-visible,:active),.outils .outil:is(:hover,:focus-visible) .visuel img{transform:none}}
.portail-pied{display:flex;justify-content:space-between;align-items:center;gap:8px 24px;flex-wrap:wrap;color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
/* portail : demande d'évolution adressée à DIGIT (bandeau, signature, fenêtre du formulaire) */
.digit{font-family:Inter,var(--display);font-weight:800;letter-spacing:-.02em;text-transform:none;text-decoration:none;color:inherit} .digit b{color:#F5C05B}
.signature{display:inline-flex;align-items:center;gap:8px;color:var(--muted);text-decoration:none;padding:7px 14px;margin:-7px -14px -7px auto;border-radius:999px;transition:background .25s,color .25s}
.signature .digit{font-size:17px;color:var(--ink);transition:color .25s}
.signature svg{width:14px;height:14px;margin-left:-22px;opacity:0;transform:translate(-4px,4px);transition:opacity .25s,transform .25s,margin .25s}
.signature:is(:hover,:focus-visible){background:#1A1A1A;color:rgba(255,255,255,.72)} .signature:is(:hover,:focus-visible) .digit{color:#fff}
.signature:is(:hover,:focus-visible) svg{margin-left:0;opacity:1;transform:none;color:#F5C05B}
.contact-bande{display:flex;align-items:center;gap:20px;padding:22px 26px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(105deg,var(--surface) 38%,var(--lagoon-bg));
  animation:tuile-entre .6s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:calc(var(--rang,0)*80ms)}
.contact-bande .picto{flex:none;width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--sunset),#F6A45C);box-shadow:0 10px 20px -8px rgba(238,106,59,.6)}
.contact-bande .picto svg{width:26px;height:26px}
.contact-bande .texte{flex:1;min-width:0} .contact-bande h2{font-size:20px;margin:0 0 4px} .contact-bande p{color:var(--muted);font-size:14px;max-width:64ch}
.contact-bande .btn{flex:none} :is(.contact-bande,.contact-pied) .btn svg{width:16px;height:16px;flex:none;transition:transform .3s cubic-bezier(.2,.8,.2,1)} :is(.contact-bande,.contact-pied) .btn.primaire:hover svg{transform:translateX(3px)}
dialog.contact{width:min(940px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:18px;background:var(--surface);color:var(--ink);box-shadow:0 30px 90px rgba(10,12,16,.5);overflow:hidden}
dialog.contact[open]{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:minmax(0,1fr);animation:contact-ouvre .45s cubic-bezier(.2,.8,.2,1)}
dialog.contact::backdrop{background:rgba(10,12,16,.58);backdrop-filter:blur(6px);animation:contact-voile .3s}
@keyframes contact-ouvre{from{opacity:0;transform:translateY(22px) scale(.97)}} @keyframes contact-voile{from{opacity:0}}
.contact-cote{position:relative;display:flex;flex-direction:column;gap:22px;padding:30px 26px 26px;color:#fff;
  background:radial-gradient(380px 280px at 115% -8%,rgba(245,192,91,.3),transparent 62%),radial-gradient(340px 300px at -25% 112%,rgba(27,138,156,.42),transparent 62%),#101216}
.contact-cote .digit{font-size:30px;line-height:1;align-self:flex-start;color:#fff}
.contact-cote h2{font-size:27px;font-weight:800;line-height:1.08;margin:0 0 10px} .contact-cote p{color:rgba(255,255,255,.72);font-size:14px}
.contact-etapes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;counter-reset:etape}
.contact-etapes li{counter-increment:etape;display:flex;gap:12px;align-items:center;font-size:13.5px;color:rgba(255,255,255,.86);line-height:1.3}
.contact-etapes li::before{content:counter(etape);flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(245,192,91,.55);color:#F5C05B;font-family:var(--display);font-weight:700;font-size:13px}
.contact-site{margin-top:auto;display:inline-flex;align-items:center;gap:6px;align-self:flex-start;color:#F5C05B;text-decoration:none;font-weight:500;font-size:14px}
.contact-site svg{width:15px;height:15px;transition:transform .25s} .contact-site:hover svg{transform:translate(2px,-2px)}
.contact-form{display:flex;flex-direction:column;gap:18px;padding:28px 30px 24px;overflow:auto}
.contact-form fieldset{border:0;padding:0;margin:0;min-width:0}
.contact-form legend,.contact-champ > label{display:block;padding:0;font-family:var(--display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:9px}
.puces{display:flex;flex-wrap:wrap;gap:8px}
.puce{position:relative;display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);border-radius:999px;padding:6px 14px 6px 7px;font-size:14px;font-weight:500;cursor:pointer;background:var(--surface);user-select:none;
  transition:border-color .2s,background .2s,color .2s,transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s}
.puce input{position:absolute;opacity:0;pointer-events:none}
.puce img,.puce .ico{flex:none;width:26px;height:26px;border-radius:50%} .puce img{object-fit:cover}
.puce .ico{display:grid;place-items:center;background:var(--surface-2);color:var(--muted);transition:background .2s,color .2s} .puce .ico svg{width:15px;height:15px}
.puce:hover{border-color:var(--lagoon);transform:translateY(-1px)}
.puce:has(input:checked){border-color:var(--deep);background:var(--deep);color:#fff;box-shadow:0 8px 16px -8px rgba(14,36,51,.6)}
.puce:has(input:checked) .ico{background:var(--sunset);color:#fff}
.puce:has(input:focus-visible){outline:2px solid var(--sunset);outline-offset:2px}
.contact-form textarea{min-height:118px;border-radius:12px;padding:12px 14px;resize:none} .contact-form input[type=text],.contact-form input[type=email]{border-radius:10px;padding:11px 13px}
.contact-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-piece{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:13px;color:var(--muted)}
.contact-piece .joindre{display:inline-flex;align-items:center;gap:6px;color:var(--lagoon);font-weight:500;cursor:pointer;border-radius:6px} .contact-piece .joindre:hover{text-decoration:underline}
.contact-piece .joindre svg{width:16px;height:16px} .contact-piece .joindre input{position:absolute;width:1px;height:1px;opacity:0}
.contact-piece .joindre:has(input:focus-visible){outline:2px solid var(--sunset);outline-offset:2px}
.contact-piece .jointe{display:inline-flex;align-items:center;gap:8px;background:var(--lagoon-bg);color:var(--ink);border-radius:999px;padding:4px 6px 4px 12px;animation:apparait .2s}
.contact-piece .jointe b{font-weight:500;max-width:36ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contact-piece .jointe button{width:22px;height:22px;border-radius:50%;border:0;background:rgba(14,36,51,.1);color:var(--ink);line-height:1;font-size:15px;padding:0} .contact-piece .jointe button:hover{background:rgba(14,36,51,.2)}
.contact-piece [hidden],.contact-form [hidden],dialog.contact [hidden]{display:none}
.contact-erreur{color:var(--bad);font-size:13px;margin-top:7px;animation:apparait .2s}
.invalide > textarea,.invalide > input{border-color:var(--bad)} fieldset.invalide .puce:not(:has(input:checked)){border-color:rgba(196,60,44,.45)}
.contact-leurre{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.contact-alerte{background:var(--bad-bg);color:var(--bad);border-left:3px solid var(--bad);border-radius:8px;padding:10px 14px;font-size:14px} .contact-alerte a{color:inherit;font-weight:700}
.contact-pied{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:2px}
.contact-pied .btn.lien{color:var(--muted)} .contact-pied .rouage{display:none} .contact-form.envoi .rouage{display:inline-block} .contact-form.envoi [type=submit] svg{display:none}
.contact-fermer{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;padding:0;transition:background .2s,color .2s,transform .3s}
.contact-fermer:hover{background:var(--surface-2);color:var(--ink);transform:rotate(90deg)}
.contact-merci{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:44px 34px;min-height:420px}
.contact-merci h2{font-size:26px;font-weight:800;margin:6px 0 0;outline:0} .contact-merci p{color:var(--muted);max-width:44ch} .contact-merci .actions{justify-content:center;margin-top:12px}
.coche{width:76px;height:76px;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.coche circle{stroke:var(--ok);fill:var(--ok-bg);stroke-dasharray:151;stroke-dashoffset:151;animation:coche-trace .6s cubic-bezier(.6,0,.3,1) forwards}
.coche path{stroke:var(--ok);stroke-dasharray:36;stroke-dashoffset:36;animation:coche-trace .35s cubic-bezier(.6,0,.3,1) .5s forwards}
@keyframes coche-trace{to{stroke-dashoffset:0}}
@media (max-width:760px){
  .portail-pied{justify-content:center;text-align:center} .signature{margin:0}
  .contact-bande{flex-direction:column;align-items:flex-start;padding:20px} .contact-bande .btn{width:100%;justify-content:center}
  dialog.contact{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0}
  dialog.contact[open]{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .contact-cote{padding:18px 56px 18px 20px;gap:10px} .contact-cote .digit{font-size:20px} .contact-cote h2{font-size:21px;margin:0}
  .contact-cote p,.contact-etapes,.contact-site,.contact-piece .astuce{display:none}
  .contact-form{padding:20px 20px 22px} .contact-duo{grid-template-columns:1fr} .contact-fermer{color:#fff} .contact-fermer:hover{background:rgba(255,255,255,.14);color:#fff}
  .contact-pied{flex-direction:column-reverse;align-items:stretch} .contact-pied .btn{justify-content:center}
}
@media (prefers-reduced-motion:reduce){dialog.contact[open],dialog.contact::backdrop,.contact-bande,.coche circle,.coche path{animation:none} .coche circle,.coche path{stroke-dashoffset:0} .puce,.contact-fermer,.signature,.signature svg{transition:none}}
.liste-simple{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;max-width:70ch}
/* outil dons : tuiles, colonnes à faire, filtres, formulaires en grille, rôles */
.tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.tuile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.tuile .val{font-family:var(--display);font-size:24px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.tuile .lib{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:5px;font-weight:500} .tuile .sous{font-size:12px;color:var(--muted);margin-top:3px}
.colonnes-todo{display:grid;grid-template-columns:repeat(4,1fr);gap:14px} @media (max-width:1100px){.colonnes-todo{grid-template-columns:repeat(2,1fr)}} @media (max-width:640px){.colonnes-todo{grid-template-columns:1fr}}
.todo h3{display:flex;justify-content:space-between;align-items:center} .compte-gris{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600}
.item-todo{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;text-decoration:none;color:inherit;border:1px solid var(--line);margin-bottom:6px;font-size:13px} .item-todo:hover{border-color:var(--lagoon);background:var(--lagoon-bg)} .item-todo b{font-weight:500} .item-todo span{color:var(--muted)}
.vide{color:var(--muted);font-size:13px}
.filtres{display:flex;gap:6px;flex-wrap:wrap} .filtres a{font-size:13px;text-decoration:none;color:var(--ink);padding:5px 11px;border-radius:999px;border:1px solid var(--line);background:var(--surface)} .filtres a.actif{background:var(--deep);color:#fff;border-color:var(--deep)}
.grille-form{display:grid;grid-template-columns:1fr 1fr;gap:12px} @media (max-width:640px){.grille-form{grid-template-columns:1fr}}
.cases{display:flex;flex-wrap:wrap;gap:8px 16px} .cases label{display:flex;align-items:center;gap:6px;font-size:14px} .cases input{width:auto}
.roles{display:grid;gap:10px}
.scan-pages img{width:100%;border:1px solid var(--line);border-radius:6px;margin-bottom:8px;box-shadow:var(--shadow)}
/* validation : demande originale (formulaire papier) sous le rendu, et comparaison côte à côte en plein écran */
.colonne-rendu{display:flex;flex-direction:column;gap:16px;min-width:0} .colonne-rendu .apercu{position:static}
.originale-bandeau{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;padding:10px 14px;border-radius:var(--radius);background:var(--lagoon-bg);border:1px solid rgba(27,138,156,.28)}
.originale-bandeau img{width:44px;height:56px;object-fit:cover;object-position:top;border-radius:4px;border:1px solid var(--line);background:#fff}
.originale-bandeau b{display:block;font-weight:700} .originale-bandeau span{font-size:13px;color:var(--muted)}
.originale .tete{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px} .originale .tete h3{margin-bottom:4px} .originale .tete .sur-carte{max-width:60ch}
button.scan-pages{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;text-align:left} .originale .page-scan:last-child,.originale .page-scan:last-child img{margin-bottom:0}
.page-scan{display:block} .page-scan.tourne{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:6px;margin-bottom:8px;box-shadow:var(--shadow);background:#fff}
.page-scan.tourne img{position:absolute;top:50%;left:50%;max-width:none;border:0;border-radius:0;margin:0;box-shadow:none}
.repere-papier{color:var(--lagoon);font-weight:500}
dialog.comparer{width:min(1800px,calc(100vw - 32px));height:calc(100vh - 32px);max-width:none;max-height:none;padding:0;border:0;border-radius:14px;background:var(--ground);color:var(--ink);box-shadow:0 24px 80px rgba(14,36,51,.45);overflow:hidden}
dialog.comparer[open]{display:flex;flex-direction:column} dialog.comparer::backdrop{background:rgba(14,36,51,.62)}
.comparer-tete{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--line)}
.comparer-tete .sur{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:2px} .comparer-tete h2{font-size:20px}
.comparer-corps{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.comparer-corps section{min-width:0;min-height:0;overflow:auto;padding:16px 20px 20px} .comparer-corps section+section{border-left:1px solid var(--line)}
.comparer-corps .tampon{position:sticky;top:-16px;z-index:1;margin:-16px -20px 12px;padding:12px 20px 8px;background:var(--ground)}
.comparer-corps .legende{margin-top:10px} .comparer-corps .tampon .btn{order:2;text-transform:none;letter-spacing:0;font-size:13px}
.scan-pages.zoomable .page-scan{cursor:zoom-in} .scan-pages.zoomable.zoom .page-scan{width:190%;cursor:zoom-out}
.formats-comparer{display:flex;gap:14px;flex-wrap:wrap} .formats-comparer .actif{color:var(--ink);font-weight:700;cursor:default}
@media (max-width:900px){.comparer-corps{grid-template-columns:1fr;overflow:auto}.comparer-corps section{overflow:visible}.comparer-corps section+section{border-left:0;border-top:1px solid var(--line)}.comparer-corps .tampon{position:static;margin:0 0 8px;padding:0}.originale-bandeau{grid-template-columns:44px 1fr}.originale-bandeau .btn{grid-column:1/-1;justify-content:center}}
.qr-essai{display:flex;gap:16px;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.qr-essai img{width:148px;height:148px;flex:none;background:#fff;border:1px solid var(--line);border-radius:8px}
.qr-essai p{margin:4px 0 0}
.qr-essai .adresse-scan{font-family:ui-monospace,monospace;font-size:12px;word-break:break-all}
.apercu-pdf{width:360px;max-width:100%;height:240px;object-fit:cover;object-position:top;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow)}   /* haut de la première page : le bon, pas le blanc de la feuille A4 */
.etape{border-left:4px solid var(--sunset)}
.email-simule{white-space:pre-wrap;font-family:var(--body);font-size:13px;background:var(--surface-2);padding:10px 12px;border-radius:8px;margin:8px 0 0}
.liste .numero{width:48px;height:48px;border-radius:8px;background:var(--surface-2);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--muted)}
.taux{display:flex;align-items:center;gap:8px} .taux .barre{flex:1} .taux span{font-size:12px;color:var(--muted);min-width:36px;text-align:right}
.barre{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden} .barre i{display:block;height:100%;background:var(--lagoon)}
details.carte summary{cursor:pointer}

/* Dons : répartition des bons par enseigne (lots), annulation d'événement, prorogation */
.lots{display:flex;flex-direction:column;gap:6px}
.lot-ligne{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.lot-num{display:flex;align-items:center;gap:6px} .lot-num small{font-size:12px;color:var(--muted)}
.lot-nb{width:64px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums;padding:7px 9px}
.lot-nb[readonly]{background:var(--surface);color:var(--muted)}
.lot-ligne .cases{gap:6px 14px}
.lot-suppr[disabled]{visibility:hidden}
.lot-total{font-size:13px;color:var(--muted);font-weight:500} .lot-total.ok{color:var(--ok)} .lot-total.ko{color:var(--bad)}
.annulation-evenement{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px}
.bloc-prorogation{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
@media (max-width:640px){.lot-ligne{grid-template-columns:1fr auto}.lot-ligne .cases{grid-column:1 / -1}}

/* Dons : recherche d'une fiche dans le formulaire de demande, champs modifiés */
.suggestions{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);max-height:300px;overflow:auto;padding:4px;margin-top:4px}
.suggestions button{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:6px;cursor:pointer;font:inherit;color:inherit}
.suggestions button:hover,.suggestions button.actif{background:var(--lagoon-bg)}
.suggestions button b{font-weight:500} .suggestions button span{font-size:12px;color:var(--muted)}
.suggestions .vide{padding:8px 10px}
.fiche-bandeau{font-size:13px;background:var(--lagoon-bg);border-radius:8px;padding:8px 12px;margin-top:-6px}
.fiche-bandeau a{color:var(--lagoon)}
input.modifie,select.modifie{background:var(--warn-bg);border-color:var(--warn)}
.fiche-maj{font-size:13px;color:var(--warn);font-weight:500;margin-top:-6px}
.grille-form.g3{grid-template-columns:1fr 1fr 1fr} @media (max-width:640px){.grille-form.g3{grid-template-columns:1fr}}

/* Dons : signaux à l'instructeur (nature du soutien demandé, demande semblable déjà connue) et repères de la liste. Ils informent, sans bloquer ni décider. */
.signaux{display:flex;flex-direction:column;gap:12px}
.signal{border:1px solid rgba(184,121,10,.35);border-left:4px solid var(--warn);background:var(--warn-bg);border-radius:var(--radius);padding:14px 18px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.signal.info{border-color:rgba(27,138,156,.3);border-left-color:var(--lagoon);background:var(--lagoon-bg)}
.signal.doute{border-color:var(--line);border-left-color:var(--muted);background:var(--surface-2)}
.signal-sur{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--warn)} .signal.info .signal-sur{color:var(--lagoon)} .signal.doute .signal-sur{color:var(--muted)}
.signal-titre{font-family:var(--display);font-size:17px;font-weight:700;line-height:1.3}
.signal blockquote{margin:0;padding:8px 12px;background:rgba(255,255,255,.72);border-radius:8px;font-style:italic;line-height:1.5}
.signal blockquote span{display:block;font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:2px}
.signal-origine{font-size:12.5px;color:var(--muted)}
.signal-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.signal-liste li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:baseline;padding:8px 12px;background:rgba(255,255,255,.72);border-radius:8px}
.signal-liste a{font-weight:700;white-space:nowrap} .signal-liste b{display:block;font-weight:500} .signal-liste span{font-size:13px;color:var(--muted)}
.controle{border-top:1px solid var(--line);padding-top:14px;margin-top:14px;display:flex;flex-direction:column;gap:10px}
.carte .controle h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0}
.controle-rien{color:var(--muted)} .controle-actions{gap:14px}
.corriger-nature label{font-size:13px;font-weight:500} .corriger-nature select{width:auto;max-width:100%;flex:1;min-width:220px}
.repere{display:inline-block;border:1px solid rgba(184,121,10,.5);color:var(--warn);background:var(--surface);border-radius:6px;padding:1px 7px;font-size:11.5px;font-weight:600;white-space:nowrap;cursor:help}
.reperes{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}

/* Dons : lecture IA en direct (journal des étapes, champs relevés, champs pré-remplis) */
.journal-ia{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:10px 12px}
.journal-ia .ligne{display:flex;align-items:baseline;gap:8px;line-height:1.45;animation:apparait .25s ease}
.journal-ia .ligne::before{content:"";flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--ok);position:relative;top:-1px}
.journal-ia .ligne.encours::before{background:none;border:2px solid var(--lagoon);border-top-color:transparent;width:8px;height:8px;top:1px;animation:tourne .8s linear infinite}
.journal-ia .ligne.encours .texte{color:var(--ink);font-weight:500}
.journal-ia .ligne.encours .texte::after{content:"…"}
.journal-ia .ligne.erreur::before{background:var(--bad)} .journal-ia .ligne.erreur .texte{color:var(--bad);font-weight:500}
.journal-ia .ligne.fin .texte{color:var(--ok);font-weight:500}
.journal-ia .duree{margin-left:auto;font-variant-numeric:tabular-nums;font-size:11.5px;white-space:nowrap}
.journal-ia .champs-lus{margin:0 0 4px 15px;padding-left:9px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:2px}
.journal-ia .champs-lus div{animation:apparait .25s ease} .journal-ia .champs-lus b{font-weight:500;color:var(--ink)}
.btn.occupe{opacity:.7;cursor:progress}
.btn.occupe::before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:tourne .8s linear infinite}
input.rempli-ia,select.rempli-ia,textarea.rempli-ia{animation:surligne 2.4s ease-out}
@keyframes tourne{to{transform:rotate(360deg)}}
@keyframes apparait{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@keyframes surligne{0%,40%{background:var(--warn-bg)}100%{background:var(--surface)}}

/* Dons, page mobile ouverte par le QR code d'un bon (enregistrement d'un ticket depuis un téléphone) et page « réservé au personnel » */
.mobile{min-height:100vh;background:var(--ground);display:flex;flex-direction:column}
.mobile-tete{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--deep);color:var(--deep-ink)}
.mobile-tete img{width:40px;height:40px}
.mobile-tete strong{display:block;font-family:var(--display);font-size:17px;font-weight:800;line-height:1.05}
.mobile-tete small{display:block;color:var(--deep-muted);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-top:3px}
.mobile-tete .qui-mobile{margin-left:auto;font-size:12px;color:var(--deep-muted);text-align:right;max-width:42%;line-height:1.35} .mobile-tete .qui-mobile a{color:var(--deep-ink)}
.mobile .flash{margin:14px 16px 0}
.mobile-corps{padding:16px;display:flex;flex-direction:column;gap:14px;max-width:560px;width:100%;margin:0 auto;box-sizing:border-box}
.mobile h1{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:-.01em;line-height:1.15}
.mobile h2{font-family:var(--display);font-size:15px;font-weight:700;margin-bottom:8px}
.mobile .carte{padding:16px} .mobile form{display:flex;flex-direction:column;gap:14px}
.mobile .btn.grand{justify-content:center;padding:15px 20px;font-size:16px;width:100%;box-sizing:border-box}
.mobile input,.mobile select{font-size:16px}
.bon-carte .numero{font-family:var(--display);font-size:28px;font-weight:800;letter-spacing:.02em;line-height:1.1}
.jetons{display:flex;flex-direction:column;gap:8px}
.jeton{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1.5px solid var(--line);border-radius:8px;padding:8px 6px 8px 12px;background:var(--surface);font-size:13px}
.jeton b{font-family:var(--display);font-size:15px;letter-spacing:.02em} .jeton span{color:var(--muted)}
.jeton.ok{border-color:var(--ok)} .jeton.bad{border-color:var(--bad);background:var(--bad-bg)} .jeton.bad span{color:var(--bad)}
.jeton .retirer{border:0;background:none;font-size:22px;line-height:1;color:var(--muted);padding:4px 8px;cursor:pointer}
.ajout-bon{display:flex;gap:8px} .ajout-bon input{flex:1;min-width:0;font-family:var(--display);font-weight:700;letter-spacing:.04em}
.bouton-photo{cursor:pointer}
.apercus{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px} .apercus figure{margin:0}
.apercus img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;border:1px solid var(--line);display:block} .apercus figcaption{font-size:11px;color:var(--muted);margin-top:3px;text-align:center}
/* la page « réservé au personnel » a sa propre classe : .refus est déjà le bandeau/formulaire de refus des suggestions et des demandes */
.page-refus{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--deep)}
.refus-boite{max-width:420px;box-shadow:var(--shadow);border-radius:14px;padding:26px}
.refus-marque{display:flex;align-items:center;gap:12px;margin-bottom:16px} .refus-marque img{width:44px;height:44px;background:var(--deep);border-radius:10px;padding:5px}
.refus-marque strong{display:block;font-family:var(--display);font-size:18px;font-weight:800;line-height:1} .refus-marque small{display:block;color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:4px}
.page-refus h1{font-family:var(--display);font-size:20px;font-weight:800;margin-bottom:8px} .page-refus p{color:var(--muted);line-height:1.5} .page-refus p+p{margin-top:12px}
.actions-suite{display:flex;flex-direction:column;gap:10px} .choix-suite p{margin-bottom:12px;line-height:1.5} .choix-suite p b{font-family:var(--display)}

/* Dons, vue « Demandes » : étapes du parcours (filtres, reliées par un chevron), un groupe par étape, actions du secrétariat dans la liste, lignes terminées en retrait */
.recherche{display:flex;gap:8px} .recherche input{width:240px}
.phase,.groupe{--teinte:var(--deep-muted)}
.phase.instruction,.groupe.instruction{--teinte:var(--warn)} .phase.impression,.groupe.impression{--teinte:var(--sunset)} .phase.retrait,.groupe.retrait{--teinte:var(--ok)}
.phase.vie,.groupe.vie{--teinte:var(--lagoon)} .phase.close,.groupe.close{--teinte:var(--draft)}
.phases{display:grid;grid-template-columns:minmax(118px,.62fr) repeat(5,minmax(0,1fr));gap:18px}
.phase{display:flex;flex-direction:column;gap:2px;padding:14px 14px 14px 19px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:inherit;text-decoration:none;position:relative;transition:border-color .15s,box-shadow .15s}
.phase::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:5px;border-radius:var(--radius) 0 0 var(--radius);background:var(--teinte)}
.phase.etape + .phase.etape::after{content:"";position:absolute;left:-14px;top:50%;width:7px;height:7px;border-top:2px solid var(--deep-muted);border-right:2px solid var(--deep-muted);transform:translateY(-50%) rotate(45deg)}
.phase:hover{border-color:var(--lagoon)} .phase.actif{border-color:var(--deep);box-shadow:0 0 0 1px var(--deep)}
.phase .n{font-family:var(--display);font-size:26px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums} .phase.rien .n{color:var(--deep-muted)}
.phase b{font-weight:600;font-size:14px;line-height:1.25} .phase small{font-size:12px;color:var(--muted)}
.acteur{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;font-weight:500;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 8px;white-space:nowrap}
.acteur.a-moi{background:var(--sunset);color:var(--on-sunset);font-weight:700}
.phase .acteur{position:absolute;top:13px;right:12px}
@media (max-width:1240px){.phases{grid-template-columns:repeat(3,1fr);gap:12px}.phase.etape + .phase.etape::after{display:none}}
@media (max-width:560px){.phases{grid-template-columns:1fr 1fr}.recherche input{width:100%}}
.groupe{display:flex;flex-direction:column;gap:10px}
.groupe-tete{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.groupe-tete h2{display:flex;align-items:center;gap:8px;flex-wrap:wrap} .groupe-tete .legende{margin-top:4px;max-width:78ch}
.groupe .puce{width:10px;height:10px;border-radius:50%;background:var(--teinte);flex:none}
.groupe-vide{padding:13px 20px;font-size:14px;color:var(--muted)}
.filtres .n{color:var(--muted);font-variant-numeric:tabular-nums} .filtres a.actif .n{color:rgba(255,255,255,.75)}
.filtres a.retirer{border-color:transparent;background:none;color:var(--lagoon)}
.groupe td.num{color:var(--muted);font-size:13px} .groupe td.usage{min-width:200px} .groupe td.issue{max-width:34ch;font-size:13px}
.groupe th.agir,.groupe td.agir{text-align:right} .groupe td.agir{white-space:nowrap}
.groupe td.agir .actions{justify-content:flex-end;flex-wrap:nowrap;gap:8px}
.remise-rapide{display:flex;gap:6px;justify-content:flex-end} .remise-rapide input{width:168px;padding:6px 10px;font-size:13px}
.groupe td small span{white-space:nowrap}
@media (max-width:760px){   /* téléphone : une fiche par demande, l'action sous la fiche, plus de tableau à faire défiler */
  .groupe table,.groupe tbody,.groupe tr,.groupe td{display:block} .groupe thead{display:none}
  .groupe tr{position:relative;padding:12px 0;border-bottom:1px solid var(--line)} .groupe tr:first-child{padding-top:0} .groupe tr:last-child{border-bottom:0;padding-bottom:0}
  .groupe td{border:0;padding:2px 0} .groupe td br{display:none} .groupe td small{margin-left:6px}
  .groupe td.num{position:absolute;right:0;top:12px} .groupe tr:first-child td.num{top:0} .groupe td.num::before{content:"n°"}
  .groupe td.qui{padding-right:44px;font-weight:500} .groupe td.qui small,.groupe td.evt small{display:block;margin-left:0}
  .groupe td[data-l]::before{content:attr(data-l) " : ";font-size:12px;color:var(--muted)}
  .groupe td span.legende{display:inline}
  .groupe td.usage{min-width:0;padding-top:6px} .groupe td.usage small{display:block;margin-left:0} .groupe td.issue{max-width:none} .groupe td.etat{padding-top:6px}
  .groupe td.agir{text-align:left;white-space:normal;padding-top:10px} .groupe td.agir .actions,.remise-rapide{justify-content:flex-start;flex-wrap:wrap}
  .groupe td.agir .btn{padding:9px 14px;font-size:14px} .remise-rapide input{flex:1;min-width:0;width:auto;padding:9px 10px;font-size:14px}
  .voir-tout{margin-top:12px}
}
.texte-warn{color:var(--warn);font-weight:500} .texte-bad{color:var(--bad);font-weight:500}
.voir-tout{display:block;padding:12px;margin:0 -20px -20px;border-top:1px solid var(--line);text-align:center;font-size:13px;text-decoration:none;font-weight:500}
.voir-tout:hover{background:var(--surface-2)}
.groupe.close h2{color:var(--muted)}
.groupe.close tbody tr{opacity:.55;filter:grayscale(1);transition:opacity .15s,filter .15s}
.groupe.close tbody tr:hover,.groupe.close tbody tr:focus-within{opacity:1;filter:none}

/* Dons, nouvelle demande : zone de dépôt « l'IA lit le courrier » (états idle, lecture, lu, erreur), liste « à vérifier » */
.depot-ia{position:relative;display:grid;grid-template-columns:auto 1fr;gap:12px 24px;align-items:center;padding:26px 30px;border:2px dashed rgba(27,138,156,.55);border-radius:16px;background:linear-gradient(135deg,var(--lagoon-bg) 0%,#fff 65%);transition:border-color .15s,box-shadow .15s,background .15s}
.depot-ia.js.idle,.depot-ia.js.erreur{cursor:pointer}
.depot-ia.js.idle:hover,.depot-ia.survol{border-color:var(--sunset);box-shadow:0 0 0 4px rgba(238,106,59,.14)}
.depot-ia.survol{background:linear-gradient(135deg,#FDE9E1 0%,#fff 65%)}
.depot-ia .illustration{width:84px;height:84px;display:grid;place-items:center;background:#fff;border-radius:20px;box-shadow:var(--shadow);align-self:start}
.depot-ia .illustration svg{width:56px;height:56px}
.depot-ia h2{font-size:22px} .depot-ia .texte p{color:var(--muted);max-width:74ch;margin-top:6px;line-height:1.5}
.depot-ia .commande{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px}
.depot-ia .ou-glisser{font-size:14px;font-weight:500} .depot-ia .formats{flex-basis:100%;font-size:12px;color:var(--muted)}
.depot-ia:not(.js) .choisir,.depot-ia:not(.js) .ou-glisser{display:none}
.depot-ia.js input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none} .depot-ia.js button[type=submit]{display:none}
.depot-ia .etapes{grid-column:1/-1;display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid rgba(27,138,156,.22);padding-top:12px;margin-top:4px;font-size:13px;color:var(--muted)}
.depot-ia .etapes b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--lagoon);color:#fff;font-size:11px;font-weight:700;margin-right:7px;vertical-align:middle}
.depot-ia .journal-ia,.depot-ia .liste-alertes,.depot-ia .flash{grid-column:1/-1} .depot-ia .flash{margin:0} .depot-ia .journal-ia{background:rgba(255,255,255,.75)}
.depot-ia .detail-lecture{grid-column:1/-1} .depot-ia .detail-lecture summary{cursor:pointer;font-size:13px;font-weight:500;color:var(--muted);padding:2px 0} .depot-ia .detail-lecture[open] summary{margin-bottom:8px}
.depot-ia.lecture .detail-lecture summary{display:none} .depot-ia .detail-lecture:has(.journal-ia[hidden]){display:none}
.depot-ia:not(.idle) .q-idle,.depot-ia:not(.lecture) .q-lecture,.depot-ia:not(.lu) .q-lu,.depot-ia:not(.erreur) .q-erreur{display:none!important}
.depot-ia.lecture{border-style:solid;border-color:var(--lagoon)} .depot-ia.lecture .illustration{animation:respire 1.4s ease-in-out infinite}
.depot-ia.lu{border-style:solid;border-color:rgba(46,139,87,.6);background:linear-gradient(135deg,var(--ok-bg) 0%,#fff 65%)}
.depot-ia.erreur{border-color:rgba(196,60,44,.6);background:linear-gradient(135deg,var(--bad-bg) 0%,#fff 65%)}
@keyframes respire{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
.liste-alertes{border:1px solid rgba(184,121,10,.35);background:var(--warn-bg);border-radius:8px;padding:10px 14px;font-size:13px}
.liste-alertes strong{color:var(--warn);display:block;margin-bottom:4px} .liste-alertes ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
@media (max-width:640px){.depot-ia{grid-template-columns:1fr;padding:20px 18px}.depot-ia .illustration{width:64px;height:64px}.depot-ia .illustration svg{width:44px;height:44px}.depot-ia h2{font-size:19px}}

/* Porte d'accès de l'instance de test (code partagé) */
.porte-titre{font-size:22px} .porte-champ{position:relative} .porte-champ input{padding-right:88px;font-size:17px;letter-spacing:.03em}
.porte-champ .lien-texte{position:absolute;right:12px;top:50%;transform:translateY(-50%)}

/* Suggestions : formulaire papier lu par l'IA dans l'éditeur (variante compacte de la zone de dépôt), formulaire lu à côté de l'aperçu, trois points de départ */
#depot-scan{margin-bottom:16px}
.depot-ia.compacte{padding:16px 20px;gap:8px 16px;border-radius:12px}
.depot-ia.compacte .illustration{width:56px;height:56px;border-radius:14px} .depot-ia.compacte .illustration svg{width:38px;height:38px}
.depot-ia.compacte h2{font-size:17px} .depot-ia.compacte .texte p{font-size:13.5px;margin-top:3px} .depot-ia.compacte .commande{margin-top:10px;gap:10px}
.depot-ia.compacte .commande .btn{padding:8px 14px;font-size:13.5px} .depot-ia.compacte .formats{flex-basis:auto}
.scan-lu .scan-pages a{display:block} .scan-lu .scan-pages img{cursor:zoom-in}
.depart{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
/* ---------- Sets de table enfants ---------- */
.doux{color:var(--muted)}
.mode-ia{display:flex;flex-direction:column;gap:3px;text-decoration:none;border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.35;border:1px solid var(--deep-2)}
.mode-ia b{font-weight:600;font-size:13px} .mode-ia span{color:var(--deep-muted)}
.mode-ia.on{color:var(--deep-ink)} .mode-ia.on b::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#4CC38A;margin-right:7px}
.mode-ia.demo{color:#FFD9B8;background:rgba(238,106,59,.12);border-color:rgba(238,106,59,.35)}
.rouage{display:inline-block;width:11px;height:11px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:tourne .8s linear infinite;vertical-align:-1px}
@keyframes tourne{to{transform:rotate(360deg)}}
.pill .rouage{width:9px;height:9px;margin-right:2px} .pill:has(.rouage)::before{display:none}
.chip-cat{display:inline-flex;align-items:center;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:5px;white-space:nowrap}
.chip-cat.sunset{background:#FDE6DC;color:#B6441C} .chip-cat.lagoon{background:var(--lagoon-bg);color:#136A78} .chip-cat.violet{background:#ECE6FA;color:#5B3FA8}
.chip-cat.vert{background:#E2F2E1;color:#2D7A34} .chip-cat.ocre{background:#FAEFD6;color:#8E6508} .chip-cat.gris{background:var(--surface-2);color:var(--muted)}
.ligne-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sets-hero{background:linear-gradient(115deg,#FFF6DC 0%,#FFE9C9 55%,#FFDCC4 100%);color:var(--ink);min-height:230px;align-items:stretch}
.sets-hero .dessin{position:absolute;right:-30px;top:50%;transform:translateY(-50%) rotate(-3deg);width:44%;max-width:520px;opacity:.95;mix-blend-mode:multiply}
.sets-hero .texte{flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:18px;max-width:62%}
.sets-hero h1{color:var(--ink);font-size:34px} .sets-hero p{color:#5B4A3A;max-width:60ch} .sets-hero .sur{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#B6441C;font-weight:600;margin-bottom:6px}
@media (max-width:900px){.sets-hero .dessin{display:none}.sets-hero .texte{max-width:none}}
.etapes-sets{display:grid;grid-template-columns:repeat(4,1fr);gap:14px} @media (max-width:1100px){.etapes-sets{grid-template-columns:1fr 1fr}} @media (max-width:640px){.etapes-sets{grid-template-columns:1fr}}
.etape-set{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:8px}
.etape-set .n{width:30px;height:30px;border-radius:50%;background:var(--sunset);color:#fff;display:grid;place-items:center;font-weight:700;font-family:var(--display)}
.etape-set p{font-size:14px;color:var(--muted)}
.g-sets{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr)} @media (max-width:1100px){.g-sets{grid-template-columns:1fr}}
.entete-carte{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px} .entete-carte h2{margin:0}
.sous-carte{font-size:13px;color:var(--muted);margin:-4px 0 8px}
a.lien-item{text-decoration:none;color:inherit;border-radius:8px;padding-left:6px;padding-right:6px;transition:background .15s} a.lien-item:hover{background:var(--surface-2)}
.avancement{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.carte.avancement{margin-bottom:0}
.barre-double{height:10px;border-radius:5px;background:var(--surface-2);overflow:hidden;display:flex}
.barre-double i{display:block;height:100%;transition:width .4s} .barre-double .valides{background:var(--ok)} .barre-double .prets{background:var(--lagoon);opacity:.55}
.avancement .legende{justify-content:flex-start;gap:16px;font-size:13px} .avancement .legende b{color:var(--ink)} .avancement .legende .ko b,.avancement .legende .ko{color:var(--bad)}
/* vignette d'un modèle (recto + verso) */
.modele-carte{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s,transform .15s}
.modele-carte:hover{border-color:var(--lagoon);box-shadow:var(--shadow);transform:translateY(-1px)}
.modele-carte.valide{border-color:rgba(46,139,87,.55)}
.modele-carte .faces{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;background:var(--surface-2)}
.modele-carte .face{aspect-ratio:420/297;background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 1px 2px rgba(14,36,51,.12)}
.modele-carte .face img{width:100%;height:100%;object-fit:cover}
.attente-face{width:100%;height:100%;display:grid;place-items:center;color:var(--lagoon);background:repeating-linear-gradient(135deg,#fff 0 10px,#F4F8FA 10px 20px)}
.modele-carte .infos{padding:10px 12px 12px;display:flex;flex-direction:column;gap:3px}
.modele-carte .infos .ligne{display:flex;justify-content:space-between;align-items:center;gap:6px 8px;margin-bottom:4px;flex-wrap:wrap}
.modele-carte .infos b{font-family:var(--display);font-size:15px;line-height:1.25} .modele-carte .infos small{color:var(--muted);font-size:12.5px}
.mois-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:22px 26px} @media (max-width:640px){.mois-grille{grid-template-columns:1fr}}
.mois-bloc h2{font-size:16px;margin-bottom:10px;display:flex;align-items:center;gap:10px} .mois-bloc h2::after{content:"";flex:1;height:1px;background:var(--line)}
.mois-bloc .g2{grid-template-columns:1fr 1fr} @media (max-width:640px){.mois-bloc .g2{grid-template-columns:1fr}}
/* préparation d'un lot */
.depart-lot{display:grid;grid-template-columns:260px 1fr;gap:16px} @media (max-width:640px){.depart-lot{grid-template-columns:1fr}}
.planning{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:16px;margin:18px 0 90px} @media (max-width:640px){.planning{grid-template-columns:1fr}}
.mois-plan{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.mois-plan h3{font-size:16px}
.case-theme{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:8px;background:var(--surface-2)}
.case-tete{display:flex;gap:10px;align-items:center} .case-tete select{font-weight:500}
.case-tete .rang{flex:none;width:24px;height:24px;border-radius:50%;background:var(--deep);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}
.apercu-theme{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:3px} .apercu-theme .ligne{display:flex;gap:8px;align-items:center}
.apercu-theme b{color:var(--ink);font-weight:500} .apercu-theme p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.barre-envoi.collante{position:sticky;bottom:16px;box-shadow:0 8px 30px rgba(14,36,51,.18);z-index:5}
.demo-txt{color:var(--warn);font-weight:500}
/* relecture d'un modèle */
.g-modele{grid-template-columns:minmax(0,1fr) 400px;align-items:start} @media (max-width:1200px){.g-modele{grid-template-columns:1fr}}
.colonne-apercu{display:flex;flex-direction:column;gap:10px;min-width:0}
.colonne-actions{display:flex;flex-direction:column;gap:16px}
.barre-apercu{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.segments{display:inline-flex;background:var(--surface-2);border-radius:9px;padding:3px}
.segments button{border:0;background:none;padding:7px 14px;border-radius:7px;font-weight:500;color:var(--muted)} .segments button small{font-weight:400;font-size:11px;margin-left:3px}
.segments button.actif{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(14,36,51,.15)}
.restos-choix{display:flex;gap:6px;flex-wrap:wrap}
.restos-choix button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 11px 5px 6px;font-size:13px;color:var(--ink);position:relative}
.restos-choix button:first-child{padding-left:11px}
.restos-choix button img{width:22px;height:22px;border-radius:50%;object-fit:contain;background:#fff;border:1px solid var(--line)}
.restos-choix button.actif{background:var(--deep);color:#fff;border-color:var(--deep)}
.point-provisoire{width:7px;height:7px;border-radius:50%;background:var(--warn)}
.papier-a3{position:relative;overflow:hidden;width:100%;background:#fff;border-radius:6px;box-shadow:var(--shadow);border:1px solid var(--line)}
.papier-a3 iframe{position:absolute;top:0;left:0;border:0;width:1587px;height:1123px;transform-origin:0 0;background:#fff}
.solutions summary{cursor:pointer;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap} .solutions img{margin-top:12px;border-radius:6px;border:1px solid var(--line)}
.validation-carte{display:flex;flex-direction:column;gap:12px;border-top:4px solid var(--sunset)}
.validation-carte p{font-size:14px;color:var(--muted)}
.valide-bandeau{display:flex;justify-content:space-between;align-items:center;background:var(--ok-bg);color:var(--ok);border-radius:8px;padding:10px 12px} .valide-bandeau span{font-size:13px}
.attente-ligne{display:flex;align-items:center;gap:8px;color:var(--warn)!important}
.pdfs{display:flex;flex-wrap:wrap;gap:6px} .pdfs .btn::before{content:"PDF";font-size:10px;font-weight:700;color:#fff;background:var(--bad);border-radius:3px;padding:1px 4px;margin-right:2px}
.pdfs .btn.lien::before{content:"ZIP";background:var(--deep)}
.btn.charge{opacity:.6;pointer-events:none} .btn.charge::after{content:"";width:10px;height:10px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:tourne .8s linear infinite}
.elements{display:flex;flex-direction:column}
.element{border-top:1px solid var(--line);padding:10px 0;display:flex;flex-direction:column;gap:8px} .element:first-child{border-top:0;padding-top:0}
.element-ligne{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center}
.element .mini{width:62px;height:46px;border-radius:6px;border:1px solid var(--line);background:#fff;overflow:hidden;display:grid;place-items:center;color:var(--lagoon)}
.element .mini img,.element .mini svg{width:100%;height:100%;object-fit:contain}
.element .nom b{display:block;font-weight:500} .element .nom small{color:var(--muted);font-size:12px}
.erreur-el{font-size:13px;color:var(--bad);background:var(--bad-bg);border-radius:6px;padding:7px 10px}
.consigne-el{font-size:12px;color:var(--muted);font-style:italic}
.regen{display:flex;flex-direction:column;gap:8px;background:var(--surface-2);border-radius:8px;padding:10px}
.regen textarea{min-height:52px;font-size:14px}
.suggestions-ia{display:flex;gap:6px;flex-wrap:wrap} .suggestions-ia button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:3px 10px;font-size:12px;color:var(--ink)} .suggestions-ia button:hover{border-color:var(--lagoon);color:var(--lagoon)}
.niveaux{display:flex;flex-direction:column;gap:4px;font-size:14px} .niveaux label{display:flex;gap:8px;align-items:center} .niveaux input{width:auto} .niveaux small{color:var(--muted)}
.theme-carte summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;list-style:none} .theme-carte summary::-webkit-details-marker{display:none}
.theme-carte summary h2{margin:0;display:flex;align-items:center;gap:8px} .theme-carte summary h2::after{content:"▾";font-size:13px;color:var(--muted);transition:transform .15s} .theme-carte[open] summary h2::after{transform:rotate(180deg)}
.theme-carte summary .doux{font-size:13px}
.theme-form,.idee-form{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.quatre{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-bottom:4px} @media (max-width:640px){.quatre{grid-template-columns:1fr 1fr}}
.nav-modeles{display:inline-flex;align-items:center;gap:8px;font-size:13px} .nav-modeles span[aria-disabled]{opacity:.35}
/* restaurants */
.restos-sets{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.resto-set{text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:box-shadow .15s} .resto-set:hover{box-shadow:var(--shadow)}
.cadre-droite{position:relative;overflow:hidden;background:#fff;border-bottom:1px solid var(--line)}
.cadre-droite iframe{position:absolute;top:0;left:0;border:0;width:1587px;height:1123px;transform-origin:0 0;pointer-events:none}
.resto-set .corps{padding:14px 16px;display:flex;flex-direction:column;gap:6px} .resto-set .ligne{display:flex;justify-content:space-between;align-items:center;gap:8px}
.resto-set .format{font-size:12.5px;color:var(--muted)}
.a-confirmer{border-left:4px solid var(--warn);background:var(--warn-bg);display:flex;flex-direction:column;gap:6px} .a-confirmer b{color:var(--warn)}
.g-resto{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start} @media (max-width:1100px){.g-resto{grid-template-columns:1fr}}
.apercu-resto{position:sticky;top:18px}
.form-identite{display:flex;flex-direction:column;gap:18px}
.form-identite fieldset{border:0;border-top:1px solid var(--line);padding:14px 0 0;margin:0;display:flex;flex-direction:column;gap:10px}
.form-identite fieldset:first-child{border-top:0;padding-top:0}
.form-identite legend{font-family:var(--display);font-weight:700;font-size:16px;padding:0 0 6px}
.bascule{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:inherit} .bascule input{width:18px;height:18px;accent-color:var(--sunset)} .bascule.petit{font-size:13px;color:var(--muted)}
.fichier-ligne{display:flex;align-items:center;gap:12px} .fichier-ligne img{height:48px;width:auto;max-width:160px;object-fit:contain;border:1px solid var(--line);border-radius:6px;background:#fff;padding:3px}
.mini-titre{height:18px;display:inline;vertical-align:middle}
input[type=color]{width:64px;height:38px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
input[type=file]{font-size:13px}
/* calendrier */
.note-droits{border-left:4px solid var(--lagoon);display:flex;flex-direction:column;gap:4px} .note-droits p{font-size:14px;color:var(--muted);max-width:90ch}
.calendrier{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.mois-cal{display:flex;flex-direction:column;gap:10px} .mois-cal h2{margin-bottom:0}
.theme-cal{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:8px;background:var(--surface-2)} .theme-cal.reserve{background:none;border:1px dashed var(--line)}
.theme-cal .ligne{display:flex;gap:6px;align-items:center;margin-bottom:2px} .theme-cal small{color:var(--muted);font-size:12px} .theme-cal p{font-size:13px;color:var(--muted)}
/* portail : trois outils */
.outils.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
/* sets : lancement du lot (un par un ou tout), modèle pas encore dessiné */
.barre-envoi.lancement{align-items:stretch}
.choix-lancement{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:1;min-width:0} @media (max-width:900px){.choix-lancement{grid-template-columns:1fr}}
.option-lancement{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;background:var(--surface)}
.option-lancement:has(input:checked){border-color:var(--sunset);background:#FFF6F1}
.option-lancement input{width:18px;height:18px;margin-top:2px;accent-color:var(--sunset);flex:none}
.option-lancement b{display:block;font-weight:600;font-size:14px} .option-lancement small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.barre-envoi.lancement .btn{align-self:center}
.modele-carte .a-dessiner{grid-column:1/-1;aspect-ratio:840/297;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:2px dashed #C9D3DA;border-radius:6px;background:#fff;color:var(--muted)}
.modele-carte .a-dessiner span{font-family:var(--display);font-weight:700;color:var(--ink);font-size:15px} .modele-carte .a-dessiner small{font-size:12px}
.modele-carte.statut-a_generer:hover .a-dessiner{border-color:var(--sunset)} .modele-carte.statut-a_generer:hover .a-dessiner span{color:var(--sunset)}
.element .mini .mini-vide{width:60%;height:60%;border:1.5px dashed #C9D3DA;border-radius:4px}
/* sets : moitié restaurant (modèle Canva), dépôt d'image, calendrier modifiable, jeux du verso */
.panneau-vignette{aspect-ratio:210/297;background:#fff;border-bottom:1px solid var(--line);overflow:hidden} .panneau-vignette img{width:100%;height:100%;object-fit:cover}
.panneau-manquant{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px dashed #C9D3DA;margin:10px;border-radius:8px;color:var(--muted);text-align:center}
.panneau-manquant b{color:var(--ink);font-family:var(--display)}
.colonne-resto{display:flex;flex-direction:column;gap:16px}
.depot-panneau{display:flex;flex-direction:column;gap:12px} .depot-panneau p{font-size:14px;color:var(--muted)}
.zone-depot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px dashed #B9C8D2;border-radius:10px;padding:28px 16px;background:var(--lagoon-bg);cursor:pointer;text-align:center;transition:.15s}
.zone-depot:hover,.zone-depot.survol{border-color:var(--lagoon);background:#D2ECEF}
.zone-depot input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.zone-depot b{font-family:var(--display);font-size:16px;color:var(--ink)} .zone-depot span{font-size:13px;color:var(--muted)}
.zone-depot.petite{padding:12px;border-width:1.5px} .zone-depot.petite b{font-size:14px} .zone-depot.petite span{font-size:12px}
.depot-el{margin-top:-2px}
.cle-valeur-carte h2{margin-bottom:10px}
.g-theme{grid-template-columns:minmax(0,1fr) 360px;align-items:start} @media (max-width:1100px){.g-theme{grid-template-columns:1fr}}
.colonne-theme{display:flex;flex-direction:column;gap:16px}
.etape-ia{display:flex;flex-direction:column;gap:12px;border-top:4px solid var(--lagoon)}
.ia-proposer{display:grid;grid-template-columns:1fr auto;gap:8px} @media (max-width:640px){.ia-proposer{grid-template-columns:1fr}}
textarea.modifie{background:var(--warn-bg);border-color:var(--warn)}
.theme-cal{text-decoration:none;color:inherit;transition:background .15s} a.theme-cal:hover{background:var(--lagoon-bg)} a.theme-cal.reserve:hover{border-color:var(--lagoon)}
.jeux-carte form{display:flex;flex-direction:column;gap:10px} .jeux-choix{display:flex;flex-direction:column;gap:6px} .jeux-choix .bascule{font-size:14px}
.retire{color:var(--warn);font-weight:500}
.mini-mots{font-family:ui-monospace,Menlo,monospace;font-size:8px;line-height:1.15;letter-spacing:1px;color:var(--ink)}
.envoye-ia{margin-top:16px;display:flex;flex-direction:column;gap:6px;font-size:13px;background:var(--surface-2);border-radius:8px;padding:12px 14px} .envoye-ia .tampon{margin-bottom:2px} .envoye-ia b{font-weight:600}

/* Dons, tickets de caisse : miniature du ticket en bout de ligne ; au survol ou au focus, le ticket s'affiche en grand dans un cadre flottant
   (à gauche de la miniature, centré dans la fenêtre, jamais sous la souris : il ne gêne ni le survol ni le clic). */
th.ticket-vu,td.ticket-vu{text-align:right;width:1%;white-space:nowrap}
.ticket-mini{position:relative;display:inline-block;width:38px;height:50px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);vertical-align:middle;cursor:zoom-in;transition:border-color .12s,box-shadow .12s}
.ticket-mini img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:4px}
.ticket-mini:hover,.ticket-mini:focus-visible{border-color:var(--lagoon);box-shadow:0 0 0 3px rgba(27,138,156,.2);outline:0}
.ticket-mini .plus{position:absolute;right:-6px;bottom:-6px;min-width:17px;text-align:center;background:var(--ink);color:#fff;font-size:10px;font-weight:700;line-height:1;border-radius:999px;padding:3px 5px}
.ticket-grand{position:fixed;top:50%;transform:translateY(-50%);z-index:60;display:none;gap:10px;align-items:center;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 50px rgba(14,36,51,.3);pointer-events:none}
.ticket-grand.ouvert{display:flex}
.ticket-grand img{flex:0 1 auto;min-width:0;min-height:120px;max-width:100%;max-height:calc(100vh - 64px);width:auto;height:auto;object-fit:contain;border-radius:6px;background:var(--surface-2)}
/* règles de mise en forme (Paramètres) : onglets par restaurant, choix de casse, mots à corriger, essai en direct */
.portees{display:flex;gap:8px;flex-wrap:wrap}
.portee{display:inline-flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 14px 5px 5px;font-size:14px;font-weight:500;color:var(--ink);line-height:1.2;transition:border-color .15s,background .15s}
.portee .rond{width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;flex:none;color:var(--lagoon)}
.portee .rond img{width:100%;height:100%;object-fit:contain;padding:3px}
.portee:hover{border-color:var(--lagoon)} .portee:focus-visible{outline:2px solid var(--lagoon);outline-offset:2px}
.portee.actif{background:var(--deep);border-color:var(--deep);color:var(--deep-ink)}
.portee .compte{background:var(--surface-2);color:var(--muted);font-size:11px;font-weight:700;border-radius:999px;padding:2px 7px;font-variant-numeric:tabular-nums}
.portee.actif .compte{background:var(--sunset);color:var(--on-sunset)}
.g-forme{grid-template-columns:minmax(0,1fr) 360px;align-items:start} @media (max-width:1100px){.g-forme{grid-template-columns:1fr}}
.forme-regles{display:flex;flex-direction:column;gap:18px;min-width:0}
.forme-portee{font-size:14px;color:var(--muted);border-left:3px solid var(--lagoon);padding:2px 0 2px 12px} .forme-portee b{color:var(--ink);font-weight:500}
.carte .intro{font-size:13px;color:var(--muted);max-width:74ch;margin-bottom:14px}
.choix-casse + .choix-casse{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.choix-casse .tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;min-height:22px}
.choix-casse .titre-champ{font-family:var(--display);font-weight:700;font-size:15px}
.origine{font-size:11px;font-weight:500;letter-spacing:.03em;border-radius:999px;padding:2px 9px;background:var(--surface-2);color:var(--muted)} .origine.propre{background:var(--lagoon-bg);color:var(--lagoon)}
.options-casse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px} @media (max-width:1380px){.options-casse{grid-template-columns:1fr 1fr}} @media (max-width:520px){.options-casse{grid-template-columns:1fr}}
.option-casse{position:relative;display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:8px;padding:10px 12px 10px 36px;cursor:pointer;background:var(--surface);transition:border-color .15s,background .15s}
.option-casse input{position:absolute;left:11px;top:11px;width:16px;height:16px;margin:0;accent-color:var(--sunset)}
.option-casse .nom-option{font-size:13.5px;font-weight:500;line-height:1.25} .option-casse .ex{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.option-casse:hover{border-color:var(--lagoon)}
.option-casse:has(input:checked){border-color:var(--sunset);background:rgba(238,106,59,.06);box-shadow:inset 0 0 0 1px var(--sunset)}
.option-casse:has(input:focus-visible){outline:2px solid var(--lagoon);outline-offset:2px}
.choix-casse.suivi .option-casse:has(input:checked){border-color:var(--muted);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--muted)}   /* choix repris de la règle commune */
.choix-casse.suivi .option-casse input{accent-color:var(--muted)}
.mots-titre{font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.mots-liste{display:flex;flex-direction:column;gap:8px}
.mots-entete,.mot-ligne{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 32px;gap:8px}
.mots-entete{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;align-items:end} .mots-entete label + label{grid-column:3}
.mot-ligne{align-items:start} .mot-ligne .champ{min-width:0}
.mot-ligne .champ label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0}   /* sur grand écran, l'en-tête de colonne porte le libellé */
.mot-ligne .champ + .fleche + .champ input{font-weight:500}
.mot-ligne .fleche{color:var(--muted);text-align:center;line-height:38px}
.mot-ligne .retirer{width:32px;height:38px;border:0;background:none;color:var(--muted);border-radius:8px;font-size:14px} .mot-ligne .retirer:hover,.mot-ligne .retirer:focus-visible{background:var(--bad-bg);color:var(--bad)}
.mot-herite{display:flex;justify-content:space-between;align-items:center;gap:8px 14px;flex-wrap:wrap;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--ground);font-size:14px}
.mot-herite .paire{display:flex;gap:8px;flex-wrap:wrap;min-width:0} .mot-herite .fleche{color:var(--muted)} .mot-herite .vers{font-weight:500}
.mot-herite.ecarte .paire{color:var(--muted);text-decoration:line-through}
@media (max-width:640px){
  .mots-entete{display:none}
  .mot-ligne{grid-template-columns:minmax(0,1fr) 32px;padding:10px 6px 10px 10px;border:1px solid var(--line);border-radius:8px}
  .mot-ligne .champ{grid-column:1} .mot-ligne .champ label{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;margin-bottom:6px}
  .mot-ligne .fleche{display:none} .mot-ligne .retirer{grid-column:2;grid-row:1}
}
.mot-ligne input,.mot-herite{scroll-margin-bottom:130px}   /* une ligne ajoutée ne reste pas cachée sous la barre d'enregistrement */
@media (max-width:640px){.barre-forme .etat:not(.demo-txt){display:none} .barre-forme .actions,.barre-forme .btn{width:100%;justify-content:center}}
.essai{position:sticky;top:18px;display:flex;flex-direction:column;gap:14px} .essai h2{margin-bottom:6px} @media (max-width:1100px){.essai{position:static}}
.essai-rendu{background:var(--ground);border:1px dashed var(--line);border-radius:8px;padding:14px 16px;min-height:92px}
.essai-rendu .sur{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:8px}
.essai-rendu .nom{font-family:var(--display);font-weight:700;font-size:18px;line-height:1.3;overflow-wrap:anywhere}
.essai-rendu .desc{font-style:italic;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.essai-rendu mark{background:rgba(238,106,59,.16);color:inherit;border-radius:3px;padding:0 2px;box-shadow:inset 0 -2px 0 var(--sunset)}
.essai-regles{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13px}
.essai-regles li{display:flex;justify-content:space-between;gap:12px;align-items:baseline} .essai-regles li span{overflow-wrap:anywhere;min-width:0} .essai-regles small{color:var(--muted);white-space:nowrap}
.carte.forme-acces{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap} .forme-acces h2{margin-bottom:6px} .forme-acces p{font-size:13px;color:var(--muted);max-width:76ch} .forme-acces p + p{margin-top:6px;color:var(--ink)}
/* éditeur : ce que les règles de mise en forme ont changé à la lecture du formulaire (information, pas une alerte) */
.liste-alertes.mise-en-forme{border-color:rgba(27,138,156,.35);background:var(--lagoon-bg)} .liste-alertes.mise-en-forme strong{color:var(--lagoon)} .liste-alertes.mise-en-forme a{font-weight:500}
/* relecture par l'IA : bandeau de l'éditeur, corrections et suggestions sous un plat, rappel au valideur */
.relire-ia{display:grid;grid-template-columns:1fr auto;gap:10px 16px;align-items:center;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--lagoon);border-radius:var(--radius);padding:12px 16px;margin:14px 0}
.relire-ia .texte{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--muted)} .relire-ia .texte b{color:var(--ink);font-family:var(--display);font-size:15px}
.relire-ia .bilan{grid-column:1/-1;font-size:13px;border-top:1px solid var(--line);padding-top:10px} .relire-ia .bilan ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.relire-ia .bilan li.avis{color:var(--warn)} .relire-ia .bilan .erreur{color:var(--bad)}
@media (max-width:640px){.relire-ia{grid-template-columns:1fr}.relire-ia .btn{justify-content:center}}
.plat .relecture{grid-column:1/-1;display:flex;flex-direction:column;gap:6px;font-size:13px}
.relecture .corrige{display:flex;gap:6px 10px;align-items:baseline;flex-wrap:wrap;color:var(--muted)}
.relecture .suggere{display:flex;gap:8px 10px;align-items:center;flex-wrap:wrap;background:var(--warn-bg);border:1px solid rgba(184,121,10,.35);border-radius:8px;padding:8px 10px}
.relecture .suggere .quoi{flex:1 1 220px;min-width:0} .relecture .suggere .reponses{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tag-ia{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.06em;border-radius:999px;padding:1px 7px;background:var(--lagoon-bg);color:var(--lagoon)} .suggere .tag-ia{background:#fff;color:var(--warn)}
.a-verifier-ia{border-left:3px solid var(--warn)} .a-verifier-ia ul{margin:0 0 8px;padding-left:18px;font-size:13px;display:flex;flex-direction:column;gap:4px}
/* règles de mise en forme : appellations maison d'un restaurant */
.maison-liste{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.maison-mot{display:inline-flex;align-items:center;gap:6px;background:var(--lagoon-bg);border-radius:999px;padding:4px 6px 4px 12px;font-size:14px;font-weight:500}
.maison-mot button{border:0;background:none;color:var(--muted);width:22px;height:22px;border-radius:50%;font-size:12px;line-height:1} .maison-mot button:hover,.maison-mot button:focus-visible{background:var(--bad-bg);color:var(--bad)}
.maison-ajout{display:flex;gap:8px;max-width:440px}
/* règles de mise en forme : règles spéciales en texte libre, essai avec l'IA */
#bloc-speciales h2{display:flex;align-items:center;gap:10px;flex-wrap:wrap} #speciales{min-height:120px;line-height:1.5}
.speciales-heritees{margin:0;padding-left:18px;font-size:14px;color:var(--muted);display:flex;flex-direction:column;gap:3px}
.essai-ia{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
#essai-ia-resultat{align-self:stretch;display:flex;flex-direction:column;gap:10px} .notes-ia li.avis{color:var(--warn)}
/* suggestions validées : refaire les PDF */
.recomposer{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
/* nouvelles suggestions : choisir d'anciennes suggestions validées comme point de départ */
.autres-departs{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.autres-departs .tete{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 20px;flex-wrap:wrap} .autres-departs h3{margin-bottom:4px} .autres-departs .tete .sur-carte{display:block;max-width:74ch}
.autres-departs input[type=search]{width:280px;max-width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px}
.liste-departs{display:flex;flex-direction:column;gap:8px}
.depart-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:14px;align-items:center;padding:8px 12px 8px 8px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.depart-item:hover{border-color:var(--lagoon)}
.depart-item .vignette{display:block;width:92px;height:65px;border-radius:6px;border:1px solid var(--line);background:var(--surface-2);overflow:hidden} .depart-item .vignette img{width:100%;height:100%;object-fit:cover;object-position:top}
.depart-item .titre{font-weight:700;display:flex;gap:8px;align-items:center;flex-wrap:wrap} .depart-item .sous{font-size:12px;color:var(--muted);margin-top:1px}
.depart-item .extrait{font-size:13px;color:var(--muted);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.depart-item .actions{flex-wrap:nowrap}
@media (max-width:640px){.depart-item{grid-template-columns:64px minmax(0,1fr)}.depart-item .vignette{width:64px;height:46px;align-self:start}.depart-item .actions{grid-column:1/-1;justify-content:flex-end}.autres-departs input[type=search]{width:100%}}
/* sets : sujet demandé pour le coloriage magique */
.sujet-magique{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px} .sujet-magique .suggestions-ia{align-items:center} .sujet-magique .suggestions-ia span{font-size:12px}
.sujet-magique label.bascule{display:inline-flex;margin:2px 0 0;font-size:13px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink)}
/* éditeur : zone de texte obligatoire en tête des suggestions (Le Bilboquet Plage), même habillage que celle du bas */
.tete-editeur{margin:14px 0} .tete-editeur textarea{min-height:76px}

/* ---------- Dons : catalogue des bons, événements du groupe, valeur relevée au ticket ---------- */
fieldset.champ{border:0;margin:0;padding:0;min-width:0} fieldset.champ > legend{padding:0;font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
.champ[hidden],.grille-form[hidden]{display:none}
.champ.invalide > .cases,.champ.invalide > .choix-cartes,.champ.invalide > .dates-choix,.champ.invalide > .ajout-date input{border-radius:8px;outline:2px solid var(--bad);outline-offset:4px}
/* éditeur de bons : une ligne = un nombre de bons d'un même type, dans les enseignes cochées */
.editeur-bons{display:flex;flex-direction:column;gap:8px}
.eb-lignes{display:flex;flex-direction:column;gap:6px}
.eb-ligne{display:grid;grid-template-columns:86px minmax(250px,1.1fr) minmax(0,1.25fr) auto;gap:8px 12px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.eb-nb{display:flex;align-items:center;gap:7px} .eb-nb input{width:60px;text-align:right;font-family:var(--display);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;padding:7px 9px} .eb-nb span{color:var(--muted);font-weight:700}
.eb-quoi{display:flex;flex-direction:column;gap:6px;min-width:0} .eb-quoi select{font-weight:500;text-overflow:ellipsis} .eb-quoi [hidden]{display:none}
.eb-mention{font-size:13px;padding:7px 10px} .editeur-bons:not(.avec-mentions) .eb-mention{display:none}
.eb-mentions{font-size:13px}
/* cases et étiquettes de choix posées dans un bloc .champ : texte courant, pas le style des libellés de champ */
.champ .cases label,.champ label.date-choix,.champ .choix-cartes label{text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--ink);margin-bottom:0}
.champ .cases label,.champ .choix-cartes label{display:flex} .champ label.date-choix{display:inline-flex}
.eb-restos{gap:6px 14px;padding-top:9px;min-width:0} .eb-restos label[hidden],.eb-sans-type[hidden]{display:none} .eb-sans-type{display:block}
.eb-suppr{margin-top:3px} .eb-suppr[disabled]{visibility:hidden}
.eb-pied{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.eb-total{font-size:13px;color:var(--muted)} .eb-total b{color:var(--ink);font-family:var(--display);font-size:15px}
@media (max-width:760px){.eb-ligne{grid-template-columns:86px minmax(0,1fr) auto}.eb-restos{grid-column:1/-1;padding-top:0}}
/* choix présentés en cartes (nature d'un bon, rythme d'un événement) : composant .choix existant, en grille */
.choix-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}
.choix-cartes .choix{padding:11px 13px;gap:10px;position:relative} .choix-cartes .choix b{font-size:14px;line-height:1.3} .choix-cartes .choix span{font-size:12.5px;line-height:1.4;display:block;margin-top:2px}
/* catalogue : un type par ligne, qui s'ouvre sur son formulaire */
.cat-groupe{display:flex;flex-direction:column;gap:10px} .cat-groupe h2{display:flex;align-items:center;gap:8px}
.cat-liste{padding:0;overflow:hidden}
.cat-type + .cat-type{border-top:1px solid var(--line)}
.cat-type > summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(130px,.7fr) minmax(0,1.2fr) auto;gap:6px 18px;align-items:center;padding:13px 20px;cursor:pointer;list-style:none;transition:background .15s}
.cat-type > summary::-webkit-details-marker{display:none}
.cat-type > summary:hover{background:var(--ground)} .cat-type[open] > summary{background:var(--ground);border-bottom:1px solid var(--line)}
.cat-titre b{font-family:var(--display);font-size:16px;font-weight:700;line-height:1.25} .cat-titre small{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;line-height:1.4}
.cat-valeur{font-weight:600;font-variant-numeric:tabular-nums} .cat-valeur small{display:block;font-weight:400;font-size:11.5px;color:var(--muted)}
.cat-enseignes{display:flex;flex-wrap:wrap;gap:4px}
.enseigne{font-size:12px;background:var(--lagoon-bg);color:#126270;border-radius:6px;padding:2px 8px;white-space:nowrap}
.cat-etat{display:flex;align-items:center;gap:10px;justify-content:flex-end}
.cat-modifier{font-size:13px;color:var(--lagoon);font-weight:500} .cat-type[open] .cat-modifier{visibility:hidden}
.cat-type.retire > summary > :not(.cat-etat){opacity:.55}
.cat-form{display:flex;flex-direction:column;gap:14px;padding:18px 20px 20px} .cat-nouveau .cat-form{padding:0}
.cat-nouveau{border-top:4px solid var(--sunset)}
@media (max-width:900px){.cat-type > summary{grid-template-columns:minmax(0,1fr) auto}.cat-enseignes{grid-column:1/-1;order:3}.cat-etat{grid-column:1/-1;order:4;justify-content:flex-start}}
/* événements : cartes de la liste */
.evts{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}
.evt{display:flex;flex-direction:column;gap:14px;border-top:4px solid var(--lagoon);transition:box-shadow .2s,transform .2s}
.evt:hover{box-shadow:var(--shadow);transform:translateY(-2px)} .evt.attend{border-top-color:var(--sunset)} .evt.archive{border-top-color:var(--line);opacity:.75}
.evt-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.evt-rythme{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:5px}
.evt h2{margin:0;font-size:20px;line-height:1.2} .evt h2 a{color:inherit;text-decoration:none} .evt h2 a:hover{color:var(--lagoon)}
.evt-dotation{display:flex;align-items:center;gap:14px;padding:12px 14px;background:var(--ground);border-radius:9px}
.evt-nb{font-family:var(--display);font-size:34px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--deep)}
.evt-dotation b{display:block;font-weight:600;font-size:14px} .evt-dotation small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;color:var(--muted);line-height:1.4;margin-top:1px}
.evt-chiffres{display:grid;grid-template-columns:auto 1fr auto;gap:10px 16px;margin:0}
.evt-chiffres dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)} .evt-chiffres dd{margin:2px 0 0;font-weight:500;font-size:14px}
.evt .actions{margin-top:auto}
/* événement : préparation des bons */
.g-evt{grid-template-columns:minmax(0,1fr) 310px} @media (max-width:1180px){.g-evt{grid-template-columns:1fr}}
.bande-impression{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap;border-left:4px solid var(--sunset);background:#FFF6F1}
.bande-impression h2{margin-bottom:4px} .bande-impression .legende{max-width:68ch;font-size:13px}
.periode{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.periode .champ{width:170px} .periode .filtres{margin-left:auto;align-self:center}
.emission{display:flex;flex-direction:column;gap:18px}
.num-etape{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--deep);color:#fff;font-family:var(--display);font-size:12px;font-weight:700;margin-right:8px;letter-spacing:0;vertical-align:1px}
.dates-choix{display:flex;flex-wrap:wrap;gap:8px} .dates-choix:empty{display:none}
.date-choix{display:inline-flex;align-items:center;gap:8px;padding:8px 13px 8px 10px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);font-size:14px;cursor:pointer;transition:border-color .15s,background .15s;user-select:none}
.date-choix input{width:16px;height:16px;margin:0;accent-color:var(--sunset)} .date-choix span::first-letter{text-transform:uppercase}
.date-choix:has(input:checked){border-color:var(--sunset);background:#FFF6F1;font-weight:500}
.date-choix.dotee{cursor:default;background:var(--surface-2);color:var(--muted)} .date-choix small{font-size:11.5px;color:var(--muted)}
.date-choix .retirer{border:0;background:none;font-size:18px;line-height:1;color:var(--muted);padding:0 0 0 2px;cursor:pointer}
.ajout-date{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px} .ajout-date input{width:190px}
.emission .barre-envoi{background:var(--ground)} .emission-total{font-size:14px;color:var(--muted)} .emission-total b{font-family:var(--display);font-size:18px;color:var(--ink)}
.dates-evt tr.clos td{color:var(--muted)} .dates-evt tr.clos a{color:inherit}
.dates-evt td.agir .actions{justify-content:flex-end;flex-wrap:nowrap;gap:8px} .dates-evt th.agir{text-align:right} .dates-evt td.usage{min-width:150px}
.dates-evt td:first-child a{font-weight:500} .dates-evt td:first-child a::first-letter{text-transform:uppercase}
.dotation-titre{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:12px 0 6px;display:flex;align-items:center;gap:8px} .dotation-titre:first-of-type{margin-top:0}
.dotation-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.dotation-liste li{display:grid;grid-template-columns:44px 1fr;gap:8px;font-size:14px;align-items:baseline} .dotation-liste b{font-family:var(--display);text-align:right;font-variant-numeric:tabular-nums}
.dotation-liste small{display:block;font-size:12px;color:var(--muted)}
.pas-a-pas{list-style:none;margin:0;padding:0;counter-reset:pas;display:flex;flex-direction:column;gap:11px}
.pas-a-pas li{counter-increment:pas;position:relative;padding-left:32px;font-size:14px} .pas-a-pas li::before{content:counter(pas);position:absolute;left:0;top:0;width:21px;height:21px;border-radius:50%;background:var(--lagoon-bg);color:var(--lagoon);display:grid;place-items:center;font-family:var(--display);font-size:12px;font-weight:700}
.pas-a-pas b{display:block;font-weight:600} .pas-a-pas span{color:var(--muted);font-size:13px}
/* valeur d'un bon à relever sur le ticket de caisse */
.bloc-releve{display:flex;flex-direction:column;gap:10px} .bloc-releve.attend{border-left:4px solid var(--warn)}
.carte .bloc-releve{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)} .carte .bloc-releve.attend{border-left:0}
.releve{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,1fr) auto;gap:10px 14px;align-items:start;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}
.releve-quoi{display:flex;flex-direction:column;gap:2px;font-size:14px;min-width:0} .releve-quoi code{align-self:flex-start} .releve-quoi small{color:var(--muted);font-size:12px}
.releve .champ label{margin-bottom:4px;text-transform:none;letter-spacing:0;font-size:13px} .releve .btn{margin-top:22px}
@media (max-width:760px){.releve{grid-template-columns:1fr}.releve .btn{margin-top:0;justify-content:center}}
.mobile .releve{grid-template-columns:1fr;background:var(--surface)} .mobile .releve .btn{margin-top:0;justify-content:center;padding:13px}
a.lien-signal{text-decoration:none;color:inherit;transition:box-shadow .15s} a.lien-signal:hover{box-shadow:var(--shadow)}
.todo-evts h3{display:flex;justify-content:space-between;align-items:center} .liste-evts{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:6px} .liste-evts .item-todo{margin:0}
.dates-evt td:first-child,.dates-evt td:nth-child(3){white-space:nowrap} .dates-evt td:nth-child(2){min-width:230px} .dates-evt .btn{white-space:nowrap}
.dates-evt td small.legende{display:block}
@media (max-width:760px){.dates-evt td:first-child,.dates-evt td:nth-child(3){white-space:normal}.dates-evt td:nth-child(2){min-width:0}}
.bloc-releve .valeurs-corps .champ label,.mobile .releve .champ label{text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink);font-weight:500;line-height:1.4}
.champ.invalide > .editeur-bons{border-radius:8px;outline:2px solid var(--bad);outline-offset:4px}
/* avec mentions (salons) : type et mention sur la même ligne, pour que 18 lignes restent lisibles d'un regard */
.editeur-bons.avec-mentions .eb-ligne{grid-template-columns:86px minmax(360px,1.7fr) minmax(0,1fr) auto}
.editeur-bons.avec-mentions .eb-quoi{flex-direction:row;flex-wrap:wrap} .editeur-bons.avec-mentions .eb-type{flex:1.3 1 190px;width:auto;min-width:0} .editeur-bons.avec-mentions .eb-mention{flex:1 1 150px;width:auto;min-width:0;padding:9px 11px} .editeur-bons.avec-mentions .eb-montant{flex:0 1 130px;width:auto}
@media (max-width:760px){.editeur-bons.avec-mentions .eb-ligne{grid-template-columns:86px minmax(0,1fr) auto}}

/* Fonds des suggestions : en service, création par l'IA, bibliothèque, réglages d'un fond, prompts et thèmes */
.lib-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.titre-section{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap;margin-bottom:12px}
.rouet{display:inline-block;width:16px;height:16px;border-radius:50%;border:2.5px solid currentColor;border-top-color:transparent;animation:tourne .8s linear infinite;flex:none}
.rouet.grand{width:34px;height:34px;border-width:3.5px;color:var(--lagoon)}
/* vignette d'un volet A5 : image, bande centrale (colonne blanche ou voile), titre, lignes de texte figurées */
.vignette-fond{position:relative;aspect-ratio:148.5/210;border-radius:6px;overflow:hidden;background:#F6F2E8;container-type:inline-size;box-shadow:0 1px 2px rgba(14,36,51,.12),0 6px 18px -8px rgba(14,36,51,.35)}
.vignette-fond > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vignette-fond .bande{position:absolute;top:0;bottom:0;left:calc((100% - var(--bande)) / 2);width:var(--bande)}
.vignette-fond.colonne .bande{background:#fff}
.vignette-fond.integral .bande{background:linear-gradient(90deg,transparent,rgba(255,255,255,var(--voile)) 3%,rgba(255,255,255,var(--voile)) 97%,transparent)}
.vignette-fond .titre-v{position:absolute;left:calc((100% - var(--bande)) / 2 + 4%);right:calc((100% - var(--bande)) / 2 + 4%);top:17%;text-align:center;font-size:6.4cqw;line-height:1.1;text-wrap:balance}
.vignette-fond .lignes{position:absolute;left:50%;transform:translateX(-50%);top:32%;width:calc(var(--bande, 70%) - 18%);display:flex;flex-direction:column;align-items:center;gap:5.5cqw}
.vignette-fond .lignes i{display:block;height:1.6cqw;border-radius:2px;background:rgba(14,36,51,.28);width:80%} .vignette-fond .lignes i:nth-child(3n+2){width:58%} .vignette-fond .lignes i:nth-child(3n){width:36%;background:rgba(14,36,51,.42)}
.vignette-fond .etat-v{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:500;text-align:center;padding:10px;background:rgba(241,245,248,.88);color:var(--ink)}
.vignette-fond.en-cours .q-cours,.vignette-fond.en-erreur .q-erreur{display:flex} .vignette-fond.en-cours .rouet{color:var(--lagoon)}
.vignette-fond.en-erreur .q-erreur{background:rgba(251,228,224,.9);color:var(--bad)}
.vignette-fond.origine{background:repeating-linear-gradient(-45deg,#fff 0 6px,#F7F9FA 6px 12px);--bande:76%}
.vignette-fond.origine .logo-v{position:absolute;top:6%;left:50%;transform:translateX(-50%);width:44%;height:14%;display:grid;place-items:center}
.vignette-fond.origine .logo-v img{max-height:100%;max-width:100%;object-fit:contain;border-radius:4px}
/* en service */
.tuiles-service{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.tuile-service{padding:12px;display:grid;grid-template-columns:76px minmax(0,1fr);gap:14px;align-items:center} .tuile-service > a{display:block;border-radius:6px} .tuile-service > a:focus-visible{outline-offset:3px}
.tuile-service .vignette-fond{width:76px} .tuile-service .vignette-fond .lignes{gap:4.5cqw} .tuile-service .vignette-fond .lignes i{height:2.4cqw}
.tuile-service.perso{border-color:rgba(27,138,156,.45);box-shadow:0 0 0 3px var(--lagoon-bg)}
.corps-tuile{display:flex;flex-direction:column;gap:8px;align-items:flex-start} .corps-tuile b{font-family:var(--display);font-size:15px}
.corps-tuile .pill{white-space:normal;line-height:1.3} .choix-service{width:100%} .choix-service select{font-size:13px;padding:7px 9px}
/* création par l'IA */
.creer-fond{padding:0;overflow:hidden;border-color:rgba(27,138,156,.45)}
.creer-tete{display:flex;gap:18px;align-items:center;padding:22px 26px;background:linear-gradient(135deg,var(--lagoon-bg) 0%,#fff 70%);border-bottom:1px solid var(--line)}
.creer-tete .illustration{flex:none;width:68px;height:68px;display:grid;place-items:center;background:#fff;border-radius:18px;box-shadow:var(--shadow);color:var(--lagoon)} .creer-tete .illustration svg{width:44px;height:44px}
.creer-tete h2{font-size:22px;margin-bottom:4px} .creer-tete p{color:var(--muted);max-width:78ch}
.g-creer{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:0}
.etapes-creer{padding:22px 26px;display:flex;flex-direction:column;gap:20px}
.etape-creer{border:0;padding:0;margin:0;min-width:0}
.etape-creer legend,.etape-creer .champ > label,.champ > .lib{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink);letter-spacing:0;text-transform:none;margin-bottom:10px;padding:0}
.etape-creer legend b,.etape-creer .champ > label b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--lagoon);color:#fff;font-family:var(--body);font-size:12px}
.champ > .lib{font-family:var(--body);font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
.etape-creer.duo{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.requis-libre > label::after{content:"obligatoire";display:inline-block;margin-left:8px;padding:1px 6px;border-radius:999px;background:var(--bad-bg);color:var(--bad);font-family:var(--body);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.5}
.etape-creer.invalide .puce:not(:has(input:checked)){border-color:rgba(196,60,44,.45)} .champ.invalide > textarea{border-color:var(--bad)}
.etape-creer .erreur-champ[hidden]{display:none}
.mises-en-page{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choix.mep{align-items:center;position:relative} .choix.mep input{position:absolute;opacity:0;pointer-events:none}
.choix.mep:has(input:checked){border-color:var(--lagoon);background:var(--lagoon-bg)} .choix.mep:has(input:focus-visible){outline:2px solid var(--lagoon);outline-offset:2px}
.schema{flex:none;width:38px;height:54px;border-radius:4px;position:relative;overflow:hidden;background:radial-gradient(circle at 12% 18%,#F2C430 0 18%,transparent 19%),radial-gradient(circle at 88% 70%,#A6BD8C 0 20%,transparent 21%),radial-gradient(circle at 10% 82%,#EE6A3B 0 15%,transparent 16%),#FAF6EC;box-shadow:inset 0 0 0 1px var(--line)}
.schema.colonne{background:radial-gradient(circle at 12% 18%,#7A3EA8 0 18%,transparent 19%),radial-gradient(circle at 88% 70%,#FFE0B0 0 20%,transparent 21%),#F2782A}
.schema i{position:absolute;top:0;bottom:0;left:22%;right:22%;background:repeating-linear-gradient(180deg,transparent 0 7px,rgba(14,36,51,.35) 7px 8.5px,transparent 8.5px 11px) center 9px/62% 100% no-repeat}
.schema.colonne i{background-color:#fff}
.segments{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.segments label{position:relative;cursor:pointer} .segments input{position:absolute;opacity:0;pointer-events:none}
.segments span{display:block;padding:8px 16px;font-size:14px;font-weight:500;border-right:1px solid var(--line);min-width:44px;text-align:center}
.segments label:last-child span{border-right:0} .segments input:checked + span{background:var(--deep);color:#fff} .segments input:focus-visible + span{outline:2px solid var(--sunset);outline-offset:-2px}
.barre-generer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px}
.resume-generer{font-size:14px;color:var(--muted);max-width:56ch}
.note-demo{font-size:13px;background:var(--warn-bg);color:var(--warn);border-radius:8px;padding:9px 12px}
.prompt-envoye{background:var(--ground);border-left:1px solid var(--line);padding:22px 22px;display:flex;flex-direction:column;gap:10px;min-width:0}
.prompts{display:flex;flex-direction:column;gap:10px} .vide-prompt{font-size:13px;color:var(--muted);border:1px dashed var(--line);border-radius:8px;padding:16px;text-align:center}
.prompt-resto{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px} .prompt-resto summary{cursor:pointer;font-weight:500;font-size:14px}
.prompt-resto textarea{margin-top:8px;font-size:12.5px;line-height:1.45;min-height:150px}
.pied-prompt{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px} .pied-prompt [hidden]{display:none}
.deposer-fond{border-top:1px solid var(--line);padding:14px 26px} .deposer-fond summary{cursor:pointer;font-weight:500;color:var(--lagoon)}
.grille-depot{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:14px;align-items:start;margin-top:14px} .grille-depot .actions{padding-top:22px}
/* bibliothèque */
.filtres-fonds{margin-bottom:14px} .filtres-fonds .puce{padding:5px 12px 5px 7px;font-size:13px} .filtres-fonds .puce:not(:has(img)){padding-left:12px}
.biblio{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px}
.fond-carte{padding:12px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s,transform .15s} .fond-carte[hidden]{display:none}
.fond-carte:hover{box-shadow:var(--shadow);transform:translateY(-2px)} .lien-vignette{display:block;border-radius:6px}
.corps-fond h3{font-size:15px;margin-bottom:4px} .corps-fond h3 a{color:var(--ink);text-decoration:none} .corps-fond h3 a:hover{color:var(--lagoon)}
.corps-fond .meta{font-size:12px;color:var(--muted)} .corps-fond .pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px} .corps-fond .pill{white-space:normal}
.erreur-fond{font-size:12px;color:var(--bad);margin-top:6px} .vide-biblio{color:var(--muted);text-align:center;padding:28px}
/* page d'un fond */
.g-fond{grid-template-columns:minmax(0,1fr) minmax(340px,.95fr);align-items:start}
.colonne-reglages{display:flex;flex-direction:column;gap:18px;min-width:0}
.reglages-fond{display:flex;flex-direction:column;gap:18px}
.tete-reglages{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap} .tete-reglages h2{margin:0}
.etat-enregistrement{font-size:12px;color:var(--muted)} .etat-enregistrement.ok{color:var(--ok)} .etat-enregistrement.erreur{color:var(--bad);font-weight:500}
.reglages-fond .erreur-champ[hidden]{display:none}
.bloc-reglage{border:0;border-top:1px solid var(--line);padding:16px 0 0;margin:0;display:flex;flex-direction:column;gap:14px;min-width:0}
.bloc-reglage legend{font-family:var(--display);font-weight:700;font-size:15px;padding:0 8px 0 0}
.curseur label{display:flex;justify-content:space-between;font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:4px}
.curseur output{font-variant-numeric:tabular-nums;color:var(--ink);text-transform:none;letter-spacing:0;font-weight:700}
.curseur input[type=range]{width:100%;accent-color:var(--lagoon)}
.reglages-fond.mep-colonne .q-integral{display:none}
.lisibilite{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px} .lisibilite .pill{white-space:normal;line-height:1.3} .lisibilite [hidden]{display:none}
.polices{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;max-height:330px;overflow:auto;padding:2px}
.police{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:74px;border:1.5px solid var(--line);border-radius:8px;padding:8px;cursor:pointer;background:var(--surface);text-align:center}
.police input{position:absolute;opacity:0;pointer-events:none} .police .exemple{font-size:21px;line-height:1.1;text-wrap:balance}
.police small{font-family:var(--body);font-style:normal;font-weight:400;font-size:11px;color:var(--muted)}
.police:hover{border-color:var(--lagoon)} .police:has(input:checked){border-color:var(--deep);box-shadow:inset 0 0 0 1px var(--deep);background:var(--surface-2)} .police:has(input:focus-visible){outline:2px solid var(--sunset);outline-offset:2px}
.couleurs{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pastille{position:relative;cursor:pointer} .pastille input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.pastille span{display:block;width:34px;height:34px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pastille:has(input:checked) span{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--deep)} .pastille:has(input:focus-visible) span{outline:2px solid var(--sunset);outline-offset:4px}
.pastille.libre{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)} .pastille.libre span{width:auto;height:auto;background:none;box-shadow:none}
.pastille.libre input[type=color]{width:38px;height:34px;padding:0;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer}
.apercu-fond{position:sticky;top:16px;display:flex;flex-direction:column;gap:10px;min-width:0}
.tete-apercu{display:flex;flex-direction:column;gap:8px} .apercu-fond .onglets-formats a{text-decoration:none}
.apercu-fond .legende{font-size:12px;color:var(--muted)}
.image-fond .image-entiere{display:inline-block;max-width:240px;border-radius:6px;overflow:hidden;box-shadow:var(--shadow)}
.zone-danger{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-color:rgba(196,60,44,.3)} .zone-danger h2{margin-bottom:4px}
.etat-fond{display:flex;gap:18px;align-items:center} .etat-fond.erreur{border-color:rgba(196,60,44,.45);background:var(--bad-bg)} .etat-fond p{color:var(--muted);margin-top:4px}
.remplace{font-weight:400;opacity:.75}
.ligne-fond{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted)} .ligne-fond img{width:34px;height:48px;object-fit:cover;border-radius:3px;box-shadow:0 1px 3px rgba(14,36,51,.3)} .ligne-fond b{color:var(--ink);font-weight:500}
select.select-fond{width:auto;max-width:100%;font-size:13px;padding:6px 9px}
/* prompts et thèmes */
.ordre-prompt{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;counter-reset:etape}
.ordre-prompt li{counter-increment:etape;background:var(--lagoon-bg);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;position:relative}
.ordre-prompt li::before{content:counter(etape);font:700 11px var(--body);color:#fff;background:var(--lagoon);border-radius:50%;width:20px;height:20px;display:grid;place-items:center;margin-bottom:4px}
.ordre-prompt li b{font-size:14px} .ordre-prompt li span{font-size:12px;color:var(--muted)}
.ordre-prompt li.fixe{background:var(--surface-2)} .ordre-prompt li.fixe::before{background:var(--muted)}
.styles-restos{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}
.style-resto label{display:flex;align-items:center;gap:8px} .style-resto label img{width:24px;height:24px;border-radius:50%;object-fit:cover}
.themes-liste{display:flex;flex-direction:column;gap:8px}
.theme-ligne{border:1px solid var(--line);border-radius:8px;background:var(--surface)} .theme-ligne[open]{box-shadow:var(--shadow)}
.theme-ligne summary{cursor:pointer;display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}
.theme-ligne .nom-theme{font-weight:700;min-width:110px} .theme-ligne .titre-apercu{font-size:22px;line-height:1.1;flex:1}
.theme-ligne.nouveau .nom-theme{color:var(--lagoon)}
.form-theme{padding:4px 16px 16px;display:flex;flex-direction:column;gap:12px}
.grille-theme{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px} .grille-theme .champ.large{grid-column:1/-1}
.grille-theme input[type=color]{width:100%;height:40px;padding:2px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
details.contraintes summary{display:flex;flex-direction:column;gap:2px;list-style:none} details.contraintes summary h2{margin:0} details.contraintes summary::-webkit-details-marker{display:none}
.contrainte{margin-top:12px;font-size:13px} .contrainte b{display:block;margin-bottom:2px} .contrainte p{color:var(--muted);max-width:110ch}
@media (max-width:1100px){.g-creer,.g-fond{grid-template-columns:1fr} .prompt-envoye{border-left:0;border-top:1px solid var(--line)} .apercu-fond{position:static} .grille-depot{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.etape-creer.duo,.mises-en-page,.styles-restos,.grille-theme,.grille-depot{grid-template-columns:1fr} .ordre-prompt{grid-template-columns:1fr 1fr} .creer-tete{flex-direction:column;align-items:flex-start;padding:18px} .etapes-creer,.prompt-envoye{padding:18px} .grille-depot .actions{padding-top:0} .biblio{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px} .tuiles-service{grid-template-columns:1fr}}
.champ label.police,.champ label.pastille{margin:0;letter-spacing:0;text-transform:none;font-size:inherit;color:inherit}
.champ label.police{display:flex;color:var(--ink)} .champ label.pastille{display:block} .champ label.pastille.libre{display:inline-flex;font-size:13px;color:var(--muted)}
.apercu-fond .onglets-formats a{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12px;color:var(--muted);line-height:1.3;text-decoration:none}
.apercu-fond .onglets-formats a:hover{color:var(--ink);border-color:var(--lagoon)} .apercu-fond .onglets-formats a.actif{background:var(--deep);border-color:var(--deep);color:var(--deep-ink);font-weight:500}
.couleurs:not(:has(input[type=radio]:checked)) .pastille.libre input[type=color]{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--deep)}
/* PDF des suggestions validées, à imprimer depuis le restaurant (21 octobre 2026) */
.a-imprimer{border-left:3px solid var(--ok)}
.tete-imprimer{display:flex;justify-content:space-between;align-items:flex-start;gap:10px 16px;flex-wrap:wrap;margin-bottom:14px}
.tete-imprimer .sur{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ok);font-weight:700;margin-bottom:4px}
.tete-imprimer h2{margin-bottom:4px} .tete-imprimer .sous{color:var(--muted);font-size:14px;max-width:62ch}
.documents{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.document{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.vignette-pdf{position:relative;display:grid;place-items:center;aspect-ratio:297/210;background:var(--surface-2);border-radius:8px;overflow:hidden;border:1px solid var(--line)}
.vignette-pdf img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform .2s}
/* Page en hauteur (A3 portrait) : centrée dans le même cadre que les pages en largeur, posée sur le fond gris comme une feuille */
.vignette-pdf.portrait img{padding:6px 0;box-sizing:border-box;filter:drop-shadow(0 1px 3px rgba(14,36,51,.25))}
.vignette-pdf:hover img{transform:scale(1.02)}
.document .infos{display:flex;flex-direction:column;gap:2px} .document .infos b{font-weight:500;font-size:14px} .document .infos span{font-size:12px;color:var(--muted)}
.document .boutons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto} .document .boutons .btn{justify-content:center}
.pdfs-compacts{display:flex;flex-direction:column;gap:2px;min-width:200px}
.pdf-compact{display:flex;align-items:center;gap:2px} .pdf-compact .nom{flex:1;font-size:13px;color:var(--muted);margin-right:6px;white-space:nowrap}
.pdf-compact .ico-btn{color:var(--lagoon)} .pdf-compact .ico-btn:hover{color:var(--ink)}
@media (max-width:640px){   /* téléphone : vignette à gauche, nom et feuille à droite, boutons pleine largeur dessous */
  .documents{grid-template-columns:1fr}
  .document{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px 12px;align-items:center}
  .document .boutons{grid-column:1/-1} .document .boutons .btn{padding:11px 10px;font-size:14px}
}
/* fiche de saisie en lecture (validation, suggestions envoyées) : qui l'a remplie, lignes produit pour le siège */
.rempli-lu{font-size:13px;color:var(--muted)} .rempli-lu b{color:var(--ink);font-weight:500}
.produits-lus{display:flex;flex-wrap:wrap;gap:4px 6px;margin:2px 0 6px}
.produits-lus span{font-size:12px;color:var(--ocre);background:var(--ocre-bg);border:1px solid var(--ocre-line);border-radius:999px;padding:1px 9px} .produits-lus b{font-weight:500}
details.fiche-saisie > summary{cursor:pointer;list-style:none;display:flex;flex-direction:column;gap:2px}
details.fiche-saisie > summary::-webkit-details-marker{display:none}
details.fiche-saisie > summary h2{margin:0;display:flex;align-items:center;gap:8px}
details.fiche-saisie > summary h2::after{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
details.fiche-saisie[open] > summary h2::after{transform:rotate(225deg) translateY(-1px)}
details.fiche-saisie[open] > summary{margin-bottom:14px}
@media (max-width:640px){   /* téléphone : le bouton d'envoi des suggestions sur toute la largeur, sous les actions secondaires */
  .barre-envoi .actions{width:100%} .barre-envoi form.inline:has(.btn.grand){display:block;width:100%} .barre-envoi .btn.grand{width:100%;justify-content:center}
}
/* modèle des bons : liste des enseignes, aperçu du bon imprimé, habillage (logo, couleur, coordonnées) et éditeur de conditions */
.modele-grille{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;align-items:start}
.modele-liste{display:flex;flex-direction:column;gap:6px;position:sticky;top:18px}
.modele-liste a{display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);text-decoration:none;position:relative}
.modele-liste a::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:4px;border-radius:0 3px 3px 0;background:var(--c,var(--line))}
.modele-liste a:hover{border-color:var(--lagoon)} .modele-liste a.actif{border-color:var(--lagoon);box-shadow:inset 0 0 0 1px var(--lagoon)}
.modele-liste .vign{width:46px;height:32px;display:flex;align-items:center;justify-content:center}
.modele-liste .vign img{max-width:100%;max-height:100%;object-fit:contain}
.modele-liste .vign .rien{width:100%;height:100%;border:1.5px dashed #C5D0D8;border-radius:5px}
.modele-liste b{display:block;font-size:13.5px;line-height:1.25}
.modele-liste .etat{display:flex;gap:5px;align-items:flex-start;font-size:11.5px;font-weight:500;line-height:1.35;margin-top:2px}
.modele-liste .etat::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:currentColor;margin-top:5px}
.modele-liste .etat.ok{color:var(--ok)} .modele-liste .etat.manque{color:var(--ocre)}
.modele-sep{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:10px 4px 2px}
.modele-colonne{display:flex;flex-direction:column;gap:18px;min-width:0}
@media (min-height:820px) and (min-width:901px){.modele-colonne > .modele-apercu{position:sticky;top:0;z-index:2;box-shadow:0 10px 24px -14px rgba(14,36,51,.35)}}   /* l'aperçu reste visible pendant la saisie */
.modele-apercu{display:flex;flex-direction:column;gap:12px}
.modele-apercu-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap} .modele-apercu-tete select{width:auto;max-width:100%}
.cadre-bon{position:relative;overflow:hidden;width:100%;aspect-ratio:190/86;background:#fff;border-radius:4px;box-shadow:var(--shadow)}
.cadre-bon iframe{position:absolute;top:0;left:0;border:0;transform-origin:0 0;width:718px;height:325px;background:#fff}
.modele-form{display:flex;flex-direction:column;gap:16px}
.modele-bandeau{background:var(--ocre-bg);border:1px solid var(--ocre-line);color:#6B4706;border-radius:8px;padding:10px 12px;font-size:13.5px}
.modele-bandeau.info{background:var(--lagoon-bg);border-color:#BFE3E8;color:#0F5F6C}
.champ label.depot-logo{position:relative;display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;align-items:center;border:1.5px dashed #B9C6CF;border-radius:10px;padding:12px;background:var(--surface);
  cursor:pointer;text-transform:none;letter-spacing:0;font-size:14px;font-weight:400;color:var(--ink);margin:0;transition:background .15s,border-color .15s}
.champ label.depot-logo:hover,.champ label.depot-logo.survol{border-color:var(--lagoon);background:var(--lagoon-bg)}
.champ:has(.depot-fichier:focus-visible) label.depot-logo{outline:2px solid var(--lagoon);outline-offset:2px}
.champ.invalide label.depot-logo{border-color:var(--bad);background:#FFFBFA}
.depot-logo b{display:block;font-weight:700} .depot-logo > span > span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.depot-vue{height:68px;border-radius:6px;background:repeating-conic-gradient(#E9EEF2 0 25%,#fff 0 50%) 0 0/14px 14px;display:flex;align-items:center;justify-content:center;padding:6px}
.depot-vue img{max-width:100%;max-height:100%;object-fit:contain} .depot-vue .rien{font-size:12px;color:var(--muted)}
.depot-fichier{position:absolute;left:12px;bottom:12px;width:1px;height:1px;opacity:0;overflow:hidden}
.champ label.case-texte{display:flex;gap:8px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:400;color:var(--ink);margin:10px 0 0;cursor:pointer}
.champ label.case-texte input{width:auto;margin-top:3px}
.couleur-ligne{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.couleur-ligne input[type=color]{width:48px;height:40px;border:1px solid var(--line);border-radius:8px;padding:3px;background:#fff;cursor:pointer}
.couleur-ligne input.hex{width:120px;font-family:ui-monospace,Menlo,monospace;text-transform:uppercase}
.champ.invalide .couleur-ligne input.hex{border-color:var(--bad)}
.contraste{font-size:12.5px;font-weight:500;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--muted)} .contraste:empty{display:none}
.contraste.bon_{background:var(--ok-bg);color:var(--ok)} .contraste.moyen{background:var(--ocre-bg);color:var(--ocre)} .contraste.faible{background:var(--bad-bg);color:var(--bad)}
.couleurs-logo{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:8px} .couleurs-logo:empty{display:none}
.couleurs-logo button{width:26px;height:26px;border-radius:7px;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);background:var(--s);padding:0}
.couleurs-logo button:hover{box-shadow:0 0 0 2px var(--lagoon)}
.cond-lecture{display:flex;flex-direction:column;gap:4px;font-size:13.5px;background:var(--ground);border-radius:8px;padding:10px 12px;margin-top:10px}
.cond-lecture small{color:var(--muted);margin-left:8px;font-size:12px} .cond-lecture .gras{font-weight:700} .cond-lecture a{font-size:13px;margin-top:4px}
.cond-editeur{display:flex;flex-direction:column;gap:8px}
.cond-lignes{display:flex;flex-direction:column;gap:6px}
.cond-ligne{display:grid;grid-template-columns:28px auto auto minmax(0,1fr) auto;grid-template-areas:"o t t t s" "o p g . .";gap:6px 8px;align-items:center;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}
.cond-ordre{grid-area:o;display:flex;flex-direction:column}
.cond-ordre button{border:0;background:none;color:var(--muted);font-size:10px;line-height:1;padding:3px 6px;border-radius:4px}
.cond-ordre button:hover:not(:disabled){background:var(--surface);color:var(--ink)} .cond-ordre button:disabled{opacity:.25;cursor:default}
.cond-ligne textarea{grid-area:t;min-height:0;resize:none;overflow:hidden;padding:8px 10px;font-size:14px;line-height:1.35} .cond-ligne textarea.gras{font-weight:700}
.cond-ligne select{grid-area:p;padding:8px;font-size:13px}
.champ label.cond-gras,.cond-gras{grid-area:g;display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400;margin:0;white-space:nowrap;cursor:pointer}
.cond-gras input{width:auto}
.cond-suppr{grid-area:s;border:0;background:none;color:var(--muted);font-size:20px;line-height:1;padding:2px 8px;border-radius:6px}
.cond-suppr:hover{background:var(--bad-bg);color:var(--bad)}
.cond-ligne select{width:auto;max-width:100%}
@media (min-width:1500px){.modele-textes .cond-ligne,.modele-grille .cond-ligne{grid-template-columns:28px minmax(0,1fr) 190px auto auto;grid-template-areas:"o t p g s"} .cond-ligne select{width:100%}}   /* grand écran : une ligne par condition */
.modele-actions{padding-top:14px;border-top:1px solid var(--line)} .modele-actions .legende{display:block;flex:1 1 280px}
.modele-textes{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:18px;align-items:start}
.modele-textes .modele-apercu{position:sticky;top:18px}
.lib-champ{display:block;font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
@media (max-width:1180px){.modele-textes{grid-template-columns:1fr}.modele-textes .modele-apercu{position:static;order:-1}}
@media (max-width:900px){
  .modele-grille{grid-template-columns:1fr}
  .modele-liste{position:static;flex-direction:row;overflow-x:auto;padding-bottom:4px} .modele-liste a{min-width:210px} .modele-sep{display:none}
}
@media (max-width:640px){.champ label.depot-logo{grid-template-columns:1fr}}
