/* common colors */
@black: #000;
@white: #fff;
@grey: #e6e6e6;
@greydark: #929292;

@color-success: #8cff8c;
@font-color-for-success: @black;
@color-alert: #ff8c8c;
@font-color-for-alert: @black;

@color-success-dark: #356e35;
@font-color-for-success: @black;
@color-alert-dark: #932f33;
@font-color-for-alert: @black;

@color-background-alert: #f2dede;
@color-font-alert: #a94442;
@color-border-alert: #ebccd1;

@color-background-success: #dff0d8;
@color-font-success: #3c763d;
@color-border-success: #d6e9c6;

/* Saphir colors */
@blue-dark: #002333;
@blue-main: #005982;
@blue-medium: #c7dfff;
@blue-light: #f1f7ff;
@blue-light2: #e4f0f5;

/* Ruby colors */
@red-dark: #420000;
@red-main: #bf1616;
@red-medium: #f7baba;
@red-light: #fce7e7;
@red-light2: #fed7c9;

/* Emerald colors */
@green-dark: #197948;
@green-main: #23af9b;
@green-medium: #7ae3ad;
@green-light: #e5f9ef;
@green-light2: #d7f9ef;

/* Amber colors */
@amber-dark: #bc4216;
@amber-main: #f08906;
@amber-medium: #f5c4b3;
@amber-light: #fcede8;
@amber-light2: #fcedcd;

/* Saphir theme */
/*
@main-color-theme : @blue-main;
@dark-color-theme : @blue-dark;
@medium-color-theme : @blue-medium;
@light-color-theme : @blue-light;
@light2-color-theme : @blue-light2;
@font-color-for-dark : @grey;
@font-color-for-main : @white;
@font-color-for-medium : @dark-color-theme;
@font-color-for-light : @dark-color-theme;
@shadow-color : @black;
@shadow-color-light : @greydark;
*/

/* Ruby theme */

@main-color-theme : @red-main;
@dark-color-theme : @red-dark;
@medium-color-theme : @red-medium;
@light-color-theme : @red-light;
@light2-color-theme : @red-light2;
@font-color-for-dark : @grey;
@font-color-for-main : @white;
@font-color-for-medium : @dark-color-theme;
@font-color-for-light : @dark-color-theme;
@shadow-color : @black;
@shadow-color-light : @greydark;


/* Emerald theme */
/*
@main-color-theme : @green-main;
@dark-color-theme : @green-dark;
@medium-color-theme : @green-medium;
@light-color-theme : @green-light;
@light2-color-theme : @green-light2;
@font-color-for-dark : @white;
@font-color-for-main : @white;
@font-color-for-medium : @dark-color-theme;
@font-color-for-light : @dark-color-theme;
@shadow-color : @black;
@shadow-color-light : @greydark;
*/
/* Amber theme */
/*
@main-color-theme : @amber-main;
@dark-color-theme : @amber-dark;
@medium-color-theme : @amber-medium;
@light-color-theme : @amber-light;
@light2-color-theme : @amber-light2;
@font-color-for-dark : @white;
@font-color-for-main : @white;
@font-color-for-medium : @dark-color-theme;
@font-color-for-light : @dark-color-theme;
@shadow-color : @black;
@shadow-color-light : @greydark;
*/


@app-bar-height: 60px;
@sub-app-bar-height: 40px;
@footer-height: 20px;
@home-btn-width: 47px;
@color-line-height: 9px;

@home-menu-tile-height: 80px;
@home-menu-tile-min-width: 100px;
@home-menu-tile-max-width: 100px;

@third-lvl-height: 80px;
@third-lvl-width : 100px;
@min-screen : 1170px;
@min-container-width: 1130px;

@box-border-color: #d7d7d7;

@font-face {
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  src: url('fonts/quicksand/quicksandbold.otf');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  src: url('fonts/quicksand/quicksandbold.otf');
  font-weight: bold;
  font-style: normal;
}

/* ---------------------------------- */
/* Begin special checkbox type switch */
/* ---------------------------------- */

[type="checkbox"]:not(:checked).nrd-chkbox, [type="checkbox"]:checked.nrd-chkbox {
  display: none;
}

[type="checkbox"]:not(:checked).nrd-chkbox + label,
[type="checkbox"]:checked.nrd-chkbox + label{
  cursor: pointer;
}
[type="checkbox"]:not(:checked).nrd-chkbox + label:before,
[type="checkbox"]:checked.nrd-chkbox + label:before{
  content: "";
  width: 150px;
  min-width: 150px;
  background-color: @light-color-theme;
  padding: 2px 20px 2px 20px;
  border-radius: 8px 8px 8px 8px;

  cursor: pointer;
}

[type="checkbox"]:not(:checked).nrd-chkbox + label:after,
[type="checkbox"]:checked.nrd-chkbox + label:after{
  content: "";
  position: relative;
  left:-35px;
  background-color: @dark-color-theme;
  min-height: 10px;
  min-width: 10px;
  padding-left: 4px;
  padding-right: 5px;
  border-radius: 8px 8px 8px 8px;
  transition: all .2s;
}

[type="checkbox"]:checked.nrd-chkbox + label:after{
  position: relative;
  left: -15px;
  transition: all .2s;
}
/* ---------------------------------- */
/* End special checkbox type switch */
/* ---------------------------------- */

/* ---------------------------------- */
/*  Begin square Checkbox             */
/* ---------------------------------- */

[type="checkbox"]:not(:checked).nrd-square-chkbox,
[type="checkbox"]:checked.nrd-square-chkbox{
  position: absolute;
  left: -9999px;
}

[type="checkbox"]:not(:checked).nrd-square-chkbox + label,
[type="checkbox"]:checked.nrd-square-chkbox + label{
  content: '';
  padding-left: 35px;
  position: relative;
  cursor: pointer;
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  font-size: 12px;

}
[type="checkbox"]:not(:checked).nrd-square-chkbox + label:before,
[type="checkbox"]:checked.nrd-square-chkbox + label:before{
  content: '';
  position: absolute;
  left:10px;
  top: -4px;
  width: 17px;
  height: 17px; /* dim. de la case */
  border: 1px solid #aaa;
  background: @light-color-theme;
  border-radius: 2px;
}

[type="checkbox"]:not(:checked).nrd-square-chkbox + label:before {
  background: @light-color-theme;
}
[type="checkbox"]:checked.nrd-square-chkbox + label:before{
  background: @main-color-theme;
}

[type="checkbox"]:not(:checked).nrd-square-chkbox + label:after,
[type="checkbox"]:checked.nrd-square-chkbox + label:after{
  content: '✔';
  position: absolute;
  top: -4px;
  left: 14px;
  font-size: 16px;
  color: @font-color-for-main;
  transition: all .2s;
}
[type="checkbox"]:not(:checked).nrd-square-chkbox + label:after {
  opacity: 0;
  transform: scale(0);
}
[type="checkbox"]:checked.nrd-square-chkbox + label:after {
  opacity: 1;
  transform: scale(1);
}
/* ---------------------------------*/
/*  End square Checkbox             */
/* ---------------------------------*/

/* ---------------------------------*/
/*  Begin class content mgmt        */
/* ---------------------------------*/


.flex-row {
  display: flex;
  flex-direction: row !important;
}
.flex-column {
  display: flex;
  flex-direction: column;
}

.col-width-1 {
  width: 10%;
}
.col-width-2 {
  width: 20%;
}
.col-width-3 {
  width: 30%;
}
.col-width-4 {
  width: 40%;
}
.col-width-5 {
  width: 50%;
}
.col-width-6 {
  width: 60%;
}
.col-width-7 {
  width: 70%;
}
.col-width-8 {
  width: 80%;
}
.col-width-9 {
  width: 90%;
}
.col-width-10 {
  width: 100%;
}

.align-v-center {
  display:flex;
  align-items: center;
}

.align-h-center {
  display:flex;
  justify-content: center;
}

/* ---------------------------------*/
/*    End class content mgmt        */
/* ---------------------------------*/


/* ---------------------------------- */
/*  Begin btn-sort         */
/* ---------------------------------- */

.btn-sort {
  position: relative;
  top: -6px;
  border:none;
  background:none;
  border-radius: 0;
  margin-left:5px;
}

.btn-sort:before{
  content: '';
  position: absolute;
  left: -1px;
  width: 0;
  height: 0;
  border-right: 10px solid transparent;
  border-bottom: 10px solid @greydark;
  border-left: 10px solid transparent;
}

.btn-sort:after{
  content: '';
  position: absolute;
  right: -1px;
  width: 0;
  height: 0;
  border-right: 10px solid transparent;
  border-top: 10px solid @greydark;
  border-left: 10px solid transparent;
  @media screen and (max-width: 1349px) {
    right: -5px;
  }
}

.btn-sort.btn-sort-asc:before{
  border-bottom: 10px solid @main-color-theme;
}

.btn-sort.btn-sort-desc:after{
  border-top: 10px solid @main-color-theme;
}

/* ---------------------------------- */
/*  End btn-sort           */
/* ---------------------------------- */


/* ---------------------------------- */
/*  Begin defaut colour class         */
/* ---------------------------------- */

.dark-color {
  background-color: @dark-color-theme !important;
  color: @font-color-for-dark !important;
}
.main-color {
  background-color: @main-color-theme !important;
  color: @font-color-for-main !important;
}
.medium-color {
  background-color: @medium-color-theme !important;
  color: @font-color-for-medium !important;
}
.light-color {
  background-color: @light-color-theme !important;
  color: @font-color-for-light !important;
}
.light2-color {
  background-color: @light2-color-theme !important;
  color: @font-color-for-light !important;
}

.grey-color {
  background-color: @grey !important;
}
.darkgrey-color {
  background-color: @greydark !important;
}

/* begin lookup widget */
.ui-dialog {
  opacity: 1;
  z-index: 50;
}

.ui-dialog-titlebar.ui-widget-header.ui-corner-all.ui-helper-clearfix {
  background: none !important;
  background-color: @dark-color-theme !important;
  button {
    background: none;
    background-color: @light-color-theme;
  }
}
/* end lookup widget */

.main-bar-label {
  color: @light-color-theme;
  padding-left: 3px;
  padding-right: 6px;
  font-size: 15px;
  font-weight: bold;
}

#company-logo {
  right: 10px;
  top: 2px;
  background: url("images/ofbiz-simple-white.svg") no-repeat left top / cover;
  min-height: 50px;
  min-width: 50px;
  margin-right: 15px;
  align-self: center;
  @media screen and (min-width : 1232px) {
    min-height: 50px;
    min-width: 129px;
    background: url("images/ofbiz-white.svg") no-repeat left top / cover;
  }
}

.modal-screen {
  visibility: hidden;
  display: flex;
  flex-direction: column;
  background-color: @grey;
  opacity: .93;
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  z-index: 9999;
}

.modal-box{
  background-color: @white;
  opacity: 1;
  margin: 10%;
  border-radius: 10px;
  border: solid 2px @main-color-theme;
  padding : 10px 40px 10px 40px;
  .modal-header {
    position: relative;
    display: flex;
    flex-direction: row;
    h2 {
      font-size: 25px;
      font-weight: normal;
      color: @main-color-theme;
    }
    .btn-close-nrd {
      position: absolute;
      right: 0;
      display: flex;
      justify-content: center;
      border: solid 1px @main-color-theme;
      border-radius: 5px;
      color: @main-color-theme;
      font-size: 25px;
      height: 30px;
      width: 30px;
      text-decoration: none !important;
    }
  }
  .modal-body {
    p {
      font-size: 20px;
    }
  }
  .modal-footer {
    position: relative;
    height: 35px;
    display: flex;
    justify-content: flex-end;
    .btn-nrd {
      background: none;
      border: none;
      text-shadow: none;
      opacity: 1;
      margin-right: 10px;
      font-size: 20px;
      padding: 5px;
      border-radius: 8px;
    }
    .btn-nrd-main {
      background-color: @main-color-theme;
      color: @white;
    }
    .btn-nrd-std {
      background-color: @white;
      color: @main-color-theme;
      border: solid 1px @main-color-theme !important;
    }
  }
}
.btn-nrd:hover {
  box-shadow: 5px 5px 3px 0 @black;
}

.btn-nrd-std:hover {
  background-color: @main-color-theme !important;
  color: @white !important;
  border: solid 1px @main-color-theme !important;
}

.btn-close-nrd:hover {
  background-color: @main-color-theme !important;
  color: @white !important;
}

.list-nrd {
  border: solid 2px @main-color-theme;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
  display: flex;
  flex-direction: column;
  margin-top: 15px;
  margin-bottom: 15px;
  .title-list-nrd {
    background-color: @main-color-theme;
    color : @white;
    font-size: 20px;
    font-weight: bold;
    padding-left: 5px;
  }

  li {
    position: relative;
    display: flex;
    flex-direction: row;
    font-size: 20px;
    padding-left: 5px;
    padding-top: 2px;
    padding-bottom: 2px;
    margin-bottom: 3px;
    a {
      color: @main-color-theme;
    }
    span {
      position: absolute;
      right: 0;
      color: @main-color-theme;
      font-size: 30px;
    }
  }
}
li.line-odd {
  background-color: @light-color-theme;
}

#user-avatar {
  height: 40px;
  width: 40px;
  padding: 2px;

  align-self: center;

  :hover {
    cursor: pointer;
  }
  img {
    max-height: 40px;
    max-width: 40px;
    position: relative;
    top: -2px;
    padding: 2px;
    background-color: @white;
    border-radius: 2px;
  }
}

#main-navigation-bar {
  position: relative;
  width: 100%;
  min-width: @min-container-width;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  font-family: Quicksand,sans-serif;
  background-color: @dark-color-theme;
  z-index: 5;
  height: @app-bar-height;
}
#main-nav-bar-left {
  position: relative;
  display: flex;
  align-items: center;
}
#main-nav-bar-right {
  position: relative;
  display: flex;
  align-items: center;
  padding-right: 15px;
}

.app-btn{
  height: @app-bar-height;
  background-color: @dark-color-theme;
  display: flex;
  align-items: center;
  flex-direction: row;
  margin-right: 2px;
  margin-left: 2px;
  a {
    padding:10px;
    color: @font-color-for-dark;
    font-size: 1.4em !important;
  }
}

.app-btn a:visited {
  color: @font-color-for-dark;
}

.app-btn:hover{
  position: relative;
  top: -6px;
  background-color: @main-color-theme;
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
  box-shadow: 1px 1px 12px @shadow-color;
  a {
    position: relative;
    top: 6px;
    color : @font-color-for-main;
  }
}
.app-btn.selected:hover {
  background-color: @dark-color-theme;
  box-shadow: none;
  top:0;
}

.app-btn a:hover {
  text-decoration: none;
}
#app-selected {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: @main-color-theme;
  box-shadow: 1px -2px 12px @shadow-color;
  z-index: 0;
  opacity: .99;
  border-top-left-radius : 8px ;
  border-top-right-radius : 8px ;
  a {
    position: relative;
    top: 3px;
    color: @font-color-for-main;
  }
}
.app-btn.selected a:hover {
  text-decoration: none;
}

#app-bar-line {
  position: relative;
  width: 100%;
  min-width: @min-container-width;
  height: @color-line-height;
  background-color: @main-color-theme;
  box-shadow: 2px 2px 5px @shadow-color;
}
#color-add {
  width: 150px;
  background-color: @main-color-theme;
  height: @color-line-height;
  z-index: 20;
  position: relative;
  top: @color-line-height;
}

#more-app {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 1.4em !important;
  width: 40px;
  height: @app-bar-height;
  color: @font-color-for-dark;
}
#more-app:hover {
  background-color: @main-color-theme;
  text-decoration: none;
}
#more-app:hover #more-app-list {
  display: block;
}
#more-app.selected {
  background-color: @main-color-theme;
}

#more-app-list {
  display: none;
  position: absolute;
  top: @app-bar-height;
  left: -20px;
  background-color: @dark-color-theme;
  z-index: 10;
  border: solid 4px @main-color-theme;
  border-top-width: @color-line-height;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  li {
    padding-left : 4px;
    padding-right: 4px;
  }

  a {
    color: @font-color-for-dark;
    font-size: 15px;
  }

  :hover {
    background-color: @medium-color-theme;
    a {
      box-shadow: none;
      color: @dark-color-theme;
    }
    a:hover{
      box-shadow: none;
      text-decoration: none;
      border-radius: 0;
    }
  }

  li.selected {
    background-color: @main-color-theme;
    a {
      color: @font-color-for-main;
    }
    a:hover {
      color: @font-color-for-main;
      background-color: @main-color-theme;
    }
  }
}

#homeButton {
  display: flex;
  //visibility: hidden;
  align-items: center;
  justify-content: center;
  background-color:@grey;
  border: none;
  border-radius : 0;

  height: @app-bar-height;
  width : @home-btn-width;
  text-decoration: none;
  img {
    height: 25px;
    transition: all .2s ease-in-out;
  }
}

#homeButton:hover img {
  transform: scale(1.1);
}

#app-bar-list {
  display: flex;
}

#user-details {
  position: absolute;
  right: 20px;
  top : 62px;
  background-color: @dark-color-theme;
  color : @font-color-for-dark;
  font-size: 15px;
  font-weight: bold;
  padding-top: 5px;
  padding-bottom: 10px;
  z-index: 15;
  box-shadow: 3px 3px 12px @shadow-color;
  border-radius: 3px;
  transition: all .1s ease-in-out;

  img {
    height: 50px;
    background-color: @white;
    padding: 4px;
    border-radius : 3px;
    margin-left: 10px;
    margin-right: 5px;
  }
  #logout {
    background-color: @white;
    color: @dark-color-theme !important;
    border-radius: 2px;
    :hover {
      text-decoration: none;
    }
  }
}

#user-details:after{
  content: '';
  position: absolute;
  top: -10px;
  right: 5px;
  width: 0;
  height: 0;
  border-right: 10px solid transparent;
  border-bottom: 10px solid @dark-color-theme;
  border-left: 10px solid transparent;
}

a.user-pref-btn {
  margin-top: 15px;
  background-color: @dark-color-theme;
  margin-left: 10px;
  margin-right: 10px;
  padding-top: 2px;
  padding-bottom: 2px;
  display: flex;
  justify-content: center;
  color: @font-color-for-dark !important;
  :hover {
    text-decoration: none;
  }
}

#user-name {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-content: center;
  padding-left : 5px;
  padding-right : 5px;
  span {
    min-width: 100px;
    padding-bottom : 5px;
    padding-top : 5px;
  }
}

#user-row1 {
  display: flex;
  flex-direction: row;
  justify-content: center;
  #user-lang {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-content: center;
    padding-left: 10px;
    padding-right: 10px;
    span {
      min-width: 30px;
      color: @font-color-for-dark;
    }
  }
}

.appbar-btn-img {
  height: @app-bar-height - 40px;
}

#help-btn {
  font-size: 10px;
  min-width: 20px;
  margin-right: 15px;
}
/* Begin sub Menu section */

#app-navigation {
  height: @sub-app-bar-height;
  border-right: solid 1px @black;
  border-bottom: solid 1px @black;
  width: 100%;
  min-width: @min-container-width;
  h2 {
    display: none;
  }
  ul {
    display: flex;
    flex-direction: row;
    background-color: @grey;
    flex-grow: 1;
  }
  ul li ul li {
    border-left: solid 1px @black;
    height: @sub-app-bar-height;
    display: flex;
    align-items: center;
    justify-items: center;
    justify-content: center;
    min-width: 75px;
    padding-left: 6px;
    padding-right: 6px;
    font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
    border-bottom: solid 1px @black;
    font-size: 12px;
    @media screen and (max-width: 1500px) {
      font-size: 10px;
      min-width: 65px;
    }
    @media screen and (max-width: 1300px) {
      font-size: 10px;
      min-width: 50px;
    }
    a {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center;
      height: 100%;
      width: 100%;
      text-decoration: none;
    }
  }
}

#app-navigation ul li ul li:last-child {
  border-right: solid 1px @black;
}

#app-navigation ul li ul li:hover {
  background-color: @main-color-theme;
  min-height: @sub-app-bar-height;
  position: relative;
  //top: -1px;
  a {
    color: @white;
    text-decoration: none;
  }
}
#app-navigation ul li ul li.selected:hover {
  a {
    color: @black !important;
  }
}

#app-navigation ul li ul li.selected {
  background-color: @white;
  position: relative;
  top: 1px;
  height: @sub-app-bar-height + 1px;
  border-top-right-radius: 2px;
  border-top-left-radius: 2px;
  border-bottom: none;

  :after {
    content: '';
    position: absolute;
    top: -2px;
    left: 5px;
    width: 0;
    height: 0;
    border-right: 10px solid transparent;
    border-top: 10px solid @main-color-theme;
    border-left: 10px solid transparent;
  }

}


/* End sub Menu section */

/* begin sub Menu section 3rd level */

.button-bar.tab-bar {
  ul li ul li {
    border: solid 1px @grey;
    border-radius: 4px;
    a {
      width: 100%;
      height: 100%;
    }
  }
  li.selected{
    background-color: @main-color-theme;
    a{
      color: @font-color-for-main;
    }
  }
  ul li ul li:hover {
    background-color: @main-color-theme;
    a {
      color: @font-color-for-main ;
    }
  }
}

#third-level-menu-container {
  display: flex;
  flex-direction: row;
}
#working-area {
  width: 100%;
}

#left-column-menu {
  width: 100px;
}

.third-lvl-menu {
  background-color: @dark-color-theme;
  position: relative;
  left: -10px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
  padding-top: 4px;
  padding-bottom: 4px;
  ul {
    li {
      ul {
        position: relative;
        top: 5px;
        width: @third-lvl-width;
      }
    }
  }
  h2 {
    visibility: hidden;
  }
}
.third-level-item:last-child {
  border-bottom: solid 1px @main-color-theme;
}

.third-level-item {
  min-height: @third-lvl-height;
  background-color: @dark-color-theme;
  padding-right: 3px;
  border-top: solid 1px @main-color-theme;

  a, a:visited {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    color: @font-color-for-dark !important;
    min-height: @third-lvl-height;
    max-width: @third-lvl-width;
    text-align: center;
  }
}
.third-level-item.selected {
  position: relative;
  border-left: solid 9px @main-color-theme;
  a, a:visited {
    background-color: @white;
    color: @dark-color-theme !important;
  }
  :after {
    content: '';
    position: absolute;
    top: 5px;
    left: 0;
    width: 0;
    height: 0;
    border-top: 10px solid transparent;
    border-left: 10px solid @main-color-theme;
    border-bottom: 10px solid transparent;
  }
}

.third-level-item a:hover {
  background-color: @main-color-theme;
  color: @font-color-for-main ;
  text-decoration: none;
}
/* End 3rd level menu */



/* Begin Home Menu for IB section */
.fixed-nav-bar {
  position: fixed !important;
  width: 100%;
}
#nav-bar-offset {
  height: @app-bar-height ;
}

#homeGlyph {
  margin-left: 20px;
  height: 20px;
}

#homePageTitle {
  color: @white;
  font-size: 20px;
  font-weight: bold;
  margin-right: 20px;
  margin-left: 20px;
}
.home-menu-list {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hp-applist {
  display: flex;
  flex-direction: row;
  color : @white;
  align-items: center;
  .app-title {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: @dark-color-theme;
    height: @home-menu-tile-height;
    padding: 5px 10px 5px 10px;
    border-bottom: solid 1px @black;
    span {
      font-family: "Quicksand", Arial, "Lucida Grande", sans-serif !important;
      font-size: 15px;
      font-weight: bold;
      width: 110px;
      a {
        display: flex;
        justify-content: center;
        color : @white;
      }
    }
  }

  .hp-menu-item {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin-left: 5px;
    margin-right: 5px;
    border: solid 2px @grey;
    border-radius: 8px;
    height: @home-menu-tile-height - 4px;
    min-width: @home-menu-tile-min-width;
    max-width: @home-menu-tile-max-width;
    .menu-link {
      font-size: 10px;
      color: @black;
      padding: 10px;
    }
    .star-link {
      position: absolute;
      height: 25px;
      top: 5px;
      right: 5px;
    }
  }

}
.hp-applist .app-title span a:hover {
  text-decoration: none;
}

.hp-menu-item.favoriteItem {
  border: solid 2px @dark-color-theme;
}

.hp-menu-item:hover {
  box-shadow: 3px 3px 12px @shadow-color;
  a {
    text-decoration: none;
  }
}

/* End Home Menu for IB section */

/* Begin Login screenlet */
#login-container {
  #content-messages {
    position: relative;
    top: @app-bar-height;
    border-radius: 4px;
    width: 97%;
    &.errorMessage {
      background-color : @color-background-alert !important;
      color: @color-font-alert !important;
      border : solid 1px @color-border-alert !important;
    }
    &.eventMessage {
      background-color : @color-background-success !important;
      color: @color-font-success !important;
      border : solid 1px @color-border-success !important;
    }
  }
}
#loginBar {
  position: fixed;
  top:0;
  left: 0;
  width: 100%;
  height: @app-bar-height;
  background-color: @dark-color-theme;
  span {
    background-color: @white;
    color: @main-color-theme;
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
    font-size: 25px;
    position: relative;
    top: @app-bar-height - 32px;
    left: 15px;
    padding: 5px 10px 5px 10px;
  }
  #company-logo {
    position: absolute;
  }
}

.login-screenlet {
  display: flex;
  flex-direction: column;
  min-width: 300px;
  max-width: 50em;
  border-radius: 8px !important;
  margin-top: 15%;
  box-shadow: 3px 3px 12px @shadow-color;
  .screenlet-title-bar {
    display: flex;
    align-content: center;
    justify-content: center;
    margin:0;
    padding:0;
    h3{
      padding-top:2px;
      padding-bottom:2px;
      background-color: @dark-color-theme !important;
      color: @font-color-for-dark;
      height: 100%;
      width:100%;
      text-shadow: none;
      font-size: 25px;
    }
  }
  .screenlet-body {
    background-color: @main-color-theme !important;
    form {
      .button {
        width: 150px;
        border-radius: 4px;
        background: none;
        background-color: @dark-color-theme;
        color: @font-color-for-dark;
        text-shadow: none;
        margin-top: 20px;
        margin-bottom: 10px;
      }

      table {
        tr {
          width: 100%;
          .label {
            color: @font-color-for-main;
            width: 25%;
            font-size: 15px;
          }
          input {
            width: 100%;
          }
          .buttontext,
          [type="submit"] {
            width: 150px;
            border-radius: 4px;
            background: none;
            background-color: @dark-color-theme;
            color: @font-color-for-dark;
            text-shadow: none;
          }
          [name="GET_PASSWORD_HINT"] {
            background-color: @font-color-for-dark;
            color: @main-color-theme;
            border: none;
            width: 100%;
          }
          [name="EMAIL_PASSWORD"] {
            background-color: @font-color-for-dark;
            color: @main-color-theme;
            border: none;
            width: 100%;
          }
          td {
            padding: 5px;
            color: @font-color-for-main;
            font-size: 15px;
            font-weight: bold;
          }
        }
      }
    }
    a {
      color: @font-color-for-main;
    }
  }
}

.login-screenlet .screenlet-title-bar {
  text-align: center;
}

/* End Login screenlet */


/* --------------------------------------------- */
/*      Begin Screenlet style                    */
/* --------------------------------------------- */
.screenlet-title-bar {
  text-decoration: none ;
  color: @dark-color-theme;
  background-color: @grey;
  height: 1%; /* IE fix */
  min-height: 1.5em;
  padding:0.8em 0.2em;
}

.screenlet {
  border-radius: 5px;
  border: solid 1px @grey;
  height: auto !important;
  margin-bottom: 1em;
  overflow: auto;
}

.screenlet-body {
  background-color: #FFFFFF;
  height: auto !important;
  height: 1%;
  padding: 0.4em;
}

.screenlet-body div {
  margin: 0.8em 0.1em
}

/* Special Screenlet style for locale and timezone window */
.lists.screenlet {
  margin-left: 25%;
  margin-right: 25%;
  margin-top: 1em;
}

.lists.screenlet .basic-table tr td {
  text-align: center;
}

.lists.screenlet .basic-table tr td a {
  display: block;
}

/*      Alternate table header style      */
.basic-table .header-row-2 th,
.basic-table .header-row-2 td {
  background-color: @greydark;
  border-bottom: 0;
  border-left: 0.1em solid #aaa;
  border-right: 0.1em solid #888;
  color: #ffffff;
  font-weight: bold;
}

/* No padding screenlet decorator */
.no-padding {
  padding: 0;
  border: none;
}

.no-padding .h1,
.no-padding .h2,
.no-padding .h3,
.no-paddingr h1,
.no-padding h2,
.no-padding h3 {
  padding: 0.7em;
}

.screenlet-title-bar ul a:hover {
  color: @main-color-theme !important;
  text-decoration: none;
}


/* --------------------------------------------- */
/*      End Screenlet style                      */
/* --------------------------------------------- */

/* ---------------------- */
/*      Table Styles      */
/* ---------------------- */

.basic-table {
  background-color: #ffffff;
  color: #000000;
  margin-bottom: 1em;
  width: 100%;
}

form table,
form .basic-table,
.screenlet-body .basic-table {
  background: transparent;
  margin-bottom: 0;
}

.basic-table tr td {
  /* Style for all cells */
  padding: 0.8em 0.1em;
  vertical-align: middle;
}

.basic-table tr .align-bottom {
  vertical-align: bottom;
}

.basic-table tr .align-top {
  vertical-align: top;
}

.basic-table tr .label,
.basic-table tr .group-label {
  /* field labels for forms */
  font-weight: bold;
  text-align: right;
  padding-right: 1.5em;
  white-space: nowrap;
  width: 1%;
}

.basic-table tr .group-label {
  /* "header" for field label groups */
  font-size: 1.2em;
  padding: 2em 1.5em 0 0;
}

.basic-table tr th,
.basic-table .header-row {
  font-weight: bold;
  text-align: left;
}

.basic-table .header-row td {
  border-bottom: 0.1em solid #000000;
}

.basic-table .header-row td a {
  color: #000000;
}

.basic-table .alternate-row {
  /* Alternating row style */
  background-color: #eeeeee;
}

.basic-table .selected {
  background: #FFFCCF;
}

.basic-table .alternate-rowSelected {
  background: #FFF55F;
}

.basic-table .Validate {
  /*Style use by alt-row-style on list*/
  background: #A0D5F7;
}

.basic-table .alternate-rowValidate {
  /*Style use by alt-row-style on list*/
  background: #72A8F2;
}

.basic-table .Warn {
  /*Style use by alt-row-style on list*/
  background: #f55C5C;
}

.basic-table .alternate-rowWarn {
  /*Style use by alt-row-style on list*/
  background: #FC7455;
}

.basic-table tr .button-col {
  /* button column style - for the small
  collection of buttons used in lists */
  vertical-align: top;
  padding: 0.3em;
}
.basic-table tr .button-col a,
.basic-table tr .button-col button,
.basic-table tr .button-col input[type="reset"],
.basic-table tr .button-col input[type="submit"],
.basic-table tr .button-col input[type="button"] {
  -webkit-appearance: none;
  -moz-border-radius: 1em;
  -webkit-border-radius: 1em;
  border-radius: 2px;
  border: 0.1em solid @main-color-theme;
  background-color: @white;
  cursor: pointer;
  color: @main-color-theme;
  display:inline-block;
  font-size: 0.9em;
  font-weight: bold;
  outline: 0;
  overflow: visible;
  padding: 0.1em 0.5em 0.2em 0.5em;
  text-decoration: none;
  width: auto;

  &:hover {
    background-color: @main-color-theme;
    color: @white;
  }
}

.basic-table .collapsed {
  visibility: collapse;
}

/*      Sort field style      */
.basic-table .header-row-2 th .sort-order-asc,
.basic-table .header-row-2 td .sort-order-asc{
  background: url(/images/arrow-gr-up.png) no-repeat right;
  padding-left: 0.5em;
  padding-right: 20px; /* Setting must be in px */
}
.basic-table .header-row-2 th .sort-order-desc,
.basic-table .header-row-2 td .sort-order-desc{
  background: url(/images/arrow-gr-dw.png) no-repeat right;
  padding-left: 0.5em;
  padding-right: 20px; /* Setting must be in px */
}
.basic-table .header-row-2 th .sort-order,
.basic-table .header-row-2 td .sort-order{
  background: url(/images/arrow-gr.png) no-repeat right;
  padding-left: 0.5em;
  padding-right: 20px; /* Setting must be in px */
  color:#fff
}


/* --------------------------------------------- */
/*      Begin Message Info                       */
/* --------------------------------------------- */
.count-message {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height:20px;
  min-width: 20px;
  max-height:20px;
  max-width: 20px;
  background: @white;
  font-size:12px;
  font-weight: bold;
  border-radius: 50%;
}
.info-message-title {
  min-width:150px;
  margin: 5px;
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  font-size: 16px;
  font-weight: bold;
}
.message-list {
  position:relative;
  margin-top: 10px;
  box-shadow: 1px 3px 5px @greydark;
  border-radius: 0 5px 5px 0;
  transition: height 2s;
}
.message-list-main {
  padding: 5px 15px 5px 15px;
}
.message-list-alert {
  background-color: @color-alert;
  border-left : solid 5px @color-alert-dark;
  .count-message {
    color: @color-alert-dark;
  }
}
.message-list-success {
  background-color: @color-success;
  border-left: solid 5px @color-success-dark;
  .count-message {
    color: @color-success-dark;
  }
}
.message-list-table-container {
  background-color: @white;
  border-radius: 5px;
  overflow: hidden;
  height: 0;
}
.info-message-success {
  display: none;
}
.info-message-alert {
  display: none;
}
table.msg-list {
  width: 100%;
  font-size: 16px;
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  padding: 0;
  thead {
    height: 100%;
    background-color: @grey;
    margin: 0;
    padding: 0;
    tr{
      font-weight: bold;
      border-bottom: solid 1px @black;
      height: 100%;
      background-color: @grey;
      line-height: 30px;
    }
  }
  tbody {
    tr {
      line-height: 25px;
    }
    tr.msg-row-success {
      background-color: @color-success;
    }
    tr.msg-row-alert {
      background-color: @color-alert;
    }
  }
  td {
    padding-left: 5px;
  }
}

/* --------------------------------------------- */
/*      End  Message Info                        */
/* --------------------------------------------- */

/* ---------------------- */
/*     Paginate Style     */
/* ---------------------- */

.paginate-bar-nrd {
  display: flex;
  flex-direction: row;
  align-items: center;
  font-size: 15px;
  background-color: @grey;
  padding-left: 10px;
  padding-top: 3px;
  padding-bottom: 3px;
  box-shadow: 0 2px 5px @shadow-color;

  ul.paginate-pg-list {
    display: flex;
    flex-direction: row;
    background-color: @white;
    color: @main-color-theme;
    margin-right: 10px;
    border-radius: 8px;
    border: solid 1px @box-border-color;
    height: 18px;
    li {
      display: flex;
      justify-content: center;
      min-width: 17px;
      border-right: solid 1px @box-border-color;
      padding-left: 2px;
      padding-right: 2px;
      height:100%;
      a {
        display: flex;
        justify-content: center;
        align-items: center;
        font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
        color: @dark-color-theme;
        height: 100%;
        width: 100%;
      }
      .paginate-disable {

      }
    }
    li.selected {
      background-color: @main-color-theme;
      a {
        color: @font-color-for-main;
      }
    }
    li:first-child, li:last-child {
      width: 20px;
    }
    li:first-child {
      border-top-left-radius: 3px;
      border-bottom-left-radius: 3px;
    }
    li:last-child {
      border-right: none;
      border-top-right-radius: 3px;
      border-bottom-right-radius: 3px;
    }
  }

}
select.paginate-select {
  position: relative;
  background: @white;
  font-size: 16px;
  font-weight: bold;
  border: 1px solid @box-border-color;
  option {
    display: flex;
    justify-self: center;
    font-size: 14px;
  }
}

.paginate-select-label {
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  font-size: 16px;
  padding-left: 15px;
  padding-right: 15px;
}

.paginate-information {
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  font-size: 16px;
  padding-left: 15px;
  padding-right: 15px;
}

ul.paginate-pg-list li:hover{
  background-color: @main-color-theme;
  a {
    text-decoration: none;
    color: @font-color-for-main;
  }
}

/* End of Paginate Style  */
/* ---------------------- */

/* ------------------------------- */
/*      List Navigation Style      */
/* ------------------------------- */

.nav-pager {
  background-color: @greydark;
  color: @white;
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif;
  font-size: 9px;
  font-weight: bold;
  line-height: 3.5em;
  height: 3.5em;
  margin: 0.5em 0 0.5em 0;
  border-radius: 3px 3px 0 0;
}

.nav-pager ul {
  display: inline; /* IE Fix */
}

.nav-pager ul li {
  float:left;
  vertical-align: middle;
}

.nav-pager ul li a {
  display: block;
}

.nav-pager ul a {
  color: @white;
  padding: 0 1em 0 1em;
  text-decoration: none;
}

.nav-pager ul a:hover {
  background-color: @main-color-theme;
  color: @font-color-for-main;
}

.nav-pager ul .nav-pagesize,
.nav-pager ul .nav-page-select,
.nav-pager ul .nav-displaying {
  padding: 0 1em 0 1em;
}

.nav-pager ul .nav-first-disabled,
.nav-pager ul .nav-previous-disabled,
.nav-pager ul .nav-next-disabled,
.nav-pager ul .nav-last-disabled {
  padding: 0 1em 0 1em;
}

.nav-pager ul .nav-first-disabled:hover,
.nav-pager ul .nav-previous-disabled:hover,
.nav-pager ul .nav-next-disabled:hover,
.nav-pager ul .nav-last-disabled:hover {
  cursor: not-allowed;
}


.nav-pager ul .nav-displaying {
  border-right: none;
}


/* ---------------------------- */
/*     Multi-Column Styles      */
/* ---------------------------- */

#column-container {
  margin: auto;
  padding: 1em;
  position: relative;
  min-width: @min-container-width;
}

#column-container h1,
#column-container .h1,
#column-container h2,
#column-container .h2 {
  margin-bottom: 0.5em;
}

#column-container h1,
#column-container .h1 {
  color: #557996;
}

#column-container .left {
  float: left;
  /* alt: position: absolute; top: 0px; left: 0px; */
  width: 22em;
  margin-right: 1em;
}

#column-container .left-larger {
  float: left;
  /* alt: position: absolute; top: 0px; left: 0px; */
  width: 25em;
  margin-right: 1em;
}

.lefthalf {
  float: left;
  height: 1%;
  left: 0;
  margin: 0% 1% 1% 0%;
  width: 49%;
}

.righthalf {
  float: right;
  height: 1%;
  margin: 0 0 1% 1%;
  right: 0;
  width: 49%;
}

#column-container .right {
  float: right;
  margin-left: 1em;
  width: 22em;
}

#column-container .leftonly {
  margin-left: 23em;
  width: auto;
}

#column-container .leftonly-larger {
  margin-left: 26em;
  width: auto;
}

#column-container .rightonly {
  margin-right: 23em;
  width: auto;
}

#column-container .center {
  margin-left: 23em;
  margin-right: 23em;
  width: auto;
}

#column-container .nocolumns {
  width: auto;
}

/* ---------------------- */
/*      Button Style      */
/* ---------------------- */

.button-bar li.buttontext a,
a.buttontext,
a.buttontextbig,
.smallSubmit,
.smallSubmit:hover,
.mediumSubmit,
.largeSubmit,
.loginButton,
.button-style-1 a,
.button-style-1 ul a,
.button-style-2 ul a,
.button-style-2 a,
.button,
button,
input[type="reset"],
input[type="submit"],
input[type="button"] {
  -webkit-appearance: none;
  -moz-border-radius: 1.1em;
  -webkit-border-radius: 1.1em;
  border-radius: 2px;
  border: 0.1em solid @main-color-theme;
  background-color: @white;
  cursor: pointer;
  color: @main-color-theme;
  display:inline-block;
  font-size: 1em;
  font-weight: bold;
  outline: 0;
  overflow: visible;
  padding: 0.4em 1em 0.4em;
  text-decoration:none;
  /*text-transform:uppercase;*/
  width: auto;

  /* IE7 */
  *padding-top: 0.2em;
  *padding-bottom: 0;
  &:hover {
    color: @font-color-for-main;
    background-color: @main-color-theme;
  }
}


/* ---------------------- */
/*      Footer Style      */
/* ---------------------- */

#footer {
  background: @dark-color-theme;
  border-top: 0.1em inset #000;
  padding: 0.5em 0 0.5em 0.5em;

  height: @footer-height;
  position: fixed;
  bottom: 0;
  width: 100%;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  font-family: "Quicksand", Arial, "Lucida Grande", sans-serif !important;
  z-index: 10;

  span {
    color: @font-color-for-dark;
    padding: 10px;
  }

  a {
    color: @font-color-for-dark;
    font-weight: normal;
  }
}

#footer a:focus {
  text-decoration: underline;
}

#footer-offset {
  height: @footer-height + 10px;
  width: 100%;
}
