@import 'styles/mixins';

$row-padding-horizontal: calc(var(--spacing--m) + var(--spacing--s));

.results {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--color--background--element);
  border: var(--border);
  border-radius: var(--border--radius);
}

.emptyState {
  flex: 1;
}

.content {
  flex: 1;
  position: relative;
  height: 100%;
}

.listContainer {
  position: absolute;
  inset: 0;
}

.list {
  @include scrollbars;

  transition: var(--transition);

  &.outdated {
    filter: blur(2px);
  }
}

.header {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: var(--border);
  border-top-left-radius: inherit;
  border-top-right-radius: inherit;
}

.headerButton {
  @include button-reset;
  @include focus-effect;

  cursor: pointer;

  text-transform: uppercase;
  transition:
    background-color var(--transition--duration) var(--transition--easing),
    color var(--transition--duration) var(--transition--easing);
  background-color: var(--color--background);
  height: 100%;

  &:first-child {
    border-start-start-radius: inherit;
  }

  &:last-child {
    border-start-end-radius: inherit;
  }

  &:focus,
  &:hover {
    background-color: var(--color--primary);
    color: var(--color--primary--opposite);
  }
}

.headerButtonLabel {
  @include ellipsis;

  flex: 0 1 auto;
  text-align: start;
}

.headerButtonIcon {
  flex: 0 0 auto;
  width: var(--results--icon--size);
  height: var(--results--icon--size);
}

.result {
  @include button-reset;

  user-select: none;
  transition: var(--transition);
  cursor: pointer;
  font-weight: 400;

  &:focus,
  &:hover,
  &.highlighted {
    &:not(:disabled) {
      background-color: var(--color--primary);
      color: var(--color--primary--opposite);
    }
  }

  &[aria-hidden='true'] {
    color: var(--color--inactive);

    &:focus,
    &:hover,
    &.highlighted {
      &:not(:disabled) {
        background-color: var(--color--primary--light);
        color: var(--color--primary--opposite);
      }
    }
  }
}

.resultContent {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;

  .word {
    @include ellipsis;

    display: flex;
  }
}

.cell {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: var(--spacing--s);
  line-height: var(--results--item--height);

  .result &.word,
  .headerButton.word & {
    justify-content: flex-start;
    padding-inline-start: $row-padding-horizontal;
  }

  &:last-child {
    flex: 1;
  }
}

.word {
  flex: 0 0;
  text-transform: uppercase;
}

.stat {
  $width: 55px;

  flex: 0 0 $width;
  max-width: $width;
  justify-content: center;
}

.points {
  $width: 80px;

  flex: 1 0 $width;
  font-weight: bold;
}

.coordinates {
  $width: 55px;

  flex: 0 0 $width;
  max-width: $width;
}

.solveButton {
  display: block;
  margin: var(--spacing--xl) auto 0;
}

.sortIcon {
  $size: 19px;

  flex: 0 0 auto;
  width: $size;
  height: $size;
}

.input {
  border-top: var(--border);
  border-bottom-left-radius: var(--border--radius);
  border-bottom-right-radius: var(--border--radius);
}

.highlight {
  background-color: var(--color--mark);
  color: var(--color--foreground);
  border-radius: var(--border--radius);
}
