diff --git a/package-lock.json b/package-lock.json
index 828ccd9b688f4d802b0e08f9f665516beb7e9e36..68f2750252bb55a1229befee0cdece14e083a227 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -28,6 +28,7 @@
         "dompurify": "^3.1.0",
         "fast-sort": "^3.4.0",
         "filesize": "^10.1.1",
+        "focus-trap": "^7.6.4",
         "lodash": "^4.17.21",
         "node-polyglot": "^2.5.0",
         "oidc-client": "^1.11.5",
@@ -4272,6 +4273,15 @@
       "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
       "dev": true
     },
+    "node_modules/focus-trap": {
+      "version": "7.6.4",
+      "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.6.4.tgz",
+      "integrity": "sha512-xx560wGBk7seZ6y933idtjJQc1l+ck+pI3sKvhKozdBV1dRZoKhkW5xoCaFv9tQiX5RH1xfSxjuNu6g+lmN/gw==",
+      "license": "MIT",
+      "dependencies": {
+        "tabbable": "^6.2.0"
+      }
+    },
     "node_modules/follow-redirects": {
       "version": "1.15.6",
       "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
@@ -7435,6 +7445,12 @@
         "node": ">= 10"
       }
     },
+    "node_modules/tabbable": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
+      "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
+      "license": "MIT"
+    },
     "node_modules/tailwindcss": {
       "version": "3.4.3",
       "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
diff --git a/package.json b/package.json
index 7559683790b6a8033e284503ba024faebea0f2c1..5a42b917b884fbfb1f5dd1ec38fed5c3d2026678 100644
--- a/package.json
+++ b/package.json
@@ -42,6 +42,7 @@
     "dompurify": "^3.1.0",
     "fast-sort": "^3.4.0",
     "filesize": "^10.1.1",
+    "focus-trap": "^7.6.4",
     "lodash": "^4.17.21",
     "node-polyglot": "^2.5.0",
     "oidc-client": "^1.11.5",