You are a senior full-stack product engineer and product designer. Build a working MVP prototype for an AI-native wedding planning application called “VowPilot”.

The goal is to create a professional, polished, working web app prototype that demonstrates the core product idea:

“Not another wedding checklist — a wedding operating system that keeps couples, families, vendors, and planners aligned from engagement to wedding day.”

This product helps couples manage the entire wedding planning journey: timelines, tasks, vendors, payments, budget, stakeholders, and weekly next-best actions.

Use the following product context carefully.

====================================================
PRODUCT CONTEXT
====================================================

Wedding planning is not just a checklist problem. It is a coordination-under-pressure problem.

Couples struggle with:
- too many tasks spread across months
- unclear planning sequence
- family involvement and conflicting responsibilities
- scattered tools like WhatsApp, Excel, Google Drive, notes, emails, and PDFs
- vendor quote chaos
- payment due dates
- guest count changes affecting venue, catering, invites, rooms, and transport
- budget drift
- emotional overwhelm and decision fatigue

The app should act like an AI wedding timeline orchestrator.

The MVP should allow users to:
1. Sign up / log in / sign out
2. Create a wedding workspace
3. Add core wedding details
4. Generate or view a milestone-based planning timeline
5. Manage tasks with owners, deadlines, statuses, and priorities
6. Track vendors
7. Track budget categories and payments
8. Invite or add stakeholders manually
9. See a dashboard with “next best actions”
10. Get AI-style recommendations and risk alerts based on planning progress

The product should feel like a calm, intelligent wedding command center.

====================================================
TECH STACK
====================================================

Use:
- Vite
- React
- TypeScript
- Tailwind CSS
- shadcn/ui components
- Lucide React icons
- Recharts for charts
- Supabase for:
  - authentication
  - database
  - row-level security
  - user-specific wedding data

Important:
- Build this as a working MVP with real auth flows.
- Use Supabase Auth for email/password login and signup.
- Google login can be shown as a button, but if OAuth is not configured, display it as “Coming soon”.
- All wedding data must be linked to the authenticated user.
- If Supabase is not connected yet, create clean mock-data fallbacks and clearly structure the code so Supabase can be connected easily.
- Do not include payment gateway integration.
- Do not include real WhatsApp/email integration.
- Do not include vendor marketplace.
- Focus on the planning orchestration layer.

====================================================
APP NAME AND POSITIONING
====================================================

App name: VowPilot

Tagline options:
- “Your wedding command center.”
- “From chaos to calm planning.”
- “Plan the wedding. Coordinate the journey.”

Use a premium, modern, elegant product style.

Design vibe:
- not cheesy
- not overly floral
- not traditional wedding-card style
- should feel like a polished SaaS + premium consumer app
- elegant, calm, trustworthy

Visual style:
- background: ivory, off-white, warm beige
- accents: muted rose, soft gold, charcoal, blush
- cards: rounded corners, soft shadows, subtle borders
- typography: clean and modern
- layout: spacious, dashboard-like, mobile responsive
- use tasteful icons and timeline visuals

====================================================
USER TYPES
====================================================

For MVP, support a simple role system at the workspace level.

Roles:
1. Couple / Owner
2. Partner
3. Family Member
4. Planner

Do not build complex permissions yet. But visually show roles on stakeholder cards.

Each stakeholder should have:
- name
- role
- email optional
- responsibility area
- active/invited status

Example responsibility areas:
- Venue
- Catering
- Guest List
- Decor
- Photography
- Accommodation
- Transport
- Finance
- Rituals/Ceremonies

====================================================
KEY USER FLOWS
====================================================

Build the product around these flows.

----------------------------------------------------
FLOW 1: First-time landing and signup
----------------------------------------------------

Landing Page:
- Hero section with app name, tagline, and CTA
- CTA: “Start Planning”
- Secondary CTA: “View Demo”
- Explain the core product in 3 cards:
  1. Dynamic Wedding Timeline
  2. Family & Vendor Coordination
  3. Budget + Payment Intelligence
- Include a “Before vs After” section:
  Before:
  - WhatsApp chaos
  - Excel sheets
  - forgotten due dates
  - unclear ownership
  After:
  - one timeline
  - clear task owners
  - payment reminders
  - AI next steps
- Include simple footer

Signup/Login:
- Email/password signup
- Email/password login
- Password field
- Confirm password on signup
- Clean error states
- Loading states
- Link to switch between signup and login
- Google sign-in button marked “Coming soon” if OAuth is unavailable

After successful signup/login:
- redirect to onboarding if user has no wedding workspace
- redirect to dashboard if workspace already exists

----------------------------------------------------
FLOW 2: Wedding onboarding
----------------------------------------------------

Create a multi-step onboarding flow.

Step 1: Wedding Basics
Fields:
- Wedding name
  Example: “Ananya & Rohan’s Wedding”
- Wedding date
- City/location
- Wedding type
  Options:
  - Local wedding
  - Destination wedding
  - Court + celebration
  - Multi-city wedding
- Estimated guest count
- Estimated budget
- Currency default: INR ₹

Step 2: Ceremonies
Let user select ceremony types:
- Engagement
- Haldi
- Mehendi
- Sangeet
- Wedding Ceremony
- Reception
- Cocktail
- Other

Allow adding custom ceremony name.

Step 3: Planning Style
Ask:
“How are you planning this wedding?”

Options:
- Mostly by ourselves
- With family involvement
- With a professional planner
- Not sure yet

Step 4: Priorities
Ask user to select top priorities:
- Venue
- Food
- Decor
- Photography
- Guest experience
- Budget control
- Destination logistics
- Ritual coordination
- Outfits
- Entertainment

Step 5: Generate Timeline
Show loading screen:
“Building your wedding command center…”
“Creating your timeline…”
“Mapping dependencies…”
“Finding your next best actions…”

Then create:
- wedding workspace
- default milestone tasks
- default budget categories
- empty vendor list
- dashboard

After onboarding, redirect to main dashboard.

----------------------------------------------------
FLOW 3: Main dashboard
----------------------------------------------------

Dashboard should be the central command center.

Top section:
- Greeting:
  “Welcome back, [name]”
- Wedding countdown:
  “184 days to go”
- Wedding name and date
- Quick summary cards:
  1. Open tasks
  2. Critical tasks due this week
  3. Budget used
  4. Upcoming payments

Main dashboard sections:

1. This Week’s Next Best Actions
Show 3 recommended actions based on task status, deadline, priority, and wedding date.

Examples:
- “Finalize venue shortlist before catering discussions.”
- “Confirm guest count range — it affects catering, rooms, invites, and transport.”
- “Follow up with photographer quote before the advance date.”

Each recommendation card should show:
- title
- reason
- CTA button: “View Task” or “Add Task”

2. Timeline Health
Show progress bar:
- Planning progress percentage
- On-track / Needs attention / At risk

3. Risk Alerts
Show warning cards if:
- critical task overdue
- vendor payment due soon
- budget category exceeds planned allocation
- wedding date is near and venue is not confirmed
- guest count missing or too uncertain

Examples:
- “Venue not confirmed yet. This may delay decor, catering, accommodation, and invitations.”
- “Photography advance payment due in 5 days.”
- “Catering estimate may exceed planned budget if guest count rises above 400.”

4. Budget Snapshot
Use Recharts:
- Pie chart of budget by category
- Bar or progress cards for spent vs planned

5. Upcoming Payments
List payments sorted by due date:
- vendor name
- amount
- due date
- status: unpaid / partial / paid / overdue

6. Recent Activity
Show recent task updates, vendor additions, payment updates.

----------------------------------------------------
FLOW 4: Timeline and task management
----------------------------------------------------

Create a dedicated “Timeline” page.

View options:
- Timeline view
- Kanban/status view
- List view

Task fields:
- title
- description
- category
- due date
- priority: Low / Medium / High / Critical
- status: Not Started / In Progress / Waiting / Done
- owner/stakeholder
- dependency note
- related vendor optional
- ceremony optional
- created_at
- updated_at

Default task categories:
- Venue
- Guest List
- Catering
- Decor
- Photography
- Invitations
- Outfits
- Accommodation
- Transport
- Rituals
- Payments
- Legal
- Miscellaneous

Default milestone tasks to generate after onboarding:
- Finalize approximate guest count
- Shortlist venues
- Book venue
- Shortlist caterers
- Finalize catering menu
- Book photographer/videographer
- Decide ceremony list
- Start outfit planning
- Create invitation list
- Send save-the-date or invitations
- Book accommodation blocks
- Plan transport logistics
- Confirm decor theme
- Final vendor confirmation
- Final payment review
- Wedding week checklist

Task interactions:
- Create task
- Edit task
- Mark task done
- Change status
- Assign owner
- Filter by status, category, priority, owner
- Search tasks
- Sort by due date
- Show overdue badges
- Show critical badges

Each task card should clearly show:
- title
- due date
- owner
- category
- priority
- status

Add an “AI Suggest Task” button:
- For now, generate a deterministic recommendation based on wedding date and missing categories.
- If OpenAI key is configured later, this can call OpenAI.
- Add code comments for future OpenAI integration.

----------------------------------------------------
FLOW 5: Vendor management
----------------------------------------------------

Create a “Vendors” page.

Vendor fields:
- vendor name
- category
- contact person
- phone
- email
- city
- quoted amount
- final amount
- advance paid
- balance due
- payment due date
- status:
  - Shortlisted
  - Contacted
  - Quote Received
  - Negotiating
  - Booked
  - Rejected
- notes
- related ceremony optional

Vendor categories:
- Venue
- Caterer
- Decorator
- Photographer
- Videographer
- Makeup Artist
- Mehendi Artist
- Entertainment
- Priest / Ritual Expert
- Transport
- Accommodation
- Invitation Designer
- Other

Features:
- Add vendor
- Edit vendor
- Delete vendor
- Filter by category and status
- Show payment status
- Show vendor cards
- Show total quoted vs final amount
- Show vendor comparison table
- Display “Book soon” warning if wedding date is close and critical vendors are not booked

Vendor card should show:
- name
- category
- status
- amount
- payment due
- contact
- notes preview

----------------------------------------------------
FLOW 6: Budget and payments
----------------------------------------------------

Create a “Budget” page.

Budget categories:
- Venue
- Catering
- Decor
- Photography
- Outfits
- Invitations
- Accommodation
- Transport
- Entertainment
- Rituals
- Miscellaneous

Each category should have:
- planned amount
- actual amount
- paid amount
- remaining amount
- status:
  - under budget
  - near limit
  - over budget

Features:
- Add/edit budget category
- Show total wedding budget
- Show planned vs actual
- Show budget utilization percentage
- Show category breakdown pie chart
- Show spending progress bars
- Show over-budget warnings

Payments section:
Payment fields:
- vendor
- amount
- due date
- paid date optional
- status:
  - Unpaid
  - Partial
  - Paid
  - Overdue
- notes

Features:
- Add payment
- Edit payment
- Mark as paid
- Filter unpaid / overdue / paid
- Show upcoming payments
- Show overdue payments

AI-style budget insights:
Generate simple rule-based insights:
- “Catering is currently 38% of your total budget.”
- “Venue and catering together exceed 60% of your budget.”
- “You have ₹X in unpaid vendor balances due in the next 30 days.”
- “Decor is over budget by ₹X.”

----------------------------------------------------
FLOW 7: Stakeholder coordination
----------------------------------------------------

Create a “People” page.

Stakeholder fields:
- name
- role
- email
- phone optional
- responsibility area
- status:
  - Active
  - Invited
  - Pending
- notes

Features:
- Add stakeholder
- Edit stakeholder
- Delete stakeholder
- Assign stakeholder to tasks
- Show tasks owned by each stakeholder
- Show pending tasks per stakeholder

UI:
- Cards for each stakeholder
- Role badges
- Responsibility tags
- Task count
- Overdue task count

MVP note:
Real email invitations are not needed.
When user clicks “Invite”, simply mark stakeholder as Invited and show a toast:
“Invite marked as sent. Real email invitations will be added in Phase 2.”

----------------------------------------------------
FLOW 8: AI Planner page
----------------------------------------------------

Create an “AI Planner” or “Assistant” page.

This is a product demo page for the AI-native value.

Show:
1. Next Best Actions
2. Risk Alerts
3. Budget Insights
4. Timeline Suggestions

Make the logic rule-based for MVP.

Example logic:
- If venue task is not done and wedding is under 9 months away, show high-priority venue alert.
- If guest count is missing, show guest-count dependency alert.
- If catering budget exceeds 30% of total budget, show budget concentration insight.
- If payment due date is within 7 days and unpaid, show payment alert.
- If no photographer vendor booked and wedding is under 6 months away, show vendor alert.
- If many tasks are overdue, show planning health warning.

Add a text input:
“Ask VowPilot…”

For MVP:
- Do not call a real AI API unless an environment variable is available.
- Create a local helper function that responds to common planning questions using current app data.
- Example questions:
  - “What should I do this week?”
  - “Am I behind?”
  - “Which payments are due soon?”
  - “What are my biggest risks?”
  - “Where is my budget going?”

If OpenAI integration is possible:
- Use an environment variable like VITE_OPENAI_API_KEY only as placeholder.
- Prefer not to expose secret keys in the client.
- Add a clear TODO comment:
  “Move OpenAI calls to a Supabase Edge Function before production.”

----------------------------------------------------
FLOW 9: Profile and settings
----------------------------------------------------

Create a Settings/Profile page.

Sections:
- User profile
- Wedding workspace details
- Planning preferences
- Currency
- Sign out button

Settings should allow:
- Edit wedding name
- Edit wedding date
- Edit guest count
- Edit estimated budget
- Edit city
- Update planning style

Sign out:
- Add clearly visible sign-out button
- On sign out, clear user session and redirect to landing/login page

====================================================
NAVIGATION
====================================================

After login, use an app shell layout.

Desktop:
- left sidebar navigation
- top header with wedding name, countdown, user avatar/sign out menu

Mobile:
- bottom navigation or collapsible sidebar

Main nav items:
1. Dashboard
2. Timeline
3. Vendors
4. Budget
5. People
6. AI Planner
7. Settings

Use icons from Lucide React.

====================================================
DATABASE STRUCTURE
====================================================

Create Supabase-ready tables or schema definitions.

Tables:

1. profiles
- id uuid primary key references auth.users(id)
- full_name text
- email text
- created_at timestamp

2. weddings
- id uuid primary key
- owner_id uuid references auth.users(id)
- wedding_name text
- wedding_date date
- city text
- wedding_type text
- estimated_guest_count int
- estimated_budget numeric
- currency text default 'INR'
- planning_style text
- created_at timestamp
- updated_at timestamp

3. ceremonies
- id uuid primary key
- wedding_id uuid references weddings(id)
- name text
- ceremony_date date nullable
- location text nullable
- notes text nullable
- created_at timestamp

4. stakeholders
- id uuid primary key
- wedding_id uuid references weddings(id)
- name text
- role text
- email text nullable
- phone text nullable
- responsibility_area text
- status text
- notes text nullable
- created_at timestamp

5. tasks
- id uuid primary key
- wedding_id uuid references weddings(id)
- title text
- description text nullable
- category text
- due_date date
- priority text
- status text
- owner_stakeholder_id uuid nullable references stakeholders(id)
- related_vendor_id uuid nullable
- ceremony_id uuid nullable references ceremonies(id)
- dependency_note text nullable
- created_at timestamp
- updated_at timestamp

6. vendors
- id uuid primary key
- wedding_id uuid references weddings(id)
- name text
- category text
- contact_person text nullable
- phone text nullable
- email text nullable
- city text nullable
- quoted_amount numeric nullable
- final_amount numeric nullable
- advance_paid numeric nullable
- balance_due numeric nullable
- payment_due_date date nullable
- status text
- notes text nullable
- created_at timestamp
- updated_at timestamp

7. budget_categories
- id uuid primary key
- wedding_id uuid references weddings(id)
- category text
- planned_amount numeric
- actual_amount numeric
- paid_amount numeric
- created_at timestamp
- updated_at timestamp

8. payments
- id uuid primary key
- wedding_id uuid references weddings(id)
- vendor_id uuid nullable references vendors(id)
- amount numeric
- due_date date
- paid_date date nullable
- status text
- notes text nullable
- created_at timestamp

9. activity_logs
- id uuid primary key
- wedding_id uuid references weddings(id)
- user_id uuid references auth.users(id)
- action text
- entity_type text
- entity_id uuid nullable
- created_at timestamp

RLS:
- Enable RLS on all tables.
- Users can only access weddings where they are owner_id.
- For MVP, keep it simple: authenticated owner can CRUD their own wedding data.
- Stakeholder collaboration is visual only for now; real multi-user shared access can be Phase 2.

If implementing full RLS is too time-consuming in this prototype, still create the schema clearly and write comments showing where RLS policies should be added.

====================================================
DEFAULT SAMPLE DATA
====================================================

After onboarding, generate useful default data.

Example wedding:
- Name: “Ananya & Rohan’s Wedding”
- Date: 8 months from today
- City: Jaipur
- Guest count: 400
- Budget: ₹40,00,000
- Wedding type: Destination wedding
- Ceremonies: Haldi, Mehendi, Sangeet, Wedding Ceremony, Reception

Default stakeholders:
- Ananya — Couple / Owner — Overall planning
- Rohan — Partner — Vendor coordination
- Bride’s Parents — Family Member — Guest list
- Groom’s Sibling — Family Member — Accommodation
- Kavya — Planner — Timeline coordination

Default vendors:
- Royal Heritage Palace — Venue — Quote Received — ₹12,00,000
- Moments Studio — Photographer — Negotiating — ₹2,50,000
- Jaipur Feast Co. — Caterer — Contacted — ₹9,00,000

Default budget:
- Venue: ₹12,00,000
- Catering: ₹10,00,000
- Decor: ₹6,00,000
- Photography: ₹3,00,000
- Outfits: ₹4,00,000
- Accommodation: ₹3,00,000
- Miscellaneous: ₹2,00,000

Default tasks:
- Finalize guest count range
- Shortlist venues
- Book venue
- Compare caterer quotes
- Book photographer
- Decide ceremony schedule
- Create invitation list
- Confirm accommodation requirements
- Finalize decor theme
- Review vendor payments

====================================================
COMPONENTS TO BUILD
====================================================

Use reusable components.

Suggested components:
- AppShell
- Sidebar
- TopBar
- AuthForm
- OnboardingWizard
- DashboardMetricCard
- NextBestActionCard
- RiskAlertCard
- TimelineTaskCard
- TaskModal
- VendorCard
- VendorModal
- BudgetProgressCard
- PaymentTable
- StakeholderCard
- EmptyState
- LoadingState
- Badge
- CountdownCard
- AIPlannerPanel

Use shadcn/ui:
- Card
- Button
- Input
- Select
- Dialog
- Tabs
- Badge
- Progress
- DropdownMenu
- Table
- Toast/Sonner
- Checkbox
- Textarea
- Calendar/date input if available

====================================================
UX DETAILS
====================================================

Make the product feel real and polished.

Important UX requirements:
- Smooth onboarding
- Clear empty states
- Toast notifications for create/edit/delete actions
- Loading states for auth and onboarding
- Error messages for failed login/signup
- Responsive layout
- Search and filter where useful
- Status badges
- Priority badges
- Overdue indicators
- Clean modals for adding/editing data
- Use INR formatting: ₹12,00,000
- Use human-readable dates
- Show wedding countdown everywhere in the authenticated app

Microcopy examples:
- “Your next calm step”
- “Planning health”
- “You’re mostly on track”
- “Needs attention”
- “Critical dependency”
- “This may affect other decisions”
- “One thing at a time”
- “Your wedding command center is ready”
- “Real invitations will be added in Phase 2”

Tone:
- calm
- supportive
- intelligent
- not childish
- not overly romantic
- not too corporate

====================================================
AI / RECOMMENDATION LOGIC
====================================================

Implement local rule-based intelligence for MVP.

Create helper functions:
- getNextBestActions(wedding, tasks, vendors, payments, budget)
- getRiskAlerts(wedding, tasks, vendors, payments, budget)
- getBudgetInsights(budget, vendors, payments)
- getPlanningHealth(tasks, weddingDate)

Example rules:
1. If venue task is not done and wedding is less than 270 days away:
   Alert: “Venue is a critical dependency. Delaying this may affect decor, catering, accommodation, and invitations.”

2. If guest count task is not done:
   Alert: “Guest count uncertainty can affect catering, rooms, invites, and transport.”

3. If unpaid payment due within 7 days:
   Alert: “Payment due soon.”

4. If task priority is Critical and overdue:
   Alert: “Critical task overdue.”

5. If budget actual amount exceeds planned:
   Alert: “Budget category over planned allocation.”

6. If no vendor with category “Photographer” has status “Booked” and wedding is under 180 days away:
   Alert: “Photography vendor should be finalized soon.”

7. If more than 30% tasks are overdue:
   Planning Health: “At risk”

8. If 70%+ tasks are complete:
   Planning Health: “On track”

Make these insights visible in Dashboard and AI Planner.

====================================================
PHASE 2 PLACEHOLDERS
====================================================

Include subtle placeholders for future expansion:
- Real email invitations
- WhatsApp integration
- PDF contract parser
- OpenAI-powered assistant
- Vendor marketplace
- Planner multi-client dashboard

But do not build these fully in MVP.

When users click unavailable future features, show toast:
“Coming in Phase 2.”

====================================================
QUALITY REQUIREMENTS
====================================================

The final prototype should:
- look professional enough for a pitch deck/demo
- feel like a real MVP, not just static screens
- support user signup/login/signout
- allow creating and editing core wedding planning data
- have meaningful dashboards and charts
- have working CRUD for tasks, vendors, budget, payments, and stakeholders
- use realistic sample data
- use clean TypeScript types
- avoid messy code
- use reusable components
- maintain responsive design
- handle empty/loading/error states gracefully

====================================================
BUILD ORDER
====================================================

Start by building:
1. Auth pages
2. Landing page
3. Onboarding wizard
4. App shell and navigation
5. Dashboard
6. Timeline/tasks CRUD
7. Vendors CRUD
8. Budget/payments CRUD
9. People/stakeholders CRUD
10. AI Planner rule-based insights
11. Settings/sign out

====================================================
FINAL INSTRUCTION
====================================================

Build a polished working MVP prototype for VowPilot.

Do not overbuild.
Do not create a generic wedding inspiration app.
Do not focus on vendor marketplace.
Do not make it only a checklist.

The core product experience should be:

User enters wedding details → VowPilot creates a planning command center → user sees what matters next → tasks, vendors, people, budget, and payments stay coordinated → AI-style insights warn them before things slip.

Make it feel like the coordination layer for one of the most complex personal events people ever manage.