# UZIA Academy — Green Rebrand, Pillars, Sponsored Foundations, Pricing & Profile Photos

## 1. Green African colour scheme

Keep the bold African feel, shift the base from orange to green:

- Primary: deep emerald/forest green (used for CTAs, links, active states)
- Secondary: darker jungle green as the grounding dark surface (replaces plum headers)
- Accents kept for warmth and African character: ochre/gold and terracotta (used sparingly on badges, dividers, highlights)
- Kitenge motif stripes, gradients and shadows re-tuned to green tones

Everything is done through the existing semantic tokens in `src/styles.css`, so all pages pick up the new palette at once. The `plum` token becomes a deep-green surface so headers and the app shell keep their structure without renaming components.

## 2. Wording changes

- "The 12 Dira domains" / "12 Dira growth domains" become **"The 12 UZIA Academy Pillars"** everywhere: home page, assessment intro, dashboard, results.
- Home page: "Know your number." becomes **"Know your Score."**
- Remaining "Dira" mentions in user-visible copy removed.

## 3. Foundation courses are fully sponsored

- All 15 Foundation-level courses set to price 0 in the database.
- Price display logic changed: a zero-price Foundation course shows **"Fully sponsored"** (with a supporting line such as "No fee — sponsored place") instead of "Free", on course cards, course detail, and recommendation lists.

## 4. Access locking (Pro gating)

- Foundation courses: open to every signed-in user.
- Every non-Foundation course (Growth, Advanced, Executive): card content blurred with a lock badge and an "Unlock with Pro" call to action. Clicking it goes to Pricing instead of the course.
- Course detail and the learn page for non-Foundation courses check the user's plan server-side; without Pro they see a locked state with an upgrade prompt (no lesson content is sent to the browser).
- Free plan also limits the assessment to **1 completed assessment + result**. The action plan (sequenced pathway) is Pro-only; free users see the score and a blurred action plan with an upgrade prompt.

## 5. Pricing page (`/pricing`)

Three audience segments, shown as tabs/sections:

**A. UZIA Marketplace members (founders & SMEs)**
- Free — 1 assessment, 1 result, all Foundation courses (fully sponsored)
- Pro — **KSh 1,500** — action plan + all non-Foundation courses, unlimited re-assessment

**B. Incubators & accelerators (non-UZIA members)**
- Pro — **KSh 3,000** — same Pro features for one account
- Team — **KSh 20,000** — up to 25 seats

**C. Donors & development partners**
- No price. "Contact UZIA Support" with an enquiry form / mailto.

Payment methods displayed: **M-Pesa, Airtel Money, PayPal, Visa/Mastercard**.

Checkout flow (as agreed — manual activation, no live gateway yet):
1. User picks a plan and a payment method.
2. Instructions screen shows the correct pay-to details for that method (placeholders you can fill in: paybill/till number, Airtel number, PayPal email, card-payment contact).
3. User submits an upgrade request with their payment reference / transaction code.
4. UZIA staff activates Pro; the app reads the activated plan and unlocks content.

## 6. Membership category on the profile

- Profile gains a **membership category** selector: UZIA Marketplace member, Incubator/Accelerator, Donor/Development partner.
- Plus a **verification field** for the uzia.africa member email or member ID, so staff can confirm marketplace membership later.
- The pricing page highlights the plans matching the user's selected category.

## 7. Profile picture

- Avatar upload on the profile page: circular preview, choose image, upload, replace.
- Stored in a Cloud storage bucket with per-user folders; only the owner can write, images are publicly readable so they can render.
- Avatar shown in the app shell header next to sign-out.

## Technical notes

- Database migration:
  - `profiles`: add `avatar_url`, `membership_category`, `member_reference`, `plan_tier` (`free` | `pro` | `team`), `plan_activated_at`, `team_id` (nullable).
  - New `plan_upgrade_requests` table (user, category, plan, amount_kes, payment_method, payment_reference, status) with RLS: users insert/read their own rows; service role manages status. GRANTs included.
  - New `teams` / `team_members` tables for the 25-seat plan (owner + member seats, seat cap enforced in a server function).
  - `UPDATE public.courses SET price_kes = 0 WHERE credential_level = 'Foundation';`
  - Storage bucket `avatars` (public read, owner-only write policies).
- New server functions: `getMyPlan`, `requestUpgrade`, `listMyUpgradeRequests`, plus plan checks inside the existing learning/assessment functions so gating is enforced on the server, not just hidden in the UI.
- New route `src/routes/pricing.tsx` with its own head metadata; link added to the public header and footer.
- Assessment free-tier limit enforced in `submitAssessment` (server side).
- No live payment gateway is wired; when you're ready for automated M-Pesa/Airtel collection we can add a Kenyan gateway such as Paystack or Flutterwave.
