.sticky-table {
  position: relative;
  height: 100%;
  overflow: hidden;
  box-sizing: border-box;
}
.sticky-table .sticky-table-corner {
  z-index: 4;
}
.sticky-table .sticky-table-header {
  z-index: 3;
  overflow: hidden;
  border-bottom: 1px solid #f0f0f0;
}
.sticky-table .sticky-table-column {
  min-height: 100%;
}
.sticky-table .sticky-table-column,
.sticky-table .sticky-table-header,
.sticky-table .sticky-table-corner,
.sticky-table .sticky-table-x-wrapper {
  display: inline-block;
  vertical-align: top;
}
.sticky-table .sticky-table-column.hidden,
.sticky-table .sticky-table-header.hidden,
.sticky-table .sticky-table-corner.hidden {
  display: none;
}
.sticky-table .sticky-table-y-wrapper,
.sticky-table .sticky-table-header-wrapper {
  white-space: nowrap;
}
.sticky-table .sticky-table-x-wrapper,
.sticky-table .sticky-table-y-wrapper {
  z-index: 0;
  position: relative;
  -webkit-overflow-scrolling: touch;
  -ms-overflow-style: none;
}
.sticky-table .sticky-table-x-wrapper {
  min-height: 100%;
  width: 100%;
  overflow-x: auto;
}
.sticky-table .sticky-table-y-wrapper {
  height: 100%;
  overflow-y: auto;
  margin-right: -17px;
  padding-right: 17px;
}
.sticky-table .sticky-table-table {
  overflow: visible;
}
/*
Hack to make table paint on it's own layer.
Because of this it won't paint when the scrollbar paints.
This one was crucial for performance.
Scrolling is ~10-20x smoother.
*/
.sticky-table .sticky-table-table {
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

/* Scrollbars */
.sticky-table-y-wrapper::-webkit-scrollbar,
.sticky-table-x-wrapper::-webkit-scrollbar {
  display: none;
}
.sticky-table .x-scrollbar,
.sticky-table .y-scrollbar {
  position: absolute;
  background-color: transparent;
  z-index: 5;
  overflow: auto;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}
.sticky-table .x-scrollbar {
  left: 0px;
  bottom: 0px;
  width: 100%;
  height: 17px;
}
.sticky-table .y-scrollbar {
  right: 0px;
  top: 0px;
  height: 100%;
  width: 17px;
}
.sticky-table .x-scrollbar div {
  height: 100%;
}
.sticky-table .y-scrollbar div {
  width: 100%;
}

/* Table component */

.sticky-table .sticky-table-table {
  display: table;
  box-sizing: border-box;
  width: 100%;
}

/* Row component */

.sticky-table .sticky-table-row {
  display: table-row;
}

/* Cell component */

.sticky-table .sticky-table-cell {
  display: table-cell;
  box-sizing: border-box;
  vertical-align: middle;
  border-bottom: 1px solid #f0f0f0;
}
