/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

menu {
  -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, .50);
  background: white;
  border-radius: 2px;
  color: black;
  cursor: default;
  left: 0;
  margin: 0;
  outline: 1px solid rgba(0, 0, 0, 0.2);
  padding: 8px 0;
  position: fixed;
  white-space: nowrap;
  z-index: 3;
}

menu:not(.decorated) {
  display: none;
}

menu > * {
  box-sizing: border-box;
  display: block;
  margin: 0;
  text-align: start;
  width: 100%;
}

menu > :not(hr) {
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  color: black;
  font: inherit;
  line-height: 18px;
  outline: none;
  overflow: hidden;
  padding: 0 19px;
  text-overflow: ellipsis;
}

menu > hr {
  background: -webkit-linear-gradient(left,
                                      rgba(0, 0, 0, .10),
                                      rgba(0, 0, 0, .02) 96%);
  border: 0;
  height: 1px;
  margin: 8px 0;
}

menu > [disabled] {
  color: rgba(0, 0, 0, .3);
}

menu > [hidden] {
  display: none;
}

menu > :not(hr)[selected] {
  background-color: rgba(0, 0, 0, .06);
}

menu > :not(hr)[selected]:active {
  background-color: rgba(0, 0, 0, .06);
}

menu > [checked]::before {
  content: url('../images/checkbox_black.png');
  display: inline-block;
  height: 9px;
  margin: 0 5px;
  vertical-align: 50%;
  width: 9px;
}

menu > [checked] {
  -webkit-padding-start: 0;
}

menu > [selected][checked]:active::before {
  content: url('../images/checkbox_white.png');
}

/* TODO(zvorygin) menu > [shortcutText]::after - this selector is much better,
 * but it's buggy in current webkit revision, so I have to use [showShortcuts].
 */
menu[showShortcuts] > ::after {
  -webkit-padding-start: 30px;
  color: #999;
  content: attr(shortcutText);
  float: right;
}
