body {
	 /* 50px to start the container 10px below the navbar */
	padding-top: 60px;
}

footer {
	margin-top: 25px;
	padding: 15px 0 16px;
	border-top: 1px solid #E5E5E5;
}

body, input, select {
	color: #202020;
}

ul, ol {
	margin-bottom: 10px !important;
}

a {
	color: #2F58A0;
}

a:hover {
	color: #002060;
}

a:focus {
	outline: none;
}

a.btn i {
	/* override for a links that look like bootstrap buttons */
	vertical-align: text-bottom;
}

[class^="icon-"], [class*=" icon-"] i {
	/* override for a links that look like bootstrap buttons */
	vertical-align: text-bottom;
}

hr {
	margin-top: 10px;
	margin-bottom: 10px;
}

.settings th {
	vertical-align: top;
}

.pageTitle {
	padding-bottom: 5px;
	margin: 0;
	border-bottom: 1px solid #eee;
}

.pageTitle h1, .pageTitle h2 {
	color: #0069D6;
}

.navbar .brand {
	padding: 10px 20px;
}

.navbar .pull-right {
	margin: 0;
}

.navbar ul.nav {
	margin: 0 !important;
	padding: 4px 0px 0px 0px;
}

.navbar ul.nav li a {
  	color: white; 
	text-shadow: none;
	outline: 0;
}

.navbar ul.nav li a:hover {
	color: #abd4ff !important;
	text-decoration: underline;
}

.navbar .nav .active > a:hover {
	text-decoration: underline;
}

.navbar-inner {
	background-color: #002060;
	background-repeat: none;
	background-image: none;
	-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);
	-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);
	box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);
	border-bottom: 2px solid #ff9900 !important;
}

.navbar ul li:focus, .navbar .active {
	background-repeat:no-repeat;
	background-image: url(arrow_page.png);
	background-position: center bottom;
	outline: 0;
	padding-bottom:3px;
}

.navbar .active a {
	background-color: transparent !important;
	outline: 0;
}

.navbar div > ul .menu-dropdown .selected, .nav .menu-dropdown .selected, .navbar div > ul .dropdown-menu .selected, .nav .dropdown-menu .selected {	
	background-image: url("bullet_blue.png");
	background-repeat: no-repeat;
	background-position: left;	
}

.navbar div>ul .dropdown-menu li a {
	color: #555;
}

navbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.navbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{
	background-color: #000070;
	color: #ffffff !important;
}

.nav-pills > .active > a, .nav-pills > .active > a:hover {
    color: #fff;
    background-color: #002060;
}

div.reflog {
    border-bottom: 1px solid #ddd;
	margin-bottom: 5px;
	padding-bottom: 5px;
}

div.reflog .icon {
    font-size: 42px;
    line-height: 42px;
}

div.reflog .when {
	color: #aaa;
}

div.reflog i {
    font-size: 42px;
    color: #bbb;
    vertical-align: middle;
}

div.dashboardTitle {
	font-size: 1.75em;
	padding-bottom: 5px;
	margin-bottom: 10px;
	border-bottom: 1px solid #ccc;
}

div.dashboardTitle small {
	color: #888;
	font-size: 0.7em;
}

.repositorynavbar {
	background-color: #fbfbfb;
	border-bottom: 1px solid #ccc;
	margin-top: -8px;
	margin-bottom: 10px;
}

.repositorynavbar .title {
	line-height: 32px;
}

.repositorynavbar .repository {
    font-weight: bold;
}

.title .repository a, .repositorynavbar .project a, .repositorynavbar .repository a {
    font-family: Helvetica,arial,freesans,clean,sans-serif;
    font-size: 22px;
    color: #002060;
}

.repositorynavbar .repositorynavbar-inner {	
}

.repositorynavbar ul {
	list-style: none outside;
	display: block;
	position: relative;
	border-top: 1px solid #ccc;
}

.repositorynavbar ul li {
	display: block;
	float: left;
	padding: 10px;
}

.repositorynavbar ul li:focus, .repositorynavbar .active {
	color: black;
	background-repeat:no-repeat;
	background-image: url(arrow_project.png);
	background-position: center bottom;
	font-weight: bold;
	outline: 0;	
}

.repositorynavbar ul a {
	color: #002060;
}

.repositorynavbar ul li:hover {
	background-color: #eee;
}

.repositorynavbar ul li a:hover {
	background-color: inherit;
	text-decoration: underline;
}

.btn-appmenu {
	border-radius: 4px !important;
    background-color: #002060;
    background-image:-khtml-gradient(linear, left top, left bottom, from(#4060A0), to(#002060));
	background-image:-moz-linear-gradient(center top, #4060A0, #002060);
	background-image:-ms-linear-gradient(top, #4060A0, #002060);
	background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #4060A0), color-stop(100%, #002060));
	background-image:-webkit-linear-gradient(top, #4060A0, #002060);
	background-image:-o-linear-gradient(top, #4060A0, #002060);
	background-image:linear-gradient(top, #4060A0, #002060);
    
    background-repeat: repeat-x;
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}

.btn-appmenu:hover, .btn-appmenu:active, .btn-appmenu.active, .btn-appmenu.disabled, .btn-appmenu[disabled] {
    background-color: #002060;
    color: #ffffff;
    text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}


.btn-appmenu .caret {
    border-bottom-color: #FFFFFF;
    border-top-color: #FFFFFF;
    opacity: 0.75;
}

.breadcrumb {
	margin-top: 10px !important;
	margin-bottom: 10px !important;
}

.pageTitle {	
	margin-bottom: 5px;	
}

.pageTitle h2 small {
	font-size: 80%;
	font-weight: bold;
}

.pageTitle {
	color: #888;
	font-size: 18px;
	line-height: 27px;
}
.pageTitle .project, .pageTitle .repository {
	font-family: Helvetica, arial, freesans, clean, sans-serif;
	font-size: 22px;
}

.pageTitle .controls {
	font-size: 12px;
}

.pageTitle .repository {
	font-weight: bold;
}

.originRepository {
	font-family: Helvetica, arial, freesans, clean, sans-serif;
	color: #888;
	font-size: 12px;
	line-height: 14px;
	margin: 0px;
}

.forkSource, .forkEntry {
	color: #888;
}

.forkSource {
	font-size: 18px;
	line-height: 20px;
	padding: 5px 0px;
}

.forkEntry {
	font-size: 14px;
	padding: 2px 0px;
}

.forkSource .forks, .forkEntry .forks {
	font-size: 10px;
	padding-left: 5px;
	text-decoration: underline;
	vertical-align: middle;
}

div.repositoryUrlContainer {
	padding: 2px;
	background-color: #F5F5F5;
    background-image: -moz-linear-gradient(center top , #FFFFFF, #E6E6E6);
    background-repeat: repeat-x;
    border-color: #E6E6E6 #E6E6E6 #B3B3B3;
    border-image: none;
    border-radius: 4px;
    border-style: solid;
    border-width: 1px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
    color: #333333;    
    vertical-align: middle;
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}

div.repositoryUrlContainer:hover {
	background-color: #E6E6E6;
    background-position: 0 -15px;
    color: #333333;
    text-decoration: none;
    transition: background-position 0.1s linear 0s;
}

div.repositoryUrlContainer:hover .caret {
    opacity: 1;
}

div.repositoryUrlContainer:hover a:hover {
	text-decoration: none;
}

span.repositoryUrlLeftCap, span.repositoryUrlRightCap {	
	text-align: center;
	color: black;
	padding: 3px;
	font-size: 11px;
}

span.repositoryUrlRightCap {	
	font-weight: bold;
	font-family:menlo,consolas,monospace;
}

div.repositoryUrl {
	display: inline-block;	
	font-size: 1em;
	padding: 1px 4px 2px 4px;	
	background-color: #fff;
	border: 1px solid #ddd;
	margin: 1px;
}

div.repositoryIndicator {
	display:inline;
	padding-top:0px;
	margin-bottom:0px;
}

div.repositoryIndicator span.alert {
	padding: 2px 7px 2px 7px;
	vertical-align: middle;
	font-size:0.85em;
	font-weight:normal;
}

ul.urlMenu {
	min-width: 350px;
}

ul.urlMenu li.url {
	background-color: white;
	padding: 0px 5px;
	line-height: 24px;
}

ul.applicationMenu {
	background-color: whiteSmoke;
	min-width: 400px;
}

ul.applicationMenu li.action {
	background-color: white;
	padding: 0px 5px;
	line-height: 24px;
}

span.applicationTitle, span.applicationTitle a {
	display: inline;
	font-weight: bold;
	font-size:1.1em;
	color: black !important;
	padding: 0px;
}

div.applicationHeaderMenuItem {
	padding-left: 10px;
	color: black;
}

div.applicationLegalMenuItem {
	padding-left: 10px;
	color: #999;
	font-size: 0.85em;
}

a.applicationMenuItem, span.commandMenuItem {
	padding: 3px 10px;	
	color: black;
	display: inline;
	padding: 0px;
}

span.commandMenuItem {
	font-size: 0.85em;
	font-family: menlo,consolas,monospace;
}

div.odd {
	
}

div.even {
	background-color: whiteSmoke;
	vertical-align: middle;
}

span.authorizationControl label {
	display: inline;
	color: #777;
	padding:5px 0px 5px 10px;	
}

div.page_footer {
	clear: both;
	height: 17px;
	color: black;
	background-color: #ffffff;
	padding: 5px;
	border-top: 1px solid #bbb;
	font-style: italic;
}

pre, code, pre.prettyprint, pre.plainprint {
	background-color: #ffffff;
	color: black;
	font-family: monospace;
	font-size:12px;
	border:0px;
	padding: 0;
	line-height: 1.35em;
	vertical-align:top;
}

table {
	margin-bottom: 5px;
	font-size: inherit;
}

.table th {
	vertical-align: top;
}

th {
	vertical-align: middle;
	text-align: left;	
}

div.sourceview {
	overflow: hidden;
}

pre.prettyprint ol {
	padding-left:25px;
}

#nums {
    text-align: right;
    padding-right:10px;
    border-right:1px solid #ddd;
    font-family: monospace;
    line-height: 1.35em;
    vertical-align:top;
}

#nums pre {
    white-space: pre;
}

#nums pre, #lines pre {
	margin: 0;	
}

#lines pre {
	padding: 0px !important;	
	border: 0px !important;
	white-space: nowrap;
}

/* CSS trick to workaround #link topOfWindow offset problem */
#nums .num {
    border-top: 160px solid transparent;
    margin-top: -160px;
    -webkit-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;

    color: #888;
}

#nums span:target {
	background-color: #ffffbf;
	color: black;
	font-weight: bold;
	border-bottom: 1px solid red;
}

#lines table {
	margin: 0;
}

#lines td {
	padding: 0;
}

#lines a {
	padding-left: 5px;
}

#lines a:hover {
	background-color: #ffffbf;
	text-decoration: none;
}

#lines tr:hover {
	background-color: #ffffbf;
}
#lines .odd {
	background-color: white;
}

#lines .even {
	background-color: #fafafa;
}



h1 small, h2 small, h3 small, h4 small, h5 small, h6 small {
    color: #888;
}

.age0, .age1, .age2, .age3, .age4 {	
	font-size: 12px;
}

/* age0: age < 2 hours */
.age0 {
	font-style: italic;
	color: #008000;
	font-weight: bold;
}

/* age1: 2 hours <= age < 2 days */
.age1 {
	font-style: italic;
	color: #0000ff;
	font-weight: bold;	
}

/* age2: 2 days < age <= 7 days */
.age2 {
	font-style: italic;
	color: #2b60de;
}

/* age3: 7 days < age <= 30 days */
.age3 {
	color: #800080;
}

/* age4: > 30 days */
.age4 {
}

/* Ensure that hovered ages are white */
tr.light:hover .age0,
tr.light:hover .age1,
tr.light:hover .age2,
tr.light:hover .age3,
tr.light:hover .age4,
tr.dark:hover .age0,
tr.dark:hover .age1,
tr.dark:hover .age2,
tr.dark:hover .age3,
tr.dark:hover .age4 {
	color: #ffffff !important;
}

a.list {
	text-decoration: none;
	color: inherit;
}

a.list.subject {
	font-weight: bold;
}

a.list.name {
	font-weight: bold;	
}

a.list:hover {
	text-decoration: underline;
	color: #880000;
}

span.empty {
	font-size: 0.9em;
	font-style: italic;
	padding-left:10px;
	color: #008000;
}

span.link {
	color: #888;
}

span.link, span.link a {
	font-family: sans-serif;
	font-size: 11px;
}

span.link em, div.link span em {
	font-style: normal;
	font-family: sans-serif;
	font-size: 11px;	
}

span.activitySwatch {
	border-radius: 3px;
	padding: 1px 4px 2px 4px;
	color: #ffffff;
	vertical-align: center;
}

span.activitySwatch a {
	color: inherit;
}

span.repositorySwatch {
	padding: 1px 1px 2px 1px;	
	color: #ffffff;
	vertical-align: center;
}

span.repositorySwatch a {
	color: inherit;
}

img.inlineIcon {
	padding-left: 1px;
	padding-right: 1px;
}

img.overview {
	float:right;
	border:1px solid #CCCCCC;
}

img.gravatar {
    background-color: #ffffff;
    border: 1px solid #ddd;
    border-radius: 5px;
    padding: 2px;
}

img.navbarGravatar {
	border: 1px solid #fff;
}

div.searchResult {
	padding: 10px 5px 10px 5px;
}

div.searchResult .summary {
	font-weight: bold;
}

div.searchResult .branch {
	color: #008000;
}

div.searchResult .author {
	font-style: italic !important;
}

div.searchResult .date {
	color:#999;
}

div.searchResult .body {
	padding-left:20px;
}

div.searchResult .fragment {
	padding: 7px 0;
}

div.searchResult .highlight {
	background-color: #ccff66;
	padding: 0 2px;
}

div.searchResult .ellipses {	
	padding-left:25px;
	color: #aaa;
}

div.searchResult pre {
	margin: 1px 0px;
	border: 0px;
}

div.searchResult .text {
	border-left: 2px solid #ccc;
	border-radius: 0px;
	
    padding: 0 0 0 15px;
}

div.searchResult ol {	
	margin-bottom: 0px !important;
}

div.header, div.commitHeader, table.repositories th {
	background-color: #fbfbfb;
}

div.header {
	padding: 3px;
	border: 1px solid #ddd;
	border-bottom: 0;
	border-radius: 3px 3px 0 0;
	font-weight: bold;
	font-family: Helvetica,arial,freesans,clean,sans-serif;
}

div.diffHeader {
	/* CSS trick to workaround #link topOfWindow offset problem */
    border-top: 65px solid transparent;
    margin-top: -65px;
    -webkit-background-clip: padding-box;
    -moz-background-clip: padding;
    background-clip: padding-box;
}

div.commitHeader {
	margin:0 0 2px;
	padding:7px 14px;	
	border:1px solid #ddd;
	border-radius: 3px;
	-webkit-border-radius:3px;
	-moz-border-radius:3px;border-radius:3px;
}

div.header a, div.commitHeader a {
	color: black;
	text-decoration: none;
	font-weight: bold;
}

div.header a:hover, div.commitHeader a:hover {
	text-decoration: underline;
}

div.page_nav2 {
	padding: 5px 10px;
	margin: -10px 0px 10px;
	border-left: 1px solid #ccc;
	border-right: 1px solid #ccc;
	border-bottom: 1px solid #ccc;
	border-radius: 0px 0px 3px 3px;	
	background-color: #ECF1F4;
	color: #666;
	text-align: left;
}

div.page_nav2 a {
	color: #002060;
}

div.admin_nav {
	border-bottom: 0px;
	text-align: right;
	padding: 5px 5px 5px 2px;	
}

div.admin_nav a {
	text-decoration: none;
}

div.admin_nav a:hover {	
	text-decoration: underline;
}

span.search {
	height: 40px;
	padding-top:2px;
}

span.search input {
	-webkit-border-radius:0;-moz-border-radius:0x;border-radius:0;
	vertical-align: top;
	background: url(search-icon.png) no-repeat 4px center;
	background-color: transparent;
	border: 1px solid transparent;
	outline: none;
	padding: 2px 2px 2px 22px;
	text-shadow: none;
	margin: 0px;
	
	color: #ddd;
}

span.search input:hover, span.search input:focus {
	background-color: transparent;
	border: 1px solid transparent;
	padding: 2px 2px 2px 22px;
	box-shadow: none;
	color: #ddd;
	border-bottom: 1px solid #ff9900;	
}

span.search input:focus {
	color: white;
}

/* div.search input:focused { */
/* 	background-color: transparent; */
/* 	border: 1px solid transparent; */
/* 	padding: 2px 2px 2px 22px; */
/* 	text-shadow: none; */
/* } */

span.login input:focus {
	background-color: rgba(255, 255, 255, 0.6);	
	text-shadow: none;
	color: white;
}

.commit_message {
	padding: 8px;
	border: solid #ddd;
	border-width: 1px 0px 0px;
	border-radius: 0px;
}

div.bug_open, span.bug_open {
	padding: 2px;
	background-color: #803333;
	color: white;	
	text-align: center;
}

div.bug_resolved, span.bug_resolved {
	padding: 2px;
	background-color: #408040;
	color: white;
	text-align: center;
}

div.bug_invalid, span.bug_invalid {
	padding: 2px;
	background-color: gray;
	text-align: center;
}

div.bug_hold, span.bug_hold {
	padding: 2px;
	background-color: orange;
	text-align: center;
}

div.diff {
	font-family: monospace;
	overflow: auto;
}

div.diff.header {
	-moz-border-bottom-colors: none;
    -moz-border-image: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    background-color: #EDECE6;
    border-color: #D9D8D1;
    border-style: solid;
    border-width: 1px;
    font-weight: bold;
    margin-top: 10px;
    padding: 4px 0 2px;
}

div.diff.extended_header {
	background-color: #F6F5EE;
    padding: 2px 0;
    font-family: inherit;
}

div.diff table {
	border: 1px solid #ddd;
}

span.diff.add {
	color: #008800;
	font-family: inherit;
}

span.diff.remove {
	color: #FFDDDD;
	font-family: inherit;
}

span.diff.unchanged {
	color: inherit;
	font-family: inherit;
}

div.diff.hunk_header {
	-moz-border-bottom-colors: none;
    -moz-border-image: none;
    -moz-border-left-colors: none;
    -moz-border-right-colors: none;
    -moz-border-top-colors: none;
    border-color: #FFE0FF;
    border-style: dotted;
    border-width: 1px 0 0;
    margin-top: 2px;
    font-family: inherit;
}

span.diff.hunk_info {
	background-color: #FFEEFF;	
	color: #990099;
	font-family: inherit;
}

span.diff.hunk_section {	
	color: #AA22AA;
	font-family: inherit;
}

div.diff.add2 {
	background-color: #DDFFDD;
    font-family: inherit;
}

div.diff.remove2 {
	background-color: #FFDDDD;
    font-family: inherit;
}

div.diff table {
	border-radius: 0;
	border-right: 1px solid #bbb;
	border-bottom: 1px solid #bbb;
	width: 100%;
}

div.diff table th, div.diff table td {
	margin: 0px;
	padding: 0px;
	font-family: monospace;
	border: 0;
}

div.diff table th {
	background-color: #f0f0f0;
	text-align: center;
	color: #999;
	padding-left: 5px;
	padding-right: 5px;
	width: 30px;
}

div.diff table th.header {
	background-color: #D2C3AF;
	border-right: 0px;
	border-bottom: 1px solid #808080;
	font-family: inherit;
	font-size:0.9em;
	color: black;
	padding: 2px;
	text-align: left;
}

div.diff table td.hunk_header {
	background-color: #dAe2e5 !important;
	border-top: 1px solid #bac2c5;	
	border-bottom: 1px solid #bac2c5;
	color: #555;
}

div.diff table td {
	border-left: 1px solid #bbb;
	background-color: #fbfbfb;
}

td.changeType {
	width: 15px;
}

span.addition, span.modification, span.deletion, span.rename {
	border: 1px solid #888;
	float: left;
	height: 0.8em;
	margin: 0.2em 0.5em 0 0;
	overflow: hidden;
	width: 0.8em;
}

span.addition {
	background-color: #ccffcc;
}

span.modification {
	background-color: #ffdd88;
}

span.deletion {
	background-color: #f8bbbb;
}

span.rename {
	background-color: #cAc2f5;
}

div.commitLegend {
	float: right;
	padding: 0.4em 0.4em 0.2em 0.4em;
	vertical-align:top;
	margin: 0px;
}

div.commitLegend span {
	font-size: 0.9em;
	vertical-align: top;
}

div.references {
	float: right;
	text-align: right;
}

table.plain, table.summary {
	width: 0 !important;
	border: 0;
}

table.plain th, table.plain td, table.summary th, table.summary td {
	white-space: nowrap;
	padding: 1px 3px;
	border: 0;
}

table.summary {
	margin: 0px;
}

table.summary th {
	color: #999;
	padding-right: 10px;
	text-align: right;
	font-weight: normal;
}

table.pretty {
	border:1px solid #ddd;
	border-radius: 0 0 3px 3px;
	width: 100%;
}

table.pretty td.icon {
	padding: 0px 0px 0px 2px;	
	width: 18px;
	vertical-align: middle;
}

table.pretty td.icon img {
	vertical-align: top;
}

table.pretty td {
	padding: 2px 4px;
	border-left: 0;
}

table.pretty td.message {
	padding: 0px;
}

table.pretty table.nestedTable {
	width: 100%;
	margin-left: 4px !important;
	margin-bottom: 0px !important;
}

table.comments td {
	padding: 4px;
	line-height: 17px;
}

table.repositories {	
	border:1px solid #ddd;
	border-spacing: 0px;
	width: 100%;
}

table.repositories th {
	padding: 4px;
	border:0;
}

table.repositories th.right {	
	border-right: 1px solid #ddd;	
}	

table.repositories td {
	padding: 2px;
	border-left: 0;
}

table.repositories td.rightAlign {	
	text-align: right;
	border-right: 1px solid #ddd;	
}	

table.repositories td.icon img {
	vertical-align: top;
}

table.repositories tr.group {
	background-color: #ccc;
	border-left: 1px solid #ccc;
	border-right: 1px solid #ccc;
}

table.repositories tr.group td {
	font-weight: bold;		
	color: black;
	background-color: #ddd;
	padding-left: 5px;
	border-top: 1px solid #aaa; 	
 	border-bottom: 1px solid #aaa; 
}

table.repositories tr.group td a {
	color: black;
}

table.palette { border:0; width: 0 !important; }
table.palette td.header { 
	font-weight: bold; 
	background-color: #ffffff !important;
	padding-top: 0px !important;
	margin-bottom: 0 !imporant;	
	border: 0 !important;
	border-radius: 0 !important;
	line-height: 1em;
}
table.palette td.pane {
	padding: 0px;
}

table.gitnotes {		
	border: 0;	
}
table.gitnotes td {
	border-top: 1px solid #ddd;
	padding-top: 3px;
	vertical-align:top;
}

table.gitnotes table {
	border: none;
}

table.gitnotes td table td {
	border: none;
	padding: 0px;
}

table.gitnotes td.info {
	padding-right: 10px;
}

table.gitnotes td.message {
	width: 65%;
	border-left: 1px solid #ddd;
	padding-left: 10px;
}

table.annotated {
	border:1px solid #ddd;
}

table.annotated tr.even {
	background-color: white;
}

table.annotated tr.odd {
	background-color: #f5f5f5;
}

table.annotated td {
	padding: 0px;
	border: 0;
}

table.activity {
	width: 100%;
	margin-top: 10px;
}

table.activity td {
	padding-top:7px;
	padding-bottom:7px;
}

tr th a { background-position: right; padding-right: 15px; background-repeat:no-repeat; }
tr th.wicket_orderDown a {background-image: url(arrow_down.png); }
tr th.wicket_orderUp a { background-image: url(arrow_up.png); }
tr th.wicket_orderNone a { background-image: url(arrow_off.png); }

tr.light {
	background-color: #ffffff;
}

tr.dark {
	background-color: #f6f6f6;
}

/* currently both use the same, but it can change */
tr.light:hover,
tr.dark:hover {
	background-color: #002060;
	color: white;
}

tr.light:hover a,
tr.dark:hover a {
	color: white;	
}

td.author {
	font-style: italic !important;
}

td.date {
	/*font-style: italic !important;*/
	white-space: nowrap;
}

span.sha1, span.sha1 a, span.sha1 a span, .commit_message, span.shortsha1 {
	font-family: consolas, monospace;
	font-size: 13px;
}

span.shortsha1 {
	font-size: 12px;
}

td.mode {
	text-align: right;
	font-family: monospace;
	width: 8em;
	padding-right:15px;
}

td.size {
	text-align: right;
	width: 8em;	
	padding-right:15px;
}

td.rightAlign {
	text-align: right;
}

td.treeLinks {
	text-align: right;
	width: 13em;
}

span.help-inline {
	color: #777;
}

span.metricsTitle {
	font-size: 2em;
}

.tagRef, .headRef, .localBranch, .remoteBranch, .otherRef, .pullRef {	
	padding: 0px 3px;
	margin-right:2px;
	font-family: sans-serif;
	font-size: 9px;
	font-weight: normal;
	border: 1px solid;
	color: black;	
}

.tagRef a, .headRef a, .localBranch a, .remoteBranch a, .otherRef a, .pullRef a {
	font-size: 9px;
	text-decoration: none;
	color: black !important;
}

.tagRef a:hover, .headRef a:hover, .localBranch a:hover, .remoteBranch a:hover, .otherRef a:hover, .pullRef a:hover {
	color: black !important;
	text-decoration: underline;
}

.otherRef {
	background-color: #b0e0f0;
	border-color: #80aaaa;	
}

.pullRef {
	background-color: rgb(255, 221, 136);
	border-color: rgb(136, 136, 136);
}

.remoteBranch {
	background-color: #cAc2f5;
	border-color: #6c6cbf;
}

.tagRef {
	background-color: #ffffaa;
	border-color: #ffcc00;
}

.headRef {
	background-color: #ffaaff;
	border-color: #ff00ee;
}

.localBranch {
	background-color: #ccffcc;
	border-color: #00cc33;
}

table .palette td.buttons button {
	-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;	
	border: 1px solid #ccc !important;
	padding: 10px;
	margin-bottom: 10px;
}

table .palette td.buttons button:hover {
	border: 1px solid #0069D6 !important;
}

table .palette td.buttons button:active {
	border: 1px solid orange !important;
}

.feedbackPanelERROR, .feedbackPanelINFO {	
	list-style: none;
	line-height: 35px;
}

.feedbackPanelINFO span, .feedbackPanelERROR span {
	position:relative;padding:7px 15px;margin-top:5px;margin-bottom:5px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.feedbackPanelERROR span {
	color: #ffffff;
	background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}

/* google-code-prettify line numbers */
li.L0,
li.L1,
li.L2,
li.L3,
li.L4,
li.L5,
li.L6,
li.L7,
li.L8,
li.L9 { color: #888; border-left: 1px solid #ccc; padding-left:5px; list-style-type: decimal !important; }

/* Alternate shading for lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 { background: #fafafa !important; }

div.markdown pre {
    background-color: #F5F5F5;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 4px 4px 4px 4px;
    display: block;
    font-size: 12px;
    line-height: 18px;
    margin: 0 0 9px;
    padding: 8.5px;
    white-space: pre-wrap;
}

div.markdown pre code {
    background-color: inherit;
    border: none;    
    padding: 0;
}

div.markdown code {
	background-color: #ffffe0;
    border: 1px solid orange;
    border-radius: 3px;
    padding: 0 0.2em;
}

div.markdown a {
	text-decoration: underline;	
}

div.markdown em {
	color: #b05000;
}

div.markdown table.text th, div.markdown table.text td {
	vertical-align: top;
	border-top: 1px solid #ccc;
	padding:5px;
}