import { Toaster } from "@/components/ui/toaster";
import { Toaster as Sonner } from "@/components/ui/sonner";
import { TooltipProvider } from "@/components/ui/tooltip";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { BrowserRouter, Routes, Route, Navigate, useNavigate, useLocation, useParams } from "react-router-dom";

// Redirect component for legacy universal-services edit route
function UniversalServiceEditRedirect() {
  const { id } = useParams();
  return <Navigate to={`/admin/services/edit/${id}`} replace />;
}
import { AuthProvider, useAuth } from "@/contexts/AuthContext";
import { CartProvider } from "@/contexts/CartContext";
import { WorkspaceProvider } from "@/contexts/WorkspaceContext";
import { ChatFloatingWidget } from "@/components/chat/ChatFloatingWidget";
import { GlobalAIButton } from "@/components/unified-ai";
import { NetworkStatus } from "@/components/common/NetworkStatus";
import { PWAInstallPrompt } from "@/components/common/PWAInstallPrompt";
import { useEffect, lazy, Suspense } from "react";
import { Loader2 } from "lucide-react";
import PublicLayout from "@/layouts/PublicLayout";
const Index = lazy(() => import("./pages/Index"));
const About = lazy(() => import("./pages/About"));
const Contact = lazy(() => import("./pages/Contact"));
const Careers = lazy(() => import("./pages/Careers"));
const Blog = lazy(() => import("./pages/Blog"));
const BlogPost = lazy(() => import("./pages/BlogPost"));
const Help = lazy(() => import("./pages/Help"));
const Terms = lazy(() => import("./pages/Terms"));
const Privacy = lazy(() => import("./pages/Privacy"));
const FAQ = lazy(() => import("./pages/FAQ"));
const UnifiedMarketplace = lazy(() => import("./pages/UnifiedMarketplace"));
const MarketplacePlus = lazy(() => import("./pages/MarketplacePlus"));
const TravelHome = lazy(() => import("./pages/marketplace-plus/TravelHome"));
const TravelCategory = lazy(() => import("./pages/marketplace-plus/TravelCategory"));
const TravelProductDetail = lazy(() => import("./pages/marketplace-plus/TravelProductDetail"));
const MarketplaceHome = lazy(() => import("./pages/marketplace-plus/MarketplaceHome"));
const ProductListing = lazy(() => import("./pages/marketplace-plus/ProductListing"));
const ProductDetail = lazy(() => import("./pages/marketplace-plus/ProductDetail"));
const VendorStore = lazy(() => import("./pages/marketplace-plus/VendorStore"));
const VendorStorefront = lazy(() => import("./pages/marketplace-plus/VendorStorefront"));
const MarketplaceCart = lazy(() => import("./pages/marketplace-plus/Cart"));
const Checkout = lazy(() => import("./pages/marketplace-plus/Checkout"));
const DealsHome = lazy(() => import("./pages/marketplace-plus/DealsHome"));
const VAPublicProfile = lazy(() => import("./pages/va/VAPublicProfile"));
const HotelSearch = lazy(() => import("./pages/marketplace-plus/HotelSearch"));
const HotelDetail = lazy(() => import("./pages/marketplace-plus/HotelDetail"));
import { ProtectedModuleRoute } from "./components/ProtectedModuleRoute";
const Learning = lazy(() => import("./pages/Learning"));
const Contests = lazy(() => import("./pages/Contests"));
const ContestDetailPage = lazy(() => import("./pages/contests/ContestDetailPage"));
const ContestListing = lazy(() => import("./pages/contests/ContestListing"));
const MyContestEntries = lazy(() => import("./pages/contests/MyContestEntries"));
const Jobs = lazy(() => import("./pages/Jobs"));
const Auth = lazy(() => import("./pages/Auth"));
const Login = lazy(() => import("./pages/Login"));
const ForgotPassword = lazy(() => import("./pages/ForgotPassword"));
const ResetPassword = lazy(() => import("./pages/ResetPassword"));
const AdminLogin = lazy(() => import("./pages/AdminLogin"));
const NotFound = lazy(() => import("./pages/NotFound"));
const OAuthConsent = lazy(() => import("./pages/OAuthConsent"));
const UnifiedOnboarding = lazy(() => import("./pages/UnifiedOnboarding"));
const Onboarding = lazy(() => import("./pages/Onboarding"));
const ServiceDetail = lazy(() => import("./pages/ServiceDetail"));
const UniversalServiceDetail = lazy(() => import("./pages/UniversalServiceDetail"));
import { ModuleRedirect } from "./components/universal-service/ModuleRedirect";
const Cart = lazy(() => import("./pages/Cart"));
const Wishlist = lazy(() => import("./pages/Wishlist"));
const PaymentSuccess = lazy(() => import("./pages/PaymentSuccess"));
const PaymentCancel = lazy(() => import("./pages/PaymentCancel"));
const MyOrders = lazy(() => import("./pages/MyOrders"));
const MySales = lazy(() => import("./pages/MySales"));
const OrderDetail = lazy(() => import("./pages/OrderDetail"));
const OrderConfirmation = lazy(() => import("./pages/OrderConfirmation"));
const Portfolio = lazy(() => import("./pages/Portfolio"));
const Profile = lazy(() => import("./pages/Profile"));
const Dashboard = lazy(() => import("./pages/Dashboard"));
const Messages = lazy(() => import("./pages/Messages"));
const AnalyticsPage = lazy(() => import("./pages/AnalyticsPage"));
const Reviews = lazy(() => import("./pages/Reviews"));
const ImportServices = lazy(() => import("./pages/ImportServices"));
const MyServices = lazy(() => import("./pages/MyServices"));
// ServiceForm removed - service creation is admin-only via UniversalServiceEditor
const JobDetail = lazy(() => import("./pages/JobDetail"));
const FreelancerProfile = lazy(() => import("./pages/FreelancerProfile"));
const FreelancerDashboard = lazy(() => import("./pages/FreelancerDashboard"));
const MarketplaceProducts = lazy(() => import("./pages/admin/marketplace/Products"));
const MarketplaceVendors = lazy(() => import("./pages/admin/marketplace/Vendors"));
const MarketplaceOrders = lazy(() => import("./pages/admin/marketplace/Orders"));
const TravelBookings = lazy(() => import("./pages/admin/travel/Bookings"));
const TravelHotels = lazy(() => import("./pages/admin/travel/Hotels"));
const TravelExperiences = lazy(() => import("./pages/admin/travel/Experiences"));
const TravelPartners = lazy(() => import("./pages/admin/travel/Partners"));
const DealsAdmin = lazy(() => import("./pages/admin/deals/Deals"));
const RedemptionsAdmin = lazy(() => import("./pages/admin/deals/Redemptions"));
const AdminWafaa = lazy(() => import("./pages/admin/Wafaa"));
const AdminMediaLibraryPage = lazy(() => import("./pages/admin/MediaLibraryPage"));
const BroadcastNotifications = lazy(() => import("./pages/admin/BroadcastNotifications"));
const StripeIntegration = lazy(() => import("./pages/admin/StripeIntegration"));
const EmployerDashboard = lazy(() => import("./pages/EmployerDashboard"));
const PostJob = lazy(() => import("./pages/PostJob"));
const HireJobDetail = lazy(() => import("./pages/hire/HireJobDetail"));
const CandidateProfile = lazy(() => import("./pages/hire/CandidateProfile"));
const CandidatePublicProfile = lazy(() => import("./pages/hire/CandidatePublicProfile"));
const CompanyPublicProfile = lazy(() => import("./pages/hire/CompanyPublicProfile"));
const CandidateApplications = lazy(() => import("./pages/hire/CandidateApplications"));
const WafaaDashboard = lazy(() => import("./pages/hire/WafaaDashboard"));
const HireEmployerDashboard = lazy(() => import("./pages/hire/employer/EmployerDashboard"));
const EmployerJobs = lazy(() => import("./pages/hire/employer/EmployerJobs"));
const EmployerApplications = lazy(() => import("./pages/hire/employer/EmployerApplications"));
const PostJobPage = lazy(() => import("./pages/hire/employer/PostJob"));
const ApplicationDetail = lazy(() => import("./pages/hire/employer/ApplicationDetail"));
const CompanyRegister = lazy(() => import("./pages/hire/employer/CompanyRegister"));
const CompanyVerification = lazy(() => import("./pages/hire/employer/CompanyVerification"));
const HireRoleSelectionPage = lazy(() => import("./pages/hire/HireRoleSelectionPage"));
const CandidateOnboardingPage = lazy(() => import("./pages/hire/CandidateOnboardingPage"));
const EditJobEmployer = lazy(() => import("./pages/hire/employer/EditJob"));
const ProLanding = lazy(() => import("./pages/pro/ProLanding"));
const InvestorConnect = lazy(() => import("./pages/pro/InvestorConnect"));
const VendorPublicProfile = lazy(() => import("./pages/pro/VendorPublicProfile"));
const CompareLanding = lazy(() => import("./pages/pro/CompareLanding"));
const CompareCategory = lazy(() => import("./pages/pro/CompareCategory"));
const CompareResults = lazy(() => import("./pages/pro/CompareResults"));
const BookingConfirmation = lazy(() => import("./pages/pro/BookingConfirmation"));
const MyProBookings = lazy(() => import("./pages/pro/MyProBookings"));
const VendorOnboarding = lazy(() => import("./pages/pro/vendor/VendorOnboarding"));
const VendorDashboard = lazy(() => import("./pages/pro/vendor/VendorDashboard"));
const VendorServices = lazy(() => import("./pages/pro/vendor/VendorServices"));
const VendorQuotes = lazy(() => import("./pages/pro/vendor/VendorQuotes"));
const ProCategoriesManagement = lazy(() => import("./pages/admin/pro/ProCategoriesManagement"));
const ProVendorsManagement = lazy(() => import("./pages/admin/pro/ProVendorsManagement"));
const ProBookingsManagement = lazy(() => import("./pages/admin/pro/ProBookingsManagement"));
const DynamicFieldsBuilder = lazy(() => import("./pages/admin/pro/DynamicFieldsBuilder"));
const SellerOnboarding = lazy(() => import("./pages/seller/SellerOnboarding"));
const SellerDashboard = lazy(() => import("./pages/seller/SellerDashboard"));
const SellerServices = lazy(() => import("./pages/seller/SellerServices"));
const SellerOrders = lazy(() => import("./pages/seller/SellerOrders"));
const SellerPayments = lazy(() => import("./pages/seller/SellerPayments"));
const SellerTraining = lazy(() => import("./pages/seller/SellerTraining"));
const FinancialSetup = lazy(() => import("./pages/seller/FinancialSetup"));
import ServiceListingWizard from "./components/seller-services/ServiceListingWizard";
const SellerManagement = lazy(() => import("./pages/admin/pro/SellerManagement"));
const SellerDetail = lazy(() => import("./pages/admin/pro/SellerDetail"));
const ServiceApprovalQueue = lazy(() => import("./pages/admin/pro/ServiceApprovalQueue"));
const EditJobAdmin = lazy(() => import("./pages/admin/hire/EditJob"));
const JobsManagement = lazy(() => import("./pages/admin/hire/JobsManagement"));
const ApplicationsManagement = lazy(() => import("./pages/admin/hire/ApplicationsManagement"));
const InterviewsManagement = lazy(() => import("./pages/admin/hire/InterviewsManagement"));
const CompanyMembersManagement = lazy(() => import("./pages/admin/hire/CompanyMembersManagement"));
const ScorecardsManagement = lazy(() => import("./pages/admin/hire/ScorecardsManagement"));
const ApplicationNotesManagement = lazy(() => import("./pages/admin/hire/ApplicationNotesManagement"));
const RecommendationsManagement = lazy(() => import("./pages/admin/hire/RecommendationsManagement"));
const NotificationsManagement = lazy(() => import("./pages/admin/hire/NotificationsManagement"));
const EmailQueueManagement = lazy(() => import("./pages/admin/hire/EmailQueueManagement"));
const SavedJobsManagement = lazy(() => import("./pages/admin/hire/SavedJobsManagement"));
const ConversationsManagement = lazy(() => import("./pages/admin/hire/ConversationsManagement"));
const AssessmentsManagement = lazy(() => import("./pages/admin/hire/AssessmentsManagement"));
const ReferenceChecksManagement = lazy(() => import("./pages/admin/hire/ReferenceChecksManagement"));
const TakeAssessmentPage = lazy(() => import("./pages/hire/TakeAssessmentPage"));
const ReferenceResponse = lazy(() => import("./pages/hire/ReferenceResponse"));
const HireExplore = lazy(() => import("./pages/hire/Explore"));
const HireLanding = lazy(() => import("./pages/hire/HireLanding"));
import { useOnboardingStatus } from "./hooks/useOnboardingStatus";
const ATSPipeline = lazy(() => import("./pages/hire/employer/ATSPipeline"));
const HireMessages = lazy(() => import("./pages/hire/Messages"));
const CreateInterview = lazy(() => import("./pages/hire/employer/CreateInterview"));
const TalentSearch = lazy(() => import("./pages/hire/employer/TalentSearch"));
const CandidateDashboard = lazy(() => import("./pages/hire/CandidateDashboard"));
const CandidateRegistrationPhase1 = lazy(() => import("./pages/hire/CandidateRegistrationPhase1"));
const CandidateRegistrationPhase2 = lazy(() => import("./pages/hire/CandidateRegistrationPhase2"));
const InterviewScheduling = lazy(() => import("./pages/hire/employer/InterviewScheduling"));
const VideoInterview = lazy(() => import("./pages/hire/VideoInterview"));
const TeamManagementHire = lazy(() => import("./pages/hire/employer/TeamManagement"));
const SubscriptionManagement = lazy(() => import("./pages/hire/employer/SubscriptionManagement"));
const EmployerAnalytics = lazy(() => import("./pages/hire/employer/EmployerAnalytics"));
const CandidateApplicationDetail = lazy(() => import("./pages/hire/CandidateApplicationDetail"));
const ProfileExperience = lazy(() => import("./pages/hire/candidate/ProfileExperience"));
import { useHireNotifications } from "./hooks/hire/useHireNotifications";
const ProfileEducation = lazy(() => import("./pages/hire/candidate/ProfileEducation"));
const ProfileDocuments = lazy(() => import("./pages/hire/candidate/ProfileDocuments"));
const ProfileSkills = lazy(() => import("./pages/hire/candidate/ProfileSkills"));
const SavedJobs = lazy(() => import("./pages/hire/candidate/SavedJobs"));
const RecommendedJobs = lazy(() => import("./pages/hire/candidate/RecommendedJobs"));
const TradeLanding = lazy(() => import("./pages/trade/TradeLanding"));
const BrowseSuppliers = lazy(() => import("./pages/trade/BrowseSuppliers"));
const SupplierRegister = lazy(() => import("./pages/trade/SupplierRegister"));
const CreateRFQ = lazy(() => import("./pages/trade/CreateRFQ"));
const BrowseRFQs = lazy(() => import("./pages/trade/BrowseRFQs"));
const BrowseProducts = lazy(() => import("./pages/trade/BrowseProducts"));
const SupplierDashboard = lazy(() => import("./pages/trade/SupplierDashboard"));
const RFQDetail = lazy(() => import("./pages/trade/RFQDetail"));
const SubmitQuote = lazy(() => import("./pages/trade/SubmitQuote"));
const BuyerDashboard = lazy(() => import("./pages/trade/BuyerDashboard"));
const SupplierProfile = lazy(() => import("./pages/trade/SupplierProfile"));
const TradeMessages = lazy(() => import("./pages/trade/Messages"));
const TradeNotifications = lazy(() => import("./pages/trade/Notifications"));
const QuoteDetail = lazy(() => import("./pages/trade/QuoteDetail"));
const TradeOrderDetail = lazy(() => import("./pages/trade/OrderDetail"));
import { ProtectedRoute } from "./components/ProtectedRoute";
import { AdminRoute } from "./components/AdminRoute";
const ImportTradeProducts = lazy(() => import("./pages/admin/ImportTradeProducts"));
const ProductsDashboard = lazy(() => import("./pages/admin/trade/ProductsDashboard"));
const SupplierManagement = lazy(() => import("./pages/admin/trade/SupplierManagement"));
const RFQMonitoring = lazy(() => import("./pages/admin/trade/RFQMonitoring"));
const TradeAnalytics = lazy(() => import("./pages/admin/trade/TradeAnalytics"));
const CategoryManagement = lazy(() => import("./pages/admin/trade/CategoryManagement"));
const PlacementsManager = lazy(() => import("./pages/admin/campaigns/PlacementsManager"));
const CouponsManager = lazy(() => import("./pages/admin/campaigns/CouponsManager"));
const RafflesManager = lazy(() => import("./pages/admin/campaigns/RafflesManager"));
const AnalyticsDashboard = lazy(() => import("./pages/admin/campaigns/AnalyticsDashboard"));
const PermissionsManager = lazy(() => import("./pages/admin/campaigns/PermissionsManager"));
const BannerManagement = lazy(() => import("./pages/admin/BannerManagement"));
const BannerEditor = lazy(() => import("./pages/admin/BannerEditor"));
const AdminDashboard = lazy(() => import("./pages/admin/Dashboard"));
const HeroCardsManagement = lazy(() => import("./pages/admin/HeroCardsManagement"));
const PageManagementOverview = lazy(() => import("./pages/admin/PageManagementOverview"));
const ModulePageEditor = lazy(() => import("./pages/admin/ModulePageEditor"));

// Design Studio imports
const DesignDashboard = lazy(() => import("./pages/design-studio/DesignDashboard"));
const CreateDesign = lazy(() => import("./pages/design-studio/CreateDesign"));
const MyDesigns = lazy(() => import("./pages/design-studio/MyDesigns"));
const BrandKit = lazy(() => import("./pages/design-studio/BrandKit"));
const QRBusinessCard = lazy(() => import("./pages/design-studio/QRBusinessCard"));
const DesignBilling = lazy(() => import("./pages/design-studio/DesignBilling"));
const DesignStudioLayout = lazy(() => import("./pages/design-studio/DesignStudioLayout"));
const AdminDesignDashboard = lazy(() => import("./pages/admin/design-studio/AdminDesignDashboard"));
const TemplateManager = lazy(() => import("./pages/admin/design-studio/TemplateManager"));
const TemplateBuilder = lazy(() => import("./pages/admin/design-studio/TemplateBuilder"));
const AdminUsers = lazy(() => import("./pages/admin/Users"));
const AdminPermissions = lazy(() => import("./pages/admin/Permissions"));
const WorkspaceManagement = lazy(() => import("./pages/admin/WorkspaceManagementFull"));
const ERPIntegration = lazy(() => import("./pages/admin/ERPIntegration"));
const LandingiLeads = lazy(() => import("./pages/admin/LandingiLeads"));
const LandingiLeadsTesting = lazy(() => import("./pages/admin/LandingiLeadsTesting"));
const AdminServices = lazy(() => import("./pages/admin/Services"));
// ServiceEditor removed - replaced by UniversalServiceEditor
const AdminOrders = lazy(() => import("./pages/admin/Orders"));
const AdminOrderDetail = lazy(() => import("./pages/admin/AdminOrderDetail"));
const AdminAnalytics = lazy(() => import("./pages/admin/AnalyticsDashboard"));
const AdminSettings = lazy(() => import("./pages/admin/Settings"));
// ServiceManager removed - consolidated into /admin/services
const DockComponents = lazy(() => import("./pages/admin/DockComponents"));
const TestUtilities = lazy(() => import("./pages/admin/tools/TestUtilities"));
const UniversalServiceEditor = lazy(() => import("./pages/admin/universal-services/UniversalServiceEditor"));
const AttributeGroupManager = lazy(() => import("./pages/admin/universal-services/AttributeGroupManager"));
const AttributeValueManager = lazy(() => import("./pages/admin/universal-services/AttributeValueManager"));
const InvestorConnectManagement = lazy(() => import("./pages/admin/pro/InvestorConnectManagement"));
const ModulePermissionRepair = lazy(() => import("./pages/admin/ModulePermissionRepair"));
const AdminReviews = lazy(() => import("./pages/admin/Reviews"));
const AdminAuditLogs = lazy(() => import("./pages/admin/AuditLogs"));
const AdminCommunication = lazy(() => import("./pages/admin/Communication"));
const AdminPayments = lazy(() => import("./pages/admin/Payments"));
const AdminPoints = lazy(() => import("./pages/admin/Points"));
const AdminSubscriptions = lazy(() => import("./pages/admin/Subscriptions"));
const AdminPortfolio = lazy(() => import("./pages/admin/Portfolio"));
const AdminNotifications = lazy(() => import("./pages/admin/Notifications"));
const AdminHeroStats = lazy(() => import("./pages/admin/HeroStats"));
const AdminForms = lazy(() => import("./pages/admin/Forms"));
const OnboardingFormManagement = lazy(() => import("./pages/admin/OnboardingFormManagement"));
const AdminCoupons = lazy(() => import("./pages/admin/Coupons"));
const AdminVerifications = lazy(() => import("./pages/admin/Verifications"));
const AdminCampaigns = lazy(() => import("./pages/admin/Campaigns"));
const ContestManagement = lazy(() => import("./pages/admin/contests/ContestManagement"));
const ContestEditor = lazy(() => import("./pages/admin/contests/ContestEditor"));
const ContestDetail = lazy(() => import("./pages/admin/contests/ContestDetail"));
const ContestCategoryManagement = lazy(() => import("./pages/admin/contests/CategoryManagement"));
const ContestTemplates = lazy(() => import("./pages/admin/contests/ContestTemplates"));
const FananOrder = lazy(() => import("./pages/FananOrder"));
const FananJoin = lazy(() => import("./pages/FananJoin"));
const FananLanding = lazy(() => import("./pages/fanan/FananLanding"));
const ArtistDashboard = lazy(() => import("./pages/fanan/ArtistDashboard"));
const ArtistProfile = lazy(() => import("./pages/fanan/ArtistProfile"));
const BrowseArtists = lazy(() => import("./pages/fanan/BrowseArtists"));
const ArtistApplications = lazy(() => import("./pages/admin/fanan/ArtistApplications"));
const FananDashboard = lazy(() => import("./pages/admin/fanan/FananDashboard"));
const OrderDetailView = lazy(() => import("./pages/fanan/OrderDetailView"));
const ArtistEarnings = lazy(() => import("./pages/fanan/ArtistEarnings"));
const OrdersManagement = lazy(() => import("./pages/admin/fanan/OrdersManagement"));
const FananAnalytics = lazy(() => import("./pages/admin/fanan/FananAnalytics"));
const VADashboardPage = lazy(() => import("./pages/va/VADashboard"));
const VAProfile = lazy(() => import("./pages/va/VAProfile"));
const VANotAvailable = lazy(() => import("./pages/va/VANotAvailable"));
const VAAuth = lazy(() => import("./pages/va/VAAuth"));
const TaskDetailView = lazy(() => import("./pages/va/TaskDetailView"));
const VAEarnings = lazy(() => import("./pages/va/VAEarnings"));
const ArtistAuth = lazy(() => import("./pages/fanan/ArtistAuth"));
const VAApplications = lazy(() => import("./pages/admin/va/VAApplications"));
const VADashboard = lazy(() => import("./pages/admin/va/VADashboard"));
const VAAssignments = lazy(() => import("./pages/admin/va/VAAssignments"));
const TasksManagement = lazy(() => import("./pages/admin/va/TasksManagement"));
// Next Essentials Pages
const EssentialsLanding = lazy(() => import("./pages/essentials/EssentialsLanding"));
import {
  EssentialsCareers,
  EssentialsCareersApply,
  EssentialsCareersApplySuccess,
  EssentialsCareersStatus,
  EssentialsPortal,
  EssentialsPortalLogin,
  QuoteCompareLanding,
  QuoteCompareWizard,
  QuoteRequestSummary,
  QuoteComparisonView,
  QuoteDetailView,
  ConsultantDirectory,
  ConsultantPublicProfile,
  ConsultantDashboard,
  ConsultantOnboarding,
  ConsultantQuoteBuilder,
  ConsultantSettings,
  ConsultantLandingEditor,
} from "./pages/essentials";
const UserQuotes = lazy(() => import("./pages/dashboard/UserQuotes"));
const EssentialsPaymentSuccess = lazy(() => import("./pages/essentials/PaymentSuccess"));
const EssentialsPaymentCancel = lazy(() => import("./pages/essentials/PaymentCancel"));
const EssentialsCart = lazy(() => import("./pages/essentials/Cart"));
const BusinessSetupFormPage = lazy(() => import("./pages/essentials/BusinessSetupFormPage"));
const BusinessSetupFormSuccess = lazy(() => import("./pages/essentials/BusinessSetupFormSuccess"));
const BusinessSetupLeadsAdmin = lazy(() => import("./pages/admin/essentials/BusinessSetupLeadsAdmin"));

import { EssentialsPortalGuard } from "./components/essentials/EssentialsPortalGuard";
import { QuotesManagement as AdminQuotesManagement, ConsultantsManagement as AdminConsultantsManagement, PackagesAdmin, ProductsAdmin } from "./pages/admin/essentials";
const PricingBenchmarksAdmin = lazy(() => import("./pages/admin/essentials/PricingBenchmarksAdmin"));
const AdminMarketplaceProducts = lazy(() => import("./pages/admin/marketplace/Products"));
const AdminMarketplaceVendors = lazy(() => import("./pages/admin/marketplace/Vendors"));
const AdminMarketplaceOrders = lazy(() => import("./pages/admin/marketplace/Orders"));
const VAAnalytics = lazy(() => import("./pages/admin/va/VAAnalytics"));
const PayoutsManagement = lazy(() => import("./pages/admin/payouts/PayoutsManagement"));
const GoogleWorkspaceAdmin = lazy(() => import("./pages/admin/integrations/GoogleWorkspaceAdmin"));
const ClientPortal = lazy(() => import("./pages/client/ClientPortal"));
const VirtualAssociateApplications = lazy(() => import("./pages/admin/VirtualAssociateApplications"));
const ServiceCategories = lazy(() => import("./pages/admin/ServiceCategories"));
const ServiceOrders = lazy(() => import("./pages/admin/ServiceOrders"));
import CRMDashboard from "@/pages/crm/Dashboard";
import WorkspaceSetup from "@/pages/crm/WorkspaceSetup";
import CRMLeads from "@/pages/crm/Leads";
import NewLead from "@/pages/crm/NewLead";
import LeadDetail from "@/pages/crm/LeadDetail";
import CRMMessages from "@/pages/crm/Messages";
import TeamManagement from "@/pages/crm/TeamManagement";
import Pipeline from "@/pages/crm/Pipeline";
import Tasks from "@/pages/crm/Tasks";
import CRMSubscription from "@/pages/crm/Subscription";
import CRMReports from "@/pages/crm/Reports";
import CRMCalendar from "@/pages/crm/Calendar";
import CRMSettings from "@/pages/crm/Settings";
import WorkspaceAnalytics from "@/pages/crm/WorkspaceAnalytics";
import CRMWhatsApp from "@/pages/crm/WhatsApp";
import Attendance from "@/pages/crm/Attendance";
import LeaveRequests from "@/pages/crm/LeaveRequests";
import TeamAttendance from "@/pages/crm/TeamAttendance";
import Quotes from "@/pages/crm/Quotes";
import NewQuote from "@/pages/crm/NewQuote";
import Invoices from "@/pages/crm/Invoices";
import NewInvoice from "@/pages/crm/NewInvoice";
import RevenueForecast from "@/pages/crm/RevenueForecast";
import LeadScoring from "@/pages/crm/LeadScoring";
import PageEditor from "@/pages/admin/cms/PageEditor";
import { CRMWorkspaceGuard } from "@/components/crm/CRMWorkspaceGuard";
import CRMLandingPage from "@/pages/crm/CRMLandingPage";
import PaymentTracking from "@/pages/crm/PaymentTracking";
import TemplateGallery from "@/pages/crm/TemplateGallery";
import QuoteView from "@/pages/crm/QuoteView";
import InvoicePayment from "@/pages/crm/InvoicePayment";
import RecurringInvoices from "@/pages/crm/RecurringInvoices";
import ProductsList from "@/pages/crm/products/ProductsList";
import PromotionsList from "@/pages/crm/promotions/PromotionsList";
import NewPromotion from "@/pages/crm/promotions/NewPromotion";
import PromotionDetail from "@/pages/crm/promotions/PromotionDetail";
import ResourcesLibrary from "@/pages/crm/resources/ResourcesLibrary";
import EmailSignature from "@/pages/crm/EmailSignature";
import { SubscriptionProvider } from "@/contexts/SubscriptionContext";
const Install = lazy(() => import("./pages/Install"));
const AIAssistantPage = lazy(() => import("./pages/essentials/AIAssistant"));
const CMSPages = lazy(() => import("./pages/admin/cms/Pages"));
const BlogManagement = lazy(() => import("./pages/admin/cms/Blog"));
const NavigationManager = lazy(() => import("./pages/admin/cms/Navigation"));
const ContentBlocks = lazy(() => import("./pages/admin/cms/ContentBlocks"));
const MediaLibrary = lazy(() => import("./pages/admin/cms/MediaLibrary"));
const SEOSettings = lazy(() => import("./pages/admin/cms/SEOSettings"));
const Marketing = lazy(() => import("./pages/admin/cms/Marketing"));
const MessageTemplates = lazy(() => import("./pages/admin/cms/MessageTemplates"));
const RewardsManagement = lazy(() => import("./pages/admin/cms/Rewards"));
const ModulesManagement = lazy(() => import("./pages/admin/cms/Modules"));
const UnifiedPageManager = lazy(() => import("./pages/admin/cms/UnifiedPageManager"));
const SectionBuilder = lazy(() => import("./pages/admin/cms/SectionBuilder"));
const CardManager = lazy(() => import("./pages/admin/cms/CardManager"));
const ComponentManager = lazy(() => import("./pages/admin/cms/ComponentManager"));
const ComponentLibrary = lazy(() => import("./pages/admin/cms/ComponentLibrary"));
const DataSourceManager = lazy(() => import("./pages/admin/cms/DataSourceManager"));
const ThemeEngine = lazy(() => import("./pages/admin/cms/ThemeEngine"));
const AuditLogViewer = lazy(() => import("./pages/admin/cms/AuditLogViewer"));
const FinanceCustomers = lazy(() => import("./pages/admin/finance/Customers"));
const FinanceTemplates = lazy(() => import("./pages/admin/finance/Templates"));
const FinanceInvoices = lazy(() => import("./pages/admin/finance/Invoices"));
const FinanceLetterheads = lazy(() => import("./pages/admin/finance/Letterheads"));
const FinanceDocuments = lazy(() => import("./pages/admin/finance/Documents"));
const HomePageDashboard = lazy(() => import("./pages/admin/home-builder/HomePageDashboard"));
const HomePageBuilder = lazy(() => import("./pages/admin/home-builder/HomePageBuilder"));
const HireTeamManagement = lazy(() => import("./pages/hire/employer/TeamManagement"));
const HireSubscriptionManagement = lazy(() => import("./pages/hire/employer/SubscriptionManagement"));
const HireCompanyVerification = lazy(() => import("./pages/admin/hire/CompanyVerification"));
const HireJobApprovals = lazy(() => import("./pages/admin/hire/JobApprovals"));
const HireAnalytics = lazy(() => import("./pages/admin/hire/HireAnalytics"));
const WafaaManagement = lazy(() => import("./pages/admin/hire/WafaaManagement"));
const CandidateManagement = lazy(() => import("./pages/admin/hire/CandidateManagement"));
const SubscriptionOverview = lazy(() => import("./pages/admin/hire/SubscriptionOverview"));
const EmployerManagement = lazy(() => import("./pages/admin/hire/EmployerManagement"));
const CustomFields = lazy(() => import("./pages/admin/hire/CustomFields"));
const CreateJob = lazy(() => import("./pages/admin/hire/CreateJob"));
const Revenue = lazy(() => import("./pages/crm/Revenue"));
const EmailSignatureGenerator = lazy(() => import("./pages/tools/EmailSignatureGenerator"));
const SignatureManagement = lazy(() => import("./pages/admin/tools/SignatureManagement"));
const SignatureTemplateEditor = lazy(() => import("./pages/admin/tools/SignatureTemplateEditor"));
const ContactSettings = lazy(() => import("./pages/admin/ContactSettings"));
const AIDashboard = lazy(() => import("./pages/admin/ai/AIDashboard"));
const AIKnowledgeBase = lazy(() => import("./pages/admin/ai/AIKnowledgeBase"));
const AISystemPrompts = lazy(() => import("./pages/admin/ai/AISystemPrompts"));
const AIConversations = lazy(() => import("./pages/admin/ai/AIConversations"));
const UnifiedAIPrompts = lazy(() => import("./pages/admin/ai/UnifiedAIPrompts"));
const UnifiedAICampaigns = lazy(() => import("./pages/admin/ai/UnifiedAICampaigns"));
const UnifiedAISessions = lazy(() => import("./pages/admin/ai/UnifiedAISessions"));
const ServiceTaxonomyManager = lazy(() => import("./pages/admin/taxonomy/ServiceTaxonomyManager"));
const BusinessActivityManager = lazy(() => import("./pages/admin/taxonomy/BusinessActivityManager"));

// Create QueryClient instance
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: 60 * 1000,
      retry: 1,
    },
  },
});

// Onboarding disabled - free access for all users
function OnboardingGuard({ children }: { children: React.ReactNode }) {
  return <>{children}</>;
}

function AppWithNotifications() {
  useHireNotifications();
  return null;
}

function ChatWidgetWrapper() {
  const { user } = useAuth();
  const location = useLocation();
  
  // Only show floating widget on authenticated pages except chat/admin pages
  const shouldShowWidget = user && 
    !location.pathname.includes('/messages') &&
    !location.pathname.includes('/admin');
  
  return shouldShowWidget ? <ChatFloatingWidget /> : null;
}

const App = () => (
  <QueryClientProvider client={queryClient}>
    <BrowserRouter>
      <AuthProvider>
        <WorkspaceProvider>
          <SubscriptionProvider>
            <CartProvider>
              <TooltipProvider>
                <div className="min-h-screen bg-muted text-foreground">
                <AppWithNotifications />
                <ChatWidgetWrapper />
                <GlobalAIButton />
                <NetworkStatus />
                <PWAInstallPrompt />
                <Toaster />
                <Sonner />
                <Suspense fallback={<div className="flex min-h-[60vh] items-center justify-center"><Loader2 className="h-5 w-5 animate-spin text-muted-foreground" /></div>}>
                <Routes>
          <Route path="/" element={<OnboardingGuard><Index /></OnboardingGuard>} />
          <Route path="/onboarding" element={<Onboarding />} />
          <Route path="/unified-onboarding" element={<UnifiedOnboarding />} />
          <Route path="/auth" element={<Auth />} />
          <Route path="/login" element={<Login />} />
          <Route path="/.lovable/oauth/consent" element={<OAuthConsent />} />
          <Route path="/forgot-password" element={<ForgotPassword />} />
          <Route path="/reset-password" element={<ResetPassword />} />
          <Route path="/admin-login" element={<AdminLogin />} />
          <Route path="/admin/login" element={<AdminLogin />} />
          <Route path="/about" element={<About />} />
          <Route path="/contact" element={<Contact />} />
          <Route path="/careers" element={<Careers />} />
          <Route path="/blog" element={<Blog />} />
          <Route path="/blog/:slug" element={<BlogPost />} />
          <Route path="/help" element={<Help />} />
          <Route path="/terms" element={<Terms />} />
          <Route path="/privacy" element={<Privacy />} />
          <Route path="/faq" element={<FAQ />} />
          <Route path="/install" element={<Install />} />
          
          {/* Tools - Public Free Tools */}
          <Route path="/tools/email-signature" element={<PublicLayout><EmailSignatureGenerator /></PublicLayout>} />
          
              {/* Next Talent Routes */}
              <Route path="/hire" element={<HireLanding />} />
              <Route path="/hire/:id" element={<HireJobDetail />} />
              <Route path="/hire/profile" element={<ProtectedRoute><CandidateProfile /></ProtectedRoute>} />
              <Route path="/hire/applications" element={<ProtectedRoute><CandidateApplications /></ProtectedRoute>} />
              <Route path="/hire/wafaa" element={<ProtectedRoute><WafaaDashboard /></ProtectedRoute>} />
              
              {/* Employer Routes */}
              <Route path="/hire/employer" element={<ProtectedRoute><HireEmployerDashboard /></ProtectedRoute>} />
              <Route path="/hire/employer/jobs" element={<ProtectedRoute><EmployerJobs /></ProtectedRoute>} />
              <Route path="/hire/employer/jobs/new" element={<ProtectedRoute><PostJobPage /></ProtectedRoute>} />
              <Route path="/hire/employer/applications" element={<ProtectedRoute><EmployerApplications /></ProtectedRoute>} />
              <Route path="/hire/employer/applications/:id" element={<ProtectedRoute><ApplicationDetail /></ProtectedRoute>} />
              <Route path="/hire/employer/jobs/:id/edit" element={<ProtectedRoute><EditJobEmployer /></ProtectedRoute>} />
              <Route path="/hire/employer/register" element={<ProtectedRoute><CompanyRegister /></ProtectedRoute>} />
              <Route path="/hire/employer/verify" element={<ProtectedRoute><CompanyVerification /></ProtectedRoute>} />
              <Route path="/hire/employer/interviews/create" element={<ProtectedRoute><CreateInterview /></ProtectedRoute>} />
              <Route path="/hire/employer/talent-search" element={<ProtectedRoute><TalentSearch /></ProtectedRoute>} />
              <Route path="/hire/employer/pipeline" element={<ProtectedRoute><ATSPipeline /></ProtectedRoute>} />
              <Route path="/hire/employer/team" element={<ProtectedRoute><HireTeamManagement /></ProtectedRoute>} />
              <Route path="/hire/employer/subscription" element={<ProtectedRoute><HireSubscriptionManagement /></ProtectedRoute>} />
              <Route path="/hire/employer/analytics" element={<ProtectedRoute><EmployerAnalytics /></ProtectedRoute>} />
              
              {/* Hire - Public & Candidate Routes */}
              <Route path="/hire/role-selection" element={<HireRoleSelectionPage />} />
              <Route path="/hire/registration/phase-1" element={<ProtectedRoute><CandidateRegistrationPhase1 /></ProtectedRoute>} />
              <Route path="/hire/registration/phase-2" element={<ProtectedRoute><CandidateRegistrationPhase2 /></ProtectedRoute>} />
              <Route path="/hire/candidate/onboarding" element={<ProtectedRoute><CandidateOnboardingPage /></ProtectedRoute>} />
              <Route path="/hire/candidate/dashboard" element={<ProtectedRoute><CandidateDashboard /></ProtectedRoute>} />
              <Route path="/hire/dashboard" element={<ProtectedRoute><CandidateDashboard /></ProtectedRoute>} />
              <Route path="/hire/wafaa" element={<ProtectedRoute><WafaaDashboard /></ProtectedRoute>} />
              <Route path="/hire/messages" element={<ProtectedRoute><HireMessages /></ProtectedRoute>} />
              <Route path="/hire/employer/interviews" element={<ProtectedRoute><InterviewScheduling /></ProtectedRoute>} />
              <Route path="/hire/video-interview/:id" element={<ProtectedRoute><VideoInterview /></ProtectedRoute>} />
              
              {/* Candidate Profile Routes */}
              <Route path="/hire/profile/experience" element={<ProtectedRoute><ProfileExperience /></ProtectedRoute>} />
              <Route path="/hire/profile/education" element={<ProtectedRoute><ProfileEducation /></ProtectedRoute>} />
              <Route path="/hire/profile/documents" element={<ProtectedRoute><ProfileDocuments /></ProtectedRoute>} />
              <Route path="/hire/profile/skills" element={<ProtectedRoute><ProfileSkills /></ProtectedRoute>} />
              <Route path="/hire/saved" element={<ProtectedRoute><SavedJobs /></ProtectedRoute>} />
              <Route path="/hire/recommended" element={<ProtectedRoute><RecommendedJobs /></ProtectedRoute>} />
              
              {/* Public Profile Routes */}
              <Route path="/hire/candidates/:id" element={<CandidatePublicProfile />} />
              <Route path="/hire/companies/:id" element={<CompanyPublicProfile />} />
              
              {/* Legacy job routes */}
              <Route path="/hire/post" element={<ProtectedRoute><PostJob /></ProtectedRoute>} />
              <Route path="/hire/edit/:id" element={<ProtectedRoute><PostJob /></ProtectedRoute>} />
              <Route path="/freelancer/profile" element={<ProtectedRoute><FreelancerProfile /></ProtectedRoute>} />
              <Route path="/freelancer/dashboard" element={<ProtectedRoute><FreelancerDashboard /></ProtectedRoute>} />
              <Route path="/employer/dashboard" element={<ProtectedRoute><EmployerDashboard /></ProtectedRoute>} />
            <Route path="/essentials-marketplace" element={<UnifiedMarketplace />} />
            <Route path="/essentials/ai-assistant" element={<AIAssistantPage />} />
            <Route path="/marketplace-plus" element={<MarketplacePlus />} />
            <Route path="/marketplace-plus/marketplace" element={<MarketplaceHome />} />
            <Route path="/marketplace-plus/products" element={<ProductListing />} />
            <Route path="/marketplace-plus/product/:id" element={<ProductDetail />} />
            <Route path="/marketplace-plus/vendor/:id" element={<VendorStore />} />
            <Route path="/marketplace-plus/store/:slug" element={<VendorStorefront />} />
            <Route path="/marketplace-plus/cart" element={<MarketplaceCart />} />
            <Route path="/marketplace-plus/checkout" element={<Checkout />} />
            <Route path="/marketplace-plus/travel" element={<TravelHome />} />
            <Route path="/marketplace-plus/travel/:category" element={<TravelCategory />} />
            <Route path="/marketplace-plus/travel/product/:id" element={<TravelProductDetail />} />
            <Route path="/marketplace-plus/hotels" element={<HotelSearch />} />
            <Route path="/marketplace-plus/hotel/:hotelCode" element={<HotelDetail />} />
            <Route path="/marketplace-plus/deals" element={<DealsHome />} />
            {/* ServiceDetail removed - consolidated into UniversalServiceDetail */}
<Route path="/contests" element={<Contests />} />
              <Route path="/contests/listing" element={<ContestListing />} />
              <Route path="/contests/:id" element={<ContestDetailPage />} />
              <Route path="/my-contest-entries" element={<ProtectedRoute><MyContestEntries /></ProtectedRoute>} />
              <Route path="/client/portal" element={<ProtectedRoute><ClientPortal /></ProtectedRoute>} />
              
              {/* Next Trade Routes */}
              <Route path="/trade" element={<TradeLanding />} />
              <Route path="/trade/browse" element={<BrowseRFQs />} />
              <Route path="/trade/products" element={<BrowseProducts />} />
              <Route path="/trade/rfq/:id" element={<RFQDetail />} />
              <Route path="/trade/rfq/:id/quote" element={<ProtectedRoute><SubmitQuote /></ProtectedRoute>} />
              <Route path="/trade/quote/:id" element={<QuoteDetail />} />
              <Route path="/trade/order/:id" element={<ProtectedRoute><TradeOrderDetail /></ProtectedRoute>} />
              <Route path="/trade/create-rfq" element={<ProtectedRoute><CreateRFQ /></ProtectedRoute>} />
              <Route path="/trade/buyer-dashboard" element={<ProtectedRoute><BuyerDashboard /></ProtectedRoute>} />
              <Route path="/trade/buyer/dashboard" element={<ProtectedRoute><BuyerDashboard /></ProtectedRoute>} />
              <Route path="/trade/supplier/register" element={<ProtectedRoute><SupplierRegister /></ProtectedRoute>} />
              <Route path="/trade/supplier/dashboard" element={<ProtectedRoute><SupplierDashboard /></ProtectedRoute>} />
              <Route path="/trade/supplier-dashboard" element={<ProtectedRoute><SupplierDashboard /></ProtectedRoute>} />
              <Route path="/trade/supplier/:id" element={<SupplierProfile />} />
              <Route path="/trade/suppliers" element={<BrowseSuppliers />} />
              <Route path="/trade/messages/:rfqId" element={<ProtectedRoute><TradeMessages /></ProtectedRoute>} />
              <Route path="/trade/notifications" element={<ProtectedRoute><TradeNotifications /></ProtectedRoute>} />
              
          <Route path="/cart" element={<Cart />} />
          <Route path="/wishlist" element={<ProtectedRoute><Wishlist /></ProtectedRoute>} />
          <Route path="/payment-success" element={<PaymentSuccess />} />
          <Route path="/payment-cancel" element={<PaymentCancel />} />
              <Route path="/my-orders" element={<MyOrders />} />
              <Route path="/my-sales" element={<MySales />} />
              <Route path="/my-services" element={<MyServices />} />
              <Route path="/order/:id" element={<OrderDetail />} />
              <Route path="/order-confirmation" element={<OrderConfirmation />} />
          {/* Universal Service Detail Routes */}
          <Route path="/service/:id" element={<UniversalServiceDetail />} />
          
          {/* Next Essentials Routes */}
          <Route path="/pro" element={<ProLanding />} />
          <Route path="/pro/investor-connect" element={<InvestorConnect />} />
          <Route path="/pro/seller/onboarding" element={<SellerOnboarding />} />
          <Route path="/pro/vendors/:id" element={<VendorPublicProfile />} />
          
          {/* Pro Compare & Book Routes */}
          <Route path="/pro/compare" element={<CompareLanding />} />
          <Route path="/pro/compare/category/:slug" element={<CompareCategory />} />
          <Route path="/pro/compare/results/:requestId" element={<CompareResults />} />
          <Route path="/pro/compare/booking/:bookingId" element={<ProtectedRoute><BookingConfirmation /></ProtectedRoute>} />
          <Route path="/pro/my-bookings" element={<ProtectedRoute><MyProBookings /></ProtectedRoute>} />
          <Route path="/pro/vendor/onboarding" element={<ProtectedRoute><VendorOnboarding /></ProtectedRoute>} />
          <Route path="/pro/vendor/dashboard" element={<ProtectedRoute><VendorDashboard /></ProtectedRoute>} />
          <Route path="/pro/vendor/services" element={<ProtectedRoute><VendorServices /></ProtectedRoute>} />
          <Route path="/pro/vendor/quotes" element={<ProtectedRoute><VendorQuotes /></ProtectedRoute>} />
          
          {/* Module-Specific Redirects to Universal Route */}
          <Route path="/pro/service/:id" element={<ModuleRedirect />} />
          <Route path="/trade/product/:id" element={<ModuleRedirect />} />
          <Route path="/marketplace/product/:id" element={<ModuleRedirect />} />
          <Route path="/print-studio/service/:id" element={<ModuleRedirect />} />
          <Route path="/fanan/art/:id" element={<ModuleRedirect />} />
          <Route path="/va/service/:id" element={<ModuleRedirect />} />
          
          {/* Legacy Service Detail Route */}
          <Route path="/services/:id" element={<ServiceDetail />} />
          
          <Route path="/learning" element={<Learning />} />
              <Route path="/portfolio" element={<Portfolio />} />
              <Route path="/profile" element={<Profile />} />
              <Route path="/analytics" element={<AnalyticsPage />} />
              <Route path="/dashboard" element={<Dashboard />} />
              <Route path="/messages" element={<Messages />} />
              <Route path="/reviews/:serviceId" element={<Reviews />} />
              <Route path="/import-services" element={<ImportServices />} />
              
              {/* Legacy Service Routes - Redirect to Essentials Marketplace */}
              <Route path="/services/brochures" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/flyers" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/roll-up-banners" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/menu-cards" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/tent-cards" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/tabletop-standees" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/tabletop-signs" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/door-hangers" element={<Navigate to="/essentials-marketplace" replace />} />
              <Route path="/services/danglers" element={<Navigate to="/essentials-marketplace" replace />} />
              
              {/* Redirect old /marketplace to new /essentials-marketplace */}
              <Route path="/marketplace" element={<Navigate to="/essentials-marketplace" replace />} />
              
          {/* Fanan Routes */}
          <Route path="/fanan-order" element={<Navigate to="/fanan/order" replace />} />
          <Route path="/fanan" element={<FananLanding />} />
          <Route path="/fanan/order" element={<FananOrder />} />
          <Route path="/fanan/join" element={<FananJoin />} />
          <Route path="/fanan/artists" element={<BrowseArtists />} />
          <Route path="/fanan/artists/:id" element={<ArtistProfile />} />
          <Route path="/fanan/auth" element={<ArtistAuth />} />
          <Route path="/fanan/artist/dashboard" element={<ProtectedRoute><ArtistDashboard /></ProtectedRoute>} />
          <Route path="/fanan/orders/:id" element={<ProtectedRoute><OrderDetailView /></ProtectedRoute>} />
          <Route path="/fanan/earnings" element={<ProtectedRoute><ArtistEarnings /></ProtectedRoute>} />
          
          {/* Next Essentials - Internal Workforce System */}
          {/* Essentials Landing Page */}
          <Route path="/essentials" element={<EssentialsLanding />} />
          <Route path="/essentials/business-setup-services" element={<Navigate to="/essentials" replace />} />
          {/* Public Career Pages */}
          <Route path="/essentials/careers" element={<EssentialsCareers />} />
          <Route path="/essentials/careers/apply" element={<ProtectedRoute><EssentialsCareersApply /></ProtectedRoute>} />
          <Route path="/essentials/careers/apply/success" element={<ProtectedRoute><EssentialsCareersApplySuccess /></ProtectedRoute>} />
          <Route path="/essentials/careers/status" element={<ProtectedRoute><EssentialsCareersStatus /></ProtectedRoute>} />
          
          {/* Quote Comparison Module */}
          <Route path="/essentials/quote-compare" element={<QuoteCompareLanding />} />
          <Route path="/essentials/quote-compare/new" element={<ProtectedRoute><QuoteCompareWizard /></ProtectedRoute>} />
          <Route path="/essentials/quote-compare/:id/summary" element={<ProtectedRoute><QuoteRequestSummary /></ProtectedRoute>} />
          <Route path="/essentials/quote-compare/:id/quotes" element={<ProtectedRoute><QuoteComparisonView /></ProtectedRoute>} />
          <Route path="/essentials/quote-compare/:id/quotes/:quoteId" element={<ProtectedRoute><QuoteDetailView /></ProtectedRoute>} />
          
          {/* Consultant Directory */}
          <Route path="/consultants" element={<ConsultantDirectory />} />
          <Route path="/consultants/:id" element={<ConsultantPublicProfile />} />
          <Route path="/essentials/consultant/dashboard" element={<ProtectedRoute><ConsultantDashboard /></ProtectedRoute>} />
          <Route path="/essentials/consultant/onboarding" element={<ProtectedRoute><ConsultantOnboarding /></ProtectedRoute>} />
          <Route path="/essentials/consultant/quote/:requestId" element={<ProtectedRoute><ConsultantQuoteBuilder /></ProtectedRoute>} />
          <Route path="/essentials/consultant/settings" element={<ProtectedRoute><ConsultantSettings /></ProtectedRoute>} />
          <Route path="/essentials/consultant/landing-page" element={<ProtectedRoute><ConsultantLandingEditor /></ProtectedRoute>} />
          
          {/* Business Setup Lead Form */}
          <Route path="/essentials/business-setup-form" element={<BusinessSetupFormPage />} />
          <Route path="/essentials/business-setup-form/success" element={<BusinessSetupFormSuccess />} />
          
          {/* Essentials Payment & Cart Pages */}
          <Route path="/essentials/cart" element={<ProtectedRoute><EssentialsCart /></ProtectedRoute>} />
          <Route path="/essentials/payment-success" element={<EssentialsPaymentSuccess />} />
          <Route path="/essentials/payment-cancel" element={<EssentialsPaymentCancel />} />
          
          {/* User Quote Requests Dashboard */}
          <Route path="/dashboard/user/quotes" element={<ProtectedRoute><UserQuotes /></ProtectedRoute>} />
          
          {/* VA Portal - Protected by approval status */}
          <Route path="/essentials/portal/login" element={<EssentialsPortalLogin />} />
          <Route path="/essentials/portal" element={<ProtectedRoute><EssentialsPortalGuard><EssentialsPortal /></EssentialsPortalGuard></ProtectedRoute>} />
          <Route path="/essentials/portal/profile" element={<ProtectedRoute><EssentialsPortalGuard><VAProfile /></EssentialsPortalGuard></ProtectedRoute>} />
          <Route path="/essentials/portal/tasks/:id" element={<ProtectedRoute><EssentialsPortalGuard><TaskDetailView /></EssentialsPortalGuard></ProtectedRoute>} />
          <Route path="/essentials/portal/earnings" element={<ProtectedRoute><EssentialsPortalGuard><VAEarnings /></EssentialsPortalGuard></ProtectedRoute>} />
          
          {/* Legacy VA Routes - Redirect to new Essentials paths */}
          <Route path="/virtual-associate" element={<Navigate to="/essentials/careers" replace />} />
          <Route path="/virtual-associate/:id" element={<VAPublicProfile />} />
          <Route path="/browse-virtual-associates" element={<Navigate to="/essentials/careers" replace />} />
          <Route path="/va/auth" element={<Navigate to="/essentials/portal/login" replace />} />
          <Route path="/va/dashboard" element={<Navigate to="/essentials/portal" replace />} />
          <Route path="/va/profile" element={<Navigate to="/essentials/portal/profile" replace />} />
          <Route path="/va/tasks/:id" element={<Navigate to="/essentials/portal/tasks/:id" replace />} />
          <Route path="/va/earnings" element={<Navigate to="/essentials/portal/earnings" replace />} />
          
          {/* Admin FANAN Routes */}
          <Route path="/admin/fanan" element={<AdminRoute><FananDashboard /></AdminRoute>} />
          <Route path="/admin/fanan/applications" element={<AdminRoute><ArtistApplications /></AdminRoute>} />
          <Route path="/admin/fanan/orders" element={<AdminRoute><OrdersManagement /></AdminRoute>} />
          <Route path="/admin/fanan/analytics" element={<AdminRoute><FananAnalytics /></AdminRoute>} />
          
          {/* Admin VA Routes - Legacy, redirect to Essentials */}
          <Route path="/admin/va" element={<Navigate to="/admin/essentials" replace />} />
          <Route path="/admin/va/applications" element={<Navigate to="/admin/essentials/applications" replace />} />
          <Route path="/admin/va/assignments" element={<AdminRoute><VAAssignments /></AdminRoute>} />
          <Route path="/admin/va/tasks" element={<AdminRoute><TasksManagement /></AdminRoute>} />
          <Route path="/admin/va/analytics" element={<AdminRoute><VAAnalytics /></AdminRoute>} />
          
          {/* Admin Essentials Routes */}
          <Route path="/admin/essentials" element={<AdminRoute><VADashboard /></AdminRoute>} />
          <Route path="/admin/essentials/applications" element={<AdminRoute><VirtualAssociateApplications /></AdminRoute>} />
          <Route path="/admin/essentials/associates" element={<AdminRoute><VAApplications /></AdminRoute>} />
          <Route path="/admin/essentials/assignments" element={<AdminRoute><VAAssignments /></AdminRoute>} />
          <Route path="/admin/essentials/tasks" element={<AdminRoute><TasksManagement /></AdminRoute>} />
          <Route path="/admin/essentials/analytics" element={<AdminRoute><VAAnalytics /></AdminRoute>} />
          
          {/* Admin Payouts */}
          <Route path="/admin/payouts" element={<AdminRoute><PayoutsManagement /></AdminRoute>} />
              
              {/* Admin Routes */}
          <Route path="/admin" element={<AdminRoute><AdminDashboard /></AdminRoute>} />
          <Route path="/admin/hero-cards" element={<AdminRoute><HeroCardsManagement /></AdminRoute>} />
          <Route path="/admin/page-management" element={<AdminRoute><PageManagementOverview /></AdminRoute>} />
          <Route path="/admin/page-management/contact" element={<AdminRoute><ContactSettings /></AdminRoute>} />
          <Route path="/admin/page-management/:moduleKey" element={<AdminRoute><ModulePageEditor /></AdminRoute>} />
          <Route path="/admin/users" element={<AdminRoute><AdminUsers /></AdminRoute>} />
          <Route path="/admin/permissions" element={<AdminRoute><AdminPermissions /></AdminRoute>} />
          <Route path="/admin/crm-workspaces" element={<AdminRoute><WorkspaceManagement /></AdminRoute>} />
          <Route path="/admin/workspaces" element={<Navigate to="/admin/crm-workspaces" replace />} />
          <Route path="/admin/landingi-leads" element={<AdminRoute><LandingiLeads /></AdminRoute>} />
          <Route path="/admin/landingi-leads/test" element={<AdminRoute><LandingiLeadsTesting /></AdminRoute>} />
          <Route path="/admin/erp-integration" element={<AdminRoute><ERPIntegration /></AdminRoute>} />
              <Route path="/admin/services" element={<AdminRoute><AdminServices /></AdminRoute>} />
              {/* Legacy ServiceEditor removed - use /admin/universal-services/edit/:id */}
              <Route path="/admin/categories" element={<AdminRoute><ServiceCategories /></AdminRoute>} />
              
              {/* Next Essentials Admin Routes */}
              <Route path="/admin/pro/investor-connect" element={<AdminRoute><InvestorConnectManagement /></AdminRoute>} />
              <Route path="/admin/pro/sellers" element={<AdminRoute><SellerManagement /></AdminRoute>} />
              <Route path="/admin/pro/sellers/:id" element={<AdminRoute><SellerDetail /></AdminRoute>} />
              <Route path="/admin/pro/service-approvals" element={<AdminRoute><ServiceApprovalQueue /></AdminRoute>} />
              <Route path="/admin/pro/compare-categories" element={<AdminRoute><ProCategoriesManagement /></AdminRoute>} />
              <Route path="/admin/pro/compare-vendors" element={<AdminRoute><ProVendorsManagement /></AdminRoute>} />
              <Route path="/admin/pro/compare-bookings" element={<AdminRoute><ProBookingsManagement /></AdminRoute>} />
              <Route path="/admin/pro/dynamic-fields" element={<AdminRoute><DynamicFieldsBuilder /></AdminRoute>} />
              
              {/* Service Editor Routes - consolidated under /admin/services */}
              <Route path="/admin/services/new" element={<AdminRoute><UniversalServiceEditor /></AdminRoute>} />
              <Route path="/admin/services/edit/:id" element={<AdminRoute><UniversalServiceEditor /></AdminRoute>} />
              <Route path="/admin/services/attributes" element={<AdminRoute><AttributeGroupManager /></AdminRoute>} />
              <Route path="/admin/services/attribute-values" element={<AdminRoute><AttributeValueManager /></AdminRoute>} />
              
              {/* Redirects for legacy universal-services routes */}
              <Route path="/admin/universal-services" element={<Navigate to="/admin/services" replace />} />
              <Route path="/admin/universal-services/new" element={<Navigate to="/admin/services/new" replace />} />
              <Route path="/admin/universal-services/edit/:id" element={<UniversalServiceEditRedirect />} />
              
              {/* Taxonomy Management Routes */}
              <Route path="/admin/taxonomy/services" element={<AdminRoute><ServiceTaxonomyManager /></AdminRoute>} />
              <Route path="/admin/taxonomy/activities" element={<AdminRoute><BusinessActivityManager /></AdminRoute>} />
              
              <Route path="/admin/virtual-associate/applications" element={<AdminRoute><VirtualAssociateApplications /></AdminRoute>} />
              <Route path="/admin/service-orders" element={<AdminRoute><ServiceOrders /></AdminRoute>} />
              
              {/* Essentials Admin Routes */}
              <Route path="/admin/essentials/quotes" element={<AdminRoute><AdminQuotesManagement /></AdminRoute>} />
              <Route path="/admin/essentials/consultants" element={<AdminRoute><AdminConsultantsManagement /></AdminRoute>} />
              <Route path="/admin/essentials/products" element={<AdminRoute><ProductsAdmin /></AdminRoute>} />
              <Route path="/admin/essentials/pricing-benchmarks" element={<AdminRoute><PricingBenchmarksAdmin /></AdminRoute>} />
              <Route path="/admin/essentials/packages" element={<AdminRoute><PackagesAdmin /></AdminRoute>} />
              <Route path="/admin/essentials/leads" element={<AdminRoute><BusinessSetupLeadsAdmin /></AdminRoute>} />
              
              <Route path="/admin/orders" element={<AdminRoute><AdminOrders /></AdminRoute>} />
              <Route path="/admin/orders/:id" element={<AdminRoute><AdminOrderDetail /></AdminRoute>} />
              <Route path="/admin/analytics" element={<AdminRoute><AdminAnalytics /></AdminRoute>} />
              <Route path="/admin/settings" element={<AdminRoute><AdminSettings /></AdminRoute>} />
              <Route path="/admin/reviews" element={<AdminRoute><AdminReviews /></AdminRoute>} />
              <Route path="/admin/verifications" element={<AdminRoute><AdminVerifications /></AdminRoute>} />
              <Route path="/admin/audit" element={<AdminRoute><AdminAuditLogs /></AdminRoute>} />
              <Route path="/admin/communication" element={<AdminRoute><AdminCommunication /></AdminRoute>} />
              <Route path="/admin/payments" element={<AdminRoute><AdminPayments /></AdminRoute>} />
              <Route path="/admin/points" element={<AdminRoute><AdminPoints /></AdminRoute>} />
              <Route path="/admin/wafaa" element={<AdminRoute><AdminWafaa /></AdminRoute>} />
              <Route path="/admin/media-library" element={<AdminRoute><AdminMediaLibraryPage /></AdminRoute>} />
              <Route path="/admin/broadcast-notifications" element={<AdminRoute><BroadcastNotifications /></AdminRoute>} />
              <Route path="/admin/stripe" element={<AdminRoute><StripeIntegration /></AdminRoute>} />
              <Route path="/admin/subscriptions" element={<AdminRoute><AdminSubscriptions /></AdminRoute>} />
              <Route path="/admin/portfolio" element={<AdminRoute><AdminPortfolio /></AdminRoute>} />
              <Route path="/admin/notifications" element={<AdminRoute><AdminNotifications /></AdminRoute>} />
              <Route path="/admin/hero-stats" element={<AdminRoute><AdminHeroStats /></AdminRoute>} />
              <Route path="/admin/forms" element={<AdminRoute><AdminForms /></AdminRoute>} />
              <Route path="/admin/forms/onboarding" element={<AdminRoute><OnboardingFormManagement /></AdminRoute>} />
              <Route path="/admin/coupons" element={<AdminRoute><AdminCoupons /></AdminRoute>} />
              <Route path="/admin/campaigns" element={<AdminRoute><AdminCampaigns /></AdminRoute>} />
              <Route path="/admin/campaigns/placements" element={<AdminRoute><PlacementsManager /></AdminRoute>} />
              <Route path="/admin/campaigns/coupons" element={<AdminRoute><CouponsManager /></AdminRoute>} />
              <Route path="/admin/campaigns/raffles" element={<AdminRoute><RafflesManager /></AdminRoute>} />
              <Route path="/admin/campaigns/analytics" element={<AdminRoute><AnalyticsDashboard /></AdminRoute>} />
              <Route path="/admin/campaigns/permissions" element={<AdminRoute><PermissionsManager /></AdminRoute>} />
              
              {/* Admin Contest Routes */}
              <Route path="/admin/contests" element={<AdminRoute><ContestManagement /></AdminRoute>} />
              <Route path="/admin/contests/new" element={<AdminRoute><ContestEditor /></AdminRoute>} />
              <Route path="/admin/contests/:id" element={<AdminRoute><ContestDetail /></AdminRoute>} />
              <Route path="/admin/contests/edit/:id" element={<AdminRoute><ContestEditor /></AdminRoute>} />
              <Route path="/admin/contests/categories" element={<AdminRoute><ContestCategoryManagement /></AdminRoute>} />
              <Route path="/admin/contests/templates" element={<AdminRoute><ContestTemplates /></AdminRoute>} />
              
              {/* Banner Management Routes */}
              <Route path="/admin/banners" element={<AdminRoute><BannerManagement /></AdminRoute>} />
              <Route path="/admin/banners/new" element={<AdminRoute><BannerEditor /></AdminRoute>} />
              <Route path="/admin/banners/edit/:id" element={<AdminRoute><BannerEditor /></AdminRoute>} />
              
              <Route path="/admin/module-permissions" element={<AdminRoute><ModulePermissionRepair /></AdminRoute>} />
              
              {/* CMS Routes */}
              <Route path="/admin/cms/pages" element={<AdminRoute><CMSPages /></AdminRoute>} />
              <Route path="/admin/cms/pages/new" element={<AdminRoute><PageEditor /></AdminRoute>} />
              <Route path="/admin/cms/pages/edit/:id" element={<AdminRoute><PageEditor /></AdminRoute>} />
              <Route path="/admin/cms/blog" element={<AdminRoute><BlogManagement /></AdminRoute>} />
              <Route path="/admin/cms/navigation" element={<AdminRoute><NavigationManager /></AdminRoute>} />
              <Route path="/admin/cms/blocks" element={<AdminRoute><ContentBlocks /></AdminRoute>} />
              <Route path="/admin/cms/media" element={<AdminRoute><MediaLibrary /></AdminRoute>} />
              <Route path="/admin/cms/seo" element={<AdminRoute><SEOSettings /></AdminRoute>} />
              <Route path="/admin/cms/marketing" element={<AdminRoute><Marketing /></AdminRoute>} />
              <Route path="/admin/cms/templates" element={<AdminRoute><MessageTemplates /></AdminRoute>} />
              <Route path="/admin/cms/rewards" element={<AdminRoute><RewardsManagement /></AdminRoute>} />
              <Route path="/admin/cms/modules" element={<AdminRoute><ModulesManagement /></AdminRoute>} />
              <Route path="/admin/dock-components" element={<AdminRoute><DockComponents /></AdminRoute>} />
              
              {/* Testing & Developer Tools */}
              <Route path="/admin/tools/test-utilities" element={<AdminRoute><TestUtilities /></AdminRoute>} />
              {/* AI Assistant Admin Routes */}
              <Route path="/admin/ai/dashboard" element={<AdminRoute><AIDashboard /></AdminRoute>} />
              <Route path="/admin/ai/knowledge-base" element={<AdminRoute><AIKnowledgeBase /></AdminRoute>} />
              <Route path="/admin/ai/prompts" element={<AdminRoute><AISystemPrompts /></AdminRoute>} />
              <Route path="/admin/ai/conversations" element={<AdminRoute><AIConversations /></AdminRoute>} />
              <Route path="/admin/ai/unified-prompts" element={<AdminRoute><UnifiedAIPrompts /></AdminRoute>} />
              <Route path="/admin/ai/unified-campaigns" element={<AdminRoute><UnifiedAICampaigns /></AdminRoute>} />
              <Route path="/admin/ai/unified-sessions" element={<AdminRoute><UnifiedAISessions /></AdminRoute>} />
              
              {/* Finance & HR Routes */}
              <Route path="/admin/finance/customers" element={<AdminRoute><FinanceCustomers /></AdminRoute>} />
              <Route path="/admin/finance/templates" element={<AdminRoute><FinanceTemplates /></AdminRoute>} />
              <Route path="/admin/finance/invoices" element={<AdminRoute><FinanceInvoices /></AdminRoute>} />
              <Route path="/admin/finance/letterheads" element={<AdminRoute><FinanceLetterheads /></AdminRoute>} />
              <Route path="/admin/finance/documents" element={<AdminRoute><FinanceDocuments /></AdminRoute>} />
              
              {/* Home Page Builder Routes */}
              <Route path="/admin/home-builder" element={<AdminRoute><HomePageDashboard /></AdminRoute>} />
              <Route path="/admin/home-builder/edit/:id" element={<AdminRoute><HomePageBuilder /></AdminRoute>} />
              
              {/* Integrations Routes */}
              <Route path="/admin/integrations/google-workspace" element={<AdminRoute><GoogleWorkspaceAdmin /></AdminRoute>} />
              
              {/* Tools Admin Routes */}
              <Route path="/admin/tools/email-signatures" element={<AdminRoute><SignatureManagement /></AdminRoute>} />
              <Route path="/admin/tools/email-signatures/new" element={<AdminRoute><SignatureTemplateEditor /></AdminRoute>} />
              <Route path="/admin/tools/email-signatures/edit/:id" element={<AdminRoute><SignatureTemplateEditor /></AdminRoute>} />
              
          {/* Marketplace Admin Routes */}
          <Route path="/admin/marketplace/products" element={<AdminRoute><MarketplaceProducts /></AdminRoute>} />
          <Route path="/admin/marketplace/vendors" element={<AdminRoute><MarketplaceVendors /></AdminRoute>} />
          <Route path="/admin/marketplace/orders" element={<AdminRoute><MarketplaceOrders /></AdminRoute>} />
          
          {/* Travel Admin Routes */}
          <Route path="/admin/travel/bookings" element={<AdminRoute><TravelBookings /></AdminRoute>} />
          <Route path="/admin/travel/hotels" element={<AdminRoute><TravelHotels /></AdminRoute>} />
          <Route path="/admin/travel/experiences" element={<AdminRoute><TravelExperiences /></AdminRoute>} />
          <Route path="/admin/travel/partners" element={<AdminRoute><TravelPartners /></AdminRoute>} />
          
          {/* Deals Admin Routes */}
          <Route path="/admin/deals" element={<AdminRoute><DealsAdmin /></AdminRoute>} />
          <Route path="/admin/deals/redemptions" element={<AdminRoute><RedemptionsAdmin /></AdminRoute>} />
          
              {/* Trade Admin Routes */}
              <Route path="/admin/trade/products" element={<AdminRoute><ProductsDashboard /></AdminRoute>} />
              <Route path="/admin/trade/suppliers" element={<AdminRoute><SupplierManagement /></AdminRoute>} />
              <Route path="/admin/trade/rfqs" element={<AdminRoute><RFQMonitoring /></AdminRoute>} />
              <Route path="/admin/trade/analytics" element={<AdminRoute><TradeAnalytics /></AdminRoute>} />
              <Route path="/admin/trade/categories" element={<AdminRoute><CategoryManagement /></AdminRoute>} />
              <Route path="/admin/trade/import-products" element={<AdminRoute><ImportTradeProducts /></AdminRoute>} />
              
              <Route path="/admin/hire/jobs" element={<AdminRoute><HireJobApprovals /></AdminRoute>} />
              <Route path="/admin/hire/jobs/all" element={<AdminRoute><JobsManagement /></AdminRoute>} />
              <Route path="/admin/hire/jobs/:id/edit" element={<AdminRoute><EditJobAdmin /></AdminRoute>} />
              <Route path="/admin/hire/jobs/create" element={<AdminRoute><CreateJob /></AdminRoute>} />
              <Route path="/admin/hire/applications" element={<AdminRoute><ApplicationsManagement /></AdminRoute>} />
              <Route path="/admin/hire/interviews" element={<AdminRoute><InterviewsManagement /></AdminRoute>} />
              <Route path="/admin/hire/companies" element={<AdminRoute><HireCompanyVerification /></AdminRoute>} />
              <Route path="/admin/hire/company-members" element={<AdminRoute><CompanyMembersManagement /></AdminRoute>} />
              <Route path="/admin/hire/scorecards" element={<AdminRoute><ScorecardsManagement /></AdminRoute>} />
              <Route path="/admin/hire/application-notes" element={<AdminRoute><ApplicationNotesManagement /></AdminRoute>} />
              <Route path="/admin/hire/recommendations" element={<AdminRoute><RecommendationsManagement /></AdminRoute>} />
              
              {/* Marketplace+ Admin Routes */}
              <Route path="/admin/marketplace/products" element={<AdminRoute><AdminMarketplaceProducts /></AdminRoute>} />
              <Route path="/admin/marketplace/vendors" element={<AdminRoute><AdminMarketplaceVendors /></AdminRoute>} />
              <Route path="/admin/marketplace/orders" element={<AdminRoute><AdminMarketplaceOrders /></AdminRoute>} />
              <Route path="/admin/hire/notifications" element={<AdminRoute><NotificationsManagement /></AdminRoute>} />
              <Route path="/admin/hire/email-queue" element={<AdminRoute><EmailQueueManagement /></AdminRoute>} />
              <Route path="/admin/hire/saved-jobs" element={<AdminRoute><SavedJobsManagement /></AdminRoute>} />
              <Route path="/admin/hire/conversations" element={<AdminRoute><ConversationsManagement /></AdminRoute>} />
              <Route path="/admin/hire/assessments" element={<AdminRoute><AssessmentsManagement /></AdminRoute>} />
              <Route path="/admin/hire/reference-checks" element={<AdminRoute><ReferenceChecksManagement /></AdminRoute>} />
              <Route path="/hire/assessment/:assessmentId/:templateId/:applicationId" element={<TakeAssessmentPage />} />
              <Route path="/hire/reference-response" element={<ReferenceResponse />} />
              <Route path="/hire/interview/:interviewId" element={<VideoInterview />} />
              <Route path="/admin/hire/candidates" element={<AdminRoute><CandidateManagement /></AdminRoute>} />
              <Route path="/admin/hire/employers" element={<AdminRoute><EmployerManagement /></AdminRoute>} />
              <Route path="/admin/hire/custom-fields" element={<AdminRoute><CustomFields /></AdminRoute>} />
              <Route path="/admin/hire/subscriptions" element={<AdminRoute><SubscriptionOverview /></AdminRoute>} />
              <Route path="/admin/hire/analytics" element={<AdminRoute><HireAnalytics /></AdminRoute>} />
              <Route path="/admin/hire/wafaa" element={<AdminRoute><WafaaManagement /></AdminRoute>} />
              
                {/* CRM Routes */}
                <Route path="/crm" element={<ProtectedRoute><CRMLandingPage /></ProtectedRoute>} />
                <Route path="/crm/workspace-setup" element={<ProtectedRoute><WorkspaceSetup /></ProtectedRoute>} />
              <Route path="/crm/dashboard" element={<ProtectedRoute><CRMWorkspaceGuard><CRMDashboard /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/leads" element={<ProtectedRoute><CRMWorkspaceGuard><CRMLeads /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/leads/new" element={<ProtectedRoute><CRMWorkspaceGuard><NewLead /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/leads/:id" element={<ProtectedRoute><CRMWorkspaceGuard><LeadDetail /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/leads/:id/edit" element={<ProtectedRoute><CRMWorkspaceGuard><NewLead /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/messages" element={<ProtectedRoute><CRMWorkspaceGuard><CRMMessages /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/team" element={<ProtectedRoute><CRMWorkspaceGuard><TeamManagement /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/pipeline" element={<ProtectedRoute><CRMWorkspaceGuard><Pipeline /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/tasks" element={<ProtectedRoute><CRMWorkspaceGuard><Tasks /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/calendar" element={<ProtectedRoute><CRMWorkspaceGuard><CRMCalendar /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/reports" element={<ProtectedRoute><CRMWorkspaceGuard><CRMReports /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/analytics" element={<ProtectedRoute><CRMWorkspaceGuard><WorkspaceAnalytics /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/settings" element={<ProtectedRoute><CRMWorkspaceGuard><CRMSettings /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/whatsapp" element={<ProtectedRoute><CRMWorkspaceGuard><CRMWhatsApp /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/attendance" element={<ProtectedRoute><CRMWorkspaceGuard><Attendance /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/leave-requests" element={<ProtectedRoute><CRMWorkspaceGuard><LeaveRequests /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/team-attendance" element={<ProtectedRoute><CRMWorkspaceGuard><TeamAttendance /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/subscription" element={<ProtectedRoute><CRMWorkspaceGuard><CRMSubscription /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/revenue" element={<ProtectedRoute><CRMWorkspaceGuard><Revenue /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/quotes" element={<ProtectedRoute><CRMWorkspaceGuard><Quotes /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/quotes/new" element={<ProtectedRoute><CRMWorkspaceGuard><NewQuote /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/quotes/:id" element={<ProtectedRoute><CRMWorkspaceGuard><QuoteView /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/invoices" element={<ProtectedRoute><CRMWorkspaceGuard><Invoices /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/invoices/new" element={<ProtectedRoute><CRMWorkspaceGuard><NewInvoice /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/revenue-forecast" element={<ProtectedRoute><CRMWorkspaceGuard><RevenueForecast /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/lead-scoring" element={<ProtectedRoute><CRMWorkspaceGuard><LeadScoring /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/payment-tracking" element={<ProtectedRoute><CRMWorkspaceGuard><PaymentTracking /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/templates" element={<ProtectedRoute><CRMWorkspaceGuard><TemplateGallery /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/recurring-invoices" element={<ProtectedRoute><CRMWorkspaceGuard><RecurringInvoices /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/invoice-payment/:id" element={<InvoicePayment />} />
              
              {/* CRM Catalog Routes */}
              <Route path="/crm/products" element={<ProtectedRoute><CRMWorkspaceGuard><ProductsList /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/promotions" element={<ProtectedRoute><CRMWorkspaceGuard><PromotionsList /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/promotions/new" element={<ProtectedRoute><CRMWorkspaceGuard><NewPromotion /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/promotions/:id" element={<ProtectedRoute><CRMWorkspaceGuard><PromotionDetail /></CRMWorkspaceGuard></ProtectedRoute>} />
              <Route path="/crm/resources" element={<ProtectedRoute><CRMWorkspaceGuard><ResourcesLibrary /></CRMWorkspaceGuard></ProtectedRoute>} />
              
              {/* CRM Tools Routes */}
              <Route path="/crm/email-signature" element={<ProtectedRoute><CRMWorkspaceGuard><EmailSignature /></CRMWorkspaceGuard></ProtectedRoute>} />
              
              
              {/* Design Studio User Routes */}
              <Route path="/design-studio" element={<ProtectedRoute><DesignStudioLayout><DesignDashboard /></DesignStudioLayout></ProtectedRoute>} />
              <Route path="/design-studio/create" element={<ProtectedRoute><DesignStudioLayout><CreateDesign /></DesignStudioLayout></ProtectedRoute>} />
              <Route path="/design-studio/designs" element={<ProtectedRoute><DesignStudioLayout><MyDesigns /></DesignStudioLayout></ProtectedRoute>} />
              <Route path="/design-studio/brand-kit" element={<ProtectedRoute><DesignStudioLayout><BrandKit /></DesignStudioLayout></ProtectedRoute>} />
              <Route path="/design-studio/qr-card" element={<ProtectedRoute><DesignStudioLayout><QRBusinessCard /></DesignStudioLayout></ProtectedRoute>} />
              <Route path="/design-studio/billing" element={<ProtectedRoute><DesignStudioLayout><DesignBilling /></DesignStudioLayout></ProtectedRoute>} />
              
               {/* Design Studio Admin Routes */}
              <Route path="/admin/design-studio" element={<AdminRoute><AdminDesignDashboard /></AdminRoute>} />
              <Route path="/admin/design-studio/templates" element={<AdminRoute><TemplateManager /></AdminRoute>} />
              <Route path="/admin/design-studio/builder" element={<AdminRoute><TemplateBuilder /></AdminRoute>} />
              <Route path="/admin/design-studio/builder/:id" element={<AdminRoute><TemplateBuilder /></AdminRoute>} />
              
              {/* CMS System Routes */}
              <Route path="/admin/cms/page-manager" element={<AdminRoute><UnifiedPageManager /></AdminRoute>} />
              <Route path="/admin/cms/sections" element={<AdminRoute><SectionBuilder /></AdminRoute>} />
              <Route path="/admin/cms/cards" element={<AdminRoute><CardManager /></AdminRoute>} />
              <Route path="/admin/cms/components" element={<AdminRoute><ComponentManager /></AdminRoute>} />
              <Route path="/admin/cms/component-library" element={<AdminRoute><ComponentLibrary /></AdminRoute>} />
              <Route path="/admin/cms/data-sources" element={<AdminRoute><DataSourceManager /></AdminRoute>} />
              <Route path="/admin/cms/theme" element={<AdminRoute><ThemeEngine /></AdminRoute>} />
              <Route path="/admin/cms/audit-logs" element={<AdminRoute><AuditLogViewer /></AdminRoute>} />
              
              {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */}
              <Route path="*" element={<NotFound />} />
               </Routes>
               </Suspense>
              {/* Mobile bottom nav is rendered by each layout (PublicLayout, TalentLayout, ...) */}
                </div>
            </TooltipProvider>
          </CartProvider>
          </SubscriptionProvider>
        </WorkspaceProvider>
      </AuthProvider>
    </BrowserRouter>
  </QueryClientProvider>
);

export default App;
