:root{
  /* Palette neumorphism */
  --bg:#e4ebf1;
  --light:#ffffff;
  --dark:#a9b8c9;
  /* Teintes de texte : toutes vérifiées à 4,5:1 minimum sur --bg (WCAG AA) */
  --ink:#3d4d63;
  --ink-soft:#4f5d70;
  --muted:#59677b;

  --green:#16a34a; --green-d:#15753a; --green-l:#d4f3df;
  --amber:#f59e0b; --red:#bd254a; --blue:#2563eb;
  /* Ambre lisible : --amber reste pour les fonds, --amber-d pour le texte */
  --amber-d:#965500;
  --danger:#c01a1a;

  /* Ombres neumorphiques réutilisables */
  --out:6px 6px 12px var(--dark), -6px -6px 12px var(--light);
  --out-sm:4px 4px 8px var(--dark), -4px -4px 8px var(--light);
  --in:inset 4px 4px 8px var(--dark), inset -4px -4px 8px var(--light);
  --in-sm:inset 3px 3px 6px var(--dark), inset -3px -3px 6px var(--light);

  --radius:20px;
  --safe-b:env(safe-area-inset-bottom,0px);
}

/* ===== Mode sombre (neumorphism) ===== */
:root[data-theme="dark"]{
  --bg:#2b2f36;
  --light:#363c45;
  --dark:#1d2026;
  --ink:#e4ebf3;
  --ink-soft:#aeb9c7;
  --muted:#939fb0;
  --green:#22c55e; --green-d:#4ade80; --green-l:#1f3a2b;
  --red:#f26d8a;
  --amber-d:#fbbf24;
  --danger:#f87171;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.4;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{margin:0}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select{font-family:inherit;font-size:16px;color:var(--ink)}
.muted{color:var(--muted)}
.tiny{font-size:12px}
.hidden{display:none!important}

#app{max-width:520px;margin:0 auto;min-height:100vh;padding-bottom:160px;position:relative}

/* TOPBAR */
.topbar{
  position:sticky;top:0;z-index:20;background:var(--bg);
  padding:16px 16px 18px;display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 6px 12px -6px var(--dark);
}
.brand{display:flex;align-items:center;gap:12px}
.logo{
  font-size:26px;width:52px;height:52px;border-radius:50%;
  display:grid;place-items:center;background:var(--bg);box-shadow:var(--out);
}
.logo img{width:34px;height:auto;display:block}
/* Thème sombre : pastille turquoise du logo, les contours noirs restent lisibles */
[data-theme="dark"] .logo{background:#9fe7e0;box-shadow:none}
.topbar h1{font-size:21px;letter-spacing:.5px;font-weight:800;color:var(--green-d)}
.topbar p{margin:0;font-size:12px;color:var(--muted)}
.icon-btn{
  width:46px;height:46px;border-radius:50%;font-size:19px;
  background:var(--bg);color:var(--ink);display:grid;place-items:center;box-shadow:var(--out-sm);
  transition:box-shadow .12s,transform .12s;
}
.icon-btn:active{box-shadow:var(--in-sm)}

main{padding:16px 16px 0}
.view{display:none}
.view.active{display:block;animation:fade .2s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* Titre de vue : le texte occupe la place, le bouton reste sur la même ligne */
.view-title{font-size:18px;margin:4px 4px 14px;font-weight:800;display:flex;align-items:center;gap:10px}
.view-title > span{flex:1;min-width:0}
.view-title .icon-btn{flex-shrink:0}

/* SEARCH — s'applique aux 3 champs (liste, repas, frigo) */
.searchwrap{display:flex;gap:12px;margin-bottom:14px}
.searchwrap input{
  flex:1;min-width:0;padding:15px 18px;border:none;border-radius:16px;outline:none;
  background:var(--bg);box-shadow:var(--in);color:var(--ink);font-size:16px;
}
.searchwrap input::placeholder{color:var(--muted)}

/* LIST HEADER */
.list-header{display:flex;justify-content:space-between;align-items:center;margin:20px 4px 12px}
.list-header h2{font-size:16px;display:flex;align-items:center;gap:10px;font-weight:800}
.pill{
  background:var(--bg);color:var(--green-d);border-radius:999px;font-size:12px;
  min-width:26px;height:26px;display:inline-grid;place-items:center;padding:0 8px;font-weight:800;box-shadow:var(--out-sm);
}
.list-actions{display:flex;gap:8px}
.ghost{
  font-size:12px;color:var(--ink-soft);padding:9px 13px;border-radius:12px;
  background:var(--bg);box-shadow:var(--out-sm);font-weight:600;transition:box-shadow .12s;
}
.ghost:active{box-shadow:var(--in-sm)}
.ghost.danger{color:var(--red)}

.saved-bar{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;margin-bottom:4px}
.saved-bar:empty{display:none}
.chip{
  white-space:nowrap;background:var(--bg);border-radius:999px;padding:10px 16px;
  font-size:13px;font-weight:600;box-shadow:var(--out-sm);transition:box-shadow .12s;
}
.chip:active{box-shadow:var(--in-sm)}
/* Liste enregistrée : charger (nom) + supprimer (✕) */
.saved-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 12px}
.saved-chip>button:first-child{font-size:13px;font-weight:600;padding:6px 0}
.chip-del{
  width:26px;height:26px;flex-shrink:0;border-radius:50%;font-size:12px;font-weight:800;
  color:var(--red,#e63e11);background:var(--bg);box-shadow:var(--in-sm);display:grid;place-items:center;
}

/* CART */
.cart{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.cart li{
  background:var(--bg);border-radius:18px;padding:12px 14px;display:flex;align-items:center;gap:12px;
  box-shadow:var(--out);animation:pop .18s ease;
}
@keyframes pop{from{transform:scale(.97);opacity:.4}to{transform:none;opacity:1}}
.icon-badge{
  width:46px;height:46px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;
  font-size:24px;background:var(--bg);box-shadow:var(--in-sm);
}
.cart .info{flex:1;min-width:0}
.cart .name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart .sub{font-size:12px;color:var(--muted)}

/* Stepper quantité */
.qty{display:flex;align-items:center;gap:4px;background:var(--bg);border-radius:14px;padding:4px;box-shadow:var(--in-sm)}
.qty button{width:32px;height:32px;font-size:18px;font-weight:800;color:var(--green-d);display:grid;place-items:center;border-radius:10px;background:var(--bg);box-shadow:var(--out-sm);transition:box-shadow .1s}
.qty button:active{box-shadow:var(--in-sm)}
.qty span{min-width:24px;text-align:center;font-weight:800;font-size:15px}
.cart .del{color:var(--muted);font-size:16px;width:40px;height:40px;border-radius:50%;background:var(--bg);box-shadow:var(--out-sm);display:grid;place-items:center;flex-shrink:0}
.cart .del:active{box-shadow:var(--in-sm)}

.empty{text-align:center;padding:26px 20px;color:var(--muted)}
.empty p{margin:4px 0}

/* CATALOGUE */
.catalog{display:flex;flex-direction:column;gap:18px}
.cat-group{background:var(--bg);border-radius:var(--radius);padding:8px;box-shadow:var(--out)}
.cat-title{color:var(--green-d);font-weight:800;font-size:12px;padding:8px 12px 10px;text-transform:uppercase;letter-spacing:.6px}
.cat-item{display:flex;align-items:center;gap:12px;padding:8px 8px}
.cat-item + .cat-item{margin-top:6px}
.ci-info{flex:1;min-width:0}
.ci-name{font-weight:700;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.ci-sub{font-size:12px;color:var(--muted)}
.add-btn{
  width:44px;height:44px;flex-shrink:0;border-radius:50%;font-size:22px;font-weight:700;
  color:var(--green-d);background:var(--bg);box-shadow:var(--out-sm);display:grid;place-items:center;
  transition:box-shadow .1s,transform .1s;line-height:1;
}
.add-btn:active{box-shadow:var(--in-sm)}
.cat-item.in{background:var(--bg);border-radius:14px;box-shadow:var(--in-sm)}

/* FAB */
.fab{
  position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(84px + var(--safe-b));z-index:30;
  background:var(--green);color:#fff;font-weight:800;font-size:16px;padding:17px 26px;border-radius:999px;
  box-shadow:6px 6px 14px var(--dark), -6px -6px 14px var(--light);
  width:calc(100% - 44px);max-width:470px;transition:transform .12s;
}
.fab:active{transform:translateX(-50%) scale(.97)}
.fab #fabCount{opacity:.85;font-weight:600}

/* TABBAR */
.tabbar{
  position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--bg);
  display:flex;padding:10px 12px calc(10px + var(--safe-b));max-width:520px;margin:0 auto;
  box-shadow:0 -6px 12px -6px var(--dark);gap:10px;
}
/* Onglets : icônes plus grandes, libellés en noir pour la lisibilité */
.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:22px;color:var(--ink);font-weight:700;padding:8px 0;border-radius:14px;background:var(--bg)}
.tab span{font-size:12px;color:var(--ink);line-height:1.2}
.tab.active{box-shadow:var(--in-sm)}
.tab.active span{color:var(--green-d)}

/* RESULTS */
.result-hero{
  background:var(--bg);border-radius:var(--radius);padding:22px;margin-bottom:16px;
  box-shadow:var(--out);text-align:center;
}
.result-hero > div:first-child{color:var(--muted);font-size:13px}
.result-hero .big{font-size:38px;font-weight:900;margin:6px 0;color:var(--green-d)}
.result-hero .store{font-size:22px;font-weight:800;color:var(--ink)}
.result-hero .save{display:inline-block;background:var(--bg);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:700;margin-top:10px;color:var(--ink-soft);box-shadow:var(--in-sm)}
/* Réserve sur le prix, à côté du prix. Discrète mais lisible : 4,78:1 sur le fond. */
.hero-estim{display:block;margin:14px auto 0;font-size:11.5px;line-height:1.4;color:var(--muted);
  text-decoration:underline;text-underline-offset:3px;max-width:34ch}

.plan{background:var(--bg);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--out)}
.plan h3{font-size:15px;display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--amber-d)}
.plan .split{display:flex;gap:14px}
.plan .leg{flex:1;background:var(--bg);border-radius:16px;padding:14px 8px;text-align:center;box-shadow:var(--in-sm)}
.plan .leg .s{font-weight:800;color:var(--ink)}
.plan .leg .t{font-size:21px;font-weight:900;color:var(--green-d);margin:2px 0}
.plan .banner{margin-top:14px;background:var(--green);color:#fff;border-radius:14px;padding:11px 14px;font-weight:800;font-size:14px;text-align:center;box-shadow:var(--out-sm)}

.store-row{
  background:var(--bg);border-radius:18px;padding:14px;margin-bottom:12px;box-shadow:var(--out);
  display:flex;align-items:center;gap:14px;position:relative;
}
.store-row .rank{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;flex-shrink:0;box-shadow:var(--out-sm)}
.store-row .sinfo{flex:1;min-width:0}
.store-row .sname{font-weight:800;font-size:15px;color:var(--ink)}
.store-row .smeta{font-size:12px;color:var(--muted)}
.store-row .stotal{font-size:19px;font-weight:900;color:var(--green-d)}
.store-row.best{box-shadow:var(--out), inset 0 0 0 2px var(--green)}
.store-row .bar{position:absolute;bottom:0;left:0;height:3px;background:var(--green);opacity:.35;border-radius:2px;max-width:100%}
.store-row .stotal{flex-shrink:0}
.miss{color:var(--red);font-size:12px;font-weight:700}
.miss-list{color:var(--red);font-size:11px;margin-top:3px;line-height:1.3}
.drive-badge{font-size:12px}
.drive-toggle{
  width:100%;background:var(--bg);border-radius:16px;padding:14px;margin-bottom:16px;
  font-weight:800;font-size:14px;color:var(--ink);box-shadow:var(--out-sm);transition:box-shadow .12s;
}
.drive-toggle.on{color:var(--green-d);box-shadow:var(--out-sm), inset 0 0 0 2px var(--green)}
.drive-toggle:active{box-shadow:var(--in-sm)}

.section-lbl{font-size:12px;font-weight:800;color:var(--muted);margin:20px 4px 12px;text-transform:uppercase;letter-spacing:.6px}

.alt-card{background:var(--bg);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:var(--out)}
.alt-card .row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.alt-card .from{text-decoration:line-through;color:var(--muted);font-size:13px}
.alt-card .to{font-weight:800;color:var(--ink)}
.alt-card .save{color:var(--green-d);font-weight:900;font-size:14px;white-space:nowrap}
.alt-card button{margin-top:12px;background:var(--bg);color:var(--green-d);font-weight:700;border-radius:12px;padding:11px;width:100%;box-shadow:var(--out-sm)}
.alt-card button:active{box-shadow:var(--in-sm)}

.updbtn{background:var(--bg);border-radius:12px;padding:11px 16px;font-size:13px;font-weight:600;color:var(--ink-soft);box-shadow:var(--out-sm)}
.updbtn:active{box-shadow:var(--in-sm)}

/* Produit scanné (Open Food Facts) */
.badge-img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.off-top{display:flex;gap:14px;align-items:center;margin-bottom:16px}
.off-img{width:88px;height:88px;flex-shrink:0;border-radius:16px;background:var(--bg);box-shadow:var(--in-sm);display:grid;place-items:center;overflow:hidden}
.off-img img{width:100%;height:100%;object-fit:contain}
.off-noimg{font-size:40px}
.off-info{flex:1;min-width:0}
.off-title{font-weight:800;font-size:17px;color:var(--ink);line-height:1.25}
.off-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;font-size:12px;color:var(--ink-soft)}
.nutri{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;color:#fff;font-weight:900;font-size:12px;vertical-align:middle}
/* Repère estimé par GoPanier : forme et traitement volontairement différents du
   Nutri-Score officiel (marque de Santé publique France) — rond, ajouré, préfixé d'un ~ */
.nutri-est{width:auto;min-width:28px;padding:0 5px;border-radius:999px;background:transparent!important;
  border:1.5px solid;font-size:10.5px;font-weight:800;letter-spacing:.2px}
.off-chip{background:var(--bg);border-radius:999px;padding:4px 10px;font-weight:700;box-shadow:var(--out-sm)}
.off-chip.green{color:var(--green-d)}
/* Scan de ticket */
.rcp-fields{display:flex;flex-direction:column;gap:10px;margin:10px 0 14px}
.rcp-fields label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--ink)}
.rcp-fields input{flex:1;max-width:60%;background:var(--bg);box-shadow:var(--in-sm);border-radius:10px;padding:9px 12px;font-size:16px;color:var(--ink)}
.receipt-lines{max-height:30vh}
.rcp-line{display:flex;justify-content:space-between;gap:10px;padding:7px 8px;font-size:13px;color:var(--ink);border-radius:10px}
.rcp-line:nth-child(odd){background:var(--bg);box-shadow:var(--in-sm)}

/* Dictée vocale */
@keyframes micpulse{0%,100%{box-shadow:var(--out-sm)}50%{box-shadow:0 0 0 6px rgba(230,62,17,.25)}}
#micBtn.rec{animation:micpulse 1s infinite;color:var(--red,#e63e11)}

/* Score santé du panier */
.health-bar{background:var(--bg);border-radius:14px;padding:10px 12px;box-shadow:var(--in-sm);margin-bottom:12px}
.hb-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink)}
.hb-track{display:flex;height:8px;border-radius:99px;overflow:hidden;margin-top:8px;background:var(--bg);box-shadow:var(--in-sm)}
.hb-seg{height:100%;transition:width .3s}
.hb-a{background:#85bb2f}
.hb-c{background:#fecb02}
.hb-e{background:#ee8100}

/* Fiche produit enrichie */
.nut-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
.nut-cell{background:var(--bg);border-radius:14px;padding:11px 12px;box-shadow:var(--in-sm)}
.nut-lbl{font-size:12px;color:var(--muted);font-weight:600}
.nut-val{font-size:19px;font-weight:800;color:var(--ink);margin-top:2px}
.nut-val.lv-low{color:var(--green-d)}
.nut-val.lv-mid{color:var(--amber-d)}
.nut-val.lv-high{color:var(--danger)}
.nut-sub{font-size:11px;color:var(--muted)}
.fiche-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:12px}
.fiche-row{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--ink-soft);line-height:1.45}
.fiche-row b{color:var(--ink);font-weight:700}
.fiche-row .fr-ic{flex-shrink:0;font-size:14px;line-height:1.4}
.fiche-row.warn b{color:var(--amber-d)}
.fiche-row.bad b{color:var(--danger)}
.fiche-row.ok b{color:var(--green-d)}
.off-contrib{display:block;text-align:center;font-size:12px;color:var(--green-d);text-decoration:underline;text-underline-offset:3px;margin-bottom:14px}

/* Accès privé aux statistiques (discret) */
.admin-dot{width:26px;height:26px;border-radius:50%;background:transparent;opacity:.25}
.admin-dot::after{content:'';display:block;width:7px;height:7px;margin:auto;border-radius:50%;background:var(--muted)}
.admin-dot:active{opacity:.7}
.live-now{
  display:flex;align-items:center;gap:8px;justify-content:center;
  background:var(--bg);border-radius:14px;padding:14px;box-shadow:var(--in-sm);
  font-size:15px;color:var(--ink);margin-bottom:14px;
}
.live-now b{font-size:22px;color:var(--green-d)}
.live-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;animation:pulse 1.6s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}

.gc-link{
  display:block;text-align:center;background:var(--bg);border-radius:14px;padding:13px;
  box-shadow:var(--out-sm);font-size:14px;font-weight:700;color:var(--green-d);text-decoration:none;
}
.gc-link:active{box-shadow:var(--in-sm)}

/* Pied de page légal */
.legal-footer{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;
  padding:22px 16px calc(96px + var(--safe-b));
}
.legal-footer button{font-size:12px;font-weight:600;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.legal-footer button:active{color:var(--green-d)}
.legal-body{overflow-y:auto;max-height:70vh;padding-right:4px;font-size:14px;color:var(--ink);line-height:1.55}
.legal-body h4{margin:16px 0 6px;font-size:14px;font-weight:800;color:var(--green-d)}
.legal-body h4:first-child{margin-top:4px}
.legal-body p{margin:6px 0;color:var(--ink-soft)}
.legal-body ul{margin:6px 0 6px 18px;color:var(--ink-soft)}
.legal-body li{margin:4px 0}
.legal-body b{color:var(--ink)}

/* Sélecteur de ville */
#citySearch{width:100%;background:var(--bg);box-shadow:var(--in-sm);border-radius:12px;padding:11px 14px;font-size:16px;color:var(--ink);margin-bottom:10px}
.city-list{display:flex;flex-wrap:wrap;gap:8px;max-height:38vh;overflow-y:auto;padding:2px}
.city-item{
  white-space:nowrap;background:var(--bg);border-radius:999px;padding:9px 14px;
  font-size:13px;font-weight:600;color:var(--ink);box-shadow:var(--out-sm);transition:box-shadow .12s;
}
.city-item:active{box-shadow:var(--in-sm)}
.city-item.on{color:var(--green-d);box-shadow:var(--in-sm)}

/* Mode magasin */
.instore-card{max-height:88vh;display:flex;flex-direction:column}
.instore-list{flex:1;overflow-y:auto;margin:4px 0 12px;padding:2px}
.instore-rayon{font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin:14px 4px 8px}
.instore-item{display:flex;align-items:center;gap:14px;padding:14px 12px;border-radius:14px;background:var(--bg);box-shadow:var(--out-sm);margin-bottom:8px;cursor:pointer;user-select:none}
.instore-box{width:30px;height:30px;flex-shrink:0;border-radius:9px;box-shadow:var(--in-sm);display:grid;place-items:center;font-size:17px;color:#fff;font-weight:900}
.instore-name{flex:1;font-weight:700;font-size:16px;color:var(--ink)}
.instore-qty{font-weight:700;color:var(--muted)}
.instore-item.done{opacity:.55}
.instore-item.done .instore-name{text-decoration:line-through}
.instore-item.done .instore-box{background:var(--green);box-shadow:none}

/* Coût essence dans le classement */
.fuelcost{color:var(--green-d);font-weight:700}

/* RappelConso : bannière produit rappelé */
.recall{background:#fdecec;border:2px solid var(--red,#e63e11);border-radius:14px;padding:12px 14px;margin:12px 0}
.recall-title{font-weight:900;color:#c0281c;font-size:14px;margin-bottom:6px}
.recall-line{font-size:13px;color:#7a1d15;margin-top:3px}
.recall-link{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;color:#c0281c;text-decoration:underline}
.recall-old{background:#fff7e6;border-color:#e08c00}
.recall-old .recall-title{color:#9a6200}
.recall-old .recall-line{color:#7a5200}
[data-theme="dark"] .recall{background:#3a1512}
[data-theme="dark"] .recall-line{color:#f0b0a8}
[data-theme="dark"] .recall-old{background:#332508}
[data-theme="dark"] .recall-old .recall-line{color:#e8c890}

/* Photo du frigo (reconnaissance IA) */
.fridge-photo-btn{display:block;width:100%;text-align:center;font-size:14px;padding:13px;margin:2px 0 6px}
.fridge-photo-hint{margin:0 4px 10px}
.fridge-photo-status{margin:0 4px 10px;font-weight:700;color:var(--green-d)}

/* Résultats Open Food Facts dans la recherche du catalogue */
.off-item{cursor:pointer}
.off-thumb{width:46px;height:46px;flex-shrink:0;border-radius:12px;object-fit:contain;background:#fff;box-shadow:var(--in-sm)}
.off-thumb-ph{display:grid;place-items:center;font-size:22px;background:var(--bg)}
.off-hint{padding:6px 8px}
/* Nutri-Score inline dans le catalogue/panier */
.ci-sub .nutri, .cart .sub .nutri{width:16px;height:16px;border-radius:4px;font-size:10px;vertical-align:-3px}
/* La règle ci-dessus, plus spécifique, écrasait la forme du repère estimé : on la rétablit */
.ci-sub .nutri-est, .cart .sub .nutri-est{width:auto;min-width:26px;border-radius:999px;font-size:9.5px}
.ci-tag{font-size:12px}
.upx{color:var(--green-d);font-weight:700}
.pm-nutri{margin-bottom:14px}
.pm-nutri-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bg);border-radius:12px;padding:10px 12px;box-shadow:var(--in-sm);font-size:14px;font-weight:600;color:var(--ink)}
.pm-nutri-row .nutri{width:20px;height:20px;font-size:11px;vertical-align:-4px}

/* Price Passport (analyse "bon moment pour acheter") */
.passport{background:var(--bg);border-radius:16px;padding:14px;box-shadow:var(--out-sm);margin-bottom:14px}
.pp-verdict{font-weight:800;font-size:15px;text-align:center;padding:8px;border-radius:12px;margin-bottom:12px}
.pp-verdict.good{color:var(--green-d);background:var(--green-l)}
.pp-verdict.mid{color:#a16207;background:#fef9c3}
.pp-verdict.bad{color:var(--red);background:#fee2e2}
.pp-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;text-align:center}
.pp-v{font-size:17px;font-weight:900;color:var(--green-d)}
.pp-l{font-size:11px;color:var(--muted)}
.pp-save{margin-top:12px;font-size:12px;color:var(--ink-soft);background:var(--bg);box-shadow:var(--in-sm);border-radius:10px;padding:9px 11px;text-align:center}
.pp-save b{color:var(--green-d)}

/* Prix réels (Open Prices) */
.off-prices{max-height:34vh;overflow-y:auto;margin-bottom:14px}
.off-prices-lbl{font-size:12px;font-weight:800;color:var(--green-d);text-transform:uppercase;letter-spacing:.4px;padding:6px 2px 8px}
.opx{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--bg);box-shadow:var(--out-sm);margin-bottom:8px}
.opx.best{box-shadow:var(--out-sm), inset 0 0 0 2px var(--green)}
.opx-store{font-size:14px;font-weight:700;color:var(--ink);min-width:0}
.opx-date{font-size:11px;color:var(--muted);font-weight:500;margin-top:2px}
.opx-price{white-space:nowrap;font-size:16px;color:var(--green-d)}
.opx-price b{font-weight:900}
.opx-was{text-decoration:line-through;color:var(--muted);font-size:12px}

/* Sélecteur de pays */
.country-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.country-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:var(--bg);box-shadow:var(--out-sm);text-align:left;width:100%}
.country-item.on{box-shadow:var(--out-sm), inset 0 0 0 2px var(--green)}
.country-item .cflag{font-size:30px}
.country-item .cinfo{flex:1;display:flex;flex-direction:column}
.country-item .cinfo b{font-size:15px;color:var(--ink)}
.country-item .cok{color:var(--green-d);font-weight:900;font-size:18px}

/* Partage de liste */
.share-qr{display:grid;place-items:center;padding:16px 0}
.share-qr img{border-radius:14px;box-shadow:var(--out);background:#fff;padding:8px}
.share-code{text-align:center;font-size:15px;color:var(--ink-soft);margin-bottom:10px}
.share-code b{color:var(--green-d);font-size:20px;letter-spacing:3px}
.share-link{display:flex;gap:8px;margin-bottom:14px}
.share-link input{flex:1;padding:12px;border:none;border-radius:12px;background:var(--bg);box-shadow:var(--in-sm);font-size:16px;color:var(--ink)}

/* Tableau de bord économies */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.stat{background:var(--bg);border-radius:16px;padding:16px;text-align:center;box-shadow:var(--out-sm)}
.stat-v{font-size:24px;font-weight:900;color:var(--green-d)}
.stat-l{font-size:12px;color:var(--muted);margin-top:2px}
.stats-lead{background:var(--green-l);color:var(--green-d);border-radius:12px;padding:12px 14px;font-weight:700;font-size:13px;text-align:center;margin-bottom:14px}

/* Panier trié par rayon */
.cart-rayon{list-style:none;font-size:12px;font-weight:800;color:var(--green-d);text-transform:uppercase;letter-spacing:.5px;padding:8px 6px 2px;margin-top:6px}
.cart-rayon:first-child{margin-top:0}

/* Itinéraire GPS */
.itin{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--bg);box-shadow:var(--out-sm);display:grid;place-items:center;font-size:17px;text-decoration:none}
.itin:active{box-shadow:var(--in-sm)}

/* Menu de la semaine */
.menu-bar{width:100%;background:var(--bg);border-radius:14px;padding:13px 16px;font-weight:800;color:var(--green-d);box-shadow:var(--out-sm);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.menu-bar span{background:var(--green);color:#fff;border-radius:999px;padding:1px 9px;font-size:12px}
.menu-items{max-height:45vh;overflow-y:auto}
.menu-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:11px 0;border-bottom:1px solid rgba(128,128,128,.15);font-size:14px;color:var(--ink)}
.menu-x{display:flex;align-items:center;gap:10px}
.menu-x button{width:30px;height:30px;border-radius:50%;background:var(--bg);box-shadow:var(--out-sm);color:var(--red)}
.menu-total{font-weight:800;color:var(--green-d);text-align:center;padding:12px 0 4px}

/* FRIGO VIDE */
.fridge-sugg{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.fridge-sugg:empty{display:none}
.fridge-add{display:flex;align-items:center;gap:8px;text-align:left;background:var(--bg);border-radius:12px;padding:11px 14px;font-size:14px;font-weight:600;color:var(--ink);box-shadow:var(--out-sm)}
.fridge-add b{margin-left:auto;color:var(--green-d);font-size:18px}
.fridge-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.fridge-chip{background:var(--bg);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600;color:var(--ink-soft);box-shadow:var(--out-sm)}
.fridge-chip.on{color:var(--green-d);box-shadow:var(--in-sm)}
.fridge-have{color:var(--green-d);font-weight:800}
.deal.fridge-full{box-shadow:var(--out), inset 0 0 0 2px var(--green)}

/* PÉREMPTION — la pastille du frigo devient deux boutons : dater / retirer */
span.fridge-chip{display:inline-flex;align-items:center;gap:2px;padding:4px 5px 4px 12px}
.fc-main{font-size:13px;font-weight:600;color:inherit;padding:5px 0;display:inline-flex;align-items:center;gap:5px}
.fc-del{width:26px;height:26px;flex-shrink:0;border-radius:50%;font-size:11px;font-weight:800;
  color:var(--muted);background:var(--bg);box-shadow:var(--in-sm);display:grid;place-items:center}
.fc-exp{font-size:11px;font-weight:800;padding:2px 7px;border-radius:999px;background:var(--bg);box-shadow:var(--out-sm)}
/* Les trois seuils : dépassé, dernier jour / 3 jours, une semaine */
.fridge-chip.exp-gone .fc-exp,   .exp-d.exp-gone{color:var(--danger)}
.fridge-chip.exp-today .fc-exp,  .exp-d.exp-today{color:var(--danger)}
.fridge-chip.exp-urgent .fc-exp, .exp-d.exp-urgent{color:var(--amber-d)}
.fridge-chip.exp-soon .fc-exp,   .exp-d.exp-soon{color:var(--ink-soft)}
.fridge-chip.exp-gone,.fridge-chip.exp-today{box-shadow:var(--in-sm), inset 0 0 0 2px var(--danger)}
.fridge-chip.exp-urgent{box-shadow:var(--in-sm), inset 0 0 0 2px var(--amber)}
.exp-d{font-weight:800;white-space:nowrap}
/* Date seulement estimée d'après le rayon : plus discrète qu'une date saisie */
.fc-exp.fc-auto{font-weight:700;opacity:.85}
#autoDateChip{margin-top:4px;font-size:12px;padding:8px 14px}

.exp-alert{background:var(--bg);border-radius:16px;padding:13px 15px;margin:0 0 10px;box-shadow:var(--out-sm)}
.exp-alert-t{font-size:13px;font-weight:800;margin-bottom:5px}
.exp-alert-l{font-size:13px;color:var(--ink);line-height:1.6}
.exp-alert-h{font-size:11px;color:var(--muted);margin-top:5px}
.exp-gone.exp-alert{box-shadow:var(--out-sm), inset 0 0 0 2px var(--danger)}
.exp-gone.exp-alert .exp-alert-t{color:var(--danger)}
.exp-warn.exp-alert{box-shadow:var(--out-sm), inset 0 0 0 2px var(--amber)}
.exp-warn.exp-alert .exp-alert-t{color:var(--amber-d)}

.exp-item{display:flex;align-items:center;gap:9px;font-size:15px;margin-bottom:6px}
.exp-item-ic{font-size:26px}
.exp-quick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:4px}
#expDate{width:100%;background:var(--bg);box-shadow:var(--in-sm);border:none;border-radius:12px;
  padding:12px 14px;font-size:16px;color:var(--ink);margin-bottom:12px}
#expSave{margin-bottom:8px}
.ghost.full{display:block;width:100%;text-align:center;padding:12px}

/* Onglet Frigo : point d'alerte tant qu'il reste un ingrédient pressé */
.tab.has-alert{position:relative}
.tab.has-alert::after{content:'';position:absolute;top:6px;right:calc(50% - 18px);
  width:8px;height:8px;border-radius:50%;background:var(--danger)}

.recipe-uses{font-size:12px;font-weight:700;color:var(--amber-d);margin-top:3px}
.deal.recipe-urgent{box-shadow:var(--out), inset 0 0 0 2px var(--amber)}

/* REPAS / RECETTES */
.recipe{align-items:center}
.recipe-thumb{width:58px;height:58px;flex-shrink:0;border-radius:14px;display:grid;place-items:center;font-size:30px;box-shadow:var(--out-sm)}
.recipe-thumb.has-photo{overflow:hidden;background:var(--bg)}
.recipe-thumb.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.recipe .dname{font-size:15px}
.recipe-ings{margin-top:3px}
.recipe .add-btn{align-self:center}

/* Modale recette */
/* ANALYSE HALAL — trois niveaux de certitude, jamais un verdict tranché */
.hl-card{background:var(--bg);border-radius:18px;padding:15px;margin:12px 0;box-shadow:var(--out-sm)}
.hl-vert{box-shadow:var(--out-sm), inset 0 0 0 2px var(--green)}
.hl-jaune{box-shadow:var(--out-sm), inset 0 0 0 2px var(--amber)}
.hl-rouge{box-shadow:var(--out-sm), inset 0 0 0 2px var(--danger)}
.hl-inconnu{box-shadow:var(--out-sm), inset 0 0 0 2px var(--muted)}
.hl-top{display:flex;align-items:center;gap:13px;margin-bottom:11px}
.hl-top b{font-size:14px;line-height:1.3}
.hl-score,.hl-dot{width:52px;height:52px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;
  font-size:19px;font-weight:900;color:#fff;box-shadow:var(--out-sm)}
.hl-vert .hl-score{background:var(--green)}
.hl-jaune .hl-score{background:var(--amber)}
.hl-rouge .hl-score{background:var(--danger)}
.hl-inconnu .hl-dot{background:var(--muted)}
.hl-base{font-size:11.5px;color:var(--muted);margin:3px 0 0;line-height:1.4}
.hl-list{display:flex;flex-direction:column;gap:9px;margin:12px 0 0}
.hl-line{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--ink);line-height:1.4}
.hl-bul{width:9px;height:9px;flex-shrink:0;margin-top:5px;border-radius:50%}
.hl-line.hl-vert .hl-bul{background:var(--green)}
.hl-line.hl-jaune .hl-bul{background:var(--amber)}
.hl-line.hl-rouge .hl-bul{background:var(--danger)}
.hl-line.hl-vert,.hl-line.hl-jaune,.hl-line.hl-rouge{box-shadow:none;padding:0}
.hl-exp{font-size:11.5px;color:var(--ink-soft);margin-top:2px;line-height:1.45}
.hl-warn{font-size:10.5px;color:var(--muted);margin:13px 0 0;padding-top:10px;
  border-top:1px solid rgba(128,128,128,.2);line-height:1.45}

/* Menu de la semaine : c'est un écran de budget, il garde ses prix */
.menu-price{color:var(--green-d);font-weight:800;font-size:13px;white-space:nowrap}

/* FICHE RECETTE — mise en page de livre de cuisine : on lit, on ne fait pas ses courses.
   Accent terre cuite propre à cette fiche (le reste de l'app garde son vert). */
:root{ --rc-ac:#b5654a; --rc-ac-d:#9a4a30; --rc-rule:rgba(128,128,128,.22) }
:root[data-theme="dark"]{ --rc-ac:#e0a48c; --rc-ac-d:#e8b49f; --rc-rule:rgba(180,180,180,.2) }

.recipe-card{padding:0 0 calc(24px + var(--safe-b));max-height:92vh;overflow-y:auto}
.rc-header{position:relative;height:120px;border-radius:26px 26px 0 0;display:grid;place-items:center;overflow:hidden}
/* Avec une vraie photo, le bandeau devient une image plein cadre */
.rc-header.rc-has-photo{height:210px;background:none!important}
.rc-photo{width:100%;height:100%;object-fit:cover;display:block}
.rc-emoji{font-size:60px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}
/* Crédit obligatoire pour les images Wikimedia (licences CC-BY / CC-BY-SA) */
.rc-credit{font-size:10.5px;color:var(--muted);padding:8px 0 0;line-height:1.4}
.rc-credit a{color:var(--muted);text-decoration:none}
.rc-credit a:hover{text-decoration:underline}
.rc-generic{font-style:italic}
.rc-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.85)!important;color:#111!important;box-shadow:none!important}
.rc-body{padding:0 22px}

/* Titre : grand, fin, terre cuite — comme le titre d'article de la référence */
.recipe-card h3{
  font-family:Georgia,'Times New Roman',serif;font-size:25px;font-weight:400;line-height:1.25;
  color:var(--rc-ac);padding:20px 0 0;
}
/* Métadonnées empilées, une par ligne, avec leur icône */
.rc-meta{display:block;padding:12px 0 4px}
.rc-meta div{font-size:12.5px;font-weight:600;color:var(--rc-ac-d);padding:3px 0}

.rc-print{
  display:block;margin:14px 0 4px;padding:11px 22px;border-radius:4px;
  background:var(--rc-ac-d);color:#fff;font-size:12px;font-weight:700;
  text-transform:uppercase;letter-spacing:1.2px;
}
.rc-print:active{opacity:.85}

/* Intertitres en petites capitales, soulignés d'un filet */
.rc-section-lbl{
  font-size:11px;font-weight:800;color:var(--ink-soft);margin:26px 0 0;padding:0 0 7px;
  text-transform:uppercase;letter-spacing:1.6px;border-bottom:1px solid var(--rc-rule);
}
/* Ingrédients : une ligne par ingrédient, filet de séparation, aucun prix */
.rc-ings{list-style:none;margin:0;padding:0}
.rc-ings li{padding:13px 0 13px 18px;border-bottom:1px solid var(--rc-rule);font-size:14px;color:var(--ink)}
/* Étapes numérotées, généreusement aérées */
.rc-steps{margin:0;padding:0 0 0 26px;color:var(--ink)}
.rc-steps li{padding:13px 0 13px 6px;border-bottom:1px solid var(--rc-rule);font-size:14px;line-height:1.55}
.rc-steps li::marker{font-weight:700;color:var(--rc-ac-d)}
.rc-steps li:last-child,.rc-ings li:last-child{border-bottom:none}

/* Impression : seule la recette sort sur le papier */
@media print{
  body{background:#fff}
  #app,.tabbar,.modal:not(#recipeModal),#compareBtn,.legal-footer{display:none!important}
  #recipeModal{position:static;background:none;backdrop-filter:none;display:block}
  .recipe-card{max-height:none;overflow:visible;box-shadow:none;animation:none;max-width:none;border-radius:0}
  .rc-close,.rc-print{display:none!important}
  .rc-header{height:70px;border-radius:0;background:none!important}
  .rc-header.rc-has-photo{height:150px}
  .rc-emoji{filter:none}
  .rc-ings li,.rc-steps li,.recipe-card h3,.rc-meta div{color:#000}
}

/* CARBURANT */
.fuel-chips{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 12px;margin-bottom:4px}
.fuel-chip{white-space:nowrap;background:var(--bg);border-radius:999px;padding:10px 16px;font-size:13px;font-weight:700;color:var(--ink-soft);box-shadow:var(--out-sm);transition:box-shadow .12s}
.fuel-chip.on{color:var(--green-d);box-shadow:var(--in-sm)}
.deal .rank{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;flex-shrink:0;box-shadow:var(--out-sm)}
.deal.best-fuel{box-shadow:var(--out), inset 0 0 0 2px var(--green)}
.perL{font-size:12px;color:var(--muted);font-weight:600;margin-left:1px}

/* DEALS */
.deals{display:flex;flex-direction:column;gap:12px}
.deal{background:var(--bg);border-radius:18px;padding:14px;box-shadow:var(--out);display:flex;align-items:center;gap:14px}
.deal .pct{background:var(--red);color:#fff;font-weight:900;border-radius:14px;padding:10px 12px;font-size:15px;box-shadow:var(--out-sm)}
.deal .dinfo{flex:1;min-width:0}
.deal .dname{font-weight:800;font-size:14px;color:var(--ink)}
.deal .dstore{font-size:12px;color:var(--muted)}
.deal .dprice{text-align:right}
.deal .now{font-weight:900;color:var(--green-d);font-size:17px}
.deal .was{text-decoration:line-through;color:var(--muted);font-size:12px}

/* MODALS */
.modal{position:fixed;inset:0;z-index:60;background:rgba(61,77,99,.35);backdrop-filter:blur(3px);display:grid;place-items:end center}
.modal-card{background:var(--bg);width:100%;max-width:520px;border-radius:26px 26px 0 0;padding:22px 20px calc(26px + var(--safe-b));box-shadow:0 -10px 30px rgba(61,77,99,.25);animation:slideup .25s ease}
@keyframes slideup{from{transform:translateY(100%)}to{transform:none}}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.modal-head h3{font-size:17px;color:var(--ink)}
#scanVideo{width:100%;aspect-ratio:4/3;background:#222;border-radius:16px;object-fit:cover;box-shadow:var(--in-sm)}
.manual{display:flex;gap:10px;margin-top:14px}
.manual input{flex:1;padding:13px;border:none;border-radius:14px;background:var(--bg);box-shadow:var(--in-sm)}
.modal label{display:block;font-size:13px;font-weight:700;margin:14px 0 6px;color:var(--ink-soft)}
.modal select,.modal input[type=number]{width:100%;padding:13px;border:none;border-radius:14px;background:var(--bg);box-shadow:var(--in-sm);margin-top:2px}
.primary{background:var(--green);color:#fff;font-weight:800;border-radius:14px;padding:15px;box-shadow:var(--out-sm)}
.primary.full{width:100%;margin-top:18px}
.primary:active{box-shadow:var(--in-sm)}

/* TOP ACTIONS */
.top-actions{display:flex;gap:10px;position:relative}
#menuBtn{font-size:24px;font-weight:900;line-height:1}
.main-menu{
  position:absolute;top:52px;right:0;z-index:50;min-width:220px;
  background:var(--bg);border-radius:16px;padding:8px;box-shadow:var(--out);
  animation:fade .15s ease;
}
.main-menu button{
  display:flex;align-items:center;gap:12px;width:100%;text-align:left;
  padding:11px 12px;border-radius:12px;font-size:14px;font-weight:600;color:var(--ink);
}
.main-menu button:active{box-shadow:var(--in-sm)}
.main-menu .mm-ic{width:24px;text-align:center;font-size:18px}
.mm-sep{height:1px;background:rgba(128,128,128,.18);margin:6px 8px}

/* BUDGET EN DIRECT */
.budget-bar{background:var(--bg);border-radius:16px;padding:12px 14px;margin-bottom:12px;box-shadow:var(--out)}
.budget-bar.over{box-shadow:var(--out), inset 0 0 0 2px var(--red)}
.bb-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}
.bb-top b{color:var(--green-d);font-size:16px}
.bb-track{height:10px;border-radius:999px;background:var(--bg);box-shadow:var(--in-sm);margin-top:10px;overflow:hidden}
.bb-fill{height:100%;border-radius:999px;background:var(--green);transition:width .25s}
.bb-fill.over{background:var(--red)}
.bb-msg{margin-top:8px;font-size:13px;font-weight:700;color:var(--ink-soft)}
.budget-bar.over .bb-msg{color:var(--red)}

/* FAVORIS (étoile) */
.star{width:38px;height:38px;flex-shrink:0;border-radius:50%;font-size:18px;color:var(--amber-d);background:var(--bg);box-shadow:var(--out-sm);display:grid;place-items:center;transition:box-shadow .1s}
.star.on{box-shadow:var(--in-sm)}
.fav-group .cat-title{color:var(--amber-d)}

/* SEGMENTED : 1/2/3 magasins */
.seg{display:flex;gap:8px;background:var(--bg);border-radius:14px;padding:6px;box-shadow:var(--in-sm);margin-bottom:14px}
.seg-btn{flex:1;padding:11px 0;border-radius:10px;font-size:13px;font-weight:700;color:var(--ink-soft);background:transparent}
.seg-btn.on{color:var(--green-d);background:var(--bg);box-shadow:var(--out-sm)}
.plan.one h3{color:var(--green-d)}
.plan .banner.neutral{background:var(--bg);color:var(--ink-soft);box-shadow:var(--in-sm)}

/* PRODUIT : détail / historique */
.pm-best{background:var(--bg);border-radius:14px;padding:12px 14px;box-shadow:var(--in-sm);margin-bottom:14px}
.pm-best > div:first-child{font-size:12px;color:var(--muted)}
.pm-price{font-size:22px;font-weight:900;color:var(--green-d)}
.pm-chart-lbl{margin-bottom:6px}
.pm-chart{background:var(--bg);border-radius:14px;padding:12px;box-shadow:var(--in-sm);margin-bottom:16px}
.spark{width:100%;height:90px;display:block}
.spark-lbl{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:6px}
#pmWatch.watching{background:var(--amber)}

/* BANNIÈRE D'INSTALLATION — au-dessus du bouton flottant et de la barre d'onglets */
.ibar{
  position:fixed;left:50%;bottom:calc(150px + var(--safe-b));z-index:40;
  width:calc(100% - 32px);max-width:470px;
  padding:15px 16px 13px;border-radius:var(--radius);
  background:var(--bg);box-shadow:var(--out);
  transform:translate(-50%,140%);opacity:0;
  transition:transform .3s ease,opacity .3s ease;
}
.ibar.ibar-in{transform:translate(-50%,0);opacity:1}
.ibar-top{display:flex;align-items:center;gap:13px}
.ibar-ic{border-radius:12px;flex-shrink:0}
.ibar-txt{min-width:0}
.ibar-txt strong{display:block;font-size:14.5px;color:var(--ink)}
.ibar-txt p{margin:4px 0 0;font-size:11.5px;line-height:1.4;color:var(--muted)}
.ibar-btns{display:flex;justify-content:flex-end;align-items:center;gap:6px;margin-top:12px}
.ibar .primary{padding:11px 22px;font-size:14px;border-radius:13px}
.ibar-later{font-size:13px;font-weight:700;color:var(--muted);padding:11px 14px;border-radius:13px}
.ibar-later:active{box-shadow:var(--in-sm)}
/* Bandeau cookies : pas d'icône, et jusqu'à trois boutons — ils passent à la ligne
   plutôt que de déborder sur les petits écrans. */
.ibar-ck .ibar-btns{flex-wrap:wrap;gap:4px}
.ibar-ck .ibar-later{padding:11px 10px;font-size:12.5px}
@media (prefers-reduced-motion:reduce){.ibar{transition:none}}

/* TOAST */
.toast{position:fixed;bottom:160px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 22px;border-radius:999px;font-size:14px;font-weight:600;z-index:80;box-shadow:0 8px 20px rgba(61,77,99,.4);animation:fade .2s}
