diff --git a/.changeset/fn-7627-mobile-settings-close.md b/.changeset/fn-7627-mobile-settings-close.md
new file mode 100644
index 0000000000..dd0de95228
--- /dev/null
+++ b/.changeset/fn-7627-mobile-settings-close.md
@@ -0,0 +1,7 @@
+---
+"@runfusion/fusion": patch
+---
+
+summary: Add a close button to the Settings screen on mobile.
+category: fix
+dev: The embedded Settings header now renders a mobile-only `modal-close` control gated on `isEmbedded && viewportMode === "mobile"`, wired to the existing `onClose` prop (navigates back to the board and refreshes app settings). Desktop/tablet embedded and the standalone modal presentation are unchanged.
diff --git a/packages/dashboard/app/components/SettingsModal.css b/packages/dashboard/app/components/SettingsModal.css
index 21c5122a70..403836b1ba 100644
--- a/packages/dashboard/app/components/SettingsModal.css
+++ b/packages/dashboard/app/components/SettingsModal.css
@@ -235,6 +235,22 @@ The embedded title reads like other embedded-view titles (Planning modal-header-
width: 100%;
height: 100%;
}
+
+ /*
+ FNXC:Settings 2026-07-07-00:00:
+ Mobile embedded Settings has no left sidebar to exit through (only the bottom MobileNavBar), so the header needs
+ an explicit close affordance. Reuse the shared .modal-close sizing/hover and pin it to the header's trailing
+ edge, after the Star/Discord actions, without displacing them. Desktop/tablet embedded and the standalone modal
+ presentation are untouched by this rule (scoped to .settings-modal--embedded .modal-header--embedded).
+ */
+ .settings-modal--embedded .modal-header--embedded .settings-embedded-mobile-close {
+ --settings-embedded-mobile-close-touch-target: calc(var(--space-lg) + var(--space-lg) + var(--space-xs));
+
+ flex-shrink: 0;
+ margin-left: var(--space-xs);
+ min-height: var(--settings-embedded-mobile-close-touch-target);
+ min-width: var(--settings-embedded-mobile-close-touch-target);
+ }
}
/* === Settings Layout === */
diff --git a/packages/dashboard/app/components/SettingsModal.tsx b/packages/dashboard/app/components/SettingsModal.tsx
index df4fe43bb0..da08553fea 100644
--- a/packages/dashboard/app/components/SettingsModal.tsx
+++ b/packages/dashboard/app/components/SettingsModal.tsx
@@ -3612,6 +3612,23 @@ export function SettingsModal({
×
)}
+ {/*
+ FNXC:Settings 2026-07-07-00:00:
+ Mobile embedded Settings (taskView === "settings", presentation="embedded") has no left sidebar to exit
+ through — only the bottom MobileNavBar — so the header needs an explicit close affordance calling the
+ existing onClose prop (wired to closeSettingsView: modalManager.closeSettings() + back to board + refresh
+ app settings). Desktop/tablet embedded still exit via the sidebar (no button here), and the standalone
+ modal presentation keeps its own `!isEmbedded` `modal-close` button above, untouched and byte-identical.
+ */}
+ {isEmbedded && viewportMode === "mobile" && (
+
+ )}
{loading ? (