Replace the untyped Exception(msg) thrown by mapDioError with an ApiException that exposes statusCode and isNetworkError alongside the message. Callers can now classify failures by HTTP status without string-matching on the error message — this unblocks typed error mapping in the auth feature modules.