In your EE config.php / site configuration, is your site URL set with http:// or https:// ? If it's not the latter, try that to see if it solves the issue. I think EE matches the site_url to the exact URL (and protocol) that you set in this configuration variable.
The trickier thing is when you have a site that's partially under HTTP and partially HTTPS. In that case, you definitely need to use add-ons and/or link site URLs coded another way to properly traverse from one to the other. (I set global variables in the config for {global:site_url}
and {global:site_ssl_url}
, and use those in my templates.)
Finally, for your CSS URL, you can also reference it like:
<link rel="stylesheet" href="/assets/css.layout">
or
<link rel="stylesheet" href="//yoursite.com/assets/css.layout">
(Note that web browsers will resolve the // in the URL to either http or https, to match the protocol of the current page.)
Finally, if you have the option, move your CSS to a static file outside of EE--this will improve your site performance noticeably.