Changeset - de5f6c9f50b0
[Not reviewed]
default
2 6 0
Sean Farley - 11 years ago 2014-07-16 02:15:34
sean.michael.farley@gmail.com
arrow_refresh.png: use new icon-arrows-cw font
8 files changed with 7 insertions and 16 deletions:
0 comments (0 inline, 0 general)
kallithea/public/css/bootstrap.css
Show inline comments
 
@@ -1011,3073 +1011,3073 @@ pre code {
 
  .col-sm-pull-4 {
 
    right: 33.33333333333333%;
 
  }
 
  .col-sm-pull-5 {
 
    right: 41.66666666666667%;
 
  }
 
  .col-sm-pull-6 {
 
    right: 50%;
 
  }
 
  .col-sm-pull-7 {
 
    right: 58.333333333333336%;
 
  }
 
  .col-sm-pull-8 {
 
    right: 66.66666666666666%;
 
  }
 
  .col-sm-pull-9 {
 
    right: 75%;
 
  }
 
  .col-sm-pull-10 {
 
    right: 83.33333333333334%;
 
  }
 
  .col-sm-pull-11 {
 
    right: 91.66666666666666%;
 
  }
 
  .col-sm-offset-1 {
 
    margin-left: 8.333333333333332%;
 
  }
 
  .col-sm-offset-2 {
 
    margin-left: 16.666666666666664%;
 
  }
 
  .col-sm-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-sm-offset-4 {
 
    margin-left: 33.33333333333333%;
 
  }
 
  .col-sm-offset-5 {
 
    margin-left: 41.66666666666667%;
 
  }
 
  .col-sm-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-sm-offset-7 {
 
    margin-left: 58.333333333333336%;
 
  }
 
  .col-sm-offset-8 {
 
    margin-left: 66.66666666666666%;
 
  }
 
  .col-sm-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-sm-offset-10 {
 
    margin-left: 83.33333333333334%;
 
  }
 
  .col-sm-offset-11 {
 
    margin-left: 91.66666666666666%;
 
  }
 
}
 

	
 
@media (min-width: 992px) {
 
  .container {
 
    max-width: 970px;
 
  }
 
  .col-md-1,
 
  .col-md-2,
 
  .col-md-3,
 
  .col-md-4,
 
  .col-md-5,
 
  .col-md-6,
 
  .col-md-7,
 
  .col-md-8,
 
  .col-md-9,
 
  .col-md-10,
 
  .col-md-11 {
 
    float: left;
 
  }
 
  .col-md-1 {
 
    width: 8.333333333333332%;
 
  }
 
  .col-md-2 {
 
    width: 16.666666666666664%;
 
  }
 
  .col-md-3 {
 
    width: 25%;
 
  }
 
  .col-md-4 {
 
    width: 33.33333333333333%;
 
  }
 
  .col-md-5 {
 
    width: 41.66666666666667%;
 
  }
 
  .col-md-6 {
 
    width: 50%;
 
  }
 
  .col-md-7 {
 
    width: 58.333333333333336%;
 
  }
 
  .col-md-8 {
 
    width: 66.66666666666666%;
 
  }
 
  .col-md-9 {
 
    width: 75%;
 
  }
 
  .col-md-10 {
 
    width: 83.33333333333334%;
 
  }
 
  .col-md-11 {
 
    width: 91.66666666666666%;
 
  }
 
  .col-md-12 {
 
    width: 100%;
 
  }
 
  .col-md-push-0 {
 
    left: auto;
 
  }
 
  .col-md-push-1 {
 
    left: 8.333333333333332%;
 
  }
 
  .col-md-push-2 {
 
    left: 16.666666666666664%;
 
  }
 
  .col-md-push-3 {
 
    left: 25%;
 
  }
 
  .col-md-push-4 {
 
    left: 33.33333333333333%;
 
  }
 
  .col-md-push-5 {
 
    left: 41.66666666666667%;
 
  }
 
  .col-md-push-6 {
 
    left: 50%;
 
  }
 
  .col-md-push-7 {
 
    left: 58.333333333333336%;
 
  }
 
  .col-md-push-8 {
 
    left: 66.66666666666666%;
 
  }
 
  .col-md-push-9 {
 
    left: 75%;
 
  }
 
  .col-md-push-10 {
 
    left: 83.33333333333334%;
 
  }
 
  .col-md-push-11 {
 
    left: 91.66666666666666%;
 
  }
 
  .col-md-pull-0 {
 
    right: auto;
 
  }
 
  .col-md-pull-1 {
 
    right: 8.333333333333332%;
 
  }
 
  .col-md-pull-2 {
 
    right: 16.666666666666664%;
 
  }
 
  .col-md-pull-3 {
 
    right: 25%;
 
  }
 
  .col-md-pull-4 {
 
    right: 33.33333333333333%;
 
  }
 
  .col-md-pull-5 {
 
    right: 41.66666666666667%;
 
  }
 
  .col-md-pull-6 {
 
    right: 50%;
 
  }
 
  .col-md-pull-7 {
 
    right: 58.333333333333336%;
 
  }
 
  .col-md-pull-8 {
 
    right: 66.66666666666666%;
 
  }
 
  .col-md-pull-9 {
 
    right: 75%;
 
  }
 
  .col-md-pull-10 {
 
    right: 83.33333333333334%;
 
  }
 
  .col-md-pull-11 {
 
    right: 91.66666666666666%;
 
  }
 
  .col-md-offset-0 {
 
    margin-left: 0;
 
  }
 
  .col-md-offset-1 {
 
    margin-left: 8.333333333333332%;
 
  }
 
  .col-md-offset-2 {
 
    margin-left: 16.666666666666664%;
 
  }
 
  .col-md-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-md-offset-4 {
 
    margin-left: 33.33333333333333%;
 
  }
 
  .col-md-offset-5 {
 
    margin-left: 41.66666666666667%;
 
  }
 
  .col-md-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-md-offset-7 {
 
    margin-left: 58.333333333333336%;
 
  }
 
  .col-md-offset-8 {
 
    margin-left: 66.66666666666666%;
 
  }
 
  .col-md-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-md-offset-10 {
 
    margin-left: 83.33333333333334%;
 
  }
 
  .col-md-offset-11 {
 
    margin-left: 91.66666666666666%;
 
  }
 
}
 

	
 
@media (min-width: 1200px) {
 
  .container {
 
    max-width: 1170px;
 
  }
 
  .col-lg-1,
 
  .col-lg-2,
 
  .col-lg-3,
 
  .col-lg-4,
 
  .col-lg-5,
 
  .col-lg-6,
 
  .col-lg-7,
 
  .col-lg-8,
 
  .col-lg-9,
 
  .col-lg-10,
 
  .col-lg-11 {
 
    float: left;
 
  }
 
  .col-lg-1 {
 
    width: 8.333333333333332%;
 
  }
 
  .col-lg-2 {
 
    width: 16.666666666666664%;
 
  }
 
  .col-lg-3 {
 
    width: 25%;
 
  }
 
  .col-lg-4 {
 
    width: 33.33333333333333%;
 
  }
 
  .col-lg-5 {
 
    width: 41.66666666666667%;
 
  }
 
  .col-lg-6 {
 
    width: 50%;
 
  }
 
  .col-lg-7 {
 
    width: 58.333333333333336%;
 
  }
 
  .col-lg-8 {
 
    width: 66.66666666666666%;
 
  }
 
  .col-lg-9 {
 
    width: 75%;
 
  }
 
  .col-lg-10 {
 
    width: 83.33333333333334%;
 
  }
 
  .col-lg-11 {
 
    width: 91.66666666666666%;
 
  }
 
  .col-lg-12 {
 
    width: 100%;
 
  }
 
  .col-lg-push-0 {
 
    left: auto;
 
  }
 
  .col-lg-push-1 {
 
    left: 8.333333333333332%;
 
  }
 
  .col-lg-push-2 {
 
    left: 16.666666666666664%;
 
  }
 
  .col-lg-push-3 {
 
    left: 25%;
 
  }
 
  .col-lg-push-4 {
 
    left: 33.33333333333333%;
 
  }
 
  .col-lg-push-5 {
 
    left: 41.66666666666667%;
 
  }
 
  .col-lg-push-6 {
 
    left: 50%;
 
  }
 
  .col-lg-push-7 {
 
    left: 58.333333333333336%;
 
  }
 
  .col-lg-push-8 {
 
    left: 66.66666666666666%;
 
  }
 
  .col-lg-push-9 {
 
    left: 75%;
 
  }
 
  .col-lg-push-10 {
 
    left: 83.33333333333334%;
 
  }
 
  .col-lg-push-11 {
 
    left: 91.66666666666666%;
 
  }
 
  .col-lg-pull-0 {
 
    right: auto;
 
  }
 
  .col-lg-pull-1 {
 
    right: 8.333333333333332%;
 
  }
 
  .col-lg-pull-2 {
 
    right: 16.666666666666664%;
 
  }
 
  .col-lg-pull-3 {
 
    right: 25%;
 
  }
 
  .col-lg-pull-4 {
 
    right: 33.33333333333333%;
 
  }
 
  .col-lg-pull-5 {
 
    right: 41.66666666666667%;
 
  }
 
  .col-lg-pull-6 {
 
    right: 50%;
 
  }
 
  .col-lg-pull-7 {
 
    right: 58.333333333333336%;
 
  }
 
  .col-lg-pull-8 {
 
    right: 66.66666666666666%;
 
  }
 
  .col-lg-pull-9 {
 
    right: 75%;
 
  }
 
  .col-lg-pull-10 {
 
    right: 83.33333333333334%;
 
  }
 
  .col-lg-pull-11 {
 
    right: 91.66666666666666%;
 
  }
 
  .col-lg-offset-0 {
 
    margin-left: 0;
 
  }
 
  .col-lg-offset-1 {
 
    margin-left: 8.333333333333332%;
 
  }
 
  .col-lg-offset-2 {
 
    margin-left: 16.666666666666664%;
 
  }
 
  .col-lg-offset-3 {
 
    margin-left: 25%;
 
  }
 
  .col-lg-offset-4 {
 
    margin-left: 33.33333333333333%;
 
  }
 
  .col-lg-offset-5 {
 
    margin-left: 41.66666666666667%;
 
  }
 
  .col-lg-offset-6 {
 
    margin-left: 50%;
 
  }
 
  .col-lg-offset-7 {
 
    margin-left: 58.333333333333336%;
 
  }
 
  .col-lg-offset-8 {
 
    margin-left: 66.66666666666666%;
 
  }
 
  .col-lg-offset-9 {
 
    margin-left: 75%;
 
  }
 
  .col-lg-offset-10 {
 
    margin-left: 83.33333333333334%;
 
  }
 
  .col-lg-offset-11 {
 
    margin-left: 91.66666666666666%;
 
  }
 
}
 

	
 
table {
 
  max-width: 100%;
 
  background-color: transparent;
 
}
 

	
 
th {
 
  text-align: left;
 
}
 

	
 
.table {
 
  width: 100%;
 
  margin-bottom: 20px;
 
}
 

	
 
.table thead > tr > th,
 
.table tbody > tr > th,
 
.table tfoot > tr > th,
 
.table thead > tr > td,
 
.table tbody > tr > td,
 
.table tfoot > tr > td {
 
  padding: 8px;
 
  line-height: 1.428571429;
 
  vertical-align: top;
 
  border-top: 1px solid #dddddd;
 
}
 

	
 
.table thead > tr > th {
 
  vertical-align: bottom;
 
  border-bottom: 2px solid #dddddd;
 
}
 

	
 
.table caption + thead tr:first-child th,
 
.table colgroup + thead tr:first-child th,
 
.table thead:first-child tr:first-child th,
 
.table caption + thead tr:first-child td,
 
.table colgroup + thead tr:first-child td,
 
.table thead:first-child tr:first-child td {
 
  border-top: 0;
 
}
 

	
 
.table tbody + tbody {
 
  border-top: 2px solid #dddddd;
 
}
 

	
 
.table .table {
 
  background-color: #ffffff;
 
}
 

	
 
.table-condensed thead > tr > th,
 
.table-condensed tbody > tr > th,
 
.table-condensed tfoot > tr > th,
 
.table-condensed thead > tr > td,
 
.table-condensed tbody > tr > td,
 
.table-condensed tfoot > tr > td {
 
  padding: 5px;
 
}
 

	
 
.table-bordered {
 
  border: 1px solid #dddddd;
 
}
 

	
 
.table-bordered > thead > tr > th,
 
.table-bordered > tbody > tr > th,
 
.table-bordered > tfoot > tr > th,
 
.table-bordered > thead > tr > td,
 
.table-bordered > tbody > tr > td,
 
.table-bordered > tfoot > tr > td {
 
  border: 1px solid #dddddd;
 
}
 

	
 
.table-bordered > thead > tr > th,
 
.table-bordered > thead > tr > td {
 
  border-bottom-width: 2px;
 
}
 

	
 
.table-striped > tbody > tr:nth-child(odd) > td,
 
.table-striped > tbody > tr:nth-child(odd) > th {
 
  background-color: #f9f9f9;
 
}
 

	
 
.table-hover > tbody > tr:hover > td,
 
.table-hover > tbody > tr:hover > th {
 
  background-color: #f5f5f5;
 
}
 

	
 
table col[class*="col-"] {
 
  display: table-column;
 
  float: none;
 
}
 

	
 
table td[class*="col-"],
 
table th[class*="col-"] {
 
  display: table-cell;
 
  float: none;
 
}
 

	
 
.table > thead > tr > td.active,
 
.table > tbody > tr > td.active,
 
.table > tfoot > tr > td.active,
 
.table > thead > tr > th.active,
 
.table > tbody > tr > th.active,
 
.table > tfoot > tr > th.active,
 
.table > thead > tr.active > td,
 
.table > tbody > tr.active > td,
 
.table > tfoot > tr.active > td,
 
.table > thead > tr.active > th,
 
.table > tbody > tr.active > th,
 
.table > tfoot > tr.active > th {
 
  background-color: #f5f5f5;
 
}
 

	
 
.table > thead > tr > td.success,
 
.table > tbody > tr > td.success,
 
.table > tfoot > tr > td.success,
 
.table > thead > tr > th.success,
 
.table > tbody > tr > th.success,
 
.table > tfoot > tr > th.success,
 
.table > thead > tr.success > td,
 
.table > tbody > tr.success > td,
 
.table > tfoot > tr.success > td,
 
.table > thead > tr.success > th,
 
.table > tbody > tr.success > th,
 
.table > tfoot > tr.success > th {
 
  background-color: #dff0d8;
 
  border-color: #d6e9c6;
 
}
 

	
 
.table-hover > tbody > tr > td.success:hover,
 
.table-hover > tbody > tr > th.success:hover,
 
.table-hover > tbody > tr.success:hover > td {
 
  background-color: #d0e9c6;
 
  border-color: #c9e2b3;
 
}
 

	
 
.table > thead > tr > td.danger,
 
.table > tbody > tr > td.danger,
 
.table > tfoot > tr > td.danger,
 
.table > thead > tr > th.danger,
 
.table > tbody > tr > th.danger,
 
.table > tfoot > tr > th.danger,
 
.table > thead > tr.danger > td,
 
.table > tbody > tr.danger > td,
 
.table > tfoot > tr.danger > td,
 
.table > thead > tr.danger > th,
 
.table > tbody > tr.danger > th,
 
.table > tfoot > tr.danger > th {
 
  background-color: #f2dede;
 
  border-color: #eed3d7;
 
}
 

	
 
.table-hover > tbody > tr > td.danger:hover,
 
.table-hover > tbody > tr > th.danger:hover,
 
.table-hover > tbody > tr.danger:hover > td {
 
  background-color: #ebcccc;
 
  border-color: #e6c1c7;
 
}
 

	
 
.table > thead > tr > td.warning,
 
.table > tbody > tr > td.warning,
 
.table > tfoot > tr > td.warning,
 
.table > thead > tr > th.warning,
 
.table > tbody > tr > th.warning,
 
.table > tfoot > tr > th.warning,
 
.table > thead > tr.warning > td,
 
.table > tbody > tr.warning > td,
 
.table > tfoot > tr.warning > td,
 
.table > thead > tr.warning > th,
 
.table > tbody > tr.warning > th,
 
.table > tfoot > tr.warning > th {
 
  background-color: #fcf8e3;
 
  border-color: #fbeed5;
 
}
 

	
 
.table-hover > tbody > tr > td.warning:hover,
 
.table-hover > tbody > tr > th.warning:hover,
 
.table-hover > tbody > tr.warning:hover > td {
 
  background-color: #faf2cc;
 
  border-color: #f8e5be;
 
}
 

	
 
@media (max-width: 768px) {
 
  .table-responsive {
 
    width: 100%;
 
    margin-bottom: 15px;
 
    overflow-x: scroll;
 
    overflow-y: hidden;
 
    border: 1px solid #dddddd;
 
  }
 
  .table-responsive > .table {
 
    margin-bottom: 0;
 
    background-color: #fff;
 
  }
 
  .table-responsive > .table > thead > tr > th,
 
  .table-responsive > .table > tbody > tr > th,
 
  .table-responsive > .table > tfoot > tr > th,
 
  .table-responsive > .table > thead > tr > td,
 
  .table-responsive > .table > tbody > tr > td,
 
  .table-responsive > .table > tfoot > tr > td {
 
    white-space: nowrap;
 
  }
 
  .table-responsive > .table-bordered {
 
    border: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr > th:first-child,
 
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
 
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
 
  .table-responsive > .table-bordered > thead > tr > td:first-child,
 
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
 
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
 
    border-left: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr > th:last-child,
 
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
 
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
 
  .table-responsive > .table-bordered > thead > tr > td:last-child,
 
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
 
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
 
    border-right: 0;
 
  }
 
  .table-responsive > .table-bordered > thead > tr:last-child > th,
 
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
 
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
 
  .table-responsive > .table-bordered > thead > tr:last-child > td,
 
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
 
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
 
    border-bottom: 0;
 
  }
 
}
 

	
 
fieldset {
 
  padding: 0;
 
  margin: 0;
 
  border: 0;
 
}
 

	
 
legend {
 
  display: block;
 
  width: 100%;
 
  padding: 0;
 
  margin-bottom: 20px;
 
  font-size: 21px;
 
  line-height: inherit;
 
  color: #333333;
 
  border: 0;
 
  border-bottom: 1px solid #e5e5e5;
 
}
 

	
 
label {
 
  display: inline-block;
 
  margin-bottom: 5px;
 
  font-weight: bold;
 
}
 

	
 
input[type="search"] {
 
  -webkit-box-sizing: border-box;
 
     -moz-box-sizing: border-box;
 
          box-sizing: border-box;
 
}
 

	
 
input[type="radio"],
 
input[type="checkbox"] {
 
  margin: 4px 0 0;
 
  margin-top: 1px \9;
 
  /* IE8-9 */
 

	
 
  line-height: normal;
 
}
 

	
 
input[type="file"] {
 
  display: block;
 
}
 

	
 
select[multiple],
 
select[size] {
 
  height: auto;
 
}
 

	
 
select optgroup {
 
  font-family: inherit;
 
  font-size: inherit;
 
  font-style: inherit;
 
}
 

	
 
input[type="file"]:focus,
 
input[type="radio"]:focus,
 
input[type="checkbox"]:focus {
 
  outline: thin dotted #333;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 

	
 
input[type="number"]::-webkit-outer-spin-button,
 
input[type="number"]::-webkit-inner-spin-button {
 
  height: auto;
 
}
 

	
 
.form-control:-moz-placeholder {
 
  color: #999999;
 
}
 

	
 
.form-control::-moz-placeholder {
 
  color: #999999;
 
}
 

	
 
.form-control:-ms-input-placeholder {
 
  color: #999999;
 
}
 

	
 
.form-control::-webkit-input-placeholder {
 
  color: #999999;
 
}
 

	
 
.form-control {
 
  display: block;
 
  width: 100%;
 
  height: 34px;
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  line-height: 1.428571429;
 
  color: #555555;
 
  vertical-align: middle;
 
  background-color: #ffffff;
 
  border: 1px solid #cccccc;
 
  border-radius: 4px;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
  -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
 
          transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
 
}
 

	
 
.form-control:focus {
 
  border-color: #66afe9;
 
  outline: 0;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
 
}
 

	
 
.form-control[disabled],
 
.form-control[readonly],
 
fieldset[disabled] .form-control {
 
  cursor: not-allowed;
 
  background-color: #eeeeee;
 
}
 

	
 
textarea.form-control {
 
  height: auto;
 
}
 

	
 
.form-group {
 
  margin-bottom: 15px;
 
}
 

	
 
.radio,
 
.checkbox {
 
  display: block;
 
  min-height: 20px;
 
  padding-left: 20px;
 
  margin-top: 10px;
 
  margin-bottom: 10px;
 
  vertical-align: middle;
 
}
 

	
 
.radio label,
 
.checkbox label {
 
  display: inline;
 
  margin-bottom: 0;
 
  font-weight: normal;
 
  cursor: pointer;
 
}
 

	
 
.radio input[type="radio"],
 
.radio-inline input[type="radio"],
 
.checkbox input[type="checkbox"],
 
.checkbox-inline input[type="checkbox"] {
 
  float: left;
 
  margin-left: -20px;
 
}
 

	
 
.radio + .radio,
 
.checkbox + .checkbox {
 
  margin-top: -5px;
 
}
 

	
 
.radio-inline,
 
.checkbox-inline {
 
  display: inline-block;
 
  padding-left: 20px;
 
  margin-bottom: 0;
 
  font-weight: normal;
 
  vertical-align: middle;
 
  cursor: pointer;
 
}
 

	
 
.radio-inline + .radio-inline,
 
.checkbox-inline + .checkbox-inline {
 
  margin-top: 0;
 
  margin-left: 10px;
 
}
 

	
 
input[type="radio"][disabled],
 
input[type="checkbox"][disabled],
 
.radio[disabled],
 
.radio-inline[disabled],
 
.checkbox[disabled],
 
.checkbox-inline[disabled],
 
fieldset[disabled] input[type="radio"],
 
fieldset[disabled] input[type="checkbox"],
 
fieldset[disabled] .radio,
 
fieldset[disabled] .radio-inline,
 
fieldset[disabled] .checkbox,
 
fieldset[disabled] .checkbox-inline {
 
  cursor: not-allowed;
 
}
 

	
 
.input-sm {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 

	
 
select.input-sm {
 
  height: 30px;
 
  line-height: 30px;
 
}
 

	
 
textarea.input-sm {
 
  height: auto;
 
}
 

	
 
.input-lg {
 
  height: 45px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.33;
 
  border-radius: 6px;
 
}
 

	
 
select.input-lg {
 
  height: 45px;
 
  line-height: 45px;
 
}
 

	
 
textarea.input-lg {
 
  height: auto;
 
}
 

	
 
.has-warning .help-block,
 
.has-warning .control-label {
 
  color: #c09853;
 
}
 

	
 
.has-warning .form-control {
 
  border-color: #c09853;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 

	
 
.has-warning .form-control:focus {
 
  border-color: #a47e3c;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
 
}
 

	
 
.has-warning .input-group-addon {
 
  color: #c09853;
 
  background-color: #fcf8e3;
 
  border-color: #c09853;
 
}
 

	
 
.has-error .help-block,
 
.has-error .control-label {
 
  color: #b94a48;
 
}
 

	
 
.has-error .form-control {
 
  border-color: #b94a48;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 

	
 
.has-error .form-control:focus {
 
  border-color: #953b39;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
 
}
 

	
 
.has-error .input-group-addon {
 
  color: #b94a48;
 
  background-color: #f2dede;
 
  border-color: #b94a48;
 
}
 

	
 
.has-success .help-block,
 
.has-success .control-label {
 
  color: #468847;
 
}
 

	
 
.has-success .form-control {
 
  border-color: #468847;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
 
}
 

	
 
.has-success .form-control:focus {
 
  border-color: #356635;
 
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
 
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
 
}
 

	
 
.has-success .input-group-addon {
 
  color: #468847;
 
  background-color: #dff0d8;
 
  border-color: #468847;
 
}
 

	
 
.form-control-static {
 
  padding-top: 7px;
 
  margin-bottom: 0;
 
}
 

	
 
.help-block {
 
  display: block;
 
  margin-top: 5px;
 
  margin-bottom: 10px;
 
  color: #737373;
 
}
 

	
 
@media (min-width: 768px) {
 
  .form-inline .form-group {
 
    display: inline-block;
 
    margin-bottom: 0;
 
    vertical-align: middle;
 
  }
 
  .form-inline .form-control {
 
    display: inline-block;
 
  }
 
  .form-inline .radio,
 
  .form-inline .checkbox {
 
    display: inline-block;
 
    padding-left: 0;
 
    margin-top: 0;
 
    margin-bottom: 0;
 
  }
 
  .form-inline .radio input[type="radio"],
 
  .form-inline .checkbox input[type="checkbox"] {
 
    float: none;
 
    margin-left: 0;
 
  }
 
}
 

	
 
.form-horizontal .control-label,
 
.form-horizontal .radio,
 
.form-horizontal .checkbox,
 
.form-horizontal .radio-inline,
 
.form-horizontal .checkbox-inline {
 
  padding-top: 7px;
 
  margin-top: 0;
 
  margin-bottom: 0;
 
}
 

	
 
.form-horizontal .form-group {
 
  margin-right: -15px;
 
  margin-left: -15px;
 
}
 

	
 
.form-horizontal .form-group:before,
 
.form-horizontal .form-group:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.form-horizontal .form-group:after {
 
  clear: both;
 
}
 

	
 
.form-horizontal .form-group:before,
 
.form-horizontal .form-group:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.form-horizontal .form-group:after {
 
  clear: both;
 
}
 

	
 
@media (min-width: 768px) {
 
  .form-horizontal .control-label {
 
    text-align: right;
 
  }
 
}
 

	
 
.btn {
 
  display: inline-block;
 
  padding: 6px 12px;
 
  margin-bottom: 0;
 
  font-size: 14px;
 
  font-weight: normal;
 
  line-height: 1.428571429;
 
  text-align: center;
 
  white-space: nowrap;
 
  vertical-align: middle;
 
  cursor: pointer;
 
  border: 1px solid transparent;
 
  border-radius: 4px;
 
  -webkit-user-select: none;
 
     -moz-user-select: none;
 
      -ms-user-select: none;
 
       -o-user-select: none;
 
          user-select: none;
 
}
 

	
 
.btn:focus {
 
  outline: thin dotted #333;
 
  outline: 5px auto -webkit-focus-ring-color;
 
  outline-offset: -2px;
 
}
 

	
 
.btn:hover,
 
.btn:focus {
 
  color: #333333;
 
  text-decoration: none;
 
}
 

	
 
.btn:active,
 
.btn.active {
 
  background-image: none;
 
  outline: 0;
 
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
}
 

	
 
.btn.disabled,
 
.btn[disabled],
 
fieldset[disabled] .btn {
 
  pointer-events: none;
 
  cursor: not-allowed;
 
  opacity: 0.65;
 
  filter: alpha(opacity=65);
 
  -webkit-box-shadow: none;
 
          box-shadow: none;
 
}
 

	
 
.btn-default {
 
  color: #333333;
 
  background-color: #ffffff;
 
  border-color: #cccccc;
 
}
 

	
 
.btn-default:hover,
 
.btn-default:focus,
 
.btn-default:active,
 
.btn-default.active,
 
.open .dropdown-toggle.btn-default {
 
  color: #333333;
 
  background-color: #ebebeb;
 
  border-color: #adadad;
 
}
 

	
 
.btn-default:active,
 
.btn-default.active,
 
.open .dropdown-toggle.btn-default {
 
  background-image: none;
 
}
 

	
 
.btn-default.disabled,
 
.btn-default[disabled],
 
fieldset[disabled] .btn-default,
 
.btn-default.disabled:hover,
 
.btn-default[disabled]:hover,
 
fieldset[disabled] .btn-default:hover,
 
.btn-default.disabled:focus,
 
.btn-default[disabled]:focus,
 
fieldset[disabled] .btn-default:focus,
 
.btn-default.disabled:active,
 
.btn-default[disabled]:active,
 
fieldset[disabled] .btn-default:active,
 
.btn-default.disabled.active,
 
.btn-default[disabled].active,
 
fieldset[disabled] .btn-default.active {
 
  background-color: #ffffff;
 
  border-color: #cccccc;
 
}
 

	
 
.btn-primary {
 
  color: #ffffff;
 
  background-color: #428bca;
 
  border-color: #357ebd;
 
}
 

	
 
.btn-primary:hover,
 
.btn-primary:focus,
 
.btn-primary:active,
 
.btn-primary.active,
 
.open .dropdown-toggle.btn-primary {
 
  color: #ffffff;
 
  background-color: #3276b1;
 
  border-color: #285e8e;
 
}
 

	
 
.btn-primary:active,
 
.btn-primary.active,
 
.open .dropdown-toggle.btn-primary {
 
  background-image: none;
 
}
 

	
 
.btn-primary.disabled,
 
.btn-primary[disabled],
 
fieldset[disabled] .btn-primary,
 
.btn-primary.disabled:hover,
 
.btn-primary[disabled]:hover,
 
fieldset[disabled] .btn-primary:hover,
 
.btn-primary.disabled:focus,
 
.btn-primary[disabled]:focus,
 
fieldset[disabled] .btn-primary:focus,
 
.btn-primary.disabled:active,
 
.btn-primary[disabled]:active,
 
fieldset[disabled] .btn-primary:active,
 
.btn-primary.disabled.active,
 
.btn-primary[disabled].active,
 
fieldset[disabled] .btn-primary.active {
 
  background-color: #428bca;
 
  border-color: #357ebd;
 
}
 

	
 
.btn-warning {
 
  color: #ffffff;
 
  background-color: #f0ad4e;
 
  border-color: #eea236;
 
}
 

	
 
.btn-warning:hover,
 
.btn-warning:focus,
 
.btn-warning:active,
 
.btn-warning.active,
 
.open .dropdown-toggle.btn-warning {
 
  color: #ffffff;
 
  background-color: #ed9c28;
 
  border-color: #d58512;
 
}
 

	
 
.btn-warning:active,
 
.btn-warning.active,
 
.open .dropdown-toggle.btn-warning {
 
  background-image: none;
 
}
 

	
 
.btn-warning.disabled,
 
.btn-warning[disabled],
 
fieldset[disabled] .btn-warning,
 
.btn-warning.disabled:hover,
 
.btn-warning[disabled]:hover,
 
fieldset[disabled] .btn-warning:hover,
 
.btn-warning.disabled:focus,
 
.btn-warning[disabled]:focus,
 
fieldset[disabled] .btn-warning:focus,
 
.btn-warning.disabled:active,
 
.btn-warning[disabled]:active,
 
fieldset[disabled] .btn-warning:active,
 
.btn-warning.disabled.active,
 
.btn-warning[disabled].active,
 
fieldset[disabled] .btn-warning.active {
 
  background-color: #f0ad4e;
 
  border-color: #eea236;
 
}
 

	
 
.btn-danger {
 
  color: #ffffff;
 
  background-color: #d9534f;
 
  border-color: #d43f3a;
 
}
 

	
 
.btn-danger:hover,
 
.btn-danger:focus,
 
.btn-danger:active,
 
.btn-danger.active,
 
.open .dropdown-toggle.btn-danger {
 
  color: #ffffff;
 
  background-color: #d2322d;
 
  border-color: #ac2925;
 
}
 

	
 
.btn-danger:active,
 
.btn-danger.active,
 
.open .dropdown-toggle.btn-danger {
 
  background-image: none;
 
}
 

	
 
.btn-danger.disabled,
 
.btn-danger[disabled],
 
fieldset[disabled] .btn-danger,
 
.btn-danger.disabled:hover,
 
.btn-danger[disabled]:hover,
 
fieldset[disabled] .btn-danger:hover,
 
.btn-danger.disabled:focus,
 
.btn-danger[disabled]:focus,
 
fieldset[disabled] .btn-danger:focus,
 
.btn-danger.disabled:active,
 
.btn-danger[disabled]:active,
 
fieldset[disabled] .btn-danger:active,
 
.btn-danger.disabled.active,
 
.btn-danger[disabled].active,
 
fieldset[disabled] .btn-danger.active {
 
  background-color: #d9534f;
 
  border-color: #d43f3a;
 
}
 

	
 
.btn-success {
 
  color: #ffffff;
 
  background-color: #5cb85c;
 
  border-color: #4cae4c;
 
}
 

	
 
.btn-success:hover,
 
.btn-success:focus,
 
.btn-success:active,
 
.btn-success.active,
 
.open .dropdown-toggle.btn-success {
 
  color: #ffffff;
 
  background-color: #47a447;
 
  border-color: #398439;
 
}
 

	
 
.btn-success:active,
 
.btn-success.active,
 
.open .dropdown-toggle.btn-success {
 
  background-image: none;
 
}
 

	
 
.btn-success.disabled,
 
.btn-success[disabled],
 
fieldset[disabled] .btn-success,
 
.btn-success.disabled:hover,
 
.btn-success[disabled]:hover,
 
fieldset[disabled] .btn-success:hover,
 
.btn-success.disabled:focus,
 
.btn-success[disabled]:focus,
 
fieldset[disabled] .btn-success:focus,
 
.btn-success.disabled:active,
 
.btn-success[disabled]:active,
 
fieldset[disabled] .btn-success:active,
 
.btn-success.disabled.active,
 
.btn-success[disabled].active,
 
fieldset[disabled] .btn-success.active {
 
  background-color: #5cb85c;
 
  border-color: #4cae4c;
 
}
 

	
 
.btn-info {
 
  color: #ffffff;
 
  background-color: #5bc0de;
 
  border-color: #46b8da;
 
}
 

	
 
.btn-info:hover,
 
.btn-info:focus,
 
.btn-info:active,
 
.btn-info.active,
 
.open .dropdown-toggle.btn-info {
 
  color: #ffffff;
 
  background-color: #39b3d7;
 
  border-color: #269abc;
 
}
 

	
 
.btn-info:active,
 
.btn-info.active,
 
.open .dropdown-toggle.btn-info {
 
  background-image: none;
 
}
 

	
 
.btn-info.disabled,
 
.btn-info[disabled],
 
fieldset[disabled] .btn-info,
 
.btn-info.disabled:hover,
 
.btn-info[disabled]:hover,
 
fieldset[disabled] .btn-info:hover,
 
.btn-info.disabled:focus,
 
.btn-info[disabled]:focus,
 
fieldset[disabled] .btn-info:focus,
 
.btn-info.disabled:active,
 
.btn-info[disabled]:active,
 
fieldset[disabled] .btn-info:active,
 
.btn-info.disabled.active,
 
.btn-info[disabled].active,
 
fieldset[disabled] .btn-info.active {
 
  background-color: #5bc0de;
 
  border-color: #46b8da;
 
}
 

	
 
.btn-link {
 
  font-weight: normal;
 
  color: #428bca;
 
  cursor: pointer;
 
  border-radius: 0;
 
}
 

	
 
.btn-link,
 
.btn-link:active,
 
.btn-link[disabled],
 
fieldset[disabled] .btn-link {
 
  background-color: transparent;
 
  -webkit-box-shadow: none;
 
          box-shadow: none;
 
}
 

	
 
.btn-link,
 
.btn-link:hover,
 
.btn-link:focus,
 
.btn-link:active {
 
  border-color: transparent;
 
}
 

	
 
.btn-link:hover,
 
.btn-link:focus {
 
  color: #2a6496;
 
  text-decoration: underline;
 
  background-color: transparent;
 
}
 

	
 
.btn-link[disabled]:hover,
 
fieldset[disabled] .btn-link:hover,
 
.btn-link[disabled]:focus,
 
fieldset[disabled] .btn-link:focus {
 
  color: #999999;
 
  text-decoration: none;
 
}
 

	
 
.btn-lg {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.33;
 
  border-radius: 6px;
 
}
 

	
 
.btn-sm,
 
.btn-xs {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 

	
 
.btn-xs {
 
  padding: 1px 5px;
 
}
 

	
 
.btn-block {
 
  display: block;
 
  width: 100%;
 
  padding-right: 0;
 
  padding-left: 0;
 
}
 

	
 
.btn-block + .btn-block {
 
  margin-top: 5px;
 
}
 

	
 
input[type="submit"].btn-block,
 
input[type="reset"].btn-block,
 
input[type="button"].btn-block {
 
  width: 100%;
 
}
 

	
 
.fade {
 
  opacity: 0;
 
  -webkit-transition: opacity 0.15s linear;
 
          transition: opacity 0.15s linear;
 
}
 

	
 
.fade.in {
 
  opacity: 1;
 
}
 

	
 
.collapse {
 
  display: none;
 
}
 

	
 
.collapse.in {
 
  display: block;
 
}
 

	
 
.collapsing {
 
  position: relative;
 
  height: 0;
 
  overflow: hidden;
 
  -webkit-transition: height 0.35s ease;
 
          transition: height 0.35s ease;
 
}
 

	
 
@font-face {
 
  font-family: 'Glyphicons Halflings';
 
  src: url('../fonts/glyphicons-halflings-regular.eot');
 
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');
 
}
 

	
 
.glyphicon {
 
  position: relative;
 
  top: 1px;
 
  display: inline-block;
 
  font-family: 'Glyphicons Halflings';
 
  -webkit-font-smoothing: antialiased;
 
  font-style: normal;
 
  font-weight: normal;
 
  line-height: 1;
 
}
 

	
 
.glyphicon-asterisk:before {
 
  content: "\2a";
 
}
 

	
 
.glyphicon-plus:before {
 
  content: "\2b";
 
}
 

	
 
.glyphicon-euro:before {
 
  content: "\20ac";
 
}
 

	
 
.glyphicon-minus:before {
 
  content: "\2212";
 
}
 

	
 
.glyphicon-cloud:before {
 
  content: "\2601";
 
}
 

	
 
.glyphicon-envelope:before {
 
  content: "\2709";
 
}
 

	
 
.glyphicon-pencil:before {
 
  content: "\270f";
 
}
 

	
 
.glyphicon-glass:before {
 
  content: "\e001";
 
}
 

	
 
.glyphicon-music:before {
 
  content: "\e002";
 
}
 

	
 
.glyphicon-search:before {
 
  content: "\e003";
 
}
 

	
 
.glyphicon-heart:before {
 
  content: "\e005";
 
}
 

	
 
.glyphicon-star:before {
 
  content: "\e006";
 
}
 

	
 
.glyphicon-star-empty:before {
 
  content: "\e007";
 
}
 

	
 
.glyphicon-user:before {
 
  content: "\e008";
 
}
 

	
 
.glyphicon-film:before {
 
  content: "\e009";
 
}
 

	
 
.glyphicon-th-large:before {
 
  content: "\e010";
 
}
 

	
 
.glyphicon-th:before {
 
  content: "\e011";
 
}
 

	
 
.glyphicon-th-list:before {
 
  content: "\e012";
 
}
 

	
 
.glyphicon-ok:before {
 
  content: "\e013";
 
}
 

	
 
.glyphicon-remove:before {
 
  content: "\e014";
 
}
 

	
 
.glyphicon-zoom-in:before {
 
  content: "\e015";
 
}
 

	
 
.glyphicon-zoom-out:before {
 
  content: "\e016";
 
}
 

	
 
.glyphicon-off:before {
 
  content: "\e017";
 
}
 

	
 
.glyphicon-signal:before {
 
  content: "\e018";
 
}
 

	
 
.glyphicon-cog:before {
 
  content: "\e019";
 
}
 

	
 
.glyphicon-trash:before {
 
  content: "\e020";
 
}
 

	
 
.glyphicon-home:before {
 
  content: "\e021";
 
}
 

	
 
.glyphicon-file:before {
 
  content: "\e022";
 
}
 

	
 
.glyphicon-time:before {
 
  content: "\e023";
 
}
 

	
 
.glyphicon-road:before {
 
  content: "\e024";
 
}
 

	
 
.glyphicon-download-alt:before {
 
  content: "\e025";
 
}
 

	
 
.glyphicon-download:before {
 
  content: "\e026";
 
}
 

	
 
.glyphicon-upload:before {
 
  content: "\e027";
 
}
 

	
 
.glyphicon-inbox:before {
 
  content: "\e028";
 
}
 

	
 
.glyphicon-play-circle:before {
 
  content: "\e029";
 
}
 

	
 
.glyphicon-repeat:before {
 
  content: "\e030";
 
}
 

	
 
.glyphicon-refresh:before {
 
.glyphicon-arrows-cw:before {
 
  content: "\e031";
 
}
 

	
 
.glyphicon-list-alt:before {
 
  content: "\e032";
 
}
 

	
 
.glyphicon-flag:before {
 
  content: "\e034";
 
}
 

	
 
.glyphicon-headphones:before {
 
  content: "\e035";
 
}
 

	
 
.glyphicon-volume-off:before {
 
  content: "\e036";
 
}
 

	
 
.glyphicon-volume-down:before {
 
  content: "\e037";
 
}
 

	
 
.glyphicon-volume-up:before {
 
  content: "\e038";
 
}
 

	
 
.glyphicon-qrcode:before {
 
  content: "\e039";
 
}
 

	
 
.glyphicon-barcode:before {
 
  content: "\e040";
 
}
 

	
 
.glyphicon-tag:before {
 
  content: "\e041";
 
}
 

	
 
.glyphicon-tags:before {
 
  content: "\e042";
 
}
 

	
 
.glyphicon-book:before {
 
  content: "\e043";
 
}
 

	
 
.glyphicon-print:before {
 
  content: "\e045";
 
}
 

	
 
.glyphicon-font:before {
 
  content: "\e047";
 
}
 

	
 
.glyphicon-bold:before {
 
  content: "\e048";
 
}
 

	
 
.glyphicon-italic:before {
 
  content: "\e049";
 
}
 

	
 
.glyphicon-text-height:before {
 
  content: "\e050";
 
}
 

	
 
.glyphicon-text-width:before {
 
  content: "\e051";
 
}
 

	
 
.glyphicon-align-left:before {
 
  content: "\e052";
 
}
 

	
 
.glyphicon-align-center:before {
 
  content: "\e053";
 
}
 

	
 
.glyphicon-align-right:before {
 
  content: "\e054";
 
}
 

	
 
.glyphicon-align-justify:before {
 
  content: "\e055";
 
}
 

	
 
.glyphicon-list:before {
 
  content: "\e056";
 
}
 

	
 
.glyphicon-indent-left:before {
 
  content: "\e057";
 
}
 

	
 
.glyphicon-indent-right:before {
 
  content: "\e058";
 
}
 

	
 
.glyphicon-facetime-video:before {
 
  content: "\e059";
 
}
 

	
 
.glyphicon-picture:before {
 
  content: "\e060";
 
}
 

	
 
.glyphicon-map-marker:before {
 
  content: "\e062";
 
}
 

	
 
.glyphicon-adjust:before {
 
  content: "\e063";
 
}
 

	
 
.glyphicon-tint:before {
 
  content: "\e064";
 
}
 

	
 
.glyphicon-edit:before {
 
  content: "\e065";
 
}
 

	
 
.glyphicon-share:before {
 
  content: "\e066";
 
}
 

	
 
.glyphicon-check:before {
 
  content: "\e067";
 
}
 

	
 
.glyphicon-move:before {
 
  content: "\e068";
 
}
 

	
 
.glyphicon-step-backward:before {
 
  content: "\e069";
 
}
 

	
 
.glyphicon-fast-backward:before {
 
  content: "\e070";
 
}
 

	
 
.glyphicon-backward:before {
 
  content: "\e071";
 
}
 

	
 
.glyphicon-play:before {
 
  content: "\e072";
 
}
 

	
 
.glyphicon-pause:before {
 
  content: "\e073";
 
}
 

	
 
.glyphicon-stop:before {
 
  content: "\e074";
 
}
 

	
 
.glyphicon-forward:before {
 
  content: "\e075";
 
}
 

	
 
.glyphicon-fast-forward:before {
 
  content: "\e076";
 
}
 

	
 
.glyphicon-step-forward:before {
 
  content: "\e077";
 
}
 

	
 
.glyphicon-eject:before {
 
  content: "\e078";
 
}
 

	
 
.glyphicon-chevron-left:before {
 
  content: "\e079";
 
}
 

	
 
.glyphicon-chevron-right:before {
 
  content: "\e080";
 
}
 

	
 
.glyphicon-plus-sign:before {
 
  content: "\e081";
 
}
 

	
 
.glyphicon-minus-sign:before {
 
  content: "\e082";
 
}
 

	
 
.glyphicon-remove-sign:before {
 
  content: "\e083";
 
}
 

	
 
.glyphicon-ok-sign:before {
 
  content: "\e084";
 
}
 

	
 
.glyphicon-question-sign:before {
 
  content: "\e085";
 
}
 

	
 
.glyphicon-info-sign:before {
 
  content: "\e086";
 
}
 

	
 
.glyphicon-screenshot:before {
 
  content: "\e087";
 
}
 

	
 
.glyphicon-remove-circle:before {
 
  content: "\e088";
 
}
 

	
 
.glyphicon-ok-circle:before {
 
  content: "\e089";
 
}
 

	
 
.glyphicon-ban-circle:before {
 
  content: "\e090";
 
}
 

	
 
.glyphicon-arrow-left:before {
 
  content: "\e091";
 
}
 

	
 
.glyphicon-arrow-right:before {
 
  content: "\e092";
 
}
 

	
 
.glyphicon-arrow-up:before {
 
  content: "\e093";
 
}
 

	
 
.glyphicon-arrow-down:before {
 
  content: "\e094";
 
}
 

	
 
.glyphicon-share-alt:before {
 
  content: "\e095";
 
}
 

	
 
.glyphicon-resize-full:before {
 
  content: "\e096";
 
}
 

	
 
.glyphicon-resize-small:before {
 
  content: "\e097";
 
}
 

	
 
.glyphicon-exclamation-sign:before {
 
  content: "\e101";
 
}
 

	
 
.glyphicon-gift:before {
 
  content: "\e102";
 
}
 

	
 
.glyphicon-leaf:before {
 
  content: "\e103";
 
}
 

	
 
.glyphicon-eye-open:before {
 
  content: "\e105";
 
}
 

	
 
.glyphicon-eye-close:before {
 
  content: "\e106";
 
}
 

	
 
.glyphicon-warning-sign:before {
 
  content: "\e107";
 
}
 

	
 
.glyphicon-plane:before {
 
  content: "\e108";
 
}
 

	
 
.glyphicon-random:before {
 
  content: "\e110";
 
}
 

	
 
.glyphicon-comment:before {
 
  content: "\e111";
 
}
 

	
 
.glyphicon-magnet:before {
 
  content: "\e112";
 
}
 

	
 
.glyphicon-chevron-up:before {
 
  content: "\e113";
 
}
 

	
 
.glyphicon-chevron-down:before {
 
  content: "\e114";
 
}
 

	
 
.glyphicon-retweet:before {
 
  content: "\e115";
 
}
 

	
 
.glyphicon-shopping-cart:before {
 
  content: "\e116";
 
}
 

	
 
.glyphicon-folder-close:before {
 
  content: "\e117";
 
}
 

	
 
.glyphicon-folder-open:before {
 
  content: "\e118";
 
}
 

	
 
.glyphicon-resize-vertical:before {
 
  content: "\e119";
 
}
 

	
 
.glyphicon-resize-horizontal:before {
 
  content: "\e120";
 
}
 

	
 
.glyphicon-hdd:before {
 
  content: "\e121";
 
}
 

	
 
.glyphicon-bullhorn:before {
 
  content: "\e122";
 
}
 

	
 
.glyphicon-certificate:before {
 
  content: "\e124";
 
}
 

	
 
.glyphicon-thumbs-up:before {
 
  content: "\e125";
 
}
 

	
 
.glyphicon-thumbs-down:before {
 
  content: "\e126";
 
}
 

	
 
.glyphicon-hand-right:before {
 
  content: "\e127";
 
}
 

	
 
.glyphicon-hand-left:before {
 
  content: "\e128";
 
}
 

	
 
.glyphicon-hand-up:before {
 
  content: "\e129";
 
}
 

	
 
.glyphicon-hand-down:before {
 
  content: "\e130";
 
}
 

	
 
.glyphicon-circle-arrow-right:before {
 
  content: "\e131";
 
}
 

	
 
.glyphicon-circle-arrow-left:before {
 
  content: "\e132";
 
}
 

	
 
.glyphicon-circle-arrow-up:before {
 
  content: "\e133";
 
}
 

	
 
.glyphicon-circle-arrow-down:before {
 
  content: "\e134";
 
}
 

	
 
.glyphicon-globe:before {
 
  content: "\e135";
 
}
 

	
 
.glyphicon-tasks:before {
 
  content: "\e137";
 
}
 

	
 
.glyphicon-filter:before {
 
  content: "\e138";
 
}
 

	
 
.glyphicon-fullscreen:before {
 
  content: "\e140";
 
}
 

	
 
.glyphicon-dashboard:before {
 
  content: "\e141";
 
}
 

	
 
.glyphicon-heart-empty:before {
 
  content: "\e143";
 
}
 

	
 
.glyphicon-link:before {
 
  content: "\e144";
 
}
 

	
 
.glyphicon-phone:before {
 
  content: "\e145";
 
}
 

	
 
.glyphicon-usd:before {
 
  content: "\e148";
 
}
 

	
 
.glyphicon-gbp:before {
 
  content: "\e149";
 
}
 

	
 
.glyphicon-sort:before {
 
  content: "\e150";
 
}
 

	
 
.glyphicon-sort-by-alphabet:before {
 
  content: "\e151";
 
}
 

	
 
.glyphicon-sort-by-alphabet-alt:before {
 
  content: "\e152";
 
}
 

	
 
.glyphicon-sort-by-order:before {
 
  content: "\e153";
 
}
 

	
 
.glyphicon-sort-by-order-alt:before {
 
  content: "\e154";
 
}
 

	
 
.glyphicon-sort-by-attributes:before {
 
  content: "\e155";
 
}
 

	
 
.glyphicon-sort-by-attributes-alt:before {
 
  content: "\e156";
 
}
 

	
 
.glyphicon-unchecked:before {
 
  content: "\e157";
 
}
 

	
 
.glyphicon-expand:before {
 
  content: "\e158";
 
}
 

	
 
.glyphicon-collapse-down:before {
 
  content: "\e159";
 
}
 

	
 
.glyphicon-collapse-up:before {
 
  content: "\e160";
 
}
 

	
 
.glyphicon-log-in:before {
 
  content: "\e161";
 
}
 

	
 
.glyphicon-flash:before {
 
  content: "\e162";
 
}
 

	
 
.glyphicon-log-out:before {
 
  content: "\e163";
 
}
 

	
 
.glyphicon-new-window:before {
 
  content: "\e164";
 
}
 

	
 
.glyphicon-record:before {
 
  content: "\e165";
 
}
 

	
 
.glyphicon-save:before {
 
  content: "\e166";
 
}
 

	
 
.glyphicon-open:before {
 
  content: "\e167";
 
}
 

	
 
.glyphicon-saved:before {
 
  content: "\e168";
 
}
 

	
 
.glyphicon-import:before {
 
  content: "\e169";
 
}
 

	
 
.glyphicon-export:before {
 
  content: "\e170";
 
}
 

	
 
.glyphicon-send:before {
 
  content: "\e171";
 
}
 

	
 
.glyphicon-floppy-disk:before {
 
  content: "\e172";
 
}
 

	
 
.glyphicon-floppy-saved:before {
 
  content: "\e173";
 
}
 

	
 
.glyphicon-floppy-remove:before {
 
  content: "\e174";
 
}
 

	
 
.glyphicon-floppy-save:before {
 
  content: "\e175";
 
}
 

	
 
.glyphicon-floppy-open:before {
 
  content: "\e176";
 
}
 

	
 
.glyphicon-credit-card:before {
 
  content: "\e177";
 
}
 

	
 
.glyphicon-transfer:before {
 
  content: "\e178";
 
}
 

	
 
.glyphicon-cutlery:before {
 
  content: "\e179";
 
}
 

	
 
.glyphicon-header:before {
 
  content: "\e180";
 
}
 

	
 
.glyphicon-compressed:before {
 
  content: "\e181";
 
}
 

	
 
.glyphicon-earphone:before {
 
  content: "\e182";
 
}
 

	
 
.glyphicon-phone-alt:before {
 
  content: "\e183";
 
}
 

	
 
.glyphicon-tower:before {
 
  content: "\e184";
 
}
 

	
 
.glyphicon-stats:before {
 
  content: "\e185";
 
}
 

	
 
.glyphicon-sd-video:before {
 
  content: "\e186";
 
}
 

	
 
.glyphicon-hd-video:before {
 
  content: "\e187";
 
}
 

	
 
.glyphicon-subtitles:before {
 
  content: "\e188";
 
}
 

	
 
.glyphicon-sound-stereo:before {
 
  content: "\e189";
 
}
 

	
 
.glyphicon-sound-dolby:before {
 
  content: "\e190";
 
}
 

	
 
.glyphicon-sound-5-1:before {
 
  content: "\e191";
 
}
 

	
 
.glyphicon-sound-6-1:before {
 
  content: "\e192";
 
}
 

	
 
.glyphicon-sound-7-1:before {
 
  content: "\e193";
 
}
 

	
 
.glyphicon-copyright-mark:before {
 
  content: "\e194";
 
}
 

	
 
.glyphicon-registration-mark:before {
 
  content: "\e195";
 
}
 

	
 
.glyphicon-cloud-download:before {
 
  content: "\e197";
 
}
 

	
 
.glyphicon-cloud-upload:before {
 
  content: "\e198";
 
}
 

	
 
.glyphicon-tree-conifer:before {
 
  content: "\e199";
 
}
 

	
 
.glyphicon-tree-deciduous:before {
 
  content: "\e200";
 
}
 

	
 
.glyphicon-briefcase:before {
 
  content: "\1f4bc";
 
}
 

	
 
.glyphicon-calendar:before {
 
  content: "\1f4c5";
 
}
 

	
 
.glyphicon-pushpin:before {
 
  content: "\1f4cc";
 
}
 

	
 
.glyphicon-paperclip:before {
 
  content: "\1f4ce";
 
}
 

	
 
.glyphicon-camera:before {
 
  content: "\1f4f7";
 
}
 

	
 
.glyphicon-lock:before {
 
  content: "\1f512";
 
}
 

	
 
.glyphicon-bell:before {
 
  content: "\1f514";
 
}
 

	
 
.glyphicon-bookmark:before {
 
  content: "\1f516";
 
}
 

	
 
.glyphicon-fire:before {
 
  content: "\1f525";
 
}
 

	
 
.glyphicon-wrench:before {
 
  content: "\1f527";
 
}
 

	
 
.caret {
 
  display: inline-block;
 
  width: 0;
 
  height: 0;
 
  margin-left: 2px;
 
  vertical-align: middle;
 
  border-top: 4px solid #000000;
 
  border-right: 4px solid transparent;
 
  border-bottom: 0 dotted;
 
  border-left: 4px solid transparent;
 
  content: "";
 
}
 

	
 
.dropdown {
 
  position: relative;
 
}
 

	
 
.dropdown-toggle:focus {
 
  outline: 0;
 
}
 

	
 
.dropdown-menu {
 
  position: absolute;
 
  top: 100%;
 
  left: 0;
 
  z-index: 1000;
 
  display: none;
 
  float: left;
 
  min-width: 160px;
 
  padding: 5px 0;
 
  margin: 2px 0 0;
 
  font-size: 14px;
 
  list-style: none;
 
  background-color: #ffffff;
 
  border: 1px solid #cccccc;
 
  border: 1px solid rgba(0, 0, 0, 0.15);
 
  border-radius: 4px;
 
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
 
          box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
 
  background-clip: padding-box;
 
}
 

	
 
.dropdown-menu.pull-right {
 
  right: 0;
 
  left: auto;
 
}
 

	
 
.dropdown-menu .divider {
 
  height: 1px;
 
  margin: 9px 0;
 
  overflow: hidden;
 
  background-color: #e5e5e5;
 
}
 

	
 
.dropdown-menu > li > a {
 
  display: block;
 
  padding: 3px 20px;
 
  clear: both;
 
  font-weight: normal;
 
  line-height: 1.428571429;
 
  color: #333333;
 
  white-space: nowrap;
 
}
 

	
 
.dropdown-menu > li > a:hover,
 
.dropdown-menu > li > a:focus {
 
  color: #ffffff;
 
  text-decoration: none;
 
  background-color: #428bca;
 
}
 

	
 
.dropdown-menu > .active > a,
 
.dropdown-menu > .active > a:hover,
 
.dropdown-menu > .active > a:focus {
 
  color: #ffffff;
 
  text-decoration: none;
 
  background-color: #428bca;
 
  outline: 0;
 
}
 

	
 
.dropdown-menu > .disabled > a,
 
.dropdown-menu > .disabled > a:hover,
 
.dropdown-menu > .disabled > a:focus {
 
  color: #999999;
 
}
 

	
 
.dropdown-menu > .disabled > a:hover,
 
.dropdown-menu > .disabled > a:focus {
 
  text-decoration: none;
 
  cursor: not-allowed;
 
  background-color: transparent;
 
  background-image: none;
 
  filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
 
}
 

	
 
.open > .dropdown-menu {
 
  display: block;
 
}
 

	
 
.open > a {
 
  outline: 0;
 
}
 

	
 
.dropdown-header {
 
  display: block;
 
  padding: 3px 20px;
 
  font-size: 12px;
 
  line-height: 1.428571429;
 
  color: #999999;
 
}
 

	
 
.dropdown-backdrop {
 
  position: fixed;
 
  top: 0;
 
  right: 0;
 
  bottom: 0;
 
  left: 0;
 
  z-index: 990;
 
}
 

	
 
.pull-right > .dropdown-menu {
 
  right: 0;
 
  left: auto;
 
}
 

	
 
.dropup .caret,
 
.navbar-fixed-bottom .dropdown .caret {
 
  border-top: 0 dotted;
 
  border-bottom: 4px solid #000000;
 
  content: "";
 
}
 

	
 
.dropup .dropdown-menu,
 
.navbar-fixed-bottom .dropdown .dropdown-menu {
 
  top: auto;
 
  bottom: 100%;
 
  margin-bottom: 1px;
 
}
 

	
 
@media (min-width: 768px) {
 
  .navbar-right .dropdown-menu {
 
    right: 0;
 
    left: auto;
 
  }
 
}
 

	
 
.btn-default .caret {
 
  border-top-color: #333333;
 
}
 

	
 
.btn-primary .caret,
 
.btn-success .caret,
 
.btn-warning .caret,
 
.btn-danger .caret,
 
.btn-info .caret {
 
  border-top-color: #fff;
 
}
 

	
 
.dropup .btn-default .caret {
 
  border-bottom-color: #333333;
 
}
 

	
 
.dropup .btn-primary .caret,
 
.dropup .btn-success .caret,
 
.dropup .btn-warning .caret,
 
.dropup .btn-danger .caret,
 
.dropup .btn-info .caret {
 
  border-bottom-color: #fff;
 
}
 

	
 
.btn-group,
 
.btn-group-vertical {
 
  position: relative;
 
  display: inline-block;
 
  vertical-align: middle;
 
}
 

	
 
.btn-group > .btn,
 
.btn-group-vertical > .btn {
 
  position: relative;
 
  float: left;
 
}
 

	
 
.btn-group > .btn:hover,
 
.btn-group-vertical > .btn:hover,
 
.btn-group > .btn:focus,
 
.btn-group-vertical > .btn:focus,
 
.btn-group > .btn:active,
 
.btn-group-vertical > .btn:active,
 
.btn-group > .btn.active,
 
.btn-group-vertical > .btn.active {
 
  z-index: 2;
 
}
 

	
 
.btn-group > .btn:focus,
 
.btn-group-vertical > .btn:focus {
 
  outline: none;
 
}
 

	
 
.btn-group .btn + .btn,
 
.btn-group .btn + .btn-group,
 
.btn-group .btn-group + .btn,
 
.btn-group .btn-group + .btn-group {
 
  margin-left: -1px;
 
}
 

	
 
.btn-toolbar:before,
 
.btn-toolbar:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.btn-toolbar:after {
 
  clear: both;
 
}
 

	
 
.btn-toolbar:before,
 
.btn-toolbar:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.btn-toolbar:after {
 
  clear: both;
 
}
 

	
 
.btn-toolbar .btn-group {
 
  float: left;
 
}
 

	
 
.btn-toolbar > .btn + .btn,
 
.btn-toolbar > .btn-group + .btn,
 
.btn-toolbar > .btn + .btn-group,
 
.btn-toolbar > .btn-group + .btn-group {
 
  margin-left: 5px;
 
}
 

	
 
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
 
  border-radius: 0;
 
}
 

	
 
.btn-group > .btn:first-child {
 
  margin-left: 0;
 
}
 

	
 
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
 
  border-top-right-radius: 0;
 
  border-bottom-right-radius: 0;
 
}
 

	
 
.btn-group > .btn:last-child:not(:first-child),
 
.btn-group > .dropdown-toggle:not(:first-child) {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 

	
 
.btn-group > .btn-group {
 
  float: left;
 
}
 

	
 
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 

	
 
.btn-group > .btn-group:first-child > .btn:last-child,
 
.btn-group > .btn-group:first-child > .dropdown-toggle {
 
  border-top-right-radius: 0;
 
  border-bottom-right-radius: 0;
 
}
 

	
 
.btn-group > .btn-group:last-child > .btn:first-child {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 

	
 
.btn-group .dropdown-toggle:active,
 
.btn-group.open .dropdown-toggle {
 
  outline: 0;
 
}
 

	
 
.btn-group-xs > .btn {
 
  padding: 5px 10px;
 
  padding: 1px 5px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 

	
 
.btn-group-sm > .btn {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 

	
 
.btn-group-lg > .btn {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.33;
 
  border-radius: 6px;
 
}
 

	
 
.btn-group > .btn + .dropdown-toggle {
 
  padding-right: 8px;
 
  padding-left: 8px;
 
}
 

	
 
.btn-group > .btn-lg + .dropdown-toggle {
 
  padding-right: 12px;
 
  padding-left: 12px;
 
}
 

	
 
.btn-group.open .dropdown-toggle {
 
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
 
}
 

	
 
.btn .caret {
 
  margin-left: 0;
 
}
 

	
 
.btn-lg .caret {
 
  border-width: 5px 5px 0;
 
  border-bottom-width: 0;
 
}
 

	
 
.dropup .btn-lg .caret {
 
  border-width: 0 5px 5px;
 
}
 

	
 
.btn-group-vertical > .btn,
 
.btn-group-vertical > .btn-group {
 
  display: block;
 
  float: none;
 
  width: 100%;
 
  max-width: 100%;
 
}
 

	
 
.btn-group-vertical > .btn-group:before,
 
.btn-group-vertical > .btn-group:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.btn-group-vertical > .btn-group:after {
 
  clear: both;
 
}
 

	
 
.btn-group-vertical > .btn-group:before,
 
.btn-group-vertical > .btn-group:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.btn-group-vertical > .btn-group:after {
 
  clear: both;
 
}
 

	
 
.btn-group-vertical > .btn-group > .btn {
 
  float: none;
 
}
 

	
 
.btn-group-vertical > .btn + .btn,
 
.btn-group-vertical > .btn + .btn-group,
 
.btn-group-vertical > .btn-group + .btn,
 
.btn-group-vertical > .btn-group + .btn-group {
 
  margin-top: -1px;
 
  margin-left: 0;
 
}
 

	
 
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
 
  border-radius: 0;
 
}
 

	
 
.btn-group-vertical > .btn:first-child:not(:last-child) {
 
  border-top-right-radius: 4px;
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 

	
 
.btn-group-vertical > .btn:last-child:not(:first-child) {
 
  border-top-right-radius: 0;
 
  border-bottom-left-radius: 4px;
 
  border-top-left-radius: 0;
 
}
 

	
 
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
 
  border-radius: 0;
 
}
 

	
 
.btn-group-vertical > .btn-group:first-child > .btn:last-child,
 
.btn-group-vertical > .btn-group:first-child > .dropdown-toggle {
 
  border-bottom-right-radius: 0;
 
  border-bottom-left-radius: 0;
 
}
 

	
 
.btn-group-vertical > .btn-group:last-child > .btn:first-child {
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 

	
 
.btn-group-justified {
 
  display: table;
 
  width: 100%;
 
  border-collapse: separate;
 
  table-layout: fixed;
 
}
 

	
 
.btn-group-justified .btn {
 
  display: table-cell;
 
  float: none;
 
  width: 1%;
 
}
 

	
 
[data-toggle="buttons"] > .btn > input[type="radio"],
 
[data-toggle="buttons"] > .btn > input[type="checkbox"] {
 
  display: none;
 
}
 

	
 
.input-group {
 
  position: relative;
 
  display: table;
 
  border-collapse: separate;
 
}
 

	
 
.input-group.col {
 
  float: none;
 
  padding-right: 0;
 
  padding-left: 0;
 
}
 

	
 
.input-group .form-control {
 
  width: 100%;
 
  margin-bottom: 0;
 
}
 

	
 
.input-group-lg > .form-control,
 
.input-group-lg > .input-group-addon,
 
.input-group-lg > .input-group-btn > .btn {
 
  height: 45px;
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  line-height: 1.33;
 
  border-radius: 6px;
 
}
 

	
 
select.input-group-lg > .form-control,
 
select.input-group-lg > .input-group-addon,
 
select.input-group-lg > .input-group-btn > .btn {
 
  height: 45px;
 
  line-height: 45px;
 
}
 

	
 
textarea.input-group-lg > .form-control,
 
textarea.input-group-lg > .input-group-addon,
 
textarea.input-group-lg > .input-group-btn > .btn {
 
  height: auto;
 
}
 

	
 
.input-group-sm > .form-control,
 
.input-group-sm > .input-group-addon,
 
.input-group-sm > .input-group-btn > .btn {
 
  height: 30px;
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  line-height: 1.5;
 
  border-radius: 3px;
 
}
 

	
 
select.input-group-sm > .form-control,
 
select.input-group-sm > .input-group-addon,
 
select.input-group-sm > .input-group-btn > .btn {
 
  height: 30px;
 
  line-height: 30px;
 
}
 

	
 
textarea.input-group-sm > .form-control,
 
textarea.input-group-sm > .input-group-addon,
 
textarea.input-group-sm > .input-group-btn > .btn {
 
  height: auto;
 
}
 

	
 
.input-group-addon,
 
.input-group-btn,
 
.input-group .form-control {
 
  display: table-cell;
 
}
 

	
 
.input-group-addon:not(:first-child):not(:last-child),
 
.input-group-btn:not(:first-child):not(:last-child),
 
.input-group .form-control:not(:first-child):not(:last-child) {
 
  border-radius: 0;
 
}
 

	
 
.input-group-addon,
 
.input-group-btn {
 
  width: 1%;
 
  white-space: nowrap;
 
  vertical-align: middle;
 
}
 

	
 
.input-group-addon {
 
  padding: 6px 12px;
 
  font-size: 14px;
 
  font-weight: normal;
 
  line-height: 1;
 
  text-align: center;
 
  background-color: #eeeeee;
 
  border: 1px solid #cccccc;
 
  border-radius: 4px;
 
}
 

	
 
.input-group-addon.input-sm {
 
  padding: 5px 10px;
 
  font-size: 12px;
 
  border-radius: 3px;
 
}
 

	
 
.input-group-addon.input-lg {
 
  padding: 10px 16px;
 
  font-size: 18px;
 
  border-radius: 6px;
 
}
 

	
 
.input-group-addon input[type="radio"],
 
.input-group-addon input[type="checkbox"] {
 
  margin-top: 0;
 
}
 

	
 
.input-group .form-control:first-child,
 
.input-group-addon:first-child,
 
.input-group-btn:first-child > .btn,
 
.input-group-btn:first-child > .dropdown-toggle,
 
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
 
  border-top-right-radius: 0;
 
  border-bottom-right-radius: 0;
 
}
 

	
 
.input-group-addon:first-child {
 
  border-right: 0;
 
}
 

	
 
.input-group .form-control:last-child,
 
.input-group-addon:last-child,
 
.input-group-btn:last-child > .btn,
 
.input-group-btn:last-child > .dropdown-toggle,
 
.input-group-btn:first-child > .btn:not(:first-child) {
 
  border-bottom-left-radius: 0;
 
  border-top-left-radius: 0;
 
}
 

	
 
.input-group-addon:last-child {
 
  border-left: 0;
 
}
 

	
 
.input-group-btn {
 
  position: relative;
 
  white-space: nowrap;
 
}
 

	
 
.input-group-btn > .btn {
 
  position: relative;
 
}
 

	
 
.input-group-btn > .btn + .btn {
 
  margin-left: -4px;
 
}
 

	
 
.input-group-btn > .btn:hover,
 
.input-group-btn > .btn:active {
 
  z-index: 2;
 
}
 

	
 
.nav {
 
  padding-left: 0;
 
  margin-bottom: 0;
 
  list-style: none;
 
}
 

	
 
.nav:before,
 
.nav:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.nav:after {
 
  clear: both;
 
}
 

	
 
.nav:before,
 
.nav:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.nav:after {
 
  clear: both;
 
}
 

	
 
.nav > li {
 
  position: relative;
 
  display: block;
 
}
 

	
 
.nav > li > a {
 
  position: relative;
 
  display: block;
 
  padding: 10px 15px;
 
}
 

	
 
.nav > li > a:hover,
 
.nav > li > a:focus {
 
  text-decoration: none;
 
  background-color: #eeeeee;
 
}
 

	
 
.nav > li.disabled > a {
 
  color: #999999;
 
}
 

	
 
.nav > li.disabled > a:hover,
 
.nav > li.disabled > a:focus {
 
  color: #999999;
 
  text-decoration: none;
 
  cursor: not-allowed;
 
  background-color: transparent;
 
}
 

	
 
.nav .open > a,
 
.nav .open > a:hover,
 
.nav .open > a:focus {
 
  background-color: #eeeeee;
 
  border-color: #428bca;
 
}
 

	
 
.nav .nav-divider {
 
  height: 1px;
 
  margin: 9px 0;
 
  overflow: hidden;
 
  background-color: #e5e5e5;
 
}
 

	
 
.nav > li > a > img {
 
  max-width: none;
 
}
 

	
 
.nav-tabs {
 
  border-bottom: 1px solid #dddddd;
 
}
 

	
 
.nav-tabs > li {
 
  float: left;
 
  margin-bottom: -1px;
 
}
 

	
 
.nav-tabs > li > a {
 
  margin-right: 2px;
 
  line-height: 1.428571429;
 
  border: 1px solid transparent;
 
  border-radius: 4px 4px 0 0;
 
}
 

	
 
.nav-tabs > li > a:hover {
 
  border-color: #eeeeee #eeeeee #dddddd;
 
}
 

	
 
.nav-tabs > li.active > a,
 
.nav-tabs > li.active > a:hover,
 
.nav-tabs > li.active > a:focus {
 
  color: #555555;
 
  cursor: default;
 
  background-color: #ffffff;
 
  border: 1px solid #dddddd;
 
  border-bottom-color: transparent;
 
}
 

	
 
.nav-tabs.nav-justified {
 
  width: 100%;
 
  border-bottom: 0;
 
}
 

	
 
.nav-tabs.nav-justified > li {
 
  float: none;
 
}
 

	
 
.nav-tabs.nav-justified > li > a {
 
  text-align: center;
 
}
 

	
 
@media (min-width: 768px) {
 
  .nav-tabs.nav-justified > li {
 
    display: table-cell;
 
    width: 1%;
 
  }
 
}
 

	
 
.nav-tabs.nav-justified > li > a {
 
  margin-right: 0;
 
  border-bottom: 1px solid #dddddd;
 
}
 

	
 
.nav-tabs.nav-justified > .active > a {
 
  border-bottom-color: #ffffff;
 
}
 

	
 
.nav-pills > li {
 
  float: left;
 
}
 

	
 
.nav-pills > li > a {
 
  border-radius: 5px;
 
}
 

	
 
.nav-pills > li + li {
 
  margin-left: 2px;
 
}
 

	
 
.nav-pills > li.active > a,
 
.nav-pills > li.active > a:hover,
 
.nav-pills > li.active > a:focus {
 
  color: #ffffff;
 
  background-color: #428bca;
 
}
 

	
 
.nav-stacked > li {
 
  float: none;
 
}
 

	
 
.nav-stacked > li + li {
 
  margin-top: 2px;
 
  margin-left: 0;
 
}
 

	
 
.nav-justified {
 
  width: 100%;
 
}
 

	
 
.nav-justified > li {
 
  float: none;
 
}
 

	
 
.nav-justified > li > a {
 
  text-align: center;
 
}
 

	
 
@media (min-width: 768px) {
 
  .nav-justified > li {
 
    display: table-cell;
 
    width: 1%;
 
  }
 
}
 

	
 
.nav-tabs-justified {
 
  border-bottom: 0;
 
}
 

	
 
.nav-tabs-justified > li > a {
 
  margin-right: 0;
 
  border-bottom: 1px solid #dddddd;
 
}
 

	
 
.nav-tabs-justified > .active > a {
 
  border-bottom-color: #ffffff;
 
}
 

	
 
.tabbable:before,
 
.tabbable:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.tabbable:after {
 
  clear: both;
 
}
 

	
 
.tabbable:before,
 
.tabbable:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.tabbable:after {
 
  clear: both;
 
}
 

	
 
.tab-content > .tab-pane,
 
.pill-content > .pill-pane {
 
  display: none;
 
}
 

	
 
.tab-content > .active,
 
.pill-content > .active {
 
  display: block;
 
}
 

	
 
.nav .caret {
 
  border-top-color: #428bca;
 
  border-bottom-color: #428bca;
 
}
 

	
 
.nav a:hover .caret {
 
  border-top-color: #2a6496;
 
  border-bottom-color: #2a6496;
 
}
 

	
 
.nav-tabs .dropdown-menu {
 
  margin-top: -1px;
 
  border-top-right-radius: 0;
 
  border-top-left-radius: 0;
 
}
 

	
 
.navbar {
 
  position: relative;
 
  z-index: 1000;
 
  min-height: 50px;
 
  margin-bottom: 20px;
 
  border: 1px solid transparent;
 
}
 

	
 
.navbar:before,
 
.navbar:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.navbar:after {
 
  clear: both;
 
}
 

	
 
.navbar:before,
 
.navbar:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.navbar:after {
 
  clear: both;
 
}
 

	
 
@media (min-width: 768px) {
 
  .navbar {
 
    border-radius: 4px;
 
  }
 
}
 

	
 
.navbar-header:before,
 
.navbar-header:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.navbar-header:after {
 
  clear: both;
 
}
 

	
 
.navbar-header:before,
 
.navbar-header:after {
 
  display: table;
 
  content: " ";
 
}
 

	
 
.navbar-header:after {
 
  clear: both;
 
}
 

	
 
@media (min-width: 768px) {
 
  .navbar-header {
 
    float: left;
 
  }
 
}
 

	
 
.navbar-collapse {
 
  max-height: 340px;
 
  padding-right: 15px;
 
  padding-left: 15px;
 
  overflow-x: visible;
 
  border-top: 1px solid transparent;
 
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
 
  -webkit-overflow-scrolling: touch;
 
}
 

	
kallithea/public/css/contextbar.css
Show inline comments
 
/**
 
 * Stylesheets for the context bar
 
 */
 

	
 
i.icon-arrow-right { background-image: url('../images/icons/arrow_right.png');}
 
i.icon-bar-chart { background-image: url("../images/icons/chart_bar.png"); }
 
i.icon-code-merge { background-image: url("../images/icons/arrow_merge.png"); } /* unused! */
 
i.icon-ellipsis-horizontal:after { content: ' ...';}
 
i.icon-eye-open { background-image: url("../images/icons/eye.png"); }
 
i.icon-file-txt { background-image: url("../images/icons/note_error.png"); }
 
i.icon-git { background-image: url('../images/icons/giticon.png');}
 
i.icon-hg { background-image: url('../images/icons/hgicon.png');}
 
i.icon-refresh { background-image: url('../images/icons/arrow_refresh.png');}
 
i.icon-disabled { background-image: url('../images/icons/shading.png');} /* todo: use instead of minus sign */
 

	
 
i[class^='icon-'] {
 
    background-repeat: no-repeat;
 
    background-position: center;
 
    display: inline-block;
 
    min-width: 16px;
 
    min-height: 16px;
 
    margin: -2px 0 -4px 0;
 
    /* background-color: red; /* for debugging */
 

	
 
}
 

	
 
/* css classes for diff file status ... it'd be nice if css had a way to
 
   inherit from another class but alas, we must make sure this content is the
 
   same from the icon font file */
 

	
 
.icon-diff-M:before {
 
    font-family: 'kallithea';
 
    content: '\e805';
 
    color: #d0b44c;
 
}
 

	
 
.icon-diff-D:before {
 
    font-family: 'kallithea';
 
    content: '\e807';
 
    color: #bd2c00;
 
}
 

	
 
.icon-diff-A:before {
 
    font-family: 'kallithea';
 
    content: '\e806';
 
    color: #6cc644;
 
}
 

	
 
.icon-diff-R:before {
 
    font-family: 'kallithea';
 
    content: '\e81f';
 
    color: #677a85;
 
}
 

	
 
#content #context-bar {
 
    position: relative;
 
    overflow: visible;
 
    background-color: #577632;
 
    padding: 0 5px;
 
    min-height: 36px;
 
}
 

	
 
#content #context-bar h2 {
 
    display: inline-block;
 
    color: #FFF;
 
}
 

	
 
#header #header-inner #quick a,
 
#content #context-bar,
 
#content #context-bar a {
 
    color: #FFFFFF;
 
}
 

	
 
#header #header-inner #quick a:hover,
 
#content #context-bar a:hover {
 
    text-decoration: none;
 
}
 

	
 
#content #context-bar .icon {
 
    display: inline-block;
 
    width: 16px;
 
    height: 16px;
 
    vertical-align: text-bottom;
 
}
 

	
 
ul.horizontal-list {
 
    display: block;
 
}
 

	
 
ul.horizontal-list > li {
 
    float: left;
 
    position: relative;
 
}
 

	
 
#header #header-inner #quick ul,
 
ul.horizontal-list > li ul {
 
    position: absolute;
 
    display: none;
 
    right: 0;
 
    z-index: 999;
 
}
 

	
 
#header #header-inner #quick li:hover > ul,
 
ul.horizontal-list li:hover > ul {
 
    display: block;
 
}
 

	
 
#header #header-inner #quick li ul li,
 
ul.horizontal-list ul li {
 
    position: relative;
 
    border-bottom: 1px solid rgba(0,0,0,0.1);
 
    border-top: 1px solid rgba(255,255,255,0.1);
 
}
 

	
 
ul.horizontal-list > li ul ul {
 
    position: absolute;
 
    right: 100%;
 
    top: -1px;
 
    min-width: 200px;
 
    max-height: 400px;
 
    overflow-x: hidden;
 
    overflow-y: auto;
 
}
 

	
 
#header #header-inner #quick ul a,
 
ul.horizontal-list li a {
 
    white-space: nowrap;
 
}
 

	
 
#breadcrumbs {
 
    float: left;
 
    padding: 6px 0 5px 0;
 
    padding-left: 5px;
 
    font-weight: bold;
 
    font-size: 14px;
 
}
 

	
 
#breadcrumbs span {
 
    font-weight: bold;
 
    font-size: 1.4em;
 
}
 

	
 
#header #header-inner #quick ul,
 
#revision-changer,
 
#context-pages,
 
#context-pages ul {
 
    background: #3b6998; /* Old browsers */
 
    background: -moz-linear-gradient(top, #577632 0%, #577632 100%); /* FF3.6+ */
 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#577632), color-stop(100%,#577632)); /* Chrome,Safari4+ */
 
    background: -webkit-linear-gradient(top, #577632 0%, #577632 100%); /* Chrome10+,Safari5.1+ */
 
    background: -o-linear-gradient(top, #577632 0%, #577632 100%); /* Opera 11.10+ */
 
    background: -ms-linear-gradient(top, #577632 0%, #577632 100%); /* IE10+ */
 
    background: linear-gradient(to bottom, #577632 0%, #577632 100%); /* W3C */
 
    /*Filter on IE will also use overflow:hidden implicitly, and that would clip our inner menus.*/
 
    /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#577632', endColorstr='#577632',GradientType=0 ); /* IE6-9 */*/
 
}
 

	
 
#header #header-inner #quick a,
 
#context-actions a,
 
#context-pages a {
 
    background-repeat: no-repeat;
 
    background-position: 10px 50%;
 
    padding-left: 30px;
 
}
 

	
 
#quick a,
 
#context-pages ul ul a {
 
    padding-left: 10px;
 
}
 

	
 
ul#context-actions {
 
    display: inline-block;
 
    float: right;
 
    border-radius: 4px;
 
    background-image: linear-gradient(top, #577632 0%, #577632 100%);
 
}
 

	
 
#content ul#context-actions li {
 
    padding: 0px;
 
    border-right: 1px solid rgba(0,0,0,0.1);
 
    border-left: 1px solid rgba(255,255,255,0.1);
 
}
 

	
 
#context-actions a {
 
    display: block;
 
    cursor: pointer;
 
    background: none;
 
    border: none;
 
    margin: 0px;
 
    height: auto;
 
    padding: 10px 10px 10px 30px;
 
    background-repeat: no-repeat;
 
    background-position: 10px 50%;
 
    font-size: 1em;
 
}
 

	
 
#context-actions a {
 
    padding: 11px 10px 12px 30px;
 
}
 

	
 
#header #header-inner #quick li:hover,
 
#revision-changer:hover,
 
#context-pages li:hover,
 
#context-actions li:hover,
 
#content #context-actions li:hover,
 
#header #header-inner #quick li.current,
 
#context-pages li.current {
 
    background: #6388ad; /* Old browsers */
 
    background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* FF3.6+ */
 
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.1)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
 
    background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Chrome10+,Safari5.1+ */
 
    background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* Opera 11.10+ */
 
    background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* IE10+ */
 
    background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */
 
    /*filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */*/
 
}
 

	
 

	
 
#content #context-actions li:first-child {
 
    border-left: none;
 
    border-radius: 4px 0 0px 4px;
 
}
 

	
 
#content #context-actions li:last-child {
 
    border-right: none;
 
    border-radius: 0 4px 4px 0;
 
}
 

	
 
#content #context-actions .icon {
 
    margin: auto;
 
    margin-bottom: 5px;
 
    display: block;
 
    clear: both;
 
    float: none;
 
}
 

	
 
#content #context-pages .follow .show-following,
 
#content #context-pages .following .show-follow {
 
    display: none;
 
}
 

	
 
#context-pages {
 
    float: right;
 
    border-left: 1px solid rgba(0,0,0,0.1);
 
}
 

	
 
#content #context-pages .icon {
 
    margin-right: 5px;
 
}
 

	
 
#header #header-inner #quick li,
 
#content #context-pages li {
 
    border-right: 1px solid rgba(0,0,0,0.1);
 
    border-left: 1px solid rgba(255,255,255,0.1);
 
    padding: 0;
 
}
 

	
 
#header #header-inner #quick li:last-child,
 
#content #context-pages li:last-child {
 
    border-right: none;
 
}
 

	
 
#header #header-inner #quick > li:first-child {
 
    border-left: none;
 
}
 

	
 
#header #header-inner #quick > li:first-child > a {
 
    border-radius: 4px 0 0 4px;
 
}
 

	
 
#header #header-inner #quick a,
 
#context-pages a,
 
#context-pages .admin_menu a {
 
    display: block;
 
    padding: 0px 10px 1px 10px;
 
    line-height: 35px;
 
}
 

	
 
#header #header-inner #quick a.thin,
 
#context-pages a.thin,
 
#context-pages .admin_menu a.thin {
 
    line-height: 28px !important;
 
}
 

	
 
#header #header-inner #quick a#quick_login_link {
 
    padding-left: 0px;
 
}
 

	
 
#header #header-inner #quick a {
 
    overflow: hidden;
 
}
 
#quick a.childs:after,
 
#revision-changer:before,
 
#context-pages a.childs:after,
 
#context-pages a.dropdown:after {
 
    content: ' \25BE';
 
}
 
#context-pages a.childs {
 
    padding-right: 30px;
 
}
 
#context-pages a.childs:after {
 
    position: absolute;
 
    float: right;
 
    padding-left: 5px;
 
    padding-right: 5px;
 
}
 

	
 
#revision-changer:before {
 
    position: absolute;
 
    top: 0px;
 
    right: 0px;
 
    border-right: 1px solid rgba(0,0,0,0.1);
 
    height: 25px;
 
    padding-top: 10px;
 
    padding-right: 10px;
 
}
 

	
 
#context-pages li:last-child a {
 
    padding-right: 10px;
 
}
 

	
 
#context-bar #revision-changer {
 
    position: relative;
 
    cursor: pointer;
 
    border: none;
 
    padding: 0;
 
    margin: 0;
 
    color: #FFFFFF;
 
    font-size: 0.85em;
 
    padding: 2px 15px;
 
    padding-bottom: 3px;
 
    padding-right: 30px;
 
    border-right: 1px solid rgba(255,255,255,0.1);
 
}
 

	
 
#revision-changer .branch-name,
 
#revision-changer .revision {
 
    display: block;
 
    text-align: center;
 
    line-height: 1.5em;
 
}
 

	
 
#revision-changer .branch-name {
 
    font-weight: bold;
 
}
 

	
 
#revision-changer .revision {
 
    text-transform: uppercase;
 
}
kallithea/public/css/style.css
Show inline comments
 
@@ -1768,3080 +1768,3072 @@ div.form div.fields div.field div.button
 
    border-radius: 4px 4px 4px 4px;
 

	
 
    border: solid 1px #9CF;
 
    padding: 2px 3px 2px 3px !important;
 
    background-color: #DEF;
 
}
 

	
 
.metatag[tag="dead"] {
 
    background-color: #E44;
 
}
 

	
 
.metatag[tag="stale"] {
 
    background-color: #EA4;
 
}
 

	
 
.metatag[tag="featured"] {
 
    background-color: #AEA;
 
}
 

	
 
.metatag[tag="requires"] {
 
    background-color: #9CF;
 
}
 

	
 
.metatag[tag="recommends"] {
 
    background-color: #BDF;
 
}
 

	
 
.metatag[tag="lang"] {
 
    background-color: #FAF474;
 
}
 

	
 
.metatag[tag="license"] {
 
    border: solid 1px #9CF;
 
    background-color: #DEF;
 
    target-new: tab !important;
 
}
 
.metatag[tag="see"] {
 
    border: solid 1px #CBD;
 
    background-color: #EDF;
 
}
 

	
 
a.metatag[tag="license"]:hover {
 
    background-color: #577632;
 
    color: #FFF;
 
    text-decoration: none;
 
}
 

	
 
#summary .desc {
 
    white-space: pre;
 
    width: 100%;
 
}
 

	
 
#summary .repo_name {
 
    font-size: 1.6em;
 
    font-weight: bold;
 
    vertical-align: baseline;
 
    clear: right
 
}
 

	
 
#footer {
 
    clear: both;
 
    overflow: hidden;
 
    text-align: right;
 
    margin: 0;
 
    padding: 0 10px 4px;
 
    margin: -10px 0 0;
 
}
 

	
 
#footer div#footer-inner {
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient( linear, left top, left bottom, from(#577632), to(#577632));
 
    background-image: -moz-linear-gradient(top, #577632, #577632);
 
    background-image: -ms-linear-gradient( top, #577632, #577632);
 
    background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #577632), color-stop( 100%, #577632));
 
    background-image: -webkit-linear-gradient( top, #577632, #577632));
 
    background-image: -o-linear-gradient( top, #577632, #577632));
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#577632', endColorstr = '#577632', GradientType = 0);
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
    -webkit-border-radius: 4px 4px 4px 4px;
 
    -khtml-border-radius: 4px 4px 4px 4px;
 
    border-radius: 4px 4px 4px 4px;
 
}
 

	
 
#footer div#footer-inner p {
 
    padding: 15px 25px 15px 0;
 
    color: #FFF;
 
    font-weight: 700;
 
}
 

	
 
#footer div#footer-inner .footer-link {
 
    float: left;
 
    padding-left: 10px;
 
}
 

	
 
#footer div#footer-inner .footer-link a,
 
#footer div#footer-inner .footer-link-right a {
 
    color: #FFF;
 
}
 

	
 
#login div.title {
 
    clear: both;
 
    overflow: hidden;
 
    position: relative;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient( linear, left top, left bottom, from(#577632), to(#577632));
 
    background-image: -moz-linear-gradient( top, #577632, #577632);
 
    background-image: -ms-linear-gradient( top, #577632, #577632);
 
    background-image: -webkit-gradient( linear, left top, left bottom, color-stop( 0%, #577632), color-stop( 100%, #577632));
 
    background-image: -webkit-linear-gradient( top, #577632, #577632));
 
    background-image: -o-linear-gradient( top, #577632, #577632));
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    filter: progid : DXImageTransform.Microsoft.gradient ( startColorstr = '#577632', endColorstr = '#577632', GradientType = 0);
 
    margin: 0 auto;
 
    padding: 0;
 
}
 

	
 
#login div.inner {
 
    background: #FFF url("../images/login.png") no-repeat top left;
 
    border-top: none;
 
    border-bottom: none;
 
    margin: 0 auto;
 
    padding: 20px;
 
}
 

	
 
#login div.form div.fields div.field div.label {
 
    width: 173px;
 
    float: left;
 
    text-align: right;
 
    margin: 2px 10px 0 0;
 
    padding: 5px 0 0 5px;
 
}
 

	
 
#login div.form div.fields div.field div.input input {
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 7px 7px 6px;
 
}
 

	
 
#login div.form div.fields div.buttons {
 
    clear: both;
 
    overflow: hidden;
 
    border-top: 1px solid #DDD;
 
    text-align: right;
 
    margin: 0;
 
    padding: 10px 0 0;
 
}
 

	
 
#login div.form div.links {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 10px 0 0;
 
    padding: 0 0 2px;
 
}
 

	
 
.user-menu {
 
    margin: 0px !important;
 
    float: left;
 
}
 

	
 
.user-menu .container {
 
    padding: 0px 4px 0px 4px;
 
    margin: 0px 0px 0px 0px;
 
}
 

	
 
.user-menu .gravatar {
 
    margin: 0px 0px 0px 0px;
 
    cursor: pointer;
 
}
 
.user-menu .gravatar.enabled {
 
    background-color: #FDF784 !important;
 
}
 
.user-menu .gravatar:hover {
 
    background-color: #FDF784 !important;
 
}
 
#quick_login {
 
    min-height: 110px;
 
    padding: 4px;
 
    position: absolute;
 
    right: 0;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) );
 
    background-image: -moz-linear-gradient(top, #577632, #577632);
 
    background-image: -ms-linear-gradient(top, #577632, #577632);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632), color-stop(100%, #577632) );
 
    background-image: -webkit-linear-gradient(top, #577632, #577632);
 
    background-image: -o-linear-gradient(top, #577632, #577632);
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#577632', endColorstr='#577632', GradientType=0 );
 

	
 
    z-index: 999;
 
    -webkit-border-radius: 0px 0px 4px 4px;
 
    -khtml-border-radius: 0px 0px 4px 4px;
 
    border-radius: 0px 0px 4px 4px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 

	
 
    overflow: hidden;
 
}
 
#quick_login h4 {
 
    color: #fff;
 
    padding: 5px 0px 5px 14px;
 
}
 

	
 
#quick_login .password_forgoten {
 
    padding-right: 0px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
#quick_login .password_forgoten a {
 
    font-size: 10px;
 
    color: #fff;
 
    padding: 0px !important;
 
    line-height: 20px !important;
 
}
 

	
 
#quick_login .register {
 
    padding-right: 10px;
 
    padding-top: 5px;
 
    text-align: left;
 
}
 

	
 
#quick_login .register a {
 
    font-size: 10px;
 
    color: #fff;
 
    padding: 0px !important;
 
    line-height: 20px !important;
 
}
 

	
 
#quick_login .submit {
 
    margin: -20px 0 0 0px;
 
    position: absolute;
 
    right: 15px;
 
}
 

	
 
#quick_login .links_left {
 
    float: left;
 
    margin-right: 130px;
 
    width: 170px;
 
}
 
#quick_login .links_right {
 

	
 
    position: absolute;
 
    right: 0;
 
}
 
#quick_login .full_name {
 
    color: #FFFFFF;
 
    font-weight: bold;
 
    padding: 3px 3px 3px 6px;
 
}
 
#quick_login .big_gravatar {
 
    padding: 4px 0px 0px 6px;
 
}
 
#quick_login .notifications {
 
    padding: 2px 0px 0px 6px;
 
    color: #FFFFFF;
 
    font-weight: bold;
 
    line-height: 10px !important;
 
}
 
#quick_login .notifications a,
 
#quick_login .unread a {
 
    color: #FFFFFF;
 
    display: block;
 
    padding: 0px !important;
 
}
 
#quick_login .notifications a:hover,
 
#quick_login .unread a:hover {
 
    background-color: inherit !important;
 
}
 
#quick_login .email,
 
#quick_login .unread {
 
    color: #FFFFFF;
 
    padding: 3px 3px 3px 6px;
 
}
 
#quick_login .links .logout {
 
}
 

	
 
#quick_login div.form div.fields {
 
    padding-top: 2px;
 
    padding-left: 10px;
 
}
 

	
 
#quick_login div.form div.fields div.field {
 
    padding: 5px;
 
}
 

	
 
#quick_login div.form div.fields div.field div.label label {
 
    color: #fff;
 
    padding-bottom: 3px;
 
}
 

	
 
#quick_login div.form div.fields div.field div.input input {
 
    width: 236px;
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 5px 7px 4px;
 
}
 

	
 
#quick_login div.form div.fields div.buttons {
 
    clear: both;
 
    overflow: hidden;
 
    text-align: right;
 
    margin: 0;
 
    padding: 5px 14px 0px 5px;
 
}
 

	
 
#quick_login div.form div.links {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 10px 0 0;
 
    padding: 0 0 2px;
 
}
 

	
 
#quick_login ol.links {
 
    display: block;
 
    font-weight: bold;
 
    list-style: none outside none;
 
    text-align: right;
 
}
 
#quick_login ol.links li {
 
    line-height: 27px;
 
    margin: 0;
 
    padding: 0;
 
    color: #fff;
 
    display: block;
 
    float: none !important;
 
}
 

	
 
#quick_login ol.links li a {
 
    color: #fff;
 
    display: block;
 
    padding: 2px;
 
}
 
#quick_login ol.links li a:HOVER {
 
    background-color: inherit !important;
 
}
 

	
 
#register div.title {
 
    clear: both;
 
    overflow: hidden;
 
    position: relative;
 
    background-color: #577632;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#577632), to(#577632) );
 
    background-image: -moz-linear-gradient(top, #577632, #577632);
 
    background-image: -ms-linear-gradient(top, #577632, #577632);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #577632), color-stop(100%, #577632) );
 
    background-image: -webkit-linear-gradient(top, #577632, #577632);
 
    background-image: -o-linear-gradient(top, #577632, #577632);
 
    background-image: linear-gradient(to bottom, #577632, #577632);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#577632',
 
        endColorstr='#577632', GradientType=0 );
 
    margin: 0 auto;
 
    padding: 0;
 
}
 

	
 
#register div.inner {
 
    background: #FFF;
 
    border-top: none;
 
    border-bottom: none;
 
    margin: 0 auto;
 
    padding: 20px;
 
}
 

	
 
#register div.form div.fields div.field div.label {
 
    width: 135px;
 
    float: left;
 
    text-align: right;
 
    margin: 2px 10px 0 0;
 
    padding: 5px 0 0 5px;
 
}
 

	
 
#register div.form div.fields div.field div.input input {
 
    width: 300px;
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 11px;
 
    margin: 0;
 
    padding: 7px 7px 6px;
 
}
 

	
 
#register div.form div.fields div.buttons {
 
    clear: both;
 
    overflow: hidden;
 
    border-top: 1px solid #DDD;
 
    text-align: left;
 
    margin: 0;
 
    padding: 10px 0 0 150px;
 
}
 

	
 
#register div.form div.activation_msg {
 
    padding-top: 4px;
 
    padding-bottom: 4px;
 
}
 

	
 
#journal .journal_day {
 
    font-size: 20px;
 
    padding: 10px 0px;
 
    border-bottom: 2px solid #DDD;
 
    margin-left: 10px;
 
    margin-right: 10px;
 
}
 

	
 
#journal .journal_container {
 
    padding: 5px;
 
    clear: both;
 
    margin: 0px 5px 0px 10px;
 
}
 

	
 
#journal .journal_action_container {
 
    padding-left: 38px;
 
}
 

	
 
#journal .journal_user {
 
    color: #747474;
 
    font-size: 14px;
 
    font-weight: bold;
 
    height: 30px;
 
}
 

	
 
#journal .journal_user.deleted {
 
    color: #747474;
 
    font-size: 14px;
 
    font-weight: normal;
 
    height: 30px;
 
    font-style: italic;
 
}
 

	
 

	
 
#journal .journal_icon {
 
    clear: both;
 
    float: left;
 
    padding-right: 4px;
 
    padding-top: 3px;
 
}
 

	
 
#journal .journal_action {
 
    padding-top: 4px;
 
    min-height: 2px;
 
    float: left
 
}
 

	
 
#journal .journal_action_params {
 
    clear: left;
 
    padding-left: 22px;
 
}
 

	
 
#journal .journal_repo {
 
    float: left;
 
    margin-left: 6px;
 
    padding-top: 3px;
 
}
 

	
 
#journal .date {
 
    clear: both;
 
    color: #777777;
 
    font-size: 11px;
 
    padding-left: 22px;
 
}
 

	
 
#journal .journal_repo .journal_repo_name {
 
    font-weight: bold;
 
    font-size: 1.1em;
 
}
 

	
 
#journal .compare_view {
 
    padding: 5px 0px 5px 0px;
 
    width: 95px;
 
}
 

	
 
.journal_highlight {
 
    font-weight: bold;
 
    padding: 0 2px;
 
    vertical-align: bottom;
 
}
 

	
 
.trending_language_tbl, .trending_language_tbl td {
 
    border: 0 !important;
 
    margin: 0 !important;
 
    padding: 0 !important;
 
}
 

	
 
.trending_language_tbl, .trending_language_tbl tr {
 
    border-spacing: 1px;
 
}
 

	
 
.trending_language {
 
    background-color: #577632;
 
    color: #FFF;
 
    display: block;
 
    min-width: 20px;
 
    text-decoration: none;
 
    height: 12px;
 
    margin-bottom: 0px;
 
    margin-left: 5px;
 
    white-space: pre;
 
    padding: 3px;
 
}
 

	
 
h3.files_location {
 
    font-size: 1.8em;
 
    font-weight: 700;
 
    border-bottom: none !important;
 
    margin: 10px 0 !important;
 
}
 

	
 
#files_data dl dt {
 
    float: left;
 
    width: 60px;
 
    margin: 0 !important;
 
    padding: 5px;
 
}
 

	
 
#files_data dl dd {
 
    margin: 0 !important;
 
    padding: 5px !important;
 
}
 

	
 
#files_data .codeblock #editor_container .error-message {
 
    color: red;
 
    padding: 10px 10px 10px 26px
 
}
 

	
 
.file_history {
 
    padding-top: 10px;
 
    font-size: 16px;
 
}
 
.file_author {
 
    float: left;
 
}
 

	
 
.file_author .item {
 
    float: left;
 
    padding: 5px;
 
    color: #888;
 
}
 

	
 
.tablerow0 {
 
    background-color: #F8F8F8;
 
}
 

	
 
.tablerow1 {
 
    background-color: #FFFFFF;
 
}
 

	
 
.changeset_id {
 
    color: #666666;
 
    margin-right: -3px;
 
}
 

	
 
.changeset_hash {
 
    color: #000000;
 
}
 

	
 
#changeset_content {
 
    border-left: 1px solid #CCC;
 
    border-right: 1px solid #CCC;
 
    border-bottom: 1px solid #CCC;
 
    padding: 5px;
 
}
 

	
 
#changeset_compare_view_content {
 
    border: 1px solid #CCC;
 
    padding: 5px;
 
}
 

	
 
#changeset_content .container {
 
    min-height: 100px;
 
    font-size: 1.2em;
 
    overflow: hidden;
 
}
 

	
 
#changeset_compare_view_content .compare_view_commits {
 
    width: auto !important;
 
}
 

	
 
#changeset_compare_view_content .compare_view_commits td {
 
    padding: 0px 0px 0px 12px !important;
 
}
 

	
 
#changeset_content .container .right {
 
    float: right;
 
    width: 20%;
 
    text-align: right;
 
}
 

	
 
#changeset_content .container .message {
 
    white-space: pre-wrap;
 
}
 
#changeset_content .container .message a:hover {
 
    text-decoration: none;
 
}
 
.cs_files .cur_cs {
 
    margin: 10px 2px;
 
    font-weight: bold;
 
}
 

	
 
.cs_files .node {
 
    float: left;
 
}
 

	
 
.cs_files .changes {
 
    float: right;
 
    color: #577632;
 
}
 

	
 
.cs_files .changes .added {
 
    background-color: #BBFFBB;
 
    float: left;
 
    text-align: center;
 
    font-size: 9px;
 
    padding: 2px 0px 2px 0px;
 
}
 

	
 
.cs_files .changes .deleted {
 
    background-color: #FF8888;
 
    float: left;
 
    text-align: center;
 
    font-size: 9px;
 
    padding: 2px 0px 2px 0px;
 
}
 
/*new binary
 
NEW_FILENODE = 1
 
DEL_FILENODE = 2
 
MOD_FILENODE = 3
 
RENAMED_FILENODE = 4
 
CHMOD_FILENODE = 5
 
BIN_FILENODE = 6
 
*/
 
.cs_files .changes .bin {
 
    background-color: #BBFFBB;
 
    float: left;
 
    text-align: center;
 
    font-size: 9px;
 
    padding: 2px 0px 2px 0px;
 
}
 
.cs_files .changes .bin.bin1 {
 
    background-color: #BBFFBB;
 
}
 

	
 
/*deleted binary*/
 
.cs_files .changes .bin.bin2 {
 
    background-color: #FF8888;
 
}
 

	
 
/*mod binary*/
 
.cs_files .changes .bin.bin3 {
 
    background-color: #DDDDDD;
 
}
 

	
 
/*rename file*/
 
.cs_files .changes .bin.bin4 {
 
    background-color: #6D99FF;
 
}
 

	
 
/*rename file*/
 
.cs_files .changes .bin.bin4 {
 
    background-color: #6D99FF;
 
}
 

	
 
/*chmod file*/
 
.cs_files .changes .bin.bin5 {
 
    background-color: #6D99FF;
 
}
 

	
 
.cs_files .cs_added,
 
.cs_files .cs_A {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.cs_files .cs_changed,
 
.cs_files .cs_M {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.cs_files .cs_removed,
 
.cs_files .cs_D {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.cs_files .cs_renamed,
 
.cs_files .cs_R {
 
    height: 16px;
 
    margin-top: 7px;
 
    text-align: left;
 
}
 

	
 
.table {
 
    position: relative;
 
}
 

	
 
#graph {
 
    position: relative;
 
    overflow: hidden;
 
}
 

	
 
#graph_nodes {
 
    position: absolute;
 
}
 

	
 
#graph_content,
 
#graph .info_box,
 
#graph .container_header {
 
    margin-left: 100px;
 
}
 

	
 
#graph_content {
 
    position: relative;
 
}
 

	
 
#graph .container_header {
 
    padding: 10px;
 
    height: 25px;
 
}
 

	
 
#graph_content #rev_range_container {
 
    float: left;
 
    margin: 0px 0px 0px 3px;
 
}
 

	
 
#graph_content #rev_range_clear {
 
    float: left;
 
    margin: 0px 0px 0px 3px;
 
}
 

	
 
#graph_content #changesets {
 
    table-layout: fixed;
 
    border-collapse: collapse;
 
    border-left: none;
 
    border-right: none;
 
    border-color: #cdcdcd;
 
}
 

	
 
#graph_content #changesets td {
 
    overflow: hidden;
 
    text-overflow: ellipsis;
 
    white-space: nowrap;
 
    height: 31px;
 
    border-color: #cdcdcd;
 
    text-align: left;
 
}
 

	
 
#graph_content .container .checkbox {
 
    width: 12px;
 
    font-size: 0.85em;
 
}
 

	
 
#graph_content .container .status {
 
    width: 14px;
 
    font-size: 0.85em;
 
}
 

	
 
#graph_content .container .author {
 
   width: 105px;
 
}
 

	
 
#graph_content .container .hash {
 
    width: 100px;
 
    font-size: 0.85em;
 
}
 

	
 
#graph_content #changesets .container .date {
 
    width: 76px;
 
    color: #666;
 
    font-size: 10px;
 
}
 

	
 
#graph_content_pr .compare_view_commits .expand_commit,
 
#graph_content .container .expand_commit {
 
    width: 24px;
 
    cursor: pointer;
 
}
 

	
 
#graph_content #changesets .container .right {
 
    width: 120px;
 
    padding-right: 0px;
 
    overflow: visible;
 
    position: relative;
 
}
 

	
 
#graph_content .container .mid {
 
    padding: 0;
 
}
 

	
 
#graph_content .log-container {
 
    position: relative;
 
}
 

	
 
#graph_content .container .changeset_range {
 
    float: left;
 
    margin: 6px 3px;
 
}
 

	
 
#graph_content .container .author img {
 
    vertical-align: middle;
 
}
 

	
 
#graph_content .container .author .user {
 
    color: #444444;
 
}
 

	
 
#graph_content .container .mid .message {
 
    white-space: pre-wrap;
 
    padding: 0;
 
    overflow: hidden;
 
    height: 1.1em;
 
}
 

	
 
#graph_content_pr .compare_view_commits .message {
 
    white-space: normal !important;
 
    padding: 0 !important;
 
    height: 1.1em;
 
}
 

	
 
#graph_content .container .mid .message.expanded,
 
#graph_content_pr .compare_view_commits .message.expanded {
 
    height: auto;
 
    margin: 4px 0px 4px 0px;
 
}
 

	
 
#graph_content .container .extra-container {
 
    display: block;
 
    position: absolute;
 
    top: -15px;
 
    right: 0;
 
    padding-left: 5px;
 
    background: #FFFFFF;
 
    height: 41px;
 
}
 

	
 
#pull_request_overview .comments-container,
 
#changeset_compare_view_content .comments-container,
 
#graph_content .comments-container,
 
#shortlog_data .comments-container,
 
#graph_content .logtags {
 
    display: block;
 
    float: left;
 
    overflow: hidden;
 
    padding: 0;
 
    margin: 0;
 
}
 

	
 
#graph_content .comments-container {
 
    margin: 0.8em 0;
 
    margin-right: 0.5em;
 
}
 

	
 
#graph_content .tagcontainer {
 
    width: 80px;
 
    position: relative;
 
    float: right;
 
    height: 100%;
 
    top: 7px;
 
    margin-left: 0.5em;
 
}
 

	
 
#graph_content .logtags {
 
    min-width: 80px;
 
    height: 1.1em;
 
    position: absolute;
 
    left: 0px;
 
    width: auto;
 
    top: 0px;
 
}
 

	
 
#graph_content .logtags.tags {
 
    top: 14px;
 
}
 

	
 
#graph_content .logtags:hover {
 
    overflow: visible;
 
    position: absolute;
 
    width: auto;
 
    right: 0;
 
    left: initial;
 
}
 

	
 
#graph_content .logtags .booktag,
 
#graph_content .logtags .tagtag {
 
    float: left;
 
    line-height: 1em;
 
    margin-bottom: 1px;
 
    margin-right: 1px;
 
    padding: 1px 3px;
 
    font-size: 10px;
 
}
 

	
 
#graph_content .container .mid .message a:hover {
 
    text-decoration: none;
 
}
 

	
 
.revision-link {
 
    color: #3F6F9F;
 
    font-weight: bold !important;
 
}
 

	
 
.issue-tracker-link {
 
    color: #3F6F9F;
 
    font-weight: bold !important;
 
}
 

	
 
.changeset-status-container {
 
    padding-right: 5px;
 
    margin-top: 1px;
 
    float: right;
 
    height: 14px;
 
}
 
.code-header .changeset-status-container {
 
    float: left;
 
    padding: 2px 0px 0px 2px;
 
}
 
.changeset-status-container .changeset-status-lbl {
 
    float: left;
 
    padding: 3px 4px 0px 0px
 
}
 
.code-header .changeset-status-container .changeset-status-lbl {
 
    float: left;
 
    padding: 0px 4px 0px 0px;
 
}
 
.changeset-status-container .changeset-status-ico {
 
    float: left;
 
}
 
.code-header .changeset-status-container .changeset-status-ico,
 
.container .changeset-status-ico {
 
    float: left;
 
}
 

	
 
/* changeset statuses (must be the same name as the status) */
 
.changeset-status-not_reviewed {
 
    color: #bababa;
 
}
 
.changeset-status-approved {
 
    color: #81ba51;
 
}
 
.changeset-status-rejected {
 
    color: #cc392e;
 
}
 
.changeset-status-under_review {
 
    color: #ffc71e;
 
}
 

	
 
#graph_content .comments-cnt {
 
    color: rgb(136, 136, 136);
 
    padding: 5px 0;
 
}
 

	
 
#shortlog_data .comments-cnt {
 
    color: rgb(136, 136, 136);
 
    padding: 3px 0;
 
}
 

	
 
#pull_request_overview .comments-cnt a,
 
#changeset_compare_view_content .comments-cnt a,
 
#graph_content .comments-cnt a,
 
#shortlog_data .comments-cnt a {
 
    background-image: url('../images/icons/comments.png');
 
    background-repeat: no-repeat;
 
    background-position: 100% 50%;
 
    padding: 5px 0;
 
}
 

	
 
.right .changes {
 
    clear: both;
 
}
 

	
 
.right .changes .changed_total {
 
    display: block;
 
    float: right;
 
    text-align: center;
 
    min-width: 45px;
 
    cursor: pointer;
 
    color: #444444;
 
    background: #FEA;
 
    -webkit-border-radius: 0px 0px 0px 6px;
 
    border-radius: 0px 0px 0px 6px;
 
    padding: 1px;
 
}
 

	
 
.right .changes .added,
 
.changed, .removed {
 
    display: block;
 
    padding: 1px;
 
    color: #444444;
 
    float: right;
 
    text-align: center;
 
    min-width: 15px;
 
}
 

	
 
.right .changes .added {
 
    background: #CFC;
 
}
 

	
 
.right .changes .changed {
 
    background: #FEA;
 
}
 

	
 
.right .changes .removed {
 
    background: #FAA;
 
}
 

	
 
.right .merge {
 
    padding: 1px 3px 1px 3px;
 
    background-color: #fca062;
 
    font-size: 10px;
 
    color: #ffffff;
 
    text-transform: uppercase;
 
    white-space: nowrap;
 
    -webkit-border-radius: 3px;
 
    border-radius: 3px;
 
    margin-right: 2px;
 
}
 

	
 
.right .parent {
 
    color: #666666;
 
    clear: both;
 
}
 
.right .logtags {
 
    line-height: 2.2em;
 
}
 
.branchtag, .logtags .tagtag, .logtags .booktag {
 
    margin: 0px 2px;
 
}
 

	
 
.branchtag,
 
.tagtag,
 
.booktag,
 
.spantag {
 
    padding: 1px 3px 1px 3px;
 
    font-size: 10px;
 
    color: #577632;
 
    white-space: nowrap;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
    border: 1px solid #d9e8f8;
 
    line-height: 1.5em;
 
}
 

	
 
#graph_content .branchtag,
 
#graph_content .tagtag,
 
#graph_content .booktag {
 
    margin: 1.1em 0;
 
    margin-right: 0.5em;
 
}
 

	
 
.branchtag,
 
.tagtag,
 
.booktag {
 
    float: left;
 
}
 

	
 
.right .logtags .branchtag,
 
.right .logtags .tagtag,
 
.right .logtags .booktag,
 
.right .merge {
 
    float: right;
 
    line-height: 1em;
 
    margin: 1px 1px !important;
 
    display: block;
 
}
 

	
 
.booktag {
 
    border-color: #46A546;
 
    color: #46A546;
 
}
 

	
 
.tagtag {
 
    border-color: #62cffc;
 
    color: #62cffc;
 
}
 

	
 
.logtags .branchtag a:hover,
 
.logtags .branchtag a,
 
.branchtag a,
 
.branchtag a:hover {
 
    text-decoration: none;
 
    color: inherit;
 
}
 
.logtags .tagtag {
 
    padding: 1px 3px 1px 3px;
 
    background-color: #62cffc;
 
    font-size: 10px;
 
    color: #ffffff;
 
    white-space: nowrap;
 
    -webkit-border-radius: 3px;
 
    border-radius: 3px;
 
}
 

	
 
.tagtag a,
 
.tagtag a:hover,
 
.logtags .tagtag a,
 
.logtags .tagtag a:hover {
 
    text-decoration: none;
 
    color: inherit;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag,
 
.logtags .booktag,
 
.logtags .booktag {
 
    padding: 1px 3px 1px 3px;
 
    background-color: #46A546;
 
    font-size: 10px;
 
    color: #ffffff;
 
    white-space: nowrap;
 
    -webkit-border-radius: 3px;
 
    border-radius: 3px;
 
}
 
.logbooks .booktag,
 
.logbooks .booktag a,
 
.right .logtags .booktag,
 
.logtags .booktag a {
 
    color: #ffffff;
 
}
 

	
 
.logbooks .booktag,
 
.logbooks .booktag a:hover,
 
.logtags .booktag,
 
.logtags .booktag a:hover,
 
.booktag a,
 
.booktag a:hover {
 
    text-decoration: none;
 
    color: inherit;
 
}
 
div.browserblock {
 
    overflow: hidden;
 
    border: 1px solid #ccc;
 
    background: #f8f8f8;
 
    font-size: 100%;
 
    line-height: 125%;
 
    padding: 0;
 
    -webkit-border-radius: 6px 6px 0px 0px;
 
    border-radius: 6px 6px 0px 0px;
 
}
 

	
 
div.browserblock .browser-header {
 
    background: #FFF;
 
    padding: 10px 0px 15px 0px;
 
    width: 100%;
 
}
 

	
 
div.browserblock .browser-nav {
 
    float: left
 
}
 

	
 
div.browserblock .browser-branch {
 
    float: left;
 
}
 

	
 
div.browserblock .browser-branch label {
 
    color: #4A4A4A;
 
    vertical-align: text-top;
 
    padding-right: 2px;
 
}
 

	
 
div.browserblock .browser-header span {
 
    margin-left: 5px;
 
    font-weight: 700;
 
}
 

	
 
div.browserblock .browser-search {
 
    clear: both;
 
    padding: 8px 8px 0px 5px;
 
    height: 20px;
 
}
 

	
 
div.browserblock #node_filter_box {
 
}
 

	
 
div.browserblock .search_activate {
 
    float: left
 
}
 

	
 
div.browserblock .add_node {
 
    float: left;
 
    padding-left: 5px;
 
}
 

	
 
div.browserblock .search_activate a:hover,
 
div.browserblock .add_node a:hover {
 
    text-decoration: none !important;
 
}
 

	
 
div.browserblock .browser-body {
 
    background: #EEE;
 
    border-top: 1px solid #CCC;
 
}
 

	
 
table.code-browser {
 
    border-collapse: collapse;
 
    width: 100%;
 
}
 

	
 
table.code-browser tr {
 
    margin: 3px;
 
}
 

	
 
table.code-browser thead th {
 
    background-color: #EEE;
 
    height: 20px;
 
    font-size: 1.1em;
 
    font-weight: 700;
 
    text-align: left;
 
    padding-left: 10px;
 
}
 

	
 
table.code-browser tbody td {
 
    padding-left: 10px;
 
    height: 20px;
 
}
 

	
 
table.code-browser .browser-file {
 
    height: 16px;
 
    padding-left: 5px;
 
    text-align: left;
 
}
 
.diffblock .changeset_header {
 
    height: 16px;
 
}
 
.diffblock .changeset_file {
 
    float: left;
 
}
 
.diffblock .diff-menu-wrapper {
 
    float: left;
 
}
 

	
 
.diffblock .diff-menu {
 
    position: absolute;
 
    background: none repeat scroll 0 0 #FFFFFF;
 
    border-color: #577632 #666666 #666666;
 
    border-right: 1px solid #666666;
 
    border-style: solid solid solid;
 
    border-width: 1px;
 
    box-shadow: 2px 8px 4px rgba(0, 0, 0, 0.2);
 
    margin-top: 5px;
 
    margin-left: 1px;
 

	
 
}
 
.diffblock .diff-actions {
 
    padding: 2px 0px 0px 2px;
 
    float: left;
 
}
 
.diffblock .diff-menu ul li {
 
    padding: 0px 0px 0px 0px !important;
 
}
 
.diffblock .diff-menu ul li a {
 
    display: block;
 
    padding: 3px 8px 3px 8px !important;
 
}
 
.diffblock .diff-menu ul li a:hover {
 
    text-decoration: none;
 
    background-color: #EEEEEE;
 
}
 
table.code-browser .browser-dir {
 
    height: 16px;
 
    padding-left: 5px;
 
    text-align: left;
 
}
 

	
 
table.code-browser .submodule-dir {
 
    height: 16px;
 
    padding-left: 5px;
 
    text-align: left;
 
}
 

	
 
/* add some padding to the right of the file, folder, or submodule icon and
 
before the text */
 
table.code-browser i[class^='icon-'] {
 
    padding-right: .3em;
 
}
 

	
 
.box .search {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
.box .search div.search_path {
 
    background: none repeat scroll 0 0 #EEE;
 
    border: 1px solid #CCC;
 
    color: blue;
 
    margin-bottom: 10px;
 
    padding: 10px 0;
 
}
 

	
 
.box .search div.search_path div.link {
 
    font-weight: 700;
 
    margin-left: 25px;
 
}
 

	
 
.box .search div.search_path div.link a {
 
    color: #577632;
 
    cursor: pointer;
 
    text-decoration: none;
 
}
 

	
 
#path_unlock {
 
    color: red;
 
    font-size: 1.2em;
 
    padding-left: 4px;
 
}
 

	
 
.info_box span {
 
    margin-left: 3px;
 
    margin-right: 3px;
 
}
 

	
 
.info_box .rev {
 
    color: #577632;
 
    font-size: 1.6em;
 
    font-weight: bold;
 
    vertical-align: sub;
 
}
 

	
 
.info_box input#at_rev,
 
.info_box input#size {
 
    background: #FFF;
 
    border-top: 1px solid #b3b3b3;
 
    border-left: 1px solid #b3b3b3;
 
    border-right: 1px solid #eaeaea;
 
    border-bottom: 1px solid #eaeaea;
 
    color: #000;
 
    font-size: 12px;
 
    margin: 0;
 
    padding: 1px 5px 1px;
 
}
 

	
 
.info_box input#view {
 
    text-align: center;
 
    padding: 4px 3px 2px 2px;
 
}
 

	
 
.info_box_elem {
 
    display: inline-block;
 
    padding: 0 2px;
 
}
 

	
 
.yui-overlay, .yui-panel-container {
 
    visibility: hidden;
 
    position: absolute;
 
    z-index: 2;
 
}
 

	
 
#tip-box {
 
    position: absolute;
 

	
 
    background-color: #FFF;
 
    border: 2px solid #577632;
 
    font: 100% sans-serif;
 
    width: auto;
 
    opacity: 1;
 
    padding: 8px;
 

	
 
    white-space: pre-wrap;
 
    -webkit-border-radius: 8px 8px 8px 8px;
 
    -khtml-border-radius: 8px 8px 8px 8px;
 
    border-radius: 8px 8px 8px 8px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
    -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
    z-index: 100000;
 
}
 

	
 
.hl-tip-box {
 
    z-index: 1;
 
    position: absolute;
 
    color: #666;
 
    background-color: #FFF;
 
    border: 2px solid #577632;
 
    font: 100% sans-serif;
 
    width: auto;
 
    opacity: 1;
 
    padding: 8px;
 
    white-space: pre-wrap;
 
    -webkit-border-radius: 8px 8px 8px 8px;
 
    -khtml-border-radius: 8px 8px 8px 8px;
 
    border-radius: 8px 8px 8px 8px;
 
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
}
 

	
 

	
 
.mentions-container {
 
    width: 90% !important;
 
}
 
.mentions-container .yui-ac-content {
 
    width: 100% !important;
 
}
 

	
 
.ac {
 
    vertical-align: top;
 
}
 

	
 
.ac .yui-ac {
 
    position: inherit;
 
    font-size: 100%;
 
}
 

	
 
.ac .perm_ac {
 
    width: 20em;
 
}
 

	
 
.ac .yui-ac-input {
 
    width: 100%;
 
}
 

	
 
.ac .yui-ac-container {
 
    position: absolute;
 
    top: 1.6em;
 
    width: auto;
 
}
 

	
 
.ac .yui-ac-content {
 
    position: absolute;
 
    border: 1px solid gray;
 
    background: #fff;
 
    z-index: 9050;
 
}
 

	
 
.ac .yui-ac-shadow {
 
    position: absolute;
 
    width: 100%;
 
    background: #000;
 
    opacity: .10;
 
    filter: alpha(opacity = 10);
 
    z-index: 9049;
 
    margin: .3em;
 
}
 

	
 
.ac .yui-ac-content ul {
 
    width: 100%;
 
    margin: 0;
 
    padding: 0;
 
    z-index: 9050;
 
}
 

	
 
.ac .yui-ac-content li {
 
    cursor: default;
 
    white-space: nowrap;
 
    margin: 0;
 
    padding: 2px 5px;
 
    height: 18px;
 
    z-index: 9050;
 
    display: block;
 
    width: auto !important;
 
}
 

	
 
.ac .yui-ac-content li .ac-container-wrap {
 
    width: auto;
 
}
 

	
 
.ac .yui-ac-content li.yui-ac-prehighlight {
 
    background: #B3D4FF;
 
    z-index: 9050;
 
}
 

	
 
.ac .yui-ac-content li.yui-ac-highlight {
 
    background: #556CB5;
 
    color: #FFF;
 
    z-index: 9050;
 
}
 
.ac .yui-ac-bd {
 
    z-index: 9050;
 
}
 

	
 
.reposize {
 
    background: url("../images/icons/server.png") no-repeat scroll 3px;
 
    height: 16px;
 
    width: 20px;
 
    cursor: pointer;
 
    display: block;
 
    float: right;
 
    margin-top: 2px;
 
}
 

	
 
#repo_size {
 
    display: block;
 
    margin-top: 4px;
 
    color: #666;
 
    float: right;
 
}
 

	
 
.locking_locked {
 
    background: #FFF url("../images/icons/block_16.png") no-repeat scroll 3px;
 
    height: 16px;
 
    width: 20px;
 
    cursor: pointer;
 
    display: block;
 
    float: right;
 
    margin-top: 2px;
 
}
 

	
 
.locking_unlocked {
 
    background: #FFF url("../images/icons/accept.png") no-repeat scroll 3px;
 
    height: 16px;
 
    width: 20px;
 
    cursor: pointer;
 
    display: block;
 
    float: right;
 
    margin-top: 2px;
 
}
 

	
 
.currently_following {
 
    padding-left: 10px;
 
    padding-bottom: 5px;
 
}
 

	
 
.accept_icon {
 
    background: url("../images/icons/accept.png") no-repeat scroll 3px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
.refresh_icon {
 
    background: url("../images/icons/arrow_refresh.png") no-repeat scroll
 
        3px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
.pull_icon {
 
    background: url("../images/icons/connect.png") no-repeat scroll 3px;
 
    padding-left: 20px;
 
    padding-top: 0px;
 
    text-align: left;
 
}
 

	
 
.archive_icon {
 
    background: url("../images/icons/compress.png") no-repeat scroll 3px;
 
    padding-left: 20px;
 
    text-align: left;
 
    padding-top: 1px;
 
}
 

	
 
.start_following_icon {
 
    background: url("../images/icons/heart_add.png") no-repeat scroll 3px;
 
    padding-left: 20px;
 
    text-align: left;
 
    padding-top: 0px;
 
}
 

	
 
.action_button {
 
    border: 0;
 
    display: inline;
 
}
 

	
 
.action_button:hover {
 
    border: 0;
 
    text-decoration: underline;
 
    cursor: pointer;
 
}
 

	
 
#switch_repos {
 
    position: absolute;
 
    height: 25px;
 
    z-index: 1;
 
}
 

	
 
#switch_repos select {
 
    min-width: 150px;
 
    max-height: 250px;
 
    z-index: 1;
 
}
 

	
 
.breadcrumbs {
 
    border: medium none;
 
    color: #FFF;
 
    float: left;
 
    font-weight: 700;
 
    font-size: 14px;
 
    margin: 0;
 
    padding: 11px 0 11px 10px;
 
}
 

	
 
.breadcrumbs .hash {
 
    text-transform: none;
 
    color: #fff;
 
}
 

	
 
.breadcrumbs a {
 
    color: #FFF;
 
}
 

	
 
.flash_msg {
 
}
 

	
 
.flash_msg ul {
 
}
 

	
 
.error_red {
 
    color: red;
 
}
 

	
 
.flash_msg .alert-error {
 
    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(to bottom, #ee5f5b, #c43c35);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35', GradientType=0 );
 
    border-color: #c43c35 #c43c35 #882a25;
 
}
 

	
 
.flash_msg .alert-error a {
 
    text-decoration: underline;
 
}
 

	
 
.flash_msg .alert-warning {
 
    color: #404040 !important;
 
    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(to bottom, #fceec1, #eedc94);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0 );
 
    border-color: #eedc94 #eedc94 #e4c652;
 
}
 

	
 
.flash_msg .alert-warning a {
 
    text-decoration: underline;
 
}
 

	
 
.flash_msg .alert-success {
 
    background-color: #57a957;
 
    background-repeat: repeat-x !important;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957) );
 
    background-image: -moz-linear-gradient(top, #62c462, #57a957);
 
    background-image: -ms-linear-gradient(top, #62c462, #57a957);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957) );
 
    background-image: -webkit-linear-gradient(top, #62c462, #57a957);
 
    background-image: -o-linear-gradient(top, #62c462, #57a957);
 
    background-image: linear-gradient(to bottom, #62c462, #57a957);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0 );
 
    border-color: #57a957 #57a957 #3d773d;
 
}
 

	
 
.flash_msg .alert-success a {
 
    text-decoration: underline;
 
    color: #FFF !important;
 
}
 

	
 
.flash_msg .alert-info {
 
    background-color: #339bb9;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9) );
 
    background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9) );
 
    background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0 );
 
    border-color: #339bb9 #339bb9 #22697d;
 
}
 

	
 
.flash_msg .alert-info a {
 
    text-decoration: underline;
 
}
 

	
 
.flash_msg .alert-error,
 
.flash_msg .alert-warning,
 
.flash_msg .alert-success,
 
.flash_msg .alert-info {
 
    font-size: 12px;
 
    font-weight: 700;
 
    min-height: 14px;
 
    line-height: 14px;
 
    margin-bottom: 10px;
 
    margin-top: 0;
 
    display: block;
 
    overflow: auto;
 
    padding: 6px 10px 6px 10px;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
    position: relative;
 
    color: #FFF;
 
    border-width: 1px;
 
    border-style: solid;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
    -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
 
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
 
}
 

	
 
#msg_close {
 
    background: transparent url("../images/cross_grey_small.png") no-repeat scroll 0 0;
 
    cursor: pointer;
 
    height: 16px;
 
    position: absolute;
 
    right: 5px;
 
    top: 5px;
 
    width: 16px;
 
}
 
div#legend_data {
 
    padding-left: 10px;
 
}
 
div#legend_container table {
 
    border: none !important;
 
}
 
div#legend_container table,
 
div#legend_choices table {
 
    width: auto !important;
 
}
 

	
 
table#permissions_manage {
 
    width: 0 !important;
 
}
 

	
 
table#permissions_manage span.private_repo_msg {
 
    font-size: 0.8em;
 
    opacity: 0.6;
 
}
 

	
 
table#permissions_manage td.private_repo_msg {
 
    font-size: 0.8em;
 
}
 

	
 
table#permissions_manage tr#add_perm_input td {
 
    vertical-align: middle;
 
}
 

	
 
div.gravatar {
 
    background-color: #FFF;
 
    float: left;
 
    margin-right: 0.7em;
 
    padding: 1px 1px 1px 1px;
 
    line-height: 0;
 
    -webkit-border-radius: 3px;
 
    -khtml-border-radius: 3px;
 
    border-radius: 3px;
 
}
 

	
 
div.gravatar img {
 
    -webkit-border-radius: 2px;
 
    -khtml-border-radius: 2px;
 
    border-radius: 2px;
 
}
 

	
 
#header, #content, #footer {
 
    min-width: 978px;
 
}
 

	
 
#content {
 
    clear: both;
 
    padding: 10px 10px 14px 10px;
 
}
 

	
 
#content.hover {
 
    padding: 55px 10px 14px 10px !important;
 
}
 

	
 
#content div.box div.title div.search {
 
    border-left: 1px solid #576622;
 
}
 

	
 
#content div.box div.title div.search div.input input {
 
    border: 1px solid #576622;
 
}
 

	
 
.btn {
 
    color: #515151;
 
    background-color: #DADADA;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#F4F4F4),to(#DADADA) );
 
    background-image: -moz-linear-gradient(top, #F4F4F4, #DADADA);
 
    background-image: -ms-linear-gradient(top, #F4F4F4, #DADADA);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #F4F4F4),color-stop(100%, #DADADA) );
 
    background-image: -webkit-linear-gradient(top, #F4F4F4, #DADADA) );
 
    background-image: -o-linear-gradient(top, #F4F4F4, #DADADA) );
 
    background-image: linear-gradient(to bottom, #F4F4F4, #DADADA);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#F4F4F4', endColorstr='#DADADA', GradientType=0);
 

	
 
    border-top: 1px solid #DDD;
 
    border-left: 1px solid #c6c6c6;
 
    border-right: 1px solid #DDD;
 
    border-bottom: 1px solid #c6c6c6;
 
    outline: none;
 
    margin: 0px 3px 3px 0px;
 
    -webkit-border-radius: 4px 4px 4px 4px !important;
 
    -khtml-border-radius: 4px 4px 4px 4px !important;
 
    border-radius: 4px 4px 4px 4px !important;
 
    cursor: pointer !important;
 
    padding: 3px 3px 3px 3px;
 
    display: inline-block;
 
}
 

	
 
ul.nav-stacked {
 
    margin: 20px;
 
    color: #393939;
 
    font-weight: 700;
 
}
 

	
 
ul.nav-stacked a {
 
    color: inherit;
 
}
 

	
 
/* make .btn inputs and buttons and divs look the same */
 
button.btn,
 
input.btn {
 
    font-family: inherit;
 
    font-size: inherit;
 
    line-height: inherit;
 
}
 

	
 
.btn::-moz-focus-inner {
 
    border: 0;
 
    padding: 0;
 
}
 

	
 
/* make .btn inputs and buttons and divs look the same */
 
button.btn,
 
input.btn {
 
    font-family: inherit;
 
    font-size: inherit;
 
    line-height: inherit;
 
}
 

	
 
.btn::-moz-focus-inner {
 
    border: 0;
 
    padding: 0;
 
}
 

	
 
.btn.badge {
 
    cursor: default !important;
 
}
 

	
 
.btn.disabled {
 
    color: #999;
 
}
 

	
 
.btn.btn-danger.disabled {
 
    color: #eee;
 
    background-color: #c77;
 
    border-color: #b66
 
}
 

	
 
.btn.btn-small {
 
    padding: 2px 6px;
 
}
 

	
 
.btn.btn-mini {
 
    padding: 0px 4px;
 
}
 

	
 
.btn:focus {
 
    outline: none;
 
}
 
.btn:hover {
 
    text-decoration: none;
 
    color: #515151;
 
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.25), 0 0 3px #FFFFFF !important;
 
}
 
.btn.badge:hover {
 
    box-shadow: none !important;
 
}
 
.btn.disabled:hover {
 
    background-position: 0;
 
    color: #999;
 
    text-decoration: none;
 
    box-shadow: none !important;
 
}
 

	
 
.btn.red {
 
    color: #fff;
 
    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(to bottom, #ee5f5b, #c43c35);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);
 
    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);
 
}
 

	
 

	
 
.btn.blue {
 
    color: #fff;
 
    background-color: #339bb9;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));
 
    background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));
 
    background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
 
    background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);
 
    border-color: #339bb9 #339bb9 #22697d;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
.btn.green {
 
    color: #fff;
 
    background-color: #57a957;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));
 
    background-image: -moz-linear-gradient(top, #62c462, #57a957);
 
    background-image: -ms-linear-gradient(top, #62c462, #57a957);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));
 
    background-image: -webkit-linear-gradient(top, #62c462, #57a957);
 
    background-image: -o-linear-gradient(top, #62c462, #57a957);
 
    background-image: linear-gradient(to bottom, #62c462, #57a957);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);
 
    border-color: #57a957 #57a957 #3d773d;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
.btn.yellow {
 
    color: #fff;
 
    background-color: #faa732;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#fbb450), to(#f89406));
 
    background-image: -moz-linear-gradient(top, #fbb450, #f89406);
 
    background-image: -ms-linear-gradient(top, #fbb450, #f89406);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fbb450), color-stop(100%, #f89406));
 
    background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
 
    background-image: -o-linear-gradient(top, #fbb450, #f89406);
 
    background-image: linear-gradient(to bottom, #fbb450, #f89406);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);
 
    border-color: #f89406 #f89406 #ad6704;
 
    border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 
}
 

	
 
label.disabled {
 
    color: #aaa;
 
}
 

	
 
.btn.blue.hidden {
 
    display: none;
 
}
 

	
 
.btn.active {
 
    font-weight: bold;
 
}
 

	
 
ins, div.options a:hover {
 
    text-decoration: none;
 
}
 

	
 
img,
 
#header #header-inner #quick li a:hover span.normal,
 
#content div.box div.form div.fields div.field div.textarea table td table td a,
 
#clone_url,
 
#clone_url_id
 
{
 
    border: none;
 
}
 

	
 
img.icon, .right .merge img {
 
    vertical-align: bottom;
 
}
 

	
 
#header ul#logged-user,
 
#content div.box div.title ul.links,
 
#content div.box div.message div.dismiss,
 
#content div.box div.traffic div.legend ul {
 
    float: right;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#header #header-inner #home,
 
#header #header-inner #logo,
 
#content div.box ul.left,
 
#content div.box ol.left,
 
div#commit_history,
 
div#legend_data, div#legend_container, div#legend_choices {
 
    float: left;
 
}
 

	
 
#header #header-inner #quick li #quick_login,
 
#header #header-inner #quick li:hover ul ul,
 
#header #header-inner #quick li:hover ul ul ul,
 
#header #header-inner #quick li:hover ul ul ul ul,
 
#content #left #menu ul.closed,
 
#content #left #menu li ul.collapsed,
 
.yui-tt-shadow {
 
    display: none;
 
}
 

	
 
#header #header-inner #quick li:hover #quick_login,
 
#header #header-inner #quick li:hover ul,
 
#header #header-inner #quick li li:hover ul,
 
#header #header-inner #quick li li li:hover ul,
 
#header #header-inner #quick li li li li:hover ul,
 
#content #left #menu ul.opened,
 
#content #left #menu li ul.expanded {
 
    display: block;
 
}
 

	
 
.repo-switcher .select2-choice {
 
    padding: 0px 8px 1px !important;
 
    display: block;
 
    height: 100%;
 
}
 

	
 
.repo-switcher .select2-container,
 
.repo-switcher .select2-choice,
 
.repo-switcher .select2-choice span {
 
    background: transparent !important;
 
    border: 0 !important;
 
    box-shadow: none !important;
 
    color: #FFFFFF !important;
 
}
 

	
 
.repo-switcher .select2-arrow {
 
    display: none !important;
 
}
 

	
 
.repo-switcher .select2-chosen:after {
 
    content: ' \25BE';
 
}
 

	
 
.repo-switcher-dropdown.select2-drop.select2-drop-active {
 
    xborder-color: black;
 
    -webkit-box-shadow: none;
 
    -moz-box-shadow: none;
 
    box-shadow: none;
 
    color: #fff;
 
    background-color: #576622;
 
}
 

	
 
.repo-switcher-dropdown.select2-drop.select2-drop-active .select2-results .select2-highlighted {
 
    background-color: #6388ad;
 
}
 

	
 
#content div.graph {
 
    padding: 0 10px 10px;
 
}
 

	
 
#content div.box ol.lower-roman,
 
#content div.box ol.upper-roman,
 
#content div.box ol.lower-alpha,
 
#content div.box ol.upper-alpha,
 
#content div.box ol.decimal {
 
    margin: 10px 24px 10px 44px;
 
}
 

	
 
#content div.box div.form,
 
#content div.box div.table,
 
#content div.box div.traffic {
 
    position: relative;
 
    clear: both;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
#content div.box div.form div.fields,
 
#login div.form,
 
#login div.form div.fields,
 
#register div.form,
 
#register div.form div.fields {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.box div.form div.fields div.field div.label span,
 
#login div.form div.fields div.field div.label span,
 
#register div.form div.fields div.field div.label span {
 
    height: 1%;
 
    display: block;
 
    color: #363636;
 
    margin: 0;
 
    padding: 2px 0 0;
 
}
 

	
 
#content div.box div.form div.fields div.field div.input input.error,
 
#login div.form div.fields div.field div.input input.error,
 
#register div.form div.fields div.field div.input input.error {
 
    background: #FBE3E4;
 
    border-top: 1px solid #e1b2b3;
 
    border-left: 1px solid #e1b2b3;
 
    border-right: 1px solid #FBC2C4;
 
    border-bottom: 1px solid #FBC2C4;
 
}
 

	
 
#content div.box div.form div.fields div.field div.input input.success,
 
#login div.form div.fields div.field div.input input.success,
 
#register div.form div.fields div.field div.input input.success {
 
    background: #E6EFC2;
 
    border-top: 1px solid #cebb98;
 
    border-left: 1px solid #cebb98;
 
    border-right: 1px solid #c6d880;
 
    border-bottom: 1px solid #c6d880;
 
}
 

	
 
#content div.box-left div.form div.fields div.field div.textarea,
 
#content div.box-right div.form div.fields div.field div.textarea,
 
#content div.box div.form div.fields div.field div.select select,
 
#content div.box table th.selected input,
 
#content div.box table td.selected input {
 
    margin: 0;
 
}
 

	
 
#content div.box-left div.form div.fields div.field div.select,
 
#content div.box-left div.form div.fields div.field div.checkboxes,
 
#content div.box-left div.form div.fields div.field div.radios,
 
#content div.box-right div.form div.fields div.field div.select,
 
#content div.box-right div.form div.fields div.field div.checkboxes,
 
#content div.box-right div.form div.fields div.field div.radios {
 
    margin: 0 0 0 0px !important;
 
    padding: 0;
 
}
 

	
 
#content div.box div.form div.fields div.field div.select,
 
#content div.box div.form div.fields div.field div.checkboxes,
 
#content div.box div.form div.fields div.field div.radios {
 
    margin: 0 0 0 200px;
 
    padding: 0;
 
}
 

	
 
#content div.box div.form div.fields div.field div.select a:hover,
 
#content div.box div.form div.fields div.field div.select a.ui-selectmenu:hover,
 
#content div.box div.action a:hover {
 
    color: #000;
 
    text-decoration: none;
 
}
 

	
 
#content div.box div.form div.fields div.field div.select a.ui-selectmenu-focus,
 
#content div.box div.action a.ui-selectmenu-focus {
 
    border: 1px solid #666;
 
}
 

	
 
#content div.box div.form div.fields div.field div.checkboxes div.checkbox,
 
#content div.box div.form div.fields div.field div.radios div.radio {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 8px 0 2px;
 
}
 

	
 
#content div.box div.form div.fields div.field div.checkboxes div.checkbox input,
 
#content div.box div.form div.fields div.field div.radios div.radio input {
 
    float: left;
 
    margin: 0;
 
}
 

	
 
#content div.box div.form div.fields div.field div.checkboxes div.checkbox label,
 
#content div.box div.form div.fields div.field div.radios div.radio label {
 
    height: 1%;
 
    display: block;
 
    float: left;
 
    margin: 2px 0 0 4px;
 
}
 

	
 
div.form div.fields div.field div.button input,
 
#content div.box div.form div.fields div.buttons input
 
div.form div.fields div.buttons input,
 
#content div.box div.action div.button input {
 
    font-size: 11px;
 
    font-weight: 700;
 
    margin: 0;
 
}
 

	
 
input.ui-button {
 
    background: #e5e3e3 url("../images/button.png") repeat-x;
 
    border-top: 1px solid #DDD;
 
    border-left: 1px solid #c6c6c6;
 
    border-right: 1px solid #DDD;
 
    border-bottom: 1px solid #c6c6c6;
 
    color: #515151 !important;
 
    outline: none;
 
    margin: 0;
 
    padding: 6px 12px;
 
    -webkit-border-radius: 4px 4px 4px 4px;
 
    -khtml-border-radius: 4px 4px 4px 4px;
 
    border-radius: 4px 4px 4px 4px;
 
    box-shadow: 0 1px 0 #ececec;
 
    cursor: pointer;
 
}
 

	
 
input.ui-button:hover {
 
    background: #b4b4b4 url("../images/button_selected.png") repeat-x;
 
    border-top: 1px solid #ccc;
 
    border-left: 1px solid #bebebe;
 
    border-right: 1px solid #b1b1b1;
 
    border-bottom: 1px solid #afafaf;
 
}
 

	
 
div.form div.fields div.field div.highlight,
 
#content div.box div.form div.fields div.buttons div.highlight {
 
    display: inline;
 
}
 

	
 
#content div.box div.form div.fields div.buttons,
 
div.form div.fields div.buttons {
 
    margin: 10px 0 0 200px;
 
    padding: 0;
 
}
 

	
 
#content div.box-left div.form div.fields div.buttons,
 
#content div.box-right div.form div.fields div.buttons,
 
div.box-left div.form div.fields div.buttons,
 
div.box-right div.form div.fields div.buttons {
 
    margin: 10px 0 0;
 
}
 

	
 
#content div.box table td.user,
 
#content div.box table td.address {
 
    width: 10%;
 
    text-align: center;
 
}
 

	
 
#content div.box div.action div.button,
 
#login div.form div.fields div.field div.input div.link,
 
#register div.form div.fields div.field div.input div.link {
 
    text-align: right;
 
    margin: 6px 0 0;
 
    padding: 0;
 
}
 

	
 
#content div.box div.action div.button input.ui-state-hover,
 
#login div.form div.fields div.buttons input.ui-state-hover,
 
#register div.form div.fields div.buttons input.ui-state-hover {
 
    background: #b4b4b4 url("../images/button_selected.png") repeat-x;
 
    border-top: 1px solid #ccc;
 
    border-left: 1px solid #bebebe;
 
    border-right: 1px solid #b1b1b1;
 
    border-bottom: 1px solid #afafaf;
 
    color: #515151;
 
    margin: 0;
 
    padding: 6px 12px;
 
}
 

	
 
#content div.box div.pagination div.results,
 
#content div.box div.pagination-wh div.results {
 
    text-align: left;
 
    float: left;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#content div.box div.pagination div.results span,
 
#content div.box div.pagination-wh div.results span {
 
    height: 1%;
 
    display: block;
 
    float: left;
 
    background: #ebebeb url("../images/pager.png") repeat-x;
 
    border-top: 1px solid #dedede;
 
    border-left: 1px solid #cfcfcf;
 
    border-right: 1px solid #c4c4c4;
 
    border-bottom: 1px solid #c4c4c4;
 
    color: #4A4A4A;
 
    font-weight: 700;
 
    margin: 0;
 
    padding: 6px 8px;
 
}
 

	
 
#content div.box div.pagination ul.pager li.disabled,
 
#content div.box div.pagination-wh a.disabled {
 
    color: #B4B4B4;
 
    padding: 6px;
 
}
 

	
 
#login, #register {
 
    width: 520px;
 
    margin: 10% auto 0;
 
    padding: 0;
 
}
 

	
 
#login div.color,
 
#register div.color {
 
    clear: both;
 
    overflow: hidden;
 
    background: #FFF;
 
    margin: 10px auto 0;
 
    padding: 3px 3px 3px 0;
 
}
 

	
 
#login div.color a,
 
#register div.color a {
 
    width: 20px;
 
    height: 20px;
 
    display: block;
 
    float: left;
 
    margin: 0 0 0 3px;
 
    padding: 0;
 
}
 

	
 
#login div.title h5,
 
#register div.title h5 {
 
    color: #fff;
 
    margin: 10px;
 
    padding: 0;
 
}
 

	
 
#login div.form div.fields div.field,
 
#register div.form div.fields div.field {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 0 10px;
 
}
 

	
 
#login div.form div.fields div.field span.error-message,
 
#register div.form div.fields div.field span.error-message {
 
    height: 1%;
 
    display: block;
 
    color: red;
 
    margin: 8px 0 0;
 
    padding: 0;
 
    max-width: 320px;
 
}
 

	
 
#login div.form div.fields div.field div.label label,
 
#register div.form div.fields div.field div.label label {
 
    color: #000;
 
    font-weight: 700;
 
}
 

	
 
#login div.form div.fields div.field div.input,
 
#register div.form div.fields div.field div.input {
 
    float: left;
 
    margin: 0;
 
    padding: 0;
 
}
 

	
 
#login div.form div.fields div.field div.input input.large {
 
    width: 250px;
 
}
 

	
 
#login div.form div.fields div.field div.checkbox,
 
#register div.form div.fields div.field div.checkbox {
 
    margin: 0 0 0 184px;
 
    padding: 0;
 
}
 

	
 
#login div.form div.fields div.field div.checkbox label,
 
#register div.form div.fields div.field div.checkbox label {
 
    color: #565656;
 
    font-weight: 700;
 
}
 

	
 
#login div.form div.fields div.buttons input,
 
#register div.form div.fields div.buttons input {
 
    color: #000;
 
    font-size: 1em;
 
    font-weight: 700;
 
    margin: 0;
 
}
 

	
 
#changeset_content .container .wrapper,
 
#graph_content .container .wrapper {
 
    width: 600px;
 
}
 

	
 
#changeset_content .container .date,
 
.ac .match {
 
    font-weight: 700;
 
    padding-top: 5px;
 
    padding-bottom: 5px;
 
}
 

	
 
div#legend_container table td,
 
div#legend_choices table td {
 
    border: none !important;
 
    height: 20px !important;
 
    padding: 0 !important;
 
}
 

	
 
.q_filter_box {
 
    -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
    border: 0 none;
 
    margin-bottom: -4px;
 
    margin-top: -4px;
 
    padding-left: 3px;
 
}
 

	
 
#node_filter {
 
    border: 0px solid #545454;
 
    color: #AAAAAA;
 
    padding-left: 3px;
 
}
 

	
 

	
 
.group_members_wrap {
 
    min-height: 85px;
 
    padding-left: 20px;
 
}
 

	
 
.group_members .group_member {
 
    height: 30px;
 
    padding: 0px 0px 0px 0px;
 
}
 

	
 
.reviewer_status {
 
    float: left;
 
}
 

	
 
.reviewers_member {
 
    height: 15px;
 
    padding: 0px 0px 0px 10px;
 
}
 

	
 
.emails_wrap {
 
    padding: 0px 20px;
 
}
 

	
 
.emails_wrap .email_entry {
 
    height: 30px;
 
    padding: 0px 0px 0px 10px;
 
}
 
.emails_wrap .email_entry .email {
 
    float: left
 
}
 
.emails_wrap .email_entry .email_action {
 
    float: left
 
}
 

	
 
.ips_wrap {
 
    padding: 0px 20px;
 
}
 

	
 
.ips_wrap .ip_entry {
 
    height: 30px;
 
    padding: 0px 0px 0px 10px;
 
}
 
.ips_wrap .ip_entry .ip {
 
    float: left
 
}
 
.ips_wrap .ip_entry .ip_action {
 
    float: left
 
}
 

	
 

	
 
/*README STYLE*/
 

	
 
div.readme {
 
    padding: 0px;
 
}
 

	
 
div.readme h2 {
 
    font-weight: normal;
 
}
 

	
 
div.readme .readme_box {
 
    background-color: #fafafa;
 
}
 

	
 
div.readme .readme_box {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
div.readme .readme_box h1,
 
div.readme .readme_box h2,
 
div.readme .readme_box h3,
 
div.readme .readme_box h4,
 
div.readme .readme_box h5,
 
div.readme .readme_box h6 {
 
    border-bottom: 0 !important;
 
    margin: 0 !important;
 
    padding: 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 

	
 
div.readme .readme_box h1:first-child {
 
    padding-top: .25em !important;
 
}
 

	
 
div.readme .readme_box h2,
 
div.readme .readme_box h3 {
 
    margin: 1em 0 !important;
 
}
 

	
 
div.readme .readme_box h2 {
 
    margin-top: 1.5em !important;
 
    border-top: 4px solid #e0e0e0 !important;
 
    padding-top: .5em !important;
 
}
 

	
 
div.readme .readme_box p {
 
    color: black !important;
 
    margin: 1em 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 
div.readme .readme_box ul {
 
    list-style: disc !important;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.readme .readme_box ol {
 
    list-style: decimal;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.readme .readme_box code {
 
    font-size: 12px !important;
 
    background-color: ghostWhite !important;
 
    color: #444 !important;
 
    padding: 0 .2em !important;
 
    border: 1px solid #dedede !important;
 
}
 

	
 
div.readme .readme_box pre code {
 
    padding: 0 !important;
 
    font-size: 12px !important;
 
    background-color: #eee !important;
 
    border: none !important;
 
}
 

	
 
div.readme .readme_box pre {
 
    margin: 1em 0;
 
    font-size: 12px;
 
    background-color: #eee;
 
    border: 1px solid #ddd;
 
    padding: 5px;
 
    color: #444;
 
    overflow: auto;
 
    -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
 
    -webkit-border-radius: 3px;
 
    border-radius: 3px;
 
}
 

	
 
div.readme .readme_box table {
 
    display: table;
 
    border-collapse: separate;
 
    border-spacing: 2px;
 
    border-color: gray;
 
    width: auto !important;
 
}
 

	
 

	
 
/** RST STYLE **/
 

	
 

	
 
div.rst-block {
 
    padding: 0px;
 
}
 

	
 
div.rst-block h2 {
 
    font-weight: normal;
 
}
 

	
 
div.rst-block {
 
    background-color: #fafafa;
 
}
 

	
 
div.rst-block {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px 10px;
 
}
 

	
 
div.rst-block h1,
 
div.rst-block h2,
 
div.rst-block h3,
 
div.rst-block h4,
 
div.rst-block h5,
 
div.rst-block h6 {
 
    border-bottom: 0 !important;
 
    margin: 0 !important;
 
    padding: 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 

	
 
div.rst-block h1:first-child {
 
    padding-top: .25em !important;
 
}
 

	
 
div.rst-block h2,
 
div.rst-block h3 {
 
    margin: 1em 0 !important;
 
}
 

	
 
div.rst-block h2 {
 
    margin-top: 1.5em !important;
 
    border-top: 4px solid #e0e0e0 !important;
 
    padding-top: .5em !important;
 
}
 

	
 
div.rst-block p {
 
    color: black !important;
 
    margin: 1em 0 !important;
 
    line-height: 1.5em !important;
 
}
 

	
 
div.rst-block ul {
 
    list-style: disc !important;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.rst-block ol {
 
    list-style: decimal;
 
    margin: 1em 0 1em 2em !important;
 
}
 

	
 
div.rst-block code {
 
    font-size: 12px !important;
 
    background-color: ghostWhite !important;
 
    color: #444 !important;
 
    padding: 0 .2em !important;
 
    border: 1px solid #dedede !important;
 
}
 

	
 
div.rst-block pre code {
 
    padding: 0 !important;
 
    font-size: 12px !important;
 
    background-color: #eee !important;
 
    border: none !important;
 
}
 

	
 
div.rst-block pre {
 
    margin: 1em 0;
 
    font-size: 12px;
 
    background-color: #eee;
 
    border: 1px solid #ddd;
 
    padding: 5px;
 
    color: #444;
 
    overflow: auto;
 
    -webkit-box-shadow: rgba(0,0,0,0.07) 0 1px 2px inset;
 
    -webkit-border-radius: 3px;
 
    border-radius: 3px;
 
}
 

	
 

	
 
/** comment main **/
 
.comments {
 
    padding: 10px 20px;
 
    max-width: 978px;
 
}
 

	
 
.comments .comment {
 
    border: 1px solid #ddd;
 
    margin-top: 10px;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
}
 

	
 
.comments .comment .meta {
 
    background: #f8f8f8;
 
    padding: 4px;
 
    border-bottom: 1px solid #ddd;
 
    min-height: 18px;
 
    overflow: auto;
 
}
 

	
 
.comments .comment .meta img {
 
    vertical-align: middle;
 
}
 

	
 
.comments .comment .meta .user {
 
    font-weight: bold;
 
    float: left;
 
    padding: 4px 2px 2px 2px;
 
}
 

	
 
.comments .comment .meta .date {
 
    float: left;
 
    padding: 4px 4px 0px 4px;
 
}
 

	
 
.comments .comment .text {
 
    background-color: #FAFAFA;
 
}
 
.comment .text div.rst-block p {
 
    margin: 0.5em 0px !important;
 
}
 

	
 
.comments .comments-number,
 
.pr-comments-number {
 
    margin: 5px;
 
    padding: 0px 0px 10px 0px;
 
    font-weight: bold;
 
    color: #666;
 
    font-size: 16px;
 
}
 

	
 
/** comment form **/
 

	
 
.status-block {
 
    margin: 5px;
 
    clear: both
 
}
 

	
 

	
 
div.comment-form {
 
    margin-top: 20px;
 
}
 

	
 
.comment-form strong {
 
    display: block;
 
    margin-bottom: 15px;
 
}
 

	
 
.comment-form textarea {
 
    width: 100%;
 
    height: 100px;
 
    font-family: Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
form.comment-form {
 
    margin-top: 10px;
 
    margin-left: 10px;
 
}
 

	
 
.comment-inline-form .comment-block-ta,
 
.comment-form .comment-block-ta {
 
    border: 1px solid #ccc;
 
    border-radius: 3px;
 
    box-sizing: border-box;
 
}
 

	
 
.comment-form-submit {
 
    margin-top: 5px;
 
    margin-left: 525px;
 
}
 

	
 
.file-comments {
 
    display: none;
 
}
 

	
 
.comment-form .comment {
 
    margin-left: 10px;
 
}
 

	
 
.comment-form .comment-help {
 
    padding: 5px 5px 5px 5px;
 
    color: #666;
 
}
 
.comment-form .comment-help .preview-btn,
 
.comment-form .comment-help .edit-btn {
 
    float: right;
 
    margin: -6px 0px 0px 0px;
 
}
 

	
 
.comment-form .preview-box.unloaded,
 
.comment-inline-form .preview-box.unloaded {
 
    height: 50px;
 
    text-align: center;
 
    padding: 20px;
 
    background-color: #fafafa;
 
}
 

	
 
.comment-form .comment-button {
 
    padding-top: 5px;
 
}
 

	
 
.add-another-button {
 
    margin-left: 10px;
 
    margin-top: 10px;
 
    margin-bottom: 10px;
 
}
 

	
 
.comment .buttons {
 
    float: right;
 
    margin: -1px 0px 0px 0px;
 
}
 

	
 

	
 
.show-inline-comments {
 
    position: relative;
 
    top: 1px
 
}
 

	
 
/** comment inline form **/
 
.comment-inline-form {
 
    margin: 4px;
 
    max-width: 978px;
 
}
 
.comment-inline-form .submitting-overlay {
 
    display: none;
 
    height: 0;
 
    text-align: center;
 
    font-size: 16px;
 
    opacity: 0.5;
 
}
 

	
 
.comment-inline-form .clearfix,
 
.comment-form .clearfix {
 
    background: #EEE;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
    padding: 5px;
 
    margin: 0px;
 
}
 

	
 
div.comment-inline-form {
 
    padding: 4px 0px 6px 0px;
 
}
 

	
 
.comment-inline-form strong {
 
    display: block;
 
    margin-bottom: 15px;
 
}
 

	
 
.comment-inline-form textarea {
 
    width: 100%;
 
    height: 100px;
 
    font-family: Consolas, Monaco, Inconsolata, Liberation Mono, monospace;
 
}
 

	
 
form.comment-inline-form {
 
    margin-top: 10px;
 
    margin-left: 10px;
 
}
 

	
 
.comment-inline-form-submit {
 
    margin-top: 5px;
 
    margin-left: 525px;
 
}
 

	
 
.file-comments {
 
    display: none;
 
}
 

	
 
.comment-inline-form .comment {
 
    margin-left: 10px;
 
}
 

	
 
.comment-inline-form .comment-help {
 
    padding: 5px 5px 5px 5px;
 
    color: #666;
 
}
 

	
 
.comment-inline-form .comment-help .preview-btn,
 
.comment-inline-form .comment-help .edit-btn {
 
    float: right;
 
    margin: -6px 0px 0px 0px;
 
}
 

	
 
.comment-inline-form .comment-button {
 
    padding-top: 5px;
 
}
 

	
 
/** comment inline **/
 
.inline-comments {
 
    padding: 10px 20px;
 
}
 

	
 
.inline-comments div.rst-block {
 
    clear: both;
 
    overflow: hidden;
 
    margin: 0;
 
    padding: 0 20px 0px;
 
}
 
.inline-comments .comment {
 
    max-width: 978px;
 
    border: 1px solid #ddd;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
    margin: 3px 3px 5px 5px;
 
    background-color: #FAFAFA;
 
}
 
.inline-comments .add-comment {
 
    padding: 2px 4px 8px 5px;
 
}
 

	
 
.inline-comments .comment-wrapp {
 
    padding: 1px;
 
}
 
.inline-comments .comment .meta {
 
    background: #f8f8f8;
 
    padding: 4px;
 
    border-bottom: 1px solid #ddd;
 
    min-height: 20px;
 
    overflow: auto;
 
}
 

	
 
.inline-comments .comment .meta img {
 
    vertical-align: middle;
 
}
 

	
 
.inline-comments .comment .meta .user {
 
    font-weight: bold;
 
    float: left;
 
    padding: 3px;
 
}
 

	
 
.inline-comments .comment .meta .date {
 
    float: left;
 
    padding: 3px;
 
}
 

	
 
.inline-comments .comment .text {
 
    background-color: #FAFAFA;
 
}
 

	
 
.inline-comments .comments-number {
 
    padding: 0px 0px 10px 0px;
 
    font-weight: bold;
 
    color: #666;
 
    font-size: 16px;
 
}
 
.inline-comments-button .add-comment {
 
    margin: 2px 0px 8px 5px !important
 
}
 

	
 
.notification-paginator {
 
    padding: 0px 0px 4px 16px;
 
}
 

	
 
#context-pages .pull-request span,
 
.menu_link_notifications {
 
    padding: 4px 4px !important;
 
    text-align: center;
 
    color: #888 !important;
 
    background-color: #DEDEDE !important;
 
    border-radius: 4px !important;
 
    -webkit-border-radius: 4px !important;
 
}
 

	
 
#context-pages .forks span,
 
.menu_link_notifications {
 
    padding: 4px 4px !important;
 
    text-align: center;
 
    color: #888 !important;
 
    background-color: #DEDEDE !important;
 
    border-radius: 4px !important;
 
    -webkit-border-radius: 4px !important;
 
}
 

	
 

	
 
.notification-header {
 
    padding-top: 6px;
 
}
 
.notification-header .desc {
 
    font-size: 16px;
 
    height: 24px;
 
    float: left
 
}
 
.notification-list .container.unread {
 
    background: none repeat scroll 0 0 rgba(255, 255, 180, 0.6);
 
}
 
.notification-header .gravatar {
 
    background: none repeat scroll 0 0 transparent;
 
    padding: 0px 0px 0px 8px;
 
}
 
.notification-list .container .notification-header .desc {
 
    font-weight: bold;
 
    font-size: 17px;
 
}
 
.notification-table {
 
    border: 1px solid #ccc;
 
    -webkit-border-radius: 6px 6px 6px 6px;
 
    border-radius: 6px 6px 6px 6px;
 
    clear: both;
 
    margin: 0px 20px 0px 20px;
 
}
 
.notification-header .delete-notifications {
 
    float: right;
 
    padding-top: 8px;
 
    cursor: pointer;
 
}
 
.notification-header .read-notifications {
 
    float: right;
 
    padding-top: 8px;
 
    cursor: pointer;
 
}
 
.notification-subject {
 
    clear: both;
 
    border-bottom: 1px solid #eee;
 
    padding: 5px 0px 5px 38px;
 
}
 

	
 
.notification-body {
 
    clear: both;
 
    margin: 34px 2px 2px 8px
 
}
 

	
 
/****
 
PULL REQUESTS
 
*****/
 
.pullrequests_section_head {
 
    padding: 10px 10px 10px 0px;
 
    font-size: 16px;
 
    font-weight: bold;
 
}
 

	
 
div.pr-details-title.closed,
 
#pullrequests_container li.closed div div
 
 {
 
    color: #555;
 
    background: #eee;
 
}
 

	
 
div.pr-title {
 
    font-size: 1.6em;
 
}
 
div.pr-details-title {
 
    font-size: 1.6em;
 
    padding: 5px 0px 5px 10px;
 
}
 

	
 
div.pr {
 
    margin: 0px 20px;
 
    padding: 4px 4px;
 
}
 
div.pr-desc {
 
    margin: 0px 20px;
 
}
 
div.pr-closed {
 
    background-color: #eee;
 
}
 

	
 
span.pr-closed-tag {
 
    margin-bottom: 1px;
 
    margin-right: 1px;
 
    padding: 1px 3px;
 
    font-size: 10px;
 
    padding: 1px 3px 1px 3px;
 
    font-size: 10px;
 
    color: #577632;
 
    white-space: nowrap;
 
    -webkit-border-radius: 4px;
 
    border-radius: 4px;
 
    border: 1px solid #d9e8f8;
 
    line-height: 1.5em;
 
}
 

	
 
.pr-box {
 
    max-width: 978px;
 
}
 

	
 
#s2id_org_ref,
 
#s2id_other_ref,
 
#s2id_org_repo,
 
#s2id_other_repo {
 
    min-width: 150px;
 
    margin: 5px;
 
}
 

	
 
#pr-summary .msg-div {
 
    margin: 5px 0;
 
}
 

	
 
/****
 
  PERMS
 
*****/
 
#perms .perms_section_head {
 
    padding: 10px 10px 10px 0px;
 
    font-size: 16px;
 
    font-weight: bold;
 
    text-transform: capitalize;
 
}
kallithea/public/images/icons/arrow_refresh.png
Show inline comments
 
deleted file
 
binary diff not shown
Show images
kallithea/public/images/icons/arrow_refresh_small.png
Show inline comments
 
deleted file
 
binary diff not shown
Show images
kallithea/templates/compare/compare_diff.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 

	
 
<%def name="title()">
 
    %if c.compare_home:
 
        ${_('%s Compare') % c.repo_name}
 
    %else:
 
        ${_('%s Compare') % c.repo_name} - ${'%s@%s' % (c.a_repo.repo_name, c.a_ref_name)} &gt; ${'%s@%s' % (c.cs_repo.repo_name, c.cs_ref_name)}
 
    %endif
 
    %if c.site_name:
 
        &middot; ${c.site_name}
 
    %endif
 
</%def>
 

	
 
<%def name="breadcrumbs_links()">
 
  ${_('Compare Revisions')}
 
</%def>
 

	
 
<%def name="page_nav()">
 
    ${self.menu('repositories')}
 
</%def>
 

	
 
<%def name="main()">
 
${self.repo_context_bar('changelog')}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <div class="table">
 
        <div id="body" class="diffblock">
 
            <div class="code-header">
 
                <div>
 
                    ${h.hidden('compare_org')} <i class="icon-arrow-right"></i> ${h.hidden('compare_other')}
 
                    %if not c.compare_home:
 
                        <a class="btn btn-small" href="${c.swap_url}"><i class="icon-refresh"></i> ${_('Swap')}</a>
 
                        <a class="btn btn-small" href="${c.swap_url}"><i class="icon-arrows-cw"></i> ${_('Swap')}</a>
 
                    %endif
 
                    <div id="compare_revs" class="btn btn-small"><i class="icon-git-compare"></i> ${_('Compare Revisions')}</div>
 
                </div>
 
            </div>
 
        </div>
 

	
 
    %if c.compare_home:
 
        <div id="changeset_compare_view_content">
 
         <div style="color:#999;font-size: 18px">${_('Compare revisions, branches, bookmarks, or tags.')}</div>
 
        </div>
 
    %else:
 
        <div id="changeset_compare_view_content">
 
                ##CS
 
                <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${ungettext('Showing %s commit','Showing %s commits', len(c.cs_ranges)) % len(c.cs_ranges)}</div>
 
                <%include file="compare_cs.html" />
 

	
 
                ## FILES
 
                <div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">
 

	
 
                % if c.limited_diff:
 
                    ${ungettext('%s file changed', '%s files changed', len(c.files)) % len(c.files)}
 
                % else:
 
                    ${ungettext('%s file changed with %s insertions and %s deletions','%s files changed with %s insertions and %s deletions', len(c.files)) % (len(c.files),c.lines_added,c.lines_deleted)}:
 
                %endif
 

	
 
                ${c.ignorews_url(request.GET)}
 
                ${c.context_url(request.GET)}
 

	
 
                </div>
 
                <div class="cs_files">
 
                  %if not c.files:
 
                     <span class="empty_data">${_('No files')}</span>
 
                  %endif
 
                  %for fid, change, f, stat in c.files:
 
                     <div class="cs_${change}">
 
                         <div class="node">
 
                             <i class="icon-diff-${change}"></i>
 
                             ${h.link_to(h.safe_unicode(f), '#' + fid)}
 
                         </div>
 
                         <div class="changes">${h.fancy_file_stats(stat)}</div>
 
                     </div>
 
                  %endfor
 
                </div>
 
                % if c.limited_diff:
 
                  <h5>${_('Changeset was too big and was cut off...')} <a href="${h.url.current(fulldiff=1, **request.GET.mixed())}">${_('Show full diff')}</a></h5>
 
                % endif
 
         </div>
 

	
 
        ## diff block
 
        <%namespace name="diff_block" file="/changeset/diff_block.html"/>
 
        ${diff_block.diff_block_js()}
 
        %for fid, change, f, stat in c.files:
 
          ${diff_block.diff_block_simple([c.changes[fid]])}
 
        %endfor
 
        % if c.limited_diff:
 
          <h4>${_('Changeset was too big and was cut off...')} <a href="${h.url.current(fulldiff=1, **request.GET.mixed())}">${_('Show full diff')}</a></h4>
 
        % endif
 
    %endif
 
    </div>
 

	
 
</div>
 
    <script type="text/javascript">
 

	
 
   $(document).ready(function(){
 
    var cache = {}
 
    $("#compare_org").select2({
 
        placeholder: "${'%s@%s' % (c.a_repo.repo_name, c.a_ref_name)}",
 
        formatSelection: function(obj){
 
            return '{0}@{1}'.format("${c.a_repo.repo_name}", obj.text)
 
        },
 
        dropdownAutoWidth: true,
 
        query: function(query){
 
          var key = 'cache';
 
          var cached = cache[key] ;
 
          if(cached) {
 
            var data = {results: []};
 
            //filter results
 
            $.each(cached.results, function(){
 
                var section = this.text;
 
                var children = [];
 
                $.each(this.children, function(){
 
                    if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
 
                        children.push({'id': this.id, 'text': this.text})
 
                    }
 
                })
 
                data.results.push({'text': section, 'children': children})
 
            });
 
            //push the typed in changeset
 
            data.results.push({'text':_TM['Specify changeset'],
 
                               'children': [{'id': query.term, 'text': query.term, 'type': 'rev'}]})
 
            query.callback(data);
 
          }else{
 
              $.ajax({
 
                url: pyroutes.url('repo_refs_data', {'repo_name': '${c.a_repo.repo_name}'}),
 
                data: {},
 
                dataType: 'json',
 
                type: 'GET',
 
                success: function(data) {
 
                  cache[key] = data;
 
                  query.callback(data);
 
                }
 
              })
 
          }
 
        }
 
    });
 
    $("#compare_other").select2({
 
        placeholder: "${'%s@%s' % (c.cs_repo.repo_name, c.cs_ref_name)}",
 
        dropdownAutoWidth: true,
 
        formatSelection: function(obj){
 
            return '{0}@{1}'.format("${c.cs_repo.repo_name}", obj.text)
 
        },
 
        query: function(query){
 
          var key = 'cache2';
 
          var cached = cache[key] ;
 
          if(cached) {
 
            var data = {results: []};
 
            //filter results
 
            $.each(cached.results, function(){
 
                var section = this.text;
 
                var children = [];
 
                $.each(this.children, function(){
 
                    if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
 
                        children.push({'id': this.id, 'text': this.text})
 
                    }
 
                })
 
                data.results.push({'text': section, 'children': children})
 
            });
 
            //push the typed in changeset
 
            data.results.push({'text':_TM['Specify changeset'],
 
                               'children': [{'id': query.term, 'text': query.term, 'type': 'rev'}]})
 
            query.callback(data);
 
          }else{
 
              $.ajax({
 
                url: pyroutes.url('repo_refs_data', {'repo_name': '${c.cs_repo.repo_name}'}),
 
                data: {},
 
                dataType: 'json',
 
                type: 'GET',
 
                success: function(data) {
 
                  cache[key] = data;
 
                  query.callback({results: data.results});
 
                }
 
              })
 
          }
 
        }
 
    });
 

	
 
    var values_changed = function() {
 
        var values = $('#compare_org').select2('data') && $('#compare_other').select2('data');
 
        if (values) {
 
             $('#compare_revs').removeClass("disabled");
 
             // TODO: the swap button ... if any
 
        } else {
 
             $('#compare_revs').addClass("disabled");
 
             // TODO: the swap button ... if any
 
        }
 
    }
 
    values_changed();
 
    $('#compare_org').change(values_changed);
 
    $('#compare_other').change(values_changed);
 
    $('#compare_revs').on('click', function(e){
 
        var org = $('#compare_org').select2('data');
 
        var other = $('#compare_other').select2('data');
 
        if (!org || !other) {
 
            return;
 
        }
 

	
 
        var compare_url = "${h.url('compare_url',repo_name=c.repo_name,org_ref_type='__other_ref_type__',org_ref_name='__org__',other_ref_type='__org_ref_type__',other_ref_name='__other__', other_repo=c.cs_repo.repo_name)}";
 
        var u = compare_url.replace('__other_ref_type__',org.type)
 
                           .replace('__org__',org.text)
 
                           .replace('__org_ref_type__',other.type)
 
                           .replace('__other__',other.text);
 
        window.location = u;
 
    });
 
   });
 
    </script>
 
</%def>
kallithea/templates/journal/journal.html
Show inline comments
 
## -*- coding: utf-8 -*-
 
<%inherit file="/base/base.html"/>
 
<%def name="title()">
 
    ${_('Journal')}
 
    %if c.site_name:
 
        &middot; ${c.site_name}
 
    %endif
 
</%def>
 
<%def name="breadcrumbs()">
 
    <h5>
 
    <form id="filter_form">
 
    <input class="q_filter_box ${'' if c.search_term else 'initial'}" id="j_filter" size="15" type="text" name="filter" value="${c.search_term or _('quick filter...')}"/>
 
    <span class="tooltip" title="${h.tooltip(h.journal_filter_help())}">?</span>
 
    <input type='submit' value="${_('Filter')}" class="btn btn-small" style="padding:0px 2px 0px 2px;margin:0px"/>
 
    ${_('Journal')} - ${ungettext('%s Entry', '%s Entries', c.journal_pager.item_count) % (c.journal_pager.item_count)}
 
    </form>
 
    ${h.end_form()}
 
    </h5>
 
</%def>
 
<%def name="page_nav()">
 
    ${self.menu('journal')}
 
</%def>
 
<%def name="head_extra()">
 
<link href="${h.url('journal_atom', api_key=c.authuser.api_key)}" rel="alternate" title="${_('ATOM journal feed')}" type="application/atom+xml" />
 
<link href="${h.url('journal_rss', api_key=c.authuser.api_key)}" rel="alternate" title="${_('RSS journal feed')}" type="application/rss+xml" />
 
</%def>
 
<%def name="main()">
 

	
 
    <div class="box box-left">
 
        <!-- box / title -->
 
        <div class="title">
 
         ${self.breadcrumbs()}
 
         <ul class="links icon-only-links">
 
           <li>
 
             <span><a id="refresh" href="${h.url('journal')}"><i class="icon-refresh"></i></a></span>
 
             <span><a id="refresh" href="${h.url('journal')}"><i class="icon-arrows-cw"></i></a></span>
 
           </li>
 
           <li>
 
             <span><a href="${h.url('journal_atom', api_key=c.authuser.api_key)}"><i class="icon-rss-squared"></i></a></span>
 
           </li>
 
         </ul>
 
        </div>
 
        <div id="journal">${c.journal_data}</div>
 
    </div>
 
    <div class="box box-right">
 
        <!-- box / title -->
 

	
 
        <div class="title">
 
            <h5>
 
            <input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value="" style="display: none"/>
 
            <input class="q_filter_box" id="q_filter_watched" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value="" style="display: none"/>
 
            </h5>
 
            <ul class="links nav nav-tabs">
 
                <li class="active" id="show_watched_li">
 
                    <a id="show_watched" href="#watched"><i class="icon-eye-open"></i> ${_('Watched')}</a>
 
                </li>
 
                <li id="show_my_li">
 
                    <a id="show_my" href="#my"><i class="icon-database"></i> ${_('My Repos')}</a>
 
               </li>
 
            </ul>
 
        </div>
 

	
 
        <!-- end box / title -->
 
        <div id="my_container" style="display:none">
 
            <div class="table-grid table yui-skin-sam" id="repos_list_wrap"></div>
 
            <div id="user-paginator" style="padding: 0px 0px 0px 20px"></div>
 
        </div>
 

	
 
        <div id="watched_container">
 
            <div class="table-grid table yui-skin-sam" id="watched_repos_list_wrap"></div>
 
            <div id="watched-user-paginator" style="padding: 0px 0px 0px 20px"></div>
 
        </div>
 
    </div>
 

	
 
    <script type="text/javascript">
 

	
 
    $('#j_filter').click(function(){
 
        var $jfilter = $('#j_filter');
 
        if($jfilter.hasClass('initial')){
 
            $jfilter.val('');
 
        }
 
    });
 
    var fix_j_filter_width = function(len){
 
        $('#j_filter').css('width', Math.max(80, len*6.50)+'px');
 
    };
 
    $('#j_filter').keyup(function(){
 
        fix_j_filter_width($('#j_filter').val().length);
 
    });
 
    $('#filter_form').submit(function(e){
 
        e.preventDefault();
 
        var val = $('#j_filter').val();
 
        window.location = "${url.current(filter='__FILTER__')}".replace('__FILTER__',val);
 
    });
 
    fix_j_filter_width($('#j_filter').val().length);
 

	
 
    $('#refresh').click(function(e){
 
        asynchtml("${h.url.current(filter=c.search_term)}", $("#journal"), function(){
 
            show_more_event();
 
            tooltip_activate();
 
            show_changeset_tooltip();
 
            });
 
        e.preventDefault();
 
    });
 

	
 
    var show_my = function(e){
 
        $('#watched_container').hide();
 
        $('#my_container').show();
 
        $('#q_filter').show();
 
        $('#q_filter_watched').hide();
 

	
 
        $('#show_my_li').addClass('active');
 
        $('#show_watched_li').removeClass('active');
 
        if(!$('#show_my').hasClass('loaded')){
 
            table_renderer(${c.data |n});
 
            $('#show_my').addClass('loaded');
 
        }
 
    };
 
    $('#show_my').click(function(){
 
        show_my();
 
    });
 
    var show_watched = function(){
 
        $('#my_container').hide();
 
        $('#watched_container').show();
 
        $('#q_filter_watched').show();
 
        $('#q_filter').hide();
 

	
 
        $('#show_watched_li').addClass('active');
 
        $('#show_my_li').removeClass('active');
 
        if(!$('#show_watched').hasClass('loaded')){
 
            watched_renderer(${c.watched_data |n});
 
            $('#show_watched').addClass('loaded');
 
        }
 
    };
 
    $('#show_watched').click(function(){
 
        show_watched();
 
    });
 
    //init watched
 
    show_watched();
 

	
 
    var tabs = {
 
        'watched': show_watched,
 
        'my': show_my
 
    }
 
    var url = location.href.split('#');
 
    if (url[1]) {
 
        //We have a hash
 
        var tabHash = url[1];
 
        var func = tabs[tabHash]
 
        if (func){
 
            func();
 
        }
 
    }
 
    function watched_renderer(data){
 
        var myDataSource = new YAHOO.util.DataSource(data);
 
        myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
 

	
 
        myDataSource.responseSchema = {
 
            resultsList: "records",
 
            fields: [
 
               {key:"menu"},
 
               {key:"raw_name"},
 
               {key:"name"},
 
               {key:"last_changeset"},
 
               {key:"last_rev_raw"},
 
               {key:"action"}
 
            ]
 
         };
 
        myDataSource.doBeforeCallback = function(req,raw,res,cb) {
 
            // This is the filter function
 
            var data     = res.results || [],
 
                filtered = [],
 
                i,l;
 

	
 
            if (req) {
 
                req = req.toLowerCase();
 
                for (i = 0; i<data.length; i++) {
 
                    var pos = data[i].raw_name.toLowerCase().indexOf(req)
 
                    if (pos != -1) {
 
                        filtered.push(data[i]);
 
                    }
 
                }
 
                res.results = filtered;
 
            }
 
            return res;
 
        }
 
        // main table sorting
 
        var myColumnDefs = [
 
            {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
 
            {key:"name",label:"${_('Name')}",sortable:true,
 
                sortOptions: { sortFunction: nameSort }},
 
            {key:"last_changeset",label:"${_('Tip')}",sortable:true,
 
                sortOptions: { sortFunction: revisionSort }},
 
            {key:"action",label:"${_('Action')}",sortable:false}
 
        ];
 

	
 
        var myDataTable = new YAHOO.widget.DataTable("watched_repos_list_wrap", myColumnDefs, myDataSource,{
 
          sortedBy:{key:"name",dir:"asc"},
 
          paginator: YUI_paginator(25, ['watched-user-paginator']),
 

	
 
          MSG_SORTASC:"${_('Click to sort ascending')}",
 
          MSG_SORTDESC:"${_('Click to sort descending')}",
 
          MSG_EMPTY:"${_('No records found.')}",
 
          MSG_ERROR:"${_('Data error.')}",
 
          MSG_LOADING:"${_('Loading...')}"
 
        }
 
        );
 
        myDataTable.subscribe('postRenderEvent',function(oArgs) {
 
            tooltip_activate();
 
            quick_repo_menu();
 
        });
 

	
 
        var filterTimeout = null;
 

	
 
        updateFilter  = function () {
 
            // Reset timeout
 
            filterTimeout = null;
 

	
 
            // Reset sort
 
            var state = myDataTable.getState();
 
            state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
 

	
 
            // Get filtered data
 
            myDataSource.sendRequest(YUD.get('q_filter_watched').value,{
 
                success : myDataTable.onDataReturnInitializeTable,
 
                failure : myDataTable.onDataReturnInitializeTable,
 
                scope   : myDataTable,
 
                argument: state
 
            });
 

	
 
        };
 
        $('#q_filter_watched').click(function(){
 
            if(!$('#q_filter_watched').hasClass('loaded')) {
 
                //TODO: load here full list later to do search within groups
 
                $('#q_filter_watched').css('loaded');
 
            }
 
        });
 

	
 
        $('#q_filter_watched').keyup(function(){
 
            clearTimeout(filterTimeout);
 
            filterTimeout = setTimeout(updateFilter,600);
 
        });
 
      }
 

	
 
    function table_renderer(data){
 
        var myDataSource = new YAHOO.util.DataSource(data);
 
        myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
 

	
 
        myDataSource.responseSchema = {
 
            resultsList: "records",
 
            fields: [
 
               {key:"menu"},
 
               {key:"raw_name"},
 
               {key:"name"},
 
               {key:"last_changeset"},
 
               {key:"last_rev_raw"},
 
               {key:"action"}
 
            ]
 
         };
 
        myDataSource.doBeforeCallback = function(req,raw,res,cb) {
 
            // This is the filter function
 
            var data     = res.results || [],
 
                filtered = [],
 
                i,l;
 

	
 
            if (req) {
 
                req = req.toLowerCase();
 
                for (i = 0; i<data.length; i++) {
 
                    var pos = data[i].raw_name.toLowerCase().indexOf(req)
 
                    if (pos != -1) {
 
                        filtered.push(data[i]);
 
                    }
 
                }
 
                res.results = filtered;
 
            }
 
            return res;
 
        }
 
        // main table sorting
 
        var myColumnDefs = [
 
            {key:"menu",label:"",sortable:false,className:"quick_repo_menu hidden"},
 
            {key:"name",label:"${_('Name')}",sortable:true,
 
                sortOptions: { sortFunction: nameSort }},
 
            {key:"last_changeset",label:"${_('Tip')}",sortable:true,
 
                sortOptions: { sortFunction: revisionSort }},
 
            {key:"action",label:"${_('Action')}",sortable:false}
 
        ];
 

	
 
        var myDataTable = new YAHOO.widget.DataTable("repos_list_wrap", myColumnDefs, myDataSource,{
 
          sortedBy:{key:"name",dir:"asc"},
 
          paginator: YUI_paginator(25, ['user-paginator']),
 

	
 
          MSG_SORTASC:"${_('Click to sort ascending')}",
 
          MSG_SORTDESC:"${_('Click to sort descending')}",
 
          MSG_EMPTY:"${_('No records found.')}",
 
          MSG_ERROR:"${_('Data error.')}",
 
          MSG_LOADING:"${_('Loading...')}"
 
        }
 
        );
 
        myDataTable.subscribe('postRenderEvent',function(oArgs) {
 
            tooltip_activate();
 
            quick_repo_menu();
 
        });
 

	
 
        var filterTimeout = null;
 

	
 
        updateFilter = function () {
 
            // Reset timeout
 
            filterTimeout = null;
 

	
 
            // Reset sort
 
            var state = myDataTable.getState();
 
            state.sortedBy = {key:'name', dir:YAHOO.widget.DataTable.CLASS_ASC};
 

	
 
            // Get filtered data
 
            myDataSource.sendRequest(YUD.get('q_filter').value,{
 
                success : myDataTable.onDataReturnInitializeTable,
 
                failure : myDataTable.onDataReturnInitializeTable,
 
                scope   : myDataTable,
 
                argument: state
 
            });
 

	
 
        };
 
        $('#q_filter').click(function(){
 
            if(!$('#q_filter').hasClass('loaded')){
 
                //TODO: load here full list later to do search within groups
 
                $('#q_filter').addClass('loaded');
 
            }
 
        });
 

	
 
        $('#q_filter').keyup(function(){
 
            clearTimeout(filterTimeout);
 
            filterTimeout = setTimeout(updateFilter,600);
 
        });
 

	
 
        if($('#q_filter').val()) {
 
            updateFilter();
 
        }
 
    }
 

	
 
    </script>
 
</%def>
kallithea/tests/functional/test_compare.py
Show inline comments
 
# -*- coding: utf-8 -*-
 
from kallithea.tests import *
 
from kallithea.model.repo import RepoModel
 
from kallithea.model.meta import Session
 
from kallithea.model.db import Repository
 
from kallithea.model.scm import ScmModel
 
from kallithea.lib.vcs.backends.base import EmptyChangeset
 
from kallithea.tests.fixture import Fixture
 

	
 
fixture = Fixture()
 

	
 

	
 
def _commit_change(repo, filename, content, message, vcs_type, parent=None, newfile=False):
 
    repo = Repository.get_by_repo_name(repo)
 
    _cs = parent
 
    if not parent:
 
        _cs = EmptyChangeset(alias=vcs_type)
 

	
 
    if newfile:
 
        nodes = {
 
            filename: {
 
                'content': content
 
            }
 
        }
 
        cs = ScmModel().create_nodes(
 
            user=TEST_USER_ADMIN_LOGIN, repo=repo,
 
            message=message,
 
            nodes=nodes,
 
            parent_cs=_cs,
 
            author=TEST_USER_ADMIN_LOGIN,
 
        )
 
    else:
 
        cs = ScmModel().commit_change(
 
            repo=repo.scm_instance, repo_name=repo.repo_name,
 
            cs=parent, user=TEST_USER_ADMIN_LOGIN,
 
            author=TEST_USER_ADMIN_LOGIN,
 
            message=message,
 
            content=content,
 
            f_path=filename
 
        )
 
    return cs
 

	
 

	
 
def _commit_div(sha, msg):
 
    return """<div id="C-%s" class="message">%s</div>""" % (sha, msg)
 

	
 

	
 
class TestCompareController(TestController):
 

	
 
    def setUp(self):
 
        self.r1_id = None
 
        self.r2_id = None
 

	
 
    def tearDown(self):
 
        if self.r2_id:
 
            RepoModel().delete(self.r2_id)
 
        if self.r1_id:
 
            RepoModel().delete(self.r1_id)
 
        Session().commit()
 
        Session.remove()
 

	
 
    def test_compare_forks_on_branch_extra_commits_hg(self):
 
        self.log_user()
 
        repo1 = fixture.create_repo('one', repo_type='hg',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 
        self.r1_id = repo1.repo_id
 
        #commit something !
 
        cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
 
                             message='commit1', vcs_type='hg', parent=None, newfile=True)
 

	
 
        #fork this repo
 
        repo2 = fixture.create_fork('one', 'one-fork')
 
        self.r2_id = repo2.repo_id
 

	
 
        #add two extra commit into fork
 
        cs1 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\n',
 
                             message='commit2', vcs_type='hg', parent=cs0)
 

	
 
        cs2 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\nline3\n',
 
                             message='commit3', vcs_type='hg', parent=cs1)
 

	
 
        rev1 = 'default'
 
        rev2 = 'default'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=repo1.repo_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev2,
 
                                    other_repo=repo2.repo_name,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev1,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (repo1.repo_name, rev2))
 
        response.mustcontain('%s@%s' % (repo2.repo_name, rev1))
 
        response.mustcontain("""Showing 2 commits""")
 
        response.mustcontain("""1 file changed with 2 insertions and 0 deletions""")
 

	
 
        response.mustcontain(_commit_div(cs1.raw_id, 'commit2'))
 
        response.mustcontain(_commit_div(cs2.raw_id, 'commit3'))
 

	
 
        response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (repo2.repo_name, cs1.raw_id, cs1.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo2.repo_name, cs2.raw_id, cs2.short_id))
 
        ## files
 
        response.mustcontain("""<a href="#C--826e8142e6ba">file1</a>""")
 
        #swap
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-refresh"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-arrows-cw"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 

	
 
    def test_compare_forks_on_branch_extra_commits_git(self):
 
        self.log_user()
 
        repo1 = fixture.create_repo('one-git', repo_type='git',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 
        self.r1_id = repo1.repo_id
 
        #commit something !
 
        cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
 
                             message='commit1', vcs_type='git', parent=None, newfile=True)
 

	
 
        #fork this repo
 
        repo2 = fixture.create_fork('one-git', 'one-git-fork')
 
        self.r2_id = repo2.repo_id
 

	
 
        #add two extra commit into fork
 
        cs1 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\n',
 
                             message='commit2', vcs_type='git', parent=cs0)
 

	
 
        cs2 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\nline3\n',
 
                             message='commit3', vcs_type='git', parent=cs1)
 

	
 
        rev1 = 'master'
 
        rev2 = 'master'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=repo1.repo_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev2,
 
                                    other_repo=repo2.repo_name,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev1,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (repo1.repo_name, rev2))
 
        response.mustcontain('%s@%s' % (repo2.repo_name, rev1))
 
        response.mustcontain("""Showing 2 commits""")
 
        response.mustcontain("""1 file changed with 2 insertions and 0 deletions""")
 

	
 
        response.mustcontain(_commit_div(cs1.raw_id, 'commit2'))
 
        response.mustcontain(_commit_div(cs2.raw_id, 'commit3'))
 

	
 
        response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (repo2.repo_name, cs1.raw_id, cs1.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo2.repo_name, cs2.raw_id, cs2.short_id))
 
        ## files
 
        response.mustcontain("""<a href="#C--826e8142e6ba">file1</a>""")
 
        #swap
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-refresh"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-arrows-cw"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 

	
 
    def test_compare_forks_on_branch_extra_commits_origin_has_incomming_hg(self):
 
        self.log_user()
 

	
 
        repo1 = fixture.create_repo('one', repo_type='hg',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 

	
 
        self.r1_id = repo1.repo_id
 

	
 
        #commit something !
 
        cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
 
                             message='commit1', vcs_type='hg', parent=None, newfile=True)
 

	
 
        #fork this repo
 
        repo2 = fixture.create_fork('one', 'one-fork')
 
        self.r2_id = repo2.repo_id
 

	
 
        #now commit something to origin repo
 
        cs1_prim = _commit_change(repo1.repo_name, filename='file2', content='line1file2\n',
 
                                  message='commit2', vcs_type='hg', parent=cs0, newfile=True)
 

	
 
        #add two extra commit into fork
 
        cs1 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\n',
 
                             message='commit2', vcs_type='hg', parent=cs0)
 

	
 
        cs2 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\nline3\n',
 
                             message='commit3', vcs_type='hg', parent=cs1)
 

	
 
        rev1 = 'default'
 
        rev2 = 'default'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=repo1.repo_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev2,
 
                                    other_repo=repo2.repo_name,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev1,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (repo1.repo_name, rev2))
 
        response.mustcontain('%s@%s' % (repo2.repo_name, rev1))
 
        response.mustcontain("""Showing 2 commits""")
 
        response.mustcontain("""1 file changed with 2 insertions and 0 deletions""")
 

	
 
        response.mustcontain(_commit_div(cs1.raw_id, 'commit2'))
 
        response.mustcontain(_commit_div(cs2.raw_id, 'commit3'))
 

	
 
        response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (repo2.repo_name, cs1.raw_id, cs1.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo2.repo_name, cs2.raw_id, cs2.short_id))
 
        ## files
 
        response.mustcontain("""<a href="#C--826e8142e6ba">file1</a>""")
 
        #swap
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-refresh"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-arrows-cw"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 

	
 
    def test_compare_forks_on_branch_extra_commits_origin_has_incomming_git(self):
 
        self.log_user()
 

	
 
        repo1 = fixture.create_repo('one-git', repo_type='git',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 

	
 
        self.r1_id = repo1.repo_id
 

	
 
        #commit something !
 
        cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
 
                             message='commit1', vcs_type='git', parent=None, newfile=True)
 

	
 
        #fork this repo
 
        repo2 = fixture.create_fork('one-git', 'one-git-fork')
 
        self.r2_id = repo2.repo_id
 

	
 
        #now commit something to origin repo
 
        cs1_prim = _commit_change(repo1.repo_name, filename='file2', content='line1file2\n',
 
                                  message='commit2', vcs_type='git', parent=cs0, newfile=True)
 

	
 
        #add two extra commit into fork
 
        cs1 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\n',
 
                             message='commit2', vcs_type='git', parent=cs0)
 

	
 
        cs2 = _commit_change(repo2.repo_name, filename='file1', content='line1\nline2\nline3\n',
 
                             message='commit3', vcs_type='git', parent=cs1)
 

	
 
        rev1 = 'master'
 
        rev2 = 'master'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=repo1.repo_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev2,
 
                                    other_repo=repo2.repo_name,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev1,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (repo1.repo_name, rev2))
 
        response.mustcontain('%s@%s' % (repo2.repo_name, rev1))
 
        response.mustcontain("""Showing 2 commits""")
 
        response.mustcontain("""1 file changed with 2 insertions and 0 deletions""")
 

	
 
        response.mustcontain(_commit_div(cs1.raw_id, 'commit2'))
 
        response.mustcontain(_commit_div(cs2.raw_id, 'commit3'))
 

	
 
        response.mustcontain("""<a href="/%s/changeset/%s">r1:%s</a>""" % (repo2.repo_name, cs1.raw_id, cs1.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo2.repo_name, cs2.raw_id, cs2.short_id))
 
        ## files
 
        response.mustcontain("""<a href="#C--826e8142e6ba">file1</a>""")
 
        #swap
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-refresh"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 
        response.mustcontain("""<a class="btn btn-small" href="/%s/compare/branch@%s...branch@%s?other_repo=%s&amp;merge=True"><i class="icon-arrows-cw"></i> Swap</a>""" % (repo2.repo_name, rev1, rev2, repo1.repo_name))
 

	
 
    def test_compare_cherry_pick_changesets_from_bottom(self):
 

	
 
#        repo1:
 
#            cs0:
 
#            cs1:
 
#        repo1-fork- in which we will cherry pick bottom changesets
 
#            cs0:
 
#            cs1:
 
#            cs2: x
 
#            cs3: x
 
#            cs4: x
 
#            cs5:
 
        #make repo1, and cs1+cs2
 
        self.log_user()
 

	
 
        repo1 = fixture.create_repo('repo1', repo_type='hg',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 
        self.r1_id = repo1.repo_id
 

	
 
        #commit something !
 
        cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
 
                             message='commit1', vcs_type='hg', parent=None,
 
                             newfile=True)
 
        cs1 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\n',
 
                             message='commit2', vcs_type='hg', parent=cs0)
 
        #fork this repo
 
        repo2 = fixture.create_fork('repo1', 'repo1-fork')
 
        self.r2_id = repo2.repo_id
 
        #now make cs3-6
 
        cs2 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\n',
 
                             message='commit3', vcs_type='hg', parent=cs1)
 
        cs3 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\nline4\n',
 
                             message='commit4', vcs_type='hg', parent=cs2)
 
        cs4 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\nline4\nline5\n',
 
                             message='commit5', vcs_type='hg', parent=cs3)
 
        cs5 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\nline4\nline5\nline6\n',
 
                             message='commit6', vcs_type='hg', parent=cs4)
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=repo2.repo_name,
 
                                    org_ref_type="rev",
 
                                    org_ref_name=cs1.short_id,  # parent of cs2, in repo2
 
                                    other_repo=repo1.repo_name,
 
                                    other_ref_type="rev",
 
                                    other_ref_name=cs4.short_id,
 
                                    merge='True',
 
                                    ))
 
        response.mustcontain('%s@%s' % (repo2.repo_name, cs1.short_id))
 
        response.mustcontain('%s@%s' % (repo1.repo_name, cs4.short_id))
 
        response.mustcontain("""Showing 3 commits""")
 
        response.mustcontain("""1 file changed with 3 insertions and 0 deletions""")
 

	
 
        response.mustcontain(_commit_div(cs2.raw_id, 'commit3'))
 
        response.mustcontain(_commit_div(cs3.raw_id, 'commit4'))
 
        response.mustcontain(_commit_div(cs4.raw_id, 'commit5'))
 

	
 
        response.mustcontain("""<a href="/%s/changeset/%s">r2:%s</a>""" % (repo1.repo_name, cs2.raw_id, cs2.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r3:%s</a>""" % (repo1.repo_name, cs3.raw_id, cs3.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r4:%s</a>""" % (repo1.repo_name, cs4.raw_id, cs4.short_id))
 
        ## files
 
        response.mustcontain("""#C--826e8142e6ba">file1</a>""")
 

	
 
    def test_compare_cherry_pick_changesets_from_top(self):
 
#        repo1:
 
#            cs0:
 
#            cs1:
 
#        repo1-fork- in which we will cherry pick bottom changesets
 
#            cs0:
 
#            cs1:
 
#            cs2:
 
#            cs3: x
 
#            cs4: x
 
#            cs5: x
 
#
 
        #make repo1, and cs1+cs2
 
        self.log_user()
 
        repo1 = fixture.create_repo('repo1', repo_type='hg',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 
        self.r1_id = repo1.repo_id
 

	
 
        #commit something !
 
        cs0 = _commit_change(repo1.repo_name, filename='file1', content='line1\n',
 
                             message='commit1', vcs_type='hg', parent=None,
 
                             newfile=True)
 
        cs1 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\n',
 
                             message='commit2', vcs_type='hg', parent=cs0)
 
        #fork this repo
 
        repo2 = fixture.create_fork('repo1', 'repo1-fork')
 
        self.r2_id = repo2.repo_id
 
        #now make cs3-6
 
        cs2 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\n',
 
                             message='commit3', vcs_type='hg', parent=cs1)
 
        cs3 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\nline4\n',
 
                             message='commit4', vcs_type='hg', parent=cs2)
 
        cs4 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\nline4\nline5\n',
 
                             message='commit5', vcs_type='hg', parent=cs3)
 
        cs5 = _commit_change(repo1.repo_name, filename='file1', content='line1\nline2\nline3\nline4\nline5\nline6\n',
 
                             message='commit6', vcs_type='hg', parent=cs4)
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=repo1.repo_name,
 
                                    org_ref_type="rev",
 
                                    org_ref_name=cs2.short_id, # parent of cs3, not in repo2
 
                                    other_ref_type="rev",
 
                                    other_ref_name=cs5.short_id,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (repo1.repo_name, cs2.short_id))
 
        response.mustcontain('%s@%s' % (repo1.repo_name, cs5.short_id))
 
        response.mustcontain("""Showing 3 commits""")
 
        response.mustcontain("""1 file changed with 3 insertions and 0 deletions""")
 

	
 
        response.mustcontain(_commit_div(cs3.raw_id, 'commit4'))
 
        response.mustcontain(_commit_div(cs4.raw_id, 'commit5'))
 
        response.mustcontain(_commit_div(cs5.raw_id, 'commit6'))
 

	
 
        response.mustcontain("""<a href="/%s/changeset/%s">r3:%s</a>""" % (repo1.repo_name, cs3.raw_id, cs3.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r4:%s</a>""" % (repo1.repo_name, cs4.raw_id, cs4.short_id))
 
        response.mustcontain("""<a href="/%s/changeset/%s">r5:%s</a>""" % (repo1.repo_name, cs5.raw_id, cs5.short_id))
 
        ## files
 
        response.mustcontain("""#C--826e8142e6ba">file1</a>""")
 

	
 
    def test_compare_cherry_pick_changeset_mixed_branches(self):
 
        #TODO: write this
 
        assert 1
 

	
 
    def test_compare_remote_branches_hg(self):
 
        self.log_user()
 

	
 
        repo2 = fixture.create_fork(HG_REPO, HG_FORK)
 
        self.r2_id = repo2.repo_id
 
        rev1 = '56349e29c2af'
 
        rev2 = '7d4bc8ec6be5'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=HG_REPO,
 
                                    org_ref_type="rev",
 
                                    org_ref_name=rev1,
 
                                    other_ref_type="rev",
 
                                    other_ref_name=rev2,
 
                                    other_repo=HG_FORK,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (HG_REPO, rev1))
 
        response.mustcontain('%s@%s' % (HG_FORK, rev2))
 
        ## outgoing changesets between those revisions
 

	
 
        response.mustcontain("""<a href="/%s/changeset/2dda4e345facb0ccff1a191052dd1606dba6781d">r4:2dda4e345fac</a>""" % (HG_FORK))
 
        response.mustcontain("""<a href="/%s/changeset/6fff84722075f1607a30f436523403845f84cd9e">r5:6fff84722075</a>""" % (HG_FORK))
 
        response.mustcontain("""<a href="/%s/changeset/7d4bc8ec6be56c0f10425afb40b6fc315a4c25e7">r6:%s</a>""" % (HG_FORK, rev2))
 

	
 
        ## files
 
        response.mustcontain("""<a href="#C--9c390eb52cd6">vcs/backends/hg.py</a>""")
 
        response.mustcontain("""<a href="#C--41b41c1f2796">vcs/backends/__init__.py</a>""")
 
        response.mustcontain("""<a href="#C--2f574d260608">vcs/backends/base.py</a>""")
 

	
 
    def test_compare_remote_branches_git(self):
 
        self.log_user()
 

	
 
        repo2 = fixture.create_fork(GIT_REPO, GIT_FORK)
 
        self.r2_id = repo2.repo_id
 
        rev1 = '102607b09cdd60e2793929c4f90478be29f85a17'
 
        rev2 = 'd7e0d30fbcae12c90680eb095a4f5f02505ce501'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=GIT_REPO,
 
                                    org_ref_type="rev",
 
                                    org_ref_name=rev1,
 
                                    other_ref_type="rev",
 
                                    other_ref_name=rev2,
 
                                    other_repo=GIT_FORK,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (GIT_REPO, rev1))
 
        response.mustcontain('%s@%s' % (GIT_FORK, rev2))
 
        ## outgoing changesets between those revisions
 

	
 
        response.mustcontain("""<a href="/%s/changeset/49d3fd156b6f7db46313fac355dca1a0b94a0017">r4:49d3fd156b6f</a>""" % (GIT_FORK))
 
        response.mustcontain("""<a href="/%s/changeset/2d1028c054665b962fa3d307adfc923ddd528038">r5:2d1028c05466</a>""" % (GIT_FORK))
 
        response.mustcontain("""<a href="/%s/changeset/d7e0d30fbcae12c90680eb095a4f5f02505ce501">r6:%s</a>""" % (GIT_FORK, rev2[:12]))
 

	
 
        ## files
 
        response.mustcontain("""<a href="#C--9c390eb52cd6">vcs/backends/hg.py</a>""")
 
        response.mustcontain("""<a href="#C--41b41c1f2796">vcs/backends/__init__.py</a>""")
 
        response.mustcontain("""<a href="#C--2f574d260608">vcs/backends/base.py</a>""")
 

	
 
    def test_org_repo_new_commits_after_forking_simple_diff_hg(self):
 
        self.log_user()
 

	
 
        repo1 = fixture.create_repo('one', repo_type='hg',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 

	
 
        self.r1_id = repo1.repo_id
 
        r1_name = repo1.repo_name
 

	
 
        cs0 = _commit_change(repo=r1_name, filename='file1',
 
                       content='line1', message='commit1', vcs_type='hg',
 
                       newfile=True)
 
        Session().commit()
 
        self.assertEqual(repo1.scm_instance.revisions, [cs0.raw_id])
 
        #fork the repo1
 
        repo2 = fixture.create_repo('one-fork', repo_type='hg',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN,
 
                                    clone_uri=repo1.repo_full_path,
 
                                    fork_of='one')
 
        Session().commit()
 
        self.assertEqual(repo2.scm_instance.revisions, [cs0.raw_id])
 
        self.r2_id = repo2.repo_id
 
        r2_name = repo2.repo_name
 

	
 

	
 
        cs1 = _commit_change(repo=r2_name, filename='file1-fork',
 
                       content='file1-line1-from-fork', message='commit1-fork',
 
                       vcs_type='hg', parent=repo2.scm_instance[-1],
 
                       newfile=True)
 

	
 
        cs2 = _commit_change(repo=r2_name, filename='file2-fork',
 
                       content='file2-line1-from-fork', message='commit2-fork',
 
                       vcs_type='hg', parent=cs1,
 
                       newfile=True)
 

	
 
        cs3 = _commit_change(repo=r2_name, filename='file3-fork',
 
                       content='file3-line1-from-fork', message='commit3-fork',
 
                       vcs_type='hg', parent=cs2, newfile=True)
 
        #compare !
 
        rev1 = 'default'
 
        rev2 = 'default'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=r2_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev1,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev2,
 
                                    other_repo=r1_name,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (r2_name, rev1))
 
        response.mustcontain('%s@%s' % (r1_name, rev2))
 
        response.mustcontain('No files')
 
        response.mustcontain('No changesets')
 

	
 
        cs0 = _commit_change(repo=r1_name, filename='file2',
 
                    content='line1-added-after-fork', message='commit2-parent',
 
                    vcs_type='hg', parent=None, newfile=True)
 

	
 
        #compare !
 
        rev1 = 'default'
 
        rev2 = 'default'
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=r2_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev1,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev2,
 
                                    other_repo=r1_name,
 
                                    merge='1',
 
                                    ))
 

	
 
        response.mustcontain('%s@%s' % (r2_name, rev1))
 
        response.mustcontain('%s@%s' % (r1_name, rev2))
 

	
 
        response.mustcontain("""commit2-parent""")
 
        response.mustcontain("""1 file changed with 1 insertions and 0 deletions""")
 
        response.mustcontain("""line1-added-after-fork""")
 

	
 
    def test_org_repo_new_commits_after_forking_simple_diff_git(self):
 
        self.log_user()
 

	
 
        repo1 = fixture.create_repo('one-git', repo_type='git',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN)
 

	
 
        self.r1_id = repo1.repo_id
 
        r1_name = repo1.repo_name
 

	
 
        cs0 = _commit_change(repo=r1_name, filename='file1',
 
                       content='line1', message='commit1', vcs_type='git',
 
                       newfile=True)
 
        Session().commit()
 
        self.assertEqual(repo1.scm_instance.revisions, [cs0.raw_id])
 
        #fork the repo1
 
        repo2 = fixture.create_repo('one-git-fork', repo_type='git',
 
                                    repo_description='diff-test',
 
                                    cur_user=TEST_USER_ADMIN_LOGIN,
 
                                    clone_uri=repo1.repo_full_path,
 
                                    fork_of='one-git')
 
        Session().commit()
 
        self.assertEqual(repo2.scm_instance.revisions, [cs0.raw_id])
 
        self.r2_id = repo2.repo_id
 
        r2_name = repo2.repo_name
 

	
 

	
 
        cs1 = _commit_change(repo=r2_name, filename='file1-fork',
 
                       content='file1-line1-from-fork', message='commit1-fork',
 
                       vcs_type='git', parent=repo2.scm_instance[-1],
 
                       newfile=True)
 

	
 
        cs2 = _commit_change(repo=r2_name, filename='file2-fork',
 
                       content='file2-line1-from-fork', message='commit2-fork',
 
                       vcs_type='git', parent=cs1,
 
                       newfile=True)
 

	
 
        cs3 = _commit_change(repo=r2_name, filename='file3-fork',
 
                       content='file3-line1-from-fork', message='commit3-fork',
 
                       vcs_type='git', parent=cs2, newfile=True)
 
        #compare !
 
        rev1 = 'master'
 
        rev2 = 'master'
 

	
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=r2_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev1,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev2,
 
                                    other_repo=r1_name,
 
                                    merge='1',))
 

	
 
        response.mustcontain('%s@%s' % (r2_name, rev1))
 
        response.mustcontain('%s@%s' % (r1_name, rev2))
 
        response.mustcontain('No files')
 
        response.mustcontain('No changesets')
 

	
 
        cs0 = _commit_change(repo=r1_name, filename='file2',
 
                    content='line1-added-after-fork', message='commit2-parent',
 
                    vcs_type='git', parent=None, newfile=True)
 

	
 
        #compare !
 
        rev1 = 'master'
 
        rev2 = 'master'
 
        response = self.app.get(url('compare_url',
 
                                    repo_name=r2_name,
 
                                    org_ref_type="branch",
 
                                    org_ref_name=rev1,
 
                                    other_ref_type="branch",
 
                                    other_ref_name=rev2,
 
                                    other_repo=r1_name,
 
                                    merge='1',
 
                                    ))
 

	
 
        response.mustcontain('%s@%s' % (r2_name, rev1))
 
        response.mustcontain('%s@%s' % (r1_name, rev2))
 

	
 
        response.mustcontain("""commit2-parent""")
 
        response.mustcontain("""1 file changed with 1 insertions and 0 deletions""")
 
        response.mustcontain("""line1-added-after-fork""")
0 comments (0 inline, 0 general)