Successfully modified file: /home/Messier82/projects/service-book/app/src/main/java/com/servicebook/ui/reportbug/ReportBugViewModel.kt (1 replacements). Here is the updated code: ... ) { /** * NOTE: We use Patterns.EMAIL_ADDRESS which is intentionally lenient (e.g., accepts a@b). * This matches the default Android behavior for broad compatibility. */ val isEmailInvalid: Boolean get() = contactEmail.trim().let { trimmed -> trimmed.isNotBlank() && !Patterns.EMAIL_ADDRESS.matcher(trimmed).matches() } val canSubmit: Boolean get() = summary.isNotBlank() && description.isNotBlank() && !isSubmitting && !isEmailInvalid } sealed class ReportBugEvent { data class TypeChanged(val type: ReportType) : ReportBugEvent() ...