You would also have to advise your client to choose colours different enough from those of the a:link, a:visited, and a:hover states or else add a way for him/her to change those too, otherwise links may seem to disappear. Even if you don't specify those, usually by default they are blue for links and maroon/mauve for visited.
What might be a more manageable solution could be - once your site is developed - to duplicate your main stylesheet (say) three times so you have styles1.css, styles2.css and styles3.css.
Then in each of the two (or more) new stylesheets change the style for background colour, link states, text colour, and any individual element properties, giving three (or more) defined page styles (themes) to choose from.
The CMS code would go in the head, like:
echo WA_getCMSContent($database_localhost, $localhost, 'switch styles' , 'head css');
?>.css" rel="stylesheet" type="text/css" />
And the user would just need to enter 'style1', 'style2' or 'style3' into the alloted CMS area edit. They would just need to be literate for that.
So this page is just one page but with a choice of three stylesheets that can be put in the head by the CMS. At least it would be, if you had access to my CMS. Because you can't, the demo is three copies of the same page, identical, but for the stylesheet name in the head.