It's not just CSS, though that's a part of it. What if you want to customize labels? How about error placement? Behavior when you click outside of the widget? More complex open/close interactions? Even a simple <select> gets re-implemented every so often (chosen.js) because it's use cases are too complex for what it can do. A date picker is so much more complex than that.
Which is why my complaint is about the desktop. As I mentioned, on mobile the widget actually works correctly: it looks like a native OS datepicker. Native OS datepickers do not exist on the desktop: not in the browser, not anywhere else, unless you count the Windows clock dialog.