.vt,
.hz {
	position: absolute;
	left: 0;
	top: 0;
	pointer-events: none;
	will-change: transform;
	z-index: 100;
}

.vt {
	height: 100%;
	border-right: 1px dashed #607D8B;
}

.hz {
	width: 100%;
	border-bottom: 1px dashed #607D8B;
}

.chart, .plot {
	position: relative;
	display: inline-block;
}

.plot {
	outline: 1px solid silver;
}

.chart canvas {
	display: block;
}

.legend {
	position: absolute;
	bottom: 100%;
	right: 0;
	padding: 8px;
}

.legend > * {
	display: inline-block;
	margin-right: 20px;
}

.legend > *+*:hover {
	cursor: pointer;
	text-decoration: underline;
}

.legend .off {
	color: silver !important;
}

.region {
	background: rgba(0,0,0,0.07);
	height: 100%;
	position: absolute;
	top: 0;
	pointer-events: none;
}

.info {
	white-space: pre;
	font-size: 12px;
	font-family: monospace;
	position: absolute;
	bottom: 100%;
	left: 0;
	pointer-events: none;
	user-select: none;
}

.dot {
	width: 5px;
	height: 5px;
	margin-left: -2.5px;
	margin-top: -2.5px;
	border-radius: 5px;
	position: absolute;
	top: 0;
	left: 0;
	pointer-events: none;
	user-select: none;
	will-change: transform;
	z-index: 100;
}

.x-labels-0,
.x-labels-2,
.y-labels-1,
.y-labels-3 {
	position: absolute;
}

.y-labels-1,
.y-labels-3 {
	top: 0;
	height: 100%;
}

.x-labels-0 > *,
.x-labels-2 > * {
	position: absolute;
	transform: translateX(-50%);
	font-size: 12px;
	white-space: pre-line;
	text-align: center;
	height: 100%;
}

.x-labels-0 > * {
	padding-top: 10px;
}

.x-labels-2 > * {
	padding-bottom: 10px;
}

.x-labels-0 > *::before,
.x-labels-2 > *::before {
	content: "";
	height: 10px;
	border-left: 2px solid #eee;
	position: absolute;
	left: calc(50% - 1px);
}

.x-labels-0 > *::before {
	top: 0;
}

.x-labels-2 > *::before {
	bottom: 0;
}

.y-labels-1 > *,
.y-labels-3 > * {
	position: absolute;
	transform: translateY(-50%);
	font-size: 12px;
	white-space: pre-line;
	width: 100%;
}

.y-labels-1 > * {
	padding-right: 10px;
	text-align: right;
}

.y-labels-3 > * {
	padding-left: 10px;
	text-align: left;
}

.y-labels-1 > *::before,
.y-labels-3 > *::before {
	content: "";
	width: 10px;
	border-top: 2px solid #eee;
	position: absolute;
	top: calc(50% - 1px);
}

.y-labels-1 > *::before {
	right: 0;
}

.y-labels-3 > *::before {
	left: 0;
}