.ts__table__container {
  --black: #000;
  --white: #fff;
  --grey-100: #fafafa;
  --grey-200: #f4f4f4;
  --grey-300: #edeeef;
  --grey-500: #dcddde;
  --grey-600: #bbbbbd;
  --grey-700: #77787b;
  --grey-900: #414042;
  --filter-width: 24rem;

  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;

  // set default styles for all elements
  & * {
    box-sizing: border-box;
  }

  .ts__table__layout {
    display: flex;
    width: calc(100% - var(--filter-width));
    transition: all 0.4s ease-in-out;

    .ts__table__filter {
      width: 0rem;
      opacity: 0;
      margin-right: calc(-1 * var(--filter-width));
      transition: all 0.4s ease-in-out;
      max-height: calc(100vh - 50px);
    }
    .ts__table__filter.show {
      transition: all 0.4s ease-in-out;
      opacity: 1;
      width: var(--filter-width);
      max-width: var(--filter-width);
      margin-left: 1.25rem;
      margin-right: 0rem;
      min-height: calc(100vh - 50px);
    }
  }

  .ts__table__layout.has-filter {
    width: 100%;
  }

  .ts__table__main {
    flex: 1;
    min-width: 0;
  }

  .ts__loader {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    color: var(--grey-900);
    font-size: 1.2rem;
  }

  .ts__table__wrapper {
    overflow-x: auto;
    max-height: calc(100vh - 110px);

    &.is-fullscreen {
      max-height: calc(100vh - 56px);
    }

    .ts__table.ts--striped > .ts__body > .ts__body__tr:nth-of-type(odd) {
      background-color: var(--grey-200);
    }
    .ts__table:not(.ts--striped) > .ts__body > .ts__body__tr:hover {
      background-color: var(--grey-100);
      box-shadow: inset 0 2px 2px rgba(0, 0, 0, 0.05),
        inset 0 -2px 2px rgba(0, 0, 0, 0.05);
    }
    .ts__table:not(.ts--striped) > .ts__head > .ts__head__tr {
      background-color: var(--grey-100);

      .ts__head__th {
        border: 1px solid var(--grey-500);
      }
    }

    .ts__table.ts--compact {
      .ts__head > .ts__head__tr > .ts__head__th {
        padding: 0.25rem 0.5rem;

        .ts__content {
          font-size: 0.875rem;
        }
      }

      .ts__body > .ts__body__tr > .ts__body__td {
        padding: 0.25rem 0.5rem;

        .ts__content {
          font-size: 0.75rem;
        }
      }
    }

    .ts__table {
      width: max-content;
      min-width: 100%;
      border-spacing: 0;
      border-collapse: separate;

      .ts__head.ts--sticky {
        position: sticky;
        top: 0rem;
        z-index: 3;
      }

      .ts__head {
        position: relative;
        box-shadow: 0 2px 2px rgba(0, 0, 0, 0.05);

        .ts__head__tr {
          background-color: var(--white);

          .ts__head__th {
            position: relative;
            padding: 0.5rem 1rem;
            border: 1px solid var(--grey-300);

            .ts__dnd__button {
              color: var(--grey-100);
              // width: max-content;
              // height: max-content;
              // cursor: grabbing;

              &:hover {
                scale: 1.1;
                color: var(--grey-900);
                width: max-content;
                height: max-content;
                cursor: grabbing;
              }
            }

            .ts__content {
              display: flex;
              align-items: center;
              gap: 0.25rem;

              .ts__content__sort {
                cursor: pointer;
                user-select: none;

                svg {
                  margin-left: 0.25rem;
                }
              }

              .ts--head--button {
                display: flex;
                justify-content: center;
                align-items: center;
                cursor: pointer;

                &:hover {
                  scale: 1.1;
                }

                svg {
                  color: var(--grey-700);
                }
              }
            }

            .column__resize {
              position: absolute;
              top: 0;
              right: 0;
              height: 100%;
              width: 5px;
              background: rgba(0, 0, 0, 0.5);
              cursor: col-resize;
              user-select: none;
              touch-action: none;
              opacity: 0;

              &:hover {
                opacity: 1;
              }
            }

            .column__resize.is__resizing {
              background: rgba(0, 0, 0, 0.8);
              opacity: 1;
            }
          }
        }
      }

      .ts__body {
        .ts__body__tr {
          background-color: var(--white);

          .ts__body__td {
            font-size: 0.875rem;
            padding: 0.5rem 1rem;
            border-top: 1px solid var(--grey-300);
            border-bottom: 1px solid var(--grey-300);
          }
        }
      }
    }
  }
}
