diff --git a/docker/frontend/src/App.tsx b/docker/frontend/src/App.tsx
index 49e682c..5746fbe 100644
--- a/docker/frontend/src/App.tsx
+++ b/docker/frontend/src/App.tsx
@@ -2244,6 +2244,7 @@ export function Workspace() {
-
+
{/* column 1 — the tab's own chips, RESET ruled off at the foot */}
diff --git a/docker/frontend/src/styles/app.css b/docker/frontend/src/styles/app.css
index d6ce8ba..4f16885 100644
--- a/docker/frontend/src/styles/app.css
+++ b/docker/frontend/src/styles/app.css
@@ -141,7 +141,10 @@
/* Edited value, strip closed: the text glows amber, the border does not. */
.chip.amber, .chip.amber .val { color: var(--accent); }
.chip .val { color: var(--text-dim); font-family: var(--mono); font-size: 11px; }
-.chip .pro { font-size: 9px; letter-spacing: 0.08em; color: var(--accent); }
+.chip .pro, .btn .pro { font-size: 9px; letter-spacing: 0.08em; color: var(--accent); }
+/* A button is not a flex row the way a chip is, so the marker carries its own
+ gap off the label it qualifies. */
+.btn .pro { margin-left: 6px; }
.chip:disabled { opacity: 0.4; cursor: not-allowed; }
/* The font group as a dropdown: one row that shows the current pairing instead
of three chips that all have to fit. */
diff --git a/docker/frontend/src/ui/ToolRail.tsx b/docker/frontend/src/ui/ToolRail.tsx
index 000595c..cad11c1 100644
--- a/docker/frontend/src/ui/ToolRail.tsx
+++ b/docker/frontend/src/ui/ToolRail.tsx
@@ -28,17 +28,22 @@ export function ToolRail({
tab,
onTab,
onDropRecipe,
+ signedIn = false,
}: {
tab: TabId;
onTab: (tab: TabId) => void;
// A recipe chip dragged onto FAVORITED is filed there (see App's favorite()).
onDropRecipe?: (id: string) => void;
+ // MY PHOTOS is the account's own folder, so the tab is only offered once
+ // there is an account to hold one.
+ signedIn?: boolean;
}) {
const { t } = useI18n();
const favorited = (id: TabId) => id === 'favorited';
+ const tabs = signedIn ? TABS : TABS.filter((entry) => entry.id !== 'photos');
return (