:host {
  --box-shadow-fixed: 3px 3px 6px -2px rgba(0, 0, 0, 0.2);
  --color-background-fixed: var(--pine-color-white);
  --color-cell-default: var(--pine-color-grey-700);
  --dimension-fixed-cell-position: 0;
  --dimension-max-width-truncated: 100px;
  --font-size-cell-default: var(--pine-font-size-085);
  --number-fixed-column-index: 0;
  --spacing-line-height-cell-default: var(--pine-line-height-125);
  --spacing-padding-cell-default: calc(var(--pine-spacing-300) / 2);
  --spacing-padding-compact: var(--pine-spacing-050);
  color: var(--color-cell-default);
  display: table-cell;
  font-size: var(--font-size-cell-default);
  line-height: var(--spacing-line-height-cell-default);
  padding: var(--spacing-padding-cell-default);
  vertical-align: inherit;
}

:host(.is-compact) {
  padding-block: var(--spacing-padding-compact);
}

:host(.is-fixed) {
  background: var(--color-background-fixed);
  left: var(--dimension-fixed-cell-position);
  position: sticky;
  z-index: 1;
}

:host(.has-scrolled.is-fixed) {
  box-shadow: var(--box-shadow-fixed);
}

:host(.is-truncated) {
  max-width: var(--dimension-max-width-truncated);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

:host(.has-checkbox) {
  vertical-align: middle;
  width: 16px;
}