diff --git a/packages/dashboard/app/components/FloatingWindow.tsx b/packages/dashboard/app/components/FloatingWindow.tsx index 57dff2a1d8..9941767ed6 100644 --- a/packages/dashboard/app/components/FloatingWindow.tsx +++ b/packages/dashboard/app/components/FloatingWindow.tsx @@ -276,6 +276,8 @@ export function FloatingWindow({ role="dialog" aria-modal="false" data-testid={`floating-window-overlay-${windowKey}`} + // FNXC:FloatingWindow 2026-06-22-23:00: The z-index MUST live on the position:fixed overlay (which creates a stacking context), not the panel. A panel z-index is trapped inside the overlay's context and loses to page elements that are stacking contexts in body's context (e.g. the right dock at position:absolute z-index:20). With z on the overlay, the whole window sits at the shared floating band in body's stacking context and reliably paints above page content + tap-to-front reorders correctly. + style={{ zIndex }} >
+
0 - ? { - "--overlay-padding-top": "0px", - } as CSSProperties - : undefined - } + style={{ + // FNXC:FloatingWindow 2026-06-22-23:00: In floating mode the z-index lives on the fixed overlay (it owns the stacking context); a panel z is trapped inside it and loses to page stacking contexts like the right dock (position:absolute z-index:20). Docked/mobile keep their CSS z. + ...(isFloatingMode ? { zIndex: floatingZ } : {}), + ...(keyboardOverlap > 0 ? { "--overlay-padding-top": "0px" } : {}), + } as CSSProperties} >