чекбоксы вообще не стилизуются
они скрываются через дисплей none
а из label делается кастомный переключатель
В зависимости от состояния чекбокса. к нему применяются стили с помощью такой конструкции
[type="checkbox"]:checked + label
И клик на label в свою меняет состояние чекбокса.
Как это работает есть в примере