fn split_numeric_parts(numeric_str: &str) -> Result<(String, String), String>
Split a numeric string into integer and fractional parts.
Accepts “123”, “123.”, “.5”, “123.456”. Rejects negatives and non-digits.