diff --git a/web/app/(app)/dashboard/account/billing/page.tsx b/web/app/(app)/dashboard/account/billing/page.tsx
new file mode 100644
index 0000000..3f54cb7
--- /dev/null
+++ b/web/app/(app)/dashboard/account/billing/page.tsx
@@ -0,0 +1,10 @@
+import SubscriptionInfo from '../../(components)/subscription-info'
+
+// Billing & plan: current subscription, usage limits and plan CTAs.
+export default function BillingPage() {
+ return (
+
+
+
+ )
+}
diff --git a/web/app/(app)/dashboard/account/change-password/page.tsx b/web/app/(app)/dashboard/account/change-password/page.tsx
index bcc558f..05a6e98 100644
--- a/web/app/(app)/dashboard/account/change-password/page.tsx
+++ b/web/app/(app)/dashboard/account/change-password/page.tsx
@@ -1,29 +1,6 @@
-import { ShieldIcon } from 'lucide-react'
-import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
-import ChangePasswordForm from '../../(components)/change-password-form'
+import { redirect } from 'next/navigation'
+// Legacy route: password management now lives in Account > Security.
export default function ChangePasswordPage() {
- return (
-
-
-
-
-
Change Password
-
-
Update your account password
-
-
-
-
-
- Password Security
- Change your password to keep your account secure
-
-
-
-
-
-
-
- )
-}
\ No newline at end of file
+ redirect('/dashboard/account/security')
+}
diff --git a/web/app/(app)/dashboard/account/delete-account/page.tsx b/web/app/(app)/dashboard/account/delete-account/page.tsx
index bd8be6e..cb1c75a 100644
--- a/web/app/(app)/dashboard/account/delete-account/page.tsx
+++ b/web/app/(app)/dashboard/account/delete-account/page.tsx
@@ -1,34 +1,6 @@
-import { AlertTriangleIcon } from 'lucide-react'
-import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
-import DeleteAccountForm from '../../(components)/delete-account-form'
+import { redirect } from 'next/navigation'
-export default function DangerZonePage() {
- return (
-
-
-
-
-
Danger Zone
-
-
Manage critical account actions
-
-
-
-
-
-
-
- Delete Account
-
-
- Permanently delete your account and all associated data
-
-
-
-
-
-
-
-
- )
-}
\ No newline at end of file
+// Legacy route: account deletion now lives in Account > Security (danger zone).
+export default function DeleteAccountPage() {
+ redirect('/dashboard/account/security')
+}
diff --git a/web/app/(app)/dashboard/account/edit-profile/page.tsx b/web/app/(app)/dashboard/account/edit-profile/page.tsx
index 76c6f7e..351a698 100644
--- a/web/app/(app)/dashboard/account/edit-profile/page.tsx
+++ b/web/app/(app)/dashboard/account/edit-profile/page.tsx
@@ -1,29 +1,6 @@
-import { UserIcon } from 'lucide-react'
-import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
-import EditProfileForm from '../../(components)/edit-profile-form'
+import { redirect } from 'next/navigation'
+// Legacy route: profile editing now lives in the merged account settings.
export default function EditProfilePage() {
- return (
-
-
-
-
-
Edit Profile
-
-
Update your profile information
-
-
-
-
-
- Profile Information
- Update your personal details
-
-
-
-
-
-
-
- )
-}
\ No newline at end of file
+ redirect('/dashboard/account/profile')
+}
diff --git a/web/app/(app)/dashboard/account/get-support/page.tsx b/web/app/(app)/dashboard/account/get-support/page.tsx
index e40df96..a64cc7f 100644
--- a/web/app/(app)/dashboard/account/get-support/page.tsx
+++ b/web/app/(app)/dashboard/account/get-support/page.tsx
@@ -1,29 +1,6 @@
-import { MessageSquareIcon } from 'lucide-react'
-import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'
-import SupportForm from '../../(components)/support-form'
+import { redirect } from 'next/navigation'
+// Legacy route: support now lives in Account > Support.
export default function GetSupportPage() {
- return (
-
-
-
-
-
Get Support
-
-
Contact our support team for assistance
-
-
-
-
-
- Contact Support
- Fill out the form below and we'll get back to you as soon as possible.
-
-
-
-
-
-
-
- )
-}
\ No newline at end of file
+ redirect('/dashboard/account/support')
+}
diff --git a/web/app/(app)/dashboard/account/layout.tsx b/web/app/(app)/dashboard/account/layout.tsx
new file mode 100644
index 0000000..a0ca9af
--- /dev/null
+++ b/web/app/(app)/dashboard/account/layout.tsx
@@ -0,0 +1,36 @@
+import type { PropsWithChildren } from 'react'
+import { UserIcon } from 'lucide-react'
+import RouteTabs from '@/components/shared/route-tabs'
+
+// Account is one settings experience: sections are route-based tabs (same
+// interaction grammar as messaging/webhooks), Billing first since the
+// subscription is the most-visited account content.
+export default function AccountLayout({ children }: PropsWithChildren) {
+ return (
+
+
+
+
+
+ Account
+
+
+
+ Manage your subscription, profile and security
+
+
+
+
+
+ {children}
+
+ )
+}
diff --git a/web/app/(app)/dashboard/account/page.tsx b/web/app/(app)/dashboard/account/page.tsx
index 70c94de..ea89cdb 100644
--- a/web/app/(app)/dashboard/account/page.tsx
+++ b/web/app/(app)/dashboard/account/page.tsx
@@ -1,95 +1,6 @@
-import { UserIcon, PencilIcon, KeyIcon, AlertTriangleIcon, MessageSquareIcon } from 'lucide-react'
-import SubscriptionInfo from '../(components)/subscription-info'
-import { Button } from '@/components/ui/button'
-import Link from 'next/link'
+import { redirect } from 'next/navigation'
+// Account is a settings section with subroutes; Billing is the default view.
export default function AccountPage() {
- return (
-
-
-
-
-
Account
-
-
Manage your account settings and preferences
-
-
-
- {/* Left column - Subscription Information */}
-