Тег option невозможно нормально стилизовать средствами CSS. Но есть несколько вариантов решения задачи:
1. Простым решением будет отказ от каких либо стилизаций тега option, ограничившись при этом стилизацией тега select. Да, можно сказать что идея так себе, но это достаточно "популярное" решение, которое встречается очень часто во многих ответах/советах, при возникновении подобных вопросов. В основном это связано с тем что нативный select имеет поддержку доступности, удобное управление с клавиатуры и мыши и так далее. Воссоздавать весь набор этих функций, достаточно сложно, без наличия опыта.
2. Найти более менее нормальную библиотеку кастомных select`ов и использовать её, вместо стандартного select. Однако готовая библиотека не панацея и в ней может отсутствовать набор тех или иных функций. Разумеется при желании можно добавить нужный функционал, но это займёт определенное время, а также потребует знаний JS + навыка работы с чужим кодом.
3. Наиболее сложным вариантом является создание своего кастомного select`а с нуля. Можно конечно уложиться и в пару строк кода, создав простой select, но если делать доступный и качественный компонент, придётся потратить немало времени, чтобы реализовать полную копию тега select с набором всех необходимых функций, а также с возможностью нормальной стилизации как самого компонента, так и дочерних элементов.
4. Ну и в качестве ещё одного варианта можно попробовать какую-нибудь комбинацию JS + </select>
с добавлением дополнительных элементов, для стилизации, но это так себе решение...