/* L'éditeur du téléphone V2 (30/10) : blanc chaud, encre, un seul rouge ketchup pour l'action principale.
   Règles de « Le comptoir » : des mots sur les boutons, cibles d'au moins 56 px, une action principale par écran,
   aucun italique. Animations sur transform et opacity seulement. */
.ed {
  --bg: #FBF8F3; --card: #FFFFFF; --ink: #1B1612; --ink-2: #6A6057; --ink-3: #A0958A;
  --line: #ECE4D8; --line-2: #E0D6C8; --soft: #F3EDE4; --soft-2: #EAE2D6;
  --red: #C8261C; --red-press: #A51D14; --red-soft: #FBE9E5; --ok: #2E8452; --ok-soft: #E6F2EA;
  --ease: cubic-bezier(.2,.7,.2,1);
  --st: env(safe-area-inset-top, 0px); --sb: env(safe-area-inset-bottom, 0px);
  position: relative; width: 100%; height: 100%; overflow: hidden; display: flex; flex-direction: column;
  background: var(--bg); color: var(--ink);
  font-family: 'Archivo', system-ui, sans-serif; font-size: 16px; line-height: 1.35; font-style: normal;
  font-variant-numeric: tabular-nums lining-nums; font-synthesis: none;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  -webkit-tap-highlight-color: transparent; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none;
}
.ed.in-phone { --st: 46px; --sb: 16px; }
.ed *, .ed *::before, .ed *::after { box-sizing: border-box; font-style: normal; }
.ed em, .ed i, .ed cite { font-style: normal; }
:where(.ed) button { font: inherit; color: inherit; background: none; border: 0; padding: 0; margin: 0; cursor: pointer; touch-action: manipulation;
  transition: transform .2s var(--ease), background-color .2s, color .2s, box-shadow .25s, opacity .2s; }
:where(.ed) button:disabled { opacity: .35; pointer-events: none; }
:where(.ed) input, :where(.ed) textarea { font: inherit; color: inherit; -webkit-user-select: text; user-select: text; }
.ed [hidden] { display: none !important; }
.ed .nw { white-space: nowrap; }
.ed .red { color: var(--red); }
.ed .ic { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.ed .ic .f { fill: currentColor; stroke: none; }

/* ---------------------------------------------------------------- en-tête */
.e-top { flex: none; position: relative; z-index: 3; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
  padding: max(14px, var(--st)) 20px 12px; background: var(--bg); }
.e-top::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line); opacity: 0; transition: opacity .2s; }
.ed.scrolled .e-top::after { opacity: 1; }
.e-top-t { min-width: 0; }
.e-eyebrow { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink-2); margin: 0 0 1px 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-title { margin: 0; font-size: 31px; line-height: 1.05; font-weight: 800; font-variation-settings: 'wdth' 88; letter-spacing: -.02em; white-space: nowrap; }
.e-status { flex: none; display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px 0 11px; margin-bottom: 1px; border-radius: 16px;
  background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgba(27,22,18,.04); font-size: 13px; font-weight: 650; white-space: nowrap; }
.e-dot { position: relative; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ok); flex: none; transition: background-color .3s; }
.e-dot::after { content: ''; position: absolute; inset: 0; border-radius: 50%; background: inherit; animation: e-ping 2.6s cubic-bezier(0,0,.2,1) infinite; }
@keyframes e-ping { 0% { transform: scale(1); opacity: .5; } 60%, 100% { transform: scale(3); opacity: 0; } }
.e-status.send .e-dot { background: #D69A0A; }
.e-status.send .e-dot::after { animation-duration: .9s; }

/* ---------------------------------------------------------------- rubriques (chacune garde son défilement) */
.e-panels { position: relative; flex: 1; min-height: 0; }
.e-panel { position: absolute; inset: 0; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch; padding: 0 16px 28px; visibility: hidden; }
.e-panel > * { flex-shrink: 0; }
.e-panel:not(.on) { opacity: 0; pointer-events: none; }   /* opacité aussi : la TV miniature force la visibilité de ses pages */
.e-panel.on { visibility: visible; }
.e-panel[data-p='note'], .e-panel[data-p='snack'] { padding-bottom: 0; }

/* ---------------------------------------------------------------- la TV en petit (editeur.html) */
.e-tv { margin: 8px 0 18px; }
.e-tv-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 4px 8px; font-size: 13.5px; }
.e-tv-l { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.e-tv-r { color: var(--ink-2); font-weight: 500; }
.e-tv-bezel { padding: 5px; border-radius: 14px; background: #120E0B; box-shadow: 0 10px 24px -8px rgba(27,22,18,.35), 0 0 0 1px rgba(27,22,18,.06); }
.e-tv-screen { position: relative; aspect-ratio: 16 / 9; border-radius: 9px; overflow: hidden; contain: strict; }
.e-tv-screen.sleep > .board { content-visibility: hidden; }

/* ---------------------------------------------------------------- recherche */
.e-search { position: relative; display: flex; align-items: center; height: 52px; margin: 6px 0 0; padding: 0 6px 0 14px; gap: 10px; border-radius: 16px;
  background: var(--soft); color: var(--ink-2); transition: background-color .2s, box-shadow .2s; }
.e-search:focus-within { background: var(--card); box-shadow: 0 0 0 1.5px var(--ink); }
.e-search .ic { width: 22px; height: 22px; }
.e-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: none; font-size: 17px; color: var(--ink); -webkit-appearance: none; appearance: none; }
.e-search input::placeholder { color: var(--ink-3); opacity: 1; }
.e-search input::-webkit-search-cancel-button { display: none; }
.e-q-clear { height: 40px; padding: 0 12px; border-radius: 12px; font-size: 14px; font-weight: 650; color: var(--ink-2); }
.e-q-clear:active { background: var(--soft-2); }

/* ---------------------------------------------------------------- catégories collées en haut */
.e-chips { position: sticky; top: 0; z-index: 2; margin: 0 -16px; padding: 10px 0; background: var(--bg); }
.e-chips::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line); opacity: 0; transition: opacity .2s; }
.e-chips.stuck::after { opacity: 1; }
.e-panel.searching .e-chips { display: none; }
.e-chips-in { display: flex; gap: 6px; overflow-x: auto; padding: 0 16px; scrollbar-width: none; overscroll-behavior-x: contain; }
.e-chips-in::-webkit-scrollbar { display: none; }
.e-chip { flex: none; height: 40px; padding: 0 15px; border-radius: 20px; font-size: 15px; font-weight: 650; color: var(--ink-2);
  box-shadow: inset 0 0 0 1px var(--line-2); }
.e-chip.on { background: var(--ink); color: #FBF8F3; box-shadow: inset 0 0 0 1px var(--ink); }
.e-chip:active { transform: scale(.95); }

/* ---------------------------------------------------------------- listes */
.e-sec { padding-top: 14px; }
.e-sec + .e-sec { padding-top: 22px; }
.e-sec-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 4px 10px; }
.e-sec-h h2 { margin: 0; font-size: 21px; line-height: 1.1; font-weight: 780; letter-spacing: -.012em; }
.e-sec-m { font-size: 13.5px; color: var(--ink-2); white-space: nowrap; }
.e-sec-help { margin: -4px 4px 12px; font-size: 14px; color: var(--ink-2); line-height: 1.4; }
.e-list { background: var(--card); border-radius: 18px; overflow: hidden; box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgba(27,22,18,.04), 0 6px 16px -10px rgba(27,22,18,.12); }

.e-row { position: relative; display: flex; align-items: center; gap: 14px; width: 100%; min-height: 76px; padding: 12px 10px 12px 12px; text-align: left; }
.e-row > :not(.e-hl) { position: relative; }
.e-row + .e-row::before { content: ''; position: absolute; top: 0; left: 78px; right: 0; height: 1px; background: var(--line); }
.e-row:active { background: #FAF6EF; }
.e-row:active .e-thumb { transform: scale(.94); }
.e-hl { position: absolute; inset: 0; background: var(--red-soft); opacity: 0; pointer-events: none; border-radius: inherit; }
.e-row-t { flex: 1; min-width: 0; }
.e-row-n { display: block; font-size: 17px; font-weight: 650; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-row-s { display: block; margin-top: 3px; font-size: 13.5px; line-height: 1.3; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-row-s:empty { display: none; }
.e-row-s.chg { color: var(--ink); font-weight: 550; }
.e-row-s.chg::before { content: ''; display: inline-block; width: 6px; height: 6px; margin: 0 7px 0 1px; border-radius: 50%; background: var(--red); vertical-align: 2px; }
.e-row-s.out { color: var(--red); font-weight: 650; }
.e-row-p { display: flex; align-items: baseline; font-size: 19px; font-weight: 750; font-variation-settings: 'wdth' 86; white-space: nowrap; transition: color .2s; }
.e-eur { margin-left: .14em; font-size: .78em; font-weight: 650; color: var(--ink-2); }
.e-row .chev { width: 18px; height: 18px; margin-left: -6px; color: var(--ink-3); stroke-width: 2; }
.e-row.sold .e-row-n { color: var(--ink-2); text-decoration: line-through; text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.e-row.sold .e-row-p { color: var(--ink-3); }
.e-row.sold .e-thumb { opacity: .5; filter: grayscale(1); }

/* chiffres qui glissent de côté */
.e-digits { display: inline-flex; }
.e-sl { position: relative; display: inline-block; }
.e-sl .g { display: inline-block; }
.e-sl .gh { position: absolute; left: 0; top: 0; }

/* vignettes */
.e-thumb { position: relative; display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 14px; overflow: hidden; background: #F4ECE0;
  transition: transform .2s var(--ease), opacity .25s, filter .25s; }
.e-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.e-thumb.e-ph-frites img { object-position: 50% 22%; transform: scale(1.18); }
.e-thumb.e-ph-mitraillette img { transform: scale(1.65); object-position: 52% 50%; }
.e-thumb.e-ph-fricadelle img { transform: scale(1.45); }
.e-thumb.e-ph-pita img { transform: scale(1.12); }
/* vignettes détourées (img/thumbs) : le produit entier, centré, sur le fond crème de la case */
.e-thumb.e-th img { object-fit: contain; padding: 3px; box-sizing: border-box; filter: drop-shadow(0 2px 2px rgba(60, 35, 10, .22)); }
.e-thumb.mono { font-size: 23px; font-weight: 820; font-variation-settings: 'wdth' 78; line-height: 1; }
.e-thumb.t-snacks { background: #F3E2C9; color: #8C5420; }
.e-thumb.t-sandw { background: #EEE4D2; color: #6C522B; }
.e-thumb.t-boissons { background: #E2EBE6; color: #2D5B48; }
.e-thumb.t-frites, .e-thumb.t-mitra, .e-thumb.t-pitas { background: #F3E2C9; color: #8C5420; }
.e-thumb.potth { background: var(--soft); }
.e-thumb.potth i, .e-pot { display: block; width: 30px; height: 30px; border-radius: 50%; background: var(--t);
  box-shadow: inset 0 -3px 0 rgba(0,0,0,.10), inset 0 2px 1px rgba(255,255,255,.35), 0 0 0 3px #fff, 0 0 0 4px rgba(27,22,18,.09), 0 3px 6px 2px rgba(27,22,18,.10); }
.e-thumb.lg { width: 52px; height: 52px; }

/* sauces : une grille de bascules */
.e-sauces { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.e-sauce { position: relative; display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 10px 10px 10px 14px; border-radius: 16px; overflow: hidden; text-align: left;
  background: var(--card); box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgba(27,22,18,.04); }
.e-sauce > :not(.e-hl) { position: relative; }
.e-sauce:active { transform: scale(.96); }
.e-sauce .e-pot { width: 26px; height: 26px; transition: opacity .25s, filter .25s, transform .3s var(--ease); }
.e-sauce-t { min-width: 0; }
.e-sauce b { display: block; font-size: 15.5px; font-weight: 650; line-height: 1.15; transition: color .2s; }
.e-sauce small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--ink-2); white-space: nowrap; }
.e-sauce.sold { background: var(--soft); box-shadow: 0 0 0 1px var(--line-2); }
.e-sauce.sold b { color: var(--ink-2); text-decoration: line-through; text-decoration-color: var(--red); text-decoration-thickness: 2px; }
.e-sauce.sold small { color: var(--red); font-weight: 650; }
.e-sauce.sold .e-pot { opacity: .45; filter: grayscale(1); transform: scale(.88); }

.e-empty { margin: 36px 8px 0; text-align: center; color: var(--ink-2); font-size: 15px; }
.e-empty b { display: block; color: var(--ink); font-size: 18px; margin-bottom: 4px; }
.e-endnote { margin: 26px 12px 0; text-align: center; font-size: 13px; color: var(--ink-3); }
.e-panel.searching .e-endnote { display: none; }

/* ---------------------------------------------------------------- barre du bas */
.e-tabs { flex: none; position: relative; z-index: 4; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px;
  padding: 6px 8px max(8px, var(--sb)); background: var(--bg); box-shadow: 0 -1px 0 var(--line); }
.e-tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; height: 58px; border-radius: 14px;
  color: var(--ink-3); font-size: 12.5px; font-weight: 650; }
.e-tab .ic { width: 26px; height: 26px; }
.e-tab[aria-selected='true'] { color: var(--red); }
.e-tab[aria-selected='true'] span { color: var(--ink); }
.e-tab:active { transform: scale(.92); }

/* ---------------------------------------------------------------- la fiche : feuille du bas */
.e-scrim { position: absolute; inset: 0; z-index: 10; background: rgba(22,16,12,.44); opacity: 0; visibility: hidden; transition: opacity .32s ease-out, visibility 0s .32s; }
.e-scrim.on { opacity: 1; visibility: visible; transition: opacity .32s ease-out; }
.e-sheet { position: absolute; left: 0; right: 0; bottom: 0; z-index: 11; display: flex; flex-direction: column;
  max-height: calc(100% - var(--st) - 8px); border-radius: 28px 28px 0 0; background: var(--bg);
  box-shadow: 0 -1px 0 rgba(255,255,255,.6) inset, 0 -16px 48px rgba(22,16,12,.22);
  transform: translate3d(0,100%,0); visibility: hidden; will-change: transform; }
.e-sheet.open { visibility: visible; }
.e-sheet::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 70vh; background: var(--bg); }   /* jamais de vide sous la fiche */
.e-grab { flex: none; padding: 8px 18px 0 20px; touch-action: none; cursor: grab; }
.e-handle { display: block; width: 40px; height: 5px; margin: 0 auto 12px; border-radius: 3px; background: #D9CFC1; }
.e-shead { display: flex; align-items: center; gap: 12px; }
.e-sh-tt { flex: 1; min-width: 0; }
.e-sh-tt h2 { margin: 0; font-size: 21px; line-height: 1.15; font-weight: 780; letter-spacing: -.012em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-sh-tt p { margin: 2px 0 0; font-size: 13.5px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-close { flex: none; display: flex; align-items: center; gap: 4px; height: 44px; padding: 0 14px 0 10px; border-radius: 22px; background: var(--soft); font-size: 14.5px; font-weight: 650; }
.e-close .ic { width: 20px; height: 20px; stroke-width: 2; }
.e-close:active { transform: scale(.94); background: var(--soft-2); }
.e-price { padding: 18px 0 14px; text-align: center; }
.e-big { display: inline-flex; align-items: baseline; font-size: 78px; line-height: 1; font-weight: 800; font-variation-settings: 'wdth' 80; letter-spacing: -.02em; }
.e-cur { margin-left: .1em; font-size: .46em; font-weight: 700; color: var(--ink-2); letter-spacing: 0; }
.e-before { margin-top: 10px; min-height: 20px; font-size: 14.5px; color: var(--ink-2); }
.e-before b { color: var(--red); font-weight: 700; }

.e-sh-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 2px 20px 10px; }
.e-steps { display: flex; gap: 20px; }
.e-step-g { flex: 1; display: flex; gap: 8px; }
.e-step { flex: 1; height: 60px; border-radius: 16px; background: var(--card); font-size: 17px; font-weight: 700;
  box-shadow: 0 0 0 1px var(--line-2), 0 1px 2px rgba(27,22,18,.05); }
.e-step:active { transform: scale(.94); background: var(--soft); }
.e-type { display: flex; align-items: center; justify-content: center; gap: 8px; height: 48px; margin: 10px auto 0; padding: 0 18px 0 14px; border-radius: 24px; font-size: 15px; font-weight: 650; }
.e-type .ic { width: 20px; height: 20px; color: var(--ink-2); }
.e-type:active { transform: scale(.96); background: var(--soft); }
.e-type.on { background: var(--soft); }
.e-pad { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 6px; }
.e-key { height: 58px; border-radius: 14px; background: var(--card); font-size: 25px; font-weight: 650; box-shadow: 0 0 0 1px var(--line-2), 0 1px 2px rgba(27,22,18,.05); }
.e-key:active { transform: scale(.94); background: var(--soft); }
.e-key.fn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; font-size: 14px; color: var(--ink-2); background: var(--soft); box-shadow: none; }
.e-key.fn .ic { width: 22px; height: 22px; }
.e-help { margin: 10px 0 0; text-align: center; font-size: 13.5px; color: var(--ink-2); }
.e-warn { display: flex; align-items: flex-start; gap: 10px; margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: #FCEEEA; color: #8C1A12; font-size: 14.5px; font-weight: 600; line-height: 1.35;
  box-shadow: inset 0 0 0 1px #F3CFC6; }
.e-warn .ic { width: 20px; height: 20px; margin-top: 0; }
.e-today { margin-top: 24px; }
.e-label { display: block; margin: 0 2px 8px; font-size: 13.5px; font-weight: 650; color: var(--ink-2); }
.e-label small { margin-left: 8px; font-size: 12.5px; font-weight: 500; color: var(--ink-3); }
.e-sold { display: flex; align-items: center; gap: 14px; width: 100%; min-height: 66px; padding: 10px 14px 10px 12px; border-radius: 16px; background: var(--card); text-align: left;
  box-shadow: 0 0 0 1px var(--line-2), 0 1px 2px rgba(27,22,18,.04); }
.e-sold:active { transform: scale(.98); background: #FFFCF8; }
.e-sold-ic { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 50%; background: var(--red-soft); color: var(--red); }
.e-sold-ic .ic { width: 22px; height: 22px; }
.e-sold b { display: block; font-size: 16.5px; font-weight: 700; color: var(--red); }
.e-sold small { display: block; margin-top: 1px; font-size: 13.5px; color: var(--ink-2); }
.e-sold.back .e-sold-ic { background: var(--ok-soft); color: var(--ok); }
.e-sold.back b { color: var(--ok); }
.e-sh-foot { flex: none; padding: 12px 16px max(16px, var(--sb)); background: var(--bg); box-shadow: 0 -1px 0 var(--line); }

/* l'action principale : une seule par écran */
.e-cta { display: block; width: 100%; height: 60px; border-radius: 18px; background: var(--red); color: #fff; font-size: 17.5px; font-weight: 750; letter-spacing: -.005em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 8px 18px -8px rgba(200,38,28,.6); }
.e-cta:active { transform: scale(.98); background: var(--red-press); }
.e-cta.neutral { background: var(--soft); color: var(--ink); box-shadow: none; }
.e-cta.neutral:active { background: var(--soft-2); }

/* ---------------------------------------------------------------- style */
.e-lead { margin: 4px 4px 16px; font-size: 15px; line-height: 1.4; color: var(--ink-2); }
.e-themes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.e-theme { position: relative; display: block; padding: 6px 6px 12px; border-radius: 20px; background: var(--card); text-align: left;
  box-shadow: 0 0 0 1px var(--line), 0 1px 2px rgba(27,22,18,.04); }
.e-theme:active { transform: scale(.97); }
.e-theme.on { box-shadow: 0 0 0 2px var(--red), 0 10px 22px -10px rgba(200,38,28,.45); }
.e-theme-t { display: block; margin: 10px 8px 0; font-size: 16px; font-weight: 750; }
.e-theme-d { display: block; margin: 1px 8px 0; font-size: 13px; line-height: 1.3; color: var(--ink-2); }
.e-badge { position: absolute; z-index: 2; left: 12px; top: 12px; display: flex; align-items: center; gap: 3px; height: 24px; padding: 0 9px 0 5px; border-radius: 12px;
  background: var(--red); color: #fff; font-size: 12px; font-weight: 700; box-shadow: 0 2px 6px rgba(0,0,0,.25);
  opacity: 0; transform: scale(.8); transition: opacity .2s, transform .35s var(--ease); }
.e-badge .ic { width: 16px; height: 16px; stroke-width: 2.4; }
.e-theme.on .e-badge { opacity: 1; transform: none; }

/* la vignette du thème : la vraie TV en petit, avec les variables du thème (board.css) */
.e-sw { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; container-type: inline-size; background: var(--bg); color: var(--ink); line-height: 1; }
.e-sw > * { position: absolute; }
.e-sw-word { left: 5cqw; top: 11cqw; font-size: 23cqw; font-weight: 900; font-variation-settings: 'wdth' 78; text-transform: uppercase; letter-spacing: -.01em; color: var(--word, rgba(246,236,220,.06)); }
.e-sw-name { left: 5cqw; top: 4.5cqw; font-size: 5cqw; font-weight: var(--name-w, 900); font-variation-settings: 'wdth' var(--name-wdth, 70); text-transform: uppercase; white-space: nowrap; max-width: 52cqw; overflow: hidden; }
.e-sw-pages { right: 5cqw; top: 6cqw; display: flex; gap: 1.2cqw; }
.e-sw-pages i { display: block; width: 4.2cqw; height: .7cqw; background: var(--filet); }
.e-sw-pages i:first-child { background: var(--accent); }
.e-sw-img { right: 4cqw; top: 9cqw; height: 44cqw; width: auto; filter: drop-shadow(0 1.2cqw 1.5cqw var(--shadow, rgba(0,0,0,.5))); }
.e-sw-title { left: 5cqw; top: 31cqw; font-size: 7cqw; font-weight: 900; font-variation-settings: 'wdth' 74; text-transform: uppercase; white-space: nowrap; }
.e-sw-tag { left: 5cqw; top: 40cqw; padding: .9cqw 2.2cqw .6cqw; border-radius: 1cqw; background: var(--accent); color: var(--on-accent); font-size: 6.6cqw; font-weight: 800; font-variation-settings: 'wdth' 80; }
.e-sw-band { left: 0; right: 0; bottom: 0; height: 5.6cqw; background: var(--band); }

/* ---------------------------------------------------------------- à noter, le snack */
.e-block { margin-top: 4px; }
.e-label-row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.e-flag { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 650; color: var(--ok); white-space: nowrap; }
.e-flag::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.e-flag.draft { color: var(--red); }
.e-band { display: flex; align-items: center; min-height: 58px; padding: 12px 18px; border-radius: 14px; background: var(--band); color: var(--band-ink);
  font-size: 19px; line-height: 1.15; font-weight: 800; font-variation-settings: 'wdth' 72; text-transform: uppercase; overflow: hidden;
  box-shadow: 0 8px 20px -12px rgba(27,22,18,.5); }
.e-band span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.e-headprev { display: flex; align-items: baseline; gap: 12px; min-height: 62px; padding: 16px 18px; border-radius: 14px; overflow: hidden;
  background: var(--bg); color: var(--ink); box-shadow: 0 8px 20px -12px rgba(27,22,18,.5); }
.e-headprev b { font-size: 26px; line-height: 1; font-weight: var(--name-w, 900); font-variation-settings: 'wdth' var(--name-wdth, 70); text-transform: uppercase; white-space: nowrap; }
.e-headprev span { font-size: 13px; font-weight: 600; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.e-field { position: relative; display: block; margin-top: 22px; }
.e-input { display: block; width: 100%; height: 56px; padding: 0 16px; border-radius: 14px; border: 0; outline: 0; background: var(--card); font-size: 17.5px;
  box-shadow: 0 0 0 1px var(--line-2), 0 1px 2px rgba(27,22,18,.04); transition: box-shadow .2s; -webkit-appearance: none; appearance: none; }
.e-input:focus { box-shadow: 0 0 0 2px var(--ink); }
textarea.e-input { height: 96px; padding: 14px 16px; resize: none; line-height: 1.35; }
.e-count { position: absolute; right: 12px; bottom: 10px; font-size: 12.5px; color: var(--ink-3); pointer-events: none; }
.e-label-ideas { margin-top: 22px; }
.e-ideas { display: flex; flex-wrap: wrap; gap: 8px; }
.e-idea { height: 44px; padding: 0 15px; border-radius: 22px; font-size: 14.5px; font-weight: 600; background: var(--card); box-shadow: inset 0 0 0 1px var(--line-2); }
.e-idea:active { transform: scale(.95); background: var(--soft); }
.e-demo { margin-top: 30px; padding-top: 18px; border-top: 1px solid var(--line); text-align: center; }
.e-reset { display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 16px; border-radius: 24px; font-size: 15px; font-weight: 650; color: var(--ink); }
.e-reset .ic { width: 20px; height: 20px; color: var(--ink-2); }
.e-reset:active { transform: scale(.96); background: var(--soft); }
.e-demo p { margin: 2px 16px 0; font-size: 13px; color: var(--ink-3); }
.e-grow { flex: 1 0 18px; }
.e-dock { position: sticky; bottom: 0; z-index: 2; margin: 0 -16px; padding: 12px 16px 16px; background: var(--bg); box-shadow: 0 -1px 0 var(--line); }

/* ---------------------------------------------------------------- message « Annuler » */
.e-toast { position: absolute; z-index: 20; left: 12px; right: 12px; bottom: calc(var(--tab-h, 72px) + 10px); display: flex; align-items: center; gap: 12px;
  min-height: 58px; padding: 7px 7px 7px 16px; border-radius: 18px; overflow: hidden; background: #211A15; color: #F7F1E8; font-size: 15px; font-weight: 500; line-height: 1.3;
  box-shadow: 0 14px 34px -8px rgba(22,16,12,.45);
  opacity: 0; transform: translate3d(0,18px,0) scale(.97); pointer-events: none; transition: opacity .2s ease-out, transform .42s var(--ease); }
.e-toast.on { opacity: 1; transform: none; pointer-events: auto; }
.ed.has-dock .e-toast { bottom: calc(var(--tab-h, 72px) + 88px); }   /* au-dessus du bouton principal collé en bas */
.e-toast-t { flex: 1; min-width: 0; }
.e-toast-t b { font-weight: 700; color: #fff; }
#e-undo { flex: none; height: 44px; padding: 0 16px; border-radius: 12px; background: rgba(255,255,255,.12); color: #fff; font-size: 15px; font-weight: 750; }
#e-undo:active { transform: scale(.95); background: rgba(255,255,255,.2); }
.e-toast-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: rgba(255,255,255,.28); transform-origin: 0 50%; }

@media (prefers-reduced-motion: reduce) {
  .ed *, .ed *::before, .ed *::after { transition-duration: 1ms !important; animation: none !important; }
}
