/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

html {
  font-size: $font-size-root;
}

button, input, optgroup, select, textarea {
  // overwrite _normalize.scss
  font-family: $font-family-sans-serif;
}

// header styling
tobago-header.sticky-top {
  padding: 0;
  vertical-align: middle;
  margin-bottom: 1em;
  line-height: $header-height;

  .navbar {
    padding-top: 0;
    padding-bottom: 0;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
  }

  .form-group {
    margin-bottom: 0;
  }

  .tobago-link > i.fa {
    font-size: 1.345em;
    margin-right: 0.5rem;
  }

  button.tobago-link.dropdown-item {
    color: theme-color("primary");
    background-color: transparent;

    &:active {
      color: $navbar-light-active-color;
    }

    &:hover, &:focus {
      color: $navbar-light-hover-color;
    }
  }

  .tobago-dropdown-submenu.dropdown-item {
    background-color: transparent;
  }

  .nav-link {
    padding-top: 0;
    padding-bottom: 0;
  }

  .nav-item {
    font-size: 1.16em;
    float: left;
  }

  a, button {
    &.tobago-link:not(.dropdown-item) {
      color: theme-color("primary");
      text-decoration: none;

      &:hover, &:focus {
        color: $navbar-light-hover-color;
        cursor: pointer;
        text-decoration: none;
      }
    }
  }
}

button {
  &.tobago-link {
    font-family: $font-family-base;

    > span {
      position: relative;
    }
  }

  &.tobago-link, &.tobago-command {
    color: $link-color;
    text-decoration: none;

    &:focus, &:hover {
      color: $link-hover-color;
      text-decoration: none;
    }
  }
}

.btn:focus {
  box-shadow: none;
}

.btn-primary:active:hover, .btn-primary:active:focus {
  background-color: $btn-primary-active-hover-background-color;
  border-color: $btn-primary-active-hover-border-color;
}

.btn-secondary:active:hover, .btn-secondary:active:focus {
  background-color: $btn-secondary-active-hover-background-color;
  border-color: $btn-secondary-active-hover-border-color;
}

.btn-info {
  color: $white;
}

td button {
  &.tobago-link, &.tobago-command {
    padding-top: 5px;
    margin-bottom: 12px;
  }
}

.form-group {
  ~ a.tobago-link {
    padding-top: 0.46em;
    margin-bottom: 0;
  }

  ~ button.tobago-link {
    margin-bottom: 1rem;
  }
}

tobago-header.sticky-top {
  a[disabled], a[disabled]:hover, button[disabled], button[disabled]:hover {
    color: $gray-600 !important;
  }
}

.navbar-light {
  background-color: $gray-300;

  .navbar-brand {
    color: theme-color("primary");
  }
}

.tobago-bar.navbar-light .navbar-brand > .tobago-link {
  color: theme-color("primary");

}

.navbar-brand {
  font-size: 1.16em;
  font-weight: bold;
  padding-top: 0;
  padding-bottom: 0;

  > a.tobago-link > span {
    white-space: nowrap;
  }

  button.tobago-link {
    font-weight: bold;
  }
}

.navbar {
  .nav-item.dropdown > .dropdown-menu, .tobago-dropdown-submenu > .dropdown-menu {
    border: 0;
    background: $gray-200;
    margin-top: 0;
    margin-left: 0;
  }

  .dropdown-item {
    color: theme-color("primary");
    font-size: 1.1em;

    &:focus, &:hover {
      background: $gray-200;
      color: $orange;
    }
  }
}

/** collapsed menu */
@media (max-width: 991px) {
  tobago-header.sticky-top .navbar-collapse.collapse.show {
    line-height: $header-height-collapsed;
    padding: $spacer 0;
  }
}

/* expanded menu */
@media (min-width: 992px) {

  .sidebar {
    display: none;

    a.nav-link {
      padding-top: 0;
      padding-bottom: 0;
      padding-right: 0;
    }

    &.show, .show {
      display: inline;
    }

    > ul {
      visibility: hidden;
      opacity: 0;
      transition: visibility 0s 0.2s, opacity 0.2s ease;
      padding: 10px;
      position: fixed;
      max-width: 200px;
      right: 0px;
      background-color: white;
      box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, 0.1);
      margin-top: 2em;
      z-index: 2000;
    }

    ul {
      display: none;
    }

    > ul.showhide {
      visibility: visible;
      transition: visibility 0s 0s, opacity 0.2s ease;
      opacity: 1;
    }
  }
  * {
    outline: none !important;
  }
  .sidebar {
    ul > li:hover > ul {
      display: inline !important;
    }

    .nav .dropdown-item {
      /* Custom sidemenu styling */
      display: inline;
      font-size: small;
      color: #788c94;
    }

    a:focus {
      color: #788c94;
    }

    .active.dropdown-item {
      background-color: transparent;
    }

    .active.dropdown-item, .nav .dropdown-item {
      &:focus, &:hover {
        background-color: transparent;
      }
    }

    li {
      a.active {
        padding-left: 3px !important;
        border-left: 2px solid $darkgreen !important;
        color: $darkgreen !important;
      }

      li a.active {
        padding-left: 18px !important;
      }

      li li a.active {
        padding-left: 38px !important;
      }

      a {
        padding-left: 5px;

        &:hover {
          padding-left: 4px;
          border-left: 1px solid $darkgreen;
          color: $darkgreen !important;
        }
      }

      li li a:hover {
        padding-left: 39px;
      }

      li a:hover {
        padding-left: 19px;
      }

      li a {
        padding-left: 20px;
      }

      li li a {
        padding-left: 40px;
      }
    }
  }

  #blur {
    background-color: rgba(240, 240, 240, 0.5);
    width: 100%;
    height: 100%;
    z-index: 999;
    display: none;
    top: 0px;
    left: 0px;
    position: fixed;

    &.blur {
      display: block;
    }
  }
  .nav .dropdown-item:focus {
    color: $darkgreen;
  }
  .collapse.navbar-collapse > ul > li > span > ul > li > span > a {
    color: $darkgreen !important;
    cursor: default;
  }
  html.opendd {
    overflow: hidden;
  }
  body.opendd {
    position: fixed;
  }

  .navbar-collapsed-top-tools, .navbar-collapsed-bottom-tools {
    display: none;
  }

  tobago-header.sticky-top {
    .open {
      background-image: url('../image/top_menu_active.png');
      background-repeat: no-repeat;
      background-position: 50% 70px;
    }

    .navbar {
      .navbar-toggler {
        display: none;
      }

      .navbar-nav {
        flex-direction: row;
      }
    }

    .nav-item.dropdown {

      > button.dropdown-toggle {
        padding-top: 0px;
        padding-bottom: 0px;
        color: $darkgreen;
        text-decoration: none;

        &:hover, &:focus {
          color: $navbar-light-hover-color;
        }
      }

      > .dropdown-menu {
        position: fixed;
        width: 100%;
        top: auto;
        top: initial;
        left: 0;
        line-height: normal;
        line-height: initial;
        padding: 0 10% 1em 10%;

        > .dropdown-item {
          display: inline-block;
          font-size: 1.3em;
          width: calc(25% - 3px);
          min-width: 250px;
          vertical-align: top;
          padding-top: 1em;

          > a, > button {
            margin-bottom: 0.5em;
          }
        }
      }
    }

    .navbar-nav > .nav-item.dropdown > .dropdown-toggle {
      padding-left: 22px;
      padding-right: .5rem;

      &::before {
        content: "\F107";
        font-family: FontAwesome;
        left: -5px;
        position: absolute;
        top: 0;
        margin-left: 10px;
      }
    }

    .tobago-dropdown-submenu {
      &.dropdown-item {
        display: block;

        > .dropdown-menu {
          display: block;
          border-radius: 0;
          position: static;
          float: none;
          padding: 0;

          .dropdown-item {
            padding-left: 0;

            &::before {
              content: "> ";
              position: relative;
              vertical-align: top;
            }
          }

          .custom-radio, .custom-checkbox {
            > .dropdown-item {
              padding-left: 1.5rem;

              &::before {
                content: "";
                position: absolute;
                margin-left: -1.5rem;
              }

              &::after {
                left: 0;
              }
            }
          }
        }
      }

      &::after {
        content: none;
      }
    }
  }

  .dropdown-item .nav-link {
    display: inline-block;
  }
}

.nav-item > .dropdown > button {
  &.tobago-link, &.tobago-command {
    padding-top: 0px;
    padding-bottom: 0px;
  }
}

.navbar-nav {

  .dropdown-toggle {
    // overwrite default toggle
    &::after {
      display: inline-block;
      width: 0;
      height: 0;
      margin-right: 0;
      margin-left: 0;
      vertical-align: middle;
      content: "";
      border-top: 0;
      border-right: 0;
      border-left: 0;
    }

    // Prevent the focus on the dropdown toggle when closing dropdowns
    &:focus {
      outline: 0;
    }

  }

  .nav-item {
    float: none;
    display: inline;
  }

}

h1, h2, h3, h4, h5, h6 {
  font-weight: 300;
}

p, .control-label {
  hyphens: auto;
}

// Badge
.badge-pill {
  border-radius: 10rem;
}

// Tabs
.nav-tabs {
  background-color: $gray-300;

  .nav-item {
    border-right: 1px solid white;

    .nav-link {
      color: $darkgreen;

      &:hover {
        color: $orange;
        cursor: pointer;
      }
    }

    .nav-link.active {
      background-color: white;
    }
  }

  .nav-item .nav-link.disabled {
    background-color: $gray-100;
    color: $gray-300;
    cursor: default;
  }
}

.card-body {
  .nav-tabs {
    border-left: 1px solid $gray-300;
  }

  .tab-content {
    margin-top: 1.5em;
    padding: 0;
  }
}

tobago-tab-group.card {
  border: 0;

  > .card-header {
    padding-top: 0;
    padding-left: 0.5rem;
    padding-right: 0.6rem;
    border-bottom: 0;
  }
}

tobago-tab {
  margin-left: 0.2rem;
}

tobago-tab-group .nav-tabs .nav-item {
  .nav-link {
    color: $darkgreen;

    &:hover {
      color: $orange;
    }
  }

  .nav-link.active:hover {
    color: $darkgreen;
  }

  .nav-link.disabled {
    color: $gray-300;

    &:hover {
      color: $gray-300;
    }
  }
}

tobago-tab .nav-link:not([href]):not([tabindex]):not(.active):not(.disabled) {
  /* fix style form standard theme */
  color: $darkgreen;

  &:hover {
    color: $orange;
  }
}

tobago-tab.tobago-bar {
  .nav-link.disabled + div {
    background-color: $gray-100;
  }
}

/* padding: 0.1px = hack! Padding '0' would be remove margin-bottom from .form-group */
.tab-content {
  background-color: white;
  padding: 1.25rem 1.25rem 0.1px 1.25rem;
  border-width: 0;
}

.nav-tabs .nav-item + .nav-item {
  margin-left: 0;
}

.tobago-box-header {
  h3 {
    display: inline;
  }

  > .navbar, > tobago-links {
    float: right;

    .nav-item > .tobago-link {
      padding: 0 .5rem;
    }
  }

  .navbar {
    .navbar-toggler {
      display: none;
    }

    .navbar-collapse.collapse {
      display: flex;
      flex-basis: auto;
      position: static;
      width: auto;

      .tobago-links.navbar-nav {
        flex-direction: row;
        position: static;
        width: auto;
        background-color: transparent;

        .nav-item {
          border: 0;
        }
      }
    }
  }
}

.tobago-box, tobago-tab-group {
  .tobago-box {
    .tobago-box-header {
      // second level boxes
      h3 {
        float: left;
      }
    }

    .card-body {
      .tobago-in-markup-disabled {
        border-color: $input-border-color;
      }
    }
  }
}

.table {
  .checkbox {
    margin-bottom: initial;
    margin-bottom: auto;
  }

  select[disabled] {
    margin-left: -4px;
  }

  .btn[disabled] {
    display: none;
  }
}

a, button.tobago-link, button.tobago-command {
  &[disabled] {
    color: $gray-300;
  }
}

select[disabled] {
  text-indent: 0.01px;
  text-overflow: '';
  appearance: none;
}

input.form-control {
  border-radius: 0;
}

.input-group-btn {
  .btn {
    box-shadow: none;
    margin-bottom: 0;
    padding: $input-btn-padding-y $input-btn-padding-x;
  }

  > .form-control {
    flex-direction: row;
  }
}

.input-group-addon {
  .btn {
    margin: 0;
    box-shadow: none;
  }

  > .form-group {
    margin-bottom: 0;
  }

  .form-control-static {
    padding-top: 0; // for tc:out
  }
}

.tobago-flexLayout > .mce-container {
  // identical width for tinymce / textarea
  margin-left: 3px;
  margin-right: 3px;
}

td .form-group {
  margin-bottom: 0
}

li:last-child {
  margin-bottom: 0;
}

.form-group {
  ol, ul, dl {
    margin-bottom: 0;
  }
}

.btn:not(.badge) {
  padding: $btn-padding-y $btn-padding-x;
  box-shadow: 1px 2px 4px 0px rgba(0, 0, 0, 0.1);
}

.modal-dialog .card {
  margin-bottom: 0;
}

// border from disabled form-controls should have background-color
.form-control {
  &:disabled, &[readonly] {
    border-color: $gray-100;

    &:focus {
      border-color: $gray-100;
    }
  }

  &:focus {
    border-color: $orange-light;
    box-shadow: 0 0 0 0.2rem $orange-lighter;
  }
}

// Errormessages
.alert > label {
  display: block;
}

.input-group-addon {
  line-height: 1.3em;
}

// checkboxes and radio buttons
.tobago-selectBooleanCheckbox, .tobago-selectManyCheckbox, .tobago-selectOneRadio {
  .form-check-label {
    padding-left: 0;

    .tobago-inputPseudo {
      margin-bottom: 2px;
      height: 14px;
      width: 14px;
      display: inline-block;
      margin-right: 5px;
      transition: all 0.2s;
      vertical-align: middle;
      border: 1px solid $gray-300;
      background: #fff;

      &:before {
        content: "";
      }
    }
  }
}

.tobago-selectBooleanCheckbox, .tobago-selectManyCheckbox {
  .form-check-label {
    .tobago-inputPseudo {
      overflow: hidden;

      &:before {
        font-size: medium;
        color: $dropdown-link-active-bg;
        position: relative;
        top: -6px;
        left: 13px;
      }
    }

    input[type="checkbox"]:checked + .tobago-inputPseudo {
      border-color: $dropdown-link-active-bg;

      &:before {
        content: "\f00c";
      }
    }

    input[type="checkbox"]:active + .tobago-inputPseudo,
    input[type="checkbox"]:focus + .tobago-inputPseudo {
      border-color: $orange-light;
    }

    input[type="checkbox"]:active:not(:disabled) + .tobago-inputPseudo:before,
    input[type="checkbox"]:focus:not(:disabled) + .tobago-inputPseudo:before {
      text-shadow: none;
    }

    input[type="checkbox"] {
      &[readonly], &[disabled] {
        & + .tobago-inputPseudo {
          opacity: 0.6;
          background: $input-disabled-bg;
        }
      }
    }
  }
}

.tobago-selectOneRadio {
  .form-check-label {
    .tobago-inputPseudo {
      border-radius: 100%;
    }

    input[type="radio"]:checked + .tobago-inputPseudo {
      background: $dropdown-link-active-bg;
      border: 0;

      &:before {
        content: "";
      }
    }

    input[type="radio"]:active + .tobago-inputPseudo,
    input[type="radio"]:focus + .tobago-inputPseudo {
      border: 1px solid $orange-light;
    }

    input[type="radio"] {
      &[readonly], &[disabled] {
        & + .tobago-inputPseudo {
          opacity: 0.6;
          background: $input-disabled-bg;
        }
      }
    }
  }
}

.tobago-dropdown-submenu > .dropdown-menu {
  border-radius: 0;
}

.dropdown-menu {
  border-radius: 0;

  .tobago-selectBooleanCheckbox, .tobago-selectManyCheckbox, .tobago-selectOneRadio {
    .form-check-label {
      padding-left: $dropdown-item-padding-x;
    }
  }
}

.dropdown-toggle:after {
  vertical-align: 0.1em;
}

.tobago-dropdown-submenu:after {
  margin-top: 5px;
}

.tobago-selectBooleanCheckbox.form-check,
.tobago-selectManyCheckbox-inline,
.tobago-selectOneRadio-inline,
.slider {
  min-height: 26px;
}
