/* Style the Yocto Project logo */
.logo img { height: 30px; width: auto !important; }
.logo { padding-top: 4px !important; padding-bottom:0px !important; }

/* style the version information */
.brand > a { color: #777; }
.brand > a:hover { color: #999; text-decoration: none; }
.icon-info-sign { color: #777; font-size: 16px; margin-left: 5px;}
.icon-info-sign:hover { color: #999; cursor: pointer; }

/* Style the breadcrumb */
.breadcrumb { display: inline-block; background-color: transparent; }
.breadcrumb li:first-child { padding-right: 10px; }

/* Styles for the help information */
.get-help { color: #CCCCCC; }
.get-help:hover, .icon-plus-sign:hover { color: #999999; cursor: pointer; }
.get-help-blue { color: #3A87AD; }
.get-help-blue:hover { color: #005580; cursor: pointer; }
.get-help-yellow { color: #C09853; }
.get-help-yellow:hover { color: #B38942; cursor: pointer; }
.get-help-red { color: #B94A48; font-size: 16px; padding-left: 2px; }
.get-help-red:hover { color: #943A38; cursor: pointer; }
.build-form>i:first-of-type { margin-left: 5px; }
.manual { margin: 11px 15px 0 11px;}
.heading-help { font-size: 14px; }

/* Styles for the external link */
.get-info { color: #0088CC; }
.get-info:hover { color: #005580; cursor: pointer; text-decoration: none; }

/* Styles for code and pre tags */
code { background-color: transparent; border: none; color: #333333; }
dd code, .alert code { white-space: pre-wrap; word-break: break-all; word-wrap: break-word; }
.alert-warning code, .alert-warning pre { background-color: transparent; border: none; color: #C09853; margin-bottom: 0px; }
.alert-error code { background-color: transparent; border: none; color: #B94A48; margin-bottom:0px; }
.alert-error pre { background-color: transparent; border: none; color: #B94A48; word-break: normal; margin-bottom: 0px; }
.alert-warning pre { word-break: normal; }
.alert-info a { font-weight: 300; }
.alert-info code { color: #3A87AD; }
.tooltip code { background-color: transparent; color: #FFFFFF; font-weight: normal; border: none; font-size: 1em; }

/* Style for definition lists */
dd ul { list-style-type: none; margin: 0px; }
dt, dd  {line-height: 25px; }
dd li { line-height: 25px; }
.item-info dd { line-height: 20px; margin-bottom: 10px; }

/* Style the filter modal dialogs */
.modal { width: 800px; margin-left: -400px; }
.modal-footer .btn { float: left; }

/* Hover style for the clear search icon */
.icon-remove-sign:hover { color: #999999; cursor: pointer; }

/* Some extra space before headings when needed */
.details { margin-top: 30px; }
.air { margin-top: 30px; }

/* Required classes for the highlight behaviour in tables */
.highlight { -webkit-animation: target-fade 10s 1; -moz-animation: target-fade 10s 1; animation: target-fade 10s 1; }
@-webkit-keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
@-moz-keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }
@keyframes target-fade { 0% { background-color: #D9EDF7; } 25% { background-color: #D9EDF7; } 100% { background-color: white; } }

/* This makes tooltips work inside modal dialogs */
.tooltip { z-index: 2000 !important; }

/* Override default Twitter Boostrap styles for anchor tags inside tables */
td a, td a > code { color: #333333; }
td code { white-space: normal; }
td a:hover, td a > code:hover { color: #000000; text-decoration: underline; }

/* Override default Twitter Bootstrap styles for tr.error */
.table tbody tr.error > td { background-color: transparent; } /* override default Bootstrap behaviour */
.table-hover tbody tr.error:hover > td { background-color: #F5F5F5;} /* override default Bootstrap behaviour */

/* Right justify Bootstrap table columns for size fields */
.table .sizecol { text-align: right; }

/* Set error, warning, success and muted styles */
.error, .red, td.error a, tr.error a { color: #b94a48; }
a.error:hover, a.error:focus, tr.error a:hover { color: #943A38; text-decoration: underline; }
.warning, .yellow { color: #c09853;}
a.warning { background-color: transparent; }
a.warning:hover, a.warning:focus { color: #B38942; text-decoration: underline; }
.success, .green { color: #468847;}
.success:hover { color: #347132; text-decoration: underline; }
td > .success:hover { text-decoration: underline; }
.muted a { color:#999999; }
.muted a:hover { color:#999999; }

/* Sorting functionality styles for table headings */
.sorted { color: #333333; font-weight: bold; }
.sorted:hover { color: #000000; text-decoration: underline; }
th > a, th > span { font-weight: normal; }

/* Force long strings like commit hashes to wrap */
.iscommit { white-space: pre-wrap; word-break: break-all; word-wrap: break-word;}

/* Make the popovers scrollable if they are too long */
.popover-content { max-height: 30em; overflow-y: scroll; }

/* Styles for the directory structure table. We'll probably won't use those in production */
.one { padding-left: 18px !important; }
.two { padding-left: 36px !important; }
.three { padding-left: 54px !important; }
.content-directory a { color: #0088CC; }
.content-directory a:hover { color: #005580; text-decoration: underline; }
.symlink { color: #CCCCCC; }

/* Styles for the navbar actions */
.btn-group + .btn-group { margin-right: 10px; }
.navbar-inner > .btn-group { margin-top: 6px; }

/* Styles for the parent item in the left navigation */

.nav > li > a.nav-parent { font-size: 18px; line-height: 25px;  }

/* Other styles */
.dropdown-menu { padding: 10px; }
select { width: auto; }
.page-header { color: #5A5A5A; }
.top-air { margin-top: 40px;}
.progress { margin-bottom: 0px; }
.lead .badge { font-size: 18px; font-weight: normal; border-radius: 15px; padding: 9px; }
.lead ol, .lead ul { padding: 10px 0 0 20px; }
.lead ol > li, .lead ul > li {
    line-height: 35px;
}
.well > .lead, .alert .lead { margin-bottom: 0px; }
.well-transparent { background-color: transparent; }
.no-results { margin: 10px 0; }
.task-name { margin-left: 7px; }
.icon-hand-right {color: #CCCCCC; }
.help-inline { margin: 5px; }
.dashboard-section { background-color: transparent; }

/* styles for landing page - analysis mode */
.hero-unit { margin: 20px 0 30px; }
.hero-unit > .close { font-size:40px; }
.hero-actions { margin-top: 30px; }

/* styles for landing page - build mode */
.hero-unit p { line-height: 25px; }
.hero-unit p, .hero-unit .btn-large { margin-top: 15px; }
.hero-unit ul { margin-top: 20px; }
.hero-unit li { line-height: 30px; }
.hero-unit img { background-color: #eee; margin-top: 15px; }

/* make tables Chrome-happy (me, not so much) */
table { table-layout: fixed; word-wrap: break-word; }

/* styles for the new build button */
.new-build .btn-primary { padding: 4px 30px; }
.new-build .alert { margin-top: 10px; }
.new-build .alert p { margin-top: 10px; }

/* styles for showing the project name in build mode */
.project-name { padding-top: 0; }
.project-name .label { font-weight: normal; margin-bottom: 5px; margin-left: -15px; padding: 5px; }
.project-name .label > a { color: #fff; font-weight: normal; }

/* Remove bottom margin for forms inside modal dialogs */
#dependencies-modal-form { margin-bottom: 0px; }

/* Configuration styles */
.icon-trash { color: #B94A48; font-size: 16px; padding-left: 5px; }
.icon-trash:hover { color: #943A38; text-decoration: none; cursor: pointer; }
.icon-pencil, .icon-download-alt, .icon-refresh, .icon-star-empty, .icon-star  { font-size: 16px; color: #0088CC; padding-left: 2px; }
.icon-pencil:hover, .icon-download-alt:hover, .icon-refresh:hover, .icon-star-empty:hover, .icon-star:hover, .icon-tasks:hover { color: #005580; text-decoration: none; cursor: pointer; }
.icon-share { padding-left: 2px; }
.alert-success .icon-refresh, .alert-success .icon-tasks { color: #468847; }
.alert-success .icon-refresh:hover, .alert-success .icon-tasks:hover { color: #347132; }
.alert-error .icon-refresh, .alert-error .icon-tasks { color: #b94a48; }
.alert-error .icon-refresh:hover, .alert-error .icon-tasks:hover { color: #943A38; }
.configuration-list li, .configuration-list label { line-height: 35px; font-size: 21px; font-weight: 200; margin-bottom: 0px;}
.configuration-list { font-size: 16px; margin-bottom: 1.5em; }
.configuration-list i { font-size: 16px; }
/*.configuration-layers { height: 135px; overflow: scroll; }*/
.counter { font-weight: normal; }
.well-alert { background-color: #FCF8E3; border: 1px solid #FBEED5; border-radius: 4px; }
.well-alert > .lead { color: #C09853; padding-bottom: .75em; }
.configuration-alert { margin-bottom: 0px; padding: 8px 14px; }
.configuration-alert p { margin-bottom: 0px; }
.project-form { margin-top: 10px; }
.add-layers .btn-block + .btn-block, .build .btn-block + .btn-block { margin-top: 0px; }
input.huge { font-size: 17.5px; padding: 11px 19px; }
.build-form { margin-bottom: 0px; }
.build-form .input-append { margin-bottom: 0px; }
.build-form .btn-large { padding: 11px 35px; }
.build-form p { font-size:17.5px ;margin:12px 0 0 10px;}
#layer-container form, #target-container form { margin-bottom: 0px; }
.btn-primary .icon-question-sign, .btn-danger .icon-question-sign { color: #fff; }
.btn-primary .icon-question-sign:hover, .btn-danger .icon-question-sign:hover { color: #999; }
a code { color: #0088CC; }
a code:hover { color: #005580; }
.localconf { font-size: 17.5px; margin-top: 40px; }
.localconf code { font-size: 17.5px; }
#add-layer-dependencies {  margin-top: 5px; }
.link-action { font-size: 17.5px; margin-top: 40px; }
.link-action code { font-size: 17.5px; }
.artifact { width: 9em; }
.control-group { margin-bottom: 0px; }
#project-details form { margin: 0px; }
dd form { margin: 10px 0 0 0; }
dl textarea { resize: vertical; }
.navbar-fixed-top {  z-index: 1; }
.popover { z-index: 2; }
.btn-danger .icon-trash { color: #fff; }
.bbappends { list-style-type: none; margin-left: 0; }
.bbappends li { line-height: 25px; }
.configuration-list input[type="checkbox"] { margin-top:13px;margin-right:10px; }
.alert input[type="checkbox"] { margin-top: 0px; margin-right: 3px; }
.alert ol { padding: 10px 0px 0px 20px; }
.alert ol > li { line-height: 35px; }
.dl-vertical form { margin-top: 10px; }
.scrolling { border: 1px solid #dddddd; height: 154px; overflow: auto; padding: 8px; width: 27.5%; margin-bottom: 10px; }
.lead .help-block { font-size: 14px; line-height: 20px; font-weight: normal; }
.button-place  .btn { margin: 0 0 20px 0; }
.tooltip-inner { max-width: 250px; }
.new-build { padding: 20px; }
.new-build li { line-height: 30px; }
.new-build li .alert { line-height: 20px; width: 200px; white-space: normal; }
.new-build h6 { margin: 10px 0 0 0; color: #5a5a5a; }
.new-build h3 { margin: 0; color: #5a5a5a; }
.new-build form { margin: 5px 0 0; }
.new-build .input-append { margin-bottom: 0; }
#build-selected { margin-top: 15px; }
div.add-deps { margin-top: 15px; }
.btn.log { margin-left: 20px; }


.animate-repeat {
  list-style:none;
  box-sizing:border-box;
}

.animate-repeat.ng-move,
.animate-repeat.ng-enter,
.animate-repeat.ng-leave {
  -webkit-transition:all linear 0.5s;
  transition:all linear 0.5s;
}

.animate-repeat.ng-leave.ng-leave-active,
.animate-repeat.ng-move,
.animate-repeat.ng-enter {
  opacity:0;
}

.animate-repeat.ng-leave,
.animate-repeat.ng-enter.ng-enter-active {
  opacity:1;
}

.tab-pane table { margin-top: 10px; }

thead .description, .get_description_or_summary { width: 364px; }
thead .add-del-layers { width: 124px; }

#loading-notification {
  position: fixed;
  z-index: 101;
  top: 3%;
  left: 40%;
  right: 40%;
  -webkit-box-shadow: 0 0 10px #c09853;
  -moz-box-shadow: 0 0 10px #c09853;
  box-shadow: 0 0 10px #c09853;
}

#change-notification {
  position: fixed;
  z-index: 101;
  top: 3%;
  left: 20%;
  right: 20%;
  -webkit-box-shadow: 0 0 10px #3a87ad;
  -moz-box-shadow: 0 0 10px #3a87ad;
  box-shadow: 0 0 10px #3a87ad;
}

/* Copied in from newer version of Font-Awesome 4.3.0 */
.fa-spin {
  -webkit-animation: fa-spin 2s infinite linear;
  animation: fa-spin 2s infinite linear;
  display: inline-block;
}
.fa-pulse {
  -webkit-animation: fa-spin 1s infinite steps(8);
  animation: fa-spin 1s infinite steps(8);
  display: inline-block;
}

@-webkit-keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}

@keyframes fa-spin {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(359deg);
    -moz-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
/* End copied in from newer version of Font-Awesome 4.3.0 */

.top-padded {
  padding-top: 60px;
}

input.input-lg {
  font-size: 18px;
  height: 22px;
  line-height: 1.33333;
  padding: 10px 16px;
}
