Diet plan for for stomach, lungs, liver , kidney,muscle growth

Asking for Preferences
Given the multiple diagnosed conditions here, I want to make sure I give you a well-researched, safe plan. Let me pull from medical literature and current dietary guidelines simultaneously.
Searching sources...
Reading File
Searching the Web

diet plan fatty liver GERD IBS kidney disease COPD asthma muscle growth 2025

Searching PubMed

diet nutrition fatty liver kidney disease COPD IBS

Finding Sources
Searching PubMed

Mediterranean diet fatty liver kidney disease muscle

Searching PubMed

diet nutrition COPD asthma lung function

Finding Sources
Searching PubMed

dietary protein muscle mass chronic disease

Searching PubMed

diet IBS GERD gastroesophageal reflux food

Reading File
Reading File
Finding Sources
Reading File
Finding Sources
Finding Sources
Reading File
Finding Sources
Finding Sources
Finding Sources
Finding Sources
I now have enough from multiple authoritative sources to build a comprehensive, condition-aware plan. Here it is:

Comprehensive Diet Plan for Organ Health + Muscle Growth

Important medical note: You have confirmed diagnoses of fatty liver (MASLD), IBS, GERD, kidney disease/stones, and a lung condition (COPD/asthma). This plan addresses all five simultaneously, but managing these together involves real trade-offs (e.g., high-protein for muscle vs. protein restriction for kidney disease). Please review this with your doctor and a registered dietitian before starting, especially regarding your kidney stage and COPD severity.

The Core Framework: Modified Mediterranean Diet

This is the single best evidence-based foundation for all your conditions. It covers fatty liver reversal (Mayo Clinic, 2025), muscle preservation, gut health, and inflammation reduction across organs.

Condition-by-Condition Dietary Rules

πŸ«€ Liver (Fatty Liver / MASLD)

Eat more:
  • Extra virgin olive oil (4 tbsp/day - shown to reduce liver fat and inflammation)
  • Coffee, 2-3 cups/day (unsweetened - strong evidence for liver protection)
  • Fatty fish: salmon, sardines, mackerel (2-3x/week)
  • Cruciferous vegetables: broccoli, cauliflower, Brussels sprouts
  • Walnuts, flaxseeds, almonds
  • Whole grains: oats, brown rice, quinoa
  • Berries (blueberries, raspberries) - rich in antioxidants
Avoid or minimize:
  • All added sugars (fructose corn syrup, sodas, fruit juice, sweets) - the main driver of liver fat
  • Refined carbohydrates: white bread, white rice, pastries
  • Trans fats and fried foods
  • Red meat and processed meats
  • Alcohol (especially with liver disease - avoid entirely)
Target: Modest weight loss of 5-10% body weight significantly reduces liver fat. Aim for calorie deficit of 500 kcal/day through food quality, not starvation.

🫁 Lungs (COPD / Asthma)

Eat more:
  • Energy-dense, easy-to-eat foods (ventilatory muscles demand more calories as COPD progresses; patients with breathlessness often under-eat) - Swanson's Family Medicine Review
  • Antioxidant-rich foods: tomatoes (lycopene), leafy greens (Vitamin E, C), bell peppers, citrus
  • Omega-3 fatty acids (fish, walnuts, chia seeds) - anti-inflammatory for airways
  • Magnesium-rich foods: leafy greens, nuts, seeds, legumes (bronchodilatory effect)
  • Small, frequent meals - large meals push the diaphragm up and worsen breathlessness
Avoid:
  • Large single meals (causes diaphragm compression, worsens dyspnea in COPD)
  • Carbonated drinks (causes bloating and breathing difficulty)
  • Sulfite-heavy foods (wine, dried fruit) - asthma trigger
  • Very high carbohydrate meals (carbs produce more CO2 on metabolism - problematic in COPD)
Tip: In COPD, eat your largest meal early in the day when energy is highest. Soft, easy-to-chew foods reduce effort and calorie expenditure during meals.

🩺 Stomach & Gut (IBS + GERD)

For both IBS and GERD:
  • Small, frequent meals (5-6 small meals rather than 3 large ones)
  • Eat slowly, chew thoroughly
  • Last meal at least 3 hours before sleeping (NCM dietary guidelines)
  • Stay upright for 2-3 hours after meals (for GERD)
  • Maintain a healthy weight (excess abdominal fat worsens GERD)
For IBS - Low FODMAP Diet (best evidence - systematic review, Nutrients 2025, PMID 40573159):
Avoid HIGH-FODMAP foods:
  • Wheat, rye (excess fructans)
  • Garlic, onions (high fructans)
  • Apples, pears, watermelon, mango
  • Legumes/beans (high galacto-oligosaccharides)
  • Milk, soft cheese, yogurt (lactose)
  • Cauliflower, mushrooms
Eat LOW-FODMAP foods freely:
  • Rice, oats, quinoa, sourdough bread
  • Carrots, spinach, zucchini, tomatoes, eggplant
  • Strawberries, blueberries, oranges, kiwi
  • Eggs, fish, tofu, firm cheese
  • Almond milk, lactose-free dairy
For GERD - Avoid trigger foods:
  • Acidic foods: tomatoes, citrus (in excess)
  • Chocolate, mint (relax lower esophageal sphincter)
  • Fatty/fried foods, spicy foods
  • Coffee in excess (2-3 cups max; don't drink on empty stomach)
  • Carbonated drinks
IBS-GERD balance note: Some foods like tomatoes are good for COPD/liver but trigger GERD - consume cooked tomatoes in modest portions rather than raw/acidic sauces.

🫘 Kidneys (CKD / Kidney Stones)

This is the most important dietary constraint. The plan depends on your CKD stage (ask your doctor for your eGFR):
CKD StageeGFRProtein Target
Stage 1-2>600.8 g/kg/day
Stage 330-590.6-0.8 g/kg/day
Stage 4-5 (pre-dialysis)<300.3-0.6 g/kg/day
Dialysis-1.2 g/kg/day (higher)
Source: Brenner & Rector's The Kidney + PMID 39340710
General kidney dietary rules:
  • Reduce sodium to under 2g/day (avoid salt substitutes with potassium - can cause hyperkalemia)
  • Limit phosphorus: Avoid processed foods, cola drinks, packaged meats
  • Manage potassium if levels are elevated (reduce bananas, potatoes, oranges, tomatoes if told to by your doctor)
  • Hydration: 8-10 glasses of water/day (prevents kidney stones - most important for stone prevention)
  • Limit oxalate (for calcium oxalate stones): spinach, nuts, beets in large quantities
  • Plant-based protein is preferred over animal protein (less phosphorus and acid load)
CKD + Muscle Growth conflict: High protein for muscle (1.6 g/kg/day) can worsen CKD. The solution is:
  • Use vegetarian sources (tofu, legumes, plant protein - lower phosphorus and acid load)
  • Consider ketoanalog supplements (keto acids) with physician supervision - evidence shows these allow muscle support while protecting kidneys (PMID 39340710)
  • Focus muscle building on resistance exercise rather than protein excess

πŸ’ͺ Muscle Growth

Given CKD, you cannot do the standard "bodybuilder high-protein" approach. Here is what works:
  • Protein target: Work within your CKD-appropriate limit. Even at 0.8 g/kg/day, consistent intake spread across meals supports muscle when paired with resistance exercise
  • Timing: Distribute protein evenly across 4-5 meals (20-30g per meal) - this maximizes muscle protein synthesis per gram consumed
  • Quality sources (kidney-friendly): Eggs (limit yolks if high phosphorus), fish, chicken breast (over red meat), tofu, edamame, quinoa (complete protein)
  • Leucine-rich foods: Eggs, fish, soy - leucine is the key amino acid for triggering muscle protein synthesis
  • Resistance training + protein works better than protein alone - 3x/week strength training is the most effective muscle-building intervention at any protein level
  • Creatine supplements: Discuss with your nephrologist - creatine artificially raises serum creatinine (looks like worsening kidney function) but is generally safe in early CKD

7-Day Sample Meal Framework

MealWhat to Eat
BreakfastOats with blueberries + walnuts + chia seeds + 1 tbsp olive oil drizzled over + black coffee
Mid-morning2 boiled eggs + orange (or kiwi) + small handful of almonds
LunchGrilled salmon or chicken breast + brown rice or quinoa + steamed zucchini/spinach + olive oil
Afternoon snackLactose-free yogurt (low-FODMAP) or firm cheese + cucumber slices
Dinner (small, 3h before bed)Baked fish or tofu + roasted carrots/bell peppers + small portion oats or rice
Hydration8-10 glasses of plain water/day. Herbal teas (ginger, peppermint for IBS). Limit coffee to 2-3 cups. No soda.

Foods Ranked by Multi-Organ Benefit

FoodLiverLungsGutKidneyMuscle
Salmon/sardinesβœ…βœ…βœ…βœ… (limit portions)βœ…
Olive oilβœ…βœ…βœ…βœ…-
Blueberriesβœ…βœ…βœ…βœ…-
Eggsβœ…βœ…βœ…βœ… (limit yolk)βœ…
Oatsβœ…βœ…βœ…βœ…βœ…
Tofu/soyβœ…-βœ…βœ… (low phosphorus vs meat)βœ…
Walnutsβœ…βœ…βœ…βš οΈ (limit if high potassium)βœ…
Coffee (2-3 cups)βœ…βœ…βš οΈ (avoid on empty stomach)βœ…-

What to Avoid Across All Conditions

  • Alcohol
  • Processed/packaged foods (high sodium, phosphorus, trans fats)
  • Sugary drinks and added sugar
  • Large meals late at night
  • Red and processed meats (daily consumption)
  • Carbonated drinks

Key Supplements to Discuss with Your Doctor

SupplementReasonCaution
Omega-3 (fish oil)Liver, lungs, inflammationDose-dependent
Vitamin DMuscle, immunity, lungsCheck levels first
Magnesium glycinateLungs/airways, IBS (constipation type)Caution in CKD
Ketoanalog amino acidsMuscle support within protein restriction in CKDPrescription-level supervision
ProbioticsIBS gut floraChoose species-specific

Disclaimer: This plan is educational and based on medical literature and clinical guidelines. Because you have multiple coexisting conditions (especially CKD + COPD + fatty liver), please consult your physician and a registered dietitian for personalized portion targets, protein limits based on your actual kidney function, and supplement safety. Never make major dietary changes for kidney disease without medical supervision.

Summerize it in two page 5:4 ratio created image

I'll create two summary infographic images in 5:4 ratio β€” Page 1 covering Liver, Lungs & Stomach, and Page 2 covering Kidneys, Muscle Growth & the weekly meal framework.
Generating Image

A clean, professional medical diet plan infographic poster in 5:4 ratio (landscape). Title at top: "ORGAN HEALTH DIET PLAN β€” PAGE 1 of 2" with a subtitle "For Fatty Liver, COPD/Asthma & IBS/GERD". Dark navy blue background with white and light green text. Three columns side by side: COLUMN 1 β€” LIVER (MASLD/Fatty Liver): Green icon of liver. EAT: Extra virgin olive oil (4 tbsp/day), Fatty fish (salmon, sardines 3x/week), Coffee 2-3 cups/day unsweetened, Blueberries & walnuts, Whole grains (oats, quinoa, brown rice), Cruciferous veggies (broccoli, cauliflower). AVOID: All added sugars & fructose, Fried & processed foods, Red/processed meats, Refined carbs (white bread, white rice), Alcohol completely. COLUMN 2 β€” LUNGS (COPD/Asthma): Blue lung icon. EAT: Small frequent meals (5-6/day), Antioxidant foods: bell peppers, spinach, citrus, Omega-3 fish & walnuts, Magnesium-rich: leafy greens, nuts, seeds, Easy-to-eat energy-dense foods. AVOID: Large single meals (worsens breathlessness), Carbonated drinks (causes bloating), Sulfite foods: wine, dried fruit, High-carb heavy meals (raises CO2), Eat largest meal early in the day. COLUMN 3 β€” STOMACH (IBS + GERD): Orange stomach icon. EAT (Low-FODMAP): Rice, oats, quinoa, sourdough, Carrots, spinach, zucchini, eggplant, Strawberries, blueberries, oranges, Eggs, fish, tofu, firm cheese, Lactose-free dairy. AVOID: High-FODMAP: wheat, garlic, onions, apples, beans, Acidic triggers: chocolate, mint, spicy food, Eat 3 hours before bedtime, Stay upright after meals (GERD). Bottom bar: "Foundation: Modified Mediterranean Diet β€” best evidence for all organ conditions". Clean infographic style, icons, bullet points, color-coded columns, professional medical design.

Generating Image

A clean, professional medical diet plan infographic poster in 5:4 ratio (landscape). Title at top: "ORGAN HEALTH DIET PLAN β€” PAGE 2 of 2" with subtitle "For Kidney Disease, Muscle Growth & Weekly Meal Plan". Dark navy blue background with white and amber/gold accent text. Three sections: LEFT SECTION β€” KIDNEYS (CKD + Stones): Red kidney icon. Protein targets table: Stage 1-2 (eGFR>60): 0.8g/kg/day | Stage 3 (eGFR 30-59): 0.6-0.8g/kg/day | Stage 4-5 pre-dialysis: 0.3-0.6g/kg/day | Dialysis: 1.2g/kg/day. RULES: Sodium under 2g/day, No salt substitutes with potassium, Avoid cola & processed foods (phosphorus), Drink 8-10 glasses water/day (stone prevention), Prefer plant protein over animal protein. AVOID: Processed meats, packaged foods, excess spinach/nuts (oxalate stones). MIDDLE SECTION β€” MUSCLE GROWTH (CKD-safe): Purple muscle/arm icon. Spread protein across 4-5 meals (20-30g per meal). Best sources: Eggs, salmon, tofu, edamame, quinoa, chicken breast. Leucine-rich foods trigger muscle synthesis. Resistance training 3x/week is KEY. Ketoanalog supplements (ask doctor). Even 0.8g/kg/day builds muscle with consistent exercise. RIGHT SECTION β€” 7-DAY MEAL FRAMEWORK: Yellow fork/plate icon. Breakfast: Oats + blueberries + walnuts + black coffee. Mid-morning: 2 boiled eggs + kiwi + almonds. Lunch: Grilled salmon/chicken + quinoa + steamed zucchini. Snack: Lactose-free yogurt + cucumber. Dinner (small, 3h before bed): Baked fish or tofu + roasted carrots + rice. Hydration: 8-10 glasses water + herbal teas. Bottom bar: "AVOID ACROSS ALL: Alcohol | Processed foods | Sugary drinks | Late large meals | Carbonated drinks | Red/processed meats daily". Bottom footnote small text: "Consult your physician and dietitian before starting β€” especially for kidney stage and protein limits." Clean icons, color-coded sections, professional medical infographic design.

Diet plan for - fatty liver gut health , muscle gain create image of it with diagram

Generating Image

A detailed, professional medical nutrition infographic poster. Title: "DIET PLAN: Fatty Liver + Gut Health + Muscle Gain" in bold white text on a deep teal/dark green background. Layout: Three main vertical sections with anatomical organ icons above each section (a liver illustration, a stomach/intestine illustration, and a muscle/bicep illustration drawn in clean medical diagram style). SECTION 1 β€” FATTY LIVER (liver diagram icon, golden yellow accent): Heading: "LIVER HEALTH" EAT: Extra virgin olive oil (4 tbsp/day), Salmon & sardines (3x/week), Unsweetened coffee (2-3 cups), Blueberries & walnuts, Oats, quinoa, brown rice, Broccoli & cauliflower, Avocado AVOID: Added sugars & fructose, Fried & processed foods, Alcohol, White bread & refined carbs, Red meat (excess) Key tip box: "5-10% weight loss can reverse fatty liver" SECTION 2 β€” GUT HEALTH / IBS (intestine diagram icon, orange accent): Heading: "GUT HEALTH" EAT (Low-FODMAP): Rice, oats, quinoa, sourdough, Carrots, zucchini, spinach, eggplant, Strawberries, blueberries, kiwi, oranges, Eggs, firm tofu, fish, lactose-free yogurt, Ginger & peppermint herbal teas, Probiotic-rich: kefir (lactose-free), miso AVOID: Garlic, onion, wheat, apples, beans, Fried/spicy food, Carbonated drinks, Eat 3 hours before bedtime, 5-6 small meals daily SECTION 3 β€” MUSCLE GAIN (bicep/muscle diagram icon, blue accent): Heading: "MUSCLE GROWTH" Protein per meal: 25-35g, Spread over 4-5 meals/day BEST SOURCES: Eggs (leucine-rich), Chicken breast, Salmon, Tofu & edamame, Quinoa (complete protein), Greek yogurt (lactose-free) TIMING: Post-workout protein within 2 hours, Resistance training 3x/week Key tip box: "Leucine triggers muscle protein synthesis" BOTTOM SECTION β€” "BEST FOODS FOR ALL 3 GOALS" β€” a horizontal row of illustrated food icons with labels: Salmon, Eggs, Oats, Blueberries, Olive Oil, Tofu, Quinoa, Walnuts β€” each with a small checkmark for which goal they support (liver/gut/muscle). BOTTOM BAR: "AVOID ACROSS ALL: Alcohol | Fried foods | Added sugar | Processed meats | Carbonated drinks" Style: Clean medical infographic, anatomical organ line drawings in each section header, food icons, color-coded sections, white text, professional nutrition poster design, no clutter.

Diet Plan: Fatty Liver + Gut Health + Muscle Gain
Here is your diet plan infographic covering all three goals. Here's a quick summary of what's inside:
Liver Health
  • Eat: Olive oil, salmon, coffee, blueberries, oats, broccoli, avocado
  • Avoid: Sugar, alcohol, fried food, refined carbs, excess red meat
  • Goal: 5-10% weight loss can reverse fatty liver
Gut Health (IBS-friendly)
  • Eat Low-FODMAP: Rice, oats, quinoa, carrots, kiwi, tofu, lactose-free yogurt, ginger tea
  • Avoid: Garlic, onions, wheat, apples, beans, fried/spicy food
  • Strategy: 5-6 small meals, stop eating 3 hours before bed
Muscle Gain
  • 25-35g protein per meal, spread across 4-5 meals/day
  • Best sources: Eggs, chicken, salmon, tofu, quinoa, lactose-free Greek yogurt
  • Resistance training 3x/week is essential alongside diet
Power foods that support ALL 3 goals: Salmon, eggs, oats, blueberries, olive oil, tofu, quinoa, and walnuts.
Would you like a second page with a 7-day meal plan, or a version of this in a downloadable format?

Generate a downloadable PDF with shopping list for this diet

Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || mkdir -p /home/daytona/workspace/diet-plan && echo "ready"

Running Command

mkdir -p /home/daytona/workspace/diet-plan && python3 -c "from reportlab.lib import colors; print('reportlab ok')"

Writing File

~/diet-plan/generate_pdf.py

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.units import cm, mm
from reportlab.platypus import (
    SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle,
    HRFlowable, KeepTogether
)
from reportlab.lib.enums import TA_CENTER, TA_LEFT, TA_RIGHT
from reportlab.platypus import PageBreak

OUTPUT = "/home/daytona/workspace/diet-plan/Diet_Plan_Fatty_Liver_Gut_Muscle.pdf"

# ── Colours ──────────────────────────────────────────────────────────────────
TEAL       = colors.HexColor("#0D5C63")
GOLD       = colors.HexColor("#F0A500")
ORANGE     = colors.HexColor("#E07B39")
BLUE       = colors.HexColor("#2B6CB0")
GREEN      = colors.HexColor("#276749")
LIGHT_TEAL = colors.HexColor("#E6F4F5")
LIGHT_GOLD = colors.HexColor("#FFF8E7")
LIGHT_BLUE = colors.HexColor("#EBF4FF")
LIGHT_ORG  = colors.HexColor("#FFF3EC")
LIGHT_GRN  = colors.HexColor("#F0FFF4")
DARK_TEXT  = colors.HexColor("#1A202C")
GREY_TEXT  = colors.HexColor("#4A5568")
WHITE      = colors.white
LIGHT_GREY = colors.HexColor("#F7FAFC")
MID_GREY   = colors.HexColor("#CBD5E0")

doc = SimpleDocTemplate(
    OUTPUT,
    pagesize=A4,
    rightMargin=1.8*cm,
    leftMargin=1.8*cm,
    topMargin=1.5*cm,
    bottomMargin=1.5*cm,
    title="Diet Plan: Fatty Liver, Gut Health & Muscle Gain",
    author="Orris Health Assistant"
)

W = A4[0] - 3.6*cm   # usable width

styles = getSampleStyleSheet()

def S(name, **kw):
    return ParagraphStyle(name, **kw)

# Custom styles
TITLE_S = S("TitleS", fontSize=22, leading=28, textColor=WHITE,
            alignment=TA_CENTER, fontName="Helvetica-Bold")
SUB_S   = S("SubS",   fontSize=11, leading=15, textColor=LIGHT_TEAL,
            alignment=TA_CENTER, fontName="Helvetica")
H1      = S("H1",     fontSize=14, leading=18, textColor=WHITE,
            fontName="Helvetica-Bold", alignment=TA_CENTER)
H2      = S("H2",     fontSize=11, leading=15, textColor=DARK_TEXT,
            fontName="Helvetica-Bold")
H2W     = S("H2W",    fontSize=11, leading=15, textColor=WHITE,
            fontName="Helvetica-Bold")
BODY    = S("Body",   fontSize=9,  leading=13, textColor=DARK_TEXT,
            fontName="Helvetica")
BODYW   = S("BodyW",  fontSize=9,  leading=13, textColor=WHITE,
            fontName="Helvetica")
SMALL   = S("Small",  fontSize=8,  leading=11, textColor=GREY_TEXT,
            fontName="Helvetica")
SMALLW  = S("SmallW", fontSize=8,  leading=11, textColor=WHITE,
            fontName="Helvetica")
TICK    = S("Tick",   fontSize=9,  leading=13, textColor=GREEN,
            fontName="Helvetica-Bold")
CROSS   = S("Cross",  fontSize=9,  leading=13, textColor=colors.HexColor("#C53030"),
            fontName="Helvetica-Bold")
CENTER  = S("Center", fontSize=9,  leading=12, textColor=DARK_TEXT,
            fontName="Helvetica", alignment=TA_CENTER)
CENTERB = S("CenterB",fontSize=10, leading=14, textColor=DARK_TEXT,
            fontName="Helvetica-Bold", alignment=TA_CENTER)
NOTE    = S("Note",   fontSize=7.5,leading=11, textColor=GREY_TEXT,
            fontName="Helvetica-Oblique", alignment=TA_CENTER)

def colored_table(data, col_widths, bg, text_color=DARK_TEXT, header_bg=None):
    """Helper to make a simple shaded table."""
    t = Table(data, colWidths=col_widths)
    cmds = [
        ("BACKGROUND", (0,0), (-1,-1), bg),
        ("TEXTCOLOR",  (0,0), (-1,-1), text_color),
        ("FONTNAME",   (0,0), (-1,-1), "Helvetica"),
        ("FONTSIZE",   (0,0), (-1,-1), 9),
        ("LEADING",    (0,0), (-1,-1), 13),
        ("LEFTPADDING",(0,0), (-1,-1), 8),
        ("RIGHTPADDING",(0,0),(-1,-1), 6),
        ("TOPPADDING", (0,0), (-1,-1), 5),
        ("BOTTOMPADDING",(0,0),(-1,-1),5),
        ("ROWBACKGROUNDS",(0,0),(-1,-1),[bg, colors.HexColor("#FAFAFA") if bg==WHITE else bg]),
        ("BOX",        (0,0), (-1,-1), 0.5, MID_GREY),
        ("INNERGRID",  (0,0), (-1,-1), 0.3, MID_GREY),
        ("VALIGN",     (0,0), (-1,-1), "TOP"),
    ]
    if header_bg:
        cmds += [
            ("BACKGROUND",(0,0),(-1,0), header_bg),
            ("TEXTCOLOR", (0,0),(-1,0), WHITE),
            ("FONTNAME",  (0,0),(-1,0), "Helvetica-Bold"),
        ]
    t.setStyle(TableStyle(cmds))
    return t

# ─────────────────────────────────────────────────────────────────────────────
story = []

# ══════════════════════════════════════════════════════════════════════════════
# HEADER BANNER
# ══════════════════════════════════════════════════════════════════════════════
header = Table(
    [[Paragraph("DIET PLAN", TITLE_S)],
     [Paragraph("Fatty Liver  Β·  Gut Health  Β·  Muscle Gain", SUB_S)]],
    colWidths=[W]
)
header.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),(-1,-1), TEAL),
    ("TOPPADDING",    (0,0),(-1,-1), 14),
    ("BOTTOMPADDING", (0,0),(-1,-1), 14),
    ("LEFTPADDING",   (0,0),(-1,-1), 10),
    ("RIGHTPADDING",  (0,0),(-1,-1), 10),
    ("ROUNDEDCORNERS",(0,0),(-1,-1), [8,8,8,8]),
]))
story.append(header)
story.append(Spacer(1, 0.4*cm))

# ══════════════════════════════════════════════════════════════════════════════
# SECTION HEADERS helper
# ══════════════════════════════════════════════════════════════════════════════
def section_header(label, emoji, bg):
    t = Table([[Paragraph(f"{emoji}  {label}", H1)]], colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0),(-1,-1), bg),
        ("TOPPADDING",    (0,0),(-1,-1), 8),
        ("BOTTOMPADDING", (0,0),(-1,-1), 8),
        ("LEFTPADDING",   (0,0),(-1,-1), 10),
        ("RIGHTPADDING",  (0,0),(-1,-1), 10),
    ]))
    return t

def eat_avoid_block(eat_items, avoid_items, bg_eat, bg_avoid, width):
    """Two-column eat/avoid table."""
    eat_rows   = [[Paragraph("βœ…  EAT / INCLUDE", S("eh", fontSize=9, leading=13,
                    fontName="Helvetica-Bold", textColor=GREEN))]]
    avoid_rows = [[Paragraph("❌  AVOID / LIMIT", S("ah", fontSize=9, leading=13,
                    fontName="Helvetica-Bold", textColor=colors.HexColor("#C53030")))]]
    for item in eat_items:
        eat_rows.append([Paragraph(f"β€’ {item}", BODY)])
    for item in avoid_items:
        avoid_rows.append([Paragraph(f"β€’ {item}", BODY)])

    # Pad to equal length
    while len(eat_rows) < len(avoid_rows):
        eat_rows.append([Paragraph("", BODY)])
    while len(avoid_rows) < len(eat_rows):
        avoid_rows.append([Paragraph("", BODY)])

    merged = [[eat_rows[i][0], avoid_rows[i][0]] for i in range(len(eat_rows))]
    half = (width - 0.3*cm) / 2

    t = Table(merged, colWidths=[half, half])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0), (0,-1), bg_eat),
        ("BACKGROUND",    (1,0), (1,-1), bg_avoid),
        ("VALIGN",        (0,0), (-1,-1), "TOP"),
        ("LEFTPADDING",   (0,0), (-1,-1), 8),
        ("RIGHTPADDING",  (0,0), (-1,-1), 8),
        ("TOPPADDING",    (0,0), (-1,-1), 4),
        ("BOTTOMPADDING", (0,0), (-1,-1), 4),
        ("BOX",           (0,0), (-1,-1), 0.5, MID_GREY),
        ("LINEAFTER",     (0,0), (0,-1), 0.5, MID_GREY),
    ]))
    return t

def tip_box(text, bg, accent):
    t = Table([[Paragraph(f"πŸ’‘  {text}", S("tip", fontSize=8.5, leading=13,
                fontName="Helvetica-Oblique", textColor=accent))]], colWidths=[W])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0),(-1,-1), bg),
        ("LEFTPADDING",   (0,0),(-1,-1), 10),
        ("RIGHTPADDING",  (0,0),(-1,-1), 10),
        ("TOPPADDING",    (0,0),(-1,-1), 6),
        ("BOTTOMPADDING", (0,0),(-1,-1), 6),
        ("BOX",           (0,0),(-1,-1), 1, accent),
    ]))
    return t

# ══════════════════════════════════════════════════════════════════════════════
# 1. FATTY LIVER
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("FATTY LIVER  (MASLD / Non-Alcoholic)", "πŸ«€", GOLD))
story.append(Spacer(1, 0.2*cm))
story.append(eat_avoid_block(
    eat_items=[
        "Extra virgin olive oil β€” 4 tbsp/day",
        "Fatty fish: salmon, sardines (3x/week)",
        "Unsweetened coffee β€” 2-3 cups/day",
        "Blueberries, raspberries, walnuts",
        "Oats, quinoa, brown rice",
        "Broccoli, cauliflower, Brussels sprouts",
        "Avocado (healthy fats)",
        "Green tea (antioxidants)",
    ],
    avoid_items=[
        "Added sugars & high-fructose corn syrup",
        "Sugary drinks, soda, fruit juice",
        "Alcohol (avoid completely)",
        "Fried & fast foods",
        "White bread, white rice, pastries",
        "Red meat & processed meats (daily)",
        "Trans fats (packaged/processed foods)",
    ],
    bg_eat=LIGHT_GRN, bg_avoid=colors.HexColor("#FFF5F5"), width=W
))
story.append(Spacer(1, 0.2*cm))
story.append(tip_box(
    "A 5–10% reduction in body weight can significantly reverse fatty liver. "
    "The Mediterranean diet is the #1 evidence-based approach for MASLD.",
    LIGHT_GOLD, GOLD
))
story.append(Spacer(1, 0.35*cm))

# ══════════════════════════════════════════════════════════════════════════════
# 2. GUT HEALTH
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("GUT HEALTH  (IBS Β· GERD Β· Digestive Wellness)", "πŸ«ƒ", ORANGE))
story.append(Spacer(1, 0.2*cm))
story.append(eat_avoid_block(
    eat_items=[
        "Rice, oats, quinoa, sourdough bread",
        "Carrots, zucchini, spinach, eggplant",
        "Strawberries, blueberries, kiwi, oranges",
        "Eggs, firm tofu, fish",
        "Lactose-free yogurt / kefir (probiotics)",
        "Ginger & peppermint herbal teas",
        "Miso, tempeh (fermented = gut flora)",
        "Chia seeds (soluble fibre)",
    ],
    avoid_items=[
        "Garlic, onion, leeks (high FODMAP)",
        "Wheat, rye, barley (excess fructans)",
        "Apples, pears, watermelon, mango",
        "Legumes/beans (in large quantities)",
        "Milk, soft cheese, ice cream (lactose)",
        "Fried, spicy, fatty foods",
        "Carbonated & fizzy drinks",
        "Eating within 3 hours of bedtime",
    ],
    bg_eat=LIGHT_BLUE, bg_avoid=colors.HexColor("#FFF5F5"), width=W
))
story.append(Spacer(1, 0.2*cm))
story.append(tip_box(
    "Eat 5-6 small meals daily. Stay upright 2-3 hrs after meals (GERD). "
    "The Low-FODMAP diet is the strongest evidence-based approach for IBS (Nutrients 2025).",
    LIGHT_ORG, ORANGE
))
story.append(Spacer(1, 0.35*cm))

# ══════════════════════════════════════════════════════════════════════════════
# 3. MUSCLE GAIN
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("MUSCLE GAIN  (Protein Strategy & Training)", "πŸ’ͺ", BLUE))
story.append(Spacer(1, 0.2*cm))
story.append(eat_avoid_block(
    eat_items=[
        "Eggs (richest leucine source β€” triggers MPS)",
        "Chicken breast / turkey",
        "Salmon & tuna (protein + omega-3)",
        "Tofu & edamame (plant-based complete)",
        "Quinoa (only plant with all 9 amino acids)",
        "Lactose-free Greek yogurt",
        "Oats + protein shake post-workout",
        "Sweet potato (carbs for muscle recovery)",
    ],
    avoid_items=[
        "Skipping meals β€” MPS needs regular feeding",
        "Very high alcohol β€” blunts protein synthesis",
        "Ultra-processed protein bars (added sugar)",
        "Crash diets / severe calorie restriction",
        "Sedentary lifestyle β€” diet alone is not enough",
    ],
    bg_eat=LIGHT_BLUE, bg_avoid=colors.HexColor("#FFF5F5"), width=W
))
story.append(Spacer(1, 0.2*cm))

# Protein targets mini-table
proto_data = [
    [Paragraph("Target", S("ph", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
     Paragraph("Amount", S("ph", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE)),
     Paragraph("Timing", S("ph", fontSize=9, fontName="Helvetica-Bold", textColor=WHITE))],
    [Paragraph("Daily protein", BODY), Paragraph("1.6–2.0 g / kg body weight", BODY),
     Paragraph("Spread across 4-5 meals", BODY)],
    [Paragraph("Per meal", BODY), Paragraph("25–35 g protein", BODY),
     Paragraph("Every 3-4 hours", BODY)],
    [Paragraph("Post-workout", BODY), Paragraph("30–40 g within 2 hours", BODY),
     Paragraph("Pair with fast carbs", BODY)],
]
proto_t = Table(proto_data, colWidths=[W*0.28, W*0.36, W*0.36])
proto_t.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),(-1,0), BLUE),
    ("BACKGROUND",    (0,1),(-1,-1), LIGHT_BLUE),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[LIGHT_BLUE, WHITE]),
    ("TEXTCOLOR",     (0,0),(-1,0), WHITE),
    ("FONTNAME",      (0,0),(-1,0), "Helvetica-Bold"),
    ("FONTSIZE",      (0,0),(-1,-1), 9),
    ("LEADING",       (0,0),(-1,-1), 13),
    ("LEFTPADDING",   (0,0),(-1,-1), 8),
    ("RIGHTPADDING",  (0,0),(-1,-1), 8),
    ("TOPPADDING",    (0,0),(-1,-1), 5),
    ("BOTTOMPADDING", (0,0),(-1,-1), 5),
    ("BOX",           (0,0),(-1,-1), 0.5, MID_GREY),
    ("INNERGRID",     (0,0),(-1,-1), 0.3, MID_GREY),
]))
story.append(proto_t)
story.append(Spacer(1, 0.2*cm))
story.append(tip_box(
    "Leucine is the key amino acid that triggers muscle protein synthesis. "
    "Resistance training 3x/week combined with adequate protein is the most effective strategy.",
    LIGHT_BLUE, BLUE
))

# ══════════════════════════════════════════════════════════════════════════════
# PAGE 2
# ══════════════════════════════════════════════════════════════════════════════
story.append(PageBreak())

# Header p2
header2 = Table(
    [[Paragraph("7-DAY MEAL PLAN  &  SHOPPING LIST", TITLE_S)],
     [Paragraph("Fatty Liver  Β·  Gut Health  Β·  Muscle Gain", SUB_S)]],
    colWidths=[W]
)
header2.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),(-1,-1), TEAL),
    ("TOPPADDING",    (0,0),(-1,-1), 12),
    ("BOTTOMPADDING", (0,0),(-1,-1), 12),
    ("LEFTPADDING",   (0,0),(-1,-1), 10),
    ("RIGHTPADDING",  (0,0),(-1,-1), 10),
]))
story.append(header2)
story.append(Spacer(1, 0.4*cm))

# ══════════════════════════════════════════════════════════════════════════════
# 7-DAY MEAL PLAN
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("7-DAY SAMPLE MEAL PLAN", "πŸ“…", TEAL))
story.append(Spacer(1, 0.2*cm))

days = [
    ("Mon", "Oats + blueberries + walnuts + black coffee",
             "Grilled salmon + quinoa + steamed zucchini + olive oil",
             "2 boiled eggs + kiwi + almonds",
             "Baked salmon + brown rice + roasted carrots"),
    ("Tue", "Scrambled eggs (2) + sourdough toast + herbal tea",
             "Chicken breast + oat salad + spinach + olive oil dressing",
             "Lactose-free yogurt + strawberries",
             "Tofu stir-fry + rice noodles + bell peppers + ginger"),
    ("Wed", "Quinoa porridge + raspberries + chia seeds + coffee",
             "Tuna salad + brown rice + cucumber + olive oil",
             "Handful of walnuts + orange",
             "Grilled chicken + sweet potato + steamed broccoli"),
    ("Thu", "Oats + banana (small) + peanut butter + black coffee",
             "Salmon bowl + quinoa + edamame + avocado",
             "2 boiled eggs + blueberries",
             "Baked cod + rice + roasted zucchini + olive oil"),
    ("Fri", "Smoothie: spinach + blueberries + oat milk + protein",
             "Chicken + brown rice + roasted carrots + herbs",
             "Lactose-free yogurt + kiwi",
             "Tofu + quinoa + stir-fried spinach + sesame oil"),
    ("Sat", "2 eggs + sourdough + avocado + herbal tea",
             "Sardines on toast (sourdough) + side salad",
             "Almonds + orange",
             "Grilled salmon + sweet potato + green beans"),
    ("Sun", "Oats + walnuts + blueberries + coffee (prep day)",
             "Big grain bowl: quinoa + chicken + roasted veg + olive oil",
             "Hard-boiled eggs + carrot sticks",
             "Baked fish + brown rice + steamed broccoli"),
]

meal_header = [
    Paragraph("Day",       S("mh", fontSize=8, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Breakfast", S("mh", fontSize=8, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Lunch",     S("mh", fontSize=8, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Snack",     S("mh", fontSize=8, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Dinner",    S("mh", fontSize=8, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
]
meal_data = [meal_header]
for i, (day, b, l, s, d) in enumerate(days):
    bg = LIGHT_TEAL if i % 2 == 0 else WHITE
    meal_data.append([
        Paragraph(day, S("dc", fontSize=8.5, fontName="Helvetica-Bold",
                         textColor=TEAL, alignment=TA_CENTER)),
        Paragraph(b, SMALL), Paragraph(l, SMALL),
        Paragraph(s, SMALL), Paragraph(d, SMALL),
    ])

meal_t = Table(meal_data, colWidths=[W*0.07, W*0.235, W*0.255, W*0.185, W*0.255])
row_bgs = [TEAL] + [LIGHT_TEAL if i%2==0 else WHITE for i in range(7)]
meal_t.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),(-1,0), TEAL),
    ("TEXTCOLOR",     (0,0),(-1,0), WHITE),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[LIGHT_TEAL, WHITE]),
    ("FONTSIZE",      (0,0),(-1,-1), 8),
    ("LEADING",       (0,0),(-1,-1), 11),
    ("LEFTPADDING",   (0,0),(-1,-1), 5),
    ("RIGHTPADDING",  (0,0),(-1,-1), 5),
    ("TOPPADDING",    (0,0),(-1,-1), 4),
    ("BOTTOMPADDING", (0,0),(-1,-1), 4),
    ("VALIGN",        (0,0),(-1,-1), "TOP"),
    ("BOX",           (0,0),(-1,-1), 0.5, MID_GREY),
    ("INNERGRID",     (0,0),(-1,-1), 0.3, MID_GREY),
]))
story.append(meal_t)
story.append(Spacer(1, 0.35*cm))

# ══════════════════════════════════════════════════════════════════════════════
# SHOPPING LIST β€” 3 columns
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("WEEKLY SHOPPING LIST", "πŸ›’", GREEN))
story.append(Spacer(1, 0.2*cm))

def shop_col(title, items, bg, accent):
    rows = [[Paragraph(title, S("sh", fontSize=9.5, fontName="Helvetica-Bold",
                                 textColor=WHITE, alignment=TA_CENTER))]]
    for item in items:
        rows.append([Paragraph(f"☐  {item}", SMALL)])
    t = Table(rows, colWidths=[(W-0.4*cm)/3])
    t.setStyle(TableStyle([
        ("BACKGROUND",    (0,0),(-1,0), accent),
        ("BACKGROUND",    (0,1),(-1,-1), bg),
        ("ROWBACKGROUNDS",(0,1),(-1,-1),[bg, WHITE]),
        ("FONTSIZE",      (0,0),(-1,-1), 8.5),
        ("LEADING",       (0,0),(-1,-1), 13),
        ("LEFTPADDING",   (0,0),(-1,-1), 7),
        ("RIGHTPADDING",  (0,0),(-1,-1), 5),
        ("TOPPADDING",    (0,0),(-1,-1), 4),
        ("BOTTOMPADDING", (0,0),(-1,-1), 4),
        ("VALIGN",        (0,0),(-1,-1), "TOP"),
        ("BOX",           (0,0),(-1,-1), 0.6, accent),
        ("INNERGRID",     (0,0),(-1,-1), 0.3, MID_GREY),
    ]))
    return t

proteins_col = shop_col(
    "πŸ₯©  PROTEINS",
    [
        "Salmon fillet (500g)",
        "Sardines (canned, 4 tins)",
        "Tuna (canned in water, 3 tins)",
        "Chicken breast (1 kg)",
        "Cod / white fish (400g)",
        "Eggs (12–18)",
        "Firm tofu (400g block Γ—2)",
        "Edamame (frozen, 300g)",
        "Lactose-free Greek yogurt Γ—4",
        "Lactose-free kefir (500ml)",
    ],
    LIGHT_GRN, GREEN
)

carbs_col = shop_col(
    "🌾  CARBS & GRAINS",
    [
        "Rolled oats (1 kg)",
        "Quinoa (500g)",
        "Brown rice (1 kg)",
        "Sourdough bread (1 loaf)",
        "Rice noodles (200g)",
        "Sweet potatoes Γ—4",
        "Oat milk / almond milk (1 L)",
        "Chia seeds (200g)",
        "Flaxseeds (200g)",
        "Walnuts (200g)",
        "Almonds (200g)",
    ],
    LIGHT_TEAL, TEAL
)

veg_col = shop_col(
    "πŸ₯¦  VEG, FRUIT & OILS",
    [
        "Broccoli (1 head)",
        "Cauliflower (1 head)",
        "Spinach (fresh, 200g)",
        "Zucchini Γ—3",
        "Carrots Γ—6",
        "Bell peppers Γ—4 (mixed)",
        "Eggplant Γ—2",
        "Avocado Γ—4",
        "Blueberries (300g fresh/frozen)",
        "Strawberries (300g)",
        "Kiwi Γ—6",
        "Oranges Γ—6",
        "Bananas Γ—4 (small)",
        "Extra virgin olive oil (1 L)",
        "Sesame oil (small bottle)",
        "Ginger root (fresh)",
        "Herbal teas (ginger, peppermint)",
        "Ground coffee (250g)",
        "Lemons Γ—4",
        "Green tea bags",
    ],
    LIGHT_ORG, ORANGE
)

shop_row = Table([[proteins_col, carbs_col, veg_col]],
                  colWidths=[(W-0.4*cm)/3]*3,
                  hAlign="LEFT")
shop_row.setStyle(TableStyle([
    ("VALIGN",        (0,0),(-1,-1), "TOP"),
    ("LEFTPADDING",   (0,0),(-1,-1), 3),
    ("RIGHTPADDING",  (0,0),(-1,-1), 3),
    ("TOPPADDING",    (0,0),(-1,-1), 0),
    ("BOTTOMPADDING", (0,0),(-1,-1), 0),
]))
story.append(shop_row)
story.append(Spacer(1, 0.35*cm))

# ══════════════════════════════════════════════════════════════════════════════
# POWER FOODS TABLE
# ══════════════════════════════════════════════════════════════════════════════
story.append(section_header("POWER FOODS β€” BENEFIT MATRIX", "⭐", TEAL))
story.append(Spacer(1, 0.2*cm))

def tick(yes): return Paragraph("βœ…" if yes else "–", CENTER)

pf_header = [
    Paragraph("Food",         S("pfh", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE)),
    Paragraph("Liver",        S("pfh", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Gut",          S("pfh", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Muscle",       S("pfh", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)),
    Paragraph("Why it helps", S("pfh", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE)),
]
pf_rows = [
    ["Salmon / Sardines", True, True, True, "Omega-3s cut liver inflammation; anti-inflammatory for gut; high leucine for MPS"],
    ["Eggs",              True, True, True, "Choline for liver health; easy to digest; richest leucine source for muscle"],
    ["Extra Virgin Olive Oil", True, True, False, "Polyphenols reduce liver fat; anti-inflammatory; lubricates gut"],
    ["Blueberries",       True, True, False, "Anthocyanins reduce liver oxidative stress; prebiotic fibre for gut flora"],
    ["Oats",              True, True, True, "Beta-glucan lowers liver fat; soluble fibre soothes IBS; slow-release carbs"],
    ["Quinoa",            True, True, True, "Complete protein (all 9 AAs); low FODMAP; supports liver and muscle equally"],
    ["Tofu / Edamame",    True, True, True, "Plant protein = less phosphorus load; low FODMAP; complete amino acids"],
    ["Walnuts",           True, True, True, "ALA omega-3 for liver; prebiotic fibre for gut; arginine for muscle blood flow"],
    ["Broccoli",          True, True, False, "Sulforaphane activates liver detox enzymes; anti-inflammatory"],
    ["Avocado",           True, True, False, "Monounsaturated fats reduce liver fat; gut-friendly soluble fibre"],
    ["Lactose-free yogurt", False, True, True, "Live cultures restore gut microbiome; high protein for muscle"],
    ["Coffee (unsweetened)", True, False, False, "3 cups/day shown to reduce liver fibrosis risk significantly"],
]

pf_data = [pf_header]
for i, (food, liv, gut, mus, why) in enumerate(pf_rows):
    bg = LIGHT_TEAL if i % 2 == 0 else WHITE
    pf_data.append([
        Paragraph(food, SMALL),
        tick(liv), tick(gut), tick(mus),
        Paragraph(why, SMALL),
    ])

pf_t = Table(pf_data, colWidths=[W*0.18, W*0.08, W*0.07, W*0.08, W*0.59])
pf_t.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),(-1,0), TEAL),
    ("TEXTCOLOR",     (0,0),(-1,0), WHITE),
    ("FONTNAME",      (0,0),(-1,0), "Helvetica-Bold"),
    ("ROWBACKGROUNDS",(0,1),(-1,-1),[LIGHT_TEAL, WHITE]),
    ("FONTSIZE",      (0,0),(-1,-1), 8),
    ("LEADING",       (0,0),(-1,-1), 11),
    ("LEFTPADDING",   (0,0),(-1,-1), 5),
    ("RIGHTPADDING",  (0,0),(-1,-1), 5),
    ("TOPPADDING",    (0,0),(-1,-1), 4),
    ("BOTTOMPADDING", (0,0),(-1,-1), 4),
    ("VALIGN",        (0,0),(-1,-1), "MIDDLE"),
    ("BOX",           (0,0),(-1,-1), 0.5, MID_GREY),
    ("INNERGRID",     (0,0),(-1,-1), 0.3, MID_GREY),
    ("ALIGN",         (1,0),(3,-1), "CENTER"),
]))
story.append(pf_t)
story.append(Spacer(1, 0.35*cm))

# ══════════════════════════════════════════════════════════════════════════════
# FOOTER
# ══════════════════════════════════════════════════════════════════════════════
avoid_bar = Table(
    [[Paragraph(
        "β›”  AVOID ACROSS ALL CONDITIONS:  Alcohol  |  Fried foods  |  Added sugar  |  "
        "Processed meats  |  Carbonated drinks  |  Refined carbs  |  Late-night heavy meals",
        S("avd", fontSize=8.5, fontName="Helvetica-Bold", textColor=WHITE, alignment=TA_CENTER)
    )]],
    colWidths=[W]
)
avoid_bar.setStyle(TableStyle([
    ("BACKGROUND",    (0,0),(-1,-1), colors.HexColor("#C53030")),
    ("TOPPADDING",    (0,0),(-1,-1), 8),
    ("BOTTOMPADDING", (0,0),(-1,-1), 8),
    ("LEFTPADDING",   (0,0),(-1,-1), 8),
    ("RIGHTPADDING",  (0,0),(-1,-1), 8),
]))
story.append(avoid_bar)
story.append(Spacer(1, 0.2*cm))
story.append(Paragraph(
    "βš•οΈ  Medical Disclaimer: This diet plan is for general informational purposes. "
    "Please consult your physician or a registered dietitian before making significant dietary changes, "
    "especially if you have diagnosed conditions or take medications.",
    NOTE
))

# ══════════════════════════════════════════════════════════════════════════════
# BUILD
# ══════════════════════════════════════════════════════════════════════════════
doc.build(story)
print("PDF generated:", OUTPUT)
Running Command

cd /home/daytona/workspace/diet-plan && python3 generate_pdf.py 2>&1

Running Command

ls -lh /home/daytona/workspace/diet-plan/Diet_Plan_Fatty_Liver_Gut_Muscle.pdf

Your PDF is ready! Download it here:

Diet Plan Fatty Liver Gut Muscle

PDF Document Β· PDF


What's inside the 2-page PDF:
Page 1 β€” Diet Plan
  • Fatty Liver section - color-coded Eat/Avoid table with key tip box
  • Gut Health section - Low-FODMAP eat/avoid table with IBS/GERD guidance
  • Muscle Gain section - protein sources, daily targets table (1.6-2.0g/kg), timing guide
Page 2 β€” Meal Plan & Shopping
  • 7-Day Meal Plan - full breakfast, lunch, snack and dinner for every day
  • Weekly Shopping List - 3 columns: Proteins, Carbs & Grains, Veg/Fruit/Oils - with checkboxes ready to tick
  • Power Foods Matrix - every top food rated for Liver / Gut / Muscle with explanation of why it helps
  • Avoid-all bar and medical disclaimer at the bottom
This is a shared conversation. Sign in to Orris to start your own chat.