Apart from the browser prefix nonsense (that has gone the way of the dodo in every newest version of browsers except Safari -- which since Google absconded with the talent to fork off Blink has begun to age like milk) most of my problems with CSS aren't actually with CSS itself...
My problems lie with the markup people apply it to, and certain broken methodologies... like the mere EXISTENCE of the <style> tag -- that needs to go. HTML needs to more clearly define
If there is ANY real place the CSS specification itself needs work, it's clearly defining the default state, and how elements should receive style. There is NOTHING more annoying on this than how certain elements react differently to the same style values across browsers... As others have mentioned, form elements are the greatest offender of this -- I still say that the spec should just come right out and say: All input except file, and textarea should behave as if they are inline-block. Type="file" and "select" should behave as if inline block, except that their side button collapses onto the wrapper's padding. -- END OF PROBLEM.
Second place would be that we STILL pretty much need resets or to waste time declaring margins and padding on everything.
There's a LOT of crap being added that's either needlessly overcomplicated for what it does (flex), utterly pointless if you have ANY huffing clue what you are doing (mixins), and goofy garbage that's basically the W3C throwing up it's shoulders and saying "fine, sleaze it out however you like" by adopting crap from the halfwit manure known as preprocessors.
Going hand in hand with how the W3C adopting WhatWG's train wreck of pointless redundancies and pissing on logical document structure from orbit that is HTML 5. To me, most of HTML 5 as a markup specification to me is the bleeding edge of 1997 thinking. It seems carefully crafted to meet the wants and "needs" of the mouth-breathers who still sleaze out HTML 3.2 and proprietary crap that wormed it's way into transitional, loaded with presentational methodology and zero accessibility... until recently they were able to slap 4 tranny atop it, now they get to wrap 5 lip-service around the same outdated outmoded idiocy and pat themselves on the back over how "modern' they are. HTML 5 sure as shine-ola wasn't designed for anyone who embraced logical document structure, separation of presentation from content, semantic markup, or even the entire reason 4 Strict existed in the first place!
There's a saying a dearly departed friend used to use: "CSS is only as good as the markup it is applied to" -- so between the train wreck of 1990's methodology that is HTML 5, mated to people not qualified to even be making websites diving for mouth-breathing asshattery like bootcrap, it's hardly a shock that people think CSS is "hard" or "wrong" and end up wasting several hundred K of scripttardery and stylesheets on doing a couple dozen K's job!
But then, I still say for the majority of websites if you have ANY clue what you are doing -- NOT counting content or social media scripts -- there is ZERO legitimate excuse to have more than 72k of HTML+CSS+Scripting, spanning THREE files. Realistically there is NO reason for an entire CMS of ALL pages to break 48k of CSS, and in most cases you should be using half that!
Naturally though with people using presentational classes thanks to the OOCSS idiocy, starting out with "frameworks" that by themselves are two to five times the size of what the page "needs", and most sites these days being garbage copypasta -- such concepts are utterly lost in the shuffle. THEN these same sleazy ignorant fools try to tell us that their ignorant rubbish -- that results in writing two or three times the needed markup and twice the CSS BEFORE you even count the size of their stupid framework against it --- is somehow magically EASIER?
BULL-FREAKING-!!!!