// ================= Seed/mock data =================
    const categories = ["All", "Pounds Lost", "Non-Scale Victory", "Protein Win", "Water Win", "Movement", "Meal Hack", "First Month", "Motivation", "Maintenance", "Getting Started"];

    const patient = {
      id: "p1",
      firstName: "Sarah",
      currentWeek: 4,
      currentDose: "0.6 ml",
      nextVisitDate: "Thursday",
      startingWeight: 214,
      currentWeight: 207,
      totalLost: 7,
      weeklyFocus: "Protein before coffee",
      checkInStreak: 4,
      pointsBalance: 180,
      currentStreakWeeks: 4,
      lastCheckInDate: "2026-06-10"
    };

    const seedWins = [
      { id: "w1", headline: "Down 10 lbs!", details: "I kept showing up for appointments and hit my water goal most days.", category: "Pounds Lost", displayName: "Anonymous", isAnonymous: true, weekNumber: 6, imageUrl: "", cheers: 28, isFeatured: true, isHidden: false, isFlagged: false, createdAt: "2026-06-01" },
      { id: "w2", headline: "Protein coffee hack", details: "Cold brew plus a protein shake has made mornings so much easier.", category: "Protein Win", displayName: "Mia", isAnonymous: false, weekNumber: 3, imageUrl: "", cheers: 14, isFeatured: false, isHidden: false, isFlagged: false, createdAt: "2026-06-03" },
      { id: "w3", headline: "Back in my jeans", details: "A non-scale victory that made my whole week.", category: "Non-Scale Victory", displayName: "Anonymous", isAnonymous: true, weekNumber: 8, imageUrl: "", cheers: 35, isFeatured: true, isHidden: false, isFlagged: false, createdAt: "2026-06-04" },
      { id: "w4", headline: "No soda this week", details: "Swapped soda for sparkling water and lemon.", category: "Water Win", displayName: "Jenna", isAnonymous: false, weekNumber: 2, imageUrl: "", cheers: 19, isFeatured: false, isHidden: false, isFlagged: false, createdAt: "2026-06-05" },
      { id: "w5", headline: "Walked 4 days", details: "Short walks after dinner helped my energy.", category: "Movement", displayName: "Anonymous", isAnonymous: true, weekNumber: 5, imageUrl: "", cheers: 21, isFeatured: false, isHidden: false, isFlagged: false, createdAt: "2026-06-06" },
      { id: "w6", headline: "First month complete", details: "Feeling more confident and less overwhelmed.", category: "First Month", displayName: "Tara", isAnonymous: false, weekNumber: 4, imageUrl: "", cheers: 31, isFeatured: false, isHidden: false, isFlagged: false, createdAt: "2026-06-07" },
      { id: "w7", headline: "My easy lunch idea", details: "Turkey roll-ups, berries, and cottage cheese worked when my appetite was small.", category: "Meal Hack", displayName: "Anonymous", isAnonymous: true, weekNumber: 7, imageUrl: "", cheers: 17, isFeatured: false, isHidden: false, isFlagged: true, createdAt: "2026-06-08" },
      { id: "w8", headline: "Stayed consistent", details: "Not perfect, just consistent. That feels new for me.", category: "Motivation", displayName: "Leah", isAnonymous: false, weekNumber: 9, imageUrl: "", cheers: 24, isFeatured: false, isHidden: false, isFlagged: false, createdAt: "2026-06-09" }
    ];

    // Legacy standalone meal ideas power the Meals screen and simple admin placeholder.
    // Weekly Support rotation uses supportContentBank below.
    const meals = [
      ["Egg bites and berries", "Easy Breakfast", "Make-ahead egg bites with fruit for small appetite mornings.", "24g"],
      ["Greek yogurt crunch", "High-Protein Snacks", "Greek yogurt, cinnamon, and a few walnuts.", "20g"],
      ["Soup and turkey roll-ups", "Small Appetite Meals", "Warm broth soup with simple turkey and cheese roll-ups.", "26g"],
      ["Sheet pan taco bowls", "Family Dinners", "Lean taco meat, peppers, lettuce, avocado, and salsa.", "32g"],
      ["Protein pudding cup", "Sweet Craving Ideas", "A chilled sweet option with a protein base.", "18g"],
      ["Drive-thru better choice", "Fast Food Better Choices", "Grilled sandwich or bowl, skip sugary drinks, add water.", "28g"],
      ["Rotisserie chicken kit", "Grocery Finds", "Rotisserie chicken, salad kit, and cottage cheese.", "35g"]
    ];

    const mealDecks = [
      {
        id: "breakfast",
        need: "Breakfast",
        title: "Easy Breakfast",
        description: "Low-effort starts for small appetite mornings.",
        icon: "fork",
        accent: "breakfast",
        ideas: [
          { id: "deck-breakfast-egg-bites", name: "Egg bites and berries", description: "Make-ahead egg bites with a few berries.", protein: "24g protein", tags: ["Make-ahead", "Small appetite", "Breakfast"], why: "Small portion, high protein, and easy to prep ahead for low-appetite mornings." },
          { id: "deck-breakfast-yogurt", name: "Greek yogurt bowl", description: "Greek yogurt with berries and a light crunch.", protein: "20g protein", tags: ["No cooking", "High protein", "Quick prep"], why: "Cool, quick, and easy to scale down when a full breakfast feels like too much." }
        ]
      },
      {
        id: "protein",
        need: "Need protein",
        title: "High-Protein Snacks",
        description: "Simple protein anchors when a meal feels too big.",
        icon: "spark",
        accent: "protein",
        ideas: [
          { id: "deck-protein-yogurt-crunch", name: "Greek yogurt crunch", description: "Greek yogurt, cinnamon, and a few walnuts.", protein: "20g protein", tags: ["Quick prep", "High protein", "Snack"], why: "A small bowl can still deliver protein and texture without feeling like a full meal." },
          { id: "deck-protein-turkey-rollups", name: "Turkey roll-ups", description: "Turkey and cheese roll-ups with cucumbers.", protein: "22g protein", tags: ["Low carb", "No cooking", "Small appetite"], why: "Easy finger food helps when appetite is low but you still want a steady protein option." }
        ]
      },
      {
        id: "small-appetite",
        need: "Barely hungry",
        title: "Small Appetite Meals",
        description: "Gentle options for days when portions need to stay small.",
        icon: "heart",
        accent: "small-appetite",
        ideas: [
          { id: "deck-small-soup-rollups", name: "Soup and turkey roll-ups", description: "Warm broth soup with simple turkey roll-ups.", protein: "26g protein", tags: ["Gentle meal", "Small appetite", "Easy prep"], why: "Warm, simple, and easy to eat slowly while still adding useful protein." },
          { id: "deck-small-cottage-plate", name: "Cottage cheese plate", description: "Cottage cheese with fruit and cucumber crunch.", protein: "23g protein", tags: ["No cooking", "Light meal", "High protein"], why: "A flexible plate lets you choose a smaller portion and still get a protein base." }
        ]
      },
      {
        id: "family",
        need: "Family meal",
        title: "Family Dinners",
        description: "Meals that work for the table without making yours complicated.",
        icon: "users",
        accent: "family",
        ideas: [
          { id: "deck-family-taco-bowls", name: "Turkey taco bowls", description: "Turkey, lettuce, salsa, and flexible toppings.", protein: "30g protein", tags: ["Family meal", "Meal prep", "High protein"], why: "Everyone can build their own bowl, so your portion can stay comfortable." },
          { id: "deck-family-rotisserie", name: "Rotisserie chicken plates", description: "Chicken, salad kit, and a simple side.", protein: "28g protein", tags: ["No cooking", "Family meal", "Quick prep"], why: "A ready protein makes dinner feel less like a project on busy nights." }
        ]
      },
      {
        id: "busy",
        need: "No time",
        title: "Busy Night Meals",
        description: "Fast, realistic ideas when the day ran long.",
        icon: "calendar",
        accent: "busy",
        ideas: [
          { id: "deck-busy-snack-plate", name: "Protein snack plate", description: "Turkey, cheese, fruit, and something crunchy.", protein: "25g protein", tags: ["No cooking", "Busy night", "Small appetite"], why: "Snack plates are flexible, fast, and easier than forcing a full dinner." },
          { id: "deck-busy-lettuce-cups", name: "Chicken salad lettuce cups", description: "Chicken salad tucked into crisp lettuce cups.", protein: "27g protein", tags: ["Low carb", "Quick prep", "High protein"], why: "It feels fresh and light while still giving you a strong protein anchor." }
        ]
      }
    ];

    // Legacy standalone coach tips power the Coach Tips admin placeholder.
    // Weekly Support rotation uses supportContentBank below.
    const coachTips = [
      { id: "t1", title: "Protein first", body: "Start the day with protein before coffee when you can.", category: "Nutrition", weekNumber: 4 },
      { id: "t2", title: "Small meals count", body: "Smaller, steady meals can feel better than forcing large portions.", category: "Support", weekNumber: 4 },
      { id: "t3", title: "Call with concerns", body: "Contact Leaner for symptoms, dose questions, or anything that feels concerning.", category: "Clinic", weekNumber: 4 }
    ];

    const mockMealSnapshotResult = {
      id: "mock-meal-snapshot-1",
      photoUrl: "",
      title: "Turkey egg croissant",
      calories: 510,
      protein: 31,
      carbs: 38,
      fat: 25,
      confidence: "Estimated",
      ingredients: [
        { name: "Croissant", amount: "1 sandwich" },
        { name: "Egg", amount: "1 folded egg" },
        { name: "Turkey", amount: "about 3 oz" },
        { name: "Cheese", amount: "1 slice" }
      ],
      note: "A satisfying breakfast sandwich with a useful protein anchor. If appetite is low, start with the egg and turkey and pause when comfortably full."
    };

    const supportFallbacks = {
      [SUPPORT_TYPES.MEAL_IDEA]: { id: "fallback-meal", type: SUPPORT_TYPES.MEAL_IDEA, title: "Simple Protein Plate", shortDescription: "Choose a lean protein, a fiber-rich side, and something fresh. Keep it simple this week.", fullContent: "Build a simple plate around protein first, then add a fiber-rich side and something fresh. No tracking required.", icon: "fork", tags: ["evergreen"], status: CONTENT_STATUSES.APPROVED, timesShown: 0 },
      [SUPPORT_TYPES.COACH_TIP]: { id: "fallback-tip", type: SUPPORT_TYPES.COACH_TIP, title: "Small Wins Count", shortDescription: "You do not need a perfect week. One consistent choice at a time still builds momentum.", fullContent: "You do not need a perfect week. Choose one steady action and let that count as progress.", icon: "tip", tags: ["evergreen"], status: CONTENT_STATUSES.APPROVED, timesShown: 0 },
      [SUPPORT_TYPES.CLINIC_SUPPORT]: { id: "fallback-clinic", type: SUPPORT_TYPES.CLINIC_SUPPORT, title: "Need Help?", shortDescription: "If you have questions about your program, reach out to the Leaner team.", fullContent: "If you have questions about your program, symptoms, scheduling, or next steps, reach out to the Leaner team.", icon: "message", tags: ["evergreen"], status: CONTENT_STATUSES.APPROVED, timesShown: 0 }
    };

    const supportContentBank = [
      { id: "meal-1", type: "meal_idea", title: "Simple Protein Plate", shortDescription: "Choose a lean protein, a fiber-rich side, and something fresh. Keep it simple this week.", fullContent: "Build a simple plate around protein first, then add a fiber-rich side and something fresh. No tracking required.", icon: "fork", tags: ["protein", "simple"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-2", type: "meal_idea", title: "Greek Yogurt Power Bowl", shortDescription: "Greek yogurt with berries and a little crunch can be an easy protein-friendly option.", fullContent: "Use Greek yogurt as the base, then add berries, cinnamon, or a small handful of nuts for texture.", icon: "fork", tags: ["breakfast", "snack"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-3", type: "meal_idea", title: "Rotisserie Chicken Lettuce Wraps", shortDescription: "Use rotisserie chicken and lettuce wraps for a quick, low-effort meal.", fullContent: "Pair rotisserie chicken with lettuce, cucumber, and a simple sauce or salsa that works for you.", icon: "fork", tags: ["lunch"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-4", type: "meal_idea", title: "Egg Bite Breakfast", shortDescription: "Egg bites can be a repeatable protein option for busy mornings.", fullContent: "Make or buy egg bites and pair them with fruit or another simple side when appetite allows.", icon: "fork", tags: ["breakfast"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-5", type: "meal_idea", title: "Turkey Roll-Up Snack Box", shortDescription: "Turkey roll-ups, fruit, and something crunchy can make a small meal easier.", fullContent: "Roll turkey and cheese together, then add fruit and cucumbers or crackers for a simple snack box.", icon: "fork", tags: ["snack"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-6", type: "meal_idea", title: "Salmon Rice Bowl", shortDescription: "Salmon, rice, and vegetables can make a simple balanced bowl.", fullContent: "Use salmon with rice and vegetables for a flexible bowl. Keep portions comfortable and simple.", icon: "fork", tags: ["dinner"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-7", type: "meal_idea", title: "Cottage Cheese Fruit Bowl", shortDescription: "Cottage cheese with fruit is quick, cool, and protein-friendly.", fullContent: "Keep cottage cheese on hand for an easy bowl with fruit, cinnamon, or a small crunch topping.", icon: "fork", tags: ["snack"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-8", type: "meal_idea", title: "Protein Smoothie Starter", shortDescription: "A simple smoothie can help on days when a full meal feels like too much.", fullContent: "Blend a protein base with fruit and ice or milk. Keep it simple and choose ingredients that sit well.", icon: "fork", tags: ["small appetite"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-9", type: "meal_idea", title: "Chicken Taco Bowl", shortDescription: "Chicken, lettuce, salsa, and a small grain or bean base can become an easy bowl.", fullContent: "Use chicken with lettuce, salsa, avocado, and rice or beans if they work for you.", icon: "fork", tags: ["family"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-10", type: "meal_idea", title: "Easy Shrimp Veggie Skillet", shortDescription: "Shrimp and vegetables cook quickly for a protein-friendly dinner.", fullContent: "Cook shrimp with vegetables and seasonings you enjoy. Add rice or another side if needed.", icon: "fork", tags: ["dinner"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-11", type: "meal_idea", title: "Tuna Cucumber Crunch", shortDescription: "Tuna with cucumber or crackers can be a fast protein-friendly lunch.", fullContent: "Use tuna with cucumber slices, crackers, or lettuce cups for a simple option.", icon: "fork", tags: ["lunch"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "meal-12", type: "meal_idea", title: "Leaner Snack Plate", shortDescription: "Build a snack plate with protein, produce, and one easy crunch.", fullContent: "Try turkey, cheese, fruit, and cucumbers or crackers. Keep it realistic for your day.", icon: "fork", tags: ["snack"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-1", type: "coach_tip", title: "Small Wins Count", shortDescription: "You do not need a perfect week. One consistent choice at a time still builds momentum.", fullContent: "One steady choice can be enough to keep the week moving. Notice it and build from there.", icon: "tip", tags: ["mindset"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-2", type: "coach_tip", title: "Protein First", shortDescription: "Try starting one meal or snack with protein this week.", fullContent: "Protein first can be a simple anchor habit. Keep it realistic and repeatable.", icon: "tip", tags: ["protein"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-3", type: "coach_tip", title: "Keep Water Nearby", shortDescription: "Put water where you will see it so hydration feels easier.", fullContent: "A visible water bottle can make the choice easier without adding another task to remember.", icon: "tip", tags: ["water"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-4", type: "coach_tip", title: "Plan One Easy Meal", shortDescription: "Choose one simple meal you can fall back on when the day gets busy.", fullContent: "A backup meal can reduce stress and keep the day from feeling all-or-nothing.", icon: "tip", tags: ["planning"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-5", type: "coach_tip", title: "Don't Chase Perfect", shortDescription: "A good-enough choice still supports your week.", fullContent: "You do not need a perfect plan. A realistic next choice is often more useful.", icon: "tip", tags: ["mindset"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-6", type: "coach_tip", title: "Notice Non-Scale Wins", shortDescription: "Energy, confidence, clothes, and consistency are progress too.", fullContent: "Progress can show up in many ways. Notice one non-scale win this week.", icon: "tip", tags: ["non-scale"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-7", type: "coach_tip", title: "Prepare for Busy Days", shortDescription: "Keep one easy protein-friendly option ready before the week gets hectic.", fullContent: "Busy days are easier when one simple option is already waiting for you.", icon: "tip", tags: ["planning"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-8", type: "coach_tip", title: "Slow Progress Still Counts", shortDescription: "Steady progress is still progress, even when it feels quiet.", fullContent: "Some weeks feel slower than others. Keep noticing the choices you can repeat.", icon: "tip", tags: ["motivation"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-9", type: "coach_tip", title: "Make the Next Choice Easy", shortDescription: "Set up one thing today that makes tomorrow simpler.", fullContent: "Small setup choices can make tomorrow feel less like starting over.", icon: "tip", tags: ["planning"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-10", type: "coach_tip", title: "Celebrate Consistency", shortDescription: "Repeating a helpful choice matters, even if it feels small.", fullContent: "Consistency is worth recognizing. Give yourself credit for what you repeated this week.", icon: "tip", tags: ["consistency"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-11", type: "coach_tip", title: "Check In Honestly", shortDescription: "Your check-in helps Leaner support the real week you had.", fullContent: "Honest updates are more useful than perfect ones. Share what actually happened.", icon: "tip", tags: ["check-in"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "tip-12", type: "coach_tip", title: "Keep It Simple This Week", shortDescription: "Pick one focus and let that be enough for now.", fullContent: "A simple focus is easier to repeat. Choose one thing and build from there.", icon: "tip", tags: ["simplicity"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-1", type: "clinic_support", title: "Questions This Week?", shortDescription: "If something is on your mind, reach out to the Leaner team.", fullContent: "Leaner is here for program questions, appointment questions, and support between visits.", icon: "message", tags: ["contact"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-2", type: "clinic_support", title: "Your Check-In Matters", shortDescription: "Your updates help Leaner understand how your week is going.", fullContent: "Check-ins are a simple way to share what changed, what worked, and where you may need support.", icon: "message", tags: ["check-in"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-3", type: "clinic_support", title: "Tell Us What Changed", shortDescription: "Appetite, energy, sleep, and routine changes are useful to share.", fullContent: "Small details help the Leaner team support the real week you had.", icon: "message", tags: ["progress"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-4", type: "clinic_support", title: "Side Effects? Reach Out", shortDescription: "If symptoms concern you, contact Leaner for guidance.", fullContent: "This dashboard does not replace medical advice. Contact Leaner for symptoms or medical questions.", icon: "message", tags: ["symptoms"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-5", type: "clinic_support", title: "Need Schedule Help?", shortDescription: "If your appointment timing is tricky, contact the clinic team.", fullContent: "Leaner's local team can help with appointment and scheduling questions.", icon: "message", tags: ["schedule"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-6", type: "clinic_support", title: "Bring Questions to Your Visit", shortDescription: "A quick note can make your next visit feel more useful.", fullContent: "Before your visit, jot down questions about your week, progress, or concerns you want to discuss.", icon: "message", tags: ["visit"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-7", type: "clinic_support", title: "We're Here for Adjustments", shortDescription: "Program questions should go to Leaner staff, not the app.", fullContent: "For program-specific questions, contact Leaner so staff can guide you personally.", icon: "message", tags: ["program"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-8", type: "clinic_support", title: "Keep Us Updated", shortDescription: "Sharing what is changing helps Leaner support you.", fullContent: "Updates about appetite, energy, routine, or concerns can help guide your clinic conversation.", icon: "message", tags: ["updates"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-9", type: "clinic_support", title: "Unsure About Something?", shortDescription: "If you are not sure what to do next, ask the Leaner team.", fullContent: "Use the app for reminders and encouragement, and contact Leaner for specific guidance.", icon: "message", tags: ["questions"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-10", type: "clinic_support", title: "Your Feedback Helps", shortDescription: "Tell Leaner what is working and what feels harder this week.", fullContent: "Helpful support starts with knowing what the week actually felt like.", icon: "message", tags: ["feedback"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-11", type: "clinic_support", title: "Support Between Visits", shortDescription: "You do not have to wait for your next visit if a question feels important.", fullContent: "Contact Leaner between visits for program questions, scheduling help, or support needs.", icon: "message", tags: ["support"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 },
      { id: "clinic-12", type: "clinic_support", title: "Let's Keep It Simple", shortDescription: "When the week feels noisy, Leaner can help you refocus.", fullContent: "Reach out if you need help keeping the next step simple and realistic.", icon: "message", tags: ["simplicity"], status: "approved", createdAt: "2026-06-01", updatedAt: "2026-06-01", lastShownAt: "", timesShown: 0 }
    ];

    const checkIns = [
      { id: "c1", patientId: "p1", date: "2026-06-03", weight: 208, hungerLevel: 3, energyLevel: 4, sideEffects: "No", weeklyWin: "Packed protein snacks", needsClinicFollowup: false },
      { id: "c2", patientId: "p1", date: "2026-06-10", weight: 207, hungerLevel: 2, energyLevel: 4, sideEffects: "No", weeklyWin: "Hit water goal", needsClinicFollowup: false }
    ];

    const seedPointEvents = [
      { id: "pe1", patientId: "p1", type: "weekly_check_in", points: 25, createdAt: "2026-06-03", description: "Weekly check-in completed" },
      { id: "pe2", patientId: "p1", type: "progress_update", points: 10, createdAt: "2026-06-03", description: "Progress update logged" },
      { id: "pe3", patientId: "p1", type: "private_win", points: 15, createdAt: "2026-06-04", description: "Private win logged" },
      { id: "pe4", patientId: "p1", type: "celebrate_win", points: 3, createdAt: "2026-06-04", description: "Celebrated a community win" },
      { id: "pe5", patientId: "p1", type: "streak_bonus_4_week", points: 50, createdAt: "2026-06-05", description: "4-week consistency bonus" }
    ];

    const rewards = [
      { id: "r-small", tier: REWARD_TIERS.SMALL_PERK, title: "Small Leaner Perk", description: "A small reward for staying consistent.", pointsCost: 100, icon: "gift", isActive: true, isFeatured: false, finePrint: "Staff applies approved rewards manually.", updatedAt: "2026-06-11" },
      { id: "r-credit", tier: REWARD_TIERS.LEANER_CREDIT, title: "$10 Leaner Credit", description: "Use your Momentum Points toward an eligible Leaner visit or service.", pointsCost: 250, icon: "ticket", isActive: true, isFeatured: false, finePrint: "Eligibility and application handled by Leaner staff.", updatedAt: "2026-06-11" },
      { id: "r-bigger", tier: REWARD_TIERS.BIGGER_PERK, title: "Wellness Add-On Perk", description: "Apply your points toward a featured Leaner add-on.", pointsCost: 500, icon: "star", isActive: true, isFeatured: false, finePrint: "Add-on availability may vary by clinic.", updatedAt: "2026-06-11" },
      { id: "r-major", tier: REWARD_TIERS.MAJOR_MOMENTUM_REWARD, title: "Major Momentum Reward", description: "A bigger milestone reward for long-term consistency.", pointsCost: 1000, icon: "spark", isActive: true, isFeatured: false, finePrint: "Staff will review and confirm reward details.", updatedAt: "2026-06-11" },
      { id: "r-featured", tier: REWARD_TIERS.FEATURED_PERK, title: "This Month's Featured Perk", description: "Use your Momentum Points toward this month's Leaner special.", pointsCost: 250, icon: "spark", isActive: true, isFeatured: true, finePrint: "Featured perks are requested in-app and manually applied by staff.", updatedAt: "2026-06-11" }
    ];

    const supportContentVersion = "weekly-support-v2";
    const rewardPackagesVersion = "momentum-rewards-v2";
