Для правильного вопроса надо знать половину ответа
Тут вопрос не в оптимизации, а в удобстве. Если вы вместо переменной захардкодите значение в стили, то при необходимости изменить его вам придётся перелопатить все CSS-файлы и все стили в них в поисках нужных значений.
Для правильного вопроса надо знать половину ответа
if (e.target.closest('.clear_btn')?.hasAttribute("data-action")) {
При клике по svg в e.target будет именно она, а не div, в котором она находится.
e.target - это именно элемент, на котором произошло событие, а он может не совпадать с элементом, на котором висит обработчик.
Для правильного вопроса надо знать половину ответа
Так у вас же в CSS так и написано: применяется к звёздочке, на которую навели курсор и к следующим за ней звёздочкам. CSS не умеет воздействовать на элементы, идущие ранее в HTML-коде.
Разверните отображение