.log-controller {
  position: relative;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  flex: 1 1 0%;
  flex-direction: row;
  display: flex;
  font-family: Verdana, Tahoma, sans-serif;
  background-color: white;
  pointer-events: none;
  overflow: hidden;
}
.log-controller .track {
  border-right: 1px solid #333;
  overflow: hidden;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.log-controller .track .track-title {
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: sans-serif;
  font-weight: bold;
  overflow: hidden;
  background-color: transparent;
  color: #555;
  text-align: center;
  text-anchor: middle;
  white-space: nowrap;
  border-bottom: 1px solid #333;
  pointer-events: auto;
  cursor: help;
}
.log-controller .track .track-legend {
  pointer-events: all;
  overflow: hidden;
  border-bottom: 1px solid #333;
}
.log-controller .track .track-container {
  flex: 1 1 auto;
  overflow: hidden;
}
.log-controller .track .track-container canvas,
.log-controller .track .track-container svg {
  overflow: hidden;
}
.log-controller .track:last-child {
  border-right: none;
}
.log-controller .track .error {
  background: repeating-linear-gradient(-45deg, #f99, #f99 10px, #fff 10px, #fff 20px);
}
.log-controller .overlay {
  pointer-events: auto;
  min-height: 0;
  position: absolute;
  z-index: 200;
}
.log-controller .hidden {
  display: none !important;
}

.log-controller.horizontal {
  flex-direction: column;
}
.log-controller.horizontal .track {
  flex-direction: row;
  border-right: none;
  border-bottom: 1px solid #333;
}
.log-controller.horizontal .track .track-title {
  writing-mode: vertical-lr;
  transform: rotate(180deg);
  border-bottom: none;
  border-left: 1px solid #333;
}
.log-controller.horizontal .track .track-legend {
  border-bottom: none;
  border-right: 1px solid #333;
}
.log-controller.horizontal .track:last-child {
  border-bottom: none;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes dot-keyframes {
  0% {
    opacity: 0.4;
    transform: scale(1, 1);
  }
  50% {
    opacity: 1;
    transform: scale(1.2, 1.2);
  }
  100% {
    opacity: 0.4;
    transform: scale(1, 1);
  }
}
.track .loader {
  flex: 1 1 auto;
  align-self: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.track .loader .loading-dots {
  animation: dot-keyframes 0.6s infinite ease-in-out;
  background-color: #eee;
  border-radius: 10px;
  display: inline-block;
  height: 10px;
  width: 10px;
  margin: 4px 0;
}

.track .loader :nth-child(2) {
  animation-delay: 0.2s;
}

.track .loader :nth-child(1) {
  animation-delay: 0.4s;
}

.horizontal .track .loader {
  flex-direction: row;
}
.horizontal .track .loader .loading-dots {
  margin: 0 4px;
}
.horizontal .track .loader :nth-child(1) {
  animation-delay: 0.2s;
}
.horizontal .track .loader :nth-child(2) {
  animation-delay: 0.4s;
}

.scale-track {
  stroke: #555;
}

.scale-track .label-bg {
  stroke: white;
  fill: white;
}

.slave-scale {
  background-color: #f9f9f9;
}

.slave-scale .label-bg {
  stroke: #f9f9f9;
  fill: #f9f9f9;
}

.slave-scale text {
  stroke: #777;
  fill: #777;
}

.slave-scale .major-tick-line {
  stroke-width: 0.5;
  stroke: #777;
}

.master-scale .major-tick .label-bg {
  stroke: white;
  fill: white;
}

.master-scale .major-tick text {
  stroke: #555;
  fill: #555;
}

.master-scale .minor-tick-line {
  stroke-width: 0.5;
  stroke: #555;
}