/*
 * Default CSS style sheet for the ICU Open Source site
 * Copyright (C) 2005-2008, International Business Machines
 * Corporation and others.  All Rights Reserved.
 */

/* Global styles */
body,p,li,ol,ul,th,td {
	font-size: 10pt;
	font-family: "Arial", "Helvetica", sans-serif;
}

body {
	margin: 1em;
}

body.draft {
	background-image: url(images/draftbg.png);
}

.mainbody {
	padding: 1em;
}

/*
 * Customize the headers to have less space around them than usual
 */
h1 {
	margin-bottom: 5pt;
	margin-top: 5pt;
	font-weight: 700;
	font-size: 20pt;
	font-family: "Arial", "Helvetica", sans-serif;
}

h2 {
	margin-bottom: 0pt;
	margin-top: 12pt;
	font-weight: 700;
	font-size: 14pt;
	font-family: "Arial", "Helvetica", sans-serif;
}

h3 {
	background-color: #666666;
	color: White;
	margin-bottom: 0pt;
	margin-top: 12pt;
	padding-left: 0.75em;
	font-size: 1em;
	font-family: "Arial", "Helvetica", sans-serif;
}

h4 {
	margin-bottom: 0pt;
	margin-top: 12pt;
	font-size: 1em;
	font-family: "Arial", "Helvetica", sans-serif;
}

h5, h6 {
	margin-bottom: 0pt;
	margin-top: 12pt;
	padding-left: 0.75em;
	font-size: x-small;
	font-family: "Arial", "Helvetica", sans-serif;
}

/*
 * Navigation sidebar on the left hand of most pages
 */
td.sidebar1 { 
	background-color: #99CCFF;
	font-weight: 700;
	margin-top: 0px;
	margin-bottom: 0px;
	padding-top: 1em;
	padding-left: 0.2em;
	white-space: nowrap;
}

td.sidebar2 { 
	background-color: #99CCFF;
	margin-top: 0px;
	margin-bottom: 0px;
	margin-left: 0px;
	padding-top: 1px;
	padding-bottom: 1px;
	padding-left: 1px;
	padding-right: 0.5em;
	white-space: nowrap;
	text-decoration: none;
	display: block;
}
td.sidebar2:hover { 
	background-color: #EEEEFF;
	padding-top: 1px;
	padding-bottom: 1px;
	padding-left: 1px;
	padding-right: 0.5em;
}

a.sidebar2 {
	text-decoration: none;
	display: block;
	width: 100%;
}
a.sidebar2:link {
	color: #000099;
	display: block;
}
a.sidebar2:hover {
	background-color: #EEEEFF;
	display: block;
}
.underlinehover:hover {
	background-color: #EEEEFF;
	text-decoration: underline;
}

/* This is the faded header at the top */
td.fadedtop {
	background-color: #006699;
	background-image: url(http://www.icu-project.org/images/gr100.gif);
}

/* Related site on the left */
p.relatedsite {
	color: White;
	font-weight: 700;
	font-size: 10pt;
	margin-top: 1em;
	margin-bottom: 0;
	padding-left: 0.2em;
	white-space: nowrap;
}

/* Related site on the left */
p.sidebar3 {
	margin-top: 0.75em;
	margin-bottom: 0;
	padding-left: 0.8em;
}
a.sidebar3 {
	font-size: 0.9em;
	text-decoration: none;
}
a.sidebar3:link {
	text-decoration: none;
	color: White;
}
a.sidebar3:hover {
	text-decoration: underline;
}

/* FAQ */
li.faq_contents {
	font-weight: 500;
}
p.faq_q {
	font-weight: 700; 
	margin-bottom: 0px;
}
p.faq_a {
	margin-top: 0px;
}

/* News items */
table.newsItem {
	padding-left: 1em;
	padding-right: 1em;
	border-width: medium;
}
th.newsItem {
	background-color: #666666;
	color: White;
}
td.newsItem {
	background-color: #CCCCCC;
}

td.release-line,th.release-line {
	padding-left: 0.5em;
	padding-right: 0.5em;
	white-space: nowrap;
	border:1px;
}
.note {
	font-style: italic;
	font-size: small;
	margin-left: 1em;
}
samp {
	margin-left: 1em;
	margin-right: 2em;
	border-style: groove;
	padding: 1em;
	display: block;
	background-color: #EEEEEE
}
table.rtable caption {
	margin-left: 2px;
	margin-right: 2px;
	padding: 3px;
	font-weight: bold;
	background-color: #dee2ff;
	text-align: left;
}
table.rtable tr th {
	background-color: #dee2ff;
	text-align: left;
}
table.rtable tr td {
	background-color: #c0c0fd;
	padding: 3px;
}

/*  APIChangeReport specific things */
.row0 {
	background-color: white;	
}

.row1 {
	background-color: #dfd;
}

.verchange {
	color:  red;
	font-weight: bold;
	font-size:  large;
}

.stabchange {
	color:  red;
	font-size:  large;
}

.bigwarn {
	color: red;
	background-color: white;
	font-size:  x-large;
	margin:  0.5 em;
}


