pub fn truncate_chars(s: &str, max_chars: usize) -> String
Truncate string to max characters (not bytes). Useful for display purposes where visual length matters.