pub fn strip_ansi_len(s: &str) -> usize
Compute visible length (strip minimal ANSI we add) so alignment stays correct.