Nothing you can do about it. As explained by chipcullen Gmail strips out all CSS in webpage except the one inside the HTML tags, and even with those it does strange stuff like removing the page-break-after
attributes.
The only workaround I can think about is to keep the html file or your server and simply send a link to it in your mail message in place of the attachement.
Great is the mistery surrounding these type of decisions made by Google engineers.
Maybe they want users to go back using Outlook. Well, they almost convinced me.