- CompanyRepository::save() now catches PDOException and throws a RuntimeException with a human-readable message (duplicate name, etc.) - Also fixes unchecked checkboxes (requires_approval, is_active) not being saved as 0 on UPDATE - index.php save handler catches RuntimeException and redirects back to the form with an ?error= param instead of crashing with 500 - companyEdit() renders the error banner when ?error= is present Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>