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;
}

[class^="icon-"], [class*=" icon-"] a 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;
}

.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.repositorySwatch {
	border-radius: 3px;	
	padding: 1px 4px 2px 4px;	
	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;
}