Index: app/(app)/dashboard/accounts-section.tsx
===================================================================
--- app/(app)/dashboard/accounts-section.tsx	(revision f023e5d1535c03dbc322ac4d9c160dfdf983c930)
+++ app/(app)/dashboard/accounts-section.tsx	(revision f5f1d898d8749982f099b71786a2b8aebb909be1)
@@ -15,6 +15,10 @@
 }
 
+function collapsedKey(userId: number) {
+    return `fein:accountsCollapsed:v1:${userId}`;
+}
+
 export default function AccountsSection({ userId, accounts }: Props) {
-    const [collapsed, setCollapsed] = useState(false);
+    const [collapsed, setCollapsed] = useState(true);
     const [editMode, setEditMode] = useState(false);
 
@@ -22,5 +26,5 @@
     const [order, setOrder] = useState<number[] | null>(null);
 
-    // load order from localStorage
+    // load order and collapsed state from localStorage
     useEffect(() => {
         try {
@@ -28,10 +32,20 @@
             if (!raw) {
                 setOrder(accounts.map((a) => a.transaction_account_id));
-                return;
+            } else {
+                const parsed = JSON.parse(raw) as number[];
+                setOrder(parsed);
             }
-            const parsed = JSON.parse(raw) as number[];
-            setOrder(parsed);
         } catch {
             setOrder(accounts.map((a) => a.transaction_account_id));
+        }
+
+        try {
+            const savedCollapsed = localStorage.getItem(collapsedKey(userId));
+            if (savedCollapsed !== null) {
+                setCollapsed(savedCollapsed === 'true');
+            }
+            // else stays at the default (true)
+        } catch {
+            // ignore
         }
         // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -92,9 +106,10 @@
         if (!canCollapse && collapsed) {
             setCollapsed(false);
+            localStorage.setItem(collapsedKey(userId), 'false');
         }
         if (!canReorder && editMode) {
             setEditMode(false);
         }
-    }, [canCollapse, canReorder, collapsed, editMode]);
+    }, [canCollapse, canReorder, collapsed, editMode, userId]);
 
     function persist(nextOrder: number[]) {
@@ -151,4 +166,5 @@
                             onClick={() => {
                                 setCollapsed(true);
+                                localStorage.setItem(collapsedKey(userId), 'true');
                             }}
                             className="text-white/60 hover:text-white/90 text-sm transition"
@@ -164,4 +180,5 @@
                                 setEditMode((v) => !v);
                                 setCollapsed(false); // editing implies expanded
+                                localStorage.setItem(collapsedKey(userId), 'false');
                             }}
                             className="text-white/60 hover:text-white/90 text-sm transition flex items-center"
@@ -239,4 +256,5 @@
                                 onClick={() => {
                                     setCollapsed(false);
+                                    localStorage.setItem(collapsedKey(userId), 'false');
                                 }}
                                 className="text-white/60 hover:text-white/90 text-sm transition"
