diff --git a/docs/admin-settings.md b/docs/admin-settings.md
new file mode 100644
index 0000000..c00ac06
--- /dev/null
+++ b/docs/admin-settings.md
@@ -0,0 +1,271 @@
+# Admin Settings & Site Control Specification
+
+> Scope: what a **site admin** must be able to control across the fashion e-commerce app.
+> This maps admin capabilities to the real surfaces in the codebase (`_store` storefront,
+> `user/_authenticated` admin) and flags what exists today vs. what is planned.
+>
+> Legend:
+> - β
**Exists** β surface/UI is present in the app (data may still be `@faker-js/faker` mock).
+> - π‘ **Partial** β UI shell exists but is placeholder/template scaffolding.
+> - π΄ **Planned** β no surface yet; needs building (often tied to [roadmap](roadmap.md)).
+>
+> Related docs: [roles-and-access.md](roles-and-access.md), [roadmap.md](roadmap.md), [conventions.md](conventions.md).
+
+---
+
+## Table of contents
+
+1. [Organizing model](#1-organizing-model)
+2. [Sidebar settings (admin nav)](#2-sidebar-settings-admin-nav)
+ - [General group](#21-general-group)
+ - [Pages group](#22-pages-group)
+ - [Other group](#23-other-group)
+3. [Sub-options (settings section)](#3-sub-options-settings-section)
+4. [Storefront content control](#4-storefront-content-control)
+ - [Homepage blocks](#41-homepage-blocks)
+ - [Global navigation](#42-global-navigation)
+ - [Footer](#43-footer)
+ - [Other storefront pages](#44-other-storefront-pages)
+5. [Others (site-wide / cross-cutting)](#5-others-site-wide--cross-cutting)
+6. [Access control per setting](#6-access-control-per-setting)
+7. [Open questions / clearance needed](#7-open-questions--clearance-needed)
+
+---
+
+## 1. Organizing model
+
+Admin control is grouped into three tiers, matching how the app is structured:
+
+| Tier | Meaning | Source of truth in code |
+| --- | --- | --- |
+| **Sidebar** | Top-level admin nav destinations | `src/components/layout/data/sidebar-data.ts` |
+| **Sub-options** | Nested items under a sidebar entry (e.g. Settings β Profile) | same file, `items[].items` |
+| **Others** | Cross-cutting site settings not tied to one nav item (branding, SEO, payments, roles) | mostly π΄ not built yet |
+
+Storefront **content** (homepage, footer, nav) is controlled from the admin but is grouped
+separately in Β§4 because it drives customer-facing pages rather than admin dashboards.
+
+---
+
+## 2. Sidebar settings (admin nav)
+
+The admin sidebar (`sidebar-data.ts`) is the backbone of admin control. Each entry below lists
+what the admin should be able to manage from that destination.
+
+### 2.1 General group
+
+| Sidebar item | Route | Admin controls | Status |
+| --- | --- | --- | --- |
+| **Dashboard** | `/user` | View KPIs (sales, orders, revenue, visitors), date-range filter, recent activity, quick actions | β
(mock data) |
+| **Orders** | β (parent) | See sub-options below | β
|
+| β Orders | `/user/orders` | View/search/filter orders, update fulfillment & payment status, refunds, print invoice, export | β
(mock) |
+| β Drafts | `/user/drafts` | Create/edit draft orders, convert to order | β
(mock) |
+| β Abandoned Checkouts | `/user/acheckouts` | View abandoned carts, send recovery email/link | β
(mock) |
+| **Apps** | `/user/apps` | Install/enable integrations (payment, shipping, analytics, marketing) | π‘ template |
+| **Chats** | `/user/chats` | Customer support conversations, canned replies, assign agent | π‘ template |
+| **Products** | β (parent) | See sub-options below | β
|
+| β Products | `/user/products` | CRUD products: title, description, images, price/compare-at, SKU, variants (size/color), tags, category, status (active/draft/archived), SEO fields | β
(mock) |
+| β Collections | `/user/products/$section` | Group products into collections, manual/automated rules, collection banner & description | β
(mock) |
+| β Inventory | `/user/products/$section` | Stock levels per variant, low-stock alerts, restock, track/untrack inventory | β
(mock) |
+| β GiftCards | `/user/products/$section` | Issue/manage gift cards, denominations, expiry, balance | β
(mock) |
+| **Users** | `/user/users` | Manage user accounts: view, role assignment, status (active/invited/suspended), invite, delete | β
(mock) |
+
+> Note: Collections/Inventory/GiftCards currently share the `$section` route β they need distinct
+> routes or a section param as the product area is built out.
+
+### 2.2 Pages group
+
+These are **template/demo** entries (auth screens, error pages) inherited from `shadcn-admin`.
+For a real admin they are reference links, not settings. Admin-relevant control here is limited to:
+
+| Sidebar item | Admin control | Status |
+| --- | --- | --- |
+| **Auth** (Sign In / Sign Up / Forgot / OTP) | These are storefront/auth UI, not admin settings. Admin may control copy/branding via Β§5 branding. Auth logic is **backend-owned** (see CLAUDE.md). | π‘ demo |
+| **Errors** (401/403/404/500/503) | Optionally: customize error page copy & maintenance-mode toggle (Β§5). | π‘ demo |
+
+### 2.3 Other group
+
+| Sidebar item | Route | Admin controls | Status |
+| --- | --- | --- | --- |
+| **Settings** | β (parent) | See Β§3 sub-options | β
|
+| **Help Center** | `/user/help-center` | Manage FAQ/help articles shown to customers | π‘ template |
+
+---
+
+## 3. Sub-options (Settings section)
+
+Current Settings sub-options (`sidebar-data.ts` β Settings) are **operator/account-scoped**, not
+store-scoped. This is the biggest gap: there is no "Store settings" area yet.
+
+### Existing (account-scoped) β β
/ π‘
+
+| Sub-option | Route | Controls |
+| --- | --- | --- |
+| **Profile** | `/user/settings` | Admin's own name, bio, avatar, username |
+| **Account** | `/user/settings/account` | Email, password change (via backend), language, timezone |
+| **Appearance** | `/user/settings/appearance` | Admin UI theme/font (dashboard only) |
+| **Notifications** | `/user/settings/notifications` | Which admin notifications to receive (email/in-app) |
+| **Display** | `/user/settings/display` | Which dashboard sidebar items/panels are visible |
+
+### Missing (store-scoped) β π΄ recommended additions
+
+**Decision:** these will be added as **new sub-options under the existing Settings section**
+(not a separate sidebar group), alongside Profile/Account/Appearance/Notifications/Display.
+
+| Proposed sub-option | Controls |
+| --- | --- |
+| **General store** | Store name, legal name, contact email/phone, address, business hours, default currency, weight/measurement units |
+| **Branding** | Logo (light/dark), favicon, brand colors/theme, storefront font |
+| **Homepage / Content** | Manage every homepage block (see Β§4.1) β hero slides, banners, featured collections, review carousel, CTA |
+| **Navigation** | Storefront top-bar categories & menu structure (see Β§4.2) |
+| **Footer** | Company links, policy links, social links, payment badges, copyright (see Β§4.3) |
+| **Payments** | Enable/configure payment methods (bKash, Nagad, Rocket, Bank, COD), keys via backend |
+| **Shipping & delivery** | Zones, rates, free-shipping thresholds, delivery estimates |
+| **Taxes** | Tax rates/regions, tax-inclusive pricing toggle |
+| **Checkout** | Required fields, guest checkout, order notes, terms acceptance |
+| **Policies / legal** | Edit Privacy, Terms, Return, Refund, Delivery, Cancellation, Warranty pages |
+| **SEO & metadata** | Titles/descriptions, Open Graph defaults, sitemap, robots |
+| **Analytics & Pixels** | Meta/Facebook Pixel, product catalog feed, GA/other analytics (roadmap item 4) |
+| **Roles & permissions** | Site admin / seller / customer roles, per-role access (roadmap item 1) |
+| **Notifications (store)** | Customer-facing email templates: order confirm, shipping, abandoned cart |
+| **Integrations / Apps** | Third-party connections (overlaps with Apps sidebar) |
+
+---
+
+## 4. Storefront content control
+
+Everything below is what the admin edits to change **customer-facing** pages. Each block maps to
+a real component so the admin UI can target concrete data.
+
+### 4.1 Homepage blocks
+
+Source: `src/components/store/features/home/Home.tsx` + `src/assets/*`.
+
+| # | Block | Component / data source | Admin should control |
+| --- | --- | --- | --- |
+| 1 | **Hero carousel** | `carousel.tsx` | Slides: image, headline, subtext, CTA text/link, order, active dates |
+| 2 | **Side banners** | `SideBanner_Images` (`imageObj`) | Image, alt text, link, order |
+| 3 | **Category quick-list** | `Ctg_List` (`cateogryList`) | Icon, label, link, order, visibility |
+| 4 | **Popular Categories** | `categoryCarousel.tsx` | Which categories, images, order |
+| 5 | **Trending Products** | `trendingProducts.tsx` | Product selection (manual/auto rule), section title |
+| 6 | **Latest Offers** | `latestOffersCarousel.tsx` | Offer cards: image, discount, link, validity |
+| 7 | **Collection carousels** (Tshirt, Panjabi, β¦) | `productCarousel.tsx` + `productsTopSellings` | Section title, source collection, "View All" link, order; ability to add/remove sections |
+| 8 | **Mid-page banners** | `SideBanner_Images` (reused) | Image, alt, link |
+| 9 | **Customer Reviews** | `customerCarousel.tsx` | Review cards: name, avatar, rating, text; show/hide |
+| 10 | **Featured Showcase** | `featuredShowcase.tsx` | Featured items/brands, images, links |
+| 11 | **"Need Expert Help" CTA** | inline in `Home.tsx` | Heading, body copy, Messenger/WhatsApp links, image, hours text |
+
+> **Decision:** homepage **section order & presence stay hard-coded** in `Home.tsx`. Admin control
+> is limited to editing the **data** feeding each fixed section (slides, banner images/links,
+> product selection, review cards, CTA copy). No reorder/add/remove of sections in the admin.
+
+### 4.2 Global navigation
+
+| Element | Source | Admin controls |
+| --- | --- | --- |
+| **Top-bar categories/menu** | `src/components/store/data/navbarData.tsx` (`StoreTopBarData`) | Menu items (CategoriesβWomen/Men/Kids/Trend/Shoes/Clothes, Shop, Offers, Stores): labels, children, links, order |
+| **Navbar / search / cart** | `shared/navbar.tsx`, `searchWithIcon.tsx`, `shoppingcart.tsx` | Logo, announcement bar, promo message, search placeholder |
+| **Mobile nav** | `shared/mobileNav.tsx` | Same items, mobile ordering |
+
+### 4.3 Footer
+
+Source: `src/components/store/shared/footer.tsx`.
+
+| Footer section | Admin controls |
+| --- | --- |
+| **Brand blurb** | Logo, description text |
+| **Social links** | Facebook, Instagram, YouTube, Twitter/X, WhatsApp β URL + show/hide |
+| **Company links** | About Us, Privacy Policy, Terms & Conditions, Latest News, Contact Us β label + link |
+| **Policies links** | Delivery, Return, Refund, Cancellation, Warranty β label + link |
+| **Useful links** | Store Locator, Call Helpline β label, action/link |
+| **Payment badges** | Bank, bKash, COD, Nagad, Rocket β which to display |
+| **Copyright / credit** | Copyright text, "Fueled by" credit |
+
+### 4.4 Other storefront pages
+
+| Page | Route | Admin controls | Status |
+| --- | --- | --- | --- |
+| **About** | `_store/about.tsx` | Page copy, images, sections | β
page exists |
+| **Category listing** | `_store/category.$name.tsx` | Which products, sort/filter defaults, banner | β
|
+| **Product detail** | `_store/$singleproduct.tsx`, `products.$productCtg.$productName.tsx` | Product data (via Products Β§2.1), related products, reviews | β
|
+| **Wishlist** | `_store/whishlist.tsx` | (customer-owned; admin has no content to edit) | β
|
+| **Checkout** | `_store/checkout.tsx` | Fields, payment/shipping options (via Β§3 Checkout/Payments) | β
|
+| **Menus** | `_store/$menus.tsx` | Dynamic menu/landing pages content | β
|
+
+---
+
+## 5. Others (site-wide / cross-cutting)
+
+Settings that don't belong to a single sidebar item. Most are π΄ planned.
+
+| Area | What admin controls | Status |
+| --- | --- | --- |
+| **Branding & theme** | Logo variants, favicon, brand colors, storefront font, `rounded-theme` radius | π΄ |
+| **SEO** | Per-page title/description, canonical, sitemap, robots.txt | π΄ |
+| **Open Graph / social** | OG image/title/description defaults per page (roadmap: FB pages) | π΄ |
+| **Meta / Facebook Pixel** | Pixel ID, catalog feed, event mapping (roadmap item 4) | π΄ |
+| **Web analytics** | GA / other provider IDs, consent handling | π΄ |
+| **Payments** | Enable methods, gateway keys (via backend), currency | π΄ |
+| **Shipping / delivery** | Zones, rates, thresholds, estimates | π΄ |
+| **Taxes** | Rates, regions, inclusive/exclusive | π΄ |
+| **Legal / policy pages** | Content for all footer policy links | π΄ |
+| **Roles & access** | site admin / seller / customer, route guards (roadmap item 1; see [roles-and-access.md](roles-and-access.md)) | π΄ |
+| **Maintenance mode** | Toggle storefront maintenance/503 with custom message | π΄ |
+| **Localization** | Language(s), currency display, RTL | π΄ |
+| **Notifications (transactional)** | Customer email/SMS templates & triggers | π΄ |
+| **Data & privacy** | Cookie consent, data export/delete requests | π΄ |
+
+---
+
+## 6. Access control per setting
+
+Per roadmap item 1, once the **site admin / seller / customer** model lands, settings should be
+scoped. Suggested default matrix (to confirm):
+
+| Setting area | Site admin | Seller | Customer |
+| --- | --- | --- | --- |
+| Store branding, homepage, footer, nav | β
full | β | β |
+| Payments, shipping, taxes, roles | β
full | β | β |
+| Own products & inventory | β
all | β
own only | β |
+| Own orders/fulfillment | β
all | β
own only | view own |
+| Analytics/Pixel | β
full | π‘ own store scope? | β |
+| Account/profile | β
| β
| β
|
+
+> The **seller** scope (own-products-only) is the key data-boundary concern β see the
+> `access-reviewer` guidance before wiring seller-scoped queries.
+
+### 6.1 Settings are role-differentiated (different sets, shared components)
+
+**Decision:** each user type sees a **different set** of Settings sub-options. The Settings surface
+is not one flat list β the set shown is selected by role. What is shared across roles is the
+**scaffolding**, not the items: `ContentSection`, the settings sidebar-nav, the react-hook-form + zod
+form primitives, the persisted-store + route pattern. Build each role's items on those shared parts.
+
+| Settings set | Who sees it | Sub-options |
+| --- | --- | --- |
+| **Account** (shared) | admin, seller, customer | Profile, Account, Appearance, Notifications, Display β the existing sub-options; generic to any logged-in user |
+| **Store** (admin) | site admin only | General store, Branding, Homepage, Navigation, Footer, Policies (+ future: Payments, Shipping, Taxes, SEO, Pixel, Roles) β the plans in `plans/` build these |
+| **Seller** | seller only | Shop profile, payout/bank details, own-shipping defaults, seller notifications (π΄ future) |
+| **Customer** | customer only | Addresses, saved payment methods, order/marketing preferences (π΄ future) β mostly overlaps Account |
+
+Implication for implementation: the settings nav lists (`sidebar-data.ts` Settings children and
+`features/settings/index.tsx` `sidebarNavItems`) should become **role-derived** when the role model
+lands (roadmap item 1). Until then, the admin "Store" set is added as an identifiable, contiguous
+block, and no role guard is built. See `plans/001` "Cross-cutting decisions" for exactly how the
+plans keep this forward-compatible.
+
+---
+
+## 7. Decisions & remaining clearance
+
+**Confirmed:**
+- **Store Settings home** β new **sub-options under the existing Settings section** (not a new sidebar group).
+- **Doc purpose** β becomes a **build plan** (see companion plan below / `improve` output).
+- **Homepage model** β sections stay **hard-coded**; admin edits only the **data** per fixed section.
+
+**Still open (confirm before build):**
+1. **Seller access** β For the seller role, which settings (if any) beyond own products/orders are
+ in scope (e.g. their own analytics, storefront sub-page)?
+2. **Backend contract** β Which settings are backend-owned vs. stored client-side? Per CLAUDE.md,
+ no backend should be invented; settings persistence needs an API contract before build.
+```
diff --git a/plans/001-store-content-foundation-and-general.md b/plans/001-store-content-foundation-and-general.md
new file mode 100644
index 0000000..a7bc956
--- /dev/null
+++ b/plans/001-store-content-foundation-and-general.md
@@ -0,0 +1,503 @@
+# Plan 001: Store-content store + "General Store" settings sub-option (reference implementation)
+
+> **Executor instructions**: Follow this plan step by step. Run every verification
+> command and confirm the expected result before moving to the next step. If anything in
+> "STOP conditions" occurs, stop and report β do not improvise. When done, update the
+> status row for this plan in `plans/README.md`.
+>
+> **Drift check (run first)**:
+> `git diff --stat 9add86d..HEAD -- src/features/settings src/routes/user/_authenticated/settings src/stores src/components/layout/data`
+> If any in-scope file below changed since this plan was written, compare the "Current state"
+> excerpts against the live code before proceeding; on a mismatch, treat it as a STOP condition.
+
+## Status
+
+- **Priority**: P1
+- **Effort**: M
+- **Risk**: LOW
+- **Depends on**: none
+- **Category**: direction / dx
+- **Planned at**: commit `9add86d`, 2026-07-20
+
+## Why this matters
+
+The admin dashboard has a Settings section, but every sub-option today is operator-scoped
+(the admin's own profile/account/theme). There is no way for an admin to control **store-level**
+settings, and the storefront reads all its content from hard-coded static modules. This plan
+builds the foundation for admin-editable storefront content: a single persisted Zustand store
+(seeded from the current static data so nothing breaks), plus the first real sub-option
+("General Store"). It establishes the exact route + feature-folder + settings-nav + form + test
+pattern that plans 002β006 will copy for Branding, Homepage, Navigation, Footer, and Policies.
+
+## Current state
+
+The app is a client-side SPA (no backend). State uses Zustand (`src/stores/authStore.ts`) and
+React context. Settings sub-pages are simple react-hook-form + zod forms that currently just
+`toast` the submitted JSON. This plan makes forms write to a persisted store instead.
+
+**There are TWO navs to update for a sub-option β this is important.**
+
+1. **Main app left sidebar** β `src/components/layout/data/sidebar-data.ts`. "Settings" is a
+ collapsible parent whose `items` array lists Profile/Account/Appearance/Notifications/Display,
+ each `{ title, url, icon }`. This is the SAME mechanism by which "Abandoned Checkouts" is a
+ child of "Orders". A new sub-option must be added here to appear in the left sidebar. Excerpt
+ (`sidebar-data.ts`, the Settings entry under the "Other" group):
+ ```ts
+ {
+ title: 'Settings',
+ icon: IconSettings,
+ items: [
+ { title: 'Profile', url: '/user/settings', icon: IconUserCog },
+ { title: 'Account', url: '/user/settings/account', icon: IconTool },
+ { title: 'Appearance', url: '/user/settings/appearance', icon: IconPalette },
+ { title: 'Notifications', url: '/user/settings/notifications', icon: IconNotification },
+ { title: 'Display', url: '/user/settings/display', icon: IconBrowserCheck },
+ ],
+ }
+ ```
+ > NOTE: these `url`s use the FULL `/user/settings/...` prefix (unlike the settings-page inner nav
+ > below, which is prefix-less). `icon` here is a component reference (`IconTool`), NOT JSX β the
+ > renderer does `` (see `src/components/layout/nav-group.tsx:111`). Import the icon
+ > from `@tabler/icons-react` at the top of `sidebar-data.ts` and pass the bare component.
+
+2. **The Settings page's own inner nav** β `src/features/settings/index.tsx`.
+ It renders a sidebar-nav + ``. The nav items array (lines 52β78) is what we extend:
+
+```tsx
+const sidebarNavItems = [
+ { title: 'Profile', icon: , href: '/settings' },
+ { title: 'Account', icon: , href: '/settings/account' },
+ { title: 'Appearance', icon: , href: '/settings/appearance' },
+ { title: 'Notifications', icon: , href: '/settings/notifications' },
+ { title: 'Display', icon: , href: '/settings/display' },
+]
+```
+
+> NOTE: the `href` values here are written WITHOUT the `/user` prefix (e.g. `/settings/account`),
+> even though the real route is `/user/settings/account`. `SidebarNav` navigates with these exact
+> strings. **Match this existing (prefix-less) convention** β do not "fix" it in this plan.
+
+**A sub-option feature** is a folder under `src/features/settings//` with an `index.tsx`
+that wraps a form in `ContentSection`. Example β `src/features/settings/notifications/index.tsx`:
+
+```tsx
+import ContentSection from '../components/content-section'
+import { NotificationsForm } from './notifications-form'
+
+export default function SettingsNotifications() {
+ return (
+
+
+
+ )
+}
+```
+
+**The form pattern** β `src/features/settings/notifications/notifications-form.tsx` uses
+`useForm` + `zodResolver`, shadcn `Form*` primitives, and on submit calls `toast(...)`. Use it as
+the structural template (imports, `FormField`/`FormItem`/`FormLabel`/`FormControl`/`FormMessage`,
+a trailing `