.virtual-keyboard {
		display: inline-block;
		height: 280px;

		background-color: #c0c0c0;
		border-radius: 30px 0 0 30px;
		-moz-border-radius: 30px 0 0 30px;
		-webkit-border-radius: 30px 0 0 30px;

		-webkit-touch-callout: none;
		-webkit-user-select: none;
		-khtml-user-select: none;
		-moz-user-select: none;
		-ms-user-select: none;
		user-select: none;

		font: 1em Verdana;
	}


	.virtual-keyboard .keyline {
		margin: 0.4em 0;
	}


	.virtual-keyboard .keyplace {
		display: inline-block;
		color: #404040;
		width: 4em;
		vertical-align: middle;
	}


	.virtual-keyboard .keyplace .sup {
		text-align: center;
		text-transform: uppercase;
		color: #408040;
		font-size: 0.6em;
		min-height: 1em;
	}


	.virtual-keyboard .keyplace .inf {
		text-align: center;
		color: #804040;
		font-size: 0.6em;
		min-height: 1em;
	}


	.virtual-keyboard .keyplace .key {
		display: grid;
		grid-template: 1fr 1fr / 1fr 1fr;
		position: relative;
		width: 2.825em;
		height: 2.325em;
		margin: auto;
		box-sizing: border-box;
		padding: 0;
		border: 1px solid #a0a0a0;
		border-radius: 3px;

		font: inherit;
		cursor: pointer;

		box-shadow: 1px 1px #a0a0a0;
		background-color: #e8e8e8;
	}


	.virtual-keyboard .pressed .key {
		box-shadow: inset 1px 1px #a0a0a0;
		background-color: #3c85ff;
	}


	.virtual-keyboard .keyplace .main {
		grid-area: 1 / 1 / 2 / 2;
		text-align: left;
		padding-left: 3px;
		font-weight: bold;
		font-size: 0.8em;
	}


	.virtual-keyboard .keyplace .ss {
		grid-area: 1 / 2 / 2 / 3;
		text-align: right;
		padding-right: 3px;
		color: #804040;
		font-size: 0.52em;
		line-height: 2.4em;
	}


	.virtual-keyboard .keyplace .ext {
		grid-area: 2 / 1 / 3 / 3;
		font-size: 0.52em;
		text-align: center;
		line-height: 1.6em;
	}


	.virtual-keyboard .symbol-shift-keyplace .main {
		color: #804040;
	}


	.virtual-keyboard .edit-keyplace .sup {
		font-weight: bold;
	}




	.virtual-mouse {

		display: inline-block;
		vertical-align: top;
		width: 175px;
		height: 280px;
		position: relative;

		text-align: center;
		background-color: #c0c0c0;
		border-radius: 0 50px 90px 0;
	}


	.virtual-mouse .buttons {
		display: block;
		position: absolute;
		top: -1px;
		left: 1px;
		width: 100%;
		height: 100px;

		background-color: #3D8AF7;
		border-radius: 0 50px 0 50px;
	}


	.virtual-mouse .button {
		display: inline-block;
		width: 40px;
		height: 50px;
		margin-top: 20px;
		box-sizing: content-box;
		padding: 0;
		border: 1px solid #a0a0a0;
		border-radius: 10px;

		background-color: #e0e0e0;
		cursor: pointer;
	}


	.virtual-mouse .pressed {
		background-color: #3c85ff;
		box-shadow: inset 1px 1px #a0a0a0;
	}


	.virtual-mouse .move-area {
		display: block;
		position: absolute;
		left: 0px;
		top: 106px;
		width: 166px;
		height: 166px;
		padding: 0;
		border: 0;

		border-radius: 83px;
		cursor: move;
		background-repeat: no-repeat;
		background-position: center center;
		background-color: #808080;
	}


	.virtual-mouse .move-area canvas {
		position: absolute;
		top: 3px;
		left: 3px;
	}