diff --git a/frontend/src/lib/components/table/Cell.svelte b/frontend/src/lib/components/table/Cell.svelte
index c14e9e02c6..94aac6db7a 100644
--- a/frontend/src/lib/components/table/Cell.svelte
+++ b/frontend/src/lib/components/table/Cell.svelte
@@ -11,6 +11,7 @@
shouldStopPropagation?: boolean
selected?: boolean
sticky?: boolean
+ stickyEnd?: boolean
wrap?: boolean
children?: import('svelte').Snippet
[key: string]: any
@@ -24,6 +25,7 @@
shouldStopPropagation = false,
selected = false,
sticky = false,
+ stickyEnd = false,
wrap = false,
children,
...rest
@@ -53,6 +55,11 @@
last && size === 'xs' ? 'sm:pr-3' : '',
numeric ? 'text-right' : '',
+ // Pin an actions column to the right so it stays visible when a wide table
+ // scrolls horizontally. The background must be opaque so cells sliding under it
+ // are occluded — the row's hover tint is translucent and would bleed through.
+ stickyEnd ? 'sticky right-0 border-l' : '',
+ stickyEnd ? (head ? 'bg-surface-secondary' : 'bg-surface') : '',
sticky ? `!p-0 sticky ${first ? 'left-0' : 'right-0'}` : 'px-2 py-2',
size === 'sm' ? 'px-1.5 py-2.5' : '',
size === 'lg' ? 'px-3 py-4' : '',
diff --git a/frontend/src/routes/(root)/(logged)/folders/+page.svelte b/frontend/src/routes/(root)/(logged)/folders/+page.svelte
index 343e7a3e48..0df2235212 100644
--- a/frontend/src/routes/(root)/(logged)/folders/+page.svelte
+++ b/frontend/src/routes/(root)/(logged)/folders/+page.svelte
@@ -180,7 +180,7 @@