Okay, then a popup form it is, just complicates the code needed. Now decide if you want to save selected values into multiple fields of the estimate record or another table OR into multiple records of another table. Setting value of 4 fields is probably easiest but then, as you indicated, results in a lot of empty fields in the table if fields are in the estimate record. But that might be okay. In my view, it is a balancing act between normalization and ease of data entry/output.
They only way to have flexibility to add categories is full normalization.