---
---

/*
 * Additional styling for sphinc doc pages
 */

@import 'colors';
@import 'pygments-light';
@import 'sphinx-basic';

$menu-main-background: $green;
$menu-main-color: $white;
$menu-main-hover-color: $yellow;

$menu-selected-background: #e2e2e2;
$menu-selected-color: $gray;
$menu-selected-hover-color: $dark-green;

/* Documentation menu navigation */

.doc-navigation {

  button.navbar-toggle {
    border-color: #000;
  }

  .icon-bar {
    background-color: #000;
  }
}

.doc-navigation.fixed-navigation {
  margin-top: 10px;
}

@media (max-width: 991px) {
  .doc-navigation {
    .collapse {
      display: none!important;
    }

    .navbar-toggle {
      display: block;
    }

    .navbar-header {
        float: none;
    }

    .collapsing {
        overflow: hidden!important;
    }

    .navbar-collapse.collapse.in {
        display: block!important;
    }
  }
}

@media (min-width: 991px) {

  .doc-navigation {

    margin-top: 40px;
    background-color: $menu-main-background;
    max-width: 350px;
    z-index: 200;
    overflow-x: hidden;
    overflow-y: hidden;
    padding-top: 10px;
    padding-bottom: 10px;
    border-radius: 8px;

    .nav {
      padding-top: 10px;
      padding-bottom: 10px;
    }

    .navbar-collapse {
      padding: 0;
      max-height: none;
    }

    #doc-search-form {
      text-align: center;
      margin-bottom: 20px;

      input {
        border-radius: 30px;
        width: 100%;
      }
    }

    ul {
      padding-left: 0;
      float: none;
    }

    ul:not {
      display: block;
    }

    li {
      list-style-type: none;
    }

    li.toctree-l1 {
      padding-top: 2px;
      padding-bottom: 2px;

      a {
        color: $menu-main-color;
        padding-top: 2px;
        padding-bottom: 2px;
        margin: 0;
        display: block;
        padding-left: 10px;
        padding-right: 10px;

        &:hover {
          color: $menu-main-hover-color;
          text-decoration: none;
        }
      }
    }

    li.toctree-l1.current {
      background-color: $menu-selected-background;
      border-top: 1px solid $darkish-green;
      border-bottom: 1px solid $darkish-green;

      > a {
        color: $menu-selected-color;

        &:hover {
          color: $menu-selected-hover-color;
          text-decoration: none;
        }
      }
    }

    li.toctree-l2 {
      a {
        color: $menu-selected-color;
        margin-left: 10px;
        font-size: 96%;
        //border-left: 1px solid #99c65d;
        &:hover {
          color: $menu-selected-hover-color;
        }
      }
    }

    li.toctree-l3 {
      margin: 0;

      a {
        padding-left: 30px;
        color: $menu-selected-color;
        font-size: 95%;
      }
    }
  }
}

ul.search li {
    background-image: none;
}

.doc-prev-next-links {
  margin-top: 40px;
}

/* -- admonitions ----------------------------------------------------------- */

div.admonition {

    border: 1px solid transparent;
    border-radius: 4px;
    box-shadow: 0 1px 1px rgba(0,0,0,.05);
    -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);

    margin: 20px 10px;
    padding: 0;

    dt {
      font-weight: bold;
    }

    dl {
      margin-bottom: 0;
    }

    p {
      padding: 15px;
    }

    p.admonition-title {
      padding: 10px 15px;
      font-weight: bold;
      border-bottom: 1px solid transparent;
    }
}

.admonition.admonition-todo {
  border-color: #337ab7;

  .admonition-title {
    color: #fff;
    border-color: #337ab7;
    background-color: #337ab7;
  }
}

.admonition.warning {
  border-color: #ebccd1;

  .admonition-title {
    color: #a94442;
    border-color: #ebccd1;
    background-color: #f2d2d2;
  }
}

.admonition.note, .admonition.hint {
  border-color: #d6e9c6;

  .admonition-title {
    color: #3c763d;
    border-color: #d6e9c6;
    background-color: #dff0d8;
  }
}

/* -- tables ---------------------------------------------------------------- */

table.docutils {
    margin: 20px 0px 30px 20px;

    td, th {
      border:0;
    }

    thead {
      background-color: #ddd;
      border-top: 1px solid #aaa;
      border-bottom: 1px solid #aaa;
    }

    tbody {
      border-bottom: 1px solid #aaa;
    }
}
