v3.26.1
Segment Information - Segment Information Applicable to Reportable Operating Segments (Details)
$ in Thousands
3 Months Ended 6 Months Ended
Jun. 30, 2026
USD ($)
Jun. 30, 2025
USD ($)
Jun. 30, 2026
USD ($)
segment
Jun. 30, 2025
USD ($)
segment
Dec. 31, 2025
USD ($)
Segment Information          
Number of reportable segments | segment     3 3  
Number of operating segments | segment     3 3  
Net sales $ 853,996 $ 759,693 $ 1,575,862 $ 1,460,739  
Cost of sales 696,523 621,927 1,285,652 1,195,662  
Depreciation and amortization     5,533 5,965  
Operating income (loss) 43,012 30,897 63,237 45,419  
Interest income, net 2,525 3,216 5,888 7,116  
Other income       76  
Income before taxes 45,537 34,113 69,125 52,611  
Total assets 1,427,634 1,269,277 1,427,634 1,269,277 $ 1,350,925
Enterprise Solutions          
Segment Information          
Net sales 369,620 326,011 716,091 624,014  
Business Solutions          
Segment Information          
Net sales 343,870 293,168 619,432 551,553  
Public Sector Solutions          
Segment Information          
Net sales 140,506 140,514 240,339 285,172  
Operating Segments          
Segment Information          
Net sales $ 853,996 $ 759,693 $ 1,575,862 $ 1,460,739  
Other segment expenses, description Other segment expenses for each of the reportable segments include service contracts/subscriptions, professional fees, facilities operations, credit card fees, and other miscellaneous expenses. Other segment expenses for each of the reportable segments include service contracts/subscriptions, professional fees, facilities operations, credit card fees, and other miscellaneous expenses. Other segment expenses for each of the reportable segments include service contracts/subscriptions, professional fees, facilities operations, credit card fees, and other miscellaneous expenses. Other segment expenses for each of the reportable segments include service contracts/subscriptions, professional fees, facilities operations, credit card fees, and other miscellaneous expenses.  
Operating income (loss) $ 46,712 $ 33,778 $ 73,244 $ 53,355  
Total assets 1,593,728 1,434,475 1,593,728 1,434,475  
Operating Segments | Enterprise Solutions          
Segment Information          
Net sales 369,620 326,011 716,091 624,014  
Cost of sales 314,475 278,389 610,721 534,094  
Personnel costs 18,026 16,995 35,939 33,165  
Marketing 1,591 787 3,346 2,884  
Allocated corporate overhead 18,955 18,069 37,718 36,359  
Depreciation and amortization 149 195 346 387  
Other segment expenses 1,359 1,230 2,255 2,277  
Operating income (loss) 15,065 10,346 25,766 14,848  
Total assets 797,889 753,931 797,889 753,931  
Operating Segments | Business Solutions          
Segment Information          
Net sales 343,870 293,168 619,432 551,553  
Cost of sales 264,789 224,319 472,848 417,297  
Personnel costs 17,900 17,662 35,853 35,437  
Marketing 4,540 2,564 7,774 7,403  
Allocated corporate overhead 22,796 21,521 45,370 42,997  
Depreciation and amortization 104 155 258 310  
Other segment expenses 2,010 1,383 3,713 4,128  
Operating income (loss) 31,731 25,564 53,616 43,981  
Total assets 693,380 591,894 693,380 591,894  
Operating Segments | Public Sector Solutions          
Segment Information          
Net sales 140,506 140,514 240,339 285,172  
Cost of sales 117,260 119,219 202,083 244,271  
Personnel costs 9,209 9,273 17,011 18,859  
Marketing 1,246 575 1,984 1,659  
Allocated corporate overhead 11,398 10,761 22,683 21,499  
Depreciation and amortization 9 22 25 45  
Other segment expenses 1,468 2,796 2,691 4,313  
Operating income (loss) (84) (2,132) (6,138) (5,474)  
Total assets 102,459 88,650 102,459 88,650  
Headquarters/Other          
Segment Information          
Unallocated Headquarters/Other expenses (3,700) (2,881) (10,007) (7,936)  
Total assets (166,094) (165,198) (166,094) (165,198)  
Intersegment Elimination          
Segment Information          
Total assets $ (64,232) $ (46,339) $ (64,232) $ (46,339)