diff --git a/.gitignore b/.gitignore
index 7f57002d22..85711510b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,6 +29,10 @@ npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
+.codex-next-dev-*.log
+
+# local browser automation artifacts
+.claude-playwright/
# env files (can opt-in for committing if needed)
.env*
diff --git a/messages/en.json b/messages/en.json
index a3dd25ff20..62c72e6c9f 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -15,7 +15,8 @@
"createAccount": "Create account"
},
"Sidebar": {
- "title": "CRM Template for WhatsApp",
+ "title": "Decizyon CRM",
+ "operationalCommand": "Operational command",
"dashboard": "Dashboard",
"inbox": "Inbox",
"notifications": "Notifications",
diff --git a/messages/ko.json b/messages/ko.json
index 7c54fc939e..b34a89bb99 100644
--- a/messages/ko.json
+++ b/messages/ko.json
@@ -15,7 +15,8 @@
"createAccount": "계정 만들기"
},
"Sidebar": {
- "title": "WhatsApp용 CRM 템플릿",
+ "title": "Decizyon CRM",
+ "operationalCommand": "운영 커맨드",
"dashboard": "대시보드",
"inbox": "인박스",
"notifications": "알림",
diff --git a/public/brand/decizyon-icon.png b/public/brand/decizyon-icon.png
new file mode 100644
index 0000000000..3ebda7c660
Binary files /dev/null and b/public/brand/decizyon-icon.png differ
diff --git a/public/brand/decizyon-tech-logo.png b/public/brand/decizyon-tech-logo.png
new file mode 100644
index 0000000000..07e6644fcc
Binary files /dev/null and b/public/brand/decizyon-tech-logo.png differ
diff --git a/src/app/(auth)/forgot-password/page.tsx b/src/app/(auth)/forgot-password/page.tsx
index d2a1784fb7..82bb6b317c 100644
--- a/src/app/(auth)/forgot-password/page.tsx
+++ b/src/app/(auth)/forgot-password/page.tsx
@@ -1,6 +1,7 @@
"use client";
import { useState } from "react";
+import Image from "next/image";
import Link from "next/link";
import { createClient } from "@/lib/supabase/client";
import { Button } from "@/components/ui/button";
@@ -13,7 +14,7 @@ import {
CardHeader,
CardTitle,
} from "@/components/ui/card";
-import { MessageSquare, CheckCircle, ArrowLeft } from "lucide-react";
+import { CheckCircle, ArrowLeft } from "lucide-react";
export default function ForgotPasswordPage() {
const [email, setEmail] = useState("");
@@ -77,10 +78,16 @@ export default function ForgotPasswordPage() {
-
-
+
+
- Reset password
+ Reset password
Enter your email and we'll send you a reset link
diff --git a/src/app/(auth)/login/page.tsx b/src/app/(auth)/login/page.tsx
index abef3c2d39..cfe4bf12e9 100644
--- a/src/app/(auth)/login/page.tsx
+++ b/src/app/(auth)/login/page.tsx
@@ -2,6 +2,7 @@
import { Suspense, useState } from "react";
import { useSearchParams } from "next/navigation";
+import Image from "next/image";
import Link from "next/link";
import { useTranslations } from "next-intl";
import { createClient } from "@/lib/supabase/client";
@@ -15,7 +16,7 @@ import {
CardHeader,
CardTitle,
} from "@/components/ui/card";
-import { MessageSquare, UsersRound } from "lucide-react";
+import { UsersRound } from "lucide-react";
// `useSearchParams` opts the component out of static prerendering
// unless it sits under a Suspense boundary. We split the form into
@@ -78,14 +79,20 @@ function LoginPageInner() {
-
+
{inviteToken ? (
) : (
-
+
)}
-
+
{inviteToken ? t('titleAccept') : t('titleWelcome')}
diff --git a/src/app/(auth)/signup/page.tsx b/src/app/(auth)/signup/page.tsx
index 56985cdb2f..42092d2056 100644
--- a/src/app/(auth)/signup/page.tsx
+++ b/src/app/(auth)/signup/page.tsx
@@ -1,6 +1,7 @@
"use client";
import { Suspense, useState } from "react";
+import Image from "next/image";
import Link from "next/link";
import { useSearchParams } from "next/navigation";
import { createClient } from "@/lib/supabase/client";
@@ -14,7 +15,7 @@ import {
CardHeader,
CardTitle,
} from "@/components/ui/card";
-import { MessageSquare, CheckCircle, UsersRound } from "lucide-react";
+import { CheckCircle, UsersRound } from "lucide-react";
// `useSearchParams` opts the component out of static prerendering
// unless wrapped in Suspense — same pattern as /login.
@@ -131,14 +132,20 @@ function SignupPageInner() {
diff --git a/src/components/layout/sidebar.tsx b/src/components/layout/sidebar.tsx
index 5db7488056..f0ceeec574 100644
--- a/src/components/layout/sidebar.tsx
+++ b/src/components/layout/sidebar.tsx
@@ -1,6 +1,7 @@
"use client";
import Link from "next/link";
+import Image from "next/image";
import { usePathname } from "next/navigation";
import { useEffect } from "react";
import { cn } from "@/lib/utils";
@@ -188,12 +189,23 @@ export function Sidebar({ open = false, onClose }: SidebarProps) {
close button is hidden since the sidebar is always-visible. */}