I am confident writing code in almost all layers of a modern web application now. Node.js/JavaScript, SQL, Angular etc., all took me some time to grasp but now are a breeze to write.
My pain point is currently CSS. I have a good understanding of advanced selectors and properties, but my final CSS code always end up being a mess. I am constantly overwriting styles, writing classes that can't be reused or composed in more than one element and using way more !important rules than I probably should.
Where do I start on the path to write clean, reusable and maintainable CSS?