/*
 * BOOTSTRAP OVERRIDES
 */

.navbar {
  border: 0;
}

.navbar.navbar-inverse {
  background-color: #2A6496;
  color: #FFF;
}

.navbar .navbar-nav > li > a {
  color: inherit;
}

.navbar .navbar-nav > .active > a,
.navbar .navbar-nav > .active > a:focus,
.navbar .navbar-nav > .active > a:hover {
    color: inherit;
    background-color: rgba(255,255,255,.1);
}

.navbar-brand {
  padding: 0px 5px;
}

.navbar-brand > img {
  height: 100%;
}

.table thead th {
  vertical-align: top;
}

.breadcrumb > li + li:before {
  /* Default content includes a space after the slash, which spreads breadcrumbs
   * out too much. Remove the trailing space here.
   */
  content: "/";
}

/*
 * /BOOTSTRAP OVERRIDES
 */


body {
  /* Add space for fixed position navbar. */
  padding-top: 60px;
}

dl.inline dt, dl.inline dd {
  float: left;
}

dl.inline dd {
  margin-left: 5px;
}

dl.inline dd + dt, dl.inline dd + dd {
  clear: left;
}

dl.inline dd + dd {
  float: none;
}

dl.inline dt {
  font-weight: bold
}

th.descending:after {
  padding-left: 5px;
  content: "▼";
}

th.ascending:after {
  padding-left: 5px;
  content: "▲";
}

th.unselected:after {
  padding-left: 5px;
  content: "　";
}

time {
  border-bottom: 1px #999 dashed;
}

time:hover {
  cursor: pointer;
}

.inline .btn-toggle,
.table-condensed .btn-toggle {
  margin-bottom: -2px;
  margin-top: -5px;
  visibility: hidden;
}

dd:hover .btn-toggle,
td:hover .btn-toggle {
  visibility: visible;
}

.clipboard-is-hover {
  background-color: #e6e6e6;
  background-position: 0 -15px;
}

.badge-type {
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  font-weight: normal;
  padding-left: 4px;
  padding-right: 4px;
  text-shadow: none;
}

a.badge-type:hover {
  text-decoration: underline;
}

.table .text-right {
  text-align: right;
}

.well .inline:first-child {
  margin-top: 0;
}

.well .inline:last-child,
.well .table:last-child {
  margin-bottom: 0;
}

/* Force pointer cursor for anchors generated by Angular UI's pagination
 * directive. The links are generated without "href" attributes, which means
 * they don't match "a:link" and won't get the pointer cursor by default.
 */
.pagination a {
  cursor: pointer;
}

.input-group-header {
  margin-top: 20px;
}

.input-group-addon {
  -webkit-transition: background-color 0.25s, color 0.25s;
  transition: background-color 0.25s, color 0.25s;
}

.input-group-addon-success {
  background-color: #EFFFF0;
  color: #3C763D;
}

.input-group-inner-right {
  position: absolute;
  right: 1px;
  padding: 4px 10px;
  top: 1px;
}

.btn-clear {
  background: transparent;
}

.btn-clear:active {
  -webkit-box-shadow: none;
  box-shadow: none;
}

/*
 * The `hidden-text` class hides text by making the font size 0.
 * This can be used, for example, to insert text that will be
 * added when the user highlights and copies, while leaving
 * the text hidden from the user.
 */
.hidden-text {
  font-size: 0;
}
