I would also try to avoid using embedded CSS (CSS built into the <head> tag). I would make a separate .css file instead, which is used via <link href='...' rel='stylesheet' type='text/css' />.
Reason being if you have this CSS embedded in every page, and you need to make changes to this css, you have to go through every page and make those changes.. if you use a linked (external) style sheet instead, you just make changes to that one stylesheet and presto! Changes are done site-wide (assuming all your pages link to this stylesheet of course).
Additionally, what I do is give version numbers to my linked style sheets, and when I make a change, I adjust the file version number in the file name, and replace the older css file on the server with this new one. By using glob() to find a keyword in my .css file and plug that into the <link> tag, the newest one is used automatically.
glob example:
glob($dirCSS."master.css") where $dirCSS is the location of my css files. In this case, it finds any .css file that has the word 'master' in it (and there is only one file with this key word in it of course). If I make changes to say master_stylesheet2-0.css for example and rename it as master_stylesheet2-1.css and replace the older version with this newer one, glob finds this as the current one and uses it.
The reason for this song and dance is that .css files get cached by the browser. Had I simply over-written the orginial file (keeping the file name the same) and overwrite that file on the server, your browser will not re-download the newest .css file if it is already cached (translation, my site's css changes will not be reflected on your browser unless you empty the cache or hit Ctrl + F5). (I also apply this kind of versioning thing to images as well for the same reason).
Sure, there can be debates about adding short term expires headers and such on the server side.. but you may not have that access (depending on your hosting services).
This is all a little off topic, I know.
Cheers,
NRG