//  Licensed 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.

@import "bootstrap/mixins.less";
@import "icons.less";

// @deprated - old trays
.hide-tray {
  display: none;
}

.show-tray {
  display: block !important; //nasty hack until we convert all trays to React
}

.tray {
  display: none;
  position: absolute;
  right: 0px;
  top: 55px;
  z-index: 11;
  background-color: #333;
  color: #fff;
  margin: 0;

  .add-on {
    font-size: 16px;
    background: none;
    padding: 0px;
    margin: 10px 0;
    border: none;
    display: block;
    text-align: left;
    color: #fff;
    text-shadow: none;
    height: auto;
    line-height: 1em;
  }

  input[type="text"],
  textarea {
    .border-radius(5px);
    background-color: #666;
    padding: 8px;
    border: none;
    color: #eee;
    font-size: 13px;
  }

  input[type="text"]:focus,
  textarea:focus,
  input[type="text"]:hover,
  textarea:hover {
    border: 2px solid @white;
  }
  input[type="text"], textarea {
    box-shadow: none;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    background-color: rgba(255,255,255,0.1);
    padding: 8px;
    border: 2px solid rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.8);
    font-size: 13px;
  }
  input:-webkit-input-placeholder,
  form input:-moz-placeholder,
  input:-ms-input-placeholder {
    color: rgba(255,255,255,0.4);
  }
}

.tray:before {
  content: '';
  position: absolute;
  top: -25px;
  border-color: transparent transparent #333 transparent;
  border-style: solid;
  border-width: 15px;
  width: 0;
  height: 0;
}

#header-lookahead .dropdown-menu li.active {
  width: 100%;
}
