diff --git a/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx b/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx
index 821e06382..7f69d0cff 100644
--- a/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx
+++ b/apps/compliance-portal/src/pages/documents/_components/DocumentEntry.tsx
@@ -66,6 +66,11 @@ export function DocumentEntry({
}: DocumentEntryProps) {
const { t } = useTranslation("documents");
+ // Only locked rows (not yet authorized, no pending request) can be requested,
+ // so only they are selectable — the checkbox is disabled otherwise to avoid a
+ // selection that wouldn't contribute to "Request Access".
+ const selectable = !isAuthorized && !requested;
+
const mobileHitLabel = requested
? null
: isAuthorized
@@ -84,8 +89,9 @@ export function DocumentEntry({
// triggers the row's view / request-access activation.
)}
diff --git a/apps/compliance-portal/src/pages/documents/_components/DocumentsSelectionBar.tsx b/apps/compliance-portal/src/pages/documents/_components/DocumentsSelectionBar.tsx
index 684535de3..dd577090b 100644
--- a/apps/compliance-portal/src/pages/documents/_components/DocumentsSelectionBar.tsx
+++ b/apps/compliance-portal/src/pages/documents/_components/DocumentsSelectionBar.tsx
@@ -68,7 +68,7 @@ export function DocumentsSelectionBar({ entries }: DocumentsSelectionBarProps) {