diff --git a/.Jules/palette.md b/.Jules/palette.md
new file mode 100644
index 0000000..cea7de7
--- /dev/null
+++ b/.Jules/palette.md
@@ -0,0 +1,3 @@
+## 2026-02-25 - Icon-Only Navigation Accessibility
+**Learning:** The `MobileNav` component used `Link` with only icons and decorative elements, relying on visual cues (color/icon) but lacking accessible names. This renders the primary navigation unusable for screen reader users on mobile. Similar pattern found in `DashboardLayout` header buttons which used `title` but lacked `aria-label`.
+**Action:** Always verify icon-only interactive elements (links/buttons) have `aria-label` or `sr-only` text, especially in critical navigation components.
diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx
index 4384c4c..2ce0955 100644
--- a/src/app/dashboard/layout.tsx
+++ b/src/app/dashboard/layout.tsx
@@ -73,6 +73,7 @@ export default async function DashboardLayout({
size="icon"
asChild
title="Settings"
+ aria-label="Settings"
className="hover:bg-muted hover:text-foreground rounded-full w-9 h-9 md:w-10 md:h-10"
>
@@ -92,6 +93,7 @@ export default async function DashboardLayout({
size="icon"
type="submit"
title="Logout"
+ aria-label="Logout"
className="hover:bg-red-500/20 hover:text-red-400 rounded-full transition-colors w-9 h-9 md:w-10 md:h-10"
>
diff --git a/src/components/mobile-nav.tsx b/src/components/mobile-nav.tsx
index 3640418..adbd331 100644
--- a/src/components/mobile-nav.tsx
+++ b/src/components/mobile-nav.tsx
@@ -56,6 +56,7 @@ export function MobileNav() {
{/* Active Background Pill */}