//
// Navbars
// --------------------------------------------------

// Wrapper and base class
.navbar {
  position: relative;
  padding: 10px 15px;
  background-color: @navbar-bg;
  border-radius: @border-radius-base;
  // Prevent floats from breaking the navbar
  .clearfix();
}

// Navbar nav links
// -------------------------

.navbar {
  .nav {
    // space out from .navbar .brand and .btn-navbar
    margin-top: 15px;
  }
  .nav > li > a {
    padding-top: ((@navbar-height - @line-height-base) / 2);
    padding-bottom: ((@navbar-height - @line-height-base) / 2);
    color: @navbar-link-color;
    line-height: 20px;
  }
  .nav > li > a:hover,
  .nav > li > a:focus {
    color: @navbar-link-hover-color;
    background-color: @navbar-link-hover-bg;
  }
  .nav > .active > a,
  .nav > .active > a:hover,
  .nav > .active > a:focus {
    color: @navbar-link-active-color;
    background-color: @navbar-link-active-bg;
  }
  .nav > .disabled > a,
  .nav > .disabled > a:hover,
  .nav > .disabled > a:focus {
    color: @navbar-link-disabled-color;
    background-color: @navbar-link-disabled-bg;
  }
}



//
// Navbar alignment options
// --------------------------------------------------

// Static navbar
.navbar-static-top {
  border-radius: 0;
}

// Fix the top/bottom navbars when screen real estate supports it
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: @zindex-navbar-fixed;
  border-radius: 0;
}
.navbar-fixed-top    { top: 0; }
.navbar-fixed-bottom { bottom: 0; }



//
// Navbar optional components
// --------------------------------------------------

// Brand/project name
.navbar-brand {
  display: block;
  max-width: 200px;
  margin-left: auto;
  margin-right: auto;
  padding: 7px 15px;
  font-size: 18px;
  font-weight: 500;
  line-height: @line-height-base;
  color: @navbar-brand-color;
  text-align: center;
  &:hover,
  &:focus {
    color: @navbar-brand-hover-color;
    text-decoration: none;
    background-color: @navbar-brand-hover-bg;
  }
}

// Collapsible navbar toggle
.navbar-toggle {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 8px 12px;
  background-color: transparent;
  border: 1px solid #ddd;
  border-radius: 4px;

  &:hover,
  &:focus {
    background-color: #ddd;
  }

  // Bars
  .icon-bar {
    display: block;
    width: 22px;
    height: 2px;
    background-color: #ccc;
    border-radius: 1px;
  }
  .icon-bar + .icon-bar {
    margin-top: 4px;
  }
}

// Dividers in navbar
.navbar .nav > .divider {
  .nav-divider(darken(@navbar-bg, 5%), lighten(@navbar-bg, 5%));
}

// Navbar form
.navbar-form {
  .navbar-vertical-align(34px); // Vertically center in navbar
}

// Dropdown menus

// Menu position and menu carets
.navbar .nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
// Menu position and menu caret support for dropups via extra dropup class
.navbar-fixed-bottom .nav > li > .dropdown-menu {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

// Dropdown menu items and carets
.navbar .nav {
  // Caret should match text color on hover
  li.dropdown > a:hover .caret,
  li.dropdown > a:focus .caret {
    border-top-color: @navbar-link-hover-color;
    border-bottom-color: @navbar-link-hover-color;
  }

  // Remove background color from open dropdown
  li.dropdown.open > .dropdown-toggle,
  li.dropdown.active > .dropdown-toggle,
  li.dropdown.open.active > .dropdown-toggle {
    background-color: @navbar-link-active-bg;
    color: @navbar-link-active-color;
  }
  li.dropdown > .dropdown-toggle .caret {
    border-top-color: @navbar-link-color;
    border-bottom-color: @navbar-link-color;
  }
  li.dropdown.open > .dropdown-toggle .caret,
  li.dropdown.active > .dropdown-toggle .caret,
  li.dropdown.open.active > .dropdown-toggle .caret {
    border-top-color: @navbar-link-active-color;
    border-bottom-color: @navbar-link-active-color;
  }
}

// Right aligned menus need alt position
.navbar .pull-right > li > .dropdown-menu,
.navbar .nav > li > .dropdown-menu.pull-right {
  left: auto;
  right: 0;
}



// Inverse navbar
// --------------------------------------------------

.navbar-inverse {
  background-color: @navbar-inverse-bg;

  .navbar-brand {
    color: @navbar-inverse-brand-color;
    &:hover,
    &:focus {
      color: @navbar-inverse-brand-hover-color;
      background-color: @navbar-inverse-brand-hover-bg;
    }
  }

  .navbar-text {
    color: @navbar-inverse-text;
  }

  .nav > li > a {
    color: @navbar-inverse-link-color;
  }
  .nav > li > a:hover,
  .nav > li > a:focus {
    color: @navbar-inverse-link-hover-color;
    background-color: @navbar-inverse-link-hover-bg;
  }
  .nav > .active > a,
  .nav > .active > a:hover,
  .nav > .active > a:focus {
    color: @navbar-inverse-link-active-color;
    background-color: @navbar-inverse-link-active-bg;
  }
  .nav > .disabled > a,
  .nav > .disabled > a:hover,
  .nav > .disabled > a:focus {
    color: @navbar-inverse-link-disabled-color;
    background-color: @navbar-inverse-link-disabled-bg;
  }

  // Darken the responsive nav toggle
  .navbar-toggle {
    border-color: #333;
    &:hover,
    &:focus {
      background-color: #333;
    }
    .icon-bar {
      background-color: #fff;
    }
  }

  // Darken dividers
  .nav > .divider {
    background-color: darken(@navbar-inverse-bg, 5%);
    border-bottom-color: lighten(@navbar-inverse-bg, 5%);
  }

  // Dropdowns
  .nav li.dropdown.open > .dropdown-toggle,
  .nav li.dropdown.active > .dropdown-toggle,
  .nav li.dropdown.open.active > .dropdown-toggle {
    background-color: @navbar-inverse-link-active-bg;
    color: @navbar-inverse-link-active-color;
  }
  .nav li.dropdown > a:hover .caret {
    border-top-color: @navbar-inverse-link-hover-color;
    border-bottom-color: @navbar-inverse-link-hover-color;
  }
  .nav li.dropdown > .dropdown-toggle .caret {
    border-top-color: @navbar-inverse-link-color;
    border-bottom-color: @navbar-inverse-link-color;
  }
  .nav li.dropdown.open > .dropdown-toggle .caret,
  .nav li.dropdown.active > .dropdown-toggle .caret,
  .nav li.dropdown.open.active > .dropdown-toggle .caret {
    border-top-color: @navbar-inverse-link-active-color;
    border-bottom-color: @navbar-inverse-link-active-color;
  }
}



// Inverse navbar
// --------------------------------------------------

@media screen and (min-width: 768px) {
  .navbar {
    padding-top: 0;
    padding-bottom: 0;
  }
  .navbar-brand {
    float: left;
    padding-top: ((@navbar-height - @line-height-base) / 2);
    padding-bottom: ((@navbar-height - @line-height-base) / 2);
    margin-left: -10px;
  }
  .navbar .nav {
    float: left;
    margin-top: 0; // undo top margin to make nav extend full height of navbar
    .clearfix();

    &.pull-right {
      float: right;
    }
  }
  .navbar .nav > li {
    float: left;
  }

  // Dividers go vertical
  // Change the height and height, disable bottom border, then add right border
  .navbar .nav > .divider {
    width: 1px;
    height: (@navbar-height * .6);
    margin: (@navbar-height * .2) 9px;
    border-bottom: 0;
    border-right: 1px solid lighten(@navbar-bg, 5%);
  }
  // Since we override the border, we need to specify it again for inverted navbars
  .navbar-inverse .nav > .divider {
    border-right-color: lighten(@navbar-inverse-bg, 5%);
  }

  .navbar-fixed-left {
    padding-left: 0;
    padding-right: 0;
  }
  .navbar-fixed-left .navbar-brand,
  .navbar-fixed-left .nav,
  .navbar-fixed-left .nav > li {
    float: none;
  }

  // Required to make the collapsing navbar work on regular desktops
  .navbar-toggle {
    position: relative;
    top: auto;
    left: auto;
    display: none;
  }
  .nav-collapse.collapse {
    height: auto !important;
    overflow: visible !important;
  }

}

/*

// Janky solution for now to account for links outside the .nav
// -------------------------
.navbar-link {
  color: @navbar-link-color;
  &:hover {
    color: @navbar-link-hover-color;
  }
}

// Buttons in navbar
// -------------------------
.navbar .btn,
.navbar .btn-group {
  .navbarVerticalAlign(30px); // Vertically center in navbar
}
.navbar .btn-group .btn,
.navbar .input-prepend .btn,
.navbar .input-append .btn {
  margin-top: 0; // then undo the margin here so we don't accidentally double it
}

// Navbar forms
// -------------------------
.navbar-form {
  margin-bottom: 0; // remove default bottom margin
  .clearfix();
  input,
  select,
  .radio,
  .checkbox {
    .navbarVerticalAlign(30px); // Vertically center in navbar
  }
  input,
  select,
  .btn {
    display: inline-block;
    margin-bottom: 0;
  }
  input[type="image"],
  input[type="checkbox"],
  input[type="radio"] {
    margin-top: 3px;
  }
  .input-append,
  .input-prepend {
    margin-top: 5px;
    white-space: nowrap; // preven two  items from separating within a .navbar-form that has .pull-left
    input {
      margin-top: 0; // remove the margin on top since it's on the parent
    }
  }
}

*/
