/* Nutri — constants and helpers.
   No mock entries / weights — the Store is loaded from Firestore per signed-in user.
   This file only carries: default macro goals, built-in food library (80+ items),
   food categories, meal-label constants, and date/totals helpers. */

const NUTRI_GOALS = {
  calories: 2400,
  protein_g: 165,
  carbs_g: 280,
  fat_g: 80,
};

// ── Date helpers — LOCAL timezone only. Never use .toISOString() for daily keys
// because it converts to UTC and shifts the date in ahead-of-UTC timezones (e.g.
// Egypt UTC+2/+3): midnight local = yesterday UTC, so toISOString().slice(0,10)
// returns yesterday's date. All day keys must use local year/month/date parts.
function isoOf(d){
  return d.getFullYear() + '-' +
    String(d.getMonth() + 1).padStart(2, '0') + '-' +
    String(d.getDate()).padStart(2, '0');
}
// Fresh "today" from local clock — safe to call at any time (no module-level stale cache).
function todayISO(){ return isoOf(new Date()); }
function daysAgo(n){ const d=new Date(); d.setDate(d.getDate()-n); return isoOf(d); }
const NUTRI_TODAY = daysAgo(0);

// ─────────────────────────────────────────────────────────────
// FOOD LIBRARY — 85 built-in foods across all categories
// Fields: id, name, nameAr, category, emoji,
//         serving (default amount), unit,
//         cal, protein_g, carbs_g, fat_g (per serving)
//         p/c/f = aliases for backwards compat
//         qty = human label  source: 'builtin'
// ─────────────────────────────────────────────────────────────
const NUTRI_FOODS = [
  // ── Fruits ──────────────────────────────────────────────────
  { id:'f_banana',     name:'Banana',          nameAr:'موزة',             category:'fruits',     emoji:'🍌', serving:120, unit:'g', qty:'1 medium (120g)', cal:107, protein_g:1.3,  carbs_g:27,  fat_g:0.4, p:1.3,  c:27,  f:0.4,  source:'builtin' },
  { id:'f_apple',      name:'Apple',           nameAr:'تفاحة',            category:'fruits',     emoji:'🍎', serving:150, unit:'g', qty:'1 medium (150g)', cal:78,  protein_g:0.4,  carbs_g:21,  fat_g:0.3, p:0.4,  c:21,  f:0.3,  source:'builtin' },
  { id:'f_orange',     name:'Orange',          nameAr:'برتقالة',          category:'fruits',     emoji:'🍊', serving:150, unit:'g', qty:'1 medium (150g)', cal:70,  protein_g:1.4,  carbs_g:16,  fat_g:0.2, p:1.4,  c:16,  f:0.2,  source:'builtin' },
  { id:'f_dates',      name:'Dates',           nameAr:'بلح',              category:'fruits',     emoji:'🌴', serving:30,  unit:'g', qty:'3-4 dates (30g)', cal:83,  protein_g:0.6,  carbs_g:22,  fat_g:0.1, p:0.6,  c:22,  f:0.1,  source:'builtin' },
  { id:'f_grapes',     name:'Grapes',          nameAr:'عنب',              category:'fruits',     emoji:'🍇', serving:100, unit:'g', qty:'100g',            cal:69,  protein_g:0.7,  carbs_g:18,  fat_g:0.2, p:0.7,  c:18,  f:0.2,  source:'builtin' },
  { id:'f_watermelon', name:'Watermelon',      nameAr:'بطيخ',             category:'fruits',     emoji:'🍉', serving:200, unit:'g', qty:'1 cup (200g)',    cal:60,  protein_g:1.2,  carbs_g:15,  fat_g:0.3, p:1.2,  c:15,  f:0.3,  source:'builtin' },
  { id:'f_mango',      name:'Mango',           nameAr:'مانجو',            category:'fruits',     emoji:'🥭', serving:150, unit:'g', qty:'1 cup (150g)',    cal:99,  protein_g:1.4,  carbs_g:25,  fat_g:0.6, p:1.4,  c:25,  f:0.6,  source:'builtin' },
  { id:'f_strawberry', name:'Strawberries',    nameAr:'فراولة',           category:'fruits',     emoji:'🍓', serving:100, unit:'g', qty:'100g',            cal:32,  protein_g:0.7,  carbs_g:8,   fat_g:0.3, p:0.7,  c:8,   f:0.3,  source:'builtin' },
  { id:'f_blueberries',name:'Blueberries',     nameAr:'توت أزرق',         category:'fruits',     emoji:'🫐', serving:80,  unit:'g', qty:'80g',             cal:45,  protein_g:0.6,  carbs_g:11,  fat_g:0.3, p:0.6,  c:11,  f:0.3,  source:'builtin' },
  { id:'f_avocado',    name:'Avocado',         nameAr:'أفوكادو',          category:'fruits',     emoji:'🥑', serving:80,  unit:'g', qty:'½ medium (80g)',  cal:128, protein_g:1.6,  carbs_g:7,   fat_g:12,  p:1.6,  c:7,   f:12,   source:'builtin' },

  // ── Vegetables ──────────────────────────────────────────────
  { id:'f_tomato',     name:'Tomato',          nameAr:'طماطم',            category:'vegetables', emoji:'🍅', serving:120, unit:'g', qty:'1 medium (120g)', cal:22,  protein_g:1.1,  carbs_g:5,   fat_g:0.2, p:1.1,  c:5,   f:0.2,  source:'builtin' },
  { id:'f_cucumber',   name:'Cucumber',        nameAr:'خيار',             category:'vegetables', emoji:'🥒', serving:100, unit:'g', qty:'100g',            cal:16,  protein_g:0.7,  carbs_g:4,   fat_g:0.1, p:0.7,  c:4,   f:0.1,  source:'builtin' },
  { id:'f_pepper',     name:'Bell Pepper',     nameAr:'فلفل رومي',        category:'vegetables', emoji:'🫑', serving:120, unit:'g', qty:'1 medium (120g)', cal:31,  protein_g:1,    carbs_g:7,   fat_g:0.3, p:1,    c:7,   f:0.3,  source:'builtin' },
  { id:'f_potato',     name:'Potato',          nameAr:'بطاطس',            category:'vegetables', emoji:'🥔', serving:150, unit:'g', qty:'1 medium (150g)', cal:116, protein_g:2.5,  carbs_g:26,  fat_g:0.1, p:2.5,  c:26,  f:0.1,  source:'builtin' },
  { id:'f_sweet_potato',name:'Sweet Potato',   nameAr:'بطاطا حلوة',       category:'vegetables', emoji:'🍠', serving:150, unit:'g', qty:'1 medium (150g)', cal:130, protein_g:2,    carbs_g:30,  fat_g:0,   p:2,    c:30,  f:0,    source:'builtin' },
  { id:'f_carrot',     name:'Carrot',          nameAr:'جزر',              category:'vegetables', emoji:'🥕', serving:100, unit:'g', qty:'1 medium (100g)', cal:41,  protein_g:0.9,  carbs_g:10,  fat_g:0.2, p:0.9,  c:10,  f:0.2,  source:'builtin' },
  { id:'f_broccoli',   name:'Broccoli',        nameAr:'بروكلي',           category:'vegetables', emoji:'🥦', serving:100, unit:'g', qty:'100g',            cal:34,  protein_g:2.8,  carbs_g:7,   fat_g:0.4, p:2.8,  c:7,   f:0.4,  source:'builtin' },
  { id:'f_onion',      name:'Onion',           nameAr:'بصل',              category:'vegetables', emoji:'🧅', serving:80,  unit:'g', qty:'1 small (80g)',   cal:32,  protein_g:0.9,  carbs_g:8,   fat_g:0.1, p:0.9,  c:8,   f:0.1,  source:'builtin' },
  { id:'f_spinach',    name:'Spinach',         nameAr:'سبانخ',            category:'vegetables', emoji:'🥬', serving:100, unit:'g', qty:'100g',            cal:23,  protein_g:2.9,  carbs_g:4,   fat_g:0.4, p:2.9,  c:4,   f:0.4,  source:'builtin' },

  // ── Dairy ────────────────────────────────────────────────────
  { id:'f_milk_full',  name:'Full Fat Milk',   nameAr:'لبن كامل الدسم',   category:'dairy',      emoji:'🥛', serving:250, unit:'ml',qty:'1 cup (250ml)',   cal:150, protein_g:8,    carbs_g:12,  fat_g:8,   p:8,    c:12,  f:8,    source:'builtin' },
  { id:'f_milk_low',   name:'Low Fat Milk',    nameAr:'لبن قليل الدسم',   category:'dairy',      emoji:'🥛', serving:250, unit:'ml',qty:'1 cup (250ml)',   cal:105, protein_g:8,    carbs_g:12,  fat_g:2.5, p:8,    c:12,  f:2.5,  source:'builtin' },

  // ── Bread & Bakery ───────────────────────────────────────────
  { id:'f_baladi',     name:'Baladi Bread',    nameAr:'عيش بلدي',         category:'bread',      emoji:'🫓', serving:100, unit:'g', qty:'1 loaf (100g)',   cal:265, protein_g:8,    carbs_g:55,  fat_g:1,   p:8,    c:55,  f:1,    source:'builtin' },
  { id:'f_baladi_half',name:'Baladi Bread ½',  nameAr:'نص عيش بلدي',      category:'bread',      emoji:'🫓', serving:50,  unit:'g', qty:'½ loaf (50g)',    cal:133, protein_g:4,    carbs_g:28,  fat_g:0.5, p:4,    c:28,  f:0.5,  source:'builtin' },
  { id:'f_toast_white',name:'White Toast',     nameAr:'عيش توست أبيض',    category:'bread',      emoji:'🍞', serving:30,  unit:'g', qty:'1 slice (30g)',   cal:80,  protein_g:3,    carbs_g:15,  fat_g:1,   p:3,    c:15,  f:1,    source:'builtin' },
  { id:'f_toast_brown',name:'Whole Wheat Toast',nameAr:'عيش توست أسمر',   category:'bread',      emoji:'🍞', serving:35,  unit:'g', qty:'1 slice (35g)',   cal:85,  protein_g:4,    carbs_g:15,  fat_g:1.5, p:4,    c:15,  f:1.5,  source:'builtin' },
  { id:'f_pita',       name:'Pita Bread',      nameAr:'عيش شامي',         category:'bread',      emoji:'🫓', serving:65,  unit:'g', qty:'1 pita (65g)',    cal:165, protein_g:5.5,  carbs_g:33,  fat_g:0.6, p:5.5,  c:33,  f:0.6,  source:'builtin' },
  { id:'f_croissant',  name:'Croissant',       nameAr:'كرواسون',          category:'bread',      emoji:'🥐', serving:60,  unit:'g', qty:'1 medium (60g)', cal:230, protein_g:5,    carbs_g:26,  fat_g:12,  p:5,    c:26,  f:12,   source:'builtin' },

  // ── Rice & Grains ────────────────────────────────────────────
  { id:'f_rice_white', name:'White Rice',      nameAr:'أرز أبيض مطبوخ',  category:'grains',     emoji:'🍚', serving:200, unit:'g', qty:'1 cup cooked',    cal:260, protein_g:5,    carbs_g:57,  fat_g:0.4, p:5,    c:57,  f:0.4,  source:'builtin' },
  { id:'f_rice_brown', name:'Brown Rice',      nameAr:'أرز بني مطبوخ',   category:'grains',     emoji:'🍚', serving:200, unit:'g', qty:'1 cup cooked',    cal:220, protein_g:4.5,  carbs_g:46,  fat_g:1.6, p:4.5,  c:46,  f:1.6,  source:'builtin' },
  { id:'f_pasta',      name:'Pasta (cooked)',  nameAr:'مكرونة مطبوخة',   category:'grains',     emoji:'🍝', serving:200, unit:'g', qty:'1 cup cooked',    cal:264, protein_g:9,    carbs_g:53,  fat_g:1.2, p:9,    c:53,  f:1.2,  source:'builtin' },
  { id:'f_oats',       name:'Oats (dry)',      nameAr:'شوفان',            category:'grains',     emoji:'🌾', serving:40,  unit:'g', qty:'½ cup (40g dry)', cal:148, protein_g:6.5,  carbs_g:25,  fat_g:2.8, p:6.5,  c:25,  f:2.8,  source:'builtin' },
  { id:'f_lentils',    name:'Lentils (cooked)',nameAr:'عدس مطبوخ',        category:'grains',     emoji:'🫘', serving:200, unit:'g', qty:'1 cup cooked',    cal:230, protein_g:18,   carbs_g:40,  fat_g:0.8, p:18,   c:40,  f:0.8,  source:'builtin' },
  { id:'f_beans',      name:'Beans (cooked)',  nameAr:'فاصوليا مطبوخة',  category:'grains',     emoji:'🫘', serving:200, unit:'g', qty:'1 cup cooked',    cal:220, protein_g:14,   carbs_g:40,  fat_g:1,   p:14,   c:40,  f:1,    source:'builtin' },

  // ── Meat ─────────────────────────────────────────────────────
  { id:'f_beef_ground',name:'Ground Beef',     nameAr:'لحم مفروم',        category:'meat',       emoji:'🥩', serving:100, unit:'g', qty:'100g cooked',     cal:215, protein_g:26,   carbs_g:0,   fat_g:12,  p:26,   c:0,   f:12,   source:'builtin' },
  { id:'f_beef_steak', name:'Beef Steak',      nameAr:'ستيك لحم',         category:'meat',       emoji:'🥩', serving:150, unit:'g', qty:'150g cooked',     cal:300, protein_g:40,   carbs_g:0,   fat_g:15,  p:40,   c:0,   f:15,   source:'builtin' },
  { id:'f_kofta',      name:'Kofta',           nameAr:'كفتة',             category:'meat',       emoji:'🍢', serving:100, unit:'g', qty:'2 skewers (100g)',cal:255, protein_g:22,   carbs_g:5,   fat_g:15,  p:22,   c:5,   f:15,   source:'builtin' },

  // ── Chicken ──────────────────────────────────────────────────
  { id:'f_chicken_breast',name:'Chicken Breast',nameAr:'صدر فراخ مشوي',  category:'chicken',    emoji:'🍗', serving:140, unit:'g', qty:'140g grilled',    cal:231, protein_g:43,   carbs_g:0,   fat_g:5,   p:43,   c:0,   f:5,    source:'builtin' },
  { id:'f_chicken_thigh', name:'Chicken Thigh', nameAr:'فخدة فراخ',      category:'chicken',    emoji:'🍗', serving:100, unit:'g', qty:'100g cooked',     cal:190, protein_g:26,   carbs_g:0,   fat_g:9,   p:26,   c:0,   f:9,    source:'builtin' },
  { id:'f_chicken_whole', name:'Grilled Chicken',nameAr:'فراخ مشوية',    category:'chicken',    emoji:'🐔', serving:200, unit:'g', qty:'200g',            cal:330, protein_g:60,   carbs_g:0,   fat_g:8,   p:60,   c:0,   f:8,    source:'builtin' },

  // ── Fish ─────────────────────────────────────────────────────
  { id:'f_tuna_can',   name:'Tuna (canned)',   nameAr:'تونة معلبة',       category:'fish',       emoji:'🐟', serving:80,  unit:'g', qty:'½ can (80g)',     cal:112, protein_g:25,   carbs_g:0,   fat_g:1,   p:25,   c:0,   f:1,    source:'builtin' },
  { id:'f_salmon',     name:'Salmon Fillet',   nameAr:'سالمون',           category:'fish',       emoji:'🐟', serving:140, unit:'g', qty:'140g',            cal:280, protein_g:38,   carbs_g:0,   fat_g:14,  p:38,   c:0,   f:14,   source:'builtin' },
  { id:'f_bouri',      name:'Bouri Fish',      nameAr:'سمك بوري',         category:'fish',       emoji:'🐟', serving:150, unit:'g', qty:'150g',            cal:195, protein_g:28,   carbs_g:0,   fat_g:8,   p:28,   c:0,   f:8,    source:'builtin' },
  { id:'f_shrimp',     name:'Shrimp (cooked)', nameAr:'جمبري',            category:'fish',       emoji:'🦐', serving:100, unit:'g', qty:'100g',            cal:99,  protein_g:24,   carbs_g:0,   fat_g:0.3, p:24,   c:0,   f:0.3,  source:'builtin' },

  // ── Eggs ─────────────────────────────────────────────────────
  { id:'f_egg',        name:'Egg (whole)',     nameAr:'بيضة',             category:'eggs',       emoji:'🥚', serving:60,  unit:'g', qty:'1 large egg',     cal:86,  protein_g:7.5,  carbs_g:0.7, fat_g:5.8, p:7.5,  c:0.7, f:5.8,  source:'builtin' },
  { id:'f_egg_white',  name:'Egg White',       nameAr:'بياض بيضة',        category:'eggs',       emoji:'🥚', serving:30,  unit:'g', qty:'1 white (30g)',   cal:17,  protein_g:3.6,  carbs_g:0.2, fat_g:0.1, p:3.6,  c:0.2, f:0.1,  source:'builtin' },
  { id:'f_egg_fried',  name:'Fried Egg',       nameAr:'بيضة مقلية',       category:'eggs',       emoji:'🍳', serving:60,  unit:'g', qty:'1 large egg',     cal:120, protein_g:7,    carbs_g:0.7, fat_g:9,   p:7,    c:0.7, f:9,    source:'builtin' },

  // ── Cheese ───────────────────────────────────────────────────
  { id:'f_mozzarella', name:'Mozzarella',      nameAr:'موزاريلا',         category:'cheese',     emoji:'🧀', serving:30,  unit:'g', qty:'30g',             cal:80,  protein_g:6,    carbs_g:0.6, fat_g:6,   p:6,    c:0.6, f:6,    source:'builtin' },
  { id:'f_cottage',    name:'Cottage Cheese',  nameAr:'جبنة كوتج',        category:'cheese',     emoji:'🧀', serving:100, unit:'g', qty:'100g',            cal:98,  protein_g:11,   carbs_g:3.4, fat_g:4.3, p:11,   c:3.4, f:4.3,  source:'builtin' },
  { id:'f_cheddar',    name:'Cheddar',         nameAr:'جبنة شيدر',        category:'cheese',     emoji:'🧀', serving:30,  unit:'g', qty:'30g',             cal:120, protein_g:7.5,  carbs_g:0.4, fat_g:10,  p:7.5,  c:0.4, f:10,   source:'builtin' },
  { id:'f_feta',       name:'Feta Cheese',     nameAr:'جبنة فيتا',        category:'cheese',     emoji:'🧀', serving:30,  unit:'g', qty:'30g',             cal:75,  protein_g:4,    carbs_g:1.2, fat_g:6,   p:4,    c:1.2, f:6,    source:'builtin' },
  { id:'f_romi',       name:'Romi Cheese',     nameAr:'جبنة رومي',        category:'cheese',     emoji:'🧀', serving:30,  unit:'g', qty:'30g',             cal:115, protein_g:8,    carbs_g:0.5, fat_g:9,   p:8,    c:0.5, f:9,    source:'builtin' },
  { id:'f_salt_cheese',name:'White Salt Cheese',nameAr:'جبنة ملح',        category:'cheese',     emoji:'🧀', serving:30,  unit:'g', qty:'30g',             cal:75,  protein_g:4.5,  carbs_g:0.5, fat_g:6,   p:4.5,  c:0.5, f:6,    source:'builtin' },

  // ── Yogurt ───────────────────────────────────────────────────
  { id:'f_greek_yogurt',name:'Greek Yogurt',   nameAr:'زبادي يوناني',     category:'yogurt',     emoji:'🥛', serving:150, unit:'g', qty:'150g',            cal:100, protein_g:17,   carbs_g:6,   fat_g:0,   p:17,   c:6,   f:0,    source:'builtin' },
  { id:'f_yogurt_full', name:'Full Fat Yogurt',nameAr:'زبادي كامل الدسم', category:'yogurt',     emoji:'🥛', serving:200, unit:'g', qty:'1 cup (200g)',    cal:122, protein_g:8,    carbs_g:10,  fat_g:5,   p:8,    c:10,  f:5,    source:'builtin' },
  { id:'f_yogurt_low',  name:'Low Fat Yogurt', nameAr:'زبادي قليل الدسم', category:'yogurt',     emoji:'🥛', serving:150, unit:'g', qty:'150g',            cal:83,  protein_g:6,    carbs_g:13,  fat_g:1.5, p:6,    c:13,  f:1.5,  source:'builtin' },

  // ── Nuts & Seeds ─────────────────────────────────────────────
  { id:'f_almonds',    name:'Almonds',         nameAr:'لوز',              category:'nuts',       emoji:'🥜', serving:28,  unit:'g', qty:'1 handful (28g)', cal:164, protein_g:6,    carbs_g:6,   fat_g:14,  p:6,    c:6,   f:14,   source:'builtin' },
  { id:'f_walnuts',    name:'Walnuts',         nameAr:'جوز',              category:'nuts',       emoji:'🥜', serving:28,  unit:'g', qty:'28g',             cal:185, protein_g:4,    carbs_g:4,   fat_g:18,  p:4,    c:4,   f:18,   source:'builtin' },
  { id:'f_peanuts',    name:'Peanuts',         nameAr:'فول سوداني',       category:'nuts',       emoji:'🥜', serving:28,  unit:'g', qty:'28g',             cal:161, protein_g:7,    carbs_g:5,   fat_g:14,  p:7,    c:5,   f:14,   source:'builtin' },
  { id:'f_pb',         name:'Peanut Butter',   nameAr:'زبدة فول سوداني',  category:'nuts',       emoji:'🥜', serving:32,  unit:'g', qty:'2 tbsp (32g)',    cal:190, protein_g:8,    carbs_g:7,   fat_g:16,  p:8,    c:7,   f:16,   source:'builtin' },
  { id:'f_cashews',    name:'Cashews',         nameAr:'كاجو',             category:'nuts',       emoji:'🥜', serving:28,  unit:'g', qty:'28g',             cal:157, protein_g:5,    carbs_g:9,   fat_g:12,  p:5,    c:9,   f:12,   source:'builtin' },

  // ── Oils & Fats ──────────────────────────────────────────────
  { id:'f_olive_oil',  name:'Olive Oil',       nameAr:'زيت زيتون',        category:'oils',       emoji:'🫙', serving:14,  unit:'g', qty:'1 tbsp (14g)',    cal:119, protein_g:0,    carbs_g:0,   fat_g:14,  p:0,    c:0,   f:14,   source:'builtin' },
  { id:'f_butter',     name:'Butter',          nameAr:'زبدة',             category:'oils',       emoji:'🧈', serving:14,  unit:'g', qty:'1 tbsp (14g)',    cal:102, protein_g:0.1,  carbs_g:0,   fat_g:12,  p:0.1,  c:0,   f:12,   source:'builtin' },
  { id:'f_sunflower',  name:'Sunflower Oil',   nameAr:'زيت عباد الشمس',   category:'oils',       emoji:'🫙', serving:14,  unit:'g', qty:'1 tbsp (14g)',    cal:124, protein_g:0,    carbs_g:0,   fat_g:14,  p:0,    c:0,   f:14,   source:'builtin' },

  // ── Sauces & Condiments ──────────────────────────────────────
  { id:'f_honey',      name:'Honey',           nameAr:'عسل',              category:'sauces',     emoji:'🍯', serving:21,  unit:'g', qty:'1 tbsp (21g)',    cal:64,  protein_g:0.1,  carbs_g:17,  fat_g:0,   p:0.1,  c:17,  f:0,    source:'builtin' },
  { id:'f_ketchup',    name:'Ketchup',         nameAr:'كاتشب',            category:'sauces',     emoji:'🍅', serving:15,  unit:'g', qty:'1 tbsp (15g)',    cal:18,  protein_g:0.3,  carbs_g:4,   fat_g:0.1, p:0.3,  c:4,   f:0.1,  source:'builtin' },
  { id:'f_mayo',       name:'Mayonnaise',      nameAr:'مايونيز',          category:'sauces',     emoji:'🫙', serving:15,  unit:'g', qty:'1 tbsp (15g)',    cal:103, protein_g:0.1,  carbs_g:0.1, fat_g:11,  p:0.1,  c:0.1, f:11,   source:'builtin' },
  { id:'f_tomato_sauce',name:'Tomato Sauce',   nameAr:'صلصة طماطم',       category:'sauces',     emoji:'🍅', serving:50,  unit:'g', qty:'50g',             cal:35,  protein_g:1,    carbs_g:7,   fat_g:0.5, p:1,    c:7,   f:0.5,  source:'builtin' },

  // ── Drinks ───────────────────────────────────────────────────
  { id:'f_oj',         name:'Orange Juice',    nameAr:'عصير برتقال',      category:'drinks',     emoji:'🍊', serving:250, unit:'ml',qty:'1 cup (250ml)',   cal:112, protein_g:1.7,  carbs_g:26,  fat_g:0.5, p:1.7,  c:26,  f:0.5,  source:'builtin' },
  { id:'f_coffee_black',name:'Black Coffee',   nameAr:'قهوة سوداء',       category:'drinks',     emoji:'☕', serving:240, unit:'ml',qty:'1 cup (240ml)',   cal:5,   protein_g:0.3,  carbs_g:0,   fat_g:0,   p:0.3,  c:0,   f:0,    source:'builtin' },
  { id:'f_latte',      name:'Milk Coffee (Latte)',nameAr:'لاتيه',         category:'drinks',     emoji:'☕', serving:240, unit:'ml',qty:'1 cup (240ml)',   cal:150, protein_g:8,    carbs_g:15,  fat_g:5,   p:8,    c:15,  f:5,    source:'builtin' },
  { id:'f_green_tea',  name:'Green Tea',       nameAr:'شاي أخضر',         category:'drinks',     emoji:'🍵', serving:240, unit:'ml',qty:'1 cup (240ml)',   cal:2,   protein_g:0,    carbs_g:0,   fat_g:0,   p:0,    c:0,   f:0,    source:'builtin' },
  { id:'f_ayran',      name:'Yogurt Drink',    nameAr:'لبن سائل / عيران', category:'drinks',     emoji:'🥛', serving:200, unit:'ml',qty:'1 cup (200ml)',   cal:62,  protein_g:4,    carbs_g:6,   fat_g:2,   p:4,    c:6,   f:2,    source:'builtin' },

  // ── Snacks ───────────────────────────────────────────────────
  { id:'f_chips',      name:'Potato Chips',    nameAr:'شيبسي',            category:'snacks',     emoji:'🥔', serving:30,  unit:'g', qty:'small bag (30g)', cal:160, protein_g:2,    carbs_g:15,  fat_g:10,  p:2,    c:15,  f:10,   source:'builtin' },
  { id:'f_rice_cakes', name:'Rice Cakes',      nameAr:'كعك أرز',          category:'snacks',     emoji:'🫓', serving:18,  unit:'g', qty:'2 pieces (18g)',  cal:70,  protein_g:1.5,  carbs_g:15,  fat_g:0.5, p:1.5,  c:15,  f:0.5,  source:'builtin' },
  { id:'f_dark_choc',  name:'Dark Chocolate',  nameAr:'شيكولاتة داكنة',   category:'snacks',     emoji:'🍫', serving:30,  unit:'g', qty:'2-3 squares (30g)',cal:170,protein_g:2.5,  carbs_g:13,  fat_g:12,  p:2.5,  c:13,  f:12,   source:'builtin' },

  // ── Desserts ─────────────────────────────────────────────────
  { id:'f_baklava',    name:'Baklava',         nameAr:'بقلاوة',           category:'desserts',   emoji:'🍮', serving:40,  unit:'g', qty:'1 piece (40g)',   cal:170, protein_g:3,    carbs_g:21,  fat_g:9,   p:3,    c:21,  f:9,    source:'builtin' },
  { id:'f_kunafa',     name:'Konafeh',         nameAr:'كنافة',            category:'desserts',   emoji:'🍮', serving:150, unit:'g', qty:'1 serving (150g)',cal:420, protein_g:8,    carbs_g:55,  fat_g:20,  p:8,    c:55,  f:20,   source:'builtin' },

  // ── Egyptian Foods ───────────────────────────────────────────
  { id:'f_foul',       name:'Foul Medames',    nameAr:'فول مدمس',         category:'egyptian',   emoji:'🫘', serving:200, unit:'g', qty:'1 bowl (200g)',   cal:200, protein_g:14,   carbs_g:30,  fat_g:2,   p:14,   c:30,  f:2,    source:'builtin' },
  { id:'f_koshary',    name:'Koshary',         nameAr:'كشري',             category:'egyptian',   emoji:'🍲', serving:300, unit:'g', qty:'1 plate (300g)',  cal:450, protein_g:12,   carbs_g:85,  fat_g:6,   p:12,   c:85,  f:6,    source:'builtin' },
  { id:'f_tameya',     name:"Ta'ameya (Falafel)",nameAr:'طعمية',          category:'egyptian',   emoji:'🟢', serving:70,  unit:'g', qty:'3 pieces (70g)', cal:200, protein_g:8,    carbs_g:20,  fat_g:10,  p:8,    c:20,  f:10,   source:'builtin' },
  { id:'f_lentil_soup',name:'Lentil Soup',     nameAr:'شوربة عدس',        category:'egyptian',   emoji:'🍲', serving:250, unit:'ml',qty:'1 bowl (250ml)',  cal:150, protein_g:10,   carbs_g:25,  fat_g:1,   p:10,   c:25,  f:1,    source:'builtin' },
  { id:'f_hawawshi',   name:'Hawawshi',        nameAr:'حواوشي',           category:'egyptian',   emoji:'🥙', serving:200, unit:'g', qty:'1 sandwich (200g)',cal:490,protein_g:28,   carbs_g:40,  fat_g:22,  p:28,   c:40,  f:22,   source:'builtin' },
  { id:'f_shawarma',   name:'Shawarma',        nameAr:'شاورما',           category:'egyptian',   emoji:'🌯', serving:200, unit:'g', qty:'1 wrap (200g)',   cal:420, protein_g:30,   carbs_g:35,  fat_g:15,  p:30,   c:35,  f:15,   source:'builtin' },
  { id:'f_bechamel',   name:'Macarona Béchamel',nameAr:'مكرونة بشاميل',  category:'egyptian',   emoji:'🍝', serving:300, unit:'g', qty:'1 portion (300g)',cal:480, protein_g:22,   carbs_g:50,  fat_g:22,  p:22,   c:50,  f:22,   source:'builtin' },
  { id:'f_fattah',     name:'Fattah',          nameAr:'فتة',              category:'egyptian',   emoji:'🍲', serving:300, unit:'g', qty:'1 bowl (300g)',   cal:480, protein_g:20,   carbs_g:65,  fat_g:16,  p:20,   c:65,  f:16,   source:'builtin' },
];

// ─────────────────────────────────────────────────────────────
// FOOD CATEGORIES for filtering
// ─────────────────────────────────────────────────────────────
const NUTRI_FOOD_CATEGORIES = [
  { id:'all',        label:'All',        emoji:'🍽️' },
  { id:'fruits',     label:'Fruits',     emoji:'🍎',  labelAr:'فواكه' },
  { id:'vegetables', label:'Vegetables', emoji:'🥦',  labelAr:'خضروات' },
  { id:'dairy',      label:'Dairy',      emoji:'🥛',  labelAr:'ألبان' },
  { id:'bread',      label:'Bread',      emoji:'🍞',  labelAr:'خبز' },
  { id:'grains',     label:'Grains',     emoji:'🌾',  labelAr:'حبوب' },
  { id:'meat',       label:'Meat',       emoji:'🥩',  labelAr:'لحوم' },
  { id:'chicken',    label:'Chicken',    emoji:'🍗',  labelAr:'دجاج' },
  { id:'fish',       label:'Fish',       emoji:'🐟',  labelAr:'أسماك' },
  { id:'eggs',       label:'Eggs',       emoji:'🥚',  labelAr:'بيض' },
  { id:'cheese',     label:'Cheese',     emoji:'🧀',  labelAr:'جبن' },
  { id:'yogurt',     label:'Yogurt',     emoji:'🥛',  labelAr:'زبادي' },
  { id:'nuts',       label:'Nuts',       emoji:'🥜',  labelAr:'مكسرات' },
  { id:'oils',       label:'Oils',       emoji:'🫙',  labelAr:'زيوت' },
  { id:'sauces',     label:'Sauces',     emoji:'🍯',  labelAr:'صوصات' },
  { id:'drinks',     label:'Drinks',     emoji:'🥤',  labelAr:'مشروبات' },
  { id:'snacks',     label:'Snacks',     emoji:'🍿',  labelAr:'وجبات خفيفة' },
  { id:'desserts',   label:'Desserts',   emoji:'🍮',  labelAr:'حلويات' },
  { id:'egyptian',   label:'Egyptian',   emoji:'🇪🇬', labelAr:'أكل مصري' },
];

const NUTRI_MEAL_LABEL = { breakfast: 'Breakfast', lunch: 'Lunch', dinner: 'Dinner', snacks: 'Snacks', snack: 'Snack' };
const NUTRI_MEAL_ICON  = { breakfast: '☀️', lunch: '🌞', dinner: '🌙', snacks: '✨', snack: '✨' };
const NUTRI_MEAL_COLOR = { breakfast: '#F5D77A', lunch: '#F0A67A', dinner: '#A99CE0', snacks: '#9ED1C0', snack: '#9ED1C0' };

// ─────────────────────────────────────────────────────────────
// HELPERS
// ─────────────────────────────────────────────────────────────
function nutriDayTotals(entries, dateISO) {
  return entries.filter(e => e.date === dateISO).reduce((a, e) => ({
    calories:  a.calories  + (+e.calories  || 0),
    protein_g: a.protein_g + (+e.protein_g || 0),
    carbs_g:   a.carbs_g   + (+e.carbs_g   || 0),
    fat_g:     a.fat_g     + (+e.fat_g     || 0),
  }), { calories: 0, protein_g: 0, carbs_g: 0, fat_g: 0 });
}

function nutriWeekTotals(entries) {
  const byDay = {};
  entries.forEach(e => {
    if (!byDay[e.date]) byDay[e.date] = { calories: 0, p: 0, c: 0, f: 0 };
    byDay[e.date].calories += (+e.calories  || 0);
    byDay[e.date].p        += (+e.protein_g || 0);
    byDay[e.date].c        += (+e.carbs_g   || 0);
    byDay[e.date].f        += (+e.fat_g     || 0);
  });
  return byDay;
}

// Scale food macros by new amount vs default serving
function nutriScaleFood(food, newAmount) {
  const ratio = (+newAmount || food.serving) / food.serving;
  return {
    cal:       Math.round(food.cal       * ratio),
    protein_g: +((food.protein_g * ratio).toFixed(1)),
    carbs_g:   +((food.carbs_g   * ratio).toFixed(1)),
    fat_g:     +((food.fat_g     * ratio).toFixed(1)),
  };
}

Object.assign(window, {
  NUTRI_GOALS, NUTRI_FOODS, NUTRI_FOOD_CATEGORIES,
  NUTRI_TODAY, NUTRI_MEAL_LABEL, NUTRI_MEAL_ICON, NUTRI_MEAL_COLOR,
  nutriDayTotals, nutriWeekTotals, nutriScaleFood,
  daysAgo, isoOf, todayISO,
});
