/*
 * Copyright 2009 The Closure Library Authors. All Rights Reserved.
 *
 * Use of this source code is governed by the Apache License, Version 2.0.
 * See the COPYING file for details.
 */

/* Author: pupius@google.com (Daniel Pupius) */
/* Author: cibu@google.com (Cibu Johny) */

.goog-char-picker {
  background-color: #ddd;
  padding: 16px;
  border: 1px solid #777;
}

/* goog.ui.HoverCard */
.goog-char-picker-hovercard {
  border: solid 5px #ffcc33;
  min-width: 64px;
  max-width: 160px;
  padding: 16px;
  background-color: white;
  text-align: center;
  position: absolute;
  visibility: hidden;
}

.goog-char-picker-name {
  font-size: x-small;
}

.goog-char-picker-unicode {
  font-size: x-small;
  color: GrayText;
}

.goog-char-picker-char-zoom {
  font-size: xx-large;
}

/*
 * grid
 */
.goog-char-picker-grid-container {
  border: 1px solid #777;
  background-color: #fff;
  width: 272px;
}

.goog-char-picker-grid {
  overflow: hidden;
  height: 250px;
  width: 250px;
  position: relative;
}

.goog-stick {
  width: 1px;
  overflow: hidden;
}
.goog-stickwrap {
  width: 17px;
  height: 250px;
  float: right;
  overflow: auto;
}

.goog-char-picker-recents {
  border: 1px solid #777;
  background-color: #fff;
  height: 25px;
  width: 275px;
  margin: 0 0 16px 0;
  position: relative;
}

.goog-char-picker-notice {
  font-size: x-small;
  height: 16px;
  color: GrayText;
  margin: 0 0 16px 0;
}

/*
 * Hex entry
 */

.goog-char-picker-uplus {
}

.goog-char-picker-input-box {
  width: 96px;
}

.label-input-label {
  color: GrayText;
}

.goog-char-picker-okbutton {
}

/*
 * Grid buttons
 */
.goog-char-picker-grid .goog-flat-button {
  position: relative;
  width: 24px;
  height: 24px;
  line-height: 24px;
  border-bottom: 1px solid #ddd;
  border-right: 1px solid #ddd;
  text-align: center;
  cursor: pointer;
  outline: none;
}

.goog-char-picker-grid .goog-flat-button-hover,
.goog-char-picker-grid .goog-flat-button-focus {
  background-color: #ffcc33;
}

/*
 * goog.ui.Menu
 */

/* State: resting. */
.goog-char-picker-button {
  border-width: 0px;
  margin: 0;
  padding: 0;
  position: absolute;
  background-position: center left;
}

/* State: resting. */
.goog-char-picker-menu {
  background-color: #fff;
  border-color: #ccc #666 #666 #ccc;
  border-style: solid;
  border-width: 1px;
  cursor: default;
  margin: 0;
  outline: none;
  padding: 0;
  position: absolute;
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hide;
}

/*
 * goog.ui.MenuItem
 */

/* State: resting. */
.goog-char-picker-menu .goog-menuitem {
  color: #000;
  list-style: none;
  margin: 0;
  /* 28px on the left for icon or checkbox; 10ex on the right for shortcut. */
  padding: 1px 32px 1px 8px;
  white-space: nowrap;
}

.goog-char-picker-menu2 .goog-menuitem {
  color: #000;
  list-style: none;
  margin: 0;
  /* 28px on the left for icon or checkbox; 10ex on the right for shortcut. */
  padding: 1px 32px 1px 8px;
  white-space: nowrap;
}

.goog-char-picker-menu .goog-subtitle {
  color: #fff !important;
  background-color: #666;
  font-weight: bold;
  list-style: none;
  margin: 0;
  /* 28px on the left for icon or checkbox; 10ex on the right for shortcut. */
  padding: 3px 32px 3px 8px;
  white-space: nowrap;
}

/* BiDi override for the resting state. */
.goog-char-picker-menu .goog-menuitem-rtl {
  /* Flip left/right padding for BiDi. */
  padding: 2px 16px 2px 32px !important;
}

/* State: hover. */
.goog-char-picker-menu .goog-menuitem-highlight {
  background-color: #d6e9f8;
}
/*
 * goog.ui.MenuSeparator
 */

/* State: resting. */
.goog-char-picker-menu .goog-menuseparator {
  border-top: 1px solid #ccc;
  margin: 2px 0;
  padding: 0;
}

