- Added ElectionDateViolationException for proper 4xx on date violations - createElection: validates date order (nominationStart <= nominationEnd <= electionDate <= resultDate) - withdrawNomination/resubmitNomination: blocked after nominationEndDate - closeNominations: requires today >= nominationEndDate - openVoting/closeVoting: requires today >= electionDate - declareResults: requires today >= resultDate (or electionDate if no resultDate) - NDC hasNoDues: checks overdue EMIs only (total_overdue_derived), not outstanding balance - Director/guarantor/family loan checks: overdue-based only — pass if no missed EMIs - MemberHasOutstandingDuesException: proper AbstractPlatformDomainRuleException (was IllegalStateException → 500) - Audit gaps fixed: RESUBMIT_NOMINATION_FAILED added to enum, try/catch added for resubmit, createElection, updateElection; saveManualVoteCounts catches all RuntimeException Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>