/*
* Table component
*
*/

@use '../../../style/core/utilities.scss' as utilities;

.dnb-table {
  & thead th,
  & tbody td,
  &__th,
  &__td {
    position: relative;

    border-spacing: 0;

    word-break: keep-all;

    &.dnb-table__cell--focus {
      @include utilities.focusRing('always', $inset: inset);
    }

    .dnb-table__tr--vertical-align-top &,
    &.dnb-table__td--vertical-align-top {
      vertical-align: top;
    }

    .dnb-table__tr--vertical-align-middle &,
    &.dnb-table__td--vertical-align-middle {
      vertical-align: middle;
    }

    .dnb-table__tr--vertical-align-bottom &,
    &.dnb-table__td--vertical-align-bottom {
      vertical-align: bottom;
    }
  }

  /* stylelint-disable no-descending-specificity */
  &--outline {
    tr:first-of-type,
    .dnb-table__tr:first-of-type {
      > .dnb-table__cell--focus:first-child {
        border-top-left-radius: var(--table-outline-radius);
      }
      > .dnb-table__cell--focus:last-child {
        border-top-right-radius: var(--table-outline-radius);
      }
    }

    tbody:last-child {
      tr:last-of-type,
      .dnb-table__tr:last-of-type {
        > .dnb-table__cell--focus:first-child {
          border-bottom-left-radius: var(--table-outline-radius);
        }
        > .dnb-table__cell--focus:last-child {
          border-bottom-right-radius: var(--table-outline-radius);
        }
      }
    }
  }
  /* stylelint-enable no-descending-specificity */
}
