/* Copyright (C) 2013 The Android Open Source Project
 *
 * 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.
 */

@eval trimColor com.google.gerrit.client.Gerrit.getTheme().trimColor;

.popup {
  background-color: trimColor;
  min-width: 300px;
  min-height: 90px;
}

.popupContent {
  padding: 5px;
}

.button,
.popup button,
.popup input[type='button'] {
  margin: 0 3px 0 0;
  border-color: rgba(0, 0, 0, 0.1);
  text-align: center;
  font-size: 11px;
  font-weight: bold;
  border: 1px solid;
  cursor: pointer;
  color: #fff;
  background-color: #4d90fe;
  background-image: -webkit-linear-gradient(top, #4d90fe, #4d90fe);
  -webkit-border-radius: 2px;
  -webkit-box-sizing: content-box;
}

.button:disabled,
.popup button:disabled,
.popup input[type='button']:disabled {
  background-color: #999;
  background-image: -webkit-linear-gradient(top, #999, #999);
}

.button div, .popup button div {
  width: 54px;
  white-space: nowrap;
  color: #fff;
  height: 10px;
  line-height: 10px;
}

.section {
  padding: 5px 5px;
  border-bottom: 1px solid #b8b8b8;
}
