Hi there,
Good day to you. I have inspected this issue from my end and it seems to have some issue when changing preset colors. Our designers have mistakenly use the same variable throughout each presets. We'll take a look on this matter and apply the necessary fixes.
There are 2 types of dropdown (normal menu dropdown, mega menu dropdown). Currently, Vanilla template is designed to display white background on Mega menu dropdown.
http://take.ms/bVwd9 . The reason is because, it will help displaying modules with transparent background. Example:
http://take.ms/lJv9T .
After a discussion with our designers, we've come to a conclusion to reset and standardize the white background on mega menu dropdown to the normal menu dropdown background color. This however will have affect on modules with transparent background. Users will need to apply custom css themselves to fix the module's background issues.
Regarding your inquiry on the best way to add custom css, I believe you can add your custom css from template custom code option.
http://take.ms/klo19 . Your custom css will be stored in database and will not get overwritten when updating template.
Thanks and have a great day.