/* keyboard - jQuery UI Widget */
.ui-keyboard { padding:.1em; position:absolute; top:auto !important; left:50% !important; margin-left:-17em !important; right:auto !important; bottom:50px; width:34em; font-size:30px; z-index:16000; text-align:center; background:#ccc; }
.ui-keyboard-has-focus { z-index:16001; }
.ui-keyboard div { font-size:30px; }
.ui-keyboard-button { height:2em; width:2em; min-width:1em; margin:0.2em 0.1em 0; font:30px/2 Joy; cursor:pointer; overflow:hidden; -moz-user-focus:ignore; background:#fff; border:none; color:#333; }
.ui-keyboard-button:focus { background:#aaa; }
.ui-keyboard-button span { padding:0; margin:0; white-space:nowrap; display:inline-block; }
.ui-keyboard-button-endrow { clear:left; }
.ui-keyboard-widekey { min-width:4em; width:auto; }
.ui-keyboard-actionkey { text-transform:uppercase; }
.ui-keyboard-space { width:15em; position:relative; }
.ui-keyboard-space span, .ui-keyboard-empty span { font:0/0 a; text-shadow:none; color:transparent; } /* see http://nicolasgallagher.com/another-css-image-replacement-technique/ */
.ui-keyboard-preview-wrapper { text-align:center; }
.ui-keyboard-preview { text-align:left; margin:0 0 3px 0; display:inline; width:99%;} /* width is calculated in IE, since 99% = 99% full browser width =( */ 
.ui-keyboard-keyset { text-align:center; white-space:nowrap; padding:0.5em 0.5em 0.75em; }
.ui-keyboard-keyset-default { text-align:center; white-space:nowrap; }
.ui-keyboard-input { text-align:left; }
.ui-keyboard-placeholder { color:#888; }
.ui-keyboard-nokeyboard { color:#888; border-color:#888; } /* disabled or readonly inputs, or use input[disabled='disabled'] { color:#f00; } */
.ui-keyboard-button.disabled { opacity:0.5; filter:alpha(opacity=50); } /* used by the acceptValid option to make the accept button appear faded */
.ui-keyboard-spacer { display:inline-block; width:1px; height:0; }
.ui-keyboard-accept { padding-left:20px; padding-right:20px; }
.ui-keyboard-cancel span::before { content:'\f00d'; position:absolute; display:block; width:50px; height:50px; top:-30px; right:-30px; background:#888; border-radius:100%; font:28px/50px FontAwesome; color:#fff; text-align:center; }

/* combo key styling - toggles diacritics on/off */
.ui-keyboard-button.ui-keyboard-combo.ui-state-default { border-color:#ffaf0f; }

/* (in)valid inputs */
button.ui-keyboard-accept.ui-keyboard-valid-input { border-color:#0c0; background:#080; color:#fff; }
button.ui-keyboard-accept.ui-keyboard-valid-input:hover { background:#0a0; }
button.ui-keyboard-accept.ui-keyboard-invalid-input { border-color:#c00; background:#800; color:#fff; }
button.ui-keyboard-accept.ui-keyboard-invalid-input:hover { background:#a00; }

/*** jQuery Mobile definitions ***/
/* jQuery Mobile styles - need wider buttons because of font size and text-overflow:ellipsis */
.ui-bar .ui-keyboard-button { width:3em; display:inline-block; }
.ui-bar .ui-keyboard-widekey { width:5.5em; }
.ui-bar .ui-keyboard-space { width:15em; }
.ui-bar .ui-keyboard-space span { visibility:hidden; } /* hides the ellipsis */
.ui-bar .ui-keyboard-keyset { line-height:0.5em; }
.ui-bar input.ui-input-text, .ui-bar textarea.ui-input-text { width:95%; }

/* over-ride padding set by mobile ui theme - needed because the mobile script wraps button text with several more spans */
.ui-bar .ui-btn-inner { height:2em; padding:0.2em 0; margin:0; }
.ui-bar .ui-btn { margin:0; font-size:30px; } /* mobile default size is 13px */