v3.26.3
Net Income per Common Share - Schedule of Computation Of Basic and Diluted Net Income Per Share (Details) - USD ($)
$ / shares in Units, $ in Thousands
3 Months Ended 9 Months Ended
Sep. 30, 2026
Jun. 30, 2026
Mar. 31, 2026
Sep. 30, 2025
Jun. 30, 2025
Mar. 31, 2025
Sep. 30, 2026
Sep. 30, 2025
Earnings Per Share [Abstract]                
Net income $ 11,762 $ 9,152 $ 8,111 $ 7,216 $ 4,427 $ 3,599 $ 29,025 $ 15,242
Basic - weighted-average shares outstanding (in shares) 24,024,031     23,889,157     23,943,656 23,974,054
Effect of dilutive securities:                
Employee stock options and other (in shares) 414,769     301,882     454,753 275,615
Diluted - weighted-average shares outstanding (in shares) 24,438,800     24,191,039     24,398,409 24,249,669
Net income per share:                
Basic (in dollars per share) $ 0.49     $ 0.30     $ 1.21 $ 0.64
Diluted (in dollars per share) $ 0.48     $ 0.30     $ 1.19 $ 0.63