A few years ago i had a bombshell Eureka moment when i worked out what the first "C" stands for in CSS (cascading)
It means you don't have to try and predict the contents and structure of CSS files (which may not exist yet) and then try and search/replace values users might want to change, but can just override the values you want to change in another CSS file included after the original, structural one (i.e. Theme).
The secondary CSS (say, Style) can be really quite a short file - for instance just overriding the colours and so can be quite readable.
I understand this still restricts "design" to experts, but in my experience that's not too bad an idea!
It's also (from a dev's point of view) only about an hour or two's work.