
@import url('reset.css');
@import url('text.css');
@import url('960.css');
@import url('grid.css');
@import url('layout.css');

a { color: #3E4F90;}
a:hover { text-decoration:underline;}
body {background: #ddd; min-width: 1063px;}

.container_16 {background: #fff; border-bottom: 2px solid #bbb; border-top: 1px solid #ccc;}

#header {margin-bottom: 20px;}
#header h1 {margin-bottom: 30px; margin-top: 25px; margin-left: 0px; font-size: 18px;}
#header h2 {margin-top: 20px; font-weight: normal; font-style: italic; font-size: 18px; margin-left: 10px;}
#header img { float: left; margin: 5px 20px 10px 5px;}

#nav-top ul { float: right; margin-top: 3px;}
#nav-top ul li {display:inline; float:left; margin: 5px 0px;}
#nav-top ul li a {padding: 10px; background: #303284; color: #fff;}
#nav-top ul li a:hover {background: #3E4F90 url(../images/overlay.png) repeat-y; text-decoration:none;}
#nav-top p { float: left; width: 100%; margin-left; 100px; }

#nav {width: 180px;}
#nav ul {}
#nav ul li {}
#nav ul li a {font-size: 13px; }
#nav ul li a:hover {}
#nav h1 {font-weight: bold; font-size: 15px; }
#nav p {}

#intro, #featured_intro { margin-top: 40px;}
#intro div { padding-bottom: 20px; padding-right: 10px; }
#intro h3 {font-weight: bold; font-size: 20px;}
#intro h3 span {display:block; font-weight: normal; font-size: 15px;}
#featured_intro div { font-size: 20px;}

#content {margin-top: 10px; padding-right: 50px; margin-left: 205px;}
#content p {font-size: 15px; }
#content h1 {}
#content h2 {}
#content ul {font-size: 15px; }
#content ul li ul {margin-bottom: 0px;}
#content li {font-size: 15px; }
#content .codehilite {font-size: 11px; margin-top: 10px; }

#table-default {border-style: none; border: 0px; background: none; font-size: 15px; width: 0%; padding: 0px; margin: 0px;}
#table-default th {border-style: none; border: 0px; background: none; white-space: nowrap; text-align: center; padding: 0px; margin: 0px;}
#table-default td {border-style: none; border: 0px; background: none; white-space:nowrap; padding-top: 0px; padding-bottom: 0px; padding-left: 0px; margin: 0px;}

#footer {margin-top: 10px;}

.section-content {font-size: 15px;}
#featured_intro, #news-cont {padding-bottom: 20px;}
#featured_intro h4 { font-weight: bold; font-size: 25px; }
#featured_intro h4 span { font-weight: normal; display:block; font-size: 20px;}
#featured_projs ul li { display:inline; float:left; display:none; padding: 0px 40px; list-style:none;}
#featured_projs ul li p.description { font-size: 14px;}
#featured_projs ul li p { margin-bottom: 5px;}
#featured_switcher { background: #303284; border-bottom: 3px solid #303284; margin-bottom: -2px; margin-left: 0px; margin-right: 0px; width: 100%; text-align:center;}
#featured_switcher ul { margin-left: 10px; margin-top: 3px;}
#featured_switcher ul li {display:inline; float:left; font-size: 12px; margin: 5px 1px; color: #fff; font-weight:bold;}
#featured_switcher ul li a {padding: 10px; color: #fff;}
#featured_switcher #label {margin-right: 5px;}
#featured_switcher ul li a:hover {background: #3E4F90 url(../images/overlay.png) repeat-y; color: #fff; text-decoration: none;}
#featured_switcher ul li .active, #nav ul li .active {background: #3E4F90 url(../images/overlay.png) repeat-y;}

#news-cont { padding-bottom: 30px; margin-top: 10px; padding-right: 50px;}
#news-cont, #footer {padding-top: 40px;}
#news-cont #news-cont_feed {padding-left: 10px;}
#news-cont_feed {background: url('../images/shadown.png') no-repeat right top; overflow: hidden; }
#news-cont .section-content {margin-bottom: 20px;}
#news-cont .section-content p {font-size: 13px;}
#news-cont .section-content pre {font-size: 13px;}
#news-cont .section-content img {float:right; padding: 0px 5px;}
#news-cont .section-content table { font-size: 13px; border: 0px;}
#news-cont .section-content table tbody td, tbody th { border-top:0px solid #bbb; border-bottom:1px solid #bbb; background: #fff; padding: 10px 0px;}

#latest_activity, #project_menu{ padding: 0px 20px;}
#latest_activity .section-content {font-size: 15px; overflow: hidden;}
#footer .links { padding: 10px;}
#footer ul li { font-size: 14px;}
#footer ul li#more {list-style:none;}
#copyright {background: transparent; margin-top: 20px; font-size: 15px;}
#copyright { border-bottom: 0px; border-top: 0px;}
#impact { padding-bottom: 20px;}
#impact h4 { margin-bottom: 15px;}
#impact div {padding-right: 30px;}
#impact hr { width: 90%; float:left;}
#page { border-top: 0px;}
.bug { background: transparent url('../images/bug.jpg') no-repeat left; padding-left: 20px;}
.svn { background: transparent url('../images/svn.jpg') no-repeat left; padding-left: 20px;}
#search {float:right;}
#search input[type=text] { font-size: 13px; width: 300px; color: #aaa;}
#project_menu ul li { font-size: 14px;}
