I've just found out the answer (as usual, a few minutes after posting the question): it's in
/mail/html/html_message_template.tpl
as follows:
Code:
{* $Id: html_message_template.tpl,v 1.5 2005/11/28 14:19:29 max Exp $ *}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
{literal}
* {margin:0;padding:0;}
body, html {padding:5px;font:normal 1em Arial, Helvetica, sans-serif;color:#000;}
p {margin-bottom:10px;}
table {border-collapse:collapse;}
.invoice td, .invoice th {padding:2px 3px;}
td, th {font-size:0.8em;}
td strong {font-size:1em;}
.tablehead {padding:10px 0 4px 0;}
.rule {padding-bottom:5px;border-bottom:1px solid black;color:red;}
#header, #footer {background: url(http://www.mrdtrading.co.uk/skin1/images/2column/emailheader.gif) no-repeat top left;height:44px;width:599px;}
#header {margin-bottom:10px;}
#footer {margin-top:10px;}
#wrapper #header p, #wrapper #footer p {float:right;margin:5px 10px 0 0;text-shadow:1px 1px 1px #fff;color:#000;font-weight:bold;font-size:1em;}
#wrapper {width:600px;}
#wrapper a {text-decoration:none;}
{/literal}
</style>
</head>
<body>
{include file=$mail_body_template}
</body>
</html>
and by looking at that, I learned that the {literal} Smarty command allows you to enter CSS styles without causing a Smarty error!
Hopefully this thread will prove useful to somebody else with the same problem in the future.