Thanks for sharing this code.
None of these styles will work in Chrome unless -webkit-appearance: none is set on the input element as well as each of the individual styled shadow DOM components.
Is it possible to have these added automatically?
If not, it would be nice to have the requirement documented.