Content-Type: multipart/related; start=; boundary=----------ytOkYA6W03AAQrXwvszGIO Content-Location: http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html?view=print Subject: =?utf-8?Q?How=20Skype=20&=20Co.=20get=20round=20firewalls=20-=20The=20H=20Security:=20News=20and=20Features?= MIME-Version: 1.0 ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline; filename=How-Skype-Co-get-round-firewalls-747197.html Content-Type: text/html; charset=utf-8; name=How-Skype-Co-get-round-firewalls-747197.html Content-ID: Content-Location: http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html?view=print Content-Transfer-Encoding: 8bit How Skype & Co. get round firewalls - The H Security: News and Features
15 December 2006, 13:46

Jürgen Schmidt

The hole trick

How Skype & Co. get round firewalls

Peer-to-peer software applications are a network administrator's nightmare. In order to be able to exchange packets with their counterpart as directly as possible they use subtle tricks to punch holes in firewalls, which shouldn't actually be letting in packets from the outside world.

Increasingly, computers are positioned behind firewalls to protect systems from internet threats. Ideally, the firewall function will be performed by a router, which also translates the PC's local network address to the public IP address (Network Address Translation, or NAT). This means an attacker cannot directly adress the PC from the outside - connections have to be established from the inside.

This is of course a problem when two computers behind NAT firewalls require to talk directly to each other - if, for example, their users want to call each other using Voice over IP (VoIP). The dilemma is clear - whichever party calls the other, the recipient's firewall will decline the apparent attack and will simply discard the data packets. The telephone call doesn't happen. Or at least that's what a network administrator would expect.

Punched

But anyone who has used the popular internet telephony software Skype knows that it works as smoothly behind a NAT firewall as it does if the PC is connected directly to the internet. The reason for this is that the inventors of Skype and similar software have come up with a solution.

Naturally every firewall must also let packets through into the local network - after all the user wants to view websites, read e-mails, etc. The firewall must therefore forward the relevant data packets from outside, to the workstation computer on the LAN. However it only does so, when it is convinced that a packet represents the response to an outgoing data packet. A NAT router therefore keeps tables of which internal computer has communicated with which external computer and which ports the two have used.

The trick used by VoIP software consists of persuading the firewall that a connection has been established, to which it should allocate subsequent incoming data packets. The fact that audio data for VoIP is sent using the connectionless UDP protocol acts to Skype's advantage. In contrast to TCP, which includes additional connection information in each packet, with UDP, a firewall sees only the addresses and ports of the source and destination systems. If, for an incoming UDP packet, these match an NAT table entry, it will pass the packet on to an internal computer with a clear conscience.

Switching

The switching server, with which both ends of a call are in constant contact, plays an important role when establishing a connection using Skype. This occurs via a TCP connection, which the clients themselves establish. The Skype server therefore always knows under what address a Skype user is currently available on the internet. Where possible the actual telephone connections do not run via the Skype server; rather, the clients exchange data directly.

Let's assume that Alice wants to call her friend Bob. Her Skype client tells the Skype server that she wants to do so. The Skype server already knows a bit about Alice. From the incoming query it sees that Alice is currently registered at the IP address 1.1.1.1 and a quick test reveals that her audio data always comes from UDP port 1414. The Skype server passes this information on to Bob's Skype client, which, according to its database, is currently registered at the IP address 2.2.2.2 and which, by preference uses UDP port 2828.

Alice calls Bob
Step 1: Alice tries to call Bob, which signals Skype.

Bob's Skype program then punches a hole in its own network firewall: It sends a UDP packet to 1.1.1.1 port 1414. This is discarded by Alice's firewall, but Bob's firewall doesn't know that. It now thinks that anything which comes from 1.1.1.1 port 1414 and is addressed to Bob's IP address 2.2.2.2 and port 2828 is legitimate - it must be the response to the query which has just been sent.

Hole punching
Step 2: Bob tries to reach Alice, which punches a hole through Bob's Firewall.

Now the Skype server passes Bob's coordinates on to Alice, whose Skype application attempts to contact Bob at 2.2.2.2:2828. Bob's firewall sees the recognised sender address and passes the apparent response on to Bob's PC - and his Skype phone rings.

Call established
Step 3: Alice finally reaches Bobs computer through the hole.


Doing the rounds

This description is of course somewhat simplified - the details depend on the specific properties of the firewalls used. But it corresponds in principle to our observations of the process of establishing a connection between two Skype clients, each of which was behind a Linux firewall. The firewalls were configured with NAT for a LAN and permitted outgoing UDP traffic.

Linux' NAT functions have the VoIP friendly property of, at least initially, not changing the ports of outgoing packets. The NAT router merely replaces the private, local IP address with its own address - the UDP source port selected by Skype is retained. Only when multiple clients on the local network use the same source port does the NAT router stick its oar in and reset the port to a previously unused value. This is because each set of two IP addresses and ports must be able to be unambiguously assigned to a connection between two computers at all times. The router will subsequently have to reconstruct the internal IP address of the original sender from the response packet's destination port.

Other NAT routers will try to assign ports in a specific range, for example ports from 30,000 onwards, and translate UDP port 1414, if possible, to 31414. This is, of course, no problem for Skype - the procedure described above continues to work in a similar manner without limitations.

It becomes a little more complicated if a firewall simply assigns ports in sequence, like Check Point's FireWall-1: the first connection is assigned 30001, the next 30002, etc. The Skype server knows that Bob is talking to it from port 31234, but the connection to Alice will run via a different port. But even here Skype is able to outwit the firewall. It simply runs through the ports above 31234 in sequence, hoping at some point to stumble on the right one. But if this doesn't work first go, Skype doesn't give up. Bob's Skype opens a new connection to the Skype server, the source port of which is then used for a further sequence of probes.

wireshark screenshot
Skype can do port scans. Here it suceeds on port 38901 and connects through the firewall.

Nevertheless, in very active networks Alice may not find the correct, open port. The same also applies for a particular type of firewall, which assigns every new connection to a random source port. The Skype server is then unable to tell Alice where to look for a suitable hole in Bob's firewall.

However, even then, Skype doesn't give up. In such cases a Skype server is then used as a relay. It accepts incoming connections from both Alice and Bob and relays the packets onwards. This solution is always possible, as long as the firewall permits outgoing UDP traffic. It involves, however, an additional load on the infrastructure, because all audio data has to run through Skype's servers. The extended packet transmission times can also result in an unpleasant delay.

Use of the procedure described above is not limited to Skype and is known as "UDP hole punching". Other network services such as the Hamachi gaming VPN application, which relies on peer-to-peer communication between computers behind firewalls, use similar procedures. A more developed form has even made it to the rank of a standard - RFC 3489[1] "Simple Traversal of UDP through NAT" (STUN) describes a protocol which with two STUN clients can get around the restrictions of NAT with the help of a STUN server in many cases. The draft Traversal Using Relay NAT (TURN[2]) protocol describes a possible standard for relay servers.

DIY hole punching

With a few small utilities, you can try out UDP hole punching for yourself. The tools required, hping2 and netcat, can be found in most Linux distributions. Local is a computer behind a Linux firewall (local-fw) with a stateful firewall which only permits outgoing (UDP) connections. For simplicity, in our test the test computer remote was connected directly to the internet with no firewall.

Firstly start a UDP listener on UDP port 14141 on the local/1 console behind the firewall:

local/1# nc -u -l -p 14141

An external computer "remote" then attempts to contact it.

remote# echo "hello" | nc -p 53 -u local-fw 14141

However, as expected nothing is received on local/1 and, thanks to the firewall, nothing is returned to remote. Now on a second console, local/2, hping2, our universal tool for generating IP packets, punches a hole in the firewall:

local/2# hping2 -c 1 -2 -s 14141 -p 53 remote

As long as remote is behaving itself, it will send back a "port unreachable" response via ICMP - however this is of no consequence. On the second attempt

remote# echo "hello" | nc -p 53 -u local-fw 14141

the netcat listener on console local/1 then coughs up a "hello" - the UDP packet from outside has passed through the firewall and arrived at the computer behind it.

Network administrators who do not appreciate this sort of hole in their firewall and are worried about abuse, are left with only one option - they have to block outgoing UDP traffic, or limit it to essential individual cases. UDP is not required for normal internet communication anyway - the web, e-mail and suchlike all use TCP. Streaming protocols may, however, encounter problems, as they often use UDP because of the reduced overhead.

Astonishingly, hole punching also works with TCP. After an outgoing SYN packet the firewall / NAT router will forward incoming packets with suitable IP addresses and ports to the LAN even if they fail to confirm, or confirm the wrong sequence number (ACK). Linux firewalls at least, clearly fail to evaluate this information consistently. Establishing a TCP connection in this way is, however, not quite so simple, because Alice does not have the sequence number sent in Bob's first packet. The packet containing this information was discarded by her firewall. (ju[3])


URL of this article:
http://www.h-online.com/security/features/How-Skype-Co-get-round-firewalls-747197.html

Links in this Article:
  [1] http://www.ietf.org/rfc/rfc3489.txt
  [2] http://www.jdrosen.net/midcom_turn.html
  [3] mailto:ju@heisec.de

------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline; filename=favicon_security.ico Content-Type: image/x-icon; name=favicon_security.ico Content-Location: http://www.h-online.com/favicon_security.ico Content-Transfer-Encoding: Base64 AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAD///8AgnivAAAAjgCVhHkALi20AAAA6gAAAMcAW1WRAJeL oQCQ1/wAAAC2AGGv+wAAAKUAMi6NAFlTtwDFtqAAJCXTAKCPeQCNgIsANDPVAAQE 2AA5OOEAh9D7AHXA+wBvu/sAabb7AILL+wCd4vwAUKH6AFmo+gBUpPoAlt38AJrg /AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcHBwcHBwcHBwcHBwcHB4e Hh4eHh4eHh4eHh4eHh4dHR0dHR0dHR0dHR0dHR0dEhEREREDAx0LEQMREREDAw0C AgwCDQcLCw0CAgICAg0ZBAwMAhkZGRkZEgwMAhIZGAQKCgIYGBgYGAgMDAwSGBcE CgYMFxcXFxcBCgoKEhcaBBQGBgwMDAwMCgYKChIXGgQUFAoaGhoaGgEGBgYIGhYT BQUGFhYWFhYIFBQGCBYPFAUFBggPCQkPDgUFBQcPEBUVFRUQDgkJEBMTExMQBB8f Hx8fHx8fHx8fHx8fHx8gICAgICAgICAgICAgICAgGxsbGxsbGxsbGxsbGxsbGwAA //8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//AAB4vwAA8L4AAHy/AAB4vwAA 5L4AAPy+AADb/wAA/z8= ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://www.h-online.com/icons/bg_rightcol.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgK CgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AA EQgCpwA+AwERAAIRAQMRAf/EAFEAAQEBAQEAAAAAAAAAAAAAAAACAQMIAQEAAAAA AAAAAAAAAAAAAAAAEAEBAQEAAAAAAAAAAAAAAAAAEQFhEQEAAAAAAAAAAAAAAAAA AAAA/9oADAMBAAIRAxEAPwD39cAuAXALgFwC4BcAuAkAAAAAAAEgAAAAAAAm4BcA uAXALgFwC4BcBFAoFAoFAoFAoIvQL0C9AvQL0C9AvQL0EUCgUCgUCgUCgi9AvQL0 C9AvQL0C9AvQRQKBQKBQKBQKDnQKBQKBQKBQKCL0C9AvQL0C9AvQL0C9BFAoFAoF AoFAoIvQL0C9AvQL0C9AvQL0EUCgUCgUCgUCgi9AvQL0C9AvQL0C9AvQTcAuAXAL gFwC4BcAuAigUCgUCgUCgUE0CgUCgUCgUCgwAAAAAAAEgAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAGwCAQCAQCAQCA0AAAAAAAAAAAAAAAAAAAAAAAGwCAQCAQCAQCA0A AAAAAAAAAAAAAAAAAAAAAAGwCAQCAQCAQCA0AAAAAAAAAAAAAAAGzQJoE0CaBNAm gTQJoNAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAANgEAgEAgEA gEBoAAAAAAAAAAAAAAANgEAgEAgEAgEBoAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAA AAAAAAAAAAAAAAAABUwCYBMAmATAJgEwCYAAAAAAAAAAAAAAAAAAAAAAAACgAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAVMAmATAJgEwCYBMAmAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAA2AQCAQCAQCAQGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//2Q== ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/gif Content-Location: http://www.h-online.com/icons/icon_dropdown.gif Content-Transfer-Encoding: Base64 R0lGODlhGQARAOZWADo6Og4ODlNTU/z8/JOTk0ZGRvf390hISGxsbF9fXzQ0NEdI SD8/P01NTVxcXPHx8VJSUkRFRYODg4iNjp+lpp6kpOfn59Db3HFxcVRUVEVFRRsb G2traxoaGicnJ8fHx4SEhLO1taCmp8nR0qCionZ2dkZHR5ednmBjYzk5OQoKCuXn 50VGRhQUFElJSTc3N+Dn52ZpaTs7O42Sk+vr65iYmGpqatDQ0GRnZ2JlZUNDQykp Ka+zs0tMTK6urtbW1tjY2DIyMq2xsVtbW0pLS5SXlyYmJpaZmZeXl3NzcwYGBjMz M05OTpaWlrCwsIuLixcXFy0tLYKCgiIiInd3d////////wAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAFYALAAAAAAZABEAAAfngFaCViskHA0vDRwkK4OO j4MhBxkYIEggGBkHIZCdRwwlBKKjBCUMRZ2OQjoST66vrxIMPKlWMD1JUrq7vFI2 RDCpFUxUxcbHxg0VqTEOCAgWVdLTVRbPDjGpCw4JCTUD4OEDTd1DC6kyAuoCTgbu 7j7rEDLaGgX3Bx8P+x8H9wUaznXCkQKAQQAugND44eIggBQ5Up1YEqViRQg3IFis qOBEqgsmjEwZSbLklB0mLtQSEaQDlJcwYXZQIKKWoAkKNgTYyTPABgUTbA6iEMFD CxVKVLTwEIGCUEcjZqBg8YIFihkjngYCADs= ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline; filename=standard.css Content-Type: text/css; charset=utf-8; name=standard.css Content-Location: http://www.h-online.com/styles/standard.css Content-Transfer-Encoding: 8bit /* ****************************** global****************************** \*/ html, body { height: 100%; } body { background: #6e6a6a; color: #fff; font-size: 100.1%; } * html body { font-size: 16px; } body, td { font-family: Helvetica, sans-serif; } * { margin: 0; padding: 0; } table { border-spacing: 0; border-collapse: collapse; } table, img, fieldset { border: 0; } caption { caption-side:bottom; margin-top:6px; font-size:.9em; font-weight:bold; font-style:italic; text-align:left } option { padding-right: 5px; } p { line-height: 120%; font-size: 0.85em; color: #000; } h1 { font-size: 1.2em; color: #999; } h2 { font-size: 1em; line-height: 1.2em; color: #999; } h3 { font-size: 0.9em; } .clear { clear: both; } .clear_bottom { clear: both; height: 10px; } .laquo { font-size: 1.1em; font-family: verdana, sans-serif; color: #5f8ed5; } .pipe { color: #ccc; padding: 0px 2px 0px 2px; } hr { height: 1px; color: #000; background-color: #000; border: none; } .note { margin: 30px; border: 1px solid #ccc; font-size: 1.0em; font-weight: bold; padding: 30px; } .vertical_rule { background: url(/icons/grey_pix.gif) 50% 0 repeat-y; margin: 0; float: left; width: 100%; } img.category { margin-right: 5px; } .article { background: url(/icons/article.jpg) bottom left no-repeat; margin-bottom: 10px !important; } .alert { background: url(/icons/alert.jpg) bottom left no-repeat; /*margin-bottom: 10px !important;*/ } .tx_red { color:#c00; } .tx_green { color:#0c0; } .tx_blue { color:#00c; } .tx_cyan { color:#0cc; } .tx_magenta { color:#c0c; } .tx_smaller { font-size: 80%; } .tx_larger { font-size: 120%; } .tx_caps { font-variant: small-caps; } p.indent { margin-left: 25px; margin-right: 25px; } p.leadtext { font-weight: bold; } p.indent, #feature p.indent, #item p.indent { margin-left: 25px; margin-right: 25px; } /* ****************************** links ****************************** \*/ a { color: #039; } a:visited { color: #666; } a:hover { text-decoration: none; } h2 a, h3 a, h4 a, a.noline, #zoom a { text-decoration: none; } h2 a:hover, h3 a:hover, h4 a:hover, a.noline:hover, #zoom a:hover { text-decoration: underline; } a.zoom_icon { float: right; margin-top: 5px; } a.readmore, #overview a.readmore, a span.readmore { font-weight: bold; color: #cb1419; text-decoration: none; } a:visited span.readmore { color: #666; } /* ****************************** color ****************************** \*/ .red_text { color: red; } .blue_text { color: #012469; } .error { color: #c00; font-size: 0.8em; } /* ****************************** layout ****************************** \*/ #container { margin: 0 auto; position: relative; width: 64em; min-width: 960px; } #header_wrapper { float: left; margin-top: 100px; } #wrapper { float: left; background: url(/icons/bg_645_355.gif) 64.5% 0 repeat-y; } #content_wrapper { float: left; background: url(/icons/border_left.gif) left top repeat-y; } #wrapper, #content_wrapper, #header_wrapper { width: 60em; min-width: 960px; } #content { background: #74b4cd url(/icons/frame.jpg) left top repeat-x; float: left; width: 64.5%; } #frame_bottom { height: 10px; background: #74b4cd; clear: both; width: 64.5%; } #softwareverzeichnis #content, #softwareverzeichnis #frame_bottom { width: 100%; } #right_col { float: right; width: 35.5%; min-height: 480px; background: #f3f3f3 url(/icons/bg_rightcol.jpg) top right repeat-x; } /* ****************************** advertisement ****************************** \*/ .cadv { display: none; } #bannerzone { position: absolute; top: 0; left: 0; margin: 0 0 0 5px; padding: 0; height: 90px; width: 60em; min-width: 960px; } #leaderboard { position: relative; top: 5px; left: 0; text-align: center; } #heiseadvert { position: absolute; top: 20px; left: 30px; } #skyscraper { position: absolute; left: 100%; top: 120px; } .bcadv { margin: 0 auto; clear: both; width: 300px; padding-top: 10px; padding-bottom: 10px; } .item_wrapper .bcadv { margin: 20px 20px 20px 0px; } div.adbottom { padding: 2px 15px; clear: both; background: #fff; margin: 0 10px; } .adbottom_text { max-width: 400px; border: 1px solid #06c; } .adbottom_text h4 a { text-decoration: none; color: #fff; } .adbottom_text h4 { background: #06c; color: #def; padding-top: 0.2em; padding-bottom: 0.2em; padding-left: 1em; margin: 0em; font-size: 0.8em; } .adbottom_text a { font-weight: bold; text-decoration: none; } .adbottom_text a:hover { text-decoration: underline; } .adbottom_text p { font-size: 0.8em; margin-top: 0.5em; margin-right: 1em; margin-bottom: 0em; padding-left: 1em; } .adbottom_text ul { font-size: 0.8em; line-height: 1.5em; list-style: circle; margin-top: 0em; margin-right: 1em; margin-bottom: 0.5em; } .contentbanner { margin: 20px; clear: both; } /* ****************************** header ****************************** \*/ #newsheader { height: 5.375em; min-height: 86px; background: #97d1e4 url(/icons/header_bg.png) left top repeat-x; margin: 0 15px 0 27px; position: relative; } #newsheader_left { float: left; background: url(/icons/header_bg_left.png) no-repeat top left; height: 5.375em; min-height: 86px; width: 27px; } #newsheader_right { float: right; background: url(/icons/header_bg_right.png) no-repeat top right; height: 5.375em; min-height: 86px; width: 15px; } /* --------- 3px-bug IE6 ------------------------- */ * html #newsheader_left { background: url(/icons/header_bg_left.gif) no-repeat top left; margin-right: -3px; } * html #newsheader_right { background: url(/icons/header_bg_right.gif) no-repeat top right; margin-left: -3px; } * html #newsheader { margin: 0; } /* ----------------------------------------------- */ #newsheader #logo { float: left; padding: 10px 12px 0; } ul#tab_navi { list-style: none; font-size: 0.8em; float: left; margin-left: 20px; position: absolute; left: 114px; bottom: 0; } ul#tab_navi li { float: left; margin: 0 5px 0 0; } ul#tab_navi li a { background-color: #46768a; color: #fff; text-decoration: none; padding: .4em .5em .3em; font-weight: bold; float: left; display: block; } ul#tab_navi li a:visited { color: #fff; } ul#tab_navi li a.active { background: #fff; color: #039; } ul#tab_navi li a.active:visited { color: #039; } /* ****************************** drop-down navigation ****************************** \*/ #newsheader { z-index: 999; /* needed in order to fix IE < 8 bug */ } #newsheader #navigation { background: #dedfe0; /* Old browsers */ background-image: url('/icons/icon_dropdown.gif'); background-image: url('/icons/icon_dropdown.gif'), -webkit-gradient(linear, left top, left bottom, from(#f1f0f0), to(#c9ced0)); /* Saf4+, Chrome */ background-image: url('/icons/icon_dropdown.gif'), -webkit-linear-gradient(top, #f1f0f0, #c9ced0); /* Chrome 10+, Saf5.1+ */ background-image: url('/icons/icon_dropdown.gif'), -moz-linear-gradient(top, #f1f0f0, #c9ced0); /* FF3.6 */ background-image: url('/icons/icon_dropdown.gif'), -ms-linear-gradient(top, #f1f0f0, #c9ced0); /* IE10 */ background-image: url('/icons/icon_dropdown.gif'), -o-linear-gradient(top, #f1f0f0, #c9ced0); /* Opera 11.10+ */ background-image: url('/icons/icon_dropdown.gif'), linear-gradient(top, #f1f0f0, #c9ced0); /* W3C */ background-position: right center; background-repeat: no-repeat; border: 1px solid #999; border-radius: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; color: #000; float: left; height: 28px; margin: 30px 0 0 10px; opacity: 1; position: relative; width: 12.5em; } #newsheader #navigation, #newsheader #navigation ul { list-style: none; } #newsheader #navigation li#whereami { font-weight: bold; padding: 0 8px; } #newsheader #navigation li#whereami a { line-height: 28px; } #newsheader #subnavi { background-color: #fff; border: 1px solid #999; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -moz-box-shadow: 2px 2px 6px #666; -webkit-box-shadow: 2px 2px 6px #666; box-shadow: 2px 2px 1px #ccc; color: #666; display: none; left: -1px; opacity: 1; padding: 10px 0 8px; position: absolute; top: 28px; width: 19.5em; z-index: 999; } #newsheader #navigation.no-touch:hover #subnavi, #newsheader #navigation.active #subnavi { display: block; } #newsheader #whereami a { color: #000; text-decoration: none; } #newsheader #subnavi h5 { color: #333; font-size: 65%; font-weight: normal; letter-spacing: 0.05em; margin-left: 15px; padding-bottom: 8px; text-transform: uppercase; } #newsheader #subnavi li, #newsheader #subnavi li a { display: block; } #newsheader #subnavi li a { color: #039; font-weight: bold; text-decoration: none; } #newsheader #subnavi li#subnavi_channels, #newsheader #subnavi li#subnavi_services { display: inline; float: left; width: 50%; } #newsheader #subnavi ul li { border-bottom: 1px solid #e3e3e3; padding: 7px 5px 7px 15px; margin-right: 13px; } #newsheader #subnavi ul li.last { border-bottom: none; } #newsheader #subnavi ul li.ho a, #newsheader #subnavi ul li.open a, #newsheader #subnavi ul li.security a, #newsheader #subnavi ul li.developer a { padding-left: 20px; } #newsheader #subnavi ul li.ho a { background: url('/icons/bullet_ho.gif') left center no-repeat; } #newsheader #subnavi ul li.open a { background: url('/icons/bullet_open.gif') left center no-repeat; } #newsheader #subnavi ul li.security a { background: url('/icons/bullet_security.gif') left center no-repeat; } #newsheader #subnavi ul li.developer a { background: url('/icons/bullet_developer.gif') left center no-repeat; } /* ****************************** search ****************************** \*/ #search { float: right; height: 5.375em; padding: 0; position: relative; width: 14em; } #search form { height: 100%; margin: 0; padding: 0; position: relative; text-align: right; } #search form fieldset#inputs { background: #fff; border: 1px solid #70a3b4; border-radius: 14px; -moz-border-radius: 14px; -webkit-border-radius: 14px; -moz-box-shadow: 0 4px 8px #ddd inset; -webkit-box-shadow: 0 4px 8px #ddd inset; box-shadow: 0 4px 8px #ddd inset; right: 0; margin: 0; padding: 2px; position: absolute; top: 25px; } #search form input.submit { background: #000; background: -webkit-gradient(linear, left top, left bottom, from(#555), to(#000)); /* Saf4+, Chrome */ background: -webkit-linear-gradient(top, #555, #000); /* Chrome 10+, Saf5.1+ */ background: -moz-linear-gradient(top, #555, #000); /* FF3.6 */ background: -ms-linear-gradient(top, #555, #000); /* IE10 */ background: -o-linear-gradient(top, #555, #000); /* Opera 11.10+ */ background: linear-gradient(top, #555, #000); /* W3C */ border: none; border-radius: 14px; -moz-border-radius: 14px; -webkit-border-radius: 14px; color: #fff; font-size: 0.65em; font-weight: bold; height: 2em; padding: 3px 6px; width: 5em; } #search form input.searchfield { background: none; border: none; border-radius: 14px; -moz-border-radius: 14px; -webkit-border-radius: 14px; color: #000; font-size: 0.75em; margin-left: 2px; padding-left: 2px; width: 13em; } #search form fieldset#options { bottom: 12px; font-size: 0.8em; padding: 0; position: absolute; right: 5px; } #search form fieldset#options a, #search form fieldset#options a:visited { color: #002f4c; text-decoration: none; } #search form fieldset#options a:active, #search form fieldset#options a:hover { text-decoration: underline; } /* ****************************** login / association ****************************** \*/ #login_association { float: left; height: 5.375em; margin: 0 0 0 100px; position: relative; } #login { font-size: 0.7em; font-weight: bold; color: #333; margin-top: 33px; padding: 0; text-align: left; } #login .logged { color: #000; } #login a { text-decoration: none; color: #333; font-weight: normal; } #login a:hover { text-decoration: underline; } #login .dot { padding: 0 3px 0 2px; } p#association { color: #fff; font-size: 0.75em; /* position: absolute; */ margin-top: 3em; /* bottom: 25px; */ left: 0; font-weight: bold; white-space: nowrap; } p#association a, p#association a:link, p#association a:visited { color: #fff; outline: none; text-decoration: none; } p#association a:hover, p#association a:active { color: #fff; outline: none; text-decoration: underline; } /* ****************************** navigation ****************************** \*/ #navi_news { list-style: none; font-size: 0.8em; line-height: 1.2em; float: left; padding-left: 16px; } * html #navi_news { width: 34em; } #navi_news li { white-space: nowrap; padding: 6px 2px 4px 12px; float: left; } #navi_news li a { text-decoration: none; color: #039; float: left; display: block; } #navi_news li a:hover { text-decoration: underline; } #navi_news li a:visited { color: #039; } /* ****************************** right col ****************************** \*/ div.teaser, div.newest_news_teaser, .feature_navi, #fora_list, #latest_posts, #topnews { padding: 10px; } div.teaser a, div.newest_news_teaser a { text-decoration: none; } div.teaser li:hover { background: #dedede; } div.teaser img, div.newest_news_teaser img { display: block; } div.teaser h4 { margin: 0 10px; color: #012469; } div.newest_news_teaser h4 { font-size: .9em; color: #333; } div.teaser h5 a { color: #039; } div.teaser h5 { padding: 2px; color: #000; font-size: 1.0em; line-height: 1.2em; } div.teaser ul, div.newest_news_teaser ul, .feature_navi ul, #fora_list ul, #latest_posts ul, #topnews ul { margin-top: 4px; padding: 0; list-style: none; } div.teaser li { margin: 0 0 3px; font-size: 0.8em; color: #000; padding: 9px; } div.newest_news_teaser li { margin: 5px 0 0px; font-size: 0.8em; font-weight: bold; padding: 0 9px; line-height: 1.2; color: #000; } div.teaser li p { font-size: inherit; } div.teaser li a { color: #039; } div.teaser li p { margin: 0 0 6px 0; line-height: 1.2em; } div.teaser li p a { color: #000; } div.teaser_imgbox { border: 1px solid #ccc; background-color: #fff; text-align: center; width: 300px; margin-bottom: 5px; } div.teaser_imgbox img { margin: 5px auto; } .feature_navi h4, #fora_list h4, #latest_posts h4, #topnews h4 { padding-left: 10px; color: #012469; } .feature_navi h4 a, #fora_list h4 a, #latest_posts h4 a { color: #012469; } .feature_navi li, #fora_list li, #latest_posts li, #topnews li { margin: 4px 4px 6px 2px; font-size: 0.8em; } .feature_navi li, #latest_posts li, #topnews li { line-height: 1.1em; } .feature_navi li a, #fora_list li a, #latest_posts li a, #topnews li a { text-decoration: none; } #latest_posts li a .timestamp { color: #666; display: block; font-size: 90%; } #fora_list li a { font-weight: bold; color: #039; } .feature_navi li a:hover, #fora_list li a:hover, #latest_posts li a:hover, #topnews li a:hover { text-decoration: underline; } .split { background: #74b4cd; color: #74b4cd; height: 2px; clear: both; } #right_col_navi { background: #74b4cd url(/icons/frame.jpg) left top repeat-x; font-size: 0.8em; line-height: 1.2em; padding: 6px 2px 4px 12px; border-bottom: 1px solid #ccc; } #right_col_navi a { text-decoration: none; color: #039; } #right_col_navi a:hover { text-decoration: underline; } #right_col_navi a:visited { color: #039; } #right_col_navi a img { position: relative; top: 1px; vertical-align: baseline; } /* ---------- Teaser Priceinsight ---------- */ .teaser_priceinsight { font-size: 90%; margin: 1em auto; width: 95%; background: #fff; border: 1px solid #bac1ce; } .teaser_priceinsight h4 { background: #E1E8F0; border-bottom: 1px solid #bac1ce; margin: 0; padding: 2px 0.8em; } .teaser_priceinsight a { color: #039; text-decoration: none; } .teaser_priceinsight ol { padding: 0 0 0 1.5em; margin: 0.3em 0 0.3em 1.2em; color: #151515; list-style-type: decimal-leading-zero; } .teaser_priceinsight li { padding: 0.3em 0; margin: 0; font-size: 90%; line-height: 120%; } .teaser_priceinsight form { background: #E1E8F0; padding: 4px 0.8em; border-top: 1px solid #bac1ce; } .teaser_priceinsight form input, .teaser_priceinsight form select { border: 1px solid #999; width: 9em; } * html .teaser_priceinsight form input, * html .teaser_priceinsight form select { font-size: 90%; width: 8em; } .teaser_priceinsight form .submit { background: #039; color: #fff; font-weight: bold; width: 5em; } .price_insight_link { background: #74B4CD; padding: 0.2em 10px; font-size: 90%; font-weight: bold; margin-bottom: 6px; } .price_insight_link a { text-decoration: none; color: #f6f6f6; } .price_insight_link a:hover { text-decoration: underline; } /* ****************************** searchbox ****************************** form#searchbox { border: 2px solid #f0f0f0; margin: 16px; } #searchbox .filters, #searchbox .fields { padding: 18px 12px; background-color: #fffef9; border: 2px solid #f0f0f0; color: #333; } #searchbox img { float: right; vertical-align: middle; margin-top: 2px; } #searchbox .filters input { vertical-align: top; } #searchbox input { margin-right: 4px; background-color: #fffef8; } #searchbox input.search_submit { background-color: #999; font-size: 0.7em; color: #fff; border-right: 1px solid #717171; border-bottom: 1px solid #717171; border-left: 1px solid #999; border-top: 1px solid #999; margin: 0 20px 0 0; padding: 0 2px; } #searchbox label { padding: 5px 14px 5px 2px; font-size: 0.8em; } h4.search_title { margin: 10px 10px 2px 30px; } #searchbox input.textfield { background-color: #fff; font-size: 0.9em; color: #000; width: 15em; border: 1px solid #ccc; } /* ****************************** content-divs ****************************** \*/ #contact, #error, #feature, #features_archive, #gallery, #global_search, #item, #item_list, #news_archive, #newsletter, #overview, #privacy, #rdf, #registration, #syndication, #services, #tools, #forum, #features_overview, #mitte_text { margin: 5px 10px 0; clear: both; background-color: #fff; color: #000; border-top: 1px solid #ccc; } #contact, #feature, #gallery, #item, #item_list, #newsletter, #privacy, #forum, #features_archive, #features_overview, #zoom { padding: 15px; } /* **************************** navigation for topcycleteaser ***************************** \*/ #topcycleteaser .topcycleentry { display: none; } #content #topcycleteasernav { font-size: 85%; min-height: 1.5em; list-style: none; padding: 15px 0 10px; text-align: center; } #content #topcycleteasernav li { display: inline; margin: 0 8px; } #content #topcycleteasernav li.ho { background: url('/icons/bullet_ho.gif') 2px top no-repeat; } #content #topcycleteasernav li.open { background: url('/icons/bullet_open.gif') 2px top no-repeat; } #content #topcycleteasernav li.security { background: url('/icons/bullet_security.gif') 2px top no-repeat; } #content #topcycleteasernav li.developer { background: url('/icons/bullet_developer.gif') 2px top no-repeat; } #content #topcycleteasernav li span { padding: 1px 0 1px 19px; } #content #topcycleteasernav li span:hover { cursor: default; } #content #topcycleteasernav li.active span { background: url('/icons/bullet_active.gif') left top no-repeat; font-weight: bold; } /* ****************************** navigation for cycleteaser ****************************** \*/ ul.cycleteaser_navi { text-align: center; } ul.cycleteaser_navi li { display: inline; padding: 2px 6px; margin: 0px 2px; border-radius: 10px; } ul.cycleteaser_navi li.active { background: #dedede; } /* ****************************** contact ****************************** \*/ #contact h1, #contact h2 { margin-bottom: 10px; } #contact h1 { font-size: 1.2em; color: #000; font-weight: normal; } #contact p { margin: 5px 10px 12px 0; line-height: 1.3em; } #contact pre { margin-bottom: 12px; margin-left: 0px; font-size: 10px; } #contact .subheading { font-size: 1em; color: #012469; } #contact div.author { margin: 10px 10px 0 0; font-size: 0.9em; color: #2274e4; font-weight: normal; padding-bottom: 1em; } #contact h5 { color: #012469; font-size: .9em; margin: 5px 0; } #contact ul, #contact ol { margin: 5px 30px 20px 20px; line-height: 1.2em; font-size: 0.85em; } #contact ol { margin-left: 20px; } /* ****************************** errors ****************************** \*/ #error { padding: 20px; } #error ul { margin-left: 50px; font-size: 0.9em; font-weight: bold; } #error h1 { color: #c00; margin-bottom: 10px; } #error .errorbox { background: #ebfdfe url(/icons/error.gif) 25px center no-repeat; border: 1px solid #feafaf; margin: 10px 20px; min-height: 3em; } #error .errorbox p { color: #c00; font-size: 1em; font-weight: bold; margin: 20px 25px; } /* ************************** feature and item ************************* \*/ #feature .date, #item .date, #feature .forum_link, #item .forum_link { float: left; margin: 12px 0; } #feature .page_navi, #item .prev_next { float: right; margin: 12px 0; } /* ****************************** feature ****************************** \*/ #feature .toc { float: right; width: 12em; font-size: 0.8em; line-height: 1.2em; margin: 25px 20px 12px; } #feature pre { margin-bottom: 12px; margin-left: 0px; font-size: 10px; } #feature .title, #feature h1, #features_overview h1.author { margin: 5px 0; font-size: 1.2em; color: #012469; } #feature .subtitle, #feature h2 { font-size: 1em; color: #2274e4; margin: 6px 10px 12px 0; } #feature .subheading { font-size: 1em; color: #012469; } #feature h4.author, #feature div.author { margin: 10px 10px 0 0; font-size: 0.9em; color: #2274e4; font-weight: normal; padding-bottom: 1em; } #feature h5 { color: #012469; font-size: .9em; margin: 5px 0; } #feature p { margin: 5px 10px 12px 0; line-height: 1.3em; } #feature ul, #feature ol { margin: 5px 30px 20px 20px; line-height: 1.2em; font-size: 0.85em; } #feature ol { margin-left: 20px; } #feature p b { font-size: 1em; color: #333; } #feature .date { color: #617f9d; font-size: 0.8em; } #feature .print { clear: both; font-size: 0.8em; } #feature .print a { text-decoration: none; color: #666; background-color: #faf9ef; padding: 3px; margin-left: 10px; } #feature .print a:hover { text-decoration: underline; } #feature .table_scroll { width: 508px; overflow: scroll; } /* ****************************** features_archive ****************************** \*/ #features_archive h1 { font-size: 1.2em; color: #000; margin: 5px 0 15px; font-weight: normal; } #features_archive ul { list-style-type: none; padding: 5px 0; line-height: 1.4em; } #features_archive a { text-decoration: none; color: #012469; font-weight: bold; font-size: 0.8em; } #features_archive a:hover { text-decoration: underline; } .rubric { color: #333; padding: 0px 10px; font-weight: normal; font-size: 90%; } #features_archive .date { color: #999; font-weight: normal; font-size: 0.8em; } /* ****************************** features_overview ****************************** \*/ #features_overview h1 { color: #000; font-size: 1.2em; margin: 5px 0 15px; font-weight: normal; } #features_overview h1.author { font-weight: bold; } #features_overview h3 { margin: 12px 10px 0 0; line-height: 1.2em; color: #012469; padding-bottom: 5px; } #features_overview h3 .date { color: #666; font-size: 80%; font-weight: normal } /* ****************************** news item ****************************** \*/ #item h1 { color: #012469; margin: 10px 0; } #item h3.subheading { font-size: 0.9em; color: #012469; margin-top: 20px; margin-bottom: 0; } #item p { line-height: 1.3em; margin: 20px 0 2px; } #item p img { vertical-align: bottom; } #item ul, #item ol { line-height: 1.3em; margin: 5px 15px; font-size: 0.85em; padding-left: 1em; } #item ol { margin-left: 20px; } #item .date { color: #999; font-size: 0.8em; } #item .mail_print { clear: both; font-size: 0.8em; } #item .prev_next { font-size: 0.8em; text-align: right; padding-right: 12px; color: #ccc; } #item .mail_print a, #item .prev_next a { text-decoration: none; color: #666; } #item .mail_print a { background-color: #faf9ef; padding: 3px; } #item .mail_print a:hover, #item .prev_next a:hover { text-decoration: underline; } #item .item_wrapper { margin-bottom: 12px; margin-top: 12px; } #item .news_promo { padding: 10px 6px; border: 1px solid #ccc; margin-top:10px; margin-left: -5px; } #item .news_promo p { margin:0; } /* ****************************** 7days news ****************************** \*/ #item_list h1 { color: #000; font-size: 1.2em; margin: 5px 10px 15px; font-weight: normal; } #item_list h4 { margin: 10px 10px 4px; font-size: 0.9em; color: #333; } #item_list h3.date_separator { margin: 10px 10px 4px; } #item_list p { margin: 10px 10px 10px; } #item_list ul { margin-bottom: 12px; margin-left: 10px; line-height: 1.5em; list-style-type: none; font-size: 0.85em; } #item_list ul a { text-decoration: none; } #item_list ul a:hover { text-decoration: underline; } /* ****************************** archive calendar ****************************** \*/ #news_archive h1 { color: #000; font-size: 1.2em; margin: 5px 10px 15px; font-weight: normal; padding: 16px 0 0 16px; } #news_archive p { margin: 10px 10px 0 30px; padding-bottom: 10px; } #news_archive table { margin-left: 20px; } #news_archive table td { padding: 5px 10px 5px 10px; } #news_archive pre { margin-top: 10px; font-size: 11px; } a.news_archiv, a.news_archiv span.sunday { text-decoration: underline; } a.news_archiv:hover, a.news_archiv:hover span.sunday { text-decoration: none; } span.weekday { background: #eee; padding: 1px; } span.sunday { background: #def; padding: 1px; } /* ****************************** newsletter ****************************** \*/ #newsletter h1 { color: #000; font-size: 1.2em; padding: 16px 0 0 16px; margin: 5px 10px 15px; font-weight: normal; } #newsletter h2 { color: #999; font-size: 1.2em; margin-left: 30px; } #newsletter h4 { margin: 20px 30px; } #newsletter p.description { margin: 20px 30px; } #newsletter p { margin: 10px 0; font-size: 0.85em; } #newsletter .errorbox { background: #ebfdfe url(/icons/error.gif) 25px center no-repeat; border: 1px solid #feafaf; margin: 10px 30px; min-height: 3em; } #newsletter .errorbox p { color: #c00; font-size: 1em; font-weight: bold; margin: 20px 45px; } #newsletter .newsletter_info { color: #333; padding: 10px 20px; background-color: #fefdf6; border: 1px solid #a3b2d0; margin: 10px 30px; } #newsletter .newsletter_info h2 { margin-left: 0; } #newsletter .bg_box { background-color: #f4f4f4; padding: 15px 20px; margin: 20px 30px; } #newsletter .bg_box h3 { margin: 10px 0; color: #012469; } #newsletter .bg_box input, #newsletter .newsletter_info #confirm-subscription input { background-color: #039; color: white; padding: 1px 2px; } #newsletter .bg_box label { color: #535353; font-size: 0.9em; } #newsletter .bg_box label .error { color: #c00; font-size: inherit; font-weight: bold; } #newsletter .bg_box label input { background-color: #fffdf6; margin-top: 4px; color: #000; } #newsletter .privacy h3 { font-size: 0.9em; margin: 30px 30px 5px; color: #012469; } #newsletter .privacy p { margin: 5px 30px; } #newsletter .footer { font-size: 0.8em; margin: 10px 0 0 30px; padding-bottom: 30px; } /* ****************************** overview ****************************** \*/ #overview h2 { font-size: 0.8em; margin: 5px 10px 10px 0; font-weight: normal; } #overview h3 { margin: 12px 10px 0 0; line-height: 1.2em; color: #012469; padding-bottom: 5px; } #overview h3.alert { margin-bottom: 10px; } #overview h3 .date { color: #666; font-size: 80%; font-weight: normal } #overview p, #features_overview p { color: #222; } #overview p + h2 { padding-top: 20px; } #overview a { text-decoration: none; color: #012469; } #overview a:hover { text-decoration: underline; } #overview a:visited { color: #666; } #overview ul { list-style-type: none; padding: 15px 10px 5px 0px; line-height: 1.5em; } #overview ul li a { font-weight: bold; } #overview .topteaser { float: left; width: 50%; } * html #overview .topteaser { width: 15.3em; } #overview .topteaser h2, #overview .topteaser h3, #overview .topteaser p { margin-left: 16px; margin-right: 10px; } #overview .topteaser h2 { margin-bottom: 0; } #overview .topteaser h3 { margin-top: 7px; } #overview h3.date_separator, #item_list h3.date_separator { color: #888; border-bottom: 1px solid #dcdcdc; font-size: 0.8em; font-weight: normal; padding-bottom: 3px; } #overview h3.date_separator { margin: 15px 0 0 0; } #overview .teaserlist { margin: 5px 16px 0; border-top: 1px solid #dedede; clear: both; } #overview .teaserlist img.rss { float: right; margin: 20px 10px 10px; } #overview img.mark { float: none; margin: 0; padding: 0; } #overview .teaserlist h2 { color: #000; font-size: 1.2em; font-weight: normal; margin: 20px 0 10px; } /* ****************************** privacy policy ****************************** \*/ #privacy p { margin-top: 5px; margin-bottom: 12px; } #privacy h1 { font-size: 1.2em; color: #000; font-weight: normal; padding-bottom: 10px; } #privacy h2 { font-size: 1.0em; color: #012469; margin-bottom: 6px; margin-top: 16px; } /* ****************************** mail form ****************************** */ #mailform, .mailsent { background-color: #f4f4f4; padding: 15px 20px; margin: 20px 0 45px; } #mailform p { margin-top: 5px; font-size: 0.8em; } #mailform fieldset p { margin-left: 0; } #mailform legend { font-size: 0.9em; color: #333; margin-bottom: 0; font-weight: bold; } #mailform input { margin-right: 7px; } #mailform textarea, #mailform img { display: block; margin-top: 4px; margin-bottom: 10px; } #mailform label { display: block; color: #535353; font-size: 0.9em; margin: 10px 0 16px 0; } #mailform .captcha { margin: 10px 0; font-size: 0.9em; color: #535353; } #mailform .captcha label { margin-top: 16px; font-size: inherit; } #mailform .captcha label input { display: block; margin: 5px 0; } #mailform input { background-color: #039; color: white; padding: 1px 2px; margin-top: 12px; margin-right: 6px; } #mailform textarea, #mailform label input { background-color: #fffdf6; margin-top: 4px; color: #000; } /* ****************************** rss-feeds ****************************** \*/ #rdf h1 { color: #000; font-size: 1.2em; padding: 16px 0 0 16px; margin: 5px 10px 10px; font-weight: normal; } #rdf h2 { margin: 4px 30px; } #rdf p, #rdf h3 { margin: 5px 30px 0; } #rdf div { border: 1px solid #ccc; padding: 5px 10px 10px; margin: 20px; } #rdf img { margin-left: 5px; } #rdf ol, #rdf ul { margin: 10px 30px 0 50px; line-height: 1.2em; font-size: 0.85em; padding-bottom: 15px; } /* ****************************** registration ****************************** \*/ #registration, #mitte_text { padding: 16px; } #registration p, #mitte_text p { font-size: 0.85em; } #registration h2, #registration form legend, #mitte_text h2, #mitte_text form legend { font-size: 0.9em; color: #333; margin-bottom: 0; font-weight: bold; } #registration .password legend, #mitte_text .password legend { font-size: 1.0em; margin-bottom: 10px; } #registration form, #mitte_text form { background-color: #f4f4f4; padding: 15px 20px; margin: 20px 30px; } #registration form h2, #registration form p, #mitte_text form h2, #mitte_text form p { margin: 0; } #registration p.data, #mitte_text p.data { margin: 2px 0 6px; } #registration p.data strong, #mitte_text p.data strong { display: block; margin-bottom: 2px; } #registration fieldset, #mitte_text fieldset { margin-bottom: 10px; } #registration form label, #mitte_text form label { color: #535353; font-size: 0.9em; display: block; } #registration .left, #mitte_text .left { float:left; } #registration input, #mitte_text input { background-color: #fffdf6; margin-top: 4px; color: #000; margin-right: 6px; padding: 1px 2px; margin-bottom: 6px; } #registration form input[type="submit"], #registration form input[type="reset"], #mitte_text form input[type="submit"], #mitte_text form input[type="reset"] { background-color: #039; color: white; margin-top: 12px; } #registration .login label.check, #registration .note, #registration .label_top, #mitte_text .login label.check, #mitte_text .note, #mitte_text .label_top { color: #333; font-weight: bold; margin-top: 12px; display: block; } #registration div.label_top, #mitte_text div.label_top { font-size: 0.9em; } #registration .note, #mitte_text .note { font-size: 0.9em; } #registration .register label.check, #mitte_text .register label.check { font-size: 0.85em; margin-top:4px; } #registration label.check input, #mitte_text label.check input { margin-right: 4px; vertical-align: middle; margin-top:0; } .regnavi h4 { font-size: 0.9em; color: #333; margin: 10px 12px 4px; } .regnavi h4 a { color: #333; } .regnavi p { font-size: 0.8em; color: #039; margin: 10px 12px 4px; } .regnavi p a { color: #039; text-decoration: none; } .regnavi p a:hover { text-decoration: underline; } .regnavi p.contact { color: #333; } /* ****************************** global_search****************************** \*/ #searchresult h2 { margin: 20px 4px 4px 30px; } #searchresult h4 { margin: 4px 4px 18px 30px; font-size: 1.0em; color: #666; font-weight: normal; } #searchresult h4 b { color: #f00; } #searchresult h4.result { color: #333; font-size: 0.9em; line-height: 1.3em; } #searchresult ol { margin: 10px 10px 15px 35px; line-height: 1.2em; font-weight: bold; font-size: 0.9em; } #searchresult ol li { padding-bottom: 10px; } #searchresult ol li p { margin-left: 0; } #searchresult ol li h5 { font-size: 1.1em; } #searchresult ol li a { text-decoration: none; } #searchresult ol li a:hover { text-decoration: underline; } #searchresult ol li .date { font-weight: normal; color: #999; font-size: 0.85em; } #searchresult li .extrainfo { font-size: 0.9em; font-weight: normal; } #searchresult li .extrainfo .type { padding-right: 6px; font-weight: bold; } #searchresult li .extrainfo .date { color: #666; } #searchresult ol li .description { font-weight: normal; margin-left: 0; } #searchresult .searchterm { color: #f00; } #search_help { padding: 16px; } #search_help ul { margin: 15px 30px 15px 20px; list-style: url(/icons/bullet.gif); font-size: 0.9em; line-height: 1.2em; } #search_help .raquo { font-size: 1.1em; font-family: verdana, sans-serif; color: #f60; } /* ****************************** sitemap ****************************** \*/ #sitemap_navi { border-top: 1px solid #a5a2a2; border-bottom: 1px solid #a5a2a2; background-color: #a5a2a2; width: 60em; min-width: 960px; float: left; } #sitemap_navi a { text-decoration: none; color: #fff; } #sitemap_navi a:hover { text-decoration: underline; } #sitemap_navi h4 a { font-size: 0.7em; color: #111; font-weight: normal; } #sitemap_navi ul { list-style: none; margin: 0 0 5px 0; font-size: 0.7em; line-height: 1.1; } #sitemap_navi div { padding: 15px 10px 10px 15px; float: left; width: 7em; } /* ****************************** footer ****************************** \*/ #footer { color: #000; width: 60em; min-width: 960px; white-space: nowrap; border-top: 1px solid #999; background-color: #c1c1c1; float: left; } #footer a { color: #000; text-decoration: none; } #footer a:hover { text-decoration: underline; } #footer .left { float: left; font-size: 0.8em; padding: 5px; } #footer .right { float: right; font-size: 0.8em; padding: 5px; } #footer .right a { margin-right: 1em; } /* ****************************** more link ****************************** \*/ div.more { background: url(/icons/morenews.jpg) top right repeat-y; padding: 8px 0; text-align: right; font-style: italic; margin-right: 20px; margin-top: 20px; } div.more p { padding: 5px 15px 4px; background-color: #fff; margin: 0; } #overview div.more p { margin: 0; } #overview div.more a, #overview div.info a { color: #2659e4; } div.more a, div.info a, div.more_features a, div.more_link a { color: #2659e4; text-decoration: none; } div.more a:hover, div.info a:hover, div.more_features a:hover, div.more_link a:hover { text-decoration: underline; } div.info { text-align: right; padding: 12px 10px; font-style: italic; font-size: 0.8em; margin-right: 20px; } div.more_features, div.more_link { background: url(/icons/morearticles.jpg) top right no-repeat; padding: 0.18em 15px 4px; text-align: right; font-style: italic; margin-bottom: 16px; margin-right: 20px; } #item_list div.more_features a, #overview div.more_link a, #features_overview div.more_features a { color: #2659e4; font-size: 0.8em; } #features_overview div.more_features { margin-top: 20px; clear: both; } /* ****************************** paging & navi tocs ****************************** \*/ /* #feature .page_navi a, #services .page_navi a { text-decoration: none; padding: 3px 2px 1px 2px; margin: 0px 1px; } #feature .page_navi b { color: #333; background-color: #ddd; padding: 3px 5px 1px 5px; } #feature div.page_navi a:hover, #services div.page_navi a:hover { text-decoration: underline; } #feature .page_navi a.laquo, #services .page_navi a.laquo { font-size: 1.1em; font-family: verdana, sans-serif; color: #5f8ed5; } #feature div.page_navi a.laquo:hover, #services div.page_navi a.laquo:hover { color: #5f8ed5; } */ .page_navi { font-size: 0.7em; text-align: right; padding-right: 30px; color: #333; } #features_overview .page_navi { margin-top: 50px; } .page_navi a { text-decoration: none; padding: 3px 2px 1px 2px; margin: 0px 1px; } .page_navi b, #searchresult .page_navi .aktiv { color: #333; background-color: #ddd; padding: 3px 5px 1px 5px; } #searchresult .page_navi { text-align: center; padding: 0 12px 12px 0; } #searchresult .page_navi a:hover { background-color: #012469; color: #fff; text-decoration: none; } #searchresult .page_navi .laquo { font-size: 1.1em; font-family: verdana, sans-serif; color: #ddd; } #searchresult .page_navi .laquo a { font-size: 1.1em; font-family: verdana, sans-serif; color: #5f8ed5; background-color: transparent; } #searchresult .page_navi .laquo a:hover { background-color: transparent; color: #5f8ed5; } #feature .navi_toc, #services .navi_toc { float: right; clear: right; width: 210px; line-height: 1.2em; margin: 25px 0 15px 20px; } #feature .navi_toc ol, #services .navi_toc ol { list-style: none; margin: 0; font-size: 0.8em; } #feature .kicker_toc, #services .kicker_toc { float: right; margin: 0 0 5px 15px; } #feature .kicker_toc .navi_toc, #services .kicker_toc .navi_toc { float: none; margin: 10px 10px 5px 0; } /* ****************************** news- and feature-options ****************************** \*/ .news_option, .feature_option { background: #faf9ef; padding: 4px 6px; clear: both; font-size: 0.8em; margin-left: -5px; } .news_option a, .feature_option a { text-decoration:none; } /* ****************************** forum-link ****************************** \*/ .forum_link { font-size: 0.9em; } #item .forum_link p, #feature .forum_link p { margin: 0; } .forum_link a { text-decoration: none; } .forum_link a:hover { text-decoration: underline; } /* ****************************** bookmarks ****************************** \*/ #social_bookmarks { font-size: 0.8em; color: #333; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 10px 0px 10px 15px; clear: both; margin: 0 10px; background-color: #fff; } #social_bookmarks ul { margin-left: 0; margin-bottom: 0; } #social_bookmarks li { display: inline; list-style: none; margin-right: 10px; } /* ****************************** teaser-pics ****************************** \*/ .teaser_pic_left, .teaser_pic_right { clear:both; overflow:auto; padding:5px 0; } .teaser_pic_left img { float: left; margin-right: 15px; padding-bottom: 5px; } .teaser_pic_right img { float: right; margin: 0 5px 0 10px; padding-bottom: 5px; } .teaser_pic_left img.category, .teaser_pic_right img.category { margin-right: 5px; padding-bottom: 0; float: none; } .teaser_pic_left p, .teaser_pic_right p { margin-bottom: 0; } /* ****************************** rubric-table and box ****************************** \*/ #contact table, #feature table { font-size: 0.9em; margin-bottom: 10px; margin-left: auto; margin-right: auto; } #contact td, #feature td, #item td, #printview td { font-size: 0.9em; border: 1px solid #ccc; padding: 4px 6px 4px 6px; } .heise-table-title { background-color: #ccc; text-align: center; font-weight: bold; color: #111; } .heise-table-subtitle { background-color: #eee; } .heise-table-header { font-weight:bold; } .heise-table-emph { color: #09f; } .heisebox, .heisebox_left, .heisebox_right { background-color: #ececec; } .heisebox { margin: 1.5em 0; } .heisebox_left, .heisebox_right { width: 42%; } .heisebox_left { float: left; margin: 0.5em 1.2em 0.5em 0; } .heisebox_right { float: right; margin: 0.5em 0 0.5em 1.2em; } .heisebox h4, .heisebox_left h4, .heisebox_right h4 { font-size: 1em; margin: 0; padding: 0.3em 0.75em; color: #333; background-color: #ddd; } #content .heisebox pre, #content .heisebox_left pre, #content .heisebox_right pre, #content .heisebox p, #content .heisebox_left p, #content .heisebox_right p { font-size: 0.8em; margin: 0.75em; } /* ****************************** pics ****************************** \*/ .pic_left { float:left; line-height:105%; margin:12px 1.4em 12px 0; } .pic_right { float:right; line-height:105%; margin:12px 0 12px 1em; text-align:right; } .pic_center { clear:both; line-height:105%; margin:.2em auto; text-align:center; } span.pic_left, span.pic_right, span.pic_center { display:block; } .source { color:#666; font-size:80%; } .pic_caption { font-size: 80%; } .pic_caption img { vertical-align: middle; } /* ****************************** gallery preview ****************************** \*/ #gallery_preview { width: 385px; margin: 5px auto; background: #eee; padding: 5px 5px 5px 10px; clear: both; } #gallery_preview a { text-decoration: none; } #gallery_preview a:hover { text-decoration: underline; } #gallery_preview .pics { margin: 5px 0; } #gallery_preview .pics img { margin-right: 5px; } #gallery_preview p { font-size: 0.8em; } /* ****************************** printview ****************************** \*/ #printview #logo { margin: 10px; } #printview { background: white; color: black; padding: 20px; } #printview h1, #printview h2 { font-size: 1.4em; color: #000; margin: 5px 0; } #printview .subtitle { margin: 6px 0 12px; } #printview ul { margin-left: 20px; margin-bottom: 12px; font-size: 0.9em; line-height: 1.3em; } #printview table { margin: 10px 0 12px; } #printview h4.author, #printview div.author { margin: 10px 0 0; font-size: 0.9em; color: #333; font-weight: normal; } #printview .date { color: #333; font-size: 0.8em; } #printview hr { clear: both; } #printview pre { margin-left: 0; } /* ****************************** zoom ****************************** \*/ #zoom h1 { margin: 10px 0; color:#000; } #zoom .pic_caption, #zoom .source { display: block; color:#000; } .zoom_navi { margin: 10px 0; } /* ****************************** preview ****************************** \*/ .preview { background-color: #f3f3f3; } /* ******************* related items ******************* */ .related_items a { text-decoration: none; } .related_items a:hover { text-decoration: underline; } .related_items { margin-bottom: 2em; line-height: 120%; } * html .related_items { padding-top: 20px; } *+html .related_items { padding-top: 20px; } .related_items ul { list-style: none; font-size: 80%; } #item .related_items ul, #feature .related_items ul { margin: 5px 0; } .related_items h4 { margin-bottom: 0; padding-top: 15px; font-size: 80%; } /* ******************* cookie warning ******************* */ .cookie_warning { background: #ffffbb; border: 4px solid #eeaa88; position: absolute; top: 10px; left: 10px; z-index: 1000; border-radius: 10px; padding: 12px 12px 4px; } .cookie_warning p { margin: 0 0 8px; } .cookie_warning button { background-color: #666666; border: medium none; color: #FFFFFF; padding: 1px 2px; } .cookie_warning button:hover { background-color: #888888; } #cookie_warning { width: 400px; display: none; } #cookie_warning_small { width: 200px; } ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/gif Content-Location: http://www.h-online.com/security/icons/bg_645_355.gif Content-Transfer-Encoding: Base64 R0lGODlh0AceAJEAAMBqDbxvGPPz8////yH5BAAAAAAALAAAAADQBx4AAAL/nI+p y+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNd2AuS6Hgj+DwwKh8Si8YhMKpfM pvMJjUqn1Kr1is1qt9yu9wsOD2/ksvmMTqvX7Lb7DY/L5/S63b7L98T8vv8PGCg4 SFhoeIiY6HXH2Oj4CBkpOUlZaXmJmanJkbezpwgaKjpKWmp6ipqqKrTZ6voKGys7 S1tre4t718mz2uv7CxwsPExcvJSLnKy8zNzs/AwdLS2xm/NpjJ2tvc3d7b09HS4+ Tl5ufo6ePl4NcP39Dh8vP09fr6SOn6+/z9/v/w9wAjt39goaPIgwoUJCARs6fAgx osSJFNEMXIgxo8aN/xw7/qgIMqTIkSRLmsx30aPKlSxbulR1MqbMmTRr2rzJJuXL nTx7+vx5BafQoUSLGj1KVCfQpUybOt2JNKrUqVSrWpWm9KnWrVy7xrsKNqzYsWTL usnqNa3atWxNmX0LN67cuXQjoG2LN6/evYvq+v0LOLDgmnf5Gj6MODGRwYwbO34M +VxhxZQrW04bObPmzZw7X5p8ObTo0S89mz6NOrXqGaBJu34N++Dq2bRr2779oHXs 3bx7Z8MNPLjw4Y91+z6OPLlb4sybO39e1bjy6dSrA4KOPbv27SOlW/8OPrwV7uTL mz+Pzrv49ezbF0EPP778+bTUu7+PPzz9/fz7+0zHUw1B+Q1IoHj/HYhgggrGYF+B Dj5I2oISTkhhhRg0CGGGGiJmYYceflghhhuOSOJaIJ6IYoryiVhiiy42pWKMMs7Y HIsv3oijSwUAADs= ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/gif Content-Location: http://www.h-online.com/security/icons/border_left.gif Content-Transfer-Encoding: Base64 R0lGODlhCgAUAIAAAMBqDQAAACH5BAAAAAAALAAAAAAKABQAAAIMhI+py+0Po5y0 2usKADs= ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/jpeg Content-Location: http://www.h-online.com/security/icons/frame.jpg Content-Transfer-Encoding: Base64 /9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAARgAA/+4ADkFkb2Jl AGTAAAAAAf/bAIQABAMDAwMDBAMDBAYEAwQGBwUEBAUHCAYGBwYGCAoICQkJCQgK CgwMDAwMCgwMDQ0MDBERERERFBQUFBQUFBQUFAEEBQUIBwgPCgoPFA4ODhQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AA EQgASAARAwERAAIRAQMRAf/EAFoAAQEBAQAAAAAAAAAAAAAAAAAGBQgBAQEBAQEA AAAAAAAAAAAAAAAFBAMCEAABBQEAAAAAAAAAAAAAAAAAAVFhFBUTEQEBAQEAAAAA AAAAAAAAAAAAExIR/9oADAMBAAIRAxEAPwDvnqctvXDqNnDqNnGf3kwUdsneRQyd 5FDLItyTKtOC3IqYLciphPXZJ1GzBdkUMF2RQwl9FHJ9G+Zoo4oTNFHFCaQ05J9F KZpyKEzTkUJo7RVyftSmaKuNkzRVxsmmLiuYtN+C4rjRguK40YZ5ydgAB//Z ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/png Content-Location: http://www.h-online.com/security/icons/header_bg.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABsAAAB8CAIAAAAXR1zgAAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJZJREFUeNrsmMsNwCAMQ9OKnbr/oUv1 YpZwpQQ/BkD5PDuB63ufsp673GeV1D3GX7J23yj3lf4YR9SxQusoNNOTx0TCZ8QY ymOiU9izXgrVDN7TlB46k+MUIzycXqPrTo4rCA+hJ1SFylQhWwq9ZpPCH5mF9Bpd oxlemifXEXos9FTlZZ35yzVjcsEj/gjh0HMCPVuAAQDC958oep3PlAAAAABJRU5E rkJggg== ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/png Content-Location: http://www.h-online.com/security/icons/header_bg_left.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABsAAAB8CAYAAACYJcu3AAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVpJREFUeNrsmcFKw0AURV9qCQQEt4LQ ldtCFiW6EFy5ddvP6FYQhH6SnyCJrvwAv8E/MFk875QQWqoxkplhktwLj2lWh/vm zpuERqoqXVS9XZ9guavrBmWe03rtpOgvGCDnWLaoNepMeuhXWPV6lWB5RG1Qp2JB P8IAMm6eUZlY1BEMoLQGLcSyDmBVsXP0jroQB2pgZZHFWHLbrdvXvPml8uQS1Dgr 88y07cNW6tqdqTy4Bu2cfb2sDOQTlbiGzeHq3gfIaIa6FU+CM136ghlnlx6d9Zvk /4KpaOzTmYwU5pFGZwOE6Yjb6I82ExG20UIaOUEGt2ec+gOMPgPCQz3JNPq+qZlG ppGz0X1AlAGhs0Ciz3FFZyGNK14xTOM008gPC95nnCB8u+KecTYyjZwgY5/6/P+M 0Z9q9EXYRt7UYezZmF94eM4GGBDeZzzUgRxqRp/Rb9W3AAMAfB/L3W6YdHcAAAAA SUVORK5CYII= ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline Content-Type: image/png Content-Location: http://www.h-online.com/security/icons/header_bg_right.png Content-Transfer-Encoding: Base64 iVBORw0KGgoAAAANSUhEUgAAABsAAAB8CAYAAACYJcu3AAAAGXRFWHRTb2Z0d2Fy ZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVxJREFUeNrsWbtqAlEUPC6rICykk4CQ Kq1gISvEIn+QX7EVAqbyA/wMS8HORnGF2OUzbIWAqMjNXMkWMSKK3sM+5shgowxz z5w5d9nCdt40cnntga/f7wgYWxRfPveX/LlwJdmpWgED4AOky/NkUXgrWVzfQB/o FVuL9akfeHK/CoB3YLKbNx9dk8UVAgsQ1v+T2UO8P56A0S76q9Az4uxTBYbwRMm1 shgh0HXZs+Nqb2dhVUOZRQB0DnO2mTaMgjo7dxVfNKhEysCbJ3r1CmVGi6ymqexZ q2e2Hnyjx1bSVCbKZIpsVJZCMpPhY9Rj0wziDB+jb5ggqesZUz+F1qdBONS5dKP2 pqYb6UZmo3uDGBqEyhJifcYVlSUprrhi6MZ8upEPFtxnTBDertgzZiPdyATJeurz /Rmtn1fri/AYuamT0bMsX3g4Zyk0CPcZhzohQ03r0/pn60eAAQAYLTuEWCkIsAAA AABJRU5ErkJggg== ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline; filename=standard.css Content-Type: text/css; charset=utf-8; name=standard.css Content-Location: http://www.h-online.com/styles/security/standard.css Content-Transfer-Encoding: 8bit /* ****************************** colors ****************************** \*/ a, #overview h3, #overview a, #overview div.more_features a, div.more_features a, #overview div.more_link a, div.more_link a, #newsletter .bg_box h3, div.news_box li a, div.news_box h4 a, .feature_navi li a, #fora_list li a, .feature_navi h4 a, #fora_list h4 a, .feature_navi h4, #fora_list h4, #latest_posts h4, #latest_posts h4 a { color: #039; } #newsletter .bg_box input { background-color: #039; } .heise-table-emph { color: #f60; } #item_list h4.search_title, #news_archive h4.search_title { margin: 10px 10px 2px 30px; font-size: 0.8em; color: #ccc; } /* ****************************** layout ****************************** \*/ #wrapper { background: url(/security/icons/bg_645_355.gif) 64.5% 0 repeat-y; } #content_wrapper { background: url(/security/icons/border_left.gif) left top repeat-y; } #content { background: #c06a0d url(/security/icons/frame.jpg) left top repeat-x; } #frame_bottom { background: #c06a0d; } /* ****************************** header ****************************** \*/ #newsheader { background: #f9bf33 url(/security/icons/header_bg.png) left top repeat-x; } #newsheader_left { background: url(/security/icons/header_bg_left.png) no-repeat top left; } #newsheader_right { background: url(/security/icons/header_bg_right.png) no-repeat top right; } /* --------- png-bug IE6 ------------------------- */ * html #newsheader_left { background: url(/security/icons/header_bg_left.gif) no-repeat top left; } * html #newsheader_right { background: url(/security/icons/header_bg_right.gif) no-repeat top right; } /* ----------------------------------------------- */ ul#tab_navi li a { background-color: #88310a; } /* ****************************** login--search ****************************** \*/ #search form input.submit { background-color: #000; } #search form fieldset#inputs { border: 1px solid #e68512; } /* ****************************** right col ****************************** \*/ .feature_navi li a { font-weight: normal; } .split { background: #c06a0d; color: #c06a0d; } .price_insight_link { background: #c06a0d; } #right_col_navi { background: #c06a0d url(/security/icons/frame.jpg) left top repeat-x; } /* ****************************** comment ****************************** \*/ #comment img { float: right; margin: 20px 30px; } #comment h2 { float: left; margin-top: 52px; } #comment h3 { clear: both; } /* ****************************** subnavigation ****************************** \*/ #sub_navi { margin-top: 20px; } #sub_navi div { padding: 5px 10px; float: left; width: 45%; margin-bottom: 10px; } #sub_navi div.subright { border-left: 1px solid #fff; padding-right: 0; } #sub_navi h5 a { font-size: 0.9em; color: #333; text-decoration: none; margin-left: 20px; } #sub_navi ul { list-style: none; margin-left: 10px; line-height: 1.1; } #sub_navi ul a { color: #039; text-decoration: none; font-size: 0.8em; white-space: nowrap; } #sub_navi a:hover { text-decoration: underline; } /* ****************************** services ****************************** \*/ #services { padding: 0 16px 16px; } #services h1 { color: #012469; margin-top: 0.5em; } #services h2 { color: #012469; font-size: 1.1em; margin-bottom: 5px; } #services h2 a { color: #039; } #services h3 { margin: 10px 0; } #services h3 a { color: #039; } #services h3.subheading { margin: 0.75em 0 0; } #services h4 { margin: 12px 30px 5px; } #services .page_navi { margin-bottom: 20px; font-size: 0.7em; } #services table th a, #services table td a, #services ul a, #services .page_navi a, #services ul p a:hover { text-decoration: none; } #services table th a:hover, #services table td a:hover, #services .page_navi a:hover, #services ul p a { text-decoration: underline; } #services p { font-size: 0.9em; margin-top: 5px; margin-bottom: 12px; } #services .navi_toc { width:10em; } #services form p { font-size: inherit; margin-left: 0; } #services img { max-width: 508px; } #services ul, #services ol { font-size: 0.9em; margin-left: 20px; margin-right: 30px; line-height: 140%; padding-bottom: 10px; } #services ul p { font-size: inherit; } #services pre { font-size: 13px; margin-left: 30px; } #services ul pre { margin-left: 0px; } #services table { margin: 5px 20px 30px 0; border: 1px solid #999; border-spacing: 2px 2px; border-collapse: separate; } #services table th, #services table td { padding: 4px 8px; line-height: 1.2em; } #services table td { font-size: 0.8em; } #services table th { text-align: left; background-color: #ebf4fb; border-bottom: 1px solid #999; font-size: 0.9em; } #services .heise-table-title { background-color: #ebf4fb; border-bottom: 1px solid #999; font-size: 0.9em; } #services .heise-table-subtitle { background-color: #eff6fc; } #services .heise-table-emph { color: #000; background-color: #eee; } #services form { font-size: 0.8em; margin-left: 30px; } #services form input { display: block; margin-bottom: 10px; } #services form input[type="submit"] { background-color: #0345a9; color: #fff; } #services form input[type="text"], #services form input[type="password"] { background-color: #fffef8; color: #000; width: 140px; border: 1px solid #999; } #services .clear_bottom { height: 1px; } .bg_grey { background-color: #eee; } ul.navilist { list-style-type: none; } ul.navilist a { color: #039; text-decoration: none; } ul.navilist a:hover { text-decoration: underline; } /* ****************************** services subnavi ****************************** \*/ #services_sub_navi { margin: 30px 10px 20px 0; clear: both; } #services #services_sub_navi img { display: block; margin: 0 0 4px 0; width: 508px; } #services #services_sub_navi table { border: 1px solid #d8d8d8; width: 508px; margin: 0; border-collapse: collapse; } #services #services_sub_navi table th, #services #services_sub_navi table td { font-size: 0.8em; white-space: nowrap; padding: 0; } #services #services_sub_navi table td { vertical-align: top; background-color: #eee; } #services #services_sub_navi table th { text-align: left; border-bottom: 1px solid #ccc; padding: 5px 8px 2px 8px; background: none; } #services #services_sub_navi ul { list-style-type: none; line-height: 1.1; margin: 0; padding: 0; } #services #services_sub_navi a { color: #039; text-decoration: none; } #services #services_sub_navi li { padding: 6px 4px 2px 12px; border-bottom: 1px solid #fff; } #services #services_sub_navi li:hover { border-bottom: 1px solid #9ecff0; } .blueborder { border-left: 1px solid #9ecff0; border-right: 1px solid #9ecff0; } /* ****************************** tools ****************************** \*/ #tools { padding: 16px; } #tools h1 { color: #666; margin-bottom: 5px; } #tools h2, #tools h3 { color: #333; margin-bottom: 2px; margin-top: 12px; font-size: 0.9em; } #tools h2 a { color: #039; } #tools h4 { margin-left: 30px; font-size: 0.8em; } #tools p { margin: 5px 0; } #tools pre { margin-left: 30px; font-size: 10px; } #tools p.bg_white { color: #333; padding: 8px 5px 8px 30px; font-size: 0.9em; background-color: #fff; margin: 5px -30px; } #tools .formborder { border: 1px solid #dedede; padding: 10px; margin-bottom: 15px; } #tools form, #tools .toolbox { background-color: #f3f5ee; padding: 15px 20px; } #tools .toolbox a { display: block; /*width: 10em;*/ margin-top: 10px; background-color: #ddd; padding: 6px 12px 3px; font-weight: bold; color: #333; text-decoration: none; text-align: center; } #tools .toolbox p { margin-left: 0; font-size: 1.0em; } #tools p.contact { font-size: 0.8em; } #tools p.contact a { text-decoration: none; } #tools p.contact a:hover { text-decoration: underline; } #tools form h2, #tools form p { margin: 0; } #tools fieldset { margin-bottom: 10px; } #tools form label { color: #039; font-size: 0.9em; font-weight: bold; display: block; margin-bottom: 12px; margin-top: 6px; } #tools label input, #tools label select { background-color: #fff; margin-top: 4px; color: #000; display: block; } #tools label.check input, #tools label.inline, #tools label.inline input { display: inline; } #tools label.inline { margin-top: 16px; font-weight: normal; color: #000; } #tools label input.textfield, #tools label select.minwidth { width: 17em; } #tools input.submit { border-right: 1px solid #333; border-bottom: 1px solid #333; border-left: 1px solid #fff; border-top: 1px solid #fff; background-color: #666; color: white; padding: 1px 2px; margin-top: 12px; margin-right: 6px; } #tools form dl { width: 30em; } #tools form dl img { margin-left: 8px; } #tools form dl dd, #tools form dl dt { float: left; width: 45%; margin-top: 6px; padding: 4px; } #tools form dl dd { font-size: 0.9em; font-weight: bold; background-color: #ddd; } #tools form dl dd.transp { background-color: transparent; } #tools form dl dt { text-align: right; padding-right: 10px; color: #039; font-size: 0.9em; font-weight: bold; } #tools form dl dt label { display: inline; margin: 0; font-size: inherit; } #tools form dl.simple, #tools form dl.simple dd { width: auto; background-color: transparent; } #tools form dl.simple dt { width: 2.5em; text-align: left; font-size: inherit; clear: both; } #tools ul.presettings, #tools dl.ip_address { margin-left: 10px; } ul.presettings li { display: inline; padding-left: 10px; } #tools dl.ip_address dt a, ul.presettings li a, #tools #erg ul li a, #result ul li a { color: #039; font-weight: bold; text-decoration: none; } ul.presettings li a, #tools #erg ul li a, #result ul li a { font-size: 0.9em; } #tools dl.ip_address dd { font-size: 0.9em; margin-left: 20px; margin-right: 20px; line-height: 1.2em; } #tools dl.ip_address dd a { text-decoration: none; color: #039; } #tools .legend { margin-left: 10px; } #tools .legend td, #tools .legend th { padding: 0.5em; font-size: 0.8em; background: #eee; border: 1px solid #fff; } #tools #erg, #result { margin-top: 1em; } #result h3 { margin-bottom: 12px; } #tools #erg ul, #result ul { margin-left: 30px; list-style: none; line-height: 1.3em; } #tools #erg h4 { font-size: 0.9em; margin: 1em 0 0.5em; } #result table, table.whois { margin-left: 30px; margin-bottom: 20px; } #result table td, #result table th, table.whois td, table.whois th { padding: 0.5em; font-size: 0.8em; border: 1px solid #333; } #tools form .rfc_help { float: right; font-size: 0.9em; } #tools form .rfc_help a { color: #036a6a; text-decoration: none; } #tools form .rfc #text_search, #tools form .rfc #by_number { width: 13em; } #tools form .rfc label, #tools form .rfc { margin-top: 0; margin-bottom: 0; } #tools .drafts, #tools .rfcs, #tools dl { font-size: 0.9em; line-height: 1.2em; } #tools ol, #tools ul { line-height: 120%; margin: 3px 30px 8px 65px; font-size: 0.9em; } #tools ol ul, #tools ul ol { margin-left: 25px; font-size: 1em; } #tools .drafts ul { list-style-type: circle; margin: 10px 0; padding: 0 0 0 15px; } #tools .drafts ul li { margin-bottom: 0.75em; } /* ****************************** syndication ****************************** \*/ #syndication h2 { font-size: 1.2em; color: #666; font-weight: normal; margin-bottom: 12px; } #syndication p { font-size: 0.9em; margin-top: 5px; margin-bottom: 12px; } #syndication h3 { font-size: 1em; color: #012469; } /* ****************************** preview ****************************** \*/ .preview { background-color: #e9f3fb; } ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline; filename=print.css Content-Type: text/css; charset=utf-8; name=print.css Content-Location: http://www.h-online.com/styles/print.css Content-Transfer-Encoding: 8bit body { background: #fff; color: #000; } a { text-decoration: none; } #heiseadvert, #leaderboard, .skyscraper, .sponsor, .cadv, .badv, .advertisement, .noprint { display: none; } #footer { width: 100%; } /* ****************************** printview ****************************** \*/ #printview #logo { margin: 10px; } #printview { padding: 20px; } #printview h1, #printview h2 { font-size: 1.4em; color: #000; margin: 5px 0; } #printview .subtitle { margin: 6px 0 12px; } #printview ul { margin-left: 20px; margin-bottom: 12px; font-size: 0.9em; line-height: 1.3em; } #printview table { margin: 10px 0 12px; } #printview h4.author { margin: 10px 0 0; font-size: 0.9em; color: #333; font-weight: normal; } #printview .date { color: #333; font-size: 0.8em; } #printview hr { clear: both; } #printview pre { margin-left: 0; } #printview p { margin-bottom: 12px; } ------------ytOkYA6W03AAQrXwvszGIO Content-Disposition: inline; filename=external_links.js Content-Type: text/javascript; charset=utf-8; name=external_links.js Content-Location: http://www.h-online.com/support/external_links.js Content-Transfer-Encoding: 8bit function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i