`
-- `type: "text"` with `content` → text node
-- `type: "icon_font"` with `iconFontName` → `
`
-- `fill: "$variable-name"` → use CSS var `--admin-variable-name`
-- `layout: "vertical"` → `flex-direction: column`
-- `gap`, `padding`, `cornerRadius` → standard CSS properties
-
-## CSS Guidelines
-- Use existing classes from `admin.css` wherever possible
-- Add new classes to admin.css only if needed, following BEM naming
-- Topbar page title/subtitle: use `admin-topbar__title` and `admin-topbar__subtitle`
-- For the Dashboard page, include the topbar directly in the page content area
-
-## Output Files
-Create these files:
-1. `Pages/Admin/Dashboard.razor` (with KPI cards, store overview, alerts, activity feed)
-2. `Pages/Admin/Store/StoreList.razor` (data table with search, filters)
-3. `Pages/Admin/Store/StoreDetail.razor` (detail view with stats)
-4. `Pages/Admin/Store/StoreCreate.razor` (form with validation)
-5. `Pages/Admin/Store/StoreSettings.razor` (settings form)
-6. Update `wwwroot/locales/vi-VN.json` — add Admin_Dashboard_*, Admin_Store_* keys
-7. Update `wwwroot/locales/en-US.json` — matching English translations
diff --git a/.agent/prompts/agent-1b-admin-staff-products.md b/.agent/prompts/agent-1b-admin-staff-products.md
deleted file mode 100644
index 4bc763af..00000000
--- a/.agent/prompts/agent-1b-admin-staff-products.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Sub-Agent 1B: Admin Staff + Products
-
-## Objective
-Convert 11 Pencil design files into Blazor Server pages for Staff and Products modules.
-
-## Tech Stack
-Same as Agent 1A — Blazor Server, MudBlazor, admin.css tokens, Lucide icons, IStringLocalizer.
-- Inherit from `AdminBase`, use `@layout AdminLayout`
-
-## Design Files (Input)
-Read from `pencil-design/src/pages/tPOS/admin/`:
-
-### Staff (6 files)
-1. `staff-directory.pen` → `Pages/Admin/Staff/StaffDirectory.razor`
-2. `staff-create.pen` → `Pages/Admin/Staff/StaffCreate.razor`
-3. `staff-schedule.pen` → `Pages/Admin/Staff/StaffSchedule.razor`
-4. `attendance-dashboard.pen` → `Pages/Admin/Staff/AttendanceDashboard.razor`
-5. `payroll-commission.pen` → `Pages/Admin/Staff/PayrollCommission.razor`
-6. `role-permissions.pen` → `Pages/Admin/Staff/RolePermissions.razor`
-
-### Products (5 files)
-7. `product-catalog.pen` → `Pages/Admin/Products/ProductCatalog.razor`
-8. `product-create.pen` → `Pages/Admin/Products/ProductCreate.razor`
-9. `menu-builder.pen` → `Pages/Admin/Products/MenuBuilder.razor`
-10. `modifier-groups.pen` → `Pages/Admin/Products/ModifierGroups.razor`
-11. `pricing-rules.pen` → `Pages/Admin/Products/PricingRules.razor`
-
-## Route Definitions
-```
-@page "/admin/staff" → StaffDirectory
-@page "/admin/staff/create" → StaffCreate
-@page "/admin/staff/schedule" → StaffSchedule
-@page "/admin/staff/attendance" → AttendanceDashboard
-@page "/admin/staff/payroll" → PayrollCommission
-@page "/admin/roles" → RolePermissions
-@page "/admin/products" → ProductCatalog
-@page "/admin/products/create" → ProductCreate
-@page "/admin/menu" → MenuBuilder
-@page "/admin/products/modifiers" → ModifierGroups
-@page "/admin/products/pricing" → PricingRules
-```
-
-## Pattern Reference
-Same as Agent 1A — see `Pages/Auth/LoginCustomer.razor` for pattern.
-
-## How to Read .pen Files
-Same as Agent 1A — JSON with frames, text, icon_font, variables.
-
-## Output Files
-- 11 `.razor` files in respective folders
-- Update locale files with Admin_Staff_* and Admin_Products_* keys
-- Any new CSS classes added to `admin.css`
diff --git a/.agent/prompts/agent-2-phase2-combined.md b/.agent/prompts/agent-2-phase2-combined.md
deleted file mode 100644
index 586d79f5..00000000
--- a/.agent/prompts/agent-2-phase2-combined.md
+++ /dev/null
@@ -1,120 +0,0 @@
-# Sub-Agent 2A: Admin Finance + Inventory
-
-## Objective
-Convert 8 Pencil design files into Blazor Server pages for Finance and Inventory modules.
-
-## Tech Stack
-Same as Agent 1A — Blazor Server, MudBlazor, admin.css tokens, Lucide icons, IStringLocalizer.
-- Inherit from `AdminBase`, use `@layout AdminLayout`
-
-## Design Files (Input)
-Read from `pencil-design/src/pages/tPOS/admin/`:
-
-### Inventory (4 files)
-1. `inventory-dashboard.pen` → `Pages/Admin/Inventory/InventoryDashboard.razor`
-2. `purchase-orders.pen` → `Pages/Admin/Inventory/PurchaseOrders.razor`
-3. `stock-transfer.pen` → `Pages/Admin/Inventory/StockTransfer.razor`
-4. `supplier-management.pen` → `Pages/Admin/Inventory/SupplierManagement.razor`
-
-### Finance (4 files)
-5. `financial-overview.pen` → `Pages/Admin/Finance/FinancialOverview.razor`
-6. `revenue-analytics.pen` → `Pages/Admin/Finance/RevenueAnalytics.razor`
-7. `expense-management.pen` → `Pages/Admin/Finance/ExpenseManagement.razor`
-8. `tax-configuration.pen` → `Pages/Admin/Finance/TaxConfiguration.razor`
-
-## Route Definitions
-```
-@page "/admin/inventory" → InventoryDashboard
-@page "/admin/inventory/orders" → PurchaseOrders
-@page "/admin/inventory/transfers" → StockTransfer
-@page "/admin/inventory/suppliers" → SupplierManagement
-@page "/admin/finance" → FinancialOverview
-@page "/admin/finance/revenue" → RevenueAnalytics
-@page "/admin/finance/expenses" → ExpenseManagement
-@page "/admin/finance/tax" → TaxConfiguration
-```
-
-## Pattern Reference & .pen Reading
-Same as Agent 1A/1B.
-
-## Output Files
-- 8 `.razor` files
-- Update locale files with Admin_Inventory_* and Admin_Finance_* keys
-- New CSS classes in `admin.css` if needed
-
----
-
-# Sub-Agent 2B: Admin Customer + System
-
-## Objective
-Convert 7 Pencil design files into Blazor Server pages.
-
-## Design Files (Input)
-Read from `pencil-design/src/pages/tPOS/admin/`:
-
-### Customer (3 files)
-1. `customer-database.pen` → `Pages/Admin/Customers/CustomerDatabase.razor`
-2. `customer-feedback.pen` → `Pages/Admin/Customers/CustomerFeedback.razor`
-3. `loyalty-program.pen` → `Pages/Admin/Customers/LoyaltyProgram.razor`
-
-### System (4 files)
-4. `device-management.pen` → `Pages/Admin/System/DeviceManagement.razor`
-5. `integration-hub.pen` → `Pages/Admin/System/IntegrationHub.razor`
-6. `notification-center.pen` → `Pages/Admin/System/NotificationCenter.razor`
-7. `audit-log.pen` → `Pages/Admin/System/AuditLog.razor`
-
-## Route Definitions
-```
-@page "/admin/customers" → CustomerDatabase
-@page "/admin/customers/feedback" → CustomerFeedback
-@page "/admin/loyalty" → LoyaltyProgram
-@page "/admin/devices" → DeviceManagement
-@page "/admin/integrations" → IntegrationHub
-@page "/admin/notifications" → NotificationCenter
-@page "/admin/audit" → AuditLog
-```
-
----
-
-# Sub-Agent 2C: POS Screens + Payment
-
-## Objective
-Convert 33 Pencil design files into Blazor Server pages for POS module.
-
-## Tech Stack
-- Inherit from `PosBase` at `Pages/Pos/PosBase.cs`
-- Use `@layout PosLayout` (at `Layout/PosLayout.razor`)
-- Styling: `pos.css` tokens with BEM `.pos-{component}--{variant}`
-- All other conventions same as Admin agents
-
-## Design Files (Input)
-Read from `pencil-design/src/pages/tPOS/pos/shared/`:
-
-### Screens (22 files)
-`screens/login.pen`, `screens/quick-sale.pen`, `screens/settings.pen`,
-`screens/shift-management.pen`, `screens/clock-in-out.pen`,
-`screens/device-setup.pen`, `screens/offline-mode.pen`,
-`screens/password-reset.pen`, `screens/pin-entry.pen`,
-`screens/pending-orders.pen`, `screens/promo-active.pen`,
-`screens/staff-list.pen`, `screens/staff-schedule.pen`,
-`screens/stock-count.pen`, `screens/theme-customization.pen`,
-`screens/training-mode.pen`, `screens/accessibility.pen`,
-`screens/backup-restore.pen`, `screens/biometric-setup.pen`,
-`screens/cash-drawer.pen`, `screens/commission-setup.pen`,
-`screens/customer-group.pen`
-
-### Payment (11 files)
-`payment/method-select.pen`, `payment/cash.pen`, `payment/card.pen`,
-`payment/qr.pen`, `payment/bank-transfer.pen`, `payment/gift-card.pen`,
-`payment/partial-payment.pen`, `payment/tip-entry.pen`,
-`payment/payment-pending.pen`, `payment/receipt.pen`, `payment/success.pen`
-
-## Route Definitions
-POS screens: `/pos/{screen-name}` (e.g., `/pos/quick-sale`, `/pos/settings`)
-Payment: `/pos/payment/{method}` (e.g., `/pos/payment/cash`, `/pos/payment/card`)
-
-## Output
-- 22 POS screen `.razor` files in `Pages/Pos/`
-- 11 Payment `.razor` files in `Pages/Pos/Payment/`
-- Shared POS components in `Components/Pos/` if reusable patterns emerge
-- Locale keys: Pos_*, Pos_Payment_*
diff --git a/.agent/prompts/agent-3-phase3-combined.md b/.agent/prompts/agent-3-phase3-combined.md
deleted file mode 100644
index 7b8deb2e..00000000
--- a/.agent/prompts/agent-3-phase3-combined.md
+++ /dev/null
@@ -1,95 +0,0 @@
-# Sub-Agent 3A: POS Dialogs
-
-## Objective
-Convert 47 POS dialog design files into MudDialog components.
-
-## Tech Stack
-- **Component type**: MudBlazor `MudDialog` (not full pages)
-- **Styling**: `pos.css` tokens
-- **Icons**: Lucide via ``
-- **i18n**: `IStringLocalizer` with locale files
-- **Location**: `Components/Pos/Dialogs/{DialogName}.razor`
-
-## Design Files (Input)
-Read ALL `.pen` files from `pencil-design/src/pages/tPOS/pos/shared/dialogs/`:
-barcode-scan, change-calculator, confirmation, coupon-redeem,
-customer-add, customer-edit, customer-history, customer-note, customer-search,
-data-export, deposit-withdrawal, discount-apply, expense-entry, expiry-warning,
-feedback-form, help-support, hold-recall, keyboard-shortcuts,
-low-stock-alert, loyalty-reward, loyalty-scan, manager-override,
-modifier-select, multi-discount, network-error, open-price,
-order-cancel, order-edit, order-reprint, permission-denied, petty-cash,
-price-check, printer-error, product-search, quantity-adjust,
-role-switch, session-timeout, split-bill, stock-in, stock-out,
-stock-transfer, sync-conflict, sync-status, two-factor,
-vip-benefits, void-refund, weight-entry
-
-## MudDialog Pattern
-```razor
-@* EN: Dialog description / VI: Mô tả dialog *@
-
-
-
-
-
- @L["Dialog_Title"]
-
-
-
- @* Dialog content from .pen design *@
-
-
- @L["Dialog_Cancel"]
- @L["Dialog_Submit"]
-
-
-
-@code {
- [CascadingParameter] IMudDialogInstance MudDialog { get; set; }
- private void Cancel() => MudDialog.Cancel();
- private void Submit() => MudDialog.Close(DialogResult.Ok(true));
-}
-```
-
-## Output
-- 47 dialog `.razor` files in `Components/Pos/Dialogs/`
-- Locale keys: Pos_Dialog_{DialogName}_*
-
----
-
-# Sub-Agent 3B: POS Reports + Verticals
-
-## Objective
-Convert 22 Pencil design files for POS reports and vertical-specific screens.
-
-## Tech Stack
-Same POS conventions — inherit `PosBase`, use `@layout PosLayout`, `pos.css`.
-
-## Design Files (Input)
-
-### Reports (8 files) from `pos/shared/reports/`:
-`sales-dashboard.pen`, `shift-report.pen`, `tax-report.pen`,
-`cash-reconciliation.pen`, `inventory-alert.pen`, `payment-report.pen`,
-`staff-performance.pen`, `top-sellers.pen`
-
-### Café (5+1 files) from `pos/cafe/`:
-`desktop.pen`, `tablet.pen`, `mobile.pen`,
-`barista-queue.pen`, `customer-display.pen`
-
-### Restaurant (3 files) from `pos/restaurant/`:
-`desktop.pen`, `tablet.pen`, `mobile.pen`
-
-### Karaoke (3 files) from `pos/karaoke/`:
-`desktop.pen`, `tablet.pen`, `mobile.pen`
-
-### Spa (3 files) from `pos/spa/`:
-`desktop.pen`, `tablet.pen`, `mobile.pen`
-
-## Route Definitions
-Reports: `/pos/reports/{report-type}`
-Verticals: `/pos/{vertical}/{view}` (e.g., `/pos/cafe/desktop`)
-
-## Output
-- 8 Report pages in `Pages/Pos/Reports/`
-- Vertical pages in `Pages/Pos/Cafe/`, `Pages/Pos/Restaurant/`, etc.
-- Locale keys: Pos_Report_*, Pos_Cafe_*, Pos_Restaurant_*, etc.
diff --git a/.agent/prompts/agent-4-onboarding.md b/.agent/prompts/agent-4-onboarding.md
deleted file mode 100644
index 4b1c0e76..00000000
--- a/.agent/prompts/agent-4-onboarding.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Sub-Agent 4: Admin Onboarding Wizard
-
-## Objective
-Convert 6 Pencil onboarding files into a multi-step wizard flow.
-
-## Tech Stack
-Same Admin conventions — inherit `AdminBase`, use `@layout AdminLayout`, `admin.css`.
-
-## Design Files (Input)
-Read from `pencil-design/src/pages/tPOS/admin/`:
-1. `onboarding-business.pen` → Step 1: Business info
-2. `onboarding-store.pen` → Step 2: Store setup
-3. `onboarding-products.pen` → Step 3: Product catalog
-4. `onboarding-staff.pen` → Step 4: Staff setup
-5. `onboarding-device.pen` → Step 5: Device pairing
-6. `onboarding-ready.pen` → Step 6: Ready to go!
-
-## Route Definitions
-```
-@page "/admin/onboarding" → OnboardingWizard.razor (all steps)
-@page "/admin/onboarding/{Step}" → Same component, step parameter
-```
-
-## Implementation Notes
-- Create a SINGLE `OnboardingWizard.razor` with step navigation
-- Use MudStepper or custom stepper component
-- Each step renders content based on `{Step}` parameter
-- Include progress indicator, back/next buttons
-- Final step: celebration + redirect to `/admin`
-
-## Output
-- `Pages/Admin/Onboarding/OnboardingWizard.razor`
-- `Components/Admin/OnboardingStep.razor` (reusable step wrapper)
-- Locale keys: Admin_Onboarding_*
-- Wire up the route from the admin layout's sidebar