(See my edits below for a better solution). This seems to work for me and does not take much time to implement:
In widgets.js find
function Z(a,b,c)
Change this in function Z:
d.href=twttr.widgets.config.assetUrl()+"/"+b
like that:
d.href=b
In an asset, Url simply gets the base URL of the file (for example, a CSS file) that belongs to the domain, the owner of the domain. b - the paths you specify in JS (e.g. embed / timeline.4d0955f67d15e8ef0601086ae2d5fcd0.default.css). Download all the CSS (e.g. timeline.xyz.default.css) to where you want, then you can configure these files and save them on your own server. You cannot change CSS simply by adding rules to the CSS file on your server, as the Twitter feed is in an iframe from another domain. Changing CSS in an iframe with this type of source (i.e., not from your own domain) is not allowed to prevent capture problems, but if the iframe references CSS on your own server, then you can change it.
There may be some other things that you might want to check to make sure that you have all the necessary files. You should also get sprite.png, which is mentioned in the Twitter CSS file. I was able to customize CSS this way and it worked fine.
Edit:
I had problems with the above solution in IE7 / 6 and Chrome in Bean jelly, so I found a better solution that allows you to embed your own CSS file in an iframe, adhering to all CSS CSS in your own domain. From fresh widgets.js I went and added the following:
;d=c.createElement("link"), d.id="custom-css-1", d.rel="stylesheet", d.type="text/css", d.href="http://mydomain.com/css/timeline.custom.css"; c.getElementsByTagName("head")[0].appendChild(d);
right after
c.getElementsByTagName("head")[0].appendChild(d)
in the widgets.js line starting with
provide("tfw/widget/timeline"
(again in function Z). This works much better, and all you need is a copy of widgets.js at http://platform.twitter.com/widgets.js .