@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 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 ul { float: right; margin-top: 3px;}
#nav ul li {display:inline; float:left; margin: 5px 0px;}
#nav ul li a {padding: 10px; background: #303284; color: #fff;}
#nav ul li a:hover {background: #3E4F90 url(../images/overlay.png) repeat-y; text-decoration:none;}
#nav p { float: left; width: 100%; margin-left: 100px; }
#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, #news, #footer {margin-top: 10px;}
.section-content {font-size: 15px;}
#featured_intro, #news {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, #footer {padding-top: 40px;}
#news #news_feed {padding-left: 10px;}
#news_feed {background: url('../images/shadown.png') no-repeat right top; overflow: hidden; }
#news { padding-bottom: 30px;}
#news .section-content {margin-bottom: 20px;}
#news .section-content p {font-size: 13px;}
#news .section-content pre {font-size: 13px;}
#news .section-content img {float:right; padding: 0px 5px;}
#news .section-content table { font-size: 13px; border: 0px;}
#news .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; margin-right: 10%;}
#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;}
