html {
  /**
   * font-size is to be overwritten by JavaScript here.
   * We are abusing CSS unit "rem" as a grid to describe the size of our elements.
   * JavaScript will set 1 rem to 1/32 of the screen width when the screen is vertical,
   * and 1/64 of the screen width when the screen is landscape.
   */
  font-size: 10px;
  pointer-events: none;
}

body {
  margin: 0;
  overflow: hidden;
}

button::-moz-focus-inner {
  padding: 0;
  border: 0;
}

/* Keyboard */
#keyboard {
  position: absolute;
  bottom: 0;
  z-index: 15;
  width: 100%;
  background-color: red; /* User should not see this */
  pointer-events: auto;
  visibility: visible;
}

/* Show/hide the layout page view */
.keyboard-type-container:not([data-active]) {
  display: none;
}

/* Row styles */
.keyboard-row {
  text-align: center;
  font-size: 0;
  display: flex;
}
.row0 {
  background-color: #606b6e;
}
.row1 {
  background-color: #5b6668;
}

.row2 {
  background-color: #566063;
}

.row3 {
  background-color: #525c5e;
}

.row0 > .keyboard-key > .visual-wrapper > .key-element {
  border-right-color: #525b5e;
}

.row1 > .keyboard-key > .visual-wrapper > .key-element {
  border-right-color: #4c5657;
}

.row2 > .keyboard-key > .visual-wrapper > .key-element {
  border-right-color: #475052;
}

.row3 > .keyboard-key > .visual-wrapper > .key-element {
  border-right-color: #434b4d;
}

.rows-5 > .row0 {
  background-color: #636e71;
}

.rows-5 > .row1 {
  background-color: #5e696c;
}

.rows-5 > .row2 {
  background-color: #5b6668;
}

.rows-5 > .row3 {
  background-color: #566063;
}

.rows-5 > .row4 {
  background-color: #525b5e;
}

.rows-5 > .row4 > .keyboard-key > .visual-wrapper > .key-element {
  border-right-color: #434b4d;
}

#keyboard.full-candidate-panel .keyboard-key {
  visibility: hidden;
}

/* Buttons: logic keys */
.keyboard-key {
  display: inline-block;
  padding: 0;
  font-size: 0;
  font-family: sans-serif;
  border: none;
  border-radius: 0;  /* To override the system-default border radius for button element  */
  background: none;

  /* In case the keys are nested, for example in the alt char menu,
     they need to be tappable. */
  pointer-events: auto;
  flex: auto;
}

.keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
  --key-height: 4.5rem;
}

.rows-5 .keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
  --key-height: 3.4rem;
}

.landscape .keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
  --key-height: 3.8rem;
}

.landscape .rows-5 .keyboard-key { /* remove this line from build/csslint/xfail.list after csslint understand CSS variables */
  --key-height: 2.85rem;
}

/* Visible keys */
.keyboard-key > .visual-wrapper {
  display: inline-block;
  position: relative;
  width: 100%;
  height: var(--key-height);
  margin: 0.4rem 0;

  /* Events must originate from .keyboard-key, not its children elements */
  pointer-events: none;
}

/* Standard key styles. */
.keyboard-key > .visual-wrapper > .key-element {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  color: #fff;
  font-size: 2.4rem;
  line-height: var(--key-height);
  font-weight: normal;
  text-align: center;
  border-right: 0.1rem solid #525b5e;
  border-left: 0.1rem solid transparent;
}

.keyboard-type-container:not(.lowercase) .key-element.lowercase {
  visibility: hidden;
}

.keyboard-type-container:not(.uppercase-only).lowercase .key-element:not(.lowercase) {
  visibility: hidden;
}

.popup {
  position: absolute;
  top: -5.8rem;
  left: calc(50% - 2.8rem);
  width: 5.6rem;
  height: 5.6rem;
  color: #fff;
  font-size: 2.8rem;
  line-height: 5.6rem;
  border-radius: 50%;
  background-color: #00aacc;
  visibility: hidden;

  /* To override the text-align in .keyboard-key:first-child or :last-child */
  text-align: center;
}

.keyboard-key.highlighted {
  background-color: #4a5255;
}

.keyboard-key:last-child > .visual-wrapper > .key-element {
  border-right: transparent;
}

.keyboard-key.highlighted > .visual-wrapper > .key-element {
  color: #00caf2;
}

/* Show the bubble text when the button is highlighted. */
.keyboard-key.highlighted > .visual-wrapper > .popup {
  z-index: 1;
}

/* Special rules for lowercase and uppercase popups */
.keyboard-key.highlighted.uppercase-popup .popup.uppercase {
  visibility: visible;
}

.keyboard-key.highlighted.lowercase-popup .popup.lowercase {
  visibility: visible;
}

/* Special rules for popups near the screen edge */
.keyboard-row button:last-child.highlighted > .visual-wrapper > .popup {
  left: -2.4rem;
}

.keyboard-row button:first-child.highlighted > .visual-wrapper > .popup {
  left: 0;
}

/* Special keys */
.keyboard-key.special-key > .visual-wrapper > .key-element {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  color: #abb0b1;
  font-weight: 500;
  font-size: 1.5rem;
  font-family: 'Keyboard Symbols', sans-serif;
}

/* Highlight for special keys */
.keyboard-key.special-key.highlighted > .visual-wrapper > .key-element {
  color: #00b8d6;
}

.keyboard-key.special-key.highlighted > .visual-wrapper:before,
.keyboard-key.special-key.highlighted > .visual-wrapper:after,
.keyboard-key.special-key.highlighted > .visual-wrapper > .popup,
.keyboard-key.highlighted[data-keycode="32"] > .visual-wrapper > .popup,
#keyboard-accent-char-menu .keyboard-key > .visual-wrapper:before {
  opacity: 0;
}


/* Switching keys */
.keyboard-key.special-key.switch-key > .visual-wrapper > .key-element {
  font-size: 1.8rem;
}

/* Page Switching key - [ABC], [Alt], and [12&] */
.keyboard-key.special-key.page-switch-key > .visual-wrapper > .key-element {
  font-size: 1.7rem;
}

/* For disabled keys */
.keyboard-key.special-key[disabled="true"] {
  /* Without this rule, the focus would lose when the user clicks this key.
     This seems to be because a disabled key would not get touch/click event. */
  pointer-events: none;
}

.keyboard-key.special-key[disabled="true"] > .visual-wrapper > .key-element {
  color: #677172;
}

/* Special keys - text */
.keyboard-key.special-key.text > .visual-wrapper > .key-element {
  font-family: Sans-serif;
}

/* Key states */

/* Active key, used for shift key - uppercase */
.keyboard-key.kbr-key-active {
  background-color: #00caf2;
}

.keyboard-key.kbr-key-active > .visual-wrapper > .key-element {
 color: #fff;
 border-right-color: transparent;
}

/* Caps lock case */
.keyboard-key.special-key.kbr-key-hold:not(.highlighted) > .visual-wrapper > .key-element {
  color: #00caf2;
}

/* The underline for caps lock */
.keyboard-key.kbr-key-hold:not(.highlighted) > .visual-wrapper {
  box-shadow: 0 0.4rem 0 #00caf2;
}

.keyboard-key.pinyin-ch-ellipsis > .visual-wrapper > .key-element {
  font-size: 1.6rem;
}

div.zh-encode-switcher-half {
  margin-top: -0.8rem;
}

div.zh-encode-switcher {
  width: 100%;
  height: calc(50%);
  padding: 0;
  float: left;
  font-size: 1.8rem;
}

div.zh-encode-switcher-selected {
  color: #00AACC;
}

/* Alternatives menu -- this menu appears when you tap and hold a key that has
alternative special (accented) characters. The menu "grows" out of the key
and displays the list of alternatives. */
#keyboard-accent-char-menu {
  position: absolute;
  top: -6rem;
  font-size: 0;
  border-radius: 3rem;
  background-color: #00aacc;
  overflow: hidden;
  text-align: left;
  /* Special hack to make the keys in the menu flow upwards. */
  transform: rotateX(180deg);
  margin-left: -1.0rem; /* because the last child is wider than others */
}

#keyboard-accent-char-menu.kbr-menu-left {
  left: auto;

  /* because the last child is wider than others, shift 1 pixel to align with
   * the key row. */
  margin-right: -0.9rem;
}

#keyboard-accent-char-menu.left-edge {
  margin-left: 0.4rem;
}

#keyboard-accent-char-menu.right-edge {
  margin-right: 0.4rem;
}

/* Non keyboard key styles in menu */
#keyboard-accent-char-menu .keyboard-key {
  transform: rotateX(180deg);
  float: left;
}

#keyboard-accent-char-menu.kbr-menu-left .keyboard-key {
  float: right;
}

/* if it is the first or last key in the accent menu make it wider */
#keyboard-accent-char-menu .keyboard-key:first-child,
#keyboard-accent-char-menu .keyboard-key:last-child {
  min-width: 4.2rem;
}

/*
 * If it is the first and the last key in the accent menu, it means that
 * there is only one and we need to make it wider still so we get a round
 * menu
 */
#keyboard-accent-char-menu .keyboard-key:first-child:last-child {
  min-width: 6rem;
}

#keyboard-accent-char-menu .keyboard-key > .visual-wrapper {
  height: 6rem;
  margin: 0;
}

#keyboard-accent-char-menu .keyboard-key > .visual-wrapper .key-element {
  background: none;
  border-radius: 0;
  border-right: 1px solid #008eab;
}

#keyboard-accent-char-menu .keyboard-key.highlighted > .visual-wrapper:after,
#keyboard-accent-char-menu .keyboard-key.highlighted > .visual-wrapper > .popup {
  display: none;
}

/* Styles for keys in accent menu (not highlighted). */
#keyboard-accent-char-menu .keyboard-key > .visual-wrapper > .key-element {
  line-height: 6rem;
  font-weight: 500;
  color: #fff;

  /* XXX: to override the .lowercase show/hide control for each key, see Bug 1091018. */
  visibility: visible;
}

#keyboard-accent-char-menu .keyboard-key:first-child > .visual-wrapper > .key-element {
  padding-left: 0.5rem;
}

#keyboard-accent-char-menu .keyboard-key:last-child > .visual-wrapper > .key-element {
  padding-right: 0.5rem;
}

#keyboard-accent-char-menu.kbr-menu-left .keyboard-key > .visual-wrapper > .key-element {
  border-left: 1px solid #008eab;
  border-right: 0;
}

#keyboard-accent-char-menu.kbr-menu-left .keyboard-key:first-child > .visual-wrapper > .key-element {
  padding-right: 0.5rem;
  padding-left: 0;
}

#keyboard-accent-char-menu.kbr-menu-left .keyboard-key:last-child > .visual-wrapper > .key-element {
  padding-left: 0.5rem;
  padding-right: 0;
}

/* Highlighted special accent characters. These keys appear in the popover
bubble above the key when you tap and hold. */
#keyboard-accent-char-menu .keyboard-key.highlighted > .visual-wrapper > .key-element {
  background-color: #008eab;
}

/* Multi-row menu styles */
#keyboard-accent-char-menu.multi-row {
  border-radius: 0.2rem;
  margin-left: 0;
  background-color: #00a1c2;
}

#keyboard-accent-char-menu.multi-row::before {
  content: '';
  background-color: #19a8c2;
  width: 100%;
  height: 50%;
  bottom: 0;
  left: 0;
  position: absolute;
}

#keyboard-accent-char-menu.multi-row.kbr-menu-left {
  /* To make the divider align the key row */
  margin-right: 1px;
}

/* revert the expanded width because it won't have rounded corner */
#keyboard-accent-char-menu.multi-row .keyboard-key:first-child,
#keyboard-accent-char-menu.multi-row .keyboard-key:last-child {
  min-width: 2.6rem;
}

#keyboard-accent-char-menu.multi-row .keyboard-key:first-child > .visual-wrapper > .key-element,
#keyboard-accent-char-menu.multi-row .keyboard-key:last-child  > .visual-wrapper > .key-element {
  padding-left: 0;
  padding-right: 0;
}

/*
 * Reset the margin used to align with the underneath key row, this is because
 * generally, the key in alternatives char menu would have the same width as a
 * normal key.
 */
.landscape #keyboard-accent-char-menu {
  margin-left: 0;
}

.landscape #keyboard-accent-char-menu.kbr-menu-left {
  /* Shift 1 pixel to align with the key row. */
  margin-right: 0.1rem;
}

#keyboard.full-candidate-panel {
  /* Occupy the space for the absolute-positioned full panel
     = height of the panel + top border + bottom border */
  padding-top: 3.2rem;
}

.keyboard-candidate-panel {
  background: #252220;
  padding: 0;
  border-top: 0.2rem solid #606b6e;
  border-bottom: 0.2rem solid #606b6e;
  height: 2.8rem;
  width: 100%;
  overflow: hidden;
  white-space: normal;
}

#keyboard.full-candidate-panel .keyboard-candidate-panel {
  position: absolute;
  top: 0;
  height: -moz-calc(100% - 0.2rem);
  border-bottom: none;
  z-index: 1;
}

.keyboard-candidate-panel-toggle-button {
  z-index: 1;
  position: absolute;
  top: 0.2rem; /* width of the candidate panel border */
  right: 0;
  font-size: 0;
  height: 2.6rem; /* height of the candidate panel */
  background: #252220 url('images/icon_extend.png') center center no-repeat;
  background-size: 2.4rem;
  min-width: 4rem;
}

.keyboard-candidate-panel-toggle-button.hide {
  visibility: hidden;
}

#keyboard.full-candidate-panel .keyboard-candidate-panel-toggle-button {
  background-image: url('images/icon_close.png');
  top: 0;
}

#keyboard.full-candidate-panel .suggestions-container {
  overflow-y: auto;
  height: 100%;
}

.keyboard-candidate-panel .candidate-row {
  border-top: 0.1rem solid #000000;
  display: flex;
}

.keyboard-candidate-panel .candidate-row:first-child {
  border-top: none;
}

#keyboard.candidate-panel .keyboard-candidate-panel .candidate-row {
  display: none;
}

#keyboard.candidate-panel .keyboard-candidate-panel .candidate-row-first {
  display: flex;
}

.keyboard-candidate-panel-toggle-button.highlighted,
.keyboard-candidate-panel .candidate-row span.highlighted {
  background-color: #008eab;
  color: #333333;
}

.keyboard-candidate-panel .candidate-row span {
  display: inline-block;
  font-size: 2rem;
  color: #a6a6a6;
  text-align: center;
  line-height: 2.8rem;
  background: transparent url('images/divider.png') right center no-repeat;
  background-size: auto 4rem;
  border: none;
  flex: auto;
}

/* Dummy element for flex box to look like a grid */
.keyboard-candidate-panel .candidate-row span:empty {
  border: none;
  background: none;
}

.keyboard-candidate-panel.vietnamese .candidate-row span {
  font-size: 1.7rem;
}

/* for latin suggestions we don't need such a tall box */
/* and in latin we hide the toggle button, so we can be full-width */
.candidate-panel .keyboard-candidate-panel.latin {
  display: block;
  white-space: nowrap;
  height: 3rem;
  width: 100%;
  background: #333;
  border-top: none;
  border-bottom: 0.1rem solid #a0a6a8;
  overflow: hidden;
}

.full-candidate-panel .keyboard-candidate-panel[data-truncated] .suggestions-container::after {
  content: '…';
  background: none ! important;
  border-color: transparent ! important;

  display: block;
  text-align: center;
  margin: 0;
  height: 2.8rem;
  font-size: 2rem;
  color: #a6a6a6;
  line-height: 2.8rem;
}

.keyboard-candidate-panel.latin span {
  display: inline-block;
  font-size: 2.0rem;
  font-weight: normal;
  line-height: 3rem;
  height: 3rem;
  border: 0;
  margin: 0;
  padding: 0;
  background: none;
  color: #fff;
  text-align: center;
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
  pointer-events: none;
}

.keyboard-candidate-panel.latin div.autocorrect span {
  color: #0ac;
}

/*
 * Don't display the toggle button for latin suggestions.
 * For now, at least, we only ever get 3 at a time
 */
#keyboard.candidate-panel .keyboard-candidate-panel-toggle-button.latin {
  display: none;
}

.keyboard-candidate-panel span[data-active],
.keyboard-candidate-panel-toggle-button[data-active] {
  background: -moz-linear-gradient(bottom, rgb(191,191,183) 10%, rgb(161,158,153) 90%);
}

/* A note to show on the key to indicate the alternative char */
.alt-note {
  position: absolute;
  top: 0.5rem;
  color: #a6a6a6;
  font: 1.6rem/1.6rem "Keyboard Symbols", sans-serif;
}

.keyboard-key.highlighted  .alt-note {
  visibility: hidden;
}

.keyboard-key.big-key > .visual-wrapper .key-element {
  font-size: 3.2rem;
  font-weight: normal;
  color: #fff;
}

.keyboard-key.big-key .visual-wrapper .alt-note {
    width: 100%;
    text-align: center;
    text-indent: 4rem;
    font-size: 1.6rem;
    top: 0.2rem;
    padding-left: 1rem;
    color: #a6a6a6;
}

.keyboard-key.big-key.highlighted .alt-note {
  visibility: visible;
}

/* Increase tap area for first / last keys in a row that
  doesn't fill full width */
.keyboard-key:first-child {
  text-align: right;
}
.keyboard-key:last-child {
  text-align: left;
}

.landscape .keyboard-key.special-key > .visual-wrapper > .key-element {
  font: 500 2.1rem/var(--key-height) 'Keyboard Symbols', sans-serif;
}

.landscape .keyboard-key.highlighted > .visual-wrapper > .popup {
    top: -7rem;
    left: calc(50% - 3.5rem);
    width: 7rem;
    height: 7rem;
    line-height: 7rem;
    font-size: 3.5rem;
}

/*
 * Styles for the dismiss suggestions button in the candidate panel
 */
.keyboard-candidate-panel.latin > .dismiss-suggestions-button {
  height: 100%;
  /*
   * the icon is 2.4rem wide but the visual space only takes up 1.4rem
   * we want 10 blank pixels to the left and 15 to the right. But the first
   * suggestion has a 0.3rem margin, so we only need to add 1.2rem to the
   * icon size.
   */
  width: 3.6rem;
  background: url('images/icon_dismiss.png') 0.5rem center /2.4rem no-repeat;
  margin: 0;
  padding: 0;
  float: left;
  visibility: visible;
}

.keyboard-candidate-panel.latin > .dismiss-suggestions-button.hide {
  visibility: hidden;
}

.keyboard-candidate-panel.latin > .suggestions-container {
  display: flex;
  width: calc(100% - 3.6rem);
  float: left;
}

.keyboard-candidate-panel.latin > .suggestions-container > div {
  text-align: center;
  display: inline-block;
  height: 100%;
  margin: 0 0.3rem;
  padding: 0;
  border: 0;
  overflow: hidden;
  -moz-box-sizing: border-box;
  flex: 1;
}

.handwriting-pad {
  background-color: #ebeced;
  margin: -1px;
  float: left;
}

/* Indicator for keyboard hiding action */
.keyboard-key[data-keycode="32"] {
  background: url('images/icon_hide_keyboard.png') right 0.4rem top 0.4rem / 1.6rem no-repeat;
}

.keyboard-key.highlighted[data-keycode="32"] {
  background-color: #4a5255;
}

/* Indicator for alternate indicator */
.alternate-indicator {
  background: url('images/icon_alternate_keyboard.png') left 50% bottom 0.4rem / 1.4rem no-repeat;
}

.search-icon {
  background: url('images/icon_search.png') left calc(50% - 0.1rem) bottom 1.2rem / 3rem no-repeat;
}

/* hide actual text for search-icon */
.keyboard-key.search-icon > .visual-wrapper > .key-element,
.keyboard-key.search-icon.highlighted > .visual-wrapper > .key-element {
  color: transparent;
}

/* With symbols on the bottom */
.keyboard-key.bottom-symbol > .visual-wrapper:after {
  content: '';
  display: block;
  bottom: 0;
  position: absolute;
  width: 100%;
  text-align: center;
  font-size: 1.2rem;
  color: #a6a6a6;
  margin-bottom: -0.3rem;
}

.keyboard-key.bottom-symbol.highlighted > .visual-wrapper:after {
  opacity: 1;
}

.keyboard-key.bottom-symbol[data-keycode="50"] > .visual-wrapper:after {
  content: 'ABC';
}

.keyboard-key.bottom-symbol[data-keycode="51"] > .visual-wrapper:after {
  content: 'DEF';
}

.keyboard-key.bottom-symbol[data-keycode="52"] > .visual-wrapper:after {
  content: 'GHI';
}

.keyboard-key.bottom-symbol[data-keycode="53"] > .visual-wrapper:after {
  content: 'JKL';
}

.keyboard-key.bottom-symbol[data-keycode="54"] > .visual-wrapper:after {
  content: 'MNO';
}

.keyboard-key.bottom-symbol[data-keycode="55"] > .visual-wrapper:after {
  content: 'PQRS';
}

.keyboard-key.bottom-symbol[data-keycode="56"] > .visual-wrapper:after {
  content: 'TUV';
}

.keyboard-key.bottom-symbol[data-keycode="57"] > .visual-wrapper:after {
  content: 'WXYZ';
}

/* All keys except 0 should be move up to 2px. */
.keyboard-key.bottom-symbol:not([data-keycode="48"]) > .visual-wrapper > .key-element {
  top: -0.2rem;
}

/* We need to put '*' in the middle, so its top is set top 8px. */
.keyboard-key.bottom-symbol > .visual-wrapper > .key-element[data-label="*"] {
  top: 0.8rem;
}

/* Based on UI spec, [Backspace] is put in middle and 16px size. */
.keyboard-key.bottom-symbol[data-keycode="8"] > .visual-wrapper > .key-element {
  top: 0;
  font-size: 1.6rem;
}

/* Based on UI spec, alt-note '+' is set bigger. */
.keyboard-key.bottom-symbol[data-keycode="48"] > .visual-wrapper > .alt-note {
  font-size: 1.8rem;
}

.emoji {
  font-family: sans-serif;
  border: none;
  background: none;
  font-size: 3rem;
  min-height: 5rem;
  min-width: 16.66vw;
  padding: 0;
  flex: 1;
}

.emoji.highlighted {
  background-color: #4a5255;
}

.swipe-panel {
  position: relative;
  height: 16.2rem;
  background-color: #606b6e;
}

.swipe-section {
  position: absolute;
  width: 100%;
  transform: translateX(99.99%);
  will-change: transform;
  display: flex;
  flex-wrap: wrap;
}

.swipe-section:first-child {
  transform: translateX(0);
}

.emoji-ime-switch {
  background: url('images/emoji/keyboard_ic_ime_emoji_off.png') center center / 3rem no-repeat,
              url('images/icon_alternate_keyboard.png') left 50% bottom 0.4rem / 1.4rem no-repeat;
}

.emoji-ime-switch.highlighted {
  background-image: url('images/emoji/keyboard_ic_ime_emoji_pressed.png');
}

/* styles for the switching keys of different emoji categories */
.swipe-switching-buttons {
  background-color: #525a5d;
}

.swipe-switching-buttons > .active {
  background-color: #606b6e;
  border-bottom: 0.2rem solid #00aacb;
}

.swipe-switching-buttons > .keyboard-key > .visual-wrapper > .key-element {
  border-right: 0.1rem solid transparent;
}

.emoji-recent {
  background: #576367 url('images/emoji/keyboard_ic_recent_off.png') center center / 3rem no-repeat;
}

.keyboard-key.emoji-recent > .visual-wrapper > .key-element {
  border-right: 0.1rem solid transparent;
  border-left: 0.1rem solid #525a5d;
}

.emoji-recent.highlighted {
  background-image: url('images/emoji/keyboard_ic_recent_pressed.png');
}

.emoji-people {
  background: #576367 url('images/emoji/keyboard_ic_ppl_off.png') center center / 3rem no-repeat;
}

.emoji-people.active {
  background-image: url('images/emoji/keyboard_ic_ppl_on.png');
}

.emoji-people.highlighted {
  background-image: url('images/emoji/keyboard_ic_ppl_pressed.png');
}

.emoji-nature {
  background: #576367 url('images/emoji/keyboard_ic_nature_off.png') center center / 3rem no-repeat;
}

.emoji-nature.active {
  background-image: url('images/emoji/keyboard_ic_nature_on.png');
}

.emoji-nature.highlighted {
  background-image: url('images/emoji/keyboard_ic_nature_pressed.png');
}

.emoji-object {
  background: #576367 url('images/emoji/keyboard_ic_object_off.png') center center / 3rem no-repeat;
}

.emoji-object.active {
  background-image: url('images/emoji/keyboard_ic_object_on.png');
}

.emoji-object.highlighted {
  background-image: url('images/emoji/keyboard_ic_object_pressed.png');
}

.emoji-place {
  background: #576367 url('images/emoji/keyboard_ic_place_off.png') center center / 3rem no-repeat;
}

.emoji-place.active {
  background-image: url('images/emoji/keyboard_ic_place_on.png');
}

.emoji-place.highlighted {
  background-image: url('images/emoji/keyboard_ic_place_pressed.png');
}

.emoji-symbol {
  background: #576367 url('images/emoji/keyboard_ic_symbol_off.png') center center / 3rem no-repeat;
}

.emoji-symbol.active {
  background-image: url('images/emoji/keyboard_ic_symbol_on.png');
}

.emoji-symbol.highlighted {
  background-image: url('images/emoji/keyboard_ic_symbol_pressed.png');
}

.keyboard-key.emoji-symbol > .visual-wrapper > .key-element {
  border-right: 0.1rem solid #525a5d ;
  border-left: 0.1rem solid transparent;
}

/* Section indicator for emoji sections */
.section-indicator-container {
  bottom: 0;
  position: absolute;
  width: 100%;
  height: 1.7rem;
  text-align: center;
}

.section-indicator {
  display: inline-block;
  background-color: #545d60;
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 50%;
  margin: 0.7rem 0.3rem 0.7rem 0;
}

.section-indicator.active {
  background-color: #3e4446;
}

/*
 * Specific layout rules; When a layoutX.js has specificCssRule set to true
 * you can use layout id (Example: ar for Arabic) as a class name.
 * This is useful is cases where characters are outlining their containers.
 */

/* Arabic */
.ar .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 1.8rem;
}

.ar .keyboard-key > .visual-wrapper > .key-element[data-label="ض"],
.ar .keyboard-key > .visual-wrapper > .key-element[data-label="ش"] {
  margin-left:-.5rem;
}

.ar .keyboard-key > .visual-wrapper > .key-element[data-label="س"] {
  margin-left:-.2rem;
}

.ar .keyboard-key > .visual-wrapper > .key-element[data-label="ص"] {
  margin-left:-.1rem;
}

/* Bangla Probhat */
.bn-Probhat .keyboard-key:not(.special-key) > .visual-wrapper > .key-element[data-label="ো"] {
  font-size: 1.6rem;
}

.bn-Probhat .keyboard-key:not(.special-key) > .visual-wrapper > .key-element[data-label="া"] {
  font-size: 1.7rem;
}

/* Dzongkha */
.dz-BT .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 2rem;
}
.dz-BT .keyboard-key > .visual-wrapper > .key-element[data-label="༃"],
.dz-BT .keyboard-key > .visual-wrapper > .key-element[data-label="༼"],
.dz-BT .keyboard-key > .visual-wrapper > .key-element[data-label="༽"] {
  font-size: 1.6rem;
}

/* Hindi */
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="औ"],
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="आ"],
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="ओ"],
.hi .keyboard-key > .visual-wrapper > .key-element[data-label="ऑ"] {
  font-size: 2rem;
}

/* Myanmar */
.my .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 2.2rem;
}
.landscape .my .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 2rem;
}

/* Persian */
.fa .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 1.9rem;
}

.fa .keyboard-type-container > .visual-wrapper > .key-element[data-label="﷼"] {
  font-size: 1.9rem;
}

.fa .keyboard-key > .visual-wrapper > .key-element[data-label="ض"],
.fa .keyboard-key > .visual-wrapper > .key-element[data-label="ش"] {
  margin-left:-.5rem;
}

.fa .keyboard-key > .visual-wrapper > .key-element[data-label="س"] {
  margin-left:-.2rem;
}

.fa .keyboard-key > .visual-wrapper > .key-element[data-label="ص"] {
  margin-left:-.1rem;
}

.fa .keyboard-key > .visual-wrapper > .key-element[data-label="◂┇▸"] {
  font-size: 1.2rem;
}

/* Tamil */
.ta .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 2.2rem;
}

.ta .keyboard-key > .visual-wrapper > .popup {
  width: auto;
  min-width: 4.4rem;
  padding-left: 0.6rem;
  padding-right: 0.6rem;
  border-radius: 2.8rem;
}

.ta .keyboard-row button:last-child.highlighted > .visual-wrapper > .popup {
  left: auto;
  right: 0;
}

.ta .special-key > .visual-wrapper > .key-element[data-label="அஆஇ"] {
  font-size: 1.1rem;
}

.landscape .ta .special-key > .visual-wrapper > .key-element[data-label="அஆஇ"] {
  font-size: 1.7rem;
}

.landscape .ta .keyboard-key.highlighted > .visual-wrapper > .popup {
  top: -7rem;
  left: calc(50% - 3.5rem);
  width: auto;
  min-width: 5.6rem;
  height: 7rem;
  line-height: 7rem;
  font-size: 3.5rem;
  border-radius: 3.5rem;
  padding-left: 0.7rem;
  padding-right: 0.7rem;
}

.landscape .ta .keyboard-row button:last-child.highlighted > .visual-wrapper > .popup {
  left: auto;
  right: 0;
}

.landscape .ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஔ"],
.landscape .ta .keyboard-key > .visual-wrapper > .key-element[data-label="ொ"] {
  font-size: 2.5rem;
}
.landscape .ta .keyboard-key > .visual-wrapper > .key-element[data-label="ௌ"] {
  font-size: 2rem;
}

.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஹ"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஊ"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ா"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ூ"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ே"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ெ"] {
  font-size: 1.7rem;
}

.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ௗ"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ை"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ண"] {
  font-size: 1.4rem;
}

.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ஔ"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ொ"],
.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ோ"] {
  font-size: 1.2rem;
}

.ta .keyboard-key > .visual-wrapper > .key-element[data-label="ௌ"] {
  font-size: 1.1rem;
}

/* Telugu */
.te .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 2rem;
}
.portrait .te .keyboard-key > .visual-wrapper > .key-element[data-label="ీఊ"] {
  font-size: 1.4rem;
}
.portrait .te .keyboard-key > .visual-wrapper > .key-element[data-label="ఋ"] {
  font-size: 1.6rem;
}

/* Chinese Zhuyin */
.zh-Hant-Zhuyin .keyboard-key:not(.special-key) > .visual-wrapper > .key-element {
  font-size: 2rem;
}
