/* ============================================================
   FOOD INDEX · style.css v3.0
   Crème / Vert foncé / Doré — dense, informatif, premium
   ============================================================ */

:root {
  --creme:       #F7F5EF;
  --creme-dark:  #EEEBE0;
  --blanc:       #FFFFFF;
  --dore:        #C2A25B;
  --dore-fonce:  #A6863F;
  --dore-pale:   #E8D9B5;
  --vert:        #2D6A3F;
  --vert-fonce:  #1A3D26;
  --vert-moyen:  #3D7A50;
  --vert-subtil: #7A9A83;
  --vert-pale:   #EBF2EC;
  --rouge:       #C07050;
  --rouge-pale:  #F5EDE8;

  --ombre-douce: 0 4px 24px rgba(26,61,38,0.07);
  --ombre-carte: 0 2px 12px rgba(26,61,38,0.05);
  --ombre-forte: 0 12px 40px rgba(26,61,38,0.12);

  --radius-xl:   24px;
  --radius-lg:   16px;
  --radius-md:   12px;
  --radius-sm:   8px;
  --radius-xs:   6px;
  --radius-full: 999px;

  --font-serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --font-sans:  'DM Sans', 'Inter', system-ui, sans-serif;

  --tr: 0.18s cubic-bezier(0.4,0,0.2,1);
}

* { margin:0; padding:0; box-sizing:border-box; }

.fi-app {
  background: var(--creme);
  color: var(--vert-fonce);
  font-family: var(--font-sans);
  line-height: 1.5;
  min-height: 60vh;
  -webkit-font-smoothing: antialiased;
}
.fi-app * { box-sizing: border-box; }

.fi-container {
  max-width: 1440px;
  margin: 0 auto;
  padding: 28px 32px 60px;
}

/* ── LOADING ── */
.fi-loading {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; min-height: 300px; gap: 16px;
  color: var(--vert-subtil);
}
.fi-spinner {
  width: 36px; height: 36px;
  border: 3px solid rgba(194,162,91,0.2);
  border-top-color: var(--dore);
  border-radius: 50%;
  animation: fi-spin 0.8s linear infinite;
}
@keyframes fi-spin { to { transform: rotate(360deg); } }

/* ── HEADER ── */
.fi-header {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 16px;
  margin-bottom: 28px; padding-bottom: 24px;
  border-bottom: 1px solid rgba(194,162,91,0.2);
}
.fi-brand h1 {
  font-family: var(--font-serif);
  font-size: 2.6rem; font-weight: 600;
  letter-spacing: -0.5px; color: var(--vert-fonce); line-height: 1.1;
}
.fi-brand h1 span { color: var(--dore); }
.fi-brand small {
  display: block; font-size: 0.68rem; color: var(--vert-subtil);
  text-transform: uppercase; letter-spacing: 2.5px; margin-top: 3px;
}
.fi-badge {
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(194,162,91,0.25);
  border-radius: var(--radius-full);
  padding: 10px 20px; font-size: 0.78rem; font-weight: 500;
  color: var(--vert); box-shadow: var(--ombre-carte);
}

/* ── NAVIGATION ── */
.fi-nav {
  display: flex; gap: 0; margin-bottom: 32px;
  background: rgba(255,255,255,0.6);
  backdrop-filter: blur(16px);
  border-radius: var(--radius-full); padding: 4px;
  border: 1px solid rgba(194,162,91,0.18);
  box-shadow: var(--ombre-douce);
  position: sticky; top: 16px; z-index: 100;
}
.fi-nav-tab {
  flex: 1; text-align: center; padding: 13px 28px;
  border-radius: var(--radius-full); font-weight: 600; font-size: 0.88rem;
  cursor: pointer; transition: all var(--tr);
  color: var(--vert-subtil); border: none; background: transparent;
  font-family: var(--font-sans); white-space: nowrap; letter-spacing: 0.2px;
}
.fi-nav-tab:hover { color: var(--vert); background: rgba(194,162,91,0.07); }
.fi-nav-tab.active {
  background: var(--dore); color: #fff;
  box-shadow: 0 4px 14px rgba(194,162,91,0.40);
}

/* ── PANELS ── */
.fi-panel { display: none; }
.fi-panel.active { display: block; animation: fi-fadeSlide 0.25s ease; }
@keyframes fi-fadeSlide {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── EXPLORER — CONTRÔLES ── */
.fi-controls {
  display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 28px; align-items: center;
}
.fi-search {
  flex: 1; min-width: 260px;
  padding: 13px 20px;
  background: rgba(255,255,255,0.8);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(194,162,91,0.22);
  border-radius: var(--radius-full);
  font-size: 0.88rem; outline: none;
  color: var(--vert-fonce); transition: all var(--tr);
  box-shadow: var(--ombre-carte); font-family: var(--font-sans);
}
.fi-search:focus {
  border-color: var(--dore);
  box-shadow: 0 0 0 3px rgba(194,162,91,0.12), var(--ombre-carte);
}
.fi-tags { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.fi-tag {
  background: rgba(255,255,255,0.7); backdrop-filter: blur(4px);
  border: 1px solid rgba(0,0,0,0.07);
  border-radius: var(--radius-full); padding: 7px 15px;
  font-size: 0.72rem; font-weight: 600; color: var(--vert-subtil);
  cursor: pointer; transition: all var(--tr); white-space: nowrap;
  font-family: var(--font-sans); text-transform: uppercase; letter-spacing: 0.5px;
}
.fi-tag:hover { border-color: var(--dore); color: var(--dore-fonce); background: rgba(194,162,91,0.07); }
.fi-tag.active { background: var(--dore); border-color: var(--dore); color: #fff; font-weight: 700; }

/* ── GRILLE ── */
.fi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: 20px;
}
.fi-empty-grid {
  grid-column: 1/-1; text-align: center; padding: 80px 40px;
  color: var(--vert-subtil); font-style: italic;
}

/* ── CARTE ALIMENT ── */
.fi-card {
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(12px);
  border-radius: var(--radius-lg); padding: 0;
  border: 1px solid rgba(194,162,91,0.15);
  cursor: pointer; transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
  box-shadow: var(--ombre-carte); overflow: hidden;
  display: flex; flex-direction: column;
}
.fi-card:hover {
  transform: translateY(-3px); border-color: var(--dore);
  box-shadow: var(--ombre-forte);
}

/* Card header avec bande colorée */
.fi-card-top {
  display: flex; align-items: center; gap: 14px;
  padding: 18px 20px 14px;
  border-bottom: 1px solid rgba(194,162,91,0.1);
  position: relative;
}
.fi-card-top::before {
  content: '';
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(to bottom, var(--dore), var(--vert));
  border-radius: 0 2px 2px 0;
}
.fi-card-emoji {
  font-size: 2.4rem; width: 52px; height: 52px;
  background: var(--creme-dark); border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(194,162,91,0.2); flex-shrink: 0;
}
.fi-card-info { flex: 1; min-width: 0; }
.fi-card-name {
  font-family: var(--font-serif); font-weight: 600; font-size: 1.15rem;
  color: var(--vert-fonce); line-height: 1.2;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fi-card-cat {
  font-size: 0.68rem; color: var(--vert-subtil);
  text-transform: uppercase; letter-spacing: 0.8px; margin-top: 3px;
}
.fi-card-score {
  font-family: var(--font-serif); font-size: 2.2rem; font-weight: 700;
  color: var(--dore-fonce); text-align: right; line-height: 1; flex-shrink: 0;
}
.fi-card-score small {
  font-size: 0.65rem; font-family: var(--font-sans);
  color: var(--vert-subtil); display: block; font-weight: 400; margin-top: 1px;
}

/* Indicateurs E/D/S */
.fi-card-indicators {
  display: flex; border-bottom: 1px solid rgba(194,162,91,0.08);
  background: var(--creme-dark);
}
.fi-mini-ind {
  flex: 1; text-align: center; padding: 9px 4px;
  border-right: 1px solid rgba(194,162,91,0.1);
}
.fi-mini-ind:last-child { border-right: none; }
.fi-mini-val {
  font-family: var(--font-serif); font-size: 1.05rem; font-weight: 600;
  color: var(--vert-fonce);
}
.fi-mini-label {
  font-size: 0.58rem; color: var(--vert-subtil);
  text-transform: uppercase; letter-spacing: 0.5px; margin-top: 1px;
}

/* Macros sur la carte */
.fi-card-macros {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 0; border-bottom: 1px solid rgba(194,162,91,0.08);
}
.fi-card-macro {
  text-align: center; padding: 8px 4px;
  border-right: 1px solid rgba(194,162,91,0.08);
}
.fi-card-macro:last-child { border-right: none; }
.fi-card-macro-val {
  font-family: var(--font-serif); font-size: 0.95rem; font-weight: 600;
  color: var(--vert);
}
.fi-card-macro-label {
  font-size: 0.55rem; color: var(--vert-subtil);
  text-transform: uppercase; letter-spacing: 0.5px; margin-top: 1px;
}

/* Actions carte */
.fi-card-actions { display: flex; gap: 8px; padding: 12px 16px; margin-top: auto; }

/* ── BOUTONS ── */
.fi-btn {
  flex: 1; padding: 10px 12px; border-radius: var(--radius-full);
  font-weight: 600; font-size: 0.78rem; cursor: pointer; border: none;
  transition: all var(--tr); font-family: var(--font-sans); text-align: center;
}
.fi-btn-primary {
  background: var(--dore); color: #fff;
  box-shadow: 0 2px 8px rgba(194,162,91,0.3);
}
.fi-btn-primary:hover { background: var(--dore-fonce); transform: translateY(-1px); }
.fi-btn-secondary {
  background: rgba(255,255,255,0.8); backdrop-filter: blur(4px);
  border: 1px solid rgba(194,162,91,0.28); color: var(--vert);
}
.fi-btn-secondary:hover { border-color: var(--dore); color: var(--dore-fonce); }
.fi-btn-secondary.in-plate {
  background: var(--vert-pale); border-color: var(--vert);
  color: var(--vert); pointer-events: none;
}
.fi-btn-dark {
  width: 100%; padding: 14px; border-radius: var(--radius-full);
  font-weight: 700; font-size: 0.88rem; cursor: pointer; border: none;
  background: var(--vert-fonce); color: #fff;
  transition: all var(--tr); font-family: var(--font-sans); letter-spacing: 0.3px;
}
.fi-btn-dark:hover:not(:disabled) { background: var(--vert-moyen); }
.fi-btn-dark:disabled { opacity: 0.35; cursor: not-allowed; }

/* ── MA JOURNÉE ── */
.fi-day-layout {
  display: grid; grid-template-columns: 340px 1fr; gap: 20px;
}

.fi-plate-builder,
.fi-plate-results {
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(16px);
  border-radius: var(--radius-xl); padding: 24px;
  border: 1px solid rgba(194,162,91,0.18);
  box-shadow: var(--ombre-douce);
}
.fi-plate-builder h3,
.fi-plate-results h3 {
  font-family: var(--font-serif); font-size: 1.15rem; font-weight: 600;
  margin-bottom: 18px; color: var(--vert-fonce);
  display: flex; align-items: center; gap: 8px;
  padding-bottom: 12px; border-bottom: 1px solid rgba(194,162,91,0.15);
}

/* Items journée */
.fi-day-items {
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 16px; max-height: 340px; overflow-y: auto;
  padding-right: 2px;
}
.fi-day-items::-webkit-scrollbar { width: 3px; }
.fi-day-items::-webkit-scrollbar-track { background: transparent; }
.fi-day-items::-webkit-scrollbar-thumb { background: var(--dore-pale); border-radius: 2px; }

.fi-day-item {
  background: var(--creme-dark);
  border-radius: var(--radius-md); padding: 10px 14px;
  display: flex; justify-content: space-between; align-items: center;
  font-size: 0.85rem; border: 1px solid rgba(194,162,91,0.12); gap: 8px;
}
.fi-day-item-name { flex: 1; font-weight: 500; color: var(--vert-fonce); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fi-gram-input {
  width: 64px; padding: 5px 8px;
  border: 1px solid rgba(194,162,91,0.3); border-radius: var(--radius-sm);
  font-size: 0.8rem; text-align: center; font-family: var(--font-sans);
  background: rgba(255,255,255,0.9); outline: none; color: var(--vert-fonce);
}
.fi-gram-input:focus { border-color: var(--dore); }
.fi-remove-btn {
  background: none; border: none; cursor: pointer;
  color: var(--vert-subtil); font-size: 1rem; padding: 3px 6px;
  border-radius: 50%; transition: all var(--tr); flex-shrink: 0;
}
.fi-remove-btn:hover { color: var(--rouge); background: var(--rouge-pale); }
.fi-empty-msg {
  text-align: center; color: var(--vert-subtil); padding: 32px 20px;
  font-style: italic; line-height: 1.7; font-size: 0.88rem;
}
.fi-btn-row { display: flex; gap: 8px; margin-top: 12px; margin-bottom: 10px; }

/* ── RÉSULTATS JOURNÉE ── */
.fi-plate-results { min-height: 400px; display: flex; flex-direction: column; }
.fi-results-placeholder {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; flex: 1; color: var(--vert-subtil); gap: 12px; text-align: center;
}
.fi-results-placeholder-icon { font-size: 3rem; opacity: 0.12; }

/* Grille analyse résultats */
.fi-analysis { display: flex; flex-direction: column; gap: 16px; }

/* Scores en haut */
.fi-analysis-scores {
  display: grid; grid-template-columns: repeat(3,1fr); gap: 10px;
}
.fi-analysis-score-box {
  background: var(--vert-fonce); border-radius: var(--radius-md);
  padding: 14px 10px; text-align: center;
}
.fi-analysis-score-val {
  font-family: var(--font-serif); font-size: 2rem; font-weight: 300;
  color: var(--dore); line-height: 1;
}
.fi-analysis-score-label {
  font-size: 0.58rem; text-transform: uppercase; letter-spacing: 1.2px;
  color: rgba(255,255,255,0.45); margin-top: 4px;
}

/* Macros analyse */
.fi-analysis-macro {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 8px;
}
.fi-macro-box {
  background: rgba(255,255,255,0.6); border: 1px solid rgba(194,162,91,0.15);
  border-radius: var(--radius-sm); padding: 11px 6px; text-align: center;
}
.fi-macro-val {
  font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; color: var(--vert);
}
.fi-macro-label {
  font-size: 0.58rem; text-transform: uppercase; color: var(--vert-subtil); margin-top: 2px;
}
.fi-analysis-detail {
  font-size: 0.82rem; color: var(--vert-fonce); line-height: 1.8;
  padding: 12px 14px; background: var(--creme-dark); border-radius: var(--radius-sm);
  border-left: 3px solid var(--dore);
}
.fi-analysis-detail strong { color: var(--vert); }

/* ── MODALE ── */
.fi-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(20,40,28,0.70); backdrop-filter: blur(8px);
  z-index: 10000; justify-content: center; align-items: flex-start;
  padding: 32px 20px; overflow-y: auto;
}
.fi-overlay.open { display: flex; }

.fi-modal {
  background: rgba(255,255,255,0.92); backdrop-filter: blur(24px);
  border-radius: var(--radius-xl); width: 100%; max-width: 700px;
  overflow: hidden; animation: fi-modalIn 0.3s cubic-bezier(0.4,0,0.2,1);
  box-shadow: 0 32px 64px rgba(0,0,0,0.18);
  border: 1px solid rgba(194,162,91,0.25); margin: auto; position: relative;
}
@keyframes fi-modalIn {
  from { opacity: 0; transform: translateY(24px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.fi-modal-close {
  position: absolute; top: 18px; right: 18px;
  width: 38px; height: 38px;
  background: rgba(255,255,255,0.15); backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,0.25); border-radius: 50%;
  color: #fff; font-size: 1.2rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.18s; z-index: 10;
}
.fi-modal-close:hover { background: rgba(255,255,255,0.35); }

/* Hero modale */
.fi-modal-hero {
  background: linear-gradient(135deg, var(--vert-fonce) 0%, #234d33 60%, #1a4228 100%);
  padding: 36px 32px 28px; position: relative; color: #fff; overflow: hidden;
}
.fi-modal-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 50%, rgba(194,162,91,0.12), transparent 60%);
  pointer-events: none;
}
.fi-modal-hero::after {
  content: ''; position: absolute; right: -40px; top: -40px;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(194,162,91,0.08), transparent 70%);
  pointer-events: none;
}
.fi-modal-hero-top {
  display: flex; gap: 16px; align-items: center;
  margin-bottom: 20px; position: relative; z-index: 1;
}
.fi-modal-emoji {
  font-size: 2.8rem; width: 66px; height: 66px;
  background: rgba(255,255,255,0.08); border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(255,255,255,0.14); flex-shrink: 0;
}
.fi-modal-name {
  font-family: var(--font-serif); font-size: 1.9rem; font-weight: 600; line-height: 1.2;
}
.fi-modal-cat {
  font-size: 0.68rem; color: rgba(255,255,255,0.45);
  text-transform: uppercase; letter-spacing: 1.5px; margin-top: 4px;
}
.fi-modal-score {
  font-family: var(--font-serif); font-size: 4.5rem; font-weight: 300;
  color: var(--dore); line-height: 1; position: relative; z-index: 1;
}
.fi-modal-score span { font-size: 22px; opacity: 0.3; }
.fi-modal-score-label {
  font-size: 0.65rem; color: rgba(255,255,255,0.4);
  letter-spacing: 1.2px; margin-top: 2px; position: relative; z-index: 1;
}
.fi-modal-inds {
  display: flex; gap: 10px; margin-top: 20px; position: relative; z-index: 1;
}
.fi-modal-ind {
  flex: 1; background: rgba(255,255,255,0.06); border-radius: 10px;
  padding: 12px 8px; text-align: center; border: 1px solid rgba(255,255,255,0.08);
}
.fi-modal-ind-val {
  font-family: var(--font-serif); font-size: 1.7rem; font-weight: 500; color: var(--dore);
}
.fi-modal-ind-label {
  font-size: 0.58rem; text-transform: uppercase; letter-spacing: 1px;
  color: rgba(255,255,255,0.38); margin-top: 3px;
}

/* Corps modale */
.fi-modal-body { padding: 28px 32px; }
.fi-section-label {
  font-size: 0.65rem; text-transform: uppercase; letter-spacing: 2.5px;
  color: var(--dore-fonce); font-weight: 700; margin-bottom: 12px;
  display: flex; align-items: center; gap: 10px;
}
.fi-section-label::after { content: ''; flex: 1; height: 1px; background: rgba(194,162,91,0.25); }

.fi-resume-box {
  background: var(--creme-dark); border-left: 3px solid var(--dore);
  border-radius: var(--radius-sm); padding: 14px 18px;
  font-size: 0.88rem; line-height: 1.75; color: var(--vert-fonce);
  margin-bottom: 24px;
}

/* Valeurs nutritionnelles — 4 colonnes */
.fi-valeurs-grid {
  display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-bottom: 24px;
}
.fi-val-box {
  background: rgba(255,255,255,0.6); border-radius: var(--radius-sm);
  padding: 13px 8px; text-align: center;
  border: 1px solid rgba(194,162,91,0.15);
}
.fi-val-num {
  font-family: var(--font-serif); font-size: 1.5rem; font-weight: 700; color: var(--vert);
}
.fi-val-label {
  font-size: 0.58rem; text-transform: uppercase; color: var(--vert-subtil);
  letter-spacing: 1px; margin-top: 3px;
}

/* Critères accordéon */
.fi-criteres { display: flex; flex-direction: column; gap: 8px; margin-bottom: 24px; }
.fi-critere {
  border: 1px solid rgba(194,162,91,0.2); border-radius: var(--radius-md);
  overflow: hidden; background: rgba(255,255,255,0.5);
  transition: border-color 0.18s;
}
.fi-critere.open { border-color: var(--dore); }
.fi-critere-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 13px 16px; cursor: pointer; user-select: none;
  background: var(--creme-dark); transition: background 0.15s;
}
.fi-critere-header:hover { background: var(--creme); }
.fi-critere.open .fi-critere-header { background: rgba(194,162,91,0.06); }
.fi-critere-name {
  font-size: 0.75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.8px; color: var(--vert-fonce); flex: 1;
}
.fi-critere-right { display: flex; align-items: center; gap: 10px; }
.fi-mini-bar {
  width: 72px; height: 4px; background: rgba(0,0,0,0.07);
  border-radius: 4px; overflow: hidden;
}
.fi-mini-bar-fill {
  height: 100%; border-radius: 4px;
  background: linear-gradient(90deg, var(--vert), var(--dore));
  transition: width 0.5s ease;
}
.fi-critere-note {
  font-family: var(--font-serif); font-size: 1.4rem; font-weight: 600;
  color: var(--vert-fonce); min-width: 26px; text-align: right;
}
.fi-critere-toggle {
  font-size: 1.3rem; color: var(--dore); font-weight: 300;
  transition: transform 0.3s; width: 22px; text-align: center;
}
.fi-critere.open .fi-critere-toggle { transform: rotate(45deg); }
.fi-critere-body { max-height: 0; overflow: hidden; transition: max-height 0.4s ease; }
.fi-critere.open .fi-critere-body {
  max-height: 600px; padding: 14px 16px;
  border-top: 1px solid rgba(194,162,91,0.15);
}
.fi-critere-explication {
  font-size: 0.84rem; line-height: 1.7; color: var(--vert-fonce);
  font-style: italic; margin-bottom: 10px;
}
.fi-critere-args { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.fi-critere-args li {
  font-size: 0.83rem; color: var(--vert-fonce); padding-left: 14px;
  position: relative; line-height: 1.6;
}
.fi-critere-args li::before {
  content: '·'; position: absolute; left: 0; color: var(--dore); font-size: 1.2rem; top: -3px;
}

/* Points forts/faibles */
.fi-points-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 24px;
}
.fi-points-box { border-radius: var(--radius-md); padding: 14px 16px; }
.fi-points-box.forts { background: rgba(45,106,63,0.05); border: 1px solid rgba(45,106,63,0.25); }
.fi-points-box.faibles { background: rgba(192,112,80,0.05); border: 1px solid rgba(192,112,80,0.25); }
.fi-points-title {
  font-size: 0.62rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.2px; margin-bottom: 10px;
}
.fi-points-box.forts .fi-points-title { color: var(--vert); }
.fi-points-box.faibles .fi-points-title { color: var(--rouge); }
.fi-points-list { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.fi-points-list li {
  font-size: 0.8rem; color: var(--vert-fonce); padding-left: 16px;
  position: relative; line-height: 1.5;
}
.fi-points-box.forts .fi-points-list li::before {
  content: '✓'; position: absolute; left: 0; color: var(--vert); font-weight: 700; font-size: 0.75rem;
}
.fi-points-box.faibles .fi-points-list li::before {
  content: '△'; position: absolute; left: 0; color: var(--rouge); font-size: 0.75rem;
}

/* Premium gate */
.fi-premium-section { position: relative; margin-bottom: 24px; }
.fi-premium-content { filter: blur(5px); pointer-events: none; user-select: none; opacity: 0.5; padding: 6px; }
.fi-premium-gate {
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: rgba(247,245,239,0.80); backdrop-filter: blur(6px);
  border-radius: var(--radius-md); border: 1px solid var(--dore);
  gap: 10px; z-index: 2; padding: 20px; text-align: center;
}
.fi-premium-gate-icon { font-size: 1.8rem; }
.fi-premium-gate-title {
  font-family: var(--font-serif); font-size: 1.25rem; font-weight: 600; color: var(--vert-fonce);
}
.fi-premium-gate-text { font-size: 0.78rem; color: var(--vert-subtil); line-height: 1.5; }
.fi-btn-premium {
  padding: 10px 26px; background: var(--vert-fonce); color: #fff; border: none;
  border-radius: var(--radius-full); font-size: 0.78rem; font-weight: 600;
  cursor: pointer; font-family: var(--font-sans); margin-top: 4px; transition: background var(--tr);
  text-decoration: none; display: inline-block;
}
.fi-btn-premium:hover { background: var(--vert-moyen); }

/* Footer modale */
.fi-modal-footer { padding: 0 32px 28px; }
.fi-btn-add-plate {
  width: 100%; padding: 14px; background: var(--dore); color: #fff; border: none;
  border-radius: var(--radius-full); font-family: var(--font-sans);
  font-size: 0.88rem; font-weight: 600; cursor: pointer; transition: all var(--tr);
  letter-spacing: 0.2px;
}
.fi-btn-add-plate:hover { background: var(--dore-fonce); }
.fi-btn-add-plate.added { background: var(--vert); }

/* ── RESPONSIVE ── */
@media (max-width: 960px) {
  .fi-container { padding: 16px 16px 48px; }
  .fi-day-layout { grid-template-columns: 1fr; }
  .fi-grid { grid-template-columns: 1fr; }
  .fi-points-grid { grid-template-columns: 1fr; }
  .fi-modal-body { padding: 22px 20px; }
  .fi-modal-footer { padding: 0 20px 24px; }
  .fi-modal-hero { padding: 28px 20px 22px; }
  .fi-valeurs-grid { grid-template-columns: repeat(2,1fr); }
  .fi-analysis-macro { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px) {
  .fi-nav-tab { padding: 11px 12px; font-size: 0.8rem; }
  .fi-card-macros { grid-template-columns: repeat(2,1fr); }
  .fi-valeurs-grid { grid-template-columns: repeat(2,1fr); }
  .fi-modal-score { font-size: 3.5rem; }
  .fi-brand h1 { font-size: 2rem; }
}

/* ── MICRONUTRIMENTS ── */
.fi-micro-section {
  margin-top: 20px;
  border-top: 1px solid rgba(194,162,91,0.2);
  padding-top: 20px;
}
.fi-micro-section-title {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--vert-fonce);
  margin-bottom: 16px;
  letter-spacing: -0.2px;
}
.fi-micro-famille {
  margin-bottom: 20px;
  background: rgba(255,255,255,0.6);
  border: 1px solid rgba(194,162,91,0.15);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.fi-micro-famille-header {
  background: var(--vert-fonce);
  color: var(--dore);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  padding: 10px 16px;
}
.fi-micro-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.fi-micro-row {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(194,162,91,0.08);
}
.fi-micro-row:last-child { border-bottom: none; }
.fi-micro-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.fi-micro-nom {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--vert-fonce);
  flex: 1;
}
.fi-micro-pct {
  font-family: var(--font-serif);
  font-size: 1.1rem;
  font-weight: 700;
  min-width: 44px;
  text-align: right;
}
.fi-micro-note {
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  padding: 3px 8px;
  border-radius: var(--radius-full);
  white-space: nowrap;
}
.fi-micro-bars {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-bottom: 4px;
}
.fi-micro-bar-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fi-micro-bar-label {
  font-size: 0.58rem;
  color: var(--vert-subtil);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  min-width: 44px;
}
.fi-micro-bar-track {
  flex: 1;
  height: 8px;
  background: rgba(0,0,0,0.06);
  border-radius: 4px;
  overflow: visible;
  position: relative;
}
.fi-micro-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.6s cubic-bezier(0.4,0,0.2,1);
  position: relative;
}
.fi-micro-bar-overflow {
  position: absolute;
  right: -8px;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--dore);
}
.fi-micro-bar-val {
  font-size: 0.68rem;
  color: var(--vert-subtil);
  min-width: 52px;
  text-align: right;
  font-weight: 500;
}
.fi-micro-ajr {
  font-size: 0.6rem;
  color: rgba(122,154,131,0.7);
  margin-top: 3px;
}

/* ── SUGGESTIONS NUTRIMENTS ── */
.fi-micro-suggestions {
  margin-top: 20px;
  background: linear-gradient(135deg, rgba(26,61,38,0.04), rgba(194,162,91,0.06));
  border: 1px solid rgba(194,162,91,0.25);
  border-radius: var(--radius-md);
  padding: 18px;
}
.fi-micro-suggestions-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--vert-fonce);
  margin-bottom: 12px;
  letter-spacing: 0.2px;
}
.fi-micro-suggestions-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fi-suggestion-btn {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  background: white;
  border: 1px solid rgba(192,112,80,0.3);
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--vert-fonce);
  cursor: pointer;
  font-family: var(--font-sans);
  transition: all var(--tr);
  text-align: left;
}
.fi-suggestion-btn:hover {
  background: rgba(192,112,80,0.06);
  border-color: var(--rouge);
  transform: translateX(3px);
}
.fi-suggestion-btn span {
  font-family: var(--font-serif);
  font-size: 1rem;
  color: var(--rouge);
  font-weight: 600;
}
.fi-micro-warning {
  font-size: 0.72rem;
  color: #C4793A;
  background: rgba(196,121,58,0.08);
  border-radius: var(--radius-xs);
  padding: 5px 10px;
  margin: 4px 0;
  border-left: 2px solid #C4793A;
}

/* ── BANNER FILTRE NUTRIMENT ── */
.fi-nutriment-banner {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: linear-gradient(135deg, var(--vert-fonce), var(--vert));
  color: white;
  padding: 14px 20px;
  border-radius: var(--radius-md);
  font-size: 0.88rem;
  margin-bottom: 4px;
}
.fi-nutriment-banner strong { color: var(--dore); }
.fi-reset-btn {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: white;
  padding: 7px 14px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-sans);
  transition: background var(--tr);
}
.fi-reset-btn:hover { background: rgba(255,255,255,0.22); }

/* ── ANTINUTRIMENTS DISCLAIMER ── */
.fi-anti-warning {
  margin-top: 4px;
  padding: 4px 8px;
  background: rgba(184,117,58,0.07);
  border-radius: 4px;
  border-left: 2px solid rgba(184,117,58,0.4);
  line-height: 1.5;
}

/* ── PROFIL BADGE dans Ma journée ── */
.fi-profil-badge {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 14px;
  background: rgba(194,162,91,0.08);
  border: 1px solid rgba(194,162,91,0.2);
  border-radius: var(--radius-sm);
  margin-bottom: 14px;
  font-size: 0.75rem;
  color: var(--vert-subtil);
}
.fi-profil-badge strong { color: var(--vert-fonce); }
.fi-profil-change {
  font-size: 0.68rem;
  color: var(--dore-fonce);
  cursor: pointer;
  text-decoration: underline;
  background: none;
  border: none;
  font-family: var(--font-sans);
  padding: 0;
}

/* ── CURSEUR — OVERRIDE ELEMENTOR/THEME ── */
#fi-app button,
#fi-app a,
#fi-app [onclick],
#fi-app .fi-card,
#fi-app .fi-tag,
#fi-app .fi-nav-tab,
#fi-app .fi-btn,
#fi-app .fi-btn-dark,
#fi-app .fi-btn-add-plate,
#fi-app .fi-btn-premium,
#fi-app .fi-suggestion-btn,
#fi-app .fi-reset-btn,
#fi-app .fi-profil-change,
#fi-app .fi-remove-btn,
#fi-app .fi-critere-header,
#fi-app .fi-modal-close,
#fi-app [data-fi-action] {
  cursor: pointer !important;
}
/* ============================================================
   FOOD INDEX · ADDITIONS v4.0
   Onglet Ma Journée — redesign complet
   Ajouter à la fin du style.css existant
   ============================================================ */

/* ── PLATE EMPTY ── */
.fi-plate-empty {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 40px 24px; gap: 10px; text-align: center;
}
.fi-plate-empty-icon { font-size: 2.8rem; margin-bottom: 4px; }
.fi-plate-empty-title {
  font-family: var(--font-serif); font-size: 1.1rem; font-weight: 600;
  color: var(--vert-fonce);
}
.fi-plate-empty-sub {
  font-size: 0.8rem; color: var(--vert-subtil); line-height: 1.6; max-width: 240px;
}

/* ── SUMMARY BAR ── */
.fi-plate-summary-bar {
  display: flex; align-items: center; gap: 12px;
  background: var(--vert-fonce); border-radius: 12px;
  padding: 12px 16px; margin-bottom: 10px;
}
.fi-plate-summary-kcal { display: flex; align-items: baseline; gap: 3px; flex-shrink: 0; }
.fi-plate-summary-num {
  font-family: var(--font-serif); font-size: 1.6rem; font-weight: 600; color: var(--dore);
}
.fi-plate-summary-unit { font-size: 0.7rem; color: rgba(255,255,255,0.45); }
.fi-plate-summary-pct-wrap { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.fi-plate-summary-pct-bar {
  height: 4px; background: rgba(255,255,255,0.12); border-radius: 2px; overflow: hidden;
}
.fi-plate-summary-pct-fill { height: 100%; border-radius: 2px; transition: width 0.4s; }
.fi-plate-summary-pct-label { font-size: 0.62rem; color: rgba(255,255,255,0.45); }
.fi-plate-count {
  font-size: 0.68rem; font-weight: 700; color: rgba(255,255,255,0.4);
  text-transform: uppercase; letter-spacing: 0.8px; flex-shrink: 0;
}

/* ── DAY ITEMS REDESIGN ── */
.fi-day-item {
  background: rgba(255,255,255,0.8);
  border-radius: 12px; padding: 10px 14px;
  display: flex; justify-content: space-between; align-items: center;
  border: 1px solid rgba(194,162,91,0.15); gap: 10px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.fi-day-item:hover { border-color: rgba(194,162,91,0.35); box-shadow: 0 2px 8px rgba(26,61,38,0.06); }
.fi-day-item-left { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.fi-day-item-emoji { font-size: 1.5rem; flex-shrink: 0; }
.fi-day-item-info { flex: 1; min-width: 0; }
.fi-day-item-name {
  font-size: 0.85rem; font-weight: 600; color: var(--vert-fonce);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fi-day-item-meta { font-size: 0.68rem; color: var(--vert-subtil); margin-top: 1px; }
.fi-day-item-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.fi-gram-wrap { display: flex; align-items: center; gap: 4px; }
.fi-gram-input {
  width: 58px; padding: 6px 8px; border: 1.5px solid rgba(194,162,91,0.3);
  border-radius: 8px; font-size: 0.85rem; font-weight: 600;
  text-align: center; font-family: var(--font-sans);
  background: rgba(255,255,255,0.9); outline: none; color: var(--vert-fonce);
  transition: border-color 0.15s;
}
.fi-gram-input:focus { border-color: var(--dore); }
.fi-gram-unit { font-size: 0.72rem; color: var(--vert-subtil); font-weight: 500; }

/* ── BOUTON ANALYSE ── */
.fi-btn-dark {
  margin-top: 14px; position: relative; overflow: hidden;
}
.fi-btn-dark::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(194,162,91,0.15) 100%);
  opacity: 0; transition: opacity 0.2s;
}
.fi-btn-dark:hover:not(:disabled)::before { opacity: 1; }

/* ── RÉSULTATS VIDES ── */
.fi-results-empty {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; padding: 60px 32px; gap: 12px; text-align: center;
  height: 100%; min-height: 300px;
}
.fi-results-empty-icon { font-size: 3rem; opacity: 0.15; }
.fi-results-empty-title {
  font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; color: var(--vert-fonce);
}
.fi-results-empty-sub { font-size: 0.8rem; color: var(--vert-subtil); line-height: 1.6; max-width: 260px; }

/* ── ANALYSE WRAPPER ── */
.fi-analysis-wrap { display: flex; flex-direction: column; gap: 14px; }

/* ── HERO SCORE ── */
.fi-score-hero {
  border-radius: 18px; padding: 24px 22px;
  display: flex; gap: 20px; align-items: center;
  box-shadow: 0 8px 24px rgba(26,61,38,0.18);
}
.fi-score-hero-left { flex-shrink: 0; text-align: center; }
.fi-score-hero-num {
  font-family: var(--font-serif); font-size: 5.5rem; font-weight: 300;
  color: rgba(255,255,255,0.95); line-height: 1;
  text-shadow: 0 2px 12px rgba(0,0,0,0.15);
}
.fi-score-hero-label {
  font-size: 0.62rem; text-transform: uppercase; letter-spacing: 1.5px;
  color: rgba(255,255,255,0.5); margin-top: 4px; line-height: 1.5;
}
.fi-score-hero-label span { font-size: 0.72rem; color: rgba(255,255,255,0.35); }
.fi-score-hero-right { flex: 1; display: flex; flex-direction: column; gap: 12px; }
.fi-score-ind { display: flex; align-items: center; gap: 10px; }
.fi-score-ind-bar {
  flex: 1; height: 4px; background: rgba(255,255,255,0.12);
  border-radius: 2px; overflow: hidden;
}
.fi-score-ind-fill {
  height: 100%; border-radius: 2px;
  background: rgba(255,255,255,0.6); transition: width 0.6s ease;
}
.fi-score-ind-val {
  font-family: var(--font-serif); font-size: 1.25rem; font-weight: 500;
  color: rgba(255,255,255,0.9); min-width: 28px; text-align: right;
}
.fi-score-ind-name {
  font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px;
  color: rgba(255,255,255,0.4); min-width: 52px;
}

/* ── SECTIONS ── */
.fi-section-block {
  background: rgba(255,255,255,0.75); border: 1px solid rgba(194,162,91,0.15);
  border-radius: 16px; padding: 18px 20px;
}
.fi-block-title {
  font-size: 0.7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.8px; color: var(--dore-fonce); margin-bottom: 14px;
  display: flex; align-items: center; gap: 8px;
}
.fi-block-title-sub {
  font-size: 0.62rem; font-weight: 400; text-transform: none;
  letter-spacing: 0; color: var(--vert-subtil);
}

/* ── FOODS RECAP ── */
.fi-foods-recap { display: flex; flex-direction: column; gap: 6px; }
.fi-food-recap-row {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px; background: var(--creme-dark);
  border-radius: 9px; font-size: 0.82rem;
}
.fi-food-recap-emoji { font-size: 1.2rem; flex-shrink: 0; width: 24px; text-align: center; }
.fi-food-recap-name { flex: 1; font-weight: 500; color: var(--vert-fonce); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fi-food-recap-g { color: var(--vert-subtil); font-size: 0.75rem; flex-shrink: 0; min-width: 38px; text-align: right; }
.fi-food-recap-kcal { color: var(--vert-subtil); font-size: 0.75rem; flex-shrink: 0; min-width: 56px; text-align: right; }
.fi-food-recap-score { font-family: var(--font-serif); font-size: 1.05rem; font-weight: 700; flex-shrink: 0; min-width: 28px; text-align: right; }

/* ── MACROS ── */
.fi-macros-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-bottom: 14px; }
.fi-macro-card {
  text-align: center; padding: 14px 8px;
  background: var(--creme-dark); border-radius: 10px;
  border: 1px solid rgba(194,162,91,0.1);
}
.fi-macro-card.fi-macro-kcal { background: var(--vert-fonce); }
.fi-macro-card.fi-macro-kcal .fi-macro-card-val { color: var(--dore); }
.fi-macro-card.fi-macro-kcal .fi-macro-card-unit,
.fi-macro-card.fi-macro-kcal .fi-macro-card-pct { color: rgba(255,255,255,0.4); }
.fi-macro-card-val {
  font-family: var(--font-serif); font-size: 1.7rem; font-weight: 600;
  color: var(--vert); line-height: 1;
}
.fi-macro-card-unit { font-size: 0.6rem; text-transform: uppercase; color: var(--vert-subtil); letter-spacing: 0.8px; margin-top: 3px; }
.fi-macro-card-pct { font-size: 0.65rem; color: var(--dore-fonce); margin-top: 4px; font-weight: 600; }

.fi-macro-bar-wrap { margin-bottom: 12px; }
.fi-macro-bar-track { display: flex; height: 8px; border-radius: 4px; overflow: hidden; margin-bottom: 8px; }
.fi-macro-bar-seg { transition: width 0.5s ease; }
.fi-macro-bar-legend {
  display: flex; gap: 14px; font-size: 0.7rem; color: var(--vert-subtil); align-items: center; flex-wrap: wrap;
}
.fi-macro-bar-legend span { display: flex; align-items: center; gap: 5px; }
.fi-macro-bar-legend i {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}

.fi-extra-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.fi-extra-stat {
  text-align: center; padding: 10px 6px;
  background: rgba(255,255,255,0.5); border: 1px solid rgba(194,162,91,0.12);
  border-radius: 8px;
}
.fi-extra-stat-val {
  font-family: var(--font-serif); font-size: 1.2rem; font-weight: 600; color: var(--vert-fonce);
}
.fi-extra-stat-label { font-size: 0.58rem; text-transform: uppercase; color: var(--vert-subtil); letter-spacing: 0.5px; margin-top: 2px; }

/* ── MICRONUTRIMENTS ── */
.fi-micros-container { display: flex; flex-direction: column; gap: 12px; }
.fi-micro-group { background: var(--creme-dark); border-radius: 10px; overflow: hidden; }
.fi-micro-group-header {
  font-size: 0.62rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.8px; color: var(--dore-fonce);
  padding: 8px 14px; background: rgba(194,162,91,0.1);
  border-bottom: 1px solid rgba(194,162,91,0.12);
}
.fi-micro-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px; border-bottom: 1px solid rgba(194,162,91,0.06);
}
.fi-micro-item:last-child { border-bottom: none; }
.fi-micro-item-name { font-size: 0.78rem; font-weight: 500; color: var(--vert-fonce); min-width: 120px; flex-shrink: 0; }
.fi-micro-item-bar-wrap { flex: 1; height: 5px; background: rgba(0,0,0,0.07); border-radius: 3px; overflow: hidden; }
.fi-micro-item-bar { width: 100%; height: 100%; }
.fi-micro-item-bar-fill { height: 100%; border-radius: 3px; transition: width 0.5s ease; }
.fi-micro-item-pct { font-size: 0.78rem; font-weight: 700; min-width: 40px; text-align: right; }
.fi-micro-item-label {
  font-size: 0.6rem; font-weight: 700; padding: 3px 7px;
  border-radius: 99px; min-width: 52px; text-align: center;
  text-transform: uppercase; letter-spacing: 0.3px;
}

/* ── MICRO CTA ── */
.fi-micro-cta {
  background: linear-gradient(135deg,rgba(192,112,80,0.06),rgba(192,112,80,0.02));
  border: 1px solid rgba(192,112,80,0.2); border-radius: 10px; padding: 14px 16px;
}
.fi-micro-cta-title {
  font-size: 0.75rem; font-weight: 700; color: var(--rouge); margin-bottom: 10px;
}
.fi-micro-cta-list { display: flex; flex-direction: column; gap: 6px; }
.fi-micro-cta-item {
  display: flex; justify-content: space-between; align-items: center;
  font-size: 0.78rem; color: var(--vert-fonce);
  padding: 6px 10px; background: rgba(255,255,255,0.6); border-radius: 6px;
}
.fi-micro-cta-pct { font-weight: 700; color: var(--rouge); font-family: var(--font-serif); font-size: 0.9rem; }

/* ── GATE PAYANT ── */
.fi-gate-wrap {
  display: flex; flex-direction: column; gap: 20px;
  padding: 8px 4px;
}
.fi-gate-top { text-align: center; padding: 12px 0 4px; }
.fi-gate-icon { font-size: 2.8rem; margin-bottom: 10px; }
.fi-gate-title {
  font-family: var(--font-serif); font-size: 1.6rem; font-weight: 600;
  color: var(--vert-fonce); margin-bottom: 8px;
}
.fi-gate-subtitle { font-size: 0.82rem; color: var(--vert-subtil); line-height: 1.65; max-width: 340px; margin: 0 auto; }

.fi-gate-features {
  background: var(--creme-dark); border-radius: 12px; padding: 16px 18px;
  display: flex; flex-direction: column; gap: 8px;
  border: 1px solid rgba(194,162,91,0.15);
}
.fi-gate-feature {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 0.82rem; color: var(--vert-fonce); line-height: 1.5;
}
.fi-gate-feature span { flex: 1; }

/* Plans tarifaires */
.fi-gate-plans {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
}
.fi-gate-plan {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  padding: 18px 14px; border-radius: 16px; text-decoration: none;
  transition: all 0.2s; cursor: pointer; position: relative;
  text-align: center;
}
.fi-gate-plan-monthly {
  background: rgba(255,255,255,0.8); border: 1.5px solid rgba(194,162,91,0.3);
}
.fi-gate-plan-monthly:hover { border-color: var(--dore); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(194,162,91,0.15); }
.fi-gate-plan-annual {
  background: var(--vert-fonce); border: 1.5px solid var(--vert-fonce);
  box-shadow: 0 8px 24px rgba(26,61,38,0.25);
}
.fi-gate-plan-annual:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(26,61,38,0.3); }

.fi-gate-plan-badge {
  position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  background: var(--dore); color: #fff; font-size: 0.58rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 1px; padding: 3px 10px;
  border-radius: 99px; white-space: nowrap;
}
.fi-gate-plan-name {
  font-size: 0.65rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 1.5px; margin-top: 6px;
}
.fi-gate-plan-monthly .fi-gate-plan-name { color: var(--vert-subtil); }
.fi-gate-plan-annual  .fi-gate-plan-name { color: rgba(255,255,255,0.5); }

.fi-gate-plan-price {
  font-family: var(--font-serif); font-size: 2rem; font-weight: 600; line-height: 1.1;
}
.fi-gate-plan-price span { font-size: 0.75rem; font-weight: 400; }
.fi-gate-plan-monthly .fi-gate-plan-price       { color: var(--vert-fonce); }
.fi-gate-plan-monthly .fi-gate-plan-price span  { color: var(--vert-subtil); }
.fi-gate-plan-annual  .fi-gate-plan-price       { color: var(--dore); }
.fi-gate-plan-annual  .fi-gate-plan-price span  { color: rgba(255,255,255,0.45); }

.fi-gate-plan-save {
  font-size: 0.68rem; color: rgba(194,162,91,0.8); font-weight: 600; margin-bottom: 2px;
}
.fi-gate-plan-cta {
  font-size: 0.72rem; font-weight: 700; padding: 6px 14px;
  border-radius: 99px; margin-top: 6px; letter-spacing: 0.3px;
}
.fi-gate-plan-monthly .fi-gate-plan-cta { background: var(--dore); color: #fff; }
.fi-gate-plan-annual  .fi-gate-plan-cta { background: rgba(255,255,255,0.12); color: rgba(255,255,255,0.8); border: 1px solid rgba(255,255,255,0.2); }

.fi-gate-note {
  text-align: center; font-size: 0.68rem; color: var(--vert-subtil);
}

/* ── PREMIUM BUTTONS UPDATE ── */
.fi-btn-premium-year {
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.8);
}
.fi-btn-premium-year:hover { background: rgba(255,255,255,0.2); }

/* ── RESPONSIVE AJOUTS ── */
@media (max-width: 960px) {
  .fi-macros-grid { grid-template-columns: repeat(2,1fr); }
  .fi-gate-plans  { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .fi-score-hero { flex-direction: column; }
  .fi-score-hero-num { font-size: 4rem; }
  .fi-food-recap-row { font-size: 0.75rem; }
  .fi-micro-item-name { min-width: 90px; }
  .fi-macros-grid { grid-template-columns: repeat(2,1fr); }
}
/* ============================================================
   FOOD INDEX · ADDITIONS v5.0
   Ajouter à la fin du style.css existant
   ============================================================ */

/* ── PLATE EMPTY ── */
.fi-plate-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:10px;text-align:center; }
.fi-plate-empty-icon { font-size:2.8rem;margin-bottom:4px;opacity:0.7; }
.fi-plate-empty-title { font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:var(--vert-fonce); }
.fi-plate-empty-sub { font-size:0.8rem;color:var(--vert-subtil);line-height:1.6;max-width:240px; }

/* ── SUMMARY BAR ── */
.fi-plate-summary-bar { display:flex;align-items:center;gap:12px;background:var(--vert-fonce);border-radius:12px;padding:12px 16px;margin-bottom:10px; }
.fi-plate-summary-kcal { display:flex;align-items:baseline;gap:3px;flex-shrink:0; }
.fi-plate-summary-num { font-family:var(--font-serif);font-size:1.6rem;font-weight:600;color:var(--dore); }
.fi-plate-summary-unit { font-size:0.7rem;color:rgba(255,255,255,0.45); }
.fi-plate-summary-pct-wrap { flex:1;display:flex;flex-direction:column;gap:4px; }
.fi-plate-summary-pct-bar { height:4px;background:rgba(255,255,255,0.12);border-radius:2px;overflow:hidden; }
.fi-plate-summary-pct-fill { height:100%;border-radius:2px;transition:width 0.4s; }
.fi-plate-summary-pct-label { font-size:0.62rem;color:rgba(255,255,255,0.45); }
.fi-plate-count { font-size:0.65rem;font-weight:700;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:1px;flex-shrink:0; }

/* ── DAY ITEMS ── */
.fi-day-item { background:rgba(255,255,255,0.8);border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(194,162,91,0.15);gap:10px;transition:border-color 0.15s,box-shadow 0.15s; }
.fi-day-item:hover { border-color:rgba(194,162,91,0.4);box-shadow:0 2px 10px rgba(26,61,38,0.08); }
.fi-day-item-left { display:flex;align-items:center;gap:10px;flex:1;min-width:0; }
.fi-day-item-emoji { font-size:1.5rem;flex-shrink:0; }
.fi-day-item-info { flex:1;min-width:0; }
.fi-day-item-name { font-size:0.85rem;font-weight:600;color:var(--vert-fonce);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.fi-day-item-meta { font-size:0.68rem;color:var(--vert-subtil);margin-top:1px; }
.fi-day-item-right { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.fi-gram-wrap { display:flex;align-items:center;gap:4px; }
.fi-gram-input { width:58px;padding:6px 8px;border:1.5px solid rgba(194,162,91,0.3);border-radius:8px;font-size:0.85rem;font-weight:600;text-align:center;font-family:var(--font-sans);background:rgba(255,255,255,0.9);outline:none;color:var(--vert-fonce);transition:border-color 0.15s; }
.fi-gram-input:focus { border-color:var(--dore); }
.fi-gram-unit { font-size:0.72rem;color:var(--vert-subtil);font-weight:500; }

/* ── RÉSULTATS VIDES ── */
.fi-results-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;gap:12px;text-align:center;min-height:300px; }
.fi-results-empty-icon { font-size:3rem;opacity:0.12; }
.fi-results-empty-title { font-family:var(--font-serif);font-size:1.3rem;font-weight:600;color:var(--vert-fonce); }
.fi-results-empty-sub { font-size:0.82rem;color:var(--vert-subtil);line-height:1.65;max-width:280px; }

/* ── ANALYSE WRAPPER ── */
.fi-analysis-wrap { display:flex;flex-direction:column;gap:16px; }

/* ── HERO SCORE ── */
.fi-score-hero { border-radius:20px;padding:26px 24px;display:flex;gap:24px;align-items:center;box-shadow:0 12px 40px rgba(0,0,0,0.25);position:relative;overflow:hidden; }
.fi-score-hero::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 50%,rgba(194,162,91,0.10),transparent 55%);pointer-events:none; }
.fi-score-hero-left { flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1; }
.fi-score-hero-ring { filter:drop-shadow(0 4px 12px rgba(194,162,91,0.3)); }
.fi-score-hero-meta { font-size:0.6rem;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,0.35); }
.fi-score-hero-right { flex:1;display:flex;flex-direction:column;gap:10px;position:relative;z-index:1; }
.fi-score-ind { display:flex;align-items:center;gap:10px; }
.fi-score-ind-name { font-size:0.6rem;text-transform:uppercase;letter-spacing:1.2px;color:rgba(255,255,255,0.38);min-width:56px; }
.fi-score-ind-track { flex:1;height:5px;background:rgba(255,255,255,0.10);border-radius:3px;overflow:hidden; }
.fi-score-ind-fill { height:100%;border-radius:3px;background:rgba(255,255,255,0.55);transition:width 0.6s ease; }
.fi-score-ind-val { font-family:var(--font-serif);font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.88);min-width:40px;text-align:right; }
.fi-score-ind-val span { font-size:0.6rem;opacity:0.4;font-family:var(--font-sans); }
.fi-score-hero-divider { height:1px;background:rgba(255,255,255,0.08);margin:2px 0; }
.fi-score-omega { display:flex;align-items:center;justify-content:space-between;font-size:0.72rem;padding:8px 12px;background:rgba(255,255,255,0.05);border-radius:8px;border:1px solid rgba(255,255,255,0.08); }
.fi-score-omega strong { font-family:var(--font-serif);font-size:1.1rem;font-weight:600; }

/* ── SECTIONS ── */
.fi-section-block { background:rgba(255,255,255,0.78);border:1px solid rgba(194,162,91,0.15);border-radius:18px;padding:20px 22px;box-shadow:0 2px 8px rgba(26,61,38,0.04); }
.fi-block-title { font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--dore-fonce);margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.fi-block-title-sub { font-size:0.6rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--vert-subtil);font-style:italic; }

/* ── FOODS RECAP ── */
.fi-foods-recap { display:flex;flex-direction:column;gap:5px; }
.fi-food-recap-row { display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--creme-dark);border-radius:10px;border:1px solid rgba(194,162,91,0.08);transition:border-color 0.15s; }
.fi-food-recap-row:hover { border-color:rgba(194,162,91,0.25); }
.fi-food-recap-emoji { font-size:1.3rem;width:26px;text-align:center;flex-shrink:0; }
.fi-food-recap-name { flex:1;font-size:0.83rem;font-weight:600;color:var(--vert-fonce);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.fi-food-recap-g { font-size:0.72rem;color:var(--vert-subtil);flex-shrink:0;min-width:52px;text-align:right; }
.fi-food-recap-g em { font-style:normal;opacity:0.6;margin-left:3px; }
.fi-food-recap-kcal { font-size:0.72rem;color:var(--vert-subtil);flex-shrink:0;min-width:58px;text-align:right; }
.fi-food-recap-score { font-family:var(--font-serif);font-size:1rem;font-weight:700;flex-shrink:0;min-width:36px;text-align:center;padding:3px 8px;border-radius:6px; }

/* ── MACROS ── */
.fi-macros-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px; }
.fi-macro-card { text-align:center;padding:14px 8px;background:var(--creme-dark);border-radius:12px;border:1px solid rgba(194,162,91,0.1);position:relative; }
.fi-macro-card-icon { font-size:1.1rem;margin-bottom:4px; }
.fi-macro-card.fi-macro-kcal { background:var(--vert-fonce);border-color:transparent; }
.fi-macro-card.fi-macro-kcal .fi-macro-card-val { color:var(--dore); }
.fi-macro-card.fi-macro-kcal .fi-macro-card-unit,.fi-macro-card.fi-macro-kcal .fi-macro-card-pct { color:rgba(255,255,255,0.4); }
.fi-macro-card-pct-bar { width:70%;height:3px;background:rgba(255,255,255,0.12);border-radius:2px;margin:5px auto 3px;overflow:hidden; }
.fi-macro-card-val { font-family:var(--font-serif);font-size:1.6rem;font-weight:600;color:var(--vert);line-height:1; }
.fi-macro-card-unit { font-size:0.58rem;text-transform:uppercase;color:var(--vert-subtil);letter-spacing:0.8px;margin-top:3px; }
.fi-macro-card-pct { font-size:0.62rem;color:var(--dore-fonce);margin-top:4px;font-weight:600; }
.fi-macro-visual { margin-bottom:12px; }
.fi-macro-bar-track { display:flex;height:10px;border-radius:5px;overflow:hidden;margin-bottom:8px;box-shadow:inset 0 1px 3px rgba(0,0,0,0.08); }
.fi-macro-seg { transition:width 0.5s ease; }
.fi-macro-legend { display:flex;gap:16px;font-size:0.7rem;color:var(--vert-subtil);align-items:center;flex-wrap:wrap; }
.fi-macro-legend span { display:flex;align-items:center;gap:5px; }
.fi-macro-legend em { display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0;font-style:normal; }
.fi-extra-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:8px; }
.fi-extra-stat { text-align:center;padding:12px 6px;background:rgba(255,255,255,0.55);border:1px solid rgba(194,162,91,0.12);border-radius:10px; }
.fi-extra-stat-val { font-family:var(--font-serif);font-size:1.2rem;font-weight:600;color:var(--vert-fonce); }
.fi-extra-stat-label { font-size:0.58rem;text-transform:uppercase;color:var(--vert-subtil);letter-spacing:0.5px;margin-top:2px; }
.fi-extra-stat-ref { font-size:0.58rem;color:var(--vert-subtil);margin-top:3px;opacity:0.7; }

/* ── MICRONUTRIMENTS ── */
.fi-micro-legend-bar { display:flex;gap:20px;margin-bottom:14px;padding:10px 14px;background:rgba(255,255,255,0.6);border-radius:8px;border:1px solid rgba(194,162,91,0.12); }
.fi-micro-legend-item { display:flex;align-items:center;gap:8px;font-size:0.72rem;color:var(--vert-subtil); }
.fi-micro-legend-swatch { width:36px;height:5px;border-radius:3px; }
.fi-micro-legend-swatch--brut { background:rgba(0,0,0,0.12); }
.fi-micro-legend-swatch--abs { background:var(--vert); }
.fi-micros-container { display:flex;flex-direction:column;gap:12px; }
.fi-micro-group { border-radius:12px;overflow:hidden;border:1px solid rgba(194,162,91,0.12); }
.fi-micro-group-header { display:flex;align-items:center;gap:8px;font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.8px;color:var(--vert-fonce);padding:10px 14px;background:rgba(194,162,91,0.06);border-bottom:1px solid rgba(194,162,91,0.12); }
.fi-micro-group-count { margin-left:auto;font-size:0.58rem;font-weight:400;color:var(--vert-subtil);text-transform:none;letter-spacing:0; }
.fi-micro-rows { background:rgba(255,255,255,0.65); }
.fi-micro-row { padding:11px 14px;border-bottom:1px solid rgba(194,162,91,0.06); }
.fi-micro-row:last-child { border-bottom:none; }
.fi-micro-row-header { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px; }
.fi-micro-nom { font-size:0.8rem;font-weight:600;color:var(--vert-fonce);min-width:110px;flex-shrink:0; }
.fi-micro-right { display:flex;align-items:center;gap:10px; }
.fi-micro-nums { display:flex;align-items:center;gap:5px;font-size:0.72rem; }
.fi-micro-brut-val { color:var(--vert-subtil);font-weight:500; }
.fi-micro-arrow { color:rgba(0,0,0,0.2);font-size:0.65rem; }
.fi-micro-abs-val { font-weight:700;font-size:0.78rem; }
.fi-micro-badge { font-size:0.58rem;font-weight:700;padding:3px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:0.5px;white-space:nowrap; }
.fi-micro-badge--ok      { background:rgba(45,106,63,0.12);color:#2D6A3F; }
.fi-micro-badge--good    { background:rgba(90,138,63,0.12);color:#5A8A3F; }
.fi-micro-badge--partial { background:rgba(184,169,106,0.15);color:#8A7A30; }
.fi-micro-badge--low     { background:rgba(192,112,80,0.12);color:#C07050; }
.fi-micro-badge--warn    { background:rgba(196,121,58,0.12);color:#C4793A; }
.fi-micro-double-bar { display:flex;flex-direction:column;gap:3px;margin-bottom:5px; }
.fi-micro-bar-brut { height:4px;background:rgba(0,0,0,0.08);border-radius:2px;overflow:hidden; }
.fi-micro-bar-brut-fill { height:100%;background:rgba(0,0,0,0.18);border-radius:2px;transition:width 0.5s ease; }
.fi-micro-bar-abs { height:6px;background:rgba(0,0,0,0.06);border-radius:3px;overflow:hidden; }
.fi-micro-bar-abs-fill { height:100%;border-radius:3px;transition:width 0.5s ease; }
.fi-micro-sub { display:flex;justify-content:space-between;font-size:0.62rem;color:var(--vert-subtil);margin-bottom:3px; }
.fi-micro-bio-label { font-style:italic; }
.fi-micro-vals-label { opacity:0.7; }
.fi-micro-anti { margin-top:5px;display:flex;flex-direction:column;gap:3px; }
.fi-micro-anti-item { font-size:0.64rem;color:#B8753A;background:rgba(184,117,58,0.08);border-radius:5px;padding:4px 8px;border-left:2px solid rgba(184,117,58,0.5);line-height:1.4; }

/* ── GAPS / INSUFFISANTS ── */
.fi-micro-gaps { margin-top:4px;background:linear-gradient(135deg,rgba(192,112,80,0.05),rgba(192,112,80,0.02));border:1px solid rgba(192,112,80,0.2);border-radius:12px;padding:16px; }
.fi-micro-gaps-title { font-size:0.75rem;font-weight:700;color:var(--rouge);margin-bottom:12px;display:flex;align-items:center;gap:6px; }
.fi-micro-gaps-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:8px; }
.fi-micro-gap-item { padding:10px 12px;background:rgba(255,255,255,0.7);border-radius:8px;border:1px solid rgba(192,112,80,0.15); }
.fi-micro-gap-name { font-size:0.75rem;font-weight:600;color:var(--vert-fonce);margin-bottom:6px; }
.fi-micro-gap-bars { display:flex;flex-direction:column;gap:2px;margin-bottom:5px; }
.fi-micro-gap-bar { height:4px;background:rgba(0,0,0,0.06);border-radius:2px;overflow:hidden; }
.fi-micro-gap-val { font-size:0.68rem;color:var(--vert-subtil); }
.fi-micro-gap-val strong { color:var(--rouge);font-family:var(--font-serif);font-size:0.85rem; }

/* ── GATE PAYANT ── */
.fi-gate-wrap { display:flex;flex-direction:column;gap:18px;padding:4px 2px; }
.fi-gate-hero { text-align:center;padding:16px 8px 8px; }
.fi-gate-hero-badge { display:inline-block;background:rgba(192,112,80,0.12);color:#C07050;font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;padding:4px 12px;border-radius:99px;margin-bottom:12px;border:1px solid rgba(192,112,80,0.2); }
.fi-gate-hero-title { font-family:var(--font-serif);font-size:1.7rem;font-weight:600;color:var(--vert-fonce);margin-bottom:10px;line-height:1.2; }
.fi-gate-hero-sub { font-size:0.82rem;color:var(--vert-subtil);line-height:1.7;max-width:360px;margin:0 auto; }

.fi-gate-seen,.fi-gate-locked { border-radius:12px;padding:14px 16px; }
.fi-gate-seen { background:rgba(45,106,63,0.04);border:1px solid rgba(45,106,63,0.15); }
.fi-gate-locked { background:var(--creme-dark);border:1px solid rgba(194,162,91,0.15); }
.fi-gate-seen-label,.fi-gate-locked-label { font-size:0.65rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px; }
.fi-gate-seen-label { color:var(--vert); }
.fi-gate-locked-label { color:var(--dore-fonce); }
.fi-gate-seen-items,.fi-gate-locked-items { display:flex;flex-direction:column;gap:5px; }
.fi-gate-seen-item,.fi-gate-locked-item { font-size:0.8rem;color:var(--vert-fonce);padding:5px 10px;background:rgba(255,255,255,0.6);border-radius:6px;line-height:1.4; }
.fi-gate-seen-item::before { content:'✓ ';color:var(--vert);font-weight:700; }
.fi-gate-locked-item::before { content:'→ ';color:var(--dore-fonce); }

.fi-gate-plans { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.fi-gate-plan { display:flex;flex-direction:column;align-items:center;gap:5px;padding:20px 16px;border-radius:18px;text-decoration:none;transition:all 0.22s;position:relative;text-align:center; }
.fi-gate-plan--monthly { background:rgba(255,255,255,0.85);border:1.5px solid rgba(194,162,91,0.3); }
.fi-gate-plan--monthly:hover { border-color:var(--dore);transform:translateY(-3px);box-shadow:0 10px 24px rgba(194,162,91,0.18); }
.fi-gate-plan--annual { background:var(--vert-fonce);border:1.5px solid var(--vert-fonce);box-shadow:0 10px 30px rgba(26,61,38,0.3); }
.fi-gate-plan--annual:hover { transform:translateY(-3px);box-shadow:0 16px 40px rgba(26,61,38,0.35); }
.fi-gate-plan-recommended { position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--dore);color:#fff;font-size:0.58rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:3px 12px;border-radius:99px;white-space:nowrap; }
.fi-gate-plan-label { font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-top:8px; }
.fi-gate-plan--monthly .fi-gate-plan-label { color:var(--vert-subtil); }
.fi-gate-plan--annual  .fi-gate-plan-label { color:rgba(255,255,255,0.45); }
.fi-gate-plan-price { font-family:var(--font-serif);font-size:2.2rem;font-weight:600;line-height:1; }
.fi-gate-plan-price span { font-size:0.8rem;font-weight:400; }
.fi-gate-plan--monthly .fi-gate-plan-price      { color:var(--vert-fonce); }
.fi-gate-plan--monthly .fi-gate-plan-price span { color:var(--vert-subtil); }
.fi-gate-plan--annual  .fi-gate-plan-price      { color:var(--dore); }
.fi-gate-plan--annual  .fi-gate-plan-price span { color:rgba(255,255,255,0.35); }
.fi-gate-plan-desc { font-size:0.68rem;margin-bottom:4px; }
.fi-gate-plan--monthly .fi-gate-plan-desc { color:var(--vert-subtil); }
.fi-gate-plan--annual  .fi-gate-plan-desc { color:rgba(194,162,91,0.8);font-weight:600; }
.fi-gate-plan-btn { font-size:0.75rem;font-weight:700;padding:8px 18px;border-radius:99px;margin-top:4px;letter-spacing:0.3px; }
.fi-gate-plan--monthly .fi-gate-plan-btn { background:var(--dore);color:#fff; }
.fi-gate-plan--annual  .fi-gate-plan-btn { background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.85);border:1px solid rgba(255,255,255,0.18); }
.fi-gate-trust { text-align:center;font-size:0.68rem;color:var(--vert-subtil); }

/* ── PROFIL BADGE ── */
.fi-profil-badge { display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:rgba(194,162,91,0.08);border:1px solid rgba(194,162,91,0.2);border-radius:var(--radius-sm);margin-bottom:14px;font-size:0.75rem;color:var(--vert-subtil); }
.fi-profil-badge strong { color:var(--vert-fonce); }
.fi-profil-change { font-size:0.68rem;color:var(--dore-fonce);cursor:pointer;text-decoration:underline;background:none;border:none;font-family:var(--font-sans);padding:0; }

/* ── RESPONSIVE ── */
@media (max-width:960px) {
  .fi-macros-grid { grid-template-columns:repeat(2,1fr); }
  .fi-extra-stats { grid-template-columns:repeat(2,1fr); }
  .fi-gate-plans { grid-template-columns:1fr; }
  .fi-micro-gaps-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .fi-score-hero { flex-direction:column;gap:16px; }
  .fi-food-recap-kcal { display:none; }
  .fi-micro-nom { min-width:80px; }
  .fi-macros-grid { grid-template-columns:repeat(2,1fr); }
}
/* ============================================================
   FOOD INDEX · ADDITIONS v6.0
   À coller à la fin du style.css existant
   ============================================================ */

/* ── PLATE EMPTY ── */
.fi-plate-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;gap:10px;text-align:center; }
.fi-plate-empty-icon { font-size:2.8rem;margin-bottom:4px;opacity:0.6; }
.fi-plate-empty-title { font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:var(--vert-fonce); }
.fi-plate-empty-sub { font-size:0.8rem;color:var(--vert-subtil);line-height:1.6;max-width:240px; }

/* ── SUMMARY BAR ── */
.fi-plate-summary-bar { display:flex;align-items:center;gap:12px;background:var(--vert-fonce);border-radius:12px;padding:12px 16px;margin-bottom:10px; }
.fi-plate-summary-kcal { display:flex;align-items:baseline;gap:3px;flex-shrink:0; }
.fi-plate-summary-num { font-family:var(--font-serif);font-size:1.6rem;font-weight:600;color:var(--dore); }
.fi-plate-summary-unit { font-size:0.7rem;color:rgba(255,255,255,0.45); }
.fi-plate-summary-pct-wrap { flex:1;display:flex;flex-direction:column;gap:4px; }
.fi-plate-summary-pct-bar { height:4px;background:rgba(255,255,255,0.12);border-radius:2px;overflow:hidden; }
.fi-plate-summary-pct-fill { height:100%;border-radius:2px;transition:width 0.4s; }
.fi-plate-summary-pct-label { font-size:0.62rem;color:rgba(255,255,255,0.45); }
.fi-plate-count { font-size:0.65rem;font-weight:700;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:1px;flex-shrink:0; }

/* ── DAY ITEMS ── */
.fi-day-item { background:rgba(255,255,255,0.8);border-radius:12px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(194,162,91,0.15);gap:10px;transition:border-color 0.15s,box-shadow 0.15s; }
.fi-day-item:hover { border-color:rgba(194,162,91,0.4);box-shadow:0 2px 10px rgba(26,61,38,0.06); }
.fi-day-item-left { display:flex;align-items:center;gap:10px;flex:1;min-width:0; }
.fi-day-item-emoji { font-size:1.5rem;flex-shrink:0; }
.fi-day-item-info { flex:1;min-width:0; }
.fi-day-item-name { font-size:0.85rem;font-weight:600;color:var(--vert-fonce);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.fi-day-item-meta { font-size:0.68rem;color:var(--vert-subtil);margin-top:1px; }
.fi-day-item-right { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.fi-gram-wrap { display:flex;align-items:center;gap:4px; }
.fi-gram-input { width:58px;padding:6px 8px;border:1.5px solid rgba(194,162,91,0.3);border-radius:8px;font-size:0.85rem;font-weight:600;text-align:center;font-family:var(--font-sans);background:rgba(255,255,255,0.9);outline:none;color:var(--vert-fonce);transition:border-color 0.15s; }
.fi-gram-input:focus { border-color:var(--dore); }
.fi-gram-unit { font-size:0.72rem;color:var(--vert-subtil);font-weight:500; }

/* ── RÉSULTATS VIDES ── */
.fi-results-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;gap:12px;text-align:center;min-height:300px; }
.fi-results-empty-icon { font-size:3rem;opacity:0.1; }
.fi-results-empty-title { font-family:var(--font-serif);font-size:1.3rem;font-weight:600;color:var(--vert-fonce); }
.fi-results-empty-sub { font-size:0.82rem;color:var(--vert-subtil);line-height:1.65;max-width:280px; }

/* ── ANALYSE WRAPPER ── */
.fi-analysis-wrap { display:flex;flex-direction:column;gap:16px; }

/* ── HERO SCORE ── */
.fi-score-hero { border-radius:20px;padding:26px 22px;display:flex;gap:22px;align-items:center;box-shadow:0 12px 40px rgba(0,0,0,0.25);position:relative;overflow:hidden; }
.fi-score-hero::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 15% 50%,rgba(194,162,91,0.10),transparent 55%);pointer-events:none; }
.fi-score-hero-left { flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;z-index:1; }
.fi-score-hero-ring { filter:drop-shadow(0 4px 14px rgba(194,162,91,0.25)); }
.fi-score-hero-meta { font-size:0.6rem;text-transform:uppercase;letter-spacing:1.5px;color:rgba(255,255,255,0.35); }
.fi-score-hero-right { flex:1;display:flex;flex-direction:column;gap:10px;position:relative;z-index:1; }
.fi-score-ind { display:flex;align-items:center;gap:10px; }
.fi-score-ind-name { font-size:0.6rem;text-transform:uppercase;letter-spacing:1.2px;color:rgba(255,255,255,0.38);min-width:56px; }
.fi-score-ind-track { flex:1;height:5px;background:rgba(255,255,255,0.10);border-radius:3px;overflow:hidden; }
.fi-score-ind-fill { height:100%;border-radius:3px;background:rgba(255,255,255,0.55);transition:width 0.6s ease; }
.fi-score-ind-val { font-family:var(--font-serif);font-size:1.2rem;font-weight:500;color:rgba(255,255,255,0.88);min-width:42px;text-align:right; }
.fi-score-ind-val span { font-size:0.6rem;opacity:0.4;font-family:var(--font-sans); }
.fi-score-hero-divider { height:1px;background:rgba(255,255,255,0.07);margin:2px 0; }
.fi-score-omega { display:flex;align-items:center;justify-content:space-between;font-size:0.72rem;padding:8px 12px;background:rgba(255,255,255,0.05);border-radius:8px;border:1px solid rgba(255,255,255,0.07); }
.fi-score-omega strong { font-family:var(--font-serif);font-size:1.1rem;font-weight:600; }

/* ── SECTIONS ── */
.fi-section-block { background:rgba(255,255,255,0.78);border:1px solid rgba(194,162,91,0.15);border-radius:18px;padding:20px 22px;box-shadow:0 2px 8px rgba(26,61,38,0.03); }
.fi-block-title { font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--dore-fonce);margin-bottom:16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap; }
.fi-block-title-sub { font-size:0.6rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--vert-subtil);font-style:italic; }

/* ── FOODS RECAP ── */
.fi-foods-recap { display:flex;flex-direction:column;gap:5px; }
.fi-food-recap-row { display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--creme-dark);border-radius:10px;border:1px solid rgba(194,162,91,0.08);transition:border-color 0.15s; }
.fi-food-recap-row:hover { border-color:rgba(194,162,91,0.25); }
.fi-food-recap-emoji { font-size:1.3rem;width:26px;text-align:center;flex-shrink:0; }
.fi-food-recap-name { flex:1;font-size:0.83rem;font-weight:600;color:var(--vert-fonce);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.fi-food-recap-g { font-size:0.72rem;color:var(--vert-subtil);flex-shrink:0;min-width:52px;text-align:right; }
.fi-food-recap-g em { font-style:normal;opacity:0.6;margin-left:3px; }
.fi-food-recap-kcal { font-size:0.72rem;color:var(--vert-subtil);flex-shrink:0;min-width:58px;text-align:right; }
.fi-food-recap-score { font-family:var(--font-serif);font-size:0.95rem;font-weight:700;flex-shrink:0;min-width:36px;text-align:center;padding:3px 8px;border-radius:6px; }

/* ── MACROS ── */
.fi-macros-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px; }
.fi-macro-card { text-align:center;padding:14px 8px;background:var(--creme-dark);border-radius:12px;border:1px solid rgba(194,162,91,0.1); }
.fi-macro-card-icon { font-size:1.1rem;margin-bottom:4px; }
.fi-macro-card.fi-macro-kcal { background:var(--vert-fonce); }
.fi-macro-card.fi-macro-kcal .fi-macro-card-val { color:var(--dore); }
.fi-macro-card.fi-macro-kcal .fi-macro-card-unit,.fi-macro-card.fi-macro-kcal .fi-macro-card-pct { color:rgba(255,255,255,0.4); }
.fi-macro-card-pct-bar { width:70%;height:3px;background:rgba(255,255,255,0.12);border-radius:2px;margin:5px auto 3px;overflow:hidden; }
.fi-macro-card-val { font-family:var(--font-serif);font-size:1.6rem;font-weight:600;color:var(--vert);line-height:1; }
.fi-macro-card-unit { font-size:0.58rem;text-transform:uppercase;color:var(--vert-subtil);letter-spacing:0.8px;margin-top:3px; }
.fi-macro-card-pct { font-size:0.62rem;color:var(--dore-fonce);margin-top:4px;font-weight:600; }
.fi-macro-visual { margin-bottom:12px; }
.fi-macro-bar-track { display:flex;height:10px;border-radius:5px;overflow:hidden;margin-bottom:8px;box-shadow:inset 0 1px 3px rgba(0,0,0,0.06); }
.fi-macro-seg { transition:width 0.5s ease; }
.fi-macro-legend { display:flex;gap:16px;font-size:0.7rem;color:var(--vert-subtil);align-items:center;flex-wrap:wrap; }
.fi-macro-legend span { display:flex;align-items:center;gap:5px; }
.fi-macro-legend em { display:inline-block;width:9px;height:9px;border-radius:50%;flex-shrink:0;font-style:normal; }
.fi-extra-stats { display:grid;grid-template-columns:repeat(4,1fr);gap:8px; }
.fi-extra-stat { text-align:center;padding:12px 6px;background:rgba(255,255,255,0.55);border:1px solid rgba(194,162,91,0.12);border-radius:10px; }
.fi-extra-stat-val { font-family:var(--font-serif);font-size:1.2rem;font-weight:600;color:var(--vert-fonce); }
.fi-extra-stat-label { font-size:0.58rem;text-transform:uppercase;color:var(--vert-subtil);letter-spacing:0.5px;margin-top:2px; }
.fi-extra-stat-ref { font-size:0.58rem;color:var(--vert-subtil);margin-top:3px;opacity:0.7; }

/* ══════════════════════════════
   MICRONUTRIMENTS v6
══════════════════════════════ */
.fi-micros-container { display:flex;flex-direction:column;gap:14px; }

/* Légende */
.fi-micro-legende { background:rgba(255,255,255,0.6);border:1px solid rgba(194,162,91,0.15);border-radius:10px;padding:12px 14px;margin-bottom:4px; }
.fi-micro-legende-title { font-size:0.65rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--dore-fonce);margin-bottom:8px; }
.fi-micro-legende-body { display:flex;flex-direction:column;gap:6px; }
.fi-micro-legende-row { display:flex;align-items:center;gap:12px;font-size:0.75rem;color:var(--vert-fonce); }
.fi-micro-legende-bars { display:flex;flex-direction:column;gap:3px;flex-shrink:0; }
.fi-micro-legende-note { font-size:0.68rem;color:var(--vert-subtil);font-style:italic;line-height:1.5; }

/* Groupes */
.fi-micro-groupe { border-radius:12px;overflow:hidden;border:1px solid rgba(194,162,91,0.12); }
.fi-micro-groupe-header { display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:rgba(194,162,91,0.06);border-bottom:1px solid rgba(194,162,91,0.10); }
.fi-micro-groupe-label { font-size:0.72rem;font-weight:700;color:var(--vert-fonce);margin-bottom:2px; }
.fi-micro-groupe-desc { font-size:0.6rem;color:var(--vert-subtil);font-style:italic; }
.fi-micro-groupe-count { font-size:0.62rem;font-weight:700;color:var(--vert-subtil);background:rgba(0,0,0,0.05);padding:3px 8px;border-radius:99px;flex-shrink:0; }
.fi-micro-rows { background:rgba(255,255,255,0.65); }

/* Rows */
.fi-micro-row { padding:12px 14px;border-bottom:1px solid rgba(194,162,91,0.06); }
.fi-micro-row:last-child { border-bottom:none; }
.fi-micro-head { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px; }
.fi-micro-nom { font-size:0.82rem;font-weight:600;color:var(--vert-fonce);flex:1;min-width:0; }
.fi-micro-head-right { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.fi-micro-pct-main { font-family:var(--font-serif);font-size:1.1rem;font-weight:700;min-width:38px;text-align:right; }

/* Badges */
.fi-nb { font-size:0.58rem;font-weight:700;padding:3px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:0.4px;white-space:nowrap; }
.fi-nb--ok      { background:rgba(45,106,63,0.12);color:#2D6A3F; }
.fi-nb--bon     { background:rgba(90,138,63,0.12);color:#5A8A3F; }
.fi-nb--partiel { background:rgba(184,169,106,0.15);color:#8A7030; }
.fi-nb--faible  { background:rgba(192,112,80,0.12);color:#C07050; }
.fi-nb--warn    { background:rgba(196,121,58,0.12);color:#C4793A; }

/* Double barre */
.fi-micro-double-bar { display:flex;flex-direction:column;gap:3px;margin-bottom:5px; }
.fi-micro-bar-apporte { height:3px;background:rgba(0,0,0,0.08);border-radius:2px;overflow:hidden; }
.fi-micro-bar-apporte-fill { height:100%;background:rgba(0,0,0,0.2);border-radius:2px;transition:width 0.5s ease; }
.fi-micro-bar-utilise { height:6px;background:rgba(0,0,0,0.06);border-radius:3px;overflow:hidden; }
.fi-micro-bar-utilise-fill { height:100%;border-radius:3px;transition:width 0.5s ease; }

/* Labels barre */
.fi-micro-labels { display:flex;justify-content:space-between;font-size:0.62rem;margin-bottom:4px; }
.fi-micro-label-apporte { color:var(--vert-subtil); }
.fi-micro-label-utilise em { font-style:normal;opacity:0.65; }

/* Explication */
.fi-micro-explication { font-size:0.7rem;color:var(--vert-subtil);font-style:italic;line-height:1.4; }

/* Antinutriments */
.fi-micro-anti { margin-top:6px;display:flex;flex-direction:column;gap:3px; }
.fi-micro-anti-item { font-size:0.64rem;color:#B8753A;background:rgba(184,117,58,0.07);border-radius:5px;padding:4px 9px;border-left:2px solid rgba(184,117,58,0.45);line-height:1.4; }

/* ── SYNTHÈSE CARENCES ── */
.fi-micro-synthese { background:linear-gradient(135deg,rgba(192,112,80,0.05),rgba(192,112,80,0.02));border:1px solid rgba(192,112,80,0.2);border-radius:12px;padding:16px; }
.fi-micro-synthese-title { font-size:0.75rem;font-weight:700;color:var(--rouge);margin-bottom:12px; }
.fi-micro-synthese-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:8px; }
.fi-micro-synthese-item { padding:10px 12px;background:rgba(255,255,255,0.7);border-radius:8px;border:1px solid rgba(192,112,80,0.12); }
.fi-micro-synthese-item--faible { border-color:rgba(192,112,80,0.25); }
.fi-micro-synthese-item--partiel { border-color:rgba(184,169,106,0.25); }
.fi-micro-synthese-nom { font-size:0.75rem;font-weight:600;color:var(--vert-fonce);margin-bottom:6px; }
.fi-micro-synthese-bars { margin-bottom:5px; }
.fi-micro-synthese-vals { display:flex;justify-content:space-between;font-size:0.68rem;color:var(--vert-subtil); }

/* ── PROFIL BADGE ── */
.fi-profil-badge { display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:rgba(194,162,91,0.08);border:1px solid rgba(194,162,91,0.2);border-radius:var(--radius-sm);margin-bottom:14px;font-size:0.75rem;color:var(--vert-subtil); }
.fi-profil-badge strong { color:var(--vert-fonce); }
.fi-profil-change { font-size:0.68rem;color:var(--dore-fonce);cursor:pointer;text-decoration:underline;background:none;border:none;font-family:var(--font-sans);padding:0; }

/* ── GATE PAYANT ── */
.fi-gate-wrap { display:flex;flex-direction:column;gap:18px;padding:4px 2px; }
.fi-gate-hero { text-align:center;padding:16px 8px 8px; }
.fi-gate-hero-badge { display:inline-block;background:rgba(192,112,80,0.12);color:#C07050;font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;padding:4px 12px;border-radius:99px;margin-bottom:12px;border:1px solid rgba(192,112,80,0.2); }
.fi-gate-hero-title { font-family:var(--font-serif);font-size:1.7rem;font-weight:600;color:var(--vert-fonce);margin-bottom:10px;line-height:1.2; }
.fi-gate-hero-sub { font-size:0.82rem;color:var(--vert-subtil);line-height:1.7;max-width:360px;margin:0 auto; }
.fi-gate-seen,.fi-gate-locked { border-radius:12px;padding:14px 16px; }
.fi-gate-seen { background:rgba(45,106,63,0.04);border:1px solid rgba(45,106,63,0.15); }
.fi-gate-locked { background:var(--creme-dark);border:1px solid rgba(194,162,91,0.15); }
.fi-gate-seen-label,.fi-gate-locked-label { font-size:0.65rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px; }
.fi-gate-seen-label { color:var(--vert); }
.fi-gate-locked-label { color:var(--dore-fonce); }
.fi-gate-seen-items,.fi-gate-locked-items { display:flex;flex-direction:column;gap:5px; }
.fi-gate-seen-item,.fi-gate-locked-item { font-size:0.8rem;color:var(--vert-fonce);padding:5px 10px;background:rgba(255,255,255,0.6);border-radius:6px;line-height:1.4; }
.fi-gate-seen-item::before { content:'✓ ';color:var(--vert);font-weight:700; }
.fi-gate-locked-item::before { content:'→ ';color:var(--dore-fonce); }
.fi-gate-plans { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.fi-gate-plan { display:flex;flex-direction:column;align-items:center;gap:5px;padding:20px 16px;border-radius:18px;text-decoration:none;transition:all 0.22s;position:relative;text-align:center; }
.fi-gate-plan--monthly { background:rgba(255,255,255,0.85);border:1.5px solid rgba(194,162,91,0.3); }
.fi-gate-plan--monthly:hover { border-color:var(--dore);transform:translateY(-3px);box-shadow:0 10px 24px rgba(194,162,91,0.18); }
.fi-gate-plan--annual { background:var(--vert-fonce);border:1.5px solid var(--vert-fonce);box-shadow:0 10px 30px rgba(26,61,38,0.3); }
.fi-gate-plan--annual:hover { transform:translateY(-3px);box-shadow:0 16px 40px rgba(26,61,38,0.35); }
.fi-gate-plan-recommended { position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--dore);color:#fff;font-size:0.58rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:3px 12px;border-radius:99px;white-space:nowrap; }
.fi-gate-plan-label { font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;margin-top:8px; }
.fi-gate-plan--monthly .fi-gate-plan-label { color:var(--vert-subtil); }
.fi-gate-plan--annual  .fi-gate-plan-label { color:rgba(255,255,255,0.45); }
.fi-gate-plan-price { font-family:var(--font-serif);font-size:2.2rem;font-weight:600;line-height:1; }
.fi-gate-plan-price span { font-size:0.8rem;font-weight:400; }
.fi-gate-plan--monthly .fi-gate-plan-price      { color:var(--vert-fonce); }
.fi-gate-plan--monthly .fi-gate-plan-price span { color:var(--vert-subtil); }
.fi-gate-plan--annual  .fi-gate-plan-price      { color:var(--dore); }
.fi-gate-plan--annual  .fi-gate-plan-price span { color:rgba(255,255,255,0.35); }
.fi-gate-plan-desc { font-size:0.68rem;margin-bottom:4px; }
.fi-gate-plan--monthly .fi-gate-plan-desc { color:var(--vert-subtil); }
.fi-gate-plan--annual  .fi-gate-plan-desc { color:rgba(194,162,91,0.8);font-weight:600; }
.fi-gate-plan-btn { font-size:0.75rem;font-weight:700;padding:8px 18px;border-radius:99px;margin-top:4px; }
.fi-gate-plan--monthly .fi-gate-plan-btn { background:var(--dore);color:#fff; }
.fi-gate-plan--annual  .fi-gate-plan-btn { background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.85);border:1px solid rgba(255,255,255,0.18); }
.fi-gate-trust { text-align:center;font-size:0.68rem;color:var(--vert-subtil); }

/* ── RESPONSIVE ── */
@media (max-width:960px) {
  .fi-macros-grid    { grid-template-columns:repeat(2,1fr); }
  .fi-extra-stats    { grid-template-columns:repeat(2,1fr); }
  .fi-gate-plans     { grid-template-columns:1fr; }
  .fi-micro-synthese-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .fi-score-hero     { flex-direction:column;gap:16px; }
  .fi-food-recap-kcal { display:none; }
  .fi-macro-card-val { font-size:1.3rem; }
}
/* ============================================================
   FOOD INDEX · Gram ctrl additions
   Coller à la fin du style.css existant
   ============================================================ */

/* Stepper +/- autour du champ grammes */
.fi-gram-ctrl {
  display: flex;
  align-items: center;
  gap: 4px;
}
.fi-gram-minus,
.fi-gram-plus {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid rgba(194,162,91,0.35);
  background: rgba(255,255,255,0.8);
  color: var(--vert-fonce);
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer !important;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.15s;
  line-height: 1;
  padding: 0;
}
.fi-gram-minus:hover,
.fi-gram-plus:hover {
  background: var(--dore);
  border-color: var(--dore);
  color: #fff;
}
.fi-gram-center {
  display: flex;
  align-items: center;
  gap: 3px;
}

/* Description lisible sous le champ grammes */
.fi-day-item-right {
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.fi-gram-desc {
  font-size: 0.65rem;
  color: var(--vert-subtil);
  font-style: italic;
  text-align: right;
  max-width: 140px;
  line-height: 1.3;
}

/* Description dans le récap de l'analyse */
.fi-food-recap-desc {
  font-size: 0.68rem;
  color: var(--vert-subtil);
  font-style: italic;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 6px;
}

/* Mobile : masquer la description pour gagner de la place */
@media (max-width: 560px) {
  .fi-gram-desc { display: none; }
  .fi-food-recap-desc { display: none; }
}
/* ============================================================
   FOOD INDEX · ADDITIONS v6.1
   Section suggestion + styles bannieres PWA
   Coller à la fin du style.css existant
   ============================================================ */

/* ── SECTION SUGGESTION ── */
.fi-suggestion-section {
  margin-top: 40px;
  padding: 32px;
  background: rgba(255,255,255,0.65);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(194,162,91,0.22);
  border-radius: var(--radius-xl);
  box-shadow: var(--ombre-douce);
  text-align: center;
  font-family: var(--font-sans);
}
.fi-suggestion-icon {
  font-size: 2rem;
  margin-bottom: 10px;
  opacity: 0.85;
}
.fi-suggestion-title {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--vert-fonce);
  margin-bottom: 8px;
}
.fi-suggestion-sub {
  font-size: 0.85rem;
  color: var(--vert-subtil);
  line-height: 1.75;
  max-width: 380px;
  margin: 0 auto 20px;
}
.fi-suggestion-sub strong {
  color: var(--vert-fonce);
}
.fi-suggestion-btn {
  display: inline-block;
  background: var(--vert-fonce);
  color: #fff;
  text-decoration: none;
  border-radius: var(--radius-full);
  padding: 12px 30px;
  font-weight: 700;
  font-size: 0.84rem;
  letter-spacing: 0.3px;
  transition: background var(--tr);
  font-family: var(--font-sans);
}
.fi-suggestion-btn:hover {
  background: var(--vert-moyen);
}
.fi-suggestion-note {
  font-size: 0.68rem;
  color: var(--vert-subtil);
  margin-top: 12px;
  opacity: 0.7;
}

@media (max-width: 560px) {
  .fi-suggestion-section {
    padding: 24px 20px;
    margin-top: 28px;
  }
  .fi-suggestion-title {
    font-size: 1.2rem;
  }
}
/* ============================================================
   FOOD INDEX · ADDITIONS LÉGALES v1.0
   À COLLER À LA FIN du style.css existant
   ============================================================ */

/* ── BANNIÈRE DISCLAIMER EN HAUT ── */
#fi-app .fi-disclaimer-banner {
  background: linear-gradient(135deg, rgba(26,61,38,0.04), rgba(194,162,91,0.06)) !important;
  border: 1px solid rgba(194,162,91,0.22) !important;
  border-radius: 12px !important;
  padding: 10px 18px !important;
  margin-bottom: 20px !important;
  font-size: 0.72rem !important;
  color: #7A9A83 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  line-height: 1.5 !important;
}
.fi-disclaimer-icon {
  font-size: 1rem;
  flex-shrink: 0;
}
.fi-disclaimer-text {
  flex: 1;
}
.fi-disclaimer-link {
  color: #A6863F;
  text-decoration: none;
  font-weight: 600;
}
.fi-disclaimer-link:hover {
  text-decoration: underline;
}

/* ── BLOC LÉGAL EN BAS DE L'APP ── */
.fi-legal-footer {
  margin-top: 40px;
  padding: 28px 32px;
  background: rgba(255,255,255,0.55);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(194,162,91,0.2);
  border-radius: var(--radius-xl);
  font-family: var(--font-sans);
}
.fi-legal-footer-title {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: #A6863F;
  margin-bottom: 14px;
}
.fi-legal-footer-text {
  font-size: 0.75rem;
  color: #7A9A83;
  line-height: 1.75;
  margin-bottom: 10px;
}
.fi-legal-footer-text strong {
  color: #3A5A44;
}
.fi-legal-footer-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  margin-bottom: 12px;
  font-size: 0.72rem;
}
.fi-legal-footer-links a {
  color: #A6863F;
  text-decoration: none;
  font-weight: 600;
}
.fi-legal-footer-links a:hover {
  text-decoration: underline;
}
.fi-legal-footer-links span {
  color: rgba(194,162,91,0.4);
}
.fi-legal-footer-copy {
  font-size: 0.65rem;
  color: rgba(122,154,131,0.6);
  margin: 0;
}

/* ── RESPONSIVE ── */
@media (max-width: 560px) {
  .fi-disclaimer-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .fi-legal-footer {
    padding: 20px 18px;
  }
  .fi-legal-footer-links {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }
  .fi-legal-footer-links span {
    display: none;
  }
}
.fi-variante-indicator{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:0.65rem;color:#7A9A83;font-weight:500;}
.fi-variante-indicator-dot{width:6px;height:6px;border-radius:50%;background:#C2A25B;flex-shrink:0;display:inline-block;}
.fi-variante-indicator-current{color:#A6863F;font-weight:600;}
.fi-btn.has-variante::after{content:" ›";opacity:0.55;font-size:0.9em;}
/* ── ONGLET HISTORIQUE ── */
.fi-histo-empty { text-align:center; padding:48px 24px; }
.fi-histo-empty-icon { font-size:2.5rem; margin-bottom:12px; }
.fi-histo-empty-title { font-family:'Cormorant Garamond',serif; font-size:1.4rem; color:var(--vert-fonce,#1A3D26); margin-bottom:8px; }
.fi-histo-empty-sub { font-size:0.82rem; color:var(--vert-subtil,#7A9A83); line-height:1.6; }
.fi-histo-graph-wrap { background:rgba(255,255,255,0.7); border:1px solid rgba(194,162,91,0.15); border-radius:16px; padding:16px; margin-bottom:14px; }
.fi-histo-graph-title { font-size:0.62rem; font-weight:600; text-transform:uppercase; letter-spacing:1.5px; color:var(--vert-subtil,#7A9A83); margin-bottom:10px; }
.fi-histo-list { display:flex; flex-direction:column; gap:8px; }
.fi-histo-entry { background:rgba(255,255,255,0.7); border:1px solid rgba(194,162,91,0.15); border-radius:12px; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.fi-histo-entry-left { flex:1; min-width:0; }
.fi-histo-entry-date { font-size:0.62rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--vert-subtil,#7A9A83); margin-bottom:2px; }
.fi-histo-entry-label { font-size:0.82rem; font-weight:500; color:var(--vert-fonce,#1A3D26); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fi-histo-entry-right { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.fi-histo-entry-score { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:500; }
.fi-histo-entry-score small { font-size:0.6rem; opacity:0.5; }
.fi-histo-reload { background:#1A3D26; color:#fff; border:none; border-radius:999px; padding:5px 12px; font-family:'DM Sans',sans-serif; font-size:0.7rem; font-weight:600; cursor:pointer; }
.fi-histo-reload:hover { background:#2D6A3F; }
/* Historique dans Ma journée */
.fi-history-title { font-size:0.78rem; font-weight:600; color:var(--vert-fonce,#1A3D26); margin-bottom:10px; }
.fi-history-item { width:100%; background:rgba(255,255,255,0.7); border:1px solid rgba(194,162,91,0.15); border-radius:12px; padding:10px 14px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; margin-bottom:6px; font-family:inherit; transition:all 0.15s; }
.fi-history-item:hover { background:rgba(255,255,255,0.95); border-color:rgba(194,162,91,0.35); }
.fi-history-item-left { text-align:left; }
.fi-history-date { font-size:0.62rem; font-weight:600; text-transform:uppercase; letter-spacing:1px; color:var(--vert-subtil,#7A9A83); margin-bottom:2px; }
.fi-history-label-text { font-size:0.82rem; font-weight:500; color:var(--vert-fonce,#1A3D26); }
.fi-history-score { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:500; flex-shrink:0; }
.fi-history-score small { font-size:0.6rem; opacity:0.5; }