#keyboardInputMaster {
    position:absolute;
    font:normal 0.8rem Arial,sans-serif;
    border-top:0.1em solid #eeeeee;
    border-right:0.1em solid #888888;
    border-bottom:0.1em solid #444444;
    border-left:0.1em solid #cccccc;
    border-collapse:separate;
    border-radius:0.6em;
    box-shadow:0 0.2em 1em #444444;
    opacity:0.95;
    filter:alpha(opacity=95);
    background-color:#dddddd;
    text-align:left;
    z-index:1000000;
    width:auto;
    height:auto;
    min-width:0;
    min-height:0;
    margin:0;
    padding:0;
    line-height:normal;
    pointer-events:auto;
    -webkit-user-select:none;
    -ms-user-select:none;
    user-select:none;
    cursor:default;
  }
  #keyboardInputMaster * {
    position:static;
    color:#000000;
    opacity:1;
    filter:alpha(opacity=100);
    background:transparent;
    font:normal 0.8rem Arial,sans-serif;
    width:auto;
    height:auto;
    min-width:0;
    min-height:0;
    margin:0;
    padding:0;
    border:0 none;
    outline:0;
    vertical-align:baseline;
    line-height:1.3em;
    pointer-events:auto;
  }
  #keyboardInputMaster table {
    table-layout:auto;
  }
  #keyboardInputMaster.keyboardInputSize1,
  #keyboardInputMaster.keyboardInputSize1 * {
    font-size:0.7rem;
  }
  #keyboardInputMaster.keyboardInputSize3,
  #keyboardInputMaster.keyboardInputSize3 * {
    font-size:0.9rem;
  }
  #keyboardInputMaster.keyboardInputSize4,
  #keyboardInputMaster.keyboardInputSize4 * {
    font-size:1rem;
  }
  #keyboardInputMaster.keyboardInputSize5,
  #keyboardInputMaster.keyboardInputSize5 * {
    font-size:1.1rem;
  }
  
  #keyboardInputMaster thead tr th {
    padding:0.3em 0.3em 0.1em 0.3em;
    background-color:#999999;
    white-space:nowrap;
    text-align:right;
    border-radius:0.6em 0.6em 0 0;
  }
  #keyboardInputMaster thead tr th div {
    float:left;
    font-size:130% !important;
    height:1.3em;
    font-weight:bold;
    position:relative;
    z-index:1;
    margin-right:0.5em;
    cursor:pointer;
    background-color:transparent;
  }
  #keyboardInputMaster thead tr th div ol {
    position:absolute;
    left:0;
    top:90%;
    list-style-type:none;
    height:9.4em;
    overflow-y:auto;
    overflow-x:hidden;
    background-color:#f6f6f6;
    border:0.1em solid #999999;
    display:none;
    text-align:left;
    width:12em;
  }
  #keyboardInputMaster thead tr th div ol li {
    padding:0.2em 0.4em;
    cursor:pointer;
    white-space:nowrap;
    width:12em;
  }
  #keyboardInputMaster thead tr th div ol li.selected {
    background-color:#ffffcc;
  }
  #keyboardInputMaster thead tr th div ol li:hover {
    background-color:#dddddd;
  }
  #keyboardInputMaster thead tr th > span,
  #keyboardInputMaster thead tr th > strong,
  #keyboardInputMaster thead tr th > small,
  #keyboardInputMaster thead tr th > big {
    display:inline-block;
    padding:0 0.3em;
    height:1.4em;
    line-height:1.4em;
    border-top:0.1em solid #e5e5e5;
    border-right:0.1em solid #5d5d5d;
    border-bottom:0.1em solid #5d5d5d;
    border-left:0.1em solid #e5e5e5;
    background-color:#cccccc;
    cursor:pointer;
    margin:0 0 0 0.3em;
    border-radius:0.3em;
    vertical-align:middle;
    transition:background-color .15s ease-in-out;
  }
  #keyboardInputMaster thead tr th > strong > big {
    font-weight:bold;
    font-size:150%;
    vertical-align:middle;
    line-height:0;
  }
  #keyboardInputMaster thead tr th > small {
    border-radius:0.3em 0 0 0.3em;
    border-right:0.1em solid #aaaaaa;
    padding-right:0.2em;
  }
  #keyboardInputMaster thead tr th > big {
    border-radius:0 0.3em 0.3em 0;
    border-left:0 none;
    margin:0;
    padding-left:0.2em;
  }
  #keyboardInputMaster thead tr th > span:hover,
  #keyboardInputMaster thead tr th > strong:hover,
  #keyboardInputMaster thead tr th > small:hover,
  #keyboardInputMaster thead tr th > big:hover {
    background-color:#dddddd;
  }
  
  #keyboardInputMaster tbody tr td {
    text-align:left;
    padding:0.2em 0.3em 0.3em 0.3em;
    vertical-align:top;
  }
  #keyboardInputMaster tbody tr td div {
    text-align:center;
    position:relative;
    zoom:1;
  }
  #keyboardInputMaster tbody tr td table {
    white-space:nowrap;
    width:100%;
    border-collapse:separate;
    border-spacing:0;
  }
  #keyboardInputMaster tbody tr td#keyboardInputNumpad table {
    margin-left:0.2em;
    width:auto;
  }
  #keyboardInputMaster tbody tr td table.keyboardInputCenter {
    width:auto;
    margin:0 auto;
  }
  #keyboardInputMaster tbody tr td table tbody tr td {
    vertical-align:middle;
    padding:0 0.45em;
    white-space:pre;
    height:1.8em;
    font-family:'Lucida Console','Arial Unicode MS',monospace;
    border-top:0.1em solid #e5e5e5;
    border-right:0.1em solid #5d5d5d;
    border-bottom:0.1em solid #5d5d5d;
    border-left:0.1em solid #e5e5e5;
    background-color:#eeeeee;
    cursor:default;
    min-width:0.75em;
    border-radius:0.2em;
    transition:background-color .15s ease-in-out;
  }
  #keyboardInputMaster tbody tr td table tbody tr td.last {
    width:99%;
  }
  #keyboardInputMaster tbody tr td table tbody tr td.space {
    padding:0 4em;
  }
  #keyboardInputMaster tbody tr td table tbody tr td.deadkey {
    background-color:#ccccdd;
  }
  #keyboardInputMaster tbody tr td table tbody tr td.target {
    background-color:#ddddcc;
  }
  #keyboardInputMaster tbody tr td table tbody tr td:hover {
    border-top:0.1em solid #d5d5d5;
    border-right:0.1em solid #555555;
    border-bottom:0.1emsolid #555555;
    border-left:0.1em solid #d5d5d5;
    background-color:#cccccc;
  }
  #keyboardInputMaster thead tr th span:active,
  #keyboardInputMaster thead tr th span.pressed,
  #keyboardInputMaster tbody tr td table tbody tr td:active,
  #keyboardInputMaster tbody tr td table tbody tr td.pressed {
    border-top:0.1em solid #555555 !important;
    border-right:0.1em solid #d5d5d5;
    border-bottom:0.1em solid #d5d5d5;
    border-left:0.1em solid #555555;
    background-color:#cccccc;
  }
  
  #keyboardInputMaster tbody tr td table tbody tr td small {
    display:block;
    text-align:center;
    font-size:0.6em !important;
    line-height:1.1em;
  }
  
  #keyboardInputMaster tbody tr td div label {
    position:absolute;
    bottom:0.2em;
    left:0.3em;
  }
  #keyboardInputMaster tbody tr td div label input {
    background-color:#f6f6f6;
    vertical-align:middle;
    font-size:inherit;
    width:1.1em;
    height:1.1em;
  }
  #keyboardInputMaster tbody tr td div var {
    position:absolute;
    bottom:0;
    right:0.3em;
    font-weight:bold;
    font-style:italic;
    color:#444444;
  }
  
  #keyboardInputMaster #keyboardInputNumpadBksp,
  #keyboardInputMaster.numpadOnly #keyboardInputSelect,
  #keyboardInputMaster.numpadOnly #keyboardInputNumpadToggle,
  #keyboardInputMaster.numpadOnly #keyboardInputKeyboard,
  #keyboardInputMaster.numpadOnly #keyboardInputNumpad td {
    display:none;
  }
  #keyboardInputMaster.numpadOnly #keyboardInputNumpadBksp {
    display:inline-block;
  }
  #keyboardInputMaster.numpadOnly #keyboardInputNumpad table {
    margin-left:auto;
    margin-right:auto;
  }
  #keyboardInputMaster.numpadOnly > thead > tr > th > * {
    font-size:125%;
  }
  #keyboardInputMaster.numpadOnly #keyboardInputNumpad td.digit,
  #keyboardInputMaster.numpadOnly #keyboardInputNumpad.showNegative td.negative,
  #keyboardInputMaster.numpadOnly #keyboardInputNumpad.showDecimal td.decimal {
    display:table-cell;
    font-size:200%;
    padding:0 0.9em;
  }
  
  .keyboardInputInitiator {
    margin:0 0.3em;
    vertical-align:middle;
    cursor:pointer;
    max-height:1.3em;
  }