diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx
index e4567a2..56d819c 100644
--- a/src/components/Layout.tsx
+++ b/src/components/Layout.tsx
@@ -344,44 +344,53 @@ function MobileNav({
{/* CUSTOM: 3 middle tabs */}
{resolvedMiddle.map((tab, i) => renderTab(tab, `mid-${tab.id}-${i}`))}
- {/* FIXED: Profile / Login tab — always lands on Settings root */}
- {
- e.preventDefault();
- onCustomize();
- }}
- className={cn(
- 'relative flex flex-col items-center justify-center gap-0.5 py-1.5 px-1 rounded-xl transition-all duration-150 flex-1 touch-manipulation active:scale-90',
- isActive('/settings') ? 'text-[#ff0040]' : 'text-gray-500'
- )}
- >
- {isActive('/settings') && (
-
- )}
- {isLoggedIn && userPubkey ? (
-
-
-
-
- {(userName || '??').slice(0, 2).toUpperCase()}
-
-
-
-
- ) : (
-
- )}
-
- {isLoggedIn ? 'Profile' : 'Log In'}
-
-
+ {/* FIXED: Profile / Login tab.
+ Logged in → your public profile (View Profile).
+ Logged out → Settings (login lives there).
+ Long-press / right-click still opens nav customization. */}
+ {(() => {
+ const profileHref = isLoggedIn && userPubkey ? `/${nip19.npubEncode(userPubkey)}` : '/settings';
+ const tabActive = isActive(profileHref);
+ return (
+ {
+ e.preventDefault();
+ onCustomize();
+ }}
+ className={cn(
+ 'relative flex flex-col items-center justify-center gap-0.5 py-1.5 px-1 rounded-xl transition-all duration-150 flex-1 touch-manipulation active:scale-90',
+ tabActive ? 'text-[#ff0040]' : 'text-gray-500'
+ )}
+ >
+ {tabActive && (
+
+ )}
+ {isLoggedIn && userPubkey ? (
+
+
+
+
+ {(userName || '??').slice(0, 2).toUpperCase()}
+
+
+
+
+ ) : (
+
+ )}
+
+ {isLoggedIn ? 'Profile' : 'Log In'}
+
+
+ );
+ })()}