:root{
  --ink:#2e2b26;
  --teal:#33302a;         /* charbon (chrome + accents UI) */
  --teal-dark:#201e1a;
  --grey:#8a857b;
  --paper:#fffdf9;
  --line:#e7e1d4;
  --bg:#ebe5d7;
  --danger:#b5503f;
  --peach:#efe9db;
  --shadow:0 6px 26px rgba(70,66,58,.16);
  /* Planche paysage 3 volets — dimensions du dépliant imprimé (1 pt = 1 px, 1325 × 852 pt) */
  --sheet-w:1325px;
  --sheet-h:964px;        /* largeur 1325 = imprimé ; hauteur resserrée vers le format paysage de l'imprimé */
  --sheet-pad:30px;
  --volet-h:904px;        /* --sheet-h - 2*--sheet-pad ; volets ~410px comme l'imprimé */
  /* Apparence personnalisable (modale 🎨) */
  --font-title:'Playfair Display', serif;
  --font-body:'EB Garamond', serif;
  --font-name:'Poppins', sans-serif;   /* noms de plats (façon imprimé) */
  --title-color:#2e2b26;
  --accent:#2e2b26;
  --page-bg:#f5f1e8;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  font-family:'Poppins',sans-serif;
  color:var(--ink);
  padding-top:74px;
  min-height:100vh;
  overflow-x:auto;
}

/* ---------- Toolbar ---------- */
#toolbar{
  position:fixed; top:0; left:0; right:0; height:64px;
  background:var(--paper); border-bottom:1px solid var(--line);
  display:flex; align-items:center; gap:10px;
  padding:0 18px; z-index:200; box-shadow:var(--shadow);
}
#toolbar .brand{
  font-family:'Playfair Display', serif; font-weight:700; font-size:20px;
  margin-right:auto; white-space:nowrap; color:var(--ink);
}
#toolbar .brand small{display:block; font-size:10px; font-weight:400; color:var(--grey); font-family:'Poppins',sans-serif;}
.tbtn{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--ink); color:#fff; border:none; border-radius:8px;
  padding:9px 14px; font-size:13px; font-weight:600; cursor:pointer;
  font-family:'Poppins',sans-serif; white-space:nowrap;
  transition:transform .1s, opacity .15s;
}
.tbtn:hover{opacity:.85;}
.tbtn:active{transform:scale(.97);}
.tbtn.secondary{background:#fff; color:var(--ink); border:1px solid var(--line);}
.tbtn.teal{background:var(--teal);}
.tbtn.teal:hover{background:var(--teal-dark); opacity:1;}
.tbtn:disabled{opacity:.4; cursor:not-allowed;}
#syncStatus{font-size:12px; color:var(--grey); display:flex; align-items:center; gap:6px; max-width:220px;}
#syncStatus.ok{color:var(--teal-dark); font-weight:600;}
#syncStatus.warn{color:#b0782a; font-weight:600;}
.dot{width:8px;height:8px;border-radius:50%;background:#c9a54b;display:inline-block;flex:none;}
#syncStatus.ok .dot{background:var(--teal);}
#syncStatus.warn .dot{background:#e0a33d;}

/* ---------- Canvas / planches ---------- */
#canvasWrap{
  display:flex; flex-direction:column; align-items:center; gap:58px;
  padding:44px 40px 130px; min-width:min-content;
}
.sheet{
  background:var(--page-bg); width:var(--sheet-w); height:var(--sheet-h);
  box-shadow:var(--shadow); position:relative; flex:none;
  padding:var(--sheet-pad);
  display:flex; gap:18px;
  font-family:var(--font-body);
}
.sheet-label{
  position:absolute; top:-26px; left:0; font-size:11px; color:var(--grey);
  letter-spacing:.06em; text-transform:uppercase;
}
.sheet-overflow-warning{
  position:absolute; left:0; right:0; bottom:-30px;
  display:none; align-items:center; justify-content:center; gap:8px;
  color:var(--danger); font-size:12px; font-weight:600;
}
.sheet.overflowing{outline:2px dashed var(--danger);}
.sheet.overflowing .sheet-overflow-warning{display:flex;}

/* ---------- Volet (colonne) ---------- */
.volet{
  flex:1 1 0; min-width:0; height:var(--volet-h);
  display:flex; flex-direction:column; justify-content:flex-start; overflow:visible;
}
/* groupe « section + ses lignes » — espacement CONSTANT entre sections (rythme homogène d'une colonne à l'autre) */
.section-group{display:flex; flex-direction:column; flex:0 0 auto;}
.section-group + .section-group{margin-top:15px;}

/* ---------- Blocks (generic) ---------- */
.block{
  position:relative; margin-bottom:0; border-radius:4px;
  padding:0 3px; transition:background .12s;
}
.block:hover{background:rgba(70,66,58,.06);}
.block.selected{outline:2px dashed var(--teal);}

/* Contrôles en bout de ligne */
.row-controls{
  position:absolute; right:-4px; top:50%;
  transform:translate(100%,-50%);
  display:flex; align-items:center; gap:3px; z-index:6;
}
.rctrl{
  width:22px;height:22px; border-radius:6px; border:1px solid var(--line);
  background:#fff; cursor:pointer; font-size:11px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
  opacity:0; transition:opacity .12s, background .12s;
  color:#444; padding:0;
}
.rctrl:hover{background:#f2f2f2;}
.rctrl.del{color:var(--danger); font-weight:700;}
.rctrl.del:hover{background:#fdeaea;}
.rctrl.grip{cursor:grab; color:#7a7a72; font-size:13px;}
.rctrl.grip:active{cursor:grabbing;}
/* Toggles régime (végé / sans gluten) : picto grisé = off, teinté vert = on */
.rctrl.diet-tgl{width:auto; padding:0 6px; gap:3px; color:#9a9a90; font-size:9px; font-weight:700; letter-spacing:.02em;}
.rctrl.diet-tgl img{height:12px; width:auto; opacity:.3; transition:opacity .12s;}
.rctrl.diet-tgl:hover{background:#f2f2f2;}
.rctrl.diet-tgl.on{border-color:var(--teal); background:#ece5d6; color:var(--teal-dark);}
.rctrl.diet-tgl.on img{opacity:1;}
.block:hover .rctrl{opacity:1;}
.block:hover .rctrl.del{opacity:1;}

/* Glisser-déposer d'un bloc */
.block.dragging{opacity:.35;}
body.dragging-block, body.dragging-block *{cursor:grabbing !important; user-select:none;}
.drop-indicator{
  position:fixed; height:3px; background:var(--teal); border-radius:2px;
  z-index:900; pointer-events:none; box-shadow:0 0 0 1.5px #fff, 0 1px 4px rgba(0,0,0,.2);
}
.drop-indicator::before{content:''; position:absolute; left:-3px; top:-2.5px; width:8px; height:8px; border-radius:50%; background:var(--teal);}

/* Ajout d'un bloc « au curseur » */
body.placing-block, body.placing-block *{cursor:crosshair !important;}
.placing-label{
  position:fixed; z-index:950; pointer-events:none;
  background:var(--teal); color:#fff; border-radius:8px; padding:6px 10px;
  font-family:'Poppins',sans-serif; box-shadow:0 4px 16px rgba(0,0,0,.28);
  display:flex; flex-direction:column; gap:1px; max-width:230px;
}
.placing-label b{font-weight:700; font-size:12px;}
.placing-label span{font-size:10px; opacity:.85;}

[contenteditable="true"]{outline:none; cursor:text; border-radius:3px;}
[contenteditable="true"]:hover{background:rgba(70,66,58,.08);}
[contenteditable="true"]:focus{background:rgba(70,66,58,.13); box-shadow:0 0 0 2px var(--teal) inset;}

/* ---------- Section title ---------- */
.blk-section h2{
  font-family:var(--font-title); font-weight:700; font-size:16px; color:var(--title-color);
  margin:10px 0 7px; line-height:1.0; text-transform:uppercase; letter-spacing:.04em;
  display:flex; align-items:baseline; gap:4px;
}
.blk-section.big h2{font-size:19.5px; letter-spacing:.03em; border-bottom:1px solid rgba(70,66,58,.28); padding-bottom:5px;}
.blk-section:first-child h2{margin-top:0;}
.blk-section h2 .en{font-family:var(--font-body); font-style:italic; font-weight:400; text-transform:none; color:var(--grey); font-size:9.5px; letter-spacing:0;}
.blk-section h2 .en.unit{font-style:normal; letter-spacing:.02em; font-size:8px; margin-left:-1px;}
.blk-section h2 .sec-price{margin-left:auto; font-family:var(--font-body); font-style:italic; font-weight:400; text-transform:none; font-size:9.5px; color:var(--ink); letter-spacing:0;}
.blk-section:first-child h2{margin-top:0;}

/* ---------- Item row ---------- */
.blk-item{display:flex; align-items:flex-start; gap:6px; padding:0 3px; margin-bottom:9px; line-height:1.05;}
.blk-item.inline, .blk-item.wine{margin-bottom:1.5px;}
.blk-item.inline{align-items:baseline;}
.blk-item .txt{flex:1 1 auto; min-width:0;}
.blk-item .fr{font-family:var(--font-name); font-size:11px; font-weight:600; color:var(--title-color); letter-spacing:.09em; line-height:1.2;}
.blk-item .en{font-size:10.5px; font-style:normal; color:#4c4c44; margin-top:3px; line-height:1.3; max-width:320px;}
.blk-item .en:empty{display:none;}
/* Item « inline » : qualificatif court sur la même ligne que le nom (ex. « 33 cl ») */
.blk-item.inline .fr{display:inline;}
.blk-item.inline .en{display:inline; margin-left:5px;}
.blk-item .price{flex:none; font-size:9.5px; font-style:italic; font-weight:500; color:var(--ink); white-space:nowrap; text-align:right; margin-left:8px; line-height:1.1;}
/* Meneur de pointillés (désactivé par défaut — l'imprimé n'en a pas) */
.blk-item .leader{flex:1 1 auto; align-self:flex-start; height:12px; border-bottom:1.4px dotted #cfc9bb; margin:0 2px;}
body.leaders-off .blk-item .leader{display:none;}

/* Items « half » (cocktails, shots) répartis en 2 sous-colonnes, façon dépliant */
.item-grid{column-count:2; column-gap:18px; margin:2px 0 3px;}
.item-grid .blk-item{break-inside:avoid; margin-bottom:5px;}
.item-grid .blk-item .leader{display:none;}
/* prix vides (cocktails/shots) invisibles ; prix non vides (petits plus) visibles */
.item-grid .blk-item .price{flex:1 1 auto; text-align:right;}
/* libellés compacts : tenir chaque item sur une seule ligne (petits plus, cocktails) */
.item-grid .blk-item .fr{font-size:8.5px; letter-spacing:0;}
/* descriptions compactes dans la grille (cocktails/shots/petits plus) : rester sous le nom */
.item-grid .blk-item .en{font-size:8.5px; line-height:1.15; max-width:none;}

/* Pictos régime (sans gluten / végétarien) */
.diet{height:13px; width:auto; vertical-align:-1px; margin-left:5px;}
.blk-section h2 .diet{height:13px; vertical-align:-1px;}
.diet-legend{display:inline-flex; align-items:center; gap:2px; margin-left:6px; white-space:nowrap;}
.diet-legend .diet{margin-left:1px;}

/* Colonnes de prix (vins / champagnes) — valeurs centrées + filets verticaux, façon imprimé */
.pcols{flex:none; display:flex; align-self:flex-start;}
.pcell{width:34px; text-align:center; font-style:italic; font-size:9.5px; color:var(--ink);}
.blk-item.wine .pcols .pcell + .pcell{border-left:1px solid rgba(70,66,58,.16);}
/* nom de vin : serif régulier (pas gras sans) comme l'imprimé */
.blk-item.wine .fr{display:inline; font-family:var(--font-body); font-weight:400; color:var(--ink); text-transform:none; letter-spacing:0; font-size:9.5px;}
/* lignes de vins : interligne serré, prix et nom sur la même baseline (façon imprimé) */
/* réduire la strut : sans font-size, .txt hérite 16px du body → interligne géant */
.blk-item.wine .txt{font-size:9.5px;}
.blk-item.wine{align-items:baseline; margin:1px 0; line-height:1.2;}
.blk-item.wine .fr{line-height:1.2;}
.blk-item.wine .pcell{line-height:1.2;}
/* annotation (demi sec / local) : minuscule exposant compact non sécable, sans hauteur ajoutée */
.blk-item.wine .en{display:inline; font-size:0.55em; vertical-align:super; line-height:0; white-space:nowrap; font-style:italic; margin-left:3px; margin-top:0; color:var(--grey);}
.blk-pricehead{display:flex; align-items:flex-end; margin:2px 0 1px;}
.blk-pricehead .ph-spacer{flex:1 1 auto;}
.pcell.head{width:34px; font-style:normal; font-size:7px; line-height:1.15; color:var(--grey);
  text-transform:none; letter-spacing:.01em; white-space:pre-line; text-align:center;}

/* Éléments décoratifs (déplaçables) */
.blk-deco{position:absolute; cursor:move; z-index:4; line-height:0; padding:0; margin:0;}
.blk-deco:hover{background:transparent; outline:1px dashed rgba(70,66,58,.35);}
.blk-deco.selected{outline:1.5px dashed var(--teal);}
.deco-img{width:100%; height:auto; display:block; pointer-events:none; user-select:none;}
.deco-controls{position:absolute; top:-11px; right:-6px; display:flex; gap:3px; opacity:0; transition:opacity .12s;}
.blk-deco:hover .deco-controls, .blk-deco.selected .deco-controls{opacity:1;}
.deco-resize{position:absolute; right:-6px; bottom:-6px; width:12px; height:12px; border-radius:50%;
  background:var(--teal); border:2px solid #fff; cursor:nwse-resize; opacity:0; transition:opacity .12s;}
.blk-deco:hover .deco-resize, .blk-deco.selected .deco-resize{opacity:1;}

/* ---------- Formule ---------- */
.blk-formule{color:var(--accent); font-weight:500; font-size:10px; line-height:1.2; font-style:italic;}
.blk-formule.heading{font-family:var(--font-name); font-style:normal; font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:10px; color:var(--title-color); margin-top:3px;}

/* ---------- Note ---------- */
.blk-note{font-size:9px; font-style:italic; color:var(--grey); line-height:1.2; margin:1px 0;}
/* sous-titre de tête de section (PIADINAS / BUNS) : gras, vert foncé, romain */
.blk-note.strong{font-style:normal; font-weight:700; color:var(--title-color); font-size:9.5px; margin:1px 0 2px;}
/* légende AOP/IGP & paiements : bloc étroit centré (3 lignes) comme l'imprimé */
.blk-note.center{text-align:center; font-size:7.2px; margin-top:6px; color:#6a6a62; max-width:330px; margin-left:auto; margin-right:auto;}

/* ---------- Divider ---------- */
.blk-divider{height:1px; background:var(--line); margin:8px 0;}

/* ---------- Marqueurs colonne / planche ---------- */
.blk-colbreak, .blk-pagebreak{
  display:flex; align-items:center; gap:8px; color:var(--accent);
  font-family:'Poppins',sans-serif; font-size:9px; text-transform:uppercase; letter-spacing:.12em;
  margin:6px 0 2px; opacity:.6;
}
.blk-colbreak::before,.blk-colbreak::after,
.blk-pagebreak::before,.blk-pagebreak::after{content:''; flex:1; height:1px; background:var(--teal); opacity:.35;}
.blk-pagebreak{margin-top:auto;}

/* ---------- Couverture typographique (volet 3, planche 1) — sans cadre ---------- */
.blk-panel{ height:100%; display:flex; padding:0; margin:0; }
.blk-panel:hover{background:transparent;}
.panel-type{
  flex:1 1 auto; height:100%; display:flex; flex-direction:column;
  align-items:center; justify-content:space-between; text-align:center;
  padding:11% 8%;
}
.panel-kicker, .panel-foot{
  font-family:'Poppins',sans-serif; font-weight:600; font-size:11.5px;
  letter-spacing:.3em; text-transform:uppercase; color:var(--title-color); opacity:.75;
}
.panel-mid{display:flex; flex-direction:column; align-items:center; gap:16px;}
.panel-name{
  font-family:var(--font-title); font-weight:700; font-size:60px; line-height:1.02;
  letter-spacing:.005em; color:var(--title-color);
}
.panel-rule{width:56px; height:1.5px; background:var(--accent); opacity:.85;}
.panel-caption{
  font-family:var(--font-body); font-style:italic; font-weight:400;
  font-size:19px; color:var(--title-color); line-height:1.4; max-width:84%;
}
.panel-caption em{font-style:italic;}

/* ---------- Brunch — bloc typographique sans cadre ---------- */
.blk-brunch{ width:100%; margin:0 0 10px; padding:0; text-align:center; }
.volet:has(.blk-brunch){justify-content:flex-start;}
.blk-brunch:hover{background:transparent;}
.brunch-inner{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  color:var(--title-color); padding:4px 5% 2px;
}
.brunch-title{font-family:var(--font-title); font-weight:800; font-size:54px; line-height:.92; letter-spacing:.01em;}
.brunch-sub{font-family:var(--font-body); font-style:italic; font-size:15px; margin-top:8px; color:var(--title-color);}
.brunch-offer{font-family:var(--font-title); font-weight:700; font-size:15px; letter-spacing:.04em; margin-top:14px; text-transform:uppercase;}
.brunch-offer i{font-weight:400; font-style:italic; color:var(--accent);}
.brunch-sep{color:var(--accent); font-size:12px; margin:10px 0; opacity:.7;}
.brunch-h{font-family:var(--font-name); font-weight:700; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--title-color);}
.brunch-b{font-family:var(--font-body); font-size:11px; font-style:normal; color:var(--ink); line-height:1.3; margin-top:3px;}

/* ---------- Menu Enfant — bloc typographique sans cadre ---------- */
.blk-enfant{ width:100%; margin:16px 0 6px; padding:12px 0 0; text-align:center; border-top:1px solid rgba(70,66,58,.22); }
.blk-enfant:hover{background:transparent;}
.enfant-inner{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  color:var(--title-color); padding:0 5%;
}
.enfant-title{font-family:var(--font-title); font-weight:800; font-size:30px; line-height:.95;}
.enfant-offer{font-family:var(--font-name); font-weight:700; font-size:11px; letter-spacing:.08em; text-transform:uppercase; margin-top:8px;}
.enfant-offer i{font-family:var(--font-title); font-weight:400; font-style:italic; color:var(--accent);}
.enfant-b{font-family:var(--font-body); font-size:11px; font-style:normal; color:var(--ink); line-height:1.35; margin-top:6px;}

/* ---------- Empty hint ---------- */
.page-empty-hint{color:var(--grey); font-size:13px; text-align:center; padding:40px 0; border:1px dashed var(--line); border-radius:8px;}

/* ---------- Insert-here bar ---------- */
.insert-bar{height:0; margin:0; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .12s; position:relative; z-index:5; overflow:visible;}
.insert-bar:hover{opacity:1;}
.insert-bar button{
  font-size:10px; background:var(--teal); color:#fff; border:none; border-radius:20px;
  padding:1px 9px; cursor:pointer; font-family:'Poppins',sans-serif;
}

/* ---------- Reprise de brouillon ---------- */
#draftBanner{
  display:none; position:fixed; top:64px; left:0; right:0; z-index:190;
  background:#fff7e8; border-bottom:1px solid #eeddb8; color:#7a5b1e;
  padding:10px 18px; font-size:13px; text-align:center;
}
#draftBanner.show{display:block;}
#draftBanner button{margin-left:10px; font-size:12px; padding:4px 12px; border-radius:6px; border:1px solid #d8c08a; background:#fff; cursor:pointer; font-weight:600;}
#draftBanner button.primary{background:#7a5b1e; border-color:#7a5b1e; color:#fff;}

/* ---------- Modals ---------- */
.modal-backdrop{
  position:fixed; inset:0; background:rgba(20,20,20,.45); display:none;
  align-items:center; justify-content:center; z-index:500;
}
.modal-backdrop.open{display:flex;}
.modal{
  background:#fff; border-radius:14px; width:min(580px,92vw); max-height:82vh; overflow:auto;
  padding:26px 26px 22px; box-shadow:0 20px 60px rgba(0,0,0,.3);
  position:relative;
}
.modal h3{margin:0 0 4px; font-family:'Playfair Display',serif; font-size:22px;}
.modal p.sub{margin:0 0 18px; color:var(--grey); font-size:13px;}
.modal-close{position:absolute; top:16px; right:20px; cursor:pointer; font-size:20px; color:var(--grey); background:none; border:none;}

.block-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px;}
.block-opt{
  border:1px solid var(--line); border-radius:10px; padding:14px 12px; cursor:pointer;
  text-align:left; background:#fafafa; transition:border-color .12s, background .12s;
  font-family:'Poppins',sans-serif;
}
.block-opt:hover{border-color:var(--teal); background:#efe9dc;}
.block-opt .ttl{font-weight:700; font-size:13.5px; margin-bottom:3px;}
.block-opt .desc{font-size:11.5px; color:var(--grey);}

.field{margin-bottom:14px;}
.field label{display:block; font-size:12px; font-weight:600; margin-bottom:5px; color:#333;}
.field input{
  width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:8px; font-size:13px;
  font-family:'Poppins',sans-serif;
}
.field input:focus{outline:none; border-color:var(--teal);}
.field .hint{font-size:11px; color:var(--grey); margin-top:4px; line-height:1.5;}
.modal-actions{display:flex; gap:8px; justify-content:flex-end; margin-top:18px;}
.steps{font-size:12.5px; color:#333; line-height:1.7; padding-left:18px; margin:0 0 14px;}
.steps a{color:var(--teal-dark);}

/* ---------- Modale Apparence ---------- */
.appearance-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px 18px;}
.appearance-grid .field{margin-bottom:0;}
.field select{
  width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:8px; font-size:13px;
  font-family:'Poppins',sans-serif; background:#fff;
}
.field select:focus{outline:none; border-color:var(--teal);}
.field input[type="color"]{
  width:100%; height:38px; padding:3px; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:pointer;
}
.field.checkbox{display:flex; align-items:center; gap:8px;}
.field.checkbox label{margin:0;}
.field.checkbox input{width:auto;}

/* ---------- Lien magique ---------- */
#magicLinkBox{
  margin-top:16px; padding:14px; border:1px dashed var(--teal); border-radius:10px; background:#efe9dc;
}
#magicLinkBox .ttl{font-weight:700; font-size:13px; margin-bottom:4px; color:var(--teal-dark);}
#magicLinkBox p{margin:0 0 10px; font-size:12px; color:#333; line-height:1.5;}
#magicLinkText{display:none; width:100%; margin-top:8px; padding:8px; font-size:11px; border:1px solid var(--line); border-radius:6px;}

.version-list{display:flex; flex-direction:column; gap:8px; margin-top:6px;}
.version-row{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  border:1px solid var(--line); border-radius:9px; padding:10px 12px; font-size:13px;
}
.version-row .vname{font-weight:600;}
.version-row .vmeta{font-size:11px; color:var(--grey);}
.version-row .tag{font-size:10px; background:var(--teal); color:#fff; border-radius:10px; padding:1px 8px; margin-left:6px; vertical-align:middle;}
.version-row .vactions{display:flex; gap:6px;}
.version-row button{
  font-size:11.5px; border:1px solid var(--line); background:#fff; border-radius:6px; padding:5px 9px; cursor:pointer;
  font-family:'Poppins',sans-serif;
}
.version-row button.load{border-color:var(--teal); color:var(--teal-dark); font-weight:600;}
.version-row button.load:hover{background:var(--teal); color:#fff;}
.version-row button.delete{color:var(--danger);}
.version-row button.delete:hover{background:#fdeaea; border-color:var(--danger);}
.version-row button:disabled{opacity:.4; cursor:not-allowed;}
.empty-state{color:var(--grey); font-size:13px; text-align:center; padding:24px 0;}

/* ---------- Toast ---------- */
#toast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:var(--ink); color:#fff; padding:11px 20px; border-radius:30px; font-size:13px;
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:600;
  display:flex; align-items:center; gap:12px;
}
#toast.show{opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0);}
#toast button{
  background:#fff; color:var(--ink); border:none; border-radius:16px; padding:4px 12px;
  font-size:12px; font-weight:700; cursor:pointer; font-family:'Poppins',sans-serif;
}

/* ---------- Export (html2canvas) : masquer l'UI d'édition ---------- */
body.exporting .row-controls,
body.exporting .insert-bar,
body.exporting .sheet-label,
body.exporting .blk-colbreak,
body.exporting .blk-pagebreak,
body.exporting .page-empty-hint,
body.exporting .deco-controls,
body.exporting .deco-resize,
body.exporting .sheet-overflow-warning{display:none !important;}
body.exporting .block{background:transparent !important;}
body.exporting .block.selected{outline:none !important;}
body.exporting .blk-deco{outline:none !important;}
body.exporting .sheet.overflowing{outline:none !important;}

/* ---------- Planche 2 : répartition & grille « petits plus » (fidélité imprimé) ---------- */
/* volets de la planche 2 : marge haute ET basse (space-evenly) au lieu d'un ancrage tout en haut */
#canvasWrap > .sheet:nth-of-type(2) .volet{justify-content:flex-start;}
/* grille « petits plus » : filet vertical entre les 2 sous-colonnes + libellés compacts sur une ligne */
#canvasWrap > .sheet:nth-of-type(2) .item-grid{column-rule:1px solid rgba(70,66,58,.16);}
#canvasWrap > .sheet:nth-of-type(2) .item-grid .blk-item .fr{font-size:7.5px;}

/* ---------- Vue étroite : volets empilés ---------- */
/* ============================ MOBILE / ÉCRAN ÉTROIT ============================ */
@media (max-width:900px){
  body{overflow-x:hidden; padding-top:0;}
  /* barre d'outils : ne plus la figer, la laisser passer à la ligne */
  #toolbar{position:static; height:auto; flex-wrap:wrap; gap:7px; padding:10px 12px; box-shadow:none; border-bottom:1px solid var(--line);}
  #toolbar .brand{font-size:17px; width:100%; margin:0 0 2px;}
  .tbtn{padding:8px 11px; font-size:12.5px;}
  #syncStatus{order:9; font-size:11px; max-width:100%;}

  /* planches empilées, pleine largeur, centrées */
  #canvasWrap{align-items:stretch; min-width:0; padding:18px 12px 80px; gap:36px;}
  .sheet{width:auto; max-width:560px; margin:0 auto; height:auto;
    flex-direction:column; gap:26px; padding:26px 20px;}
  .sheet-label{position:static; margin-bottom:4px;}
  .sheet-band{display:none;}
  .sheet-overflow-warning{display:none !important;}
  .sheet.overflowing{outline:none;}
  .volet{width:auto; height:auto; flex:0 0 auto; display:block; justify-content:flex-start;}
  .section-group{margin:0 0 16px;}
  .section-group + .section-group{margin-top:16px;}
  /* contrôles d'édition : masqués par défaut, révélés en touchant le bloc */
  .row-controls{position:static; transform:none; justify-content:flex-end; margin-top:6px; gap:8px; flex-wrap:wrap; display:none;}
  .block.selected .row-controls{display:flex;}
  .block.selected{outline:2px dashed var(--teal); outline-offset:2px;}
  .rctrl{opacity:1; width:30px; height:30px; font-size:13px;}
  .rctrl.diet-tgl{width:auto; padding:0 9px; font-size:11px;}
  .rctrl.diet-tgl img{height:15px;}

  /* lisibilité : polices agrandies pour l'écran */
  .blk-section h2{font-size:17px; margin:16px 0 9px;}
  .blk-section.big h2{font-size:19px;}
  .blk-item{margin-bottom:11px;}
  .blk-item .fr{font-size:13.5px;}
  .blk-item .en{font-size:12.5px; max-width:none; margin-top:3px;}
  .blk-item .price{font-size:12.5px; margin-left:10px;}
  .blk-section h2 .en{font-size:11px;}
  .blk-section h2 .sec-price{font-size:12px;}
  .blk-formule{font-size:12.5px;}
  .blk-formule.heading{font-size:12px;}
  .blk-note{font-size:11.5px;}
  .diet{height:15px;}

  /* grilles 2 sous-colonnes → 1 colonne + police lisible sur mobile */
  .item-grid{column-count:1;}
  .item-grid .blk-item .fr{font-size:13.5px; letter-spacing:.06em;}
  .item-grid .blk-item .en{font-size:12px;}
  #canvasWrap > .sheet:nth-of-type(2) .item-grid .blk-item .fr{font-size:13.5px;}
  #canvasWrap > .sheet:nth-of-type(2) .volet{justify-content:flex-start;}

  /* blocs spéciaux : pleine largeur */
  .blk-panel{padding:8px 0;}
  .panel-wrap{width:100%;}
  .panel-name{font-size:46px;}
  .blk-brunch, .blk-enfant{margin:6px 0;}
}
