diff --git a/surfsense_web/app/globals.css b/surfsense_web/app/globals.css
index 087c5b676..a37ddb8f3 100644
--- a/surfsense_web/app/globals.css
+++ b/surfsense_web/app/globals.css
@@ -246,6 +246,17 @@ button {
}
}
+/* content-visibility utilities — skip layout/paint for off-screen list items */
+.list-item-lazy {
+ content-visibility: auto;
+ contain-intrinsic-size: 0 48px;
+}
+
+.sidebar-item-lazy {
+ content-visibility: auto;
+ contain-intrinsic-size: 0 40px;
+}
+
@source "../node_modules/@llamaindex/chat-ui/**/*.{ts,tsx}";
@source "../node_modules/streamdown/dist/*.js";
@source "../node_modules/@streamdown/code/dist/*.js";
diff --git a/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx b/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx
index 1bc773374..57c011f01 100644
--- a/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx
+++ b/surfsense_web/components/layout/ui/sidebar/AllPrivateChatsSidebar.tsx
@@ -349,7 +349,7 @@ export function AllPrivateChatsSidebarContent({
{isMobile ? (