I am naturopathy intern dr and i here for making a diet chart according to ayuvedic vata ,pitta,kapha purush parkarti and there related disorders or i simply according to Ayurveda dieat satvik and other all

Asking for Preferences

Complete diet chart for all 3 Prakriti types (Vata, Pitta, Kapha) with their disorders

Asking for Preferences
Reading File
Searching the Web

Ayurvedic diet chart Vata Pitta Kapha Prakriti foods to eat avoid disorders

Running Command

mkdir -p /tmp/workspace/ayurvedic-diet-chart && ls /tmp/workspace/ayurvedic-diet-chart/

Writing File

~/ayurvedic-diet-chart/create_diet_chart.py

from docx import Document
from docx.shared import Pt, Inches, RGBColor, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT, WD_ALIGN_VERTICAL
from docx.oxml.ns import qn
from docx.oxml import OxmlElement
import copy

doc = Document()

# ─── Page margins ───
section = doc.sections[0]
section.page_width  = Inches(8.5)
section.page_height = Inches(11)
section.left_margin   = Inches(0.9)
section.right_margin  = Inches(0.9)
section.top_margin    = Inches(0.8)
section.bottom_margin = Inches(0.8)

# ─── Default style ───
normal = doc.styles["Normal"]
normal.font.name = "Calibri"
normal.font.size = Pt(11)

# ─── Helper: shade a table cell ───
def shade_cell(cell, fill_hex):
    tc   = cell._tc
    tcPr = tc.get_or_add_tcPr()
    shd  = OxmlElement("w:shd")
    shd.set(qn("w:val"),   "clear")
    shd.set(qn("w:color"), "auto")
    shd.set(qn("w:fill"),  fill_hex)
    tcPr.append(shd)

# ─── Helper: bold paragraph ───
def bold_para(cell, text, size=11, color=None):
    p = cell.paragraphs[0]
    p.clear()
    run = p.add_run(text)
    run.bold = True
    run.font.size = Pt(size)
    if color:
        run.font.color.rgb = RGBColor.from_string(color)
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER

# ─── Helper: normal text in cell ───
def normal_para(cell, text, size=10.5):
    p = cell.paragraphs[0]
    p.clear()
    run = p.add_run(text)
    run.font.size = Pt(size)

# ─── Helper: add a colored heading ───
def add_heading(doc, text, level=1, color="1F3864"):
    h = doc.add_heading(text, level=level)
    for run in h.runs:
        run.font.color.rgb = RGBColor.from_string(color)
    return h

# ─── Helper: add list items ───
def add_list(doc, items, style="List Bullet"):
    for item in items:
        p = doc.add_paragraph(item, style=style)
        p.paragraph_format.space_before = Pt(1)
        p.paragraph_format.space_after  = Pt(1)

# ═══════════════════════════════════════════════════════
# TITLE PAGE
# ═══════════════════════════════════════════════════════
title_para = doc.add_paragraph()
title_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
title_run = title_para.add_run("AYURVEDIC DIET CHART")
title_run.bold = True
title_run.font.size = Pt(26)
title_run.font.color.rgb = RGBColor.from_string("1F3864")

sub_para = doc.add_paragraph()
sub_para.alignment = WD_ALIGN_PARAGRAPH.CENTER
sub_run = sub_para.add_run("Based on Vata · Pitta · Kapha Prakriti")
sub_run.font.size = Pt(14)
sub_run.font.color.rgb = RGBColor.from_string("2E75B6")
sub_run.bold = True

doc.add_paragraph("")

# Subtitle
info = doc.add_paragraph()
info.alignment = WD_ALIGN_PARAGRAPH.CENTER
info_run = info.add_run("Prepared for Naturopathy Clinical Practice\nIncludes: Prakriti Overview | Physical & Mental Traits | Common Disorders\n"
                        "Foods to Favour | Foods to Avoid | Sample Meal Plan | Herbal Supports | Lifestyle Tips")
info_run.font.size = Pt(11)
info_run.font.color.rgb = RGBColor.from_string("404040")

doc.add_paragraph("")

# Divider line via table trick
table = doc.add_table(rows=1, cols=1)
table.style = "Table Grid"
cell = table.cell(0, 0)
shade_cell(cell, "1F3864")
cell.height = Cm(0.15)
cell.paragraphs[0].text = ""

doc.add_paragraph("")

# Disclaimer
disc = doc.add_paragraph()
disc.alignment = WD_ALIGN_PARAGRAPH.CENTER
disc_run = disc.add_run("For educational and clinical guidance purposes only.\n"
                        "Individual assessment by a qualified Ayurvedic physician is recommended.")
disc_run.font.size = Pt(9.5)
disc_run.italic = True
disc_run.font.color.rgb = RGBColor.from_string("666666")

doc.add_page_break()

# ═══════════════════════════════════════════════════════
# SECTION 1 – AYURVEDIC FUNDAMENTALS
# ═══════════════════════════════════════════════════════
add_heading(doc, "1. Understanding the Three Doshas (Prakriti)", level=1, color="1F3864")

intro = doc.add_paragraph(
    "In Ayurveda, every individual has a unique constitution (Prakriti) determined at birth by the "
    "combination of three bio-energetic forces called Doshas — Vata, Pitta, and Kapha. These doshas "
    "govern all physical, mental, and physiological processes. Diet is the foremost tool to maintain "
    "dosha balance and prevent disease."
)
intro.paragraph_format.space_after = Pt(8)

# Overview table
add_heading(doc, "Dosha Overview", level=2, color="2E75B6")
ov_table = doc.add_table(rows=4, cols=5)
ov_table.style = "Table Grid"
ov_table.alignment = WD_TABLE_ALIGNMENT.CENTER

headers = ["Attribute", "VATA", "PITTA", "KAPHA"]
header_colors = ["1F3864", "8B0000", "1F6B1F", "1a3a5c"]
widths = [Inches(1.5), Inches(1.6), Inches(1.6), Inches(1.6)]

# Header row
for i, (hdr, col) in enumerate(zip(headers, header_colors)):
    cell = ov_table.cell(0, i)
    shade_cell(cell, col if i > 0 else "1F3864")
    bold_para(cell, hdr, size=11, color="FFFFFF")

rows_data = [
    ["Elements", "Air + Ether (Vayu + Akasha)", "Fire + Water (Agni + Jala)", "Earth + Water (Prithvi + Jala)"],
    ["Qualities", "Dry, Light, Cold, Rough, Subtle, Mobile", "Hot, Sharp, Light, Oily, Liquid, Spreading", "Heavy, Slow, Cool, Oily, Smooth, Dense"],
    ["Season", "Late Autumn / Winter", "Summer / Monsoon", "Spring / Late Winter"],
]
row_colors = ["F5F5F5", "FFFFFF", "F5F5F5"]
for r, (row_data, bg) in enumerate(zip(rows_data, row_colors), 1):
    for c, val in enumerate(row_data):
        cell = ov_table.cell(r, c)
        shade_cell(cell, bg)
        p = cell.paragraphs[0]
        p.clear()
        run = p.add_run(val)
        run.font.size = Pt(10)
        if c == 0:
            run.bold = True

doc.add_paragraph("")

# ═══════════════════════════════════════════════════════
# SECTION 2 – VATA
# ═══════════════════════════════════════════════════════
doc.add_page_break()

# Vata header block
vata_hdr = doc.add_paragraph()
vata_hdr.alignment = WD_ALIGN_PARAGRAPH.CENTER
vr = vata_hdr.add_run("VATA PRAKRITI")
vr.bold = True
vr.font.size = Pt(20)
vr.font.color.rgb = RGBColor.from_string("8B4513")

vata_sub = doc.add_paragraph()
vata_sub.alignment = WD_ALIGN_PARAGRAPH.CENTER
vs = vata_sub.add_run("Element: Air + Ether  |  Taste: Sweet, Sour, Salty  |  Season: Autumn–Winter")
vs.font.size = Pt(11)
vs.font.color.rgb = RGBColor.from_string("8B4513")
vs.italic = True

doc.add_paragraph("")

# 2a. Physical & Mental traits
add_heading(doc, "2.1 Physical & Mental Characteristics", level=2, color="8B4513")
vata_traits_table = doc.add_table(rows=1, cols=2)
vata_traits_table.style = "Table Grid"
vata_traits_table.alignment = WD_TABLE_ALIGNMENT.CENTER

hdr1 = vata_traits_table.cell(0, 0)
shade_cell(hdr1, "D4A76A")
bold_para(hdr1, "Physical Traits", size=11, color="3B1A0A")
hdr2 = vata_traits_table.cell(0, 1)
shade_cell(hdr2, "D4A76A")
bold_para(hdr2, "Mental / Emotional Traits", size=11, color="3B1A0A")

physical_vata = [
    "Thin, light body frame; difficulty gaining weight",
    "Dry skin, hair, and nails",
    "Cold hands and feet; poor circulation",
    "Irregular appetite and digestion",
    "Variable energy; prone to fatigue",
    "Light, interrupted sleep",
    "Dark, scanty urine; constipation tendency",
]
mental_vata = [
    "Quick, creative mind; learns fast but forgets easily",
    "Enthusiastic, vivacious, imaginative",
    "Tendency toward anxiety, worry, fear",
    "Indecisive, changeable moods",
    "Talks fast; restless",
    "Sensitive to noise and cold",
    "Spiritual inclination",
]

row = vata_traits_table.add_row()
c0 = row.cells[0]
c1 = row.cells[1]
shade_cell(c0, "FDF6EC")
shade_cell(c1, "FDF6EC")

for item in physical_vata:
    p = c0.add_paragraph(f"• {item}")
    p.paragraph_format.space_before = Pt(1)
    p.paragraph_format.space_after  = Pt(1)
    p.runs[0].font.size = Pt(10)

for item in mental_vata:
    p = c1.add_paragraph(f"• {item}")
    p.paragraph_format.space_before = Pt(1)
    p.paragraph_format.space_after  = Pt(1)
    p.runs[0].font.size = Pt(10)

# Remove first auto-paragraph in merged cells
for cell in [c0, c1]:
    if len(cell.paragraphs) > 1:
        p0 = cell.paragraphs[0]._element
        p0.getparent().remove(p0)

doc.add_paragraph("")

# 2b. Common disorders
add_heading(doc, "2.2 Common Vata Disorders", level=2, color="8B4513")
vata_disorders = [
    "Constipation, bloating, flatulence (Apaana Vata imbalance)",
    "Arthritis, joint pain, dry cracking joints (Vata-type Amavata)",
    "Sciatica, lower backache, neuralgia",
    "Insomnia, anxiety, nervousness, fear-based disorders",
    "Dry eczema, psoriasis, dandruff",
    "Irregular menstruation, dysmenorrhoea",
    "Palpitations, arrhythmia",
    "Emaciation, weight loss, anorexia",
    "Tinnitus, dry eyes, dizziness",
    "Parkinson's disease, tremors (Kampa Vata)",
]
add_list(doc, vata_disorders)
doc.add_paragraph("")

# 2c. Dietary principle for Vata
add_heading(doc, "2.3 Dietary Principle for Vata", level=2, color="8B4513")
p_principle = doc.add_paragraph(
    "Vata is pacified by foods that are warm, moist (unctuous), heavy, and nourishing. Favour the tastes "
    "Sweet (Madhura), Sour (Amla), and Salty (Lavana). Eat regularly; irregular meals aggravate Vata. "
    "Avoid cold, dry, and raw foods. Warm soups, ghee, oils, and cooked grains are ideal."
)
p_principle.paragraph_format.space_after = Pt(6)

# 2d. Diet chart table
add_heading(doc, "2.4 Vata Diet Chart", level=2, color="8B4513")

vata_diet = [
    ("Grains",       "White/brown rice, wheat, oats (cooked), quinoa, amaranth, semolina",
                     "Barley, rye, corn, millet, dry oats, crackers, popcorn"),
    ("Legumes",      "Moong dal (split), red lentils, tofu (occasional), urad dal",
                     "Most beans (rajma, chana, black-eyed peas), soya chunks (dry)"),
    ("Vegetables",   "Cooked: carrot, beet, sweet potato, asparagus, spinach, zucchini, fennel, garlic, onion (cooked), pumpkin",
                     "Raw or frozen vegetables; broccoli, cabbage, cauliflower, celery, kale, eggplant, mushrooms"),
    ("Fruits",       "Sweet, ripe: banana, mango, avocado, dates, figs, peach, plum, berries, papaya, grape, soaked prunes/raisins",
                     "Dry or unripe fruits; apples (raw), cranberries, pears (excess), watermelon"),
    ("Dairy",        "Warm milk, ghee, butter, cream, yoghurt (room temp), paneer",
                     "Cold/frozen dairy, ice cream"),
    ("Oils",         "Sesame (best), almond, olive, ghee — use liberally",
                     "All oils are generally good; avoid excessive dry cooking"),
    ("Sweeteners",   "Raw honey (not heated), jaggery, date sugar, molasses",
                     "Refined white sugar (excess), artificial sweeteners"),
    ("Spices",       "All warming spices: ginger (best), cumin, coriander, cardamom, cinnamon, clove, hing (asafoetida), fennel, nutmeg, black pepper (moderate)",
                     "Excess chilli, dry bitter herbs"),
    ("Meat/Fish",    "Chicken (white), eggs, freshwater fish, lamb, shrimp (if non-veg)",
                     "Red meat (excess), dried/preserved meats"),
    ("Beverages",    "Warm water, warm milk with spices, ginger tea, licorice tea, chamomile",
                     "Cold water, carbonated drinks, black tea/coffee (excess), alcohol"),
    ("Nuts & Seeds", "Almonds (soaked), walnuts, cashews, sesame seeds, sunflower seeds",
                     "Dry-roasted or salted nuts"),
]

diet_table = doc.add_table(rows=1, cols=3)
diet_table.style = "Table Grid"
diet_table.alignment = WD_TABLE_ALIGNMENT.CENTER

col_headers = ["Food Category", "FAVOUR (Pathya)", "AVOID (Apathya)"]
col_bgs = ["8B4513", "2E7D32", "C62828"]
for i, (hdr, bg) in enumerate(zip(col_headers, col_bgs)):
    cell = diet_table.cell(0, i)
    shade_cell(cell, bg)
    bold_para(cell, hdr, size=11, color="FFFFFF")

for idx, (category, favour, avoid) in enumerate(vata_diet):
    row = diet_table.add_row()
    bg = "FDF6EC" if idx % 2 == 0 else "FFFFFF"
    for j in range(3):
        shade_cell(row.cells[j], bg)
    normal_para(row.cells[0], category); row.cells[0].paragraphs[0].runs[0].bold = True
    normal_para(row.cells[1], favour)
    normal_para(row.cells[2], avoid)

doc.add_paragraph("")

# 2e. Sample Meal Plan
add_heading(doc, "2.5 Sample Daily Meal Plan – Vata", level=2, color="8B4513")
vata_meals = [
    ("Early Morning (6–7 AM)", "Warm water with lemon + honey; 4–5 soaked almonds"),
    ("Breakfast (7:30–8:30 AM)", "Warm oatmeal porridge with dates, ghee, and cardamom OR wheat upma with vegetables"),
    ("Mid-Morning (10:30 AM)", "Warm milk with ashwagandha / banana"),
    ("Lunch (12:30–1:30 PM)", "Rice + moong dal (khichdi) + cooked carrots/beets + ghee + salted buttermilk (takra)"),
    ("Evening Snack (4–5 PM)", "Soaked raisins/dates + ginger tea OR sesame laddoo (moderate)"),
    ("Dinner (6:30–7:30 PM)", "Wheat chapati + cooked vegetables (pumpkin/zucchini) + warm soup"),
    ("Bedtime (9:30 PM)", "Warm milk with turmeric + nutmeg (Haldi Doodh)"),
]

meal_table = doc.add_table(rows=1, cols=2)
meal_table.style = "Table Grid"
meal_table.alignment = WD_TABLE_ALIGNMENT.CENTER

shade_cell(meal_table.cell(0, 0), "8B4513"); bold_para(meal_table.cell(0, 0), "Meal / Time", color="FFFFFF")
shade_cell(meal_table.cell(0, 1), "8B4513"); bold_para(meal_table.cell(0, 1), "Recommended Food", color="FFFFFF")

for idx, (time, food) in enumerate(vata_meals):
    r = meal_table.add_row()
    bg = "FDF6EC" if idx % 2 == 0 else "FFFFFF"
    shade_cell(r.cells[0], bg); normal_para(r.cells[0], time); r.cells[0].paragraphs[0].runs[0].bold = True
    shade_cell(r.cells[1], bg); normal_para(r.cells[1], food)

doc.add_paragraph("")

# 2f. Herbal supports
add_heading(doc, "2.6 Herbal & Supplement Supports – Vata", level=2, color="8B4513")
vata_herbs = [
    "Ashwagandha (Withania somnifera) – nervine tonic, anti-anxiety, rejuvenation",
    "Shatavari (Asparagus racemosus) – nourishing, reproductive health",
    "Bala (Sida cordifolia) – strength, neuromuscular support",
    "Dashamoola – anti-Vata, joint and backache formula",
    "Triphala – mild laxative, bowel regulator for constipation",
    "Sesame oil (Tila Taila) – for Abhyanga (oil massage)",
    "Haritaki – best fruit for Vata; mild laxative",
]
add_list(doc, vata_herbs)

doc.add_paragraph("")

# 2g. Lifestyle tips
add_heading(doc, "2.7 Lifestyle Tips – Vata", level=2, color="8B4513")
vata_lifestyle = [
    "Maintain regular, fixed meal times and sleep schedule",
    "Daily warm sesame oil self-massage (Abhyanga) before bath",
    "Avoid excessive exercise, fasting, or travel (aggravates Vata)",
    "Practice calming yoga (Yin, restorative) and meditation",
    "Keep warm; avoid excessive cold and wind exposure",
    "Favour warm, humid climates",
    "Rest adequately; avoid overexertion",
]
add_list(doc, vata_lifestyle)

# ═══════════════════════════════════════════════════════
# SECTION 3 – PITTA
# ═══════════════════════════════════════════════════════
doc.add_page_break()

pitta_hdr = doc.add_paragraph()
pitta_hdr.alignment = WD_ALIGN_PARAGRAPH.CENTER
pr2 = pitta_hdr.add_run("PITTA PRAKRITI")
pr2.bold = True
pr2.font.size = Pt(20)
pr2.font.color.rgb = RGBColor.from_string("8B0000")

pitta_sub = doc.add_paragraph()
pitta_sub.alignment = WD_ALIGN_PARAGRAPH.CENTER
ps = pitta_sub.add_run("Element: Fire + Water  |  Taste: Sweet, Bitter, Astringent  |  Season: Summer")
ps.font.size = Pt(11)
ps.font.color.rgb = RGBColor.from_string("8B0000")
ps.italic = True

doc.add_paragraph("")

add_heading(doc, "3.1 Physical & Mental Characteristics", level=2, color="8B0000")
pitta_traits_table = doc.add_table(rows=1, cols=2)
pitta_traits_table.style = "Table Grid"
pitta_traits_table.alignment = WD_TABLE_ALIGNMENT.CENTER

hdr1p = pitta_traits_table.cell(0, 0); shade_cell(hdr1p, "E57373"); bold_para(hdr1p, "Physical Traits", size=11, color="FFFFFF")
hdr2p = pitta_traits_table.cell(0, 1); shade_cell(hdr2p, "E57373"); bold_para(hdr2p, "Mental / Emotional Traits", size=11, color="FFFFFF")

physical_pitta = [
    "Medium build, moderate muscle mass",
    "Warm, oily, reddish or yellowish skin; freckles/moles",
    "Sensitive skin; prone to rashes, acne, inflammation",
    "Strong appetite; irritable when hungry",
    "Excessive sweating, body heat",
    "Premature greying or baldness",
    "Sharp, penetrating eyes (often light-coloured)",
]
mental_pitta = [
    "Intelligent, focused, goal-oriented",
    "Sharp memory; articulate speaker",
    "Perfectionist, competitive, ambitious",
    "Prone to anger, irritability, jealousy",
    "Strong leadership qualities",
    "Discriminating, critical mind",
    "High drive and productivity",
]

rowp = pitta_traits_table.add_row()
c0p = rowp.cells[0]; c1p = rowp.cells[1]
shade_cell(c0p, "FFF3F3"); shade_cell(c1p, "FFF3F3")
for item in physical_pitta:
    p = c0p.add_paragraph(f"• {item}"); p.runs[0].font.size = Pt(10)
for item in mental_pitta:
    p = c1p.add_paragraph(f"• {item}"); p.runs[0].font.size = Pt(10)
for cell in [c0p, c1p]:
    if len(cell.paragraphs) > 1:
        p0 = cell.paragraphs[0]._element; p0.getparent().remove(p0)

doc.add_paragraph("")

add_heading(doc, "3.2 Common Pitta Disorders", level=2, color="8B0000")
pitta_disorders = [
    "Acid reflux, gastritis, peptic ulcer (Amlapitta)",
    "Inflammatory bowel disease (Pittaja Grahani)",
    "Skin disorders: acne, rosacea, urticaria, contact dermatitis",
    "Liver disorders: hepatitis, jaundice (Kamala)",
    "Hypertension, cardiovascular inflammation",
    "Migraine (Pittaja Shiroroga) and fever (Pitta Jwara)",
    "Bleeding disorders: epistaxis, heavy menstruation, haemorrhoids",
    "Inflammatory arthritis, gout (Vatrakta/Pitta component)",
    "Hyperthyroidism",
    "Anger and irritability disorders",
    "Conjunctivitis, stye, eye inflammation",
]
add_list(doc, pitta_disorders)
doc.add_paragraph("")

add_heading(doc, "3.3 Dietary Principle for Pitta", level=2, color="8B0000")
doc.add_paragraph(
    "Pitta is pacified by foods that are cool, sweet, bitter, and astringent. Avoid hot, spicy, oily, "
    "sour, and pungent foods. Eat cooling foods: coconut, coriander, fennel, pomegranate, cucumber, "
    "mint, and fresh vegetables. Do not skip meals — Pitta burns intensely on an empty stomach. "
    "Avoid heating the body further with alcohol, hot sauces, and red meat."
).paragraph_format.space_after = Pt(6)

add_heading(doc, "3.4 Pitta Diet Chart", level=2, color="8B0000")

pitta_diet = [
    ("Grains",       "Wheat, rice (basmati preferred), oats (cooked), quinoa, barley, amaranth",
                     "Corn, buckwheat, rye, millet, brown rice (excess)"),
    ("Legumes",      "Moong dal, chickpeas, tofu, black lentils, split peas, soya (moderate)",
                     "Red/orange lentils (excess), urad dal (heavy)"),
    ("Vegetables",   "Cucumber, leafy greens (spinach, kale), broccoli, cauliflower, celery, asparagus, peas, fennel, zucchini, sweet potato, beet, cabbage (cooked), coriander, sweet peppers",
                     "Nightshades (tomato, chilli, hot peppers), raw onion, garlic (excess), radish, mustard greens"),
    ("Fruits",       "Sweet, ripe: coconut, pomegranate, grapes, melon, pear, lime (small amount), mango (ripe/sweet), fig, dates, cherries, plum",
                     "Sour fruits: lemon (excess), grapefruit, sour oranges, unripe fruits, fermented fruits"),
    ("Dairy",        "Cow's milk (cold/room temp), ghee (excellent), butter (unsalted), cottage cheese",
                     "Sour cream, salted cheese, yoghurt (sour, excess), fermented dairy"),
    ("Oils",         "Coconut oil (best), sunflower oil, olive oil, ghee (moderate)",
                     "Sesame oil, almond oil, mustard oil (heating)"),
    ("Sweeteners",   "Raw sugar, maple syrup, date sugar, stevia",
                     "Honey (heated), molasses, refined sugar (excess)"),
    ("Spices",       "Coriander, fennel, cardamom, turmeric, cumin, fresh ginger (small), mint, cilantro, saffron, dill",
                     "Chilli, black pepper (excess), clove, mustard, garlic (excess), hing, fenugreek"),
    ("Meat/Fish",    "Chicken (white, small amount), freshwater fish, egg white",
                     "Red meat, egg yolk, shellfish, smoked/dried meat, pork"),
    ("Beverages",    "Coconut water, rose water drink, cucumber juice, coriander tea, fennel tea, pomegranate juice, cool (not ice-cold) water",
                     "Alcohol, coffee, black tea, energy drinks, hot beverages (excess)"),
    ("Nuts & Seeds", "Coconut, sunflower seeds, pumpkin seeds, flax seeds (small amount)",
                     "Almonds (dry/excess), cashews, peanuts, walnuts"),
]

pitta_table = doc.add_table(rows=1, cols=3)
pitta_table.style = "Table Grid"
pitta_table.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (hdr, bg) in enumerate(zip(["Food Category", "FAVOUR (Pathya)", "AVOID (Apathya)"], ["8B0000", "2E7D32", "C62828"])):
    cell = pitta_table.cell(0, i); shade_cell(cell, bg); bold_para(cell, hdr, size=11, color="FFFFFF")
for idx, (category, favour, avoid) in enumerate(pitta_diet):
    row = pitta_table.add_row()
    bg = "FFF3F3" if idx % 2 == 0 else "FFFFFF"
    for j in range(3): shade_cell(row.cells[j], bg)
    normal_para(row.cells[0], category); row.cells[0].paragraphs[0].runs[0].bold = True
    normal_para(row.cells[1], favour); normal_para(row.cells[2], avoid)

doc.add_paragraph("")

add_heading(doc, "3.5 Sample Daily Meal Plan – Pitta", level=2, color="8B0000")
pitta_meals = [
    ("Early Morning (6–7 AM)", "Coconut water or cool rose water; soaked raisins/dates"),
    ("Breakfast (8 AM)", "Oatmeal with coconut milk and dates OR wheat bread with ghee and fruit"),
    ("Mid-Morning (10:30 AM)", "Fresh coconut/pomegranate juice or sweet fruit"),
    ("Lunch (12–1 PM)", "Basmati rice + moong dal + cooked leafy greens + ghee + cucumber raita (fresh yoghurt)"),
    ("Evening Snack (4–5 PM)", "Fennel tea + fig / date OR coconut ladoo"),
    ("Dinner (7 PM)", "Wheat chapati + cooked vegetables (broccoli/zucchini) + plain yoghurt"),
    ("Bedtime (9:30 PM)", "Cool milk with cardamom and saffron"),
]

pitta_mt = doc.add_table(rows=1, cols=2)
pitta_mt.style = "Table Grid"
shade_cell(pitta_mt.cell(0, 0), "8B0000"); bold_para(pitta_mt.cell(0, 0), "Meal / Time", color="FFFFFF")
shade_cell(pitta_mt.cell(0, 1), "8B0000"); bold_para(pitta_mt.cell(0, 1), "Recommended Food", color="FFFFFF")
for idx, (time, food) in enumerate(pitta_meals):
    r = pitta_mt.add_row()
    bg = "FFF3F3" if idx % 2 == 0 else "FFFFFF"
    shade_cell(r.cells[0], bg); normal_para(r.cells[0], time); r.cells[0].paragraphs[0].runs[0].bold = True
    shade_cell(r.cells[1], bg); normal_para(r.cells[1], food)

doc.add_paragraph("")

add_heading(doc, "3.6 Herbal & Supplement Supports – Pitta", level=2, color="8B0000")
pitta_herbs = [
    "Amalaki / Amla (Emblica officinalis) – cooling, Pitta-reducer, rich in Vit C",
    "Shatavari – cooling, liver support, female reproductive tonic",
    "Guduchi (Tinospora cordifolia) – anti-inflammatory, liver tonic",
    "Neem – blood purifier, skin, anti-inflammatory",
    "Brahmi – cooling nervine, mental clarity, anti-anger",
    "Manjistha – blood purifier, skin disorders",
    "Triphala – liver, digestion (with ghee for Pitta)",
    "Rose water / Gulkand (rose preserve) – cooling, digestive",
]
add_list(doc, pitta_herbs)

doc.add_paragraph("")

add_heading(doc, "3.7 Lifestyle Tips – Pitta", level=2, color="8B0000")
pitta_lifestyle = [
    "Avoid excessive sun exposure and heat",
    "Engage in cooling physical activities: swimming, leisurely walking",
    "Avoid competitive or overheating exercise during peak heat",
    "Moonlight walks, time in nature reduce Pitta",
    "Practice cooling pranayama: Sheetali and Sheetkari",
    "Avoid working late under artificial lights",
    "Express emotions calmly; avoid suppression (leads to anger/inflammation)",
]
add_list(doc, pitta_lifestyle)

# ═══════════════════════════════════════════════════════
# SECTION 4 – KAPHA
# ═══════════════════════════════════════════════════════
doc.add_page_break()

kapha_hdr = doc.add_paragraph()
kapha_hdr.alignment = WD_ALIGN_PARAGRAPH.CENTER
kr2 = kapha_hdr.add_run("KAPHA PRAKRITI")
kr2.bold = True
kr2.font.size = Pt(20)
kr2.font.color.rgb = RGBColor.from_string("1A5276")

kapha_sub = doc.add_paragraph()
kapha_sub.alignment = WD_ALIGN_PARAGRAPH.CENTER
ks = kapha_sub.add_run("Element: Earth + Water  |  Taste: Pungent, Bitter, Astringent  |  Season: Spring")
ks.font.size = Pt(11)
ks.font.color.rgb = RGBColor.from_string("1A5276")
ks.italic = True

doc.add_paragraph("")

add_heading(doc, "4.1 Physical & Mental Characteristics", level=2, color="1A5276")
kapha_traits_table = doc.add_table(rows=1, cols=2)
kapha_traits_table.style = "Table Grid"

hdr1k = kapha_traits_table.cell(0, 0); shade_cell(hdr1k, "5B8DB8"); bold_para(hdr1k, "Physical Traits", size=11, color="FFFFFF")
hdr2k = kapha_traits_table.cell(0, 1); shade_cell(hdr2k, "5B8DB8"); bold_para(hdr2k, "Mental / Emotional Traits", size=11, color="FFFFFF")

physical_kapha = [
    "Heavy, large, well-built frame; gains weight easily",
    "Thick, oily, smooth, soft skin",
    "Large, calm eyes; thick hair",
    "Strong stamina; slow but steady energy",
    "Slow digestion and metabolism",
    "Deep, heavy sleep; tendency to oversleep",
    "Slow to start but persistent once motivated",
]
mental_kapha = [
    "Calm, patient, loving, compassionate",
    "Good long-term memory; slow learner but retains well",
    "Loyal, stable, reliable",
    "Prone to attachment, greed, possessiveness",
    "Tendency toward lethargy, depression",
    "Resistant to change",
    "Nurturing, empathetic, steady",
]

rowk = kapha_traits_table.add_row()
c0k = rowk.cells[0]; c1k = rowk.cells[1]
shade_cell(c0k, "EBF5FB"); shade_cell(c1k, "EBF5FB")
for item in physical_kapha:
    p = c0k.add_paragraph(f"• {item}"); p.runs[0].font.size = Pt(10)
for item in mental_kapha:
    p = c1k.add_paragraph(f"• {item}"); p.runs[0].font.size = Pt(10)
for cell in [c0k, c1k]:
    if len(cell.paragraphs) > 1:
        p0 = cell.paragraphs[0]._element; p0.getparent().remove(p0)

doc.add_paragraph("")

add_heading(doc, "4.2 Common Kapha Disorders", level=2, color="1A5276")
kapha_disorders = [
    "Obesity, overweight, slow metabolism",
    "Type 2 Diabetes (Madhumeha / Prameha)",
    "Hypothyroidism, sluggish thyroid",
    "Respiratory disorders: asthma, bronchitis, chronic cough, sinusitis",
    "High cholesterol, atherosclerosis",
    "Oedema, water retention",
    "Lethargy, chronic fatigue, depression",
    "Benign tumours, cysts, lipomas",
    "Excess mucus, allergic rhinitis",
    "PCOS (polycystic ovary syndrome)",
    "Congestive heart failure tendency",
]
add_list(doc, kapha_disorders)
doc.add_paragraph("")

add_heading(doc, "4.3 Dietary Principle for Kapha", level=2, color="1A5276")
doc.add_paragraph(
    "Kapha is pacified by foods that are light, dry, warm, and stimulating. Favour Pungent (Katu), "
    "Bitter (Tikta), and Astringent (Kashaya) tastes. Avoid heavy, oily, sweet, and cold foods. "
    "Eat smaller portions, skip breakfast if not hungry, and prefer warm food. Spices are excellent "
    "for Kapha. Raw, light salads (in warm months) and dry cooking methods (baked, grilled, roasted) "
    "are ideal."
).paragraph_format.space_after = Pt(6)

add_heading(doc, "4.4 Kapha Diet Chart", level=2, color="1A5276")

kapha_diet = [
    ("Grains",       "Barley (best), millet, quinoa, amaranth, buckwheat, corn, rye, small amounts of basmati rice",
                     "Wheat, oats (heavy), white rice (excess), pasta (heavy), bread"),
    ("Legumes",      "All legumes are generally good: moong (best), chana, black-eyed peas, masoor, kidney beans (moderate)",
                     "Soya flour (heavy), tofu (excess), urad dal (heavy and oily)"),
    ("Vegetables",   "Most vegetables are great: leafy greens (kale, spinach, arugula), broccoli, cabbage, cauliflower, celery, mushrooms, onion, garlic, radish, beet, eggplant, Brussels sprouts, peppers, corn, fennel",
                     "Sweet potato, potato, zucchini (excess), tomato (excess), cucumber"),
    ("Fruits",       "Apples, pears, pomegranate, berries, cherries, mango (ripe, small), figs (dry), prunes, raisins",
                     "Banana, avocado, dates (excess), coconut (excess), melon, grapes"),
    ("Dairy",        "Low-fat milk (warm, spiced), ghee (small amounts only), diluted buttermilk",
                     "Full-fat milk, butter, cream, cheese, yoghurt (excess/cold), ice cream"),
    ("Oils",         "Mustard oil, flaxseed oil, sunflower oil — use minimally",
                     "Sesame oil, coconut oil, ghee (excess), olive oil (excess)"),
    ("Sweeteners",   "Raw honey (best sweetener for Kapha — do not heat), stevia",
                     "White sugar, jaggery, maple syrup, molasses"),
    ("Spices",       "All stimulating spices: ginger (dry — best!), black pepper, long pepper (pippali), turmeric, mustard, hing, cumin, cardamom, clove, cinnamon, fenugreek, cayenne",
                     "Salt (excess), sweet spices in excess"),
    ("Meat/Fish",    "Chicken (white), turkey, freshwater fish, shrimp, eggs (occasional)",
                     "Red meat, pork, duck, cold cuts, deep-fried meats"),
    ("Beverages",    "Warm/hot water with ginger, honey-lemon water (warm), herbal teas (ginger, tulsi, cinnamon, peppermint), pomegranate juice",
                     "Cold water, cold beverages, alcohol, carbonated drinks, cow's milk (cold)"),
    ("Nuts & Seeds", "Pumpkin seeds, sunflower seeds (moderate), flaxseeds",
                     "Almonds, cashews, walnuts, peanuts, pine nuts, coconut"),
]

kapha_table = doc.add_table(rows=1, cols=3)
kapha_table.style = "Table Grid"
kapha_table.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (hdr, bg) in enumerate(zip(["Food Category", "FAVOUR (Pathya)", "AVOID (Apathya)"], ["1A5276", "2E7D32", "C62828"])):
    cell = kapha_table.cell(0, i); shade_cell(cell, bg); bold_para(cell, hdr, size=11, color="FFFFFF")
for idx, (category, favour, avoid) in enumerate(kapha_diet):
    row = kapha_table.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j in range(3): shade_cell(row.cells[j], bg)
    normal_para(row.cells[0], category); row.cells[0].paragraphs[0].runs[0].bold = True
    normal_para(row.cells[1], favour); normal_para(row.cells[2], avoid)

doc.add_paragraph("")

add_heading(doc, "4.5 Sample Daily Meal Plan – Kapha", level=2, color="1A5276")
kapha_meals = [
    ("Early Morning (5:30–6 AM)", "Warm water with dry ginger, lemon, and a pinch of black pepper; no food initially"),
    ("Breakfast (8–9 AM)", "Light and optional: apple + cinnamon tea OR barley porridge with pumpkin seeds; skip if not hungry"),
    ("Mid-Morning (11 AM)", "Pomegranate juice or light herbal tea"),
    ("Lunch (12–1 PM)", "Barley/millet + moong dal + stir-fried greens + spicy rasam (mustard-cumin seasoning)"),
    ("Evening Snack (4–5 PM)", "Ginger tea + small handful of roasted makhana (fox nuts) OR light fruit"),
    ("Dinner (6–7 PM)", "Wheat chapati (1–2) + cooked vegetables + thin lentil soup; eat lightly"),
    ("Bedtime (9 PM)", "Warm water with honey and dry ginger powder (no milk)"),
]

kapha_mt = doc.add_table(rows=1, cols=2)
kapha_mt.style = "Table Grid"
shade_cell(kapha_mt.cell(0, 0), "1A5276"); bold_para(kapha_mt.cell(0, 0), "Meal / Time", color="FFFFFF")
shade_cell(kapha_mt.cell(0, 1), "1A5276"); bold_para(kapha_mt.cell(0, 1), "Recommended Food", color="FFFFFF")
for idx, (time, food) in enumerate(kapha_meals):
    r = kapha_mt.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    shade_cell(r.cells[0], bg); normal_para(r.cells[0], time); r.cells[0].paragraphs[0].runs[0].bold = True
    shade_cell(r.cells[1], bg); normal_para(r.cells[1], food)

doc.add_paragraph("")

add_heading(doc, "4.6 Herbal & Supplement Supports – Kapha", level=2, color="1A5276")
kapha_herbs = [
    "Trikatu (dry ginger + black pepper + pippali) – best Kapha-reducer, stimulates Agni",
    "Guggulu (Commiphora mukul) – obesity, cholesterol, joint disorders",
    "Triphala – cleansing, bowel regulator",
    "Punarnava – oedema, kidney support, weight",
    "Honey (unheated) – Kapha-reducing medium; use as base for herbal medicines",
    "Tulsi (Holy Basil) – respiratory support, anti-Kapha",
    "Pippali (Long pepper) – respiratory, metabolic stimulant",
    "Vidanga – anti-parasitic, digestive stimulant",
]
add_list(doc, kapha_herbs)

doc.add_paragraph("")

add_heading(doc, "4.7 Lifestyle Tips – Kapha", level=2, color="1A5276")
kapha_lifestyle = [
    "Wake up before sunrise (5–6 AM); avoid sleeping during the day",
    "Vigorous exercise daily: jogging, cycling, aerobics, sun salutation (Surya Namaskar)",
    "Dry powder massage (Udwartana) to reduce fat and stimulate circulation",
    "Avoid daytime naps — increases Kapha",
    "Eat 2 main meals a day; skip dinner or eat very light",
    "Intermittent fasting (Langhana) is beneficial",
    "Stimulating pranayama: Kapalabhati, Bhastrika",
    "Keep environment warm and stimulating",
]
add_list(doc, kapha_lifestyle)

# ═══════════════════════════════════════════════════════
# SECTION 5 – SATTVIC / RAJASIC / TAMASIC FOODS
# ═══════════════════════════════════════════════════════
doc.add_page_break()

add_heading(doc, "5. Ayurvedic Classification of Foods by Quality (Guna)", level=1, color="1F3864")

doc.add_paragraph(
    "Ayurveda classifies all foods by three Gunas (qualities) that influence not only the body but "
    "also the mind and consciousness. This classification cuts across all Prakriti types."
).paragraph_format.space_after = Pt(6)

guna_data = [
    ("SATTVIC\n(Pure / Harmonious)", "1F6B1F",
     "Fresh fruits and vegetables, moong dal, milk, ghee, honey, seeds, fresh herbs, basmati rice, oats, wheat",
     "Promotes clarity, peace, compassion, wisdom, good health, spiritual growth. Recommended for all Prakriti types as base."),
    ("RAJASIC\n(Stimulating / Activating)", "B7770D",
     "Onion, garlic, coffee, tea, spicy food, eggs, meat, fish, excessive salt, sour foods, processed food",
     "Promotes restlessness, passion, activity, ambition, anger when in excess. Moderate amounts needed for active people."),
    ("TAMASIC\n(Dull / Inert)", "7B241C",
     "Stale/reheated food, alcohol, red meat, heavy processed food, junk food, frozen food, leftovers over 24 hrs",
     "Promotes lethargy, dullness, confusion, depression, disease. Should be minimised or avoided entirely."),
]

guna_table = doc.add_table(rows=1, cols=4)
guna_table.style = "Table Grid"
guna_table.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, hdr in enumerate(["Guna", "Examples of Foods", "Effect on Mind & Body"]):
    bg_list = ["1F3864", "1F3864", "1F3864"]
    cell = guna_table.cell(0, i if i == 0 else i)
shade_cell(guna_table.cell(0, 0), "1F3864"); bold_para(guna_table.cell(0, 0), "Guna (Quality)", color="FFFFFF")
shade_cell(guna_table.cell(0, 1), "1F3864"); bold_para(guna_table.cell(0, 1), "Examples of Foods", color="FFFFFF")
shade_cell(guna_table.cell(0, 2), "1F3864"); bold_para(guna_table.cell(0, 2), "Effect on Mind & Body", color="FFFFFF")

for (guna_name, guna_color, examples, effects) in guna_data:
    row = guna_table.add_row()
    shade_cell(row.cells[0], guna_color)
    p = row.cells[0].paragraphs[0]; p.clear()
    r = p.add_run(guna_name); r.bold = True; r.font.size = Pt(10); r.font.color.rgb = RGBColor(255, 255, 255)
    shade_cell(row.cells[1], "F9F9F9"); normal_para(row.cells[1], examples)
    shade_cell(row.cells[2], "F9F9F9"); normal_para(row.cells[2], effects)

doc.add_paragraph("")

# ═══════════════════════════════════════════════════════
# SECTION 6 – QUICK COMPARISON TABLE
# ═══════════════════════════════════════════════════════
add_heading(doc, "6. Quick Comparison – Vata vs Pitta vs Kapha Diet", level=1, color="1F3864")

comp_data = [
    ("Best Taste", "Sweet, Sour, Salty", "Sweet, Bitter, Astringent", "Pungent, Bitter, Astringent"),
    ("Avoid Taste", "Bitter, Pungent, Astringent", "Sour, Pungent, Salty", "Sweet, Sour, Salty"),
    ("Food Temperature", "Warm / Hot", "Cool / Room Temp", "Warm / Hot"),
    ("Food Quality", "Moist, Heavy, Oily", "Light, Cool, Dry", "Light, Dry, Warm"),
    ("Best Oil", "Sesame, Almond, Ghee", "Coconut, Sunflower, Ghee", "Mustard, Sunflower (minimal)"),
    ("Best Grain", "Rice, Wheat, Oats", "Basmati Rice, Wheat, Barley", "Barley, Millet, Quinoa"),
    ("Best Legume", "Moong Dal, Red Lentil", "Moong Dal, Chickpea", "Moong Dal, All legumes"),
    ("Best Dairy", "Warm Milk, Ghee, Yoghurt", "Milk, Ghee", "Low-fat Milk, Buttermilk (thin)"),
    ("Best Sweetener", "Jaggery, Dates, Honey", "Maple Syrup, Raw Sugar", "Raw Honey (unheated)"),
    ("Best Spice", "Ginger (fresh), Hing", "Coriander, Fennel, Turmeric", "Dry Ginger, Black Pepper, Trikatu"),
    ("Meal Frequency", "Regular; 3 meals + snacks", "Regular; do not skip meals", "2 meals; skip breakfast if possible"),
    ("Cooking Method", "Boiled, Steamed, Sauteed", "Steamed, Baked, Boiled", "Baked, Grilled, Dry-roasted"),
]

comp_table = doc.add_table(rows=1, cols=4)
comp_table.style = "Table Grid"
comp_table.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (hdr, bg) in enumerate(zip(["Parameter", "VATA", "PITTA", "KAPHA"], ["1F3864", "8B4513", "8B0000", "1A5276"])):
    cell = comp_table.cell(0, i); shade_cell(cell, bg); bold_para(cell, hdr, size=11, color="FFFFFF")
for idx, row_data in enumerate(comp_data):
    row = comp_table.add_row()
    bg = "F5F5F5" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        shade_cell(row.cells[j], bg)
        normal_para(row.cells[j], val)
        if j == 0: row.cells[j].paragraphs[0].runs[0].bold = True

doc.add_paragraph("")

# ═══════════════════════════════════════════════════════
# SECTION 7 – GENERAL AYURVEDIC DIETARY RULES
# ═══════════════════════════════════════════════════════
add_heading(doc, "7. General Ayurvedic Dietary Rules (Applicable to All Prakriti)", level=1, color="1F3864")

general_rules = [
    "Eat freshly cooked food (Sattvic) — avoid reheated, stale, or frozen meals",
    "Eat the largest meal at noon when Agni (digestive fire) is strongest",
    "Do not eat until the previous meal is fully digested (minimum 3–4 hours gap)",
    "Eat in a calm, mindful atmosphere — avoid eating under stress or distraction",
    "Fill 1/3 stomach with food, 1/3 with water/liquids, and leave 1/3 empty (Mitahara principle)",
    "Avoid incompatible food combinations (Viruddha Ahara): milk + fish, milk + sour fruits, honey + ghee in equal quantities",
    "Sip warm water during meals; avoid cold water especially after oily food",
    "Do not suppress natural urges (hunger, thirst) — eat when genuinely hungry",
    "Seasonal eating (Ritucharya): adjust diet with the seasons",
    "Agni (digestive fire) must be respected — always eat according to your digestive capacity",
    "Morning: light; Noon: heaviest meal; Evening: light",
    "Chew food properly; 32 chews per mouthful is the classical recommendation",
]
add_list(doc, general_rules)

doc.add_paragraph("")

# ═══════════════════════════════════════════════════════
# SECTION 8 – VIRUDDHA AHARA (INCOMPATIBLE FOODS)
# ═══════════════════════════════════════════════════════
add_heading(doc, "8. Viruddha Ahara – Incompatible Food Combinations to Avoid", level=1, color="1F3864")

viruddha_data = [
    ("Milk + Fish", "Causes skin disorders, vitiligo, complex digestive imbalance"),
    ("Milk + Sour Fruits (lemon, orange)", "Curdles in stomach; causes toxic fermentation"),
    ("Honey + Ghee (equal quantities)", "Forms Ama (toxic metabolite) when heated together"),
    ("Milk + Salt", "Opposite qualities; causes Kapha accumulation"),
    ("Cold water after oily food", "Solidifies fats; impairs digestion"),
    ("Fruit + Grain meal", "Fruit digests faster; causes fermentation"),
    ("Honey (heated above 40°C)", "Becomes toxic (Ama-kara); never cook honey"),
    ("Banana + Milk", "Heavy combination; causes mucus, Kapha aggravation"),
    ("Yoghurt at night", "Increases Kapha, Ama; best taken at noon with cumin"),
    ("Radish + Milk", "Skin disorders, digestive disturbance"),
]

viruddha_table = doc.add_table(rows=1, cols=2)
viruddha_table.style = "Table Grid"
shade_cell(viruddha_table.cell(0, 0), "7B241C"); bold_para(viruddha_table.cell(0, 0), "Incompatible Combination", color="FFFFFF")
shade_cell(viruddha_table.cell(0, 1), "7B241C"); bold_para(viruddha_table.cell(0, 1), "Why to Avoid", color="FFFFFF")
for idx, (combo, reason) in enumerate(viruddha_data):
    row = viruddha_table.add_row()
    bg = "FFF0F0" if idx % 2 == 0 else "FFFFFF"
    shade_cell(row.cells[0], bg); normal_para(row.cells[0], combo); row.cells[0].paragraphs[0].runs[0].bold = True
    shade_cell(row.cells[1], bg); normal_para(row.cells[1], reason)

doc.add_paragraph("")

# Footer note
final_note = doc.add_paragraph(
    "Note: Dual Prakriti types (e.g. Vata-Pitta, Pitta-Kapha) require a balanced approach. "
    "In such cases, modify the diet based on the currently aggravated Dosha and the prevailing season. "
    "Consult a qualified Ayurvedic Vaidya for personalised prescription and Panchakarma recommendations."
)
final_note.paragraph_format.space_before = Pt(6)
for run in final_note.runs:
    run.font.size = Pt(10)
    run.italic = True
    run.font.color.rgb = RGBColor.from_string("555555")

# ═══════════════════════════════════════════════════════
# Save
# ═══════════════════════════════════════════════════════
output_path = "/tmp/workspace/ayurvedic-diet-chart/Ayurvedic_Diet_Chart_Vata_Pitta_Kapha.docx"
doc.save(output_path)
print(f"Document saved: {output_path}")
Running Command

cd /tmp/workspace/ayurvedic-diet-chart && python3 create_diet_chart.py

Running Command

ls -lh /tmp/workspace/ayurvedic-diet-chart/

Your comprehensive Ayurvedic Diet Chart is ready! Download it here:

Ayurvedic Diet Chart Vata Pitta Kapha

Word Document · DOCX


What's inside the document (48 KB, fully formatted):
Title Page - Professional cover with title and purpose
Section 1 - Dosha Overview Table
  • Elements, qualities, and seasons for all 3 doshas
Section 2 - VATA PRAKRITI (Brown theme)
  • Physical & mental characteristics table
  • 10 common Vata disorders (constipation, arthritis, anxiety, insomnia, sciatica...)
  • Full diet chart: Grains, legumes, vegetables, fruits, dairy, oils, spices, meats, beverages, nuts
  • Sample 7-meal daily plan
  • 7 herbal supports (Ashwagandha, Shatavari, Triphala...)
  • Lifestyle tips
Section 3 - PITTA PRAKRITI (Red theme)
  • 11 common Pitta disorders (gastritis, acne, liver disorders, migraine, hypertension...)
  • Complete diet chart with Pathya/Apathya
  • Sample meal plan + herbs (Amalaki, Guduchi, Brahmi, Neem...)
  • Lifestyle tips (cooling exercises, Sheetali pranayama)
Section 4 - KAPHA PRAKRITI (Blue theme)
  • 11 common Kapha disorders (obesity, diabetes, hypothyroid, asthma, PCOS...)
  • Complete diet chart
  • Sample meal plan + herbs (Trikatu, Guggulu, Punarnava...)
  • Lifestyle tips (Udwartana, Kapalabhati)
Section 5 - Sattvic / Rajasic / Tamasic Food Classification
  • 3-guna food guide with examples and effects on mind & body
Section 6 - Quick Comparison Table (all 3 doshas side by side)
  • Taste, temperature, quality, oils, grains, legumes, cooking method, meal frequency
Section 7 - General Ayurvedic Dietary Rules (12 universal rules for all Prakriti)
Section 8 - Viruddha Ahara - 10 incompatible food combinations with reasons (milk+fish, honey+ghee, banana+milk, etc.)

Probiotics and other i need only chart with small intro

Asking for Preferences
Running Command

ls /tmp/workspace/ayurvedic-diet-chart/

Writing File

~/ayurvedic-diet-chart/create_gut_health_chart.py

from docx import Document
from docx.shared import Pt, Inches, RGBColor, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
from docx.oxml import OxmlElement

doc = Document()

# ── Page setup ──
section = doc.sections[0]
section.page_width   = Inches(8.5)
section.page_height  = Inches(11)
section.left_margin  = Inches(0.8)
section.right_margin = Inches(0.8)
section.top_margin   = Inches(0.75)
section.bottom_margin= Inches(0.75)

normal_style = doc.styles["Normal"]
normal_style.font.name = "Calibri"
normal_style.font.size = Pt(11)

# ── Helpers ──
def shade(cell, hex_color):
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    shd = OxmlElement("w:shd")
    shd.set(qn("w:val"),   "clear")
    shd.set(qn("w:color"), "auto")
    shd.set(qn("w:fill"),  hex_color)
    tcPr.append(shd)

def hdr_cell(cell, text, hex_bg, text_color="FFFFFF", size=11):
    shade(cell, hex_bg)
    p = cell.paragraphs[0]; p.clear()
    r = p.add_run(text); r.bold = True
    r.font.size = Pt(size)
    r.font.color.rgb = RGBColor.from_string(text_color)
    p.alignment = WD_ALIGN_PARAGRAPH.CENTER

def body_cell(cell, text, hex_bg="FFFFFF", bold=False, size=10, align=WD_ALIGN_PARAGRAPH.LEFT):
    shade(cell, hex_bg)
    p = cell.paragraphs[0]; p.clear()
    r = p.add_run(text); r.bold = bold
    r.font.size = Pt(size)
    p.alignment = align

def section_intro(doc, title, color_hex, intro_text):
    """Adds a colored section heading + 1-line intro paragraph."""
    h = doc.add_heading(title, level=1)
    for run in h.runs:
        run.font.color.rgb = RGBColor.from_string(color_hex)
    p = doc.add_paragraph(intro_text)
    p.runs[0].font.size = Pt(10.5)
    p.runs[0].italic = True
    p.paragraph_format.space_after = Pt(4)

def divider(doc, hex_color="CCCCCC"):
    t = doc.add_table(rows=1, cols=1)
    t.style = "Table Grid"
    shade(t.cell(0, 0), hex_color)
    t.cell(0, 0).paragraphs[0].text = ""
    doc.add_paragraph("")

# ══════════════════════════════════════════════════════
# TITLE
# ══════════════════════════════════════════════════════
tp = doc.add_paragraph()
tp.alignment = WD_ALIGN_PARAGRAPH.CENTER
tr = tp.add_run("GUT HEALTH DIET CHART")
tr.bold = True; tr.font.size = Pt(24)
tr.font.color.rgb = RGBColor.from_string("1B4F72")

sp = doc.add_paragraph()
sp.alignment = WD_ALIGN_PARAGRAPH.CENTER
sr = sp.add_run("Probiotics · Prebiotics · Synbiotics · Postbiotics · Fermented Foods · Dietary Fiber")
sr.bold = True; sr.font.size = Pt(12)
sr.font.color.rgb = RGBColor.from_string("2E86C1")

doc.add_paragraph()

note = doc.add_paragraph()
note.alignment = WD_ALIGN_PARAGRAPH.CENTER
nr = note.add_run("For Naturopathy & Clinical Nutrition Practice  |  Prepared: July 2026")
nr.font.size = Pt(9.5); nr.italic = True
nr.font.color.rgb = RGBColor.from_string("666666")

doc.add_paragraph()
divider(doc, "1B4F72")

# ══════════════════════════════════════════════════════
# QUICK OVERVIEW TABLE
# ══════════════════════════════════════════════════════
ov_intro = doc.add_paragraph(
    "Quick Reference: How Probiotics, Prebiotics, Synbiotics, and Postbiotics differ and work together."
)
ov_intro.runs[0].font.size = Pt(10.5)
ov_intro.runs[0].italic = True
ov_intro.paragraph_format.space_before = Pt(4)

ov = doc.add_table(rows=1, cols=5)
ov.style = "Table Grid"
ov.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Term", "Definition", "Mechanism", "Key Example", "Clinical Use"],
    ["1B4F72","1B4F72","1B4F72","1B4F72","1B4F72"])):
    hdr_cell(ov.cell(0, i), h, bg, size=10)

ov_data = [
    ("Probiotics",   "Live beneficial microorganisms that, when consumed in adequate amounts, confer a health benefit on the host.",
     "Colonise gut temporarily; compete with pathogens; modulate immune response; produce SCFAs",
     "Lactobacillus acidophilus, Bifidobacterium longum",
     "IBS, AAD, diarrhoea, immunity"),
    ("Prebiotics",   "Non-digestible food components that selectively stimulate growth/activity of beneficial gut bacteria.",
     "Fermented by colonic bacteria → produce SCFAs (butyrate, acetate, propionate)",
     "Inulin, FOS, GOS, lactulose, resistant starch",
     "Constipation, gut dysbiosis, obesity"),
    ("Synbiotics",   "Combination of probiotics + prebiotics that synergistically benefit the host.",
     "Prebiotic selectively feeds the co-administered probiotic, enhancing its survival and effect",
     "Lactobacillus GG + Inulin; Bifidobacterium + FOS",
     "IBD, liver disease, neonates"),
    ("Postbiotics",  "Bioactive compounds produced by gut bacteria or released from bacterial cells that benefit the host.",
     "Direct effect of metabolites (SCFAs, bacteriocins, vitamins, peptides) on host cells",
     "Butyrate, SCFAs, bacteriocins, B-vitamins, lactoferrin",
     "Gut barrier repair, anti-inflammatory"),
]
alt = ["EBF5FB","FFFFFF","EBF5FB","FFFFFF"]
for row_data, bg in zip(ov_data, alt):
    row = ov.add_row()
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# 1. PROBIOTICS
# ══════════════════════════════════════════════════════
doc.add_page_break()
section_intro(doc,
    "1. PROBIOTICS",
    "1A5276",
    "Live microorganisms that restore and maintain a healthy gut microbiome. "
    "Must be consumed in adequate doses (typically ≥10⁹ CFU/day) to be effective.")

# 1a. Strains chart
h2 = doc.add_heading("1.1 Key Probiotic Strains, Sources & Benefits", level=2)
for r in h2.runs: r.font.color.rgb = RGBColor.from_string("1A5276")

t1 = doc.add_table(rows=1, cols=5)
t1.style = "Table Grid"
t1.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Genus / Species", "Strain", "Natural Food Source", "Key Health Benefit", "Clinical Indication"],
    ["1A5276"]*5)):
    hdr_cell(t1.cell(0, i), h, bg, size=10)

probiotic_data = [
    ("Lactobacillus acidophilus",   "NCFM / La-5",   "Yoghurt, kefir",                      "Lactose digestion, IBS, vaginal flora",           "IBS, vaginitis, lactose intolerance"),
    ("Lactobacillus rhamnosus",     "GG (LGG)",       "Fermented dairy, supplements",        "AAD prevention, gut barrier, immune boost",       "Antibiotic-assoc. diarrhoea, Crohn's, eczema"),
    ("Lactobacillus reuteri",       "DSM 17938",      "Breast milk, fermented foods",        "Colic, H. pylori suppression, oral health",       "Infant colic, H. pylori, dental caries"),
    ("Lactobacillus casei",         "Shirota",        "Yakult, fermented milk",              "Immune regulation, bowel regularity",             "Constipation, immunity, IBD"),
    ("Lactobacillus plantarum",     "299v",           "Sauerkraut, kimchi, fermented veg",   "IBS (bloating, pain), gut mucosal integrity",     "IBS, traveller's diarrhoea"),
    ("Bifidobacterium longum",      "BB536",          "Colon dominant; dairy/supplements",   "Allergy, constipation, immunity",                 "Constipation, allergic rhinitis, IBS"),
    ("Bifidobacterium lactis",      "Bb-12",          "Yoghurt, infant formula",             "Stool consistency, infant gut health",            "Infant diarrhoea, immunity"),
    ("Bifidobacterium breve",       "M-16V",          "Breast milk, dairy ferments",         "Infant gut colonisation, eczema prevention",      "Preterm infants, atopic dermatitis"),
    ("Streptococcus thermophilus",  "ST-21",          "Yoghurt (primary fermenter)",         "Lactose digestion, gut pH balance",               "Lactose intolerance, yoghurt cultures"),
    ("Saccharomyces boulardii",     "CNCM I-745",     "Probiotic supplement (yeast)",        "AAD, traveller's diarrhoea, C. difficile",        "C. difficile colitis, acute diarrhoea"),
    ("Lactobacillus helveticus",    "R0052",          "Hard cheeses (Emmental, Gruyère)",    "Gut-brain axis, anxiety reduction, calcium abs.", "Anxiety, stress, sleep"),
    ("Enterococcus faecium",        "SF68",           "Some supplements/fermented foods",    "Bowel flora restoration post-antibiotics",        "Post-antibiotic gut restoration"),
]
for idx, row_data in enumerate(probiotic_data):
    row = t1.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# 1b. Probiotic food sources
h2b = doc.add_heading("1.2 Natural Probiotic Food Sources", level=2)
for r in h2b.runs: r.font.color.rgb = RGBColor.from_string("1A5276")

t1b = doc.add_table(rows=1, cols=4)
t1b.style = "Table Grid"
t1b.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Food", "Origin / Tradition", "Dominant Organisms", "Notes"],
    ["1A5276"]*4)):
    hdr_cell(t1b.cell(0, i), h, bg, size=10)

food_sources = [
    ("Yoghurt (Dahi)",       "Universal / Indian",    "L. acidophilus, S. thermophilus, L. bulgaricus",    "Best when fresh, homemade; avoid flavoured/sweetened"),
    ("Kefir",                "Caucasus / Eastern EU", "30+ strains of Lactobacillus, Bifidobacterium + yeasts", "Most diverse probiotic food; contains kefiran"),
    ("Sauerkraut",           "Germany / Eastern EU",  "L. plantarum, L. mesenteroides",                   "Unpasteurised only; rich in Vit C"),
    ("Kimchi",               "Korea",                 "L. kimchii, L. plantarum, L. brevis",              "Fermented cabbage + chilli; anti-inflammatory"),
    ("Miso",                 "Japan",                 "Aspergillus oryzae + L. acidophilus",              "Fermented soybean paste; umami; anti-oxidant"),
    ("Tempeh",               "Indonesia",             "Rhizopus oligosporus (mould) + bacteria",          "Fermented soybeans; high protein"),
    ("Kanji (Black carrot)", "India (North)",         "Lactobacillus spp.",                               "Traditional Indian probiotic drink"),
    ("Idli / Dosa batter",   "India (South)",         "L. mesenteroides, L. fermentum",                   "Fermented rice-lentil; excellent prebiotic too"),
    ("Gundruk",              "Nepal / North-East India", "Lactobacillus fermentum, L. plantarum",         "Fermented leafy greens"),
    ("Kombucha",             "China / Russia",        "Acetic acid bacteria + yeasts (SCOBY)",             "Fermented tea; contains B vitamins, organic acids"),
    ("Natto",                "Japan",                 "Bacillus subtilis natto",                          "Fermented soybeans; highest source of Vit K2"),
    ("Lassi / Buttermilk",   "India",                 "Lactobacillus spp.",                               "Diluted cultured yoghurt; Ayurvedically recommended"),
]
for idx, row_data in enumerate(food_sources):
    row = t1b.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# 1c. Clinical indications
h2c = doc.add_heading("1.3 Probiotics by Clinical Indication", level=2)
for r in h2c.runs: r.font.color.rgb = RGBColor.from_string("1A5276")

t1c = doc.add_table(rows=1, cols=3)
t1c.style = "Table Grid"
t1c.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Condition / Indication", "Recommended Strains", "Dosage Guidance"],
    ["1A5276"]*3)):
    hdr_cell(t1c.cell(0, i), h, bg, size=10)

indications = [
    ("Antibiotic-Associated Diarrhoea (AAD)", "L. rhamnosus GG, S. boulardii", "10⁹–10¹⁰ CFU/day; start day 1 of antibiotics"),
    ("IBS (Irritable Bowel Syndrome)",         "L. plantarum 299v, B. infantis 35624, VSL#3", "10⁹–10¹⁰ CFU/day for 4–8 weeks"),
    ("Acute Infectious Diarrhoea",             "L. rhamnosus GG, S. boulardii, L. acidophilus", "10¹⁰ CFU/day for 5–7 days"),
    ("H. pylori (adjunct to triple therapy)",  "L. reuteri, L. acidophilus, S. boulardii", "During and 2 weeks post antibiotic therapy"),
    ("Constipation",                           "B. longum, B. lactis Bb-12, L. reuteri", "10⁹ CFU/day for minimum 4 weeks"),
    ("Inflammatory Bowel Disease (IBD)",       "VSL#3 (UC), L. rhamnosus GG, E. coli Nissle 1917", "High dose, specialist guidance"),
    ("Vaginal Dysbiosis / BV",                 "L. acidophilus, L. rhamnosus, L. reuteri RC-14", "Oral or vaginal; 10⁸–10⁹ CFU/day"),
    ("Atopic Dermatitis / Eczema",             "L. rhamnosus GG, B. breve, L. salivarius", "Prenatal + postnatal; 10⁹ CFU/day"),
    ("Traveller's Diarrhoea (prevention)",     "S. boulardii, L. acidophilus, L. casei", "Start 2 days before travel; continue throughout"),
    ("Infant Colic",                           "L. reuteri DSM 17938", "10⁸ CFU/day; 30 min before feed"),
    ("Liver Disease (NAFLD/NASH adjunct)",     "L. rhamnosus, B. longum + FOS synbiotic", "Under medical supervision"),
    ("Post-COVID Gut Dysbiosis",               "Multi-strain (Lactobacillus + Bifidobacterium blend)", "10¹⁰ CFU/day for 8–12 weeks"),
]
for idx, row_data in enumerate(indications):
    row = t1c.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# 2. PREBIOTICS
# ══════════════════════════════════════════════════════
doc.add_page_break()
section_intro(doc,
    "2. PREBIOTICS",
    "1E8449",
    "Non-digestible dietary fibres and compounds that selectively feed beneficial gut bacteria "
    "(Lactobacillus, Bifidobacterium). They are not alive but are essential for probiotic survival and gut health.")

h2_pre = doc.add_heading("2.1 Types of Prebiotics, Food Sources & Functions", level=2)
for r in h2_pre.runs: r.font.color.rgb = RGBColor.from_string("1E8449")

t2 = doc.add_table(rows=1, cols=5)
t2.style = "Table Grid"
t2.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Prebiotic Type", "Best Food Sources", "Bacteria Fed", "Key Benefit", "Daily Target"],
    ["1E8449"]*5)):
    hdr_cell(t2.cell(0, i), h, bg, size=10)

prebiotic_data = [
    ("Inulin",                   "Chicory root (highest), garlic, onion, leek, asparagus, Jerusalem artichoke, banana (unripe)", "Bifidobacterium, Lactobacillus", "Bowel regularity, calcium absorption, lipid reduction", "5–10 g/day"),
    ("Fructo-oligosaccharides (FOS)", "Onion, garlic, banana, wheat, tomato, leek, honey",                                    "Bifidobacterium spp.",          "Gut flora balance, constipation, immune modulation",   "3–8 g/day"),
    ("Galacto-oligosaccharides (GOS)", "Human milk (naturally); commercial infant formula + legumes",                         "Bifidobacterium, Lactobacillus", "Infant gut health, immune tolerance, allergy prevention","2–10 g/day"),
    ("Resistant Starch (RS)",    "Green banana, cooked-cooled rice/pasta/potato, legumes, oats (raw), Hi-maize corn",         "Butyrate-producing bacteria (Faecalibacterium, Roseburia)", "Colon cancer prevention, insulin sensitivity, satiety", "15–20 g/day"),
    ("Pectin",                   "Apple (skin), citrus peel, guava, plum, carrot, beet",                                     "Lactobacillus, Bifidobacterium", "Cholesterol reduction, gut barrier support",           "6–12 g/day"),
    ("Beta-glucan",              "Oats (best source), barley, mushrooms (shiitake, reishi, oyster), rye",                    "Lactobacillus, Bifidobacterium", "Cholesterol reduction, immune stimulation, glucose control","3–5 g/day"),
    ("Arabinoxylan (AXOS)",      "Whole wheat bran, oat bran, sorghum, bamboo shoots",                                       "Bifidobacterium spp.",           "Anti-oxidant, colon health, lipid profile",           "3–10 g/day"),
    ("Lactulose",                "Pharmaceutical (synthetic from lactose); small amounts in heated milk",                    "Lactobacillus, Bifidobacterium", "Constipation treatment, hepatic encephalopathy",      "10–30 g/day (medical)"),
    ("Polyphenols (prebiotic-like)", "Berries, pomegranate, green tea, cocoa (dark chocolate >70%), turmeric, flaxseed",     "Akkermansia, Bifidobacterium",  "Anti-inflammatory, gut barrier, antioxidant",         "Dietary amounts"),
]
for idx, row_data in enumerate(prebiotic_data):
    row = t2.add_row()
    bg = "EAFAF1" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# 2b. Top prebiotic foods quick chart
h2b_pre = doc.add_heading("2.2 Top Prebiotic Foods – Quick Reference", level=2)
for r in h2b_pre.runs: r.font.color.rgb = RGBColor.from_string("1E8449")

t2b = doc.add_table(rows=1, cols=4)
t2b.style = "Table Grid"
t2b.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Food", "Prebiotic Content", "How to Use", "Notes"],
    ["1E8449"]*4)):
    hdr_cell(t2b.cell(0, i), h, bg, size=10)

pre_foods = [
    ("Chicory Root",         "Highest inulin (41% dry weight)",     "Chicory tea, coffee substitute, supplement", "Best single source of inulin"),
    ("Garlic (raw)",         "Inulin 9–16 g/100 g, FOS",           "Raw in salads/dressing; minimal cooking",    "Cooking reduces prebiotic content"),
    ("Onion (raw)",          "FOS 2–6 g/100 g, inulin",            "Raw in salads; sauteed (some retained)",     "Red onion has extra polyphenols"),
    ("Leek",                 "FOS + Inulin",                       "Soups, stir-fry, raw",                       "Milder than onion; good tolerance"),
    ("Jerusalem Artichoke",  "Inulin 14–19 g/100 g",              "Cooked, roasted, raw",                       "May cause gas initially; introduce slowly"),
    ("Asparagus",            "Inulin ~2–3 g/100 g",               "Steamed, roasted, raw",                      "Also rich in folate"),
    ("Banana (unripe/green)","Resistant starch 4–19 g/100 g",     "Smoothies, raw",                             "Ripening reduces RS; ripe banana less prebiotic"),
    ("Oats (raw/rolled)",    "Beta-glucan 4–8 g/100 g, RS",       "Overnight oats, porridge (less RS when hot)", "Cooking lowers RS; raw oats retain more"),
    ("Apple (with skin)",    "Pectin 1–1.5 g/apple",              "Raw with skin; juice loses pectin",          "Also contains polyphenols"),
    ("Garbanzo / Chickpeas", "RS + FOS",                          "Cooked, hummus, salads",                     "Cook-cool cycle increases RS"),
    ("Flaxseed",             "Mucilaginous fibres + polyphenols",  "Ground flax in smoothies, yoghurt",         "Must be ground; whole seeds pass undigested"),
    ("Dark Chocolate (>70%)","Polyphenols (cocoa flavanols)",     "20–30 g/day",                               "Feeds Lactobacillus & Bifidobacterium"),
]
for idx, row_data in enumerate(pre_foods):
    row = t2b.add_row()
    bg = "EAFAF1" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# 3. FERMENTED FOODS (extended)
# ══════════════════════════════════════════════════════
doc.add_page_break()
section_intro(doc,
    "3. FERMENTED FOODS",
    "7D3C98",
    "Foods produced through microbial fermentation of sugars/proteins. "
    "They are among the oldest naturally occurring sources of live cultures and bioactive metabolites.")

h3 = doc.add_heading("3.1 Global Fermented Foods Chart", level=2)
for r in h3.runs: r.font.color.rgb = RGBColor.from_string("7D3C98")

t3 = doc.add_table(rows=1, cols=5)
t3.style = "Table Grid"
t3.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Food", "Country / Tradition", "Base Ingredient", "Microorganisms", "Key Health Benefits"],
    ["7D3C98"]*5)):
    hdr_cell(t3.cell(0, i), h, bg, size=10)

fermented_foods = [
    ("Yoghurt / Dahi",    "Universal / India",       "Cow/buffalo/goat milk",      "L. bulgaricus, S. thermophilus, L. acidophilus",  "Digestion, lactose intolerance, immunity, skin"),
    ("Kefir",             "Caucasus",                "Milk or water",              "30+ strains: Lactobacillus + yeasts",             "Strongest probiotic drink; anti-tumour, allergy"),
    ("Kimchi",            "Korea",                   "Cabbage, radish, spices",    "L. kimchii, L. plantarum, L. brevis",             "Anti-obesity, anti-inflammatory, gut flora"),
    ("Sauerkraut",        "Germany / Eastern Europe","Cabbage + salt",             "L. plantarum, L. mesenteroides",                 "Immune support, Vit C, B12, gut health"),
    ("Miso",              "Japan",                   "Soybeans + rice/barley",     "Aspergillus oryzae + LAB",                        "Antioxidant, anti-cancer, gut microbiome support"),
    ("Tempeh",            "Indonesia",               "Soybeans",                   "Rhizopus oligosporus",                            "High protein, B12 (vegan source), gut health"),
    ("Natto",             "Japan",                   "Soybeans",                   "Bacillus subtilis natto",                         "Highest Vit K2 source; cardioprotective, bone health"),
    ("Kombucha",          "China / Russia",          "Black/green tea + sugar",    "SCOBY (acetic acid bacteria + yeasts)",           "Detox, antioxidant, gut health, B vitamins"),
    ("Kanji",             "India (North)",           "Black/purple carrot + mustard seeds", "Lactobacillus spp.",                    "Traditional probiotic; anti-oxidant, digestive"),
    ("Idli / Dosa batter","India (South)",           "Rice + urad dal",            "L. mesenteroides, L. fermentum, S. faecalis",    "Highly digestible; probiotic + prebiotic"),
    ("Dhokla / Khaman",   "India (Gujarat)",         "Chickpea flour (besan)",     "L. fermentum, L. brevis",                        "Protein-rich, fermented, light and digestive"),
    ("Lassi / Buttermilk","India",                   "Yoghurt + water",            "L. acidophilus, L. casei",                       "Cooling, digestive, Pitta-pacifying"),
    ("Kvass",             "Russia / Eastern Europe", "Bread (rye)",                "LAB + yeast",                                    "B vitamins, digestive, anti-microbial"),
    ("Poi",               "Hawaii / Pacific",        "Taro root",                  "LAB (L. mesenteroides)",                         "Digestive, hypoallergenic"),
    ("Injera",            "Ethiopia",                "Teff flour",                 "LAB + wild yeasts",                              "Iron bioavailability, digestive"),
    ("Cheese (aged)",     "Universal",               "Milk",                       "Various LAB, moulds (Penicillium for blue)",      "Calcium, Vit K2, B12; aged = less lactose"),
    ("Pickles (brine-fermented)", "Universal",       "Vegetables in salt brine",   "L. plantarum, L. brevis",                        "Gut flora support; NOT vinegar pickles — no live culture"),
    ("Water Kefir",       "Mexico / Universal",      "Water + sugar + fruit",      "LAB + yeasts (Lactobacillus, Leuconostoc)",       "Dairy-free probiotic option; B vitamins"),
]
for idx, row_data in enumerate(fermented_foods):
    row = t3.add_row()
    bg = "F5EEF8" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# 4. DIETARY FIBER
# ══════════════════════════════════════════════════════
doc.add_page_break()
section_intro(doc,
    "4. DIETARY FIBER",
    "B7770D",
    "Dietary fiber is the indigestible carbohydrate portion of plant foods. "
    "Classified as Soluble (fermented by gut bacteria → SCFAs) or Insoluble (adds bulk, promotes motility). "
    "Recommended intake: 25–38 g/day (women/men).")

h4 = doc.add_heading("4.1 Types of Dietary Fiber", level=2)
for r in h4.runs: r.font.color.rgb = RGBColor.from_string("B7770D")

t4 = doc.add_table(rows=1, cols=5)
t4.style = "Table Grid"
t4.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Fiber Type", "Classification", "Best Food Sources", "Key Functions", "Clinical Benefits"],
    ["B7770D"]*5)):
    hdr_cell(t4.cell(0, i), h, bg, size=10)

fiber_data = [
    ("Beta-glucan",         "Soluble / Viscous", "Oats, barley, mushrooms",            "Viscous gel slows glucose/fat absorption",      "Cholesterol reduction, T2DM, immunity"),
    ("Pectin",              "Soluble / Fermentable", "Apple, citrus peel, guava, carrot","Gels in gut; slows gastric emptying",           "Diarrhoea, cholesterol, gut barrier"),
    ("Inulin / FOS / GOS",  "Soluble / Fermentable (Prebiotic)", "Chicory, onion, garlic, banana", "Prebiotic; fermented to SCFAs (butyrate)",  "Gut microbiome, constipation, bone health"),
    ("Psyllium Husk",       "Soluble / Mucilaginous", "Psyllium (Plantago ovata seed husk)", "Bulking + softening stool; bile acid binding","IBS-C, IBS-D, constipation, hyperlipidaemia"),
    ("Resistant Starch",    "Soluble / Fermentable", "Green banana, cooled potato/rice, legumes", "Fermented by colon bacteria → butyrate",  "Colon cancer prevention, insulin sensitivity"),
    ("Cellulose",           "Insoluble",         "Whole grains, green vegetables, bran", "Adds bulk; accelerates intestinal transit",    "Constipation, diverticulosis prevention"),
    ("Hemicellulose",       "Insoluble/Soluble", "Wheat bran, oat bran, rye",           "Bulks stool, feeds bacteria",                   "Bowel regularity, colon health"),
    ("Lignin",              "Insoluble",         "Flaxseed, sesame, whole grains, woody vegetables", "Not fermented; binds bile acids, carcinogens", "Constipation, anti-cancer, cholesterol"),
    ("Guar Gum",            "Soluble / Viscous", "Guar beans; food additive",           "Slows gastric emptying, reduces glucose spike", "Obesity, T2DM, IBS"),
    ("Arabinoxylan (AXOS)", "Soluble / Prebiotic", "Wheat bran, rye, psyllium",         "Selectively feeds Bifidobacterium",             "Cholesterol, colon health, microbiome"),
]
for idx, row_data in enumerate(fiber_data):
    row = t4.add_row()
    bg = "FEF9E7" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# 4b. High fiber foods
h4b = doc.add_heading("4.2 High-Fiber Foods Chart (Fiber Content per 100 g)", level=2)
for r in h4b.runs: r.font.color.rgb = RGBColor.from_string("B7770D")

t4b = doc.add_table(rows=1, cols=4)
t4b.style = "Table Grid"
t4b.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Food", "Total Fiber (g/100g)", "Fiber Type (dominant)", "Additional Notes"],
    ["B7770D"]*4)):
    hdr_cell(t4b.cell(0, i), h, bg, size=10)

fiber_foods = [
    ("Psyllium husk (isabgol)", "71 g",  "Soluble (mucilaginous)",        "Best single fiber supplement; take with plenty of water"),
    ("Chia seeds",             "34 g",  "Soluble + Insoluble",           "Omega-3 + fiber; soak before use"),
    ("Flaxseeds (ground)",     "27 g",  "Soluble (lignin + mucilage)",   "Must be ground; rich in lignans"),
    ("Split lentils (masoor)", "15 g",  "Soluble + Insoluble",           "Also excellent plant protein"),
    ("Chickpeas (boiled)",     "7.6 g", "Soluble (RS + FOS)",            "Versatile; hummus, curry, salad"),
    ("Black beans",            "8.7 g", "Soluble + Insoluble",           "Highest fiber among common legumes"),
    ("Green banana (unripe)",  "5–6 g", "Resistant starch (soluble)",    "RS content drops as banana ripens"),
    ("Oats (rolled, raw)",     "10 g",  "Soluble (beta-glucan)",         "Best for cholesterol; cook lightly"),
    ("Barley (cooked)",        "3.8 g", "Soluble (beta-glucan)",         "Best grain for Kapha types; cholesterol"),
    ("Avocado",                "6.7 g", "Soluble + Insoluble",           "Also healthy fats; gut-friendly"),
    ("Broccoli (raw)",         "2.6 g", "Insoluble (cellulose)",         "Anti-cancer (sulforaphane) + fiber"),
    ("Apple (with skin)",      "2.4 g", "Soluble (pectin)",              "Skin has most pectin; eat raw"),
    ("Almonds",                "12.5 g","Insoluble",                     "Also prebiotic lipids; healthy fats"),
    ("Wheat bran",             "42 g",  "Insoluble (cellulose)",         "Best for constipation bulk"),
    ("Quinoa (cooked)",        "2.8 g", "Soluble + Insoluble",           "Complete protein + fiber; gluten-free"),
]
for idx, row_data in enumerate(fiber_foods):
    row = t4b.add_row()
    bg = "FEF9E7" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# 5. SYNBIOTICS + POSTBIOTICS
# ══════════════════════════════════════════════════════
doc.add_page_break()
section_intro(doc,
    "5. SYNBIOTICS",
    "1A5276",
    "A Synbiotic combines a probiotic + a prebiotic in a single product, where the prebiotic specifically "
    "supports the co-administered probiotic. This enhances probiotic survival in the GI tract and amplifies benefits.")

h5a = doc.add_heading("5.1 Common Synbiotic Combinations", level=2)
for r in h5a.runs: r.font.color.rgb = RGBColor.from_string("1A5276")

t5a = doc.add_table(rows=1, cols=4)
t5a.style = "Table Grid"
t5a.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Probiotic Component", "Prebiotic Component", "Synergistic Effect", "Clinical Use"],
    ["1A5276"]*4)):
    hdr_cell(t5a.cell(0, i), h, bg, size=10)

synbiotic_data = [
    ("L. rhamnosus GG",        "Inulin / FOS",           "Improved GG survival; enhanced bowel flora",         "Antibiotic-assoc. diarrhoea, IBS"),
    ("Bifidobacterium lactis",  "GOS",                    "Infant gut colonisation; immune tolerance",           "Neonates, infant formula, allergies"),
    ("B. longum + L. acidophilus", "FOS + Inulin",        "Synergistic Bifidobacterium growth; colon health",   "IBD, constipation, colon cancer prevention"),
    ("L. casei Shirota",        "Lactulose",              "Enhanced bifidogenic effect; constipation relief",   "Constipation, hepatic encephalopathy"),
    ("Multi-strain LAB blend",  "Beta-glucan (oats)",     "Boosted immune modulation; SCFA production",         "Metabolic syndrome, T2DM, obesity"),
    ("L. plantarum + L. reuteri", "Pectin + Psyllium",    "IBS symptom reduction; gut barrier support",         "IBS-C and IBS-D, leaky gut syndrome"),
]
for idx, row_data in enumerate(synbiotic_data):
    row = t5a.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

section_intro(doc,
    "6. POSTBIOTICS",
    "922B21",
    "Postbiotics are inanimate microorganisms and/or their components or metabolic by-products that confer "
    "a health benefit on the host. They act directly — no live bacteria needed.")

h6 = doc.add_heading("6.1 Key Postbiotic Compounds", level=2)
for r in h6.runs: r.font.color.rgb = RGBColor.from_string("922B21")

t6 = doc.add_table(rows=1, cols=4)
t6.style = "Table Grid"
t6.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Postbiotic", "Source", "Key Actions", "Clinical Application"],
    ["922B21"]*4)):
    hdr_cell(t6.cell(0, i), h, bg, size=10)

postbiotic_data = [
    ("Short-Chain Fatty Acids (SCFAs):\nButyrate, Acetate, Propionate",
     "Fermentation of dietary fiber by colonic bacteria",
     "Colonocyte fuel; anti-inflammatory; tight junction repair; anti-cancer",
     "IBD, leaky gut, colon cancer prevention, insulin sensitivity"),
    ("Bacteriocins (e.g. nisin, reuterin)",
     "Produced by Lactobacillus, Lactococcus",
     "Antimicrobial peptides; inhibit pathogens (C. difficile, Listeria, Staph)",
     "Infection prevention, food preservation, dysbiosis"),
    ("B-Vitamins (B2, B9, B12, B6, K2)",
     "Produced by Bifidobacterium, Lactobacillus, Bacillus",
     "Coenzyme functions; neurological health; blood formation; bone health",
     "Deficiency states, vegans, neuropathy"),
    ("Tryptophan metabolites (Indoles)",
     "Gut bacteria metabolism of dietary tryptophan",
     "Gut barrier integrity; immune regulation; gut-brain axis signalling",
     "Anxiety, depression, gut permeability"),
    ("Exopolysaccharides (EPS)",
     "LAB cell surface polysaccharides",
     "Immune modulation; anti-tumour; gut mucus layer support",
     "IBD, mucus barrier deficiency"),
    ("Heat-killed / Tyndallized probiotics",
     "Commercially inactivated L. acidophilus, B. longum",
     "Immune modulation without live organism risk; epithelial barrier support",
     "Immunocompromised patients; infants; post-surgery"),
    ("Muramyl dipeptide (MDP)",
     "Fragment of bacterial peptidoglycan cell wall",
     "NOD2 receptor activation; innate immunity regulation",
     "IBD (Crohn's), innate immune deficiency"),
]
for idx, row_data in enumerate(postbiotic_data):
    row = t6.add_row()
    bg = "FDEDEC" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# 6. PRACTICAL GUT HEALTH DIET CHART
# ══════════════════════════════════════════════════════
doc.add_page_break()
section_intro(doc,
    "7. PRACTICAL GUT-HEALTH DIET CHART",
    "1B4F72",
    "A simple, practical daily food guide combining Probiotics, Prebiotics, Fiber, and Fermented foods "
    "for optimal gut microbiome health.")

h7 = doc.add_heading("7.1 Daily Gut Health Foods – Eat Every Day", level=2)
for r in h7.runs: r.font.color.rgb = RGBColor.from_string("1B4F72")

t7 = doc.add_table(rows=1, cols=4)
t7.style = "Table Grid"
t7.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Category", "Foods to Include Daily", "Serving Suggestion", "Why"],
    ["1B4F72"]*4)):
    hdr_cell(t7.cell(0, i), h, bg, size=10)

daily_gut = [
    ("Probiotic (at least 1)",    "Fresh yoghurt (dahi), kefir, buttermilk (lassi), kimchi, miso",       "1 cup yoghurt OR 1 glass lassi at noon",                "Replenishes live beneficial bacteria"),
    ("Prebiotic (at least 1)",    "Garlic, onion, asparagus, banana (unripe), oats",                      "1 small raw onion in meals; 1 banana; oats at breakfast", "Feeds and sustains probiotic colonies"),
    ("Soluble Fiber",             "Oats, apple (with skin), psyllium husk, legumes, barley",              "½ cup oats at breakfast; 1 apple daily; add isabgol in water", "Cholesterol, glucose control, butyrate"),
    ("Insoluble Fiber",           "Whole grains, leafy greens, wheat bran, cucumber, celery",             "2 cups vegetables per meal; whole grain rotis",          "Bowel motility, detox, satiety"),
    ("Polyphenol-rich",           "Berries, pomegranate, dark chocolate (>70%), green tea, turmeric",     "1 tsp turmeric in food; berries in breakfast; 1 cup green tea", "Feeds Akkermansia; anti-inflammatory"),
    ("Fermented grain / legume",  "Idli, dosa, dhokla, whole grain sourdough bread",                      "2 idli / 1 dosa at breakfast or any meal",               "Natural LAB + prebiotic combination"),
    ("Omega-3 rich",              "Flaxseed (ground), walnuts, fatty fish, chia seeds",                   "1 tbsp ground flax in smoothie or roti dough",           "Reduces gut inflammation; EPA/DHA"),
    ("Adequate hydration",        "Warm water, coconut water, herbal tea",                                "8–10 glasses warm water; sip between meals",            "Keeps gut transit healthy; fiber works with water"),
]
for idx, row_data in enumerate(daily_gut):
    row = t7.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# 7b. Foods to AVOID
h7b = doc.add_heading("7.2 Foods that Harm the Gut Microbiome – Minimise or Avoid", level=2)
for r in h7b.runs: r.font.color.rgb = RGBColor.from_string("C0392B")

t7b = doc.add_table(rows=1, cols=3)
t7b.style = "Table Grid"
t7b.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Harmful Food / Habit", "Mechanism of Gut Damage", "Better Alternative"],
    ["C0392B"]*3)):
    hdr_cell(t7b.cell(0, i), h, bg, size=10)

avoid_data = [
    ("Ultra-processed foods (chips, instant noodles, packaged snacks)", "Reduce microbiome diversity; contain emulsifiers (Polysorbate 80, CMC) disrupting mucus layer", "Whole foods, homemade snacks"),
    ("Refined sugar and high-fructose corn syrup", "Feeds pathogenic bacteria (Clostridium), yeast (Candida), reduces Bifidobacterium", "Jaggery, dates, raw honey in moderation"),
    ("Artificial sweeteners (aspartame, sucralose, saccharin)", "Directly alter gut microbiome composition; reduce microbiome diversity", "Stevia, small amounts of raw honey"),
    ("Antibiotics (unnecessary/self-prescribed)", "Broad-spectrum killing of beneficial bacteria; dysbiosis; AAD; Candida overgrowth", "Only when medically required; follow with probiotics"),
    ("Alcohol (excess)", "Increases intestinal permeability (leaky gut); shifts microbiome toward pathobionts", "Limit; fermented options (kefir, kombucha) are gut-friendly"),
    ("Chronic stress + poor sleep", "Increases cortisol → reduces Lactobacillus/Bifidobacterium; slows gut motility", "Relaxation, yoga, consistent sleep schedule"),
    ("Fried and trans-fat foods", "Pro-inflammatory; reduce microbiome diversity; increase LPS-producing bacteria", "Olive oil, ghee, coconut oil in moderation"),
    ("Vinegar pickles (pasteurised)", "No live culture (heat-killed); high sodium", "Brine-fermented (unpasteurised) pickles or kimchi"),
    ("NSAIDs (long-term use)", "Damage gut lining; alter microbiome; increase intestinal permeability", "Short-term use; gut-protective medications if needed"),
]
for idx, row_data in enumerate(avoid_data):
    row = t7b.add_row()
    bg = "FDEDEC" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# ══════════════════════════════════════════════════════
# SAMPLE DAY MEAL PLAN
# ══════════════════════════════════════════════════════
h8 = doc.add_heading("8. Sample Gut-Health Day Meal Plan", level=1)
for r in h8.runs: r.font.color.rgb = RGBColor.from_string("1B4F72")
doc.add_paragraph("Incorporates all four pillars: Probiotics, Prebiotics, Fiber, Fermented Foods."
).runs[0].italic = True

t8 = doc.add_table(rows=1, cols=3)
t8.style = "Table Grid"
t8.alignment = WD_TABLE_ALIGNMENT.CENTER
for i, (h, bg) in enumerate(zip(
    ["Time / Meal", "Food", "Gut Health Component"],
    ["1B4F72"]*3)):
    hdr_cell(t8.cell(0, i), h, bg, size=10)

meal_plan = [
    ("Early Morning (6–7 AM)",     "Warm water + 1 tsp psyllium husk + lemon",                                    "Soluble fiber, hydration"),
    ("Breakfast (8 AM)",           "Oat porridge with banana slices + 1 tsp ground flax + berries",               "Prebiotics (oat beta-glucan + banana RS) + Omega-3"),
    ("Mid-Morning (10:30 AM)",     "1 glass lassi (fresh yoghurt + cumin) OR kefir",                              "Probiotics (live LAB)"),
    ("Lunch (1 PM)",               "2 idli / barley khichdi + sabzi with garlic/onion + dal + green salad",       "Fermented + Probiotics + Prebiotic (garlic, onion)"),
    ("Afternoon (4 PM)",           "1 apple (with skin) + 1 square dark chocolate (>70%) + green tea",            "Pectin (soluble fiber) + Polyphenols"),
    ("Dinner (7 PM)",              "Whole wheat chapati + cooked vegetables + miso soup OR kimchi side (small)",   "Fiber + Probiotics (fermented)"),
    ("Before Bed (9:30 PM)",       "Warm turmeric milk (haldi doodh) OR warm chamomile tea",                       "Anti-inflammatory; gut barrier support"),
]
for idx, row_data in enumerate(meal_plan):
    row = t8.add_row()
    bg = "EBF5FB" if idx % 2 == 0 else "FFFFFF"
    for j, val in enumerate(row_data):
        body_cell(row.cells[j], val, bg, bold=(j==0), size=9.5)

doc.add_paragraph()

# Footer
fn = doc.add_paragraph(
    "Reference: WHO/FAO Probiotic Guidelines (2002, updated 2022) | ISAPP Consensus Statements | "
    "Gut Microbiome Research (2024) | For educational/clinical use. Individual assessment recommended."
)
fn.runs[0].font.size = Pt(9); fn.runs[0].italic = True
fn.runs[0].font.color.rgb = RGBColor.from_string("666666")

# ── Save ──
out = "/tmp/workspace/ayurvedic-diet-chart/Gut_Health_Chart_Probiotics_Prebiotics.docx"
doc.save(out)
print(f"Saved: {out}")
Running Command

cd /tmp/workspace/ayurvedic-diet-chart && python3 create_gut_health_chart.py

Running Command

ls -lh /tmp/workspace/ayurvedic-diet-chart/

Your Gut Health Chart is ready! Download it here:

Gut Health Chart Probiotics Prebiotics

Word Document · DOCX


What's inside (50 KB, chart-focused with small intros):
Title Page - "Gut Health Diet Chart" with all 4 pillars
Quick Overview Table - Probiotics vs Prebiotics vs Synbiotics vs Postbiotics at a glance (definition, mechanism, example, use)
Section 1 - Probiotics (Blue theme)
  • 12-strain chart: Genus, Strain, Food Source, Benefit, Indication (L. acidophilus, LGG, L. reuteri, Bifidobacterium spp., S. boulardii...)
  • 12 natural probiotic food sources: Yoghurt, Kefir, Kimchi, Sauerkraut, Miso, Idli, Kanji, Kombucha, Natto, Lassi...
  • Clinical indications chart: IBS, AAD, H. pylori, Vaginitis, Eczema, Infant colic, NAFLD + dosage
Section 2 - Prebiotics (Green theme)
  • 9 prebiotic types: Inulin, FOS, GOS, Resistant Starch, Pectin, Beta-glucan, Arabinoxylan, Lactulose, Polyphenols — with bacteria fed + daily targets
  • 12 top prebiotic foods with content and tips
Section 3 - Fermented Foods (Purple theme)
  • 18 global fermented foods: Indian (Idli, Dhokla, Kanji, Lassi), Korean, Japanese, European, African — with organisms + benefits
Section 4 - Dietary Fiber (Amber theme)
  • 10 fiber types (soluble vs insoluble) with sources and clinical benefits
  • 15 high-fiber foods with gram content per 100 g
Section 5 - Synbiotics - 6 key combinations with clinical use
Section 6 - Postbiotics - SCFAs, Bacteriocins, B-vitamins, Tryptophan metabolites, heat-killed probiotics
Section 7 - Practical Daily Chart
  • 8 daily gut-health food categories with serving suggestions
  • 9 foods/habits that harm the gut microbiome with better alternatives
Section 8 - Sample Day Meal Plan integrating all 4 pillars
This is a shared conversation. Sign in to Orris to start your own chat.