body {
	 /* 47px is the header height */
	padding-top: 47px;
}

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;
}

a.bugtraq {
    font-weight: bold;
}

.label a.bugtraq {
	font-weight: normal;
	color: white;
}

.lwbadge {
	color: #888;
	font-size: 11px;
	background-color: #e8e8e8;
	padding: 1px 7px 2px;
	-webkit-border-radius: 9px;
	-moz-border-radius: 9px;
	border-radius: 9px;
	line-height: 14px;	
	white-space: nowrap;
	vertical-align: baseline;
}

[class^="icon-"], [class*=" icon-"] i {
	/* override for a links that look like bootstrap buttons */
	vertical-align: text-bottom;
}

.pagination-small, .pagination-small ul {
	margin: 0px !important;	
}

.pagination-small ul {
	border-right: 1px solid #ddd;
}

.pagination-small ul > li > a,
.pagination-small ul > li > span {
  padding: 2px 8px;
  font-size: 13px;
  line-height: 22px;
  border: 1px solid #ddd;
  border-right: 0px;
  border-radius: 0px !important;
  float: left;
}

.btn.disabled em, .pagination-small ul > li > span em {
	font-style: normal;
	color: #444;
}

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: 0px 10px 0px 20px;
}
.navbar .btn-navbar {
	margin-top: 10px;
}

.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-image: none;
	box-shadow: none;
	border-bottom: 1px solid #002060 !important;
}

.navbar ul li:focus, .navbar .active {
	outline: 0;	
	padding-bottom: 1px;
	border-bottom: 3px solid #ff9900;
	margin-bottom: -1px;
}

ul.nav {
	border-color: #ccc;
}

.nav-tabs > .active > a,
.nav-tabs > .active > a:hover {
  border: 1px solid #ccc;
  border-bottom-color: transparent;
}

.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,
.nav-list > .active > a, .nav-list > .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.reflog td.header {
	padding-left: 7px;
	vertical-align:middle;
}

div.reflog td.commits {
	padding-left: 7px;
}

div.reflog tr.commit td {
	vertical-align:top;
	padding-left: 5px;
}

div.reflog tr.commit img {
	max-width: none;
}

div.dashboardTitle {
	font-size: 1.75em;
	padding: 10px 0px 5px 0px;
	margin: 10px 0px;
	border-bottom: 1px solid #ccc;
}

div.dashboardTitle small {
	color: #888;
	font-size: 0.7em;
}

.repositorynavbar {
	background-color: #fbfbfb;
	border-bottom: 1px solid #ccc;
	margin-bottom: 10px;
}

.repositorynavbar .title {
	line-height: 32px;
	padding: 5px 0px;
}

.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 {
	padding-top: 2px;
}

.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;
}

@media (max-width: 767px) {
	.repositorynavbar {
    margin-right: -20px;
    margin-left: -20px;
    padding: 0px 5px;
  }
}

.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;
}

table {
	margin-bottom: 5px;
	font-size: inherit;
}

.table th {
	vertical-align: top;
}

th {
	vertical-align: middle;
	text-align: left;	
}

table.tickets {
	border-bottom: 1px solid #ccc;	
}

table.tickets td.indicators {
	width: 75px;
	text-align: right;
	padding-right: 5px;
	color: #888;
}

.ticketLabel,
table.tickets .label {
	color: white;
	font-weight: normal;
	margin: 0px 2px;
}

div.featureWelcome {
	padding: 15px;
	background-color: #fbfbfb;
	border: 1px solid #ccc;
	border-radius: 5px;	
}

div.featureWelcome div.icon {
	color: #ccc;
	font-size: 144px;
}

li.dynamicQuery {
	padding: 3px 0px;
	margin: 1px 0px;
	border-radius: 4px;
}

li.dynamicQuery i {
	color: rgba(255, 255, 255, 0.5);
	padding-right: 5px;
}

li.dynamicQuery a.active {
	color: white;
}

div.milestoneOverview {
	color:#888;
	border: 1px solid #ddd;
	padding: 2px 5px;
	text-align: center;
	font-size: 11px;
	background-color: #fbfbfb;
}

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 .jump {
    border-top: 50px solid transparent;
    margin-top: -50px;
	background: url(arrow_line.png) no-repeat scroll bottom right transparent;	
}

#nums .jump:target {
	border-left: 7px solid transparent;
	margin-right: 3px;
}

#lines .line {
    padding-left: 5px;
    color: #888;
}

#nums a:hover {
	background-color: #ffffbf;
	color: black;
	font-weight: bold;
	border-top: 1px solid red;
	border-bottom: 1px solid red;
	text-decoration: none;
}

#lines table {
	margin: 0;
}

#lines td {
	padding: 0;
}

#lines a {
	padding-left: 5px;
}

#lines tr:hover {
	background-color: #ffffbf;
}
#lines .odd {
	background-color: white;
}

#lines .even {
	background-color: #fafafa;
}

.diffstat {
	padding: 1px 5px;
	font-size: smaller;
	background-color: #f5f5f5;
	border: 1px solid #ccc;
	color: #ccc;
	font-weight:bold;
	display: inline-block;
}

.diffstat-inline {
	font-size: smaller;
	color: #ccc;
	font-weight:bold;	
}

.diffstat .diffstat-total {
	color: black;
	border-right: 1px solid #ccc;
	padding-right: 4px;
	margin-right: 2px;
}

.diffstat-inline .diffstat-total {
	color: #999;
	padding-right: 2px;
}

.diffstat-segments {
	vertical-align: baseline;
}

.diffstat-insert {
	color: #629E62; 
}

.diffstat-delete {
	color: #B9583B; 
}
.patch-group {
	margin-bottom: 0px;
	border: 1px solid #ccc;
	background-color: #fbfbfb;
}

.patch-group .accordion-inner {
	padding: 0px;
}

.ticket-meta-top {
	padding: 0px 10px 10px 10px;
}

.ticket-meta-middle {
	border: 1px solid #ccc;
	padding: 10px;
	background-color: #fbfbfb;
}

.ticket-meta-bottom {
	border: 1px solid #ccc;
	border-top: 0px;
	padding: 10px;
}

.ticket-title {
	font-size: 20px;
}

.ticket-number {
	color: #ccc;
	font-size: 20px;
	font-weight: normal;
}

.ticket-list-icon {
	padding: 8px 0px 8px 8px !important;
	width: 24px;
	font-size: 24px;
	vertical-align: middle !important;
	color: #888;
}

td.ticket-list-state {
	vertical-align: middle;
}

.ticket-list-details {
	font-size: 11px;
	color: #888;
}

div.ticket-text {
	max-width: 600px;
}

.ticket-text-editor {
	height:7em;
	border:0px;
	border-radius: 0px;
	border-top:1px solid #ccc;
	margin-bottom:0px;
	padding:4px;
	background-color:#ffffff;
	box-shadow: none;
}

.indicator-large-dark {
	font-size: 20px;
	color: #888;
}

.indicator-large-light {
	font-size: 20px;
	color: #bbb;
}

.indicator-huge-light {
	font-size: 48px;
	color: #bbb;
}

.attribution-emphasize {
	font-weight: bold;
}

.attribution-text {
	color: #888;
}

.attribution-border {	
}

.attribution-header {
	background-color: #fbfbfb;
	padding: 8px;
	border: 1px solid #ccc;
}

.attribution-header-pullright {
	float: right;
	text-align: right;
	padding-right: 1px;
}

.attribution-patch-pullright {
	float: right;
	text-align: right;
	margin: 5px 10px;
}

.attribution-date {
	color: #999;
	font-size: smaller;
}

.attribution-link {
	color: #999;
	padding-left: 5px;
}

.attribution-pullright {
	float: right;
	text-align: right;
	padding-right: 8px;
}

.attribution-triangle {
	position: absolute;
	margin-left: -23px;
	margin-top: 11px;
	height: 0px;
	width: 0px;
	border-image: none;
	border: 10px solid transparent;
	border-right: 13px solid #ddd;
}

.attribution-comment {
	padding: 10px 10px 0px 10px;
	/*border: 1px solid #ccc;
	border-top: 0px;*/
}

.ticket-simple-event {
	padding: 5px 0px;
}

.status-display {
	text-align: center;
	font-weight: bold;	
}

.status-change {
	font-size: 1.0em;
	text-shadow: none;
	padding: 5px 10px !important;
	font-weight: bold;
	display: inline-block;
	text-align: center;
	width: 50px;
	margin-right: 5px !important;
}

.submit-info {
	margin-bottom: 0px;
	border-radius: 0px;
}

.merge-panel {
	padding: 5px 7px;	
	background-color: #fbfbfb;
	color: #444
}

.merge-panel p.step {
	margin: 10px 0px 5px;
}

.gitcommand {
	margin-top: 5px;
	border: 1px solid #ccc;
	background-color: #333 !important;
	color: #ccc;
	border-radius: 3px;
	padding: 5px;
	margin-bottom: 5px;
	text-shadow: none;
}

a.commit {
	border: 1px solid #ccc;
	border-radius: 3px;
	background-color: #fbfbfb;
	padding: 2px 4px;	
	line-heihgt:99%;
	font-size: 11px;
	text-transform: lowercase;
}

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-strikethrough {
	text-decoration: line-through;
	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.highlight {
	background-color: rgb(255, 255, 100);
	color: black;
	padding: 0px 2px;
}

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.gravatar-round {
    background-color: #ffffff;
    border: 1px solid #ccc;
    border-radius: 100%;    
}

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;
	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;
}

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;
}

.topborder {
	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, table.ticket {
	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.ticket th, table.ticket td {
	padding: 1px 3px;
	border: 0;
}

table.summary {
	margin: 0px;
}

table.summary th, table.ticket 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: middle;
}

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.pretty td.graph {
	border-right: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
	padding: 0px;
	/*width: 1px;*/
}

table.pretty tr.commit {
	/* must match branch graph servlet row height definition */
	height: 24px;
}

@media (min-width: 979px) {
  td.ellipsize {
	text-overflow: ellipsis;
	overflow: hidden;
	white-space: nowrap;
  }
}

@media (max-width: 979px) {
  td.ellipsize {
    text-overflow: inherit;
    overflow: visible;
    white-space: wrap;
  }	
}

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 !important;	
	border: 0 !important;
	border-radius: 0 !important;
	line-height: 1em;
}
table.palette td.pane {
	padding: 0px;
	width: 250px !important;
}

table.palette td.pane select {
	width: 250px !important;
}

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 {
	width: 100%;
	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.annotated td.lineCommit {
	padding-left: 5px;
	padding-right: 5px;
}

table.annotated td.lineNumber {
	border-right: 1px solid #ddd;
	border-left: 1px solid #ddd;
	padding-left: 5px;
	padding-right: 5px;
	text-align: right;
}

table.annotated td.lineContent {
	padding-left: 5px;
	font: monospace;
}

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;	
}

.merge {
	opacity: 0.5;
}

.merge:hover {
	opacity: 1;
}

td.author {
	font-style: italic !important;
	white-space: nowrap;
}

td.date {
	/*font-style: italic !important;*/
	white-space: nowrap;
}

span.sha1, span.sha1 a, span.sha1 a span, .commit_message, span.shortsha1, td.sha1 {
	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.docs {
	max-width: 880px;
}

div.docs ul.nav {	
	margin-bottom: 0px !important;
}

div.docs div.docnav {
	display: inline-block;
	padding: 6px 5px 6px 5px;	
	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;
	margin-top: -10px;
}

div.docs .content {
	margin-top: 10px;
}

div.docs div.markdown {
	margin-top: 10px;
}

div.markdown {	
	line-height: 1.4;
}

div.markdown h1 {
	padding: 0px 0px 4px;
	border-bottom: 1px solid rgb(221, 221, 221);
	margin: 4px 0px 8px;
}

div.markdown h2 {
	padding: 4px 0px;
	border-bottom: 1px solid rgb(238, 238, 238);
	margin: 4px 0px 8px;
}

div.markdown h3 {
	padding: 8px 0px 4px;	
}

div.markdown li {
	line-height: 1.4;
}

div.markdown pre {
	background-color: rgb(250, 250, 250);
	border: 1px solid rgb(221, 221, 221);
    border-radius: 4px 4px 4px 4px;
    display: block;
    font-size: 12px;
    line-height: 18px;
    margin: 9px 0;
    padding: 8.5px;
    white-space: pre-wrap;
}

div.markdown pre code {
    background-color: inherit;
    border: none;    
    padding: 0;
}

div.markdown code {
	background-color: rgb(250, 250, 250);
	border: 1px solid rgb(221, 221, 221);
    border-radius: 3px;
    padding: 0 0.4em;
}

div.markdown table {
	max-width: 100%;
	background-color: transparent;
	border-collapse: collapse;
	border-spacing: 0px;
	font-size: inherit;
	border-width: 0px 1px 1px 0px;
    border-style: solid solid solid none;
    border-color: rgb(221, 221, 221);
    border-image: none;
    border-collapse: separate;
    margin: 10px 0px 20px;
}

div.markdown table td, div.markdown table th {
	padding: 8px;
	line-height: 20px;
	text-align: left;
	vertical-align: top;
	border-top: 1px solid rgb(221, 221, 221);
	border-left: 1px solid rgb(221, 221, 221);
}

div.markdown table.text th, div.markdown table.text td {
	vertical-align: top;
	border-top: 1px solid #ccc;
	padding:5px;
}
.resolution {
	text-transform: uppercase;
	font-weight: bold !important;
	font-size: 11px;
}
.resolution-success, .resolution-success a {
	color: #14892c !important;
}
.resolution-success a:hover {
	color: white !important;
}
.resolution-error, .resolution-error a {
	color: #d04437 !important;
}
.resolution-error a:hover {
	color: white !important;
}
.resolution-complete, .resolution-complete a {
	color: #4a6785 !important
}
.resolution-complete a:hover {
	color: white !important;
}
.resolution-current, .resolution-current a {
	color: #594300 !important;
}
.resolution-current, .resolution-current a:hover {
	color: white;
}

/*! AUI Lozenge */
.aui-lozenge {
    background: #ccc;
    border: 1px solid #ccc;
    border-radius: 3px;
    color: #333;
    display: inline-block;
    font-size: 11px;
    font-weight: bold;
    line-height: 99%; /* cross-browser compromise to make the line-height match the font-size */
    margin: 0;
    padding: 2px 5px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}
.aui-lozenge.aui-lozenge-subtle {
    background-color: #fff;
    border-color: #ccc;
    color: #333;
}
.aui-lozenge-success {
    background-color: #14892c;
    border-color: #14892c;
    color: #fff;
}
.aui-lozenge-success.aui-lozenge-subtle {
    background-color: #fff;
    border-color: #b2d8b9;
    color: #14892c;
}
.aui-lozenge-error {
    background-color: #d04437;
    border-color: #d04437;
    color: #fff;
}
.aui-lozenge-error.aui-lozenge-subtle {
    background-color: #fff;
    border-color: #f8d3d1;
    color: #d04437;
}
.aui-lozenge-current {
    background-color: #ffd351;
    border-color: #ffd351;
    color: #594300;
}
.aui-lozenge-current.aui-lozenge-subtle {
    background-color: #fff;
    border-color: #ffe28c;
    color: #594300;
}
.aui-lozenge-complete {
    background-color: #4a6785;
    border-color: #4a6785;
    color: #fff;
}
.aui-lozenge-complete.aui-lozenge-subtle {
    background-color: #fff;
    border-color: #e4e8ed;
    color: #4a6785;
}
.aui-lozenge-moved {
    background-color: #815b3a;
    border-color: #815b3a;
    color: #fff;
}
.aui-lozenge-moved.aui-lozenge-subtle {
    background-color: #fff;
    border-color: #ece7e2;
    color: #815b3a;
}