pub fn ui(f: &mut Frame<'_>, app: &mut App)
Draw the full TUI frame: tabs, active panel, footer, and modal overlays.