diff --git a/frontend/src/pages/Settings.jsx b/frontend/src/pages/Settings.jsx
index a2eb56e..37d782a 100644
--- a/frontend/src/pages/Settings.jsx
+++ b/frontend/src/pages/Settings.jsx
@@ -9,7 +9,7 @@ import {
IconSearch, IconSystem as IconTune,
} from '../icons.jsx';
import { moduleIcon } from '../module-icons.jsx';
-import { findSettings } from '../setting-index.js';
+import { findSettings, SETTING_INDEX } from '../setting-index.js';
import { Markdown } from '../markdown.jsx';
const API_SCOPES = [
@@ -348,6 +348,16 @@ export default function Settings({ me }) {
// … und zusätzlich auf einzelne Einstellungen, mit Sprung aufs Feld
const foundSettings = query ? findSettings(query, canTab) : [];
+ /**
+ * Zum Feld einer Einstellung springen — der Bereich kommt aus dem Register,
+ * damit „Einrichten" nicht im falschen Tab landet (das Gitea-Token steht
+ * z. B. bei Brand, nicht bei System).
+ */
+ function jumpToMissing(fehlt, fallbackTab) {
+ const bekannt = SETTING_INDEX.find((s) => s.id === fehlt.setting);
+ jumpToSetting(bekannt ?? { id: fehlt.setting, tab: fallbackTab });
+ }
+
/** Bereich wechseln, zum Feld scrollen und es kurz hervorheben */
function jumpToSetting(entry) {
setTab(entry.tab);
@@ -1155,11 +1165,13 @@ export default function Settings({ me }) {
: `${x.create.rolle ? 'Rolle' : 'Kanal'} anlegen`}
))}
- {m.tab && (
-
- )}
+
))}
@@ -1244,7 +1256,7 @@ export default function Settings({ me }) {
setForm({ ...form, discord_guild_id: e.target.value })} />
-
+
setGiteaToken(e.target.value)} />
@@ -2400,7 +2412,12 @@ export default function Settings({ me }) {
)}
{!m.enabled &&
Ausgeschaltet}
{m.tab && (
-