diff --git a/.changeset/27356-studio-flow-map-rows-stack.md b/.changeset/27356-studio-flow-map-rows-stack.md
new file mode 100644
index 00000000000..a7eb2808c43
--- /dev/null
+++ b/.changeset/27356-studio-flow-map-rows-stack.md
@@ -0,0 +1,12 @@
+---
+'@object-ui/app-shell': patch
+'@object-ui/console': patch
+---
+
+fix(studio): a flow node's key / value map puts each field name on its own line, so the name is readable
+
+Clause-②: no
+Metadata-protocol: none
+
+- **Before.** In the flow inspector, each row of a key / value map (a Create Record or Update Record node's field values, an HTTP node's headers, an Assignment node's assignments) put the key box, the value box and up to two buttons on one line. In the 300 px inspector the key box showed about nine characters, so a field name read "subj" or "dueD".
+- **Now.** A row stacks: the key on its own line beside the remove button, the value on the line under it beside the text / expression toggle where the map has one. The same field name shows about 24 characters. Nothing about what the map stores changes.
diff --git a/ui/packages/app-shell/src/views/metadata-admin/inspectors/FlowKeyValueField.stackedRows-27356.test.tsx b/ui/packages/app-shell/src/views/metadata-admin/inspectors/FlowKeyValueField.stackedRows-27356.test.tsx
new file mode 100644
index 00000000000..63979621063
--- /dev/null
+++ b/ui/packages/app-shell/src/views/metadata-admin/inspectors/FlowKeyValueField.stackedRows-27356.test.tsx
@@ -0,0 +1,82 @@
+// Copyright (c) 2026 ObjectStack. Licensed under the Apache-2.0 license.
+
+/**
+ * objectstack#27356 (hotcrm#2320 Studio S5) — a Create Record node's field
+ * names were cut to four or five characters ("subj", "dueD"): each map row put
+ * the field box, the value box and two buttons on one line, so the narrow
+ * inspector split its width between them. A row now stacks: the field on its
+ * own line beside the remove button, the value on the line under it beside the
+ * text / expression toggle.
+ *
+ * jsdom draws no layout, so the pin is the row's structure, read through
+ * `FlowNodeConfigField` (the editor's only caller) on a `create_record` node:
+ * the field box never shares a line with the value box. The same editor draws
+ * every key / value map in the flow inspector; the HTTP `headers` map is the
+ * second case, a map with no value toggle.
+ */
+
+import { describe, it, expect, afterEach, vi } from 'vitest';
+import { render, screen, cleanup } from '@testing-library/react';
+
+vi.mock('../previews/useObjectFields', () => ({
+ useObjectFields: () => ({ fields: [], loading: false, error: null }),
+}));
+
+import { FlowNodeConfigField } from './FlowNodeConfigField';
+import type { FlowConfigField } from './flow-node-config';
+
+afterEach(cleanup);
+
+const TOGGLE = 'Write as a CEL expression';
+const REMOVE = /remove/i;
+const LONG_FIELD = 'customer_satisfaction_score';
+
+function renderMap(field: FlowConfigField, nodeType: string, value: Record
{emptyLabel}
)} @@ -373,7 +373,13 @@ export function FlowKeyValueField({ const refusal = envelopeSlot && writesMap ? valueRefusal(rowValue(row)) : null; return (