/* Portions of this CSS are based on ideas from "Web Typography (c) 2004-6 Richard Rutter (clagnut.com)" at webtypography.net. */

/* === type === */
a { color: #01598e; }
body { font-size: 90%; background-color: #eee; }
table, tr, td, th { margin: 0; border: 0; padding-left: 0; }
table { margin-bottom: 1.6em; }
td, th { vertical-align: top; }
h1, h2, h3, h4, h5, h6 { font-family: Georgia, "Lucida Bright", "Times New Roman", serif; }
h1 a, h2 a, h3 a, h4 a, h5 a, h5 a, h6 a { color: #222; text-decoration: none; outline: none; }
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h5 a:hover, h6 a:hover { color: #222; }
pre { padding: 5px; background-color: #eee; }
pre + pre { margin-top: -1em; }
h1 { font-size: 2em; line-height: 1; margin-bottom: 0.75em; }
h2 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; }
h3 { font-size: 1.2em; line-height: 1.25; margin-bottom: 1.25em; }
h4 { font-size: 1em; line-height: 1; margin-bottom: 1.5em; }
h5 { font-size: 1em; line-height: 1; }
ins { background: #E6EFC2; color: #264409; }
del { background: #FBE3E4; color: #8a1f11; }

/* === pier === */
.errors, .broken { color: #8a1f11; }
.error, .notice, .success { border: none; }
a.external { background: url(external.png) right center no-repeat; padding-right: 14px; }

/* === annotations === */
p.blockquote { padding: 0.8em; margin-left: 2em; margin-bottom: 1em; }

p.todo { color: #8a1f11; }
p.todo:before { color: #8a1f11; content: "TODO"; }

p.important { padding: 0.8em; margin-bottom: 1em; background: #e8e0ef; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
p.important:before { color: #662d91; content: "Important"; }

p.note { padding: 0.8em; margin-bottom: 1em; background: #ebebeb; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
p.note:before { color: #777; content: "Note"; }

p.advanced { padding: 0.8em; margin-bottom: 1em; background: #d9e6ee; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }
p.advanced:before { color: #01598e; content: "Advanced"; }

p.todo, p.important, p.note, p.advanced { position: relative; }
p.todo:before, p.important:before, p.note:before, p.advanced:before { font-weight: bold; left: -20%; width: 18%; text-align: right; position: absolute; }

/* === head === */
.head {
	height: 96px;
	text-align: left;
	position: relative;
	background-repeat: repeat-x;
	background-image: url(header.png);
}
.head h1 {
	float: left;
	margin: 0 20px;
	font-size: 20px;
	line-height: 60px;
}
.head h1 a { color: #fff; }
.head .buy { float: right; margin-right: 20px; line-height: 70px; }
.head .buy a { vertical-align: middle; }
.head .search { float: right; margin-right: 20px; line-height: 60px; }
.head .search input { width: 120px; vertical-align: middle; }

/* === body === */
.wrap {
	text-align: left;
	padding-bottom: 2ex;
	background-color: #fff;
}
.body {
	margin: auto 10%;
	text-align: left;
}

/* --- main --- */
.main {
	float: left;
	width: 62.5%;
	text-align: left;
	position: relative;
}
.main h1.capt span {
	left: -20%;
	width: 18%;
	text-align: right;
	position: absolute;
}
.main div.figure {
	position: relative;
	margin-bottom: 1.6em;
}
.main div.figure img {
	float: none;
	margin: 0 auto;
	display: block;
	max-width: 100%;
	text-align: center;
}
.main div.figure label {
	display: block;
	text-align: center;
	font-weight: normal;
}
.main div.figure label span {
	font-weight: bold;
}

.main .table-of-contents dl { position: relative; }
.main .table-of-contents dt { width: 30px; position: absolute; }
.main .table-of-contents dd  { padding-left: 40px; }
.main .table-of-contents a.part { font-weight: bold; }
.main .table-of-contents a.section { padding-left: 2em; }
.main .table-of-contents a.subsection { padding-left: 4em; }

.main .table-of-figures dl { position: relative; }
.main .table-of-figures dt { width: 30px; position: absolute; text-align: right; }
.main .table-of-figures dd { padding-left: 40px; }

.main .keyword-index dl { position: relative; }
.main .keyword-index dt { width: 200px; position: absolute; }
.main .keyword-index dd { padding-left: 220px; }

/* --- side --- */
.side {
	width: 25%;
	float: right;
	text-align: left;
	position: relative;
}
.side dl dt {
	left: -50%;
	width: 45%;
	text-align: right;
	position: absolute;
}
.side img { width: 100%; max-width: 100%; }
.side a { background-image: none; padding: 0; }

/* === footers === */
.notes, .admin, .foot { 
	padding: 20px;
	background-repeat: repeat-x;
	background-image: url(footer.png);
}
.hidden {
	width: 0px;
	height: 0px;
	left: -1000px;
	position: absolute;
}

/* --- notes --- */
.notes h1 { font-size: 1.5em; line-height: 1; margin-bottom: 1em; }
.notes .listing .note { margin-bottom: 1em; }
.notes .listing .note .meta { border-bottom: 1px solid #ddd; margin-bottom: 1em; }
.notes .listing .note .meta .author { font-weight: bold; }
.notes .listing .note .meta .publication { font-style: italic; }
.notes .listing .note .meta .commands { float: right; }
.notes .listing .note .body { margin: 0; font: 1em 'andale mono', 'lucida console', monospace; line-height: 1.5; }
.notes .listing .note .body p { margin: 0; }
.notes .addnote th { width: 120px; }
.notes .addnote textarea { height: 100px; width: 100%; }
.notes .addnote .buttons { margin-left: 130px; }
.notes .addnote .buttons input { margin-right: 1em; }

/* --- admin --- */
.admin { font-size: .8em; line-height: 1.875em; color: #555; }
.admin .tool { width: 25%; float: left; }
.admin .tool ul { margin: 0; padding: 0; list-style: none; }
.admin .tool li li { margin-left: 1em; }
.admin .tool li span.button { float: left; width: 1em; }
.admin .tool .active { font-weight: bold; }

body.browsecomponent div.main { font-size: 80%; }

/* --- foot --- */
.foot { font-size: 0.7em; line-height: 1.765em; padding-bottom: 0; }
.foot p { text-align: center; }

/* === pages === */
body.book h1.capt { display: none; }
body.book img { margin: 0; max-width: 515px; }