:where(.table) {
  caption-side: bottom;
  font-size: var(--text-sm);
  inline-size: var(--size-full);

  caption {
    color: var(--color-text-subtle);
    margin-block-start: var(--size-4);
  }

  thead {
    color: var(--color-text-subtle);
  }

  tbody tr {
    border-block-start-width: var(--border);
  }

  tr:hover {
    background-color: rgb(from var(--color-border-light) r g b / .5);
  }

  th {
    font-weight: var(--font-medium);
    text-align: start;
  }

  th, td {
    padding: var(--size-2);
  }

  tfoot {
    background-color: rgb(from var(--color-border-light) r g b / .5);
    border-block-start-width: var(--border);
    font-weight: var(--font-medium);
  }
}

/* Mobile responsive tables - card style */
@media (max-width: 48rem) {
  :where(.table) {
    thead {
      display: none;
    }

    tbody, tr, td, th {
      display: block;
    }

    tbody tr {
      background-color: var(--color-bg);
      border: 1px solid var(--color-border);
      border-radius: var(--rounded-lg);
      margin-bottom: var(--size-3);
      padding: var(--size-3);
    }

    th, td {
      padding: var(--size-1) 0;
      border: none;
    }

    td::before, th::before {
      content: attr(data-label);
      font-weight: var(--font-medium);
      color: var(--color-text-subtle);
      display: block;
      font-size: var(--text-xs);
      margin-bottom: 2px;
    }

    th {
      font-size: var(--text-base);
      font-weight: var(--font-semibold);
      padding-bottom: var(--size-2);
      border-bottom: 1px solid var(--color-border-light);
      margin-bottom: var(--size-2);
    }

    th::before {
      display: none;
    }
  }
}
