diff --git a/packages/dashboard/app/components/MissionManager.css b/packages/dashboard/app/components/MissionManager.css
index 80d256f266..694bba2770 100644
--- a/packages/dashboard/app/components/MissionManager.css
+++ b/packages/dashboard/app/components/MissionManager.css
@@ -54,6 +54,10 @@
}
/* ── Header ── */
+/*
+FNXC:MissionManager 2026-06-23-03:00:
+Exactly ONE divider sits under the Missions header — this header's own border-bottom. The scroll body, split, sidebar, and detail-pane add NO border-top, so there is no doubled/extra divider line below the header (verified in DOM: only this element carries a horizontal border in the header region). Planning's embedded header is matched to this single-divider treatment. Do not add a second border-top to the body/split/sidebar.
+*/
.mission-manager__header {
flex-shrink: 0;
display: flex;
diff --git a/packages/dashboard/app/components/PlanningModeModal.css b/packages/dashboard/app/components/PlanningModeModal.css
index 7d136c2168..92623f083d 100644
--- a/packages/dashboard/app/components/PlanningModeModal.css
+++ b/packages/dashboard/app/components/PlanningModeModal.css
@@ -94,17 +94,33 @@ Embedded planning must blend into the main content like Command Center: no panel
}
/*
-FNXC:Planning 2026-06-23-02:00:
-The embedded planning header now matches MissionManager's inline header (mission-manager__header--inline) EXACTLY: var(--surface) background, padding var(--space-lg) var(--space-xl), no bottom divider, and the shared 1.125rem title metric. This aligns the top header and the spacing between header and the two-pane body with Missions (previously the header used 0 0 var(--space-md) padding + a transparent fill, which read inconsistently next to Missions).
+FNXC:Planning 2026-06-23-03:00:
+The embedded planning header must be a visual SIBLING of MissionManager's inline header (mission-manager__header--inline). Matched values, copied exactly from MissionManager.css:
+- background: var(--surface), padding: var(--space-lg) var(--space-xl) (= 16px 24px)
+- a single bottom divider border-bottom: 1px solid var(--border) — Missions renders exactly ONE divider under its header (verified: only .mission-manager__header carries it; the split/sidebar add none), so Planning matches that single clean line. Previously Planning had NO divider, which read inconsistently next to Missions.
+- title: 1.125rem / 600 / var(--text) via the h3 rule below (font-weight/color come from the base .modal-header h3).
+- icon: var(--todo) tint + flex-shrink:0, identical to .mission-manager__header-icon (the shared icon-triage tint was a different brown, so it is overridden here).
+- gap icon<->title: var(--space-sm) (= 8px), identical to .mission-manager__header-title. Scoped to the embedded planning header so the shared .detail-title-row (TaskDetailModal) keeps its own 10px gap.
*/
.planning-modal--embedded .modal-header--embedded {
padding: var(--space-lg) var(--space-xl);
background: var(--surface);
- border-bottom: none;
+ border-bottom: 1px solid var(--border);
+}
+
+.planning-modal--embedded .modal-header--embedded .detail-title-row {
+ gap: var(--space-sm);
+}
+
+.planning-modal--embedded .modal-header--embedded .detail-title-row > svg {
+ color: var(--todo);
+ flex-shrink: 0;
}
.planning-modal--embedded .modal-header--embedded h3 {
font-size: 1.125rem;
+ font-weight: 600;
+ color: var(--text);
letter-spacing: normal;
}
@@ -508,6 +524,16 @@ The New session button must look EXACTLY like Missions' primary sidebar create b
flex-shrink: 0;
}
+/*
+FNXC:Planning 2026-06-23-03:00:
+An empty footer must NOT reserve vertical space or paint its divider band. When .planning-view-footer renders with no children (e.g. the initial / no-active-session state once its action is absent), collapse it to zero so the embedded Planning view shows no dead footer band. Footers WITH content (the Start-Planning button in initial, and the .planning-actions composer in an active session) are untouched — :empty only matches when there are no element/text children.
+*/
+.planning-view-footer:empty {
+ display: none;
+ padding: 0;
+ border-top: none;
+}
+
.planning-advanced-disclosure {
width: 100%;
max-width: 520px;
diff --git a/packages/dashboard/app/components/PlanningModeModal.tsx b/packages/dashboard/app/components/PlanningModeModal.tsx
index 098f28bb3b..f86a01efb1 100644
--- a/packages/dashboard/app/components/PlanningModeModal.tsx
+++ b/packages/dashboard/app/components/PlanningModeModal.tsx
@@ -1926,6 +1926,10 @@ export function PlanningModeModal({ isOpen, onClose, onTaskCreated, onTasksCreat