/* biome-ignore-all lint/style/noExcessiveLinesPerFile: modules front historiques gardes sans decoupage opportuniste. */
/* biome-ignore-all lint/style/noHexColors: palette historique comparee par tests et contrats front. */

/* ============================================================
   NUTRITION — styles de l'onglet Nutrition (coach/front/)
   Issue #134 — extrait de index.html (était inline <style>).
   ============================================================ */

/* Navigation jour */
.nutrition-nav {
  display: flex; align-items: center; gap: 0.5rem;
  margin-bottom: 14px;
}
.nav-jour {
  background: var(--paper);
  border: 1px solid var(--line);
  color: var(--ink);
  border-radius: var(--r-sm);
  min-height: var(--tap);
  font-size: 1rem;
  cursor: pointer;
  font-family: 'Spline Sans', sans-serif;
  font-weight: 500;
}
.nav-prec, .nav-suiv {
  width: var(--tap);
  flex: 0 0 auto;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
}
.nav-prec:active, .nav-suiv:active { background: var(--cream); }
.nav-courant {
  flex: 1;
  font-weight: 600;
  font-size: 14px;
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.nav-courant:active { background: var(--cream); }

/* Grand chiffre calories */
.cal {
  font-family: 'Fraunces', serif;
  font-size: 46px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1;
}

/* Macros rapides (ligne) */
.macros {
  list-style: none;
  display: flex;
  gap: 12px;
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: 13px;
}

/* Balance énergie 7j */
.nutrition-balance .legende {
  display: flex; gap: 1rem;
  font-size: 11px; color: var(--ink-faint);
  margin-bottom: 8px;
}
.nutrition-balance .legende span { display: inline-flex; align-items: center; gap: 5px; }
.nutrition-balance .dot {
  width: 10px; height: 3px; border-radius: 2px;
  display: inline-block;
}
.nutrition-balance .dot.in  { background: var(--green); }
.nutrition-balance .dot.out { background: var(--blue); }
.nutrition-balance .chart { width: 100%; height: auto; display: block; }
.nutrition-balance .balance-vide { color: var(--ink-faint); font-size: 14px; }

/* Micros pastilles — 2 rangées de 5 (#227 : 5 par ligne, pas de retour forcé) */
.micros-pastilles {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
  margin-top: 4px;
}
.micro-pastille {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 7px 4px 6px;
  border-radius: 10px;
  border: 1px solid transparent;
  min-height: 44px;
  line-height: 1;
}
.micro-pastille .micro-nom {
  font-size: 8.5px;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--ink-soft);
  text-transform: uppercase;
  margin-top: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 100%;
}
.micro-pastille .micro-pct {
  font-family: 'Fraunces', serif;
  font-size: 14px;
  font-weight: 600;
  text-align: center;
}
.pastille-vert  { background: var(--green-bg);  border-color: color-mix(in srgb, var(--green) 22%, transparent); }
.pastille-vert  .micro-pct { color: var(--green); }
.pastille-jaune { background: var(--amber-bg);  border-color: color-mix(in srgb, var(--amber) 22%, transparent); }
.pastille-jaune .micro-pct { color: var(--amber); }
.pastille-rouge { background: var(--red-bg);    border-color: color-mix(in srgb, var(--red)   22%, transparent); }
.pastille-rouge .micro-pct { color: var(--red); }

/* Analyse IA — en-tête aéré (#168) */
.ia-header {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 16px;
}
.ia-icone {
  font-size: 28px; flex: 0 0 auto;
  width: 48px; height: 48px;
  display: flex; align-items: center; justify-content: center;
  background: var(--cream); border-radius: 14px;
  border: 1px solid var(--line);
}
.ia-header-texte h2 { margin: 0; }
.ia-sous-titre {
  margin: 2px 0 0; font-size: 12px; color: var(--ink-faint);
}
/* Actions — 3 boutons espacés (#168) */
.ia-actions {
  display: flex; gap: 10px; margin-bottom: 16px;
  flex-wrap: wrap;
}
.ia-btn {
  flex: 1; min-width: 80px;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 0.65rem 0.5rem;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: var(--r-sm); color: var(--ink);
  font-family: 'Spline Sans', sans-serif; font-size: 13px; font-weight: 600;
  min-height: var(--tap); cursor: pointer;
  box-shadow: var(--shadow);
}
.ia-btn:active { background: var(--cream); }
/* Libellés de section dans la carte « Ajout données » (#237, réf E1) */
.ia-groupe {
  font-family: 'Spline Sans', sans-serif;
  font-size: 11px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
  color: var(--ink-faint);
  margin: 4px 0 10px;
}
/* Boutons « Autres données » (Tour de taille / Ressenti) — variante claire (#237) */
.ia-actions-autres { margin-bottom: 0; }
.ia-btn-alt { background: var(--cream); }
/* Panneau de saisie texte */
.ia-panneau { margin-bottom: 12px; }
.ia-panneau-texte {
  display: flex; flex-direction: column; gap: 10px;
}
.ia-texte-input {
  width: 100%; padding: 0.65rem 0.75rem;
  background: var(--cream); border: 1px solid var(--line);
  border-radius: var(--r-sm); color: var(--ink);
  font-family: 'Spline Sans', sans-serif; font-size: 15px;
  line-height: 1.4; resize: vertical;
  box-sizing: border-box;
}
.ia-texte-input:focus { outline: none; border-color: var(--accent); }
/* Ancien .ia-form conservé pour compatibilité legacy */
.ia-form { display: flex; flex-direction: column; gap: 0.6rem; margin-bottom: 0.75rem; }
.ia-form input {
  width: 100%; padding: 0.55rem 0.7rem;
  background: var(--cream); border: 1px solid var(--line);
  border-radius: var(--r-sm); color: var(--ink);
  font-family: 'Spline Sans', sans-serif; font-size: 15px;
}
.ia-analyser, .analyse-valider {
  padding: 0.7rem; border-radius: var(--r-sm); border: none; font-family: 'Spline Sans', sans-serif;
  font-weight: 600; font-size: 14px;
  background: var(--ink-grad); color: var(--paper);
  min-height: var(--tap); cursor: pointer;
  box-shadow: var(--shadow-lift);
}
.ia-analyser:active, .analyse-valider:active { opacity: .88; }
.analyse-liste { list-style: none; }
.analyse-item {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 0.4rem 0.6rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--line);
}
/* Ligne haut : nom éditable + bouton ✕ (#130) */
.aliment-ligne-haut {
  display: flex; align-items: center; gap: 0.4rem;
  grid-column: 1 / -1;
}
.aliment-nom-label { flex: 1; min-width: 0; }
.aliment-nom-input {
  width: 100%; padding: 0.3rem 0.5rem;
  background: transparent; border: none; border-bottom: 1px solid var(--line);
  color: var(--ink); font-weight: 600;
  font-family: 'Spline Sans', sans-serif; font-size: 14px;
}
.aliment-nom-input:focus { outline: none; border-bottom-color: var(--accent); }
.aliment-suppr {
  flex: 0 0 auto; background: none; border: none; cursor: pointer;
  min-width: 38px; min-height: var(--tap); font-size: 13px;
  color: var(--ink-faint); border-radius: 8px; display: flex;
  align-items: center; justify-content: center;
}
.aliment-suppr:active { background: var(--red-bg); color: var(--red); }
.analyse-item .aliment-qte input {
  width: 4.5rem; padding: 0.35rem 0.5rem;
  background: var(--cream); border: 1px solid var(--line);
  border-radius: 8px; color: var(--ink);
  font-family: 'Spline Sans', sans-serif; font-size: 14px;
  text-align: right;
}
.analyse-item .aliment-macros { grid-column: 1 / -1; color: var(--ink-faint); font-size: 12px; }
.aliment-estime {
  display: inline-block; margin-left: 0.4rem; padding: 0.05rem 0.4rem;
  border-radius: 0.4rem; font-size: 0.65rem; font-weight: 700;
  background: var(--amber-bg); color: var(--amber);
  text-transform: uppercase; border: 1px solid color-mix(in srgb, var(--amber) 25%, transparent);
}
.analyse-totaux { font-weight: 600; margin: 0.5rem 0; color: var(--ink); font-size: 14px; }
.analyse-vide { color: var(--ink-faint); font-size: 14px; }

/* Repas du soir (#241 : carte « Tendance » ancienne supprimée → CSS .tendance-* retiré) */
.soir-cal { color: var(--ink-soft); font-size: 13px; margin-top: 4px; }

/* Navigation jour (doublon intentionnel → margin-bottom uniquement) */
.nutrition-nav { margin-bottom: 14px; }

/* Liste repas */
.repas-liste { list-style: none; }
.repas {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.repas:last-child { border-bottom: none; }
.repas-icone { font-size: 18px; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 11px; background: var(--cream); display: flex; align-items: center; justify-content: center; }
.repas-corps {
  flex: 1; min-width: 0; min-height: var(--tap);
  display: grid;
  grid-template-columns: 3.2rem 1fr auto;
  grid-template-areas: "heure nom cal" "heure slot cal";
  column-gap: 0.5rem; align-items: center;
  background: none; border: none; color: var(--ink);
  font-family: 'Spline Sans', sans-serif; font-size: 14px;
  text-align: left; cursor: pointer; padding: 0;
}
.repas-heure { grid-area: heure; align-self: center; color: var(--ink-faint); font-family: 'Fraunces', serif; font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.repas-nom { grid-area: nom; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.repas-slot { grid-area: slot; color: var(--ink-faint); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.repas-cal { grid-area: cal; align-self: center; font-family: 'Fraunces', serif; font-size: 15px; font-weight: 600; color: var(--ink-soft); padding-left: 0.4rem; }
.repas-actions { flex: 0 0 auto; display: flex; gap: 5px; }
.repas-actions button {
  background: var(--paper); border: 1px solid var(--line); cursor: pointer;
  font-family: 'Spline Sans', sans-serif;
  width: 38px; height: 38px;
  border-radius: 10px; font-size: 14px; color: var(--ink-soft);
  display: flex; align-items: center; justify-content: center;
}
.repas-actions button:active { background: var(--cream); }
.repas-suppr:active { background: var(--red-bg); color: var(--red); }
.repas-vide { color: var(--ink-faint); font-size: 14px; }

/* Favoris */
.favoris-liste { list-style: none; }
.favori {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.3rem 0; border-bottom: 1px solid var(--line);
}
.favori:last-child { border-bottom: none; }
.favori-recharger {
  flex: 1; min-width: 0; min-height: var(--tap); display: flex; align-items: center; gap: 0.5rem;
  background: none; border: none; color: var(--ink);
  font-family: 'Spline Sans', sans-serif; font-size: 14px;
  text-align: left; cursor: pointer; padding: 0;
}
.favori-icone { font-size: 16px; flex: 0 0 auto; color: var(--amber); }
.favori-nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.favori-actions { flex: 0 0 auto; display: flex; gap: 3px; }
.favori-actions button {
  background: none; border: none; cursor: pointer;
  font-family: 'Spline Sans', sans-serif;
  min-width: 38px; min-height: var(--tap); font-size: 14px;
  color: var(--ink-soft); border-radius: 8px;
}
.favori-actions button:active { background: var(--cream); }
.favori-suppr:active { color: var(--red); }
.favoris-vide { color: var(--ink-faint); font-size: 14px; }

/* Cartes slot (#96) — grille 2×2 */
.h2-sub { font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ink-faint); font-size: 10px; }
.slots-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.slot-card {
  border-radius: var(--r-sm); padding: 13px; border: 1px solid;
  display: flex; flex-direction: column; gap: 4px;
  box-shadow: var(--shadow);
}
.slot-card.ok   { background: var(--green-bg); border-color: color-mix(in srgb, var(--green) 28%, transparent); }
.slot-card.mid  { background: var(--amber-bg); border-color: color-mix(in srgb, var(--amber) 28%, transparent); }
.slot-card.over { background: var(--red-bg);   border-color: color-mix(in srgb, var(--red)   28%, transparent); }
.slot-card .nom { font-size: 10px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); font-weight: 600; }
.slot-card .val { font-family: 'Fraunces', serif; font-size: 20px; font-weight: 600; line-height: 1.1; font-variant-numeric: tabular-nums; }
.slot-card.ok   .val { color: var(--green); }
.slot-card.mid  .val { color: var(--amber); }
.slot-card.over .val { color: var(--red); }
.slot-card .macros-slot { font-size: 11px; color: var(--ink-faint); font-variant-numeric: tabular-nums; }

/* Wrapper grille micros — layout 2 lignes de pastilles (#202) */
.micros-rangee {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.micros-ligne {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Tendance 15 jours (#227) ─────────────────────────────────────────────────── */
.nutrition-tendance15j {
  background: var(--card-bg, var(--cream, #FDFAF4));
  border-radius: var(--radius, 16px);
  padding: 16px;
  margin-bottom: 12px;
}
.nutrition-tendance15j h2 {
  font-family: 'Spline Sans', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink-soft, rgba(24,24,15,.5));
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.tendance15j-ligne {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.tendance15j-icone {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  line-height: 1;
}
.tendance15j-direction {
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-weight: 700;
}
.tendance15j-pente {
  font-family: 'Spline Sans', system-ui, sans-serif;
  font-size: 14px;
  color: var(--ink-soft, rgba(24,24,15,.5));
}
.tendance15j-detail {
  font-family: 'Spline Sans', system-ui, sans-serif;
  font-size: 12px;
  color: var(--ink-faint, rgba(24,24,15,.3));
  margin: 0;
}
.tendance-vert   { color: var(--green, #2E6B4F); }
.tendance-rouge  { color: var(--red, #B82C1B); }
.tendance-neutre { color: var(--ink-soft, rgba(24,24,15,.5)); }

/* Cartes Tour de taille + Poids (#227) ─────────────────────────────────────── */
.nutrition-tour-taille,
.nutrition-poids {
  background: var(--card-bg, var(--cream, #FDFAF4));
  border-radius: var(--radius, 16px);
  padding: 16px;
  margin-bottom: 12px;
}
.nutrition-tour-taille h2,
.nutrition-poids h2 {
  font-family: 'Spline Sans', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink-soft, rgba(24,24,15,.5));
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.nutrition-tour-taille .vide,
.nutrition-poids .vide {
  font-size: 13px;
  color: var(--ink-faint, rgba(24,24,15,.3));
  margin: 0;
}

/* Crédits OpenRouter (#143) — ligne compacte discrète */
.nutrition-credits-or {
  margin-top: 8px;
}
.credits-or-ligne {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--ink-faint);
}
.credits-or-label {
  font-weight: 600;
  color: var(--ink-soft);
}
.credits-or-solde {
  font-variant-numeric: tabular-nums;
}
.credits-or-sep {
  color: var(--ink-faint);
}
.credits-or-conso {
  font-variant-numeric: tabular-nums;
}

/* Encart « pas de plan » */
.no-plan {
  text-align: center; padding: 1.4rem 1rem;
  border: 1px dashed var(--line); border-radius: var(--r-sm); background: var(--cream);
}
.no-plan .icone { font-size: 1.6rem; line-height: 1; }
.no-plan p { color: var(--ink-soft); font-size: 13px; margin: 0.5rem 0 0.9rem; }
.no-plan button {
  appearance: none; cursor: pointer; font-family: 'Spline Sans', sans-serif; font-weight: 700;
  background: var(--accent); color: var(--paper); border: none;
  border-radius: var(--r-sm); padding: 0.65rem 1.2rem; font-size: 14px;
}

/* ============================================================
   REFONTE #249 — N1 carte fusionnée · N2 tuiles · N3 overlay
   Réf visuelle figée : labo-refs/n1-v2.png, n2-v2.png, n3-v1.png
   ============================================================ */

/* ——— N1 : carte « Repas du jour » fusionnée (anneau + micros + liste) ——— */
.nutrition-repas-jour { margin-bottom: 18px; }
.nj-carte {
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px 16px 8px;
}
.nj-titre, .nj-liste-titre, .nj-slots-titre {
  font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink-faint); font-family: 'Spline Sans', sans-serif;
}
.nj-liste-titre, .nj-slots-titre { margin: 18px 0 8px; }

/* Total : anneau coloré à gauche, macros réalisé/cible à droite */
.nj-total {
  display: flex; align-items: center; gap: 18px;
  margin: 10px 0 18px;
}
.nj-anneau { position: relative; flex: 0 0 auto; width: 120px; height: 120px; }
.nj-anneau svg { display: block; }
.nj-anneau-centre {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.nj-anneau-cal {
  font-family: 'Fraunces', serif; font-size: 30px; font-weight: 700; line-height: 1;
  font-variant-numeric: tabular-nums;
}
.nj-anneau-cible { font-size: 10px; color: var(--ink-faint); margin-top: 2px; }

/* ── Animations onglet Nutrition (#299, style porté du proto Labo « Anim ») ──
   Rejeu à CHAQUE arrivée d'onglet : rendre() réécrit racine.innerHTML, donc les
   nœuds sont NEUFS à chaque rendu → les keyframes ci-dessous se rejouent toutes
   seules au montage (pas de classe .playing ni de reflow JS à piloter).
   GPU-friendly : stroke-dashoffset / box-shadow / transform+opacity uniquement. */

/* (a) Anneau calorique : l'arc se dévoile de vide (dashoffset = --nj-circ) vers
   la fraction consommée (--nj-target, dérivée serveur). État final = --nj-target. */
.nj-anneau-arc { stroke-dashoffset: var(--nj-target); }
.nj-anneau-arc {
  animation: nutrition-anneau-fill 1.3s cubic-bezier(.5, 0, .2, 1) both;
}
@keyframes nutrition-anneau-fill {
  from { stroke-dashoffset: var(--nj-circ); }
  to   { stroke-dashoffset: var(--nj-target); }
}

/* (b) Halo de célébration : pulse UNIQUEMENT quand le signal serveur est vert
   (data-halo="on"). data-halo="off" → aucun mouvement, halo invisible. */
.nj-halo {
  position: absolute; inset: 0; border-radius: 50%;
  opacity: 0; pointer-events: none;
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--green) 55%, transparent);
}
.nj-halo[data-halo="on"] {
  animation: nutrition-anneau-halo 1.1s ease-out 1.25s both;
}
@keyframes nutrition-anneau-halo {
  0%   { opacity: .9; transform: scale(.96);
         box-shadow: 0 0 0 0  color-mix(in srgb, var(--green) 55%, transparent); }
  70%  { opacity: .5; transform: scale(1.04);
         box-shadow: 0 0 0 16px color-mix(in srgb, var(--green) 0%, transparent); }
  100% { opacity: 0;  transform: scale(1);
         box-shadow: 0 0 0 22px color-mix(in srgb, var(--green) 0%, transparent); }
}

/* (c) Cartes repas en cascade : chaque slot-card glisse depuis le bas, décalée
   par son index (--nj-cascade-i posé en inline). État final = opacité pleine. */
.slot-card {
  opacity: 0; transform: translate3d(0, 12px, 0);
  animation: nutrition-cascade .5s cubic-bezier(.22, 1, .36, 1) both;
  animation-delay: calc(var(--nj-cascade-i, 0) * .09s);
}
@keyframes nutrition-cascade {
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* « Réduire les animations » : état final figé, aucun mouvement (headless force
   via emulateMedia). On annule keyframes + transforms initiaux, l'arc reste à sa
   cible, le halo reste invisible, les cartes restent visibles. */
@media (prefers-reduced-motion: reduce) {
  .nj-anneau-arc, .nj-halo, .nj-halo[data-halo="on"], .slot-card {
    animation: none;
  }
  .nj-anneau-arc { stroke-dashoffset: var(--nj-target); }
  .nj-halo, .nj-halo[data-halo="on"] { opacity: 0; }
  .slot-card { opacity: 1; transform: none; }
}
.nj-macros { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.nj-macro-ligne { display: flex; align-items: baseline; gap: 8px; }
.nj-macro-nom { flex: 1; font-size: 13px; color: var(--ink-soft); }
.nj-macro-val {
  font-family: 'Fraunces', serif; font-size: 20px; font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.nj-macro-cible { font-size: 11px; color: var(--ink-faint); }

/* Liste des repas (lignes denses) */
.nj-vide { color: var(--ink-faint); font-size: 13px; text-align: center; padding: 16px 0; }
.nj-repas {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 0; border-bottom: 1px solid var(--line);
}
.nj-repas:last-child { border-bottom: none; }
.nj-repas-corps {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 12px;
  background: none; border: none; padding: 0; text-align: left; cursor: pointer;
  font-family: 'Spline Sans', sans-serif; color: var(--ink);
}
.nj-repas-heure {
  flex: 0 0 auto; width: 44px; font-family: 'Fraunces', serif; font-size: 13px;
  font-weight: 600; color: var(--ink-faint); font-variant-numeric: tabular-nums;
}
.nj-repas-info { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nj-repas-nom { font-size: 14px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nj-repas-macros { font-size: 11px; color: var(--ink-faint); }
.nj-repas-cal {
  flex: 0 0 auto; font-size: 13px; color: var(--ink-soft);
}
.nj-repas-cal strong { font-family: 'Fraunces', serif; font-size: 19px; font-weight: 700; color: var(--ink); }
.nj-repas-fav, .nj-repas-suppr {
  flex: 0 0 auto; background: none; border: none; cursor: pointer;
  width: 32px; height: 32px; border-radius: 8px; font-size: 16px;
}
.nj-repas-fav { color: var(--amber); }
.nj-repas-suppr { color: var(--ink-faint); font-size: 13px; }
.nj-repas-fav:active, .nj-repas-suppr:active { background: var(--cream); }

/* ——— N2 : tuiles « Ajout données » (rangée de 5 icônes carrées) ——— */
.ia-tuiles {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px;
  margin: 8px 0 4px;
}
.ia-tuile {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  background: var(--paper); border: 1px solid var(--line); border-radius: 14px;
  padding: 12px 4px 8px; cursor: pointer;
  font-family: 'Spline Sans', sans-serif;
  min-height: var(--tap);
}
.ia-tuile:active { background: var(--cream); }
.ia-tuile-icone {
  width: 40px; height: 40px; border-radius: 12px; background: var(--cream);
  display: flex; align-items: center; justify-content: center; font-size: 20px;
}
.ia-tuile-label { font-size: 11px; font-weight: 600; color: var(--ink-soft); }

/* ——— N3 : overlay centré (voile léger, fond visible) ——— */
.nutrition-edit-overlay {
  position: fixed; inset: 0; z-index: 60;
  background: rgba(24,24,15,.32);
  display: flex; align-items: center; justify-content: center;
  padding: 16px;
}
.nutrition-edit-modale {
  width: 100%; max-width: 420px; max-height: 92vh; overflow-y: auto;
  background: var(--paper); border-radius: 20px;
  box-shadow: 0 18px 48px rgba(24,24,15,.28);
  padding: 4px 0 8px;
}
