It's great for document formatting. For app layout, it's very easy for the cascading aspect to shoot you in the foot if you're not careful (which is why even the most purist CSS writers will tend to layer abstractions or rules on top of it, even if it's only convention based ones without technology like BEM.
Emphasis on the modern CSS. @layer, @scope, etc. go a long way in fixing the footguns.
Also let's not pretend like typical efforts were not buggy as hell with oversights or tricks that didn't work in every environment.