diff --git a/frontend/src/components/modal/TagPanel.vue b/frontend/src/components/modal/TagPanel.vue
index 38febe9..4f0d335 100644
--- a/frontend/src/components/modal/TagPanel.vue
+++ b/frontend/src/components/modal/TagPanel.vue
@@ -86,7 +86,11 @@ async function onNavigate(tag) {
// Return focus to the tag input after a suggestion is accepted (from the
// Suggestions panel or the autocomplete dropdown) so the operator can keep
// typing the next tag without re-clicking the field (operator-asked 2026-06-08).
+// Exposed so a host surface (the Explore workspace) can re-focus the field when
+// it swaps the focused image, without re-clicking. The field's own mobile guard
+// (TagAutocomplete) is preserved.
function focusTagInput() { tagInputRef.value?.focus?.() }
+defineExpose({ focusTagInput })
async function onRemove(tagId) {
errorMsg.value = null
diff --git a/frontend/src/views/ExploreView.vue b/frontend/src/views/ExploreView.vue
index f46fec0..34e3630 100644
--- a/frontend/src/views/ExploreView.vue
+++ b/frontend/src/views/ExploreView.vue
@@ -98,7 +98,10 @@
@@ -106,7 +109,7 @@