Some flows require modals opening other modals.
Stack management:
const [modalStack, setModalStack] = useState([]);
const openModal = (modal) => {
setModalStack(prev => [...prev, modal]);
};
const closeModal = () => {
setModalStack(prev => prev.slice(0, -1));
};
Z-index: Each modal gets higher z-index than previous.
Focus: When closing stacked modal, return focus to previous modal, not original trigger.
Escape: Closes topmost modal only.