/**
 * Copyright 2010-2015, Google Inc.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *     * Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above
 * copyright notice, this list of conditions and the following disclaimer
 * in the documentation and/or other materials provided with the
 * distribution.
 *     * Neither the name of Google Inc. nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
/* Copyright 2014 Google Inc. All Rights Reserved. */
.inputview-layoutview{position:relative;-webkit-user-select:none}.inputview-skv{display:inline-block;overflow:hidden}.inputview-sk{margin:0 7px 7px 0;position:relative;background-color:#ffffff}#us-compact .inputview-sk{margin:0 11px 11px 0}.inputview-character{position:absolute;text-align:center;color:#bbb;font-size:16px;display:inline-block}.inputview-ch{color:#666;font-size:23px}.inputview-vertical{display:inline-block}.inputview-linear{display:inline-block}.inputview-view{position:fixed;bottom:0;left:0;-webkit-box-shadow:-5px 0 5px #ccc;border:1px solid #cfcfcf;background-color:#eeeeee;-webkit-user-select:none}.inputview-font{font-family:Roboto,Noto Sans,Sans-Serif}.inputview-font[lang=am]{font-family:Roboto,Noto Sans Armenian,Sans-Serif}.inputview-font[lang=il]{font-family:Roboto,Noto Sans Hebrew,Sans-Serif}.inputview-font[lang=jp]{font-family:Roboto,MotoyaG04Gothic,IPAGothic,Sans-Serif}.inputview-font[lang=ar]{font-family:Roboto,Noto Arabic Naskh ui,Sans-Serif}.inputview-font[lang=bn]{font-family:Roboto,Noto Sans Bengali,Sans-Serif}.inputview-font[lang=ethi]{font-family:Roboto,Noto Sans Ethiopic,Sans-Serif}.inputview-font[lang=fa]{font-family:Roboto,Noto Arabic Naskh ui,Sans-Serif}.inputview-font[lang=gu]{font-family:Roboto,Noto Sans Gujarati,Lohit Gujarati,Sans-Serif}.inputview-font[lang=kn]{font-family:Roboto,Noto Sans Kannada,Lohit Kannada,Sans-Serif}.inputview-font[lang=ml]{font-family:Roboto,Noto Sans Malayalam,Lohit Malayalam,Sans-Serif}.inputview-font[lang=ta]{font-family:Roboto,Noto Sans Tamil,Lohit Tamil,Sans-Serif}.inputview-font[lang=te]{font-family:Roboto,Noto Sans Telugu,Lohit Telugu,Sans-Serif}.inputview-font[lang=th]{font-family:Roboto,Noto Sans Thai,Sans-Serif}.inputview-font[lang=zh-CN]{font-family:Roboto,MYingHeiGB18030,Droid Sans Fallback,Sans-Serif}.inputview-font[lang=zh-TW],.inputview-font[lang=zh-HK]{font-family:Roboto,MYingHeiB5HK,Droid Sans Fallback,Sans-Serif}.inputview-font[lang=kr]{font-family:Roboto,NanumGothic,Sans-Serif}.inputview-modifier{display:table-cell;vertical-align:middle;font-size:15px;text-align:center;position:relative}.inputview-altdata-view{position:absolute;z-index:999;border:1px solid #ccc;background-color:white}.inputview-altdata-key{display:table-cell;font-size:23px;vertical-align:middle;text-align:center}.inputview-candidate.inputview-candidate-highlight{color:#262626}.inputview-candidate-view{overflow:hidden;display:inline-block}.inputview-candidate{display:table-cell;font-size:18px;color:#555555;vertical-align:middle;text-align:center}.inputview-candidate-separator{border-left:1px solid #ddd;position:relative;display:inline-block}.inputview-table-cell{display:table-cell;vertical-align:middle;text-align:center}.inputview-title{font-size:15px;color:#bfbfbf}.inputview-special-key-name{display:block}.inputview-modifier-state-icon{background-image:url('images/modifier-off.png');background-repeat:no-repeat;background-size:16px 4px;display:inline-block;width:16px;height:4px}.inputview-modifier-state-icon.inputview-modifier-on{background-image:url('images/modifier-on.png')}.inputview-modifier-state-icon.inputview-hold{-webkit-box-shadow:0 0 5px 1px #397ffb;opacity:0.9}.inputview-altdata-cover{position:fixed;bottom:0;left:0;background-color:white;opacity:0.5;z-index:1}.inputview-arrow-key{background-repeat:no-repeat;display:inline-block;width:16px;height:13px;background-size:16px 13px}.inputview-up-key{background-image:url('images/up.png')}.inputview-down-key{background-image:url('images/down.png')}.inputview-left-key{background-image:url('images/left.png')}.inputview-right-key{background-image:url('images/right.png')}.inputview-special-key-bg{background-color:#ddd}.inputview-hide-keyboard-icon{background:transparent url('images/hide.png') 0 0 no-repeat;background-size:18px 18.5px;display:inline-block;width:18px;height:18.5px}.inputview-element-highlight{background-color:#dddddd}.inputview-special-key-highlight{background-color:#cccccc}.inputview-backspace-icon{background:transparent url('images/backspace.png');background-size:22.5px 13.5px;display:inline-block;width:22.5px;height:13.5px}.inputview-enter-icon{background:transparent url('images/enter.png');background-size:18px 13.5px;display:inline-block;width:18px;height:13.5px}.inputview-shift-icon{background:transparent url('images/shift.png');background-size:18.5px 13.5px;display:inline-block;width:18.5px;height:13.5px}.inputview-tab-icon{background:transparent url('images/tab.png');background-size:25.5px 13.5px;display:inline-block;width:25.5px;height:13.5px}.inputview-capslock-dot{background-color:#ccc;width:4px;height:4px;position:absolute;top:8px;right:8px}.inputview-capslock-dot-highlight{background-color:#4285f4}.inputview-hint-text{font-size:12px;color:grey;position:absolute;top:8px;right:8px}.inputview-compact-key{font-size:28px;color:#555555}.inputview-compact-switcher{background:transparent url('images/compact.png');background-size:19px 9px;display:inline-block;width:19px;height:9px}.inputview-regular-switcher{background:transparent url('images/regular_size.png');background-size:19px 14px;display:inline-block;width:19px;height:14px}#Space{color:#bbbbbb;font-size:18px}