.sbb-table,
.sbb-table-m,
.sbb-table-s,
.sbb-table-xs {
  --sbb-table-header-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-data-cell-font-size: var(--sbb-text-font-size-s);
  --sbb-table-header-padding-block: var(--sbb-spacing-fixed-3x);
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
  --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
}
.sbb-table tbody tr:nth-child(odd) :is(th, td),
.sbb-table-m tbody tr:nth-child(odd) :is(th, td),
.sbb-table-s tbody tr:nth-child(odd) :is(th, td),
.sbb-table-xs tbody tr:nth-child(odd) :is(th, td) {
  background-color: var(--sbb-table-row-striped-color);
}
.sbb-table,
.sbb-table-m,
.sbb-table-s,
.sbb-table-xs {
  --sbb-table-border: var(--sbb-border-width-1x) solid var(--sbb-table-border-color);
  --sbb-table-border-color: var(--sbb-color-cloud);
  --sbb-table-border-color: light-dark(var(--sbb-color-cloud), var(--sbb-color-anthracite));
  --sbb-table-background-color: var(--sbb-background-color-1);
  --sbb-table-row-striped-color: var(--sbb-background-color-3);
  --sbb-table-color: var(--sbb-color-1);
  --sbb-table-caption-color: var(--sbb-color-granite);
  --sbb-table-caption-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cement));
  --sbb-table-caption-margin-block-start: var(--sbb-spacing-fixed-4x);
  --sbb-table-sticky-shadow-width: 3rem;
  --sbb-table-sticky-shadow-transition-easing: var(--sbb-animation-easing);
  --sbb-table-sticky-shadow-transition-duration: var(--sbb-animation-duration-6x);
  border-spacing: 0;
  caption-side: bottom;
  color: var(--sbb-table-color);
  table-layout: auto;
}
.sbb-table thead > tr:last-of-type > th,
.sbb-table-m thead > tr:last-of-type > th,
.sbb-table-s thead > tr:last-of-type > th,
.sbb-table-xs thead > tr:last-of-type > th {
  border-block-end: var(--sbb-table-border);
}
.sbb-table thead > tr:first-of-type > th,
.sbb-table-m thead > tr:first-of-type > th,
.sbb-table-s thead > tr:first-of-type > th,
.sbb-table-xs thead > tr:first-of-type > th {
  border-block-start: var(--sbb-table-border);
}
.sbb-table thead > tr > th,
.sbb-table-m thead > tr > th,
.sbb-table-s thead > tr > th,
.sbb-table-xs thead > tr > th {
  font-size: var(--sbb-table-header-cell-font-size);
  letter-spacing: var(--sbb-typo-letter-spacing-text);
  font-weight: bold;
  background-color: var(--sbb-table-background-color);
  border-inline-end: var(--sbb-table-border);
  padding-block: var(--sbb-table-header-padding-block);
  padding-inline: var(--sbb-table-header-padding-inline);
  text-align: left;
}
.sbb-table thead > tr > th:first-of-type,
.sbb-table-m thead > tr > th:first-of-type,
.sbb-table-s thead > tr > th:first-of-type,
.sbb-table-xs thead > tr > th:first-of-type {
  border-inline-start: var(--sbb-table-border);
}
.sbb-table tbody > tr > td,
.sbb-table-m tbody > tr > td,
.sbb-table-s tbody > tr > td,
.sbb-table-xs tbody > tr > td {
  font-size: var(--sbb-table-data-cell-font-size);
  letter-spacing: var(--sbb-typo-letter-spacing-text);
  background-color: var(--sbb-table-background-color);
  border-block-end: var(--sbb-table-border);
  border-inline-end: var(--sbb-table-border);
  padding-block: var(--sbb-table-cell-padding-block);
  padding-inline: var(--sbb-table-cell-padding-inline);
}
.sbb-table tbody > tr > td:first-of-type,
.sbb-table-m tbody > tr > td:first-of-type,
.sbb-table-s tbody > tr > td:first-of-type,
.sbb-table-xs tbody > tr > td:first-of-type {
  border-inline-start: var(--sbb-table-border);
}
.sbb-table caption,
.sbb-table-m caption,
.sbb-table-s caption,
.sbb-table-xs caption {
  --sbb-table-caption-color-fallback: var(--sbb-color-granite);
  --sbb-table-caption-color-fallback: light-dark(var(--sbb-color-granite), var(--sbb-color-cement));
  font-size: var(--sbb-text-font-size-xs);
  letter-spacing: var(--sbb-typo-letter-spacing-text);
  color: var(--sbb-table-caption-color, var(--sbb-table-caption-color-fallback));
  margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
  text-align: left;
}
.sbb-table:not(:has(thead tr)) tbody > tr:first-of-type > td,
.sbb-table-m:not(:has(thead tr)) tbody > tr:first-of-type > td,
.sbb-table-s:not(:has(thead tr)) tbody > tr:first-of-type > td,
.sbb-table-xs:not(:has(thead tr)) tbody > tr:first-of-type > td {
  border-block-start: var(--sbb-table-border);
}

.sbb-table-m {
  --sbb-table-header-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-data-cell-font-size: var(--sbb-text-font-size-s);
  --sbb-table-header-padding-block: var(--sbb-spacing-fixed-3x);
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
  --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
}

.sbb-table-s {
  --sbb-table-header-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-data-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-header-padding-block: var(--sbb-spacing-fixed-1x);
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
  --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
}

.sbb-table-xs {
  --sbb-table-header-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-data-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-header-padding-block: 0;
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-1x);
  --sbb-table-cell-padding-block: 0;
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-1x);
}

sbb-table-wrapper[negative] .sbb-table,
.sbb-table--negative {
  --sbb-table-border-color: var(--sbb-color-anthracite);
  --sbb-table-background-color: var(--sbb-background-color-1-negative);
  --sbb-table-color: var(--sbb-color-1-negative);
  --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
  --sbb-table-caption-color: var(--sbb-color-cement);
}

.sbb-table--striped tbody tr:nth-child(odd) :is(th, td) {
  background-color: var(--sbb-table-row-striped-color);
}

.sbb-table--unstriped tbody tr:nth-child(odd) :is(th, td) {
  background-color: var(--sbb-table-background-color);
}

.sbb-table--theme-iron {
  --sbb-table-cell-color: var(--sbb-color-4);
}
.sbb-table--theme-iron tbody > tr > td {
  color: var(--sbb-table-cell-color);
}
.sbb-table--theme-iron.sbb-table--negative {
  --sbb-table-cell-color: var(--sbb-color-cloud);
}

.sbb-table-header-row:last-of-type > th {
  border-block-end: var(--sbb-table-border);
}

.sbb-table-header-cell {
  font-size: var(--sbb-table-header-cell-font-size);
  letter-spacing: var(--sbb-typo-letter-spacing-text);
  font-weight: bold;
  background-color: var(--sbb-table-background-color);
  border-inline-end: var(--sbb-table-border);
  padding-block: var(--sbb-table-header-padding-block);
  padding-inline: var(--sbb-table-header-padding-inline);
  text-align: left;
}

.sbb-table-row--striped {
  background-color: var(--sbb-table-row-striped-color);
}

.sbb-table-data-cell {
  font-size: var(--sbb-table-data-cell-font-size);
  letter-spacing: var(--sbb-typo-letter-spacing-text);
  background-color: var(--sbb-table-background-color);
  border-block-end: var(--sbb-table-border);
  border-inline-end: var(--sbb-table-border);
  padding-block: var(--sbb-table-cell-padding-block);
  padding-inline: var(--sbb-table-cell-padding-inline);
}

.sbb-table-caption {
  --sbb-table-caption-color-fallback: var(--sbb-color-granite);
  --sbb-table-caption-color-fallback: light-dark(var(--sbb-color-granite), var(--sbb-color-cement));
  font-size: var(--sbb-text-font-size-xs);
  letter-spacing: var(--sbb-typo-letter-spacing-text);
  color: var(--sbb-table-caption-color, var(--sbb-table-caption-color-fallback));
  margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
  text-align: left;
}

.sbb-table-filter {
  padding-block-start: 0 !important;
}

.sbb-table-sticky {
  position: sticky !important;
}

:is(.sbb-table-sticky-border-elem-left, .sbb-table-sticky-border-elem-right)::after {
  content: "";
  transition-timing-function: var(--sbb-table-sticky-shadow-transition-easing);
  transition-duration: var(--sbb-table-sticky-shadow-transition-duration);
  transition-property: visibility, opacity;
  visibility: hidden;
  opacity: 0;
  position: absolute;
  width: var(--sbb-table-sticky-shadow-width);
  inset: 0;
}

:is(.sbb-table-wrapper-offset-left, .sbb-table-wrapper-offset-both) .sbb-table-sticky-border-elem-left {
  border-inline-end: var(--sbb-table-border);
}
:is(.sbb-table-wrapper-offset-left, .sbb-table-wrapper-offset-both) .sbb-table-sticky-border-elem-left::after {
  visibility: visible;
  opacity: 1;
  background-image: linear-gradient(-270deg, rgba(0, 0, 0, 0.1) 0%, transparent 100%);
  inset-inline-start: unset;
  inset-inline-end: calc(var(--sbb-table-sticky-shadow-width) * -1 - 1px);
}

:is(.sbb-table-wrapper-offset-right, .sbb-table-wrapper-offset-both) .sbb-table-sticky-border-elem-right {
  border-inline-start: var(--sbb-table-border);
}
:is(.sbb-table-wrapper-offset-right, .sbb-table-wrapper-offset-both) .sbb-table-sticky-border-elem-right::after {
  visibility: visible;
  opacity: 1;
  background-image: linear-gradient(270deg, rgba(0, 0, 0, 0.1) 0%, transparent 100%);
  inset-inline-start: calc(var(--sbb-table-sticky-shadow-width) * -1 - 1px);
  inset-inline-end: unset;
}

html.sbb-lean .sbb-table:not(.sbb-table-xs, .sbb-table-m) {
  --sbb-table-header-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-data-cell-font-size: var(--sbb-text-font-size-xs);
  --sbb-table-header-padding-block: var(--sbb-spacing-fixed-1x);
  --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
  --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
  --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
}