/* ==========================================================================
   Author's custom styles
   ========================================================================== */

body #content {
  line-height: 1.6; /* Inspired by Github's wiki style */
}

.navbar-inverse{
  background-color: #103a51;
  border-color: #080808;
}

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

.navbar-inverse .navbar-brand {
  color: #ededed;
}

.navbar-inverse .navbar-nav>li>a {
  color: #ededed;
}

.title {
  font-size: 32px;
}

h1 {
  font-size: 24px;
  margin-top: 20px;
}

h2 {
  font-size: 20px;
  margin-top: 18px;
}

h3 {
  font-size: 16px;
  margin-top: 16px;
}

.container {
  max-width: 960px;
}

.dropdown-menu {
  /* Remove the default 2px top margin which causes a small
    gap between the hover trigger area and the popup menu */
  margin-top: 0;
  /* Avoid too much whitespace at the right for shorter menu items */
  min-width: 50px;
}

a.menu:after, .dropdown-toggle:after {
  content: none;
}


/**
 * Made the navigation bar buttons not grey out when clicked.
 * Essentially making nav bar buttons not react to clicks, only hover events.
 */
.navbar .nav li.dropdown:hover,
.navbar .nav li.dropdown.open > .dropdown-toggle {
  background-color: #052c46;
}

/**
 * Made the active tab caption blue. Otherwise the active tab is black, and inactive tab is blue.
 * That looks weird. Changed the colors to active - blue, inactive - black, and
 * no color change on hover.
 */
.nav-tabs > .active > a, .nav-tabs > .active > a:hover {
  color: #08c;
}

.nav-tabs > li > a, .nav-tabs > li > a:hover {
  color: #333;
}

/**
 * MathJax (embedded latex formulas)
 */
.MathJax .mo { color: inherit }
.MathJax .mi { color: inherit }
.MathJax .mf { color: inherit }
.MathJax .mh { color: inherit }

/**
 * AnchorJS (anchor links when hovering over headers)
 */
a.anchorjs-link:hover { text-decoration: none; }

/**
 * Dashboard Look And Feel Adjustments
 */
* {
  font-family: roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;
}

pre, pre > *,
code, code > * {
  font-family: "roboto mono",monaco,consolas,menlo,"Lucida Console",monospace;
  font-size: 12px;
  font-weight: 400 !important;
  line-height: 165%;
}

img {
  max-width: 100%;
}

/** 
 * Fork on GitHub Ribbon
 */
.ribbon {
  position: absolute;
  top: 0;
  right: 0;
  border: 0;
}

table {
  padding: 10px 10px 10px 10px;
}
