flex-table {
  position: relative;
  width: 100%;
  --head-height: 2rem;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--contrast);
  border-top: none;
}

flex-table-head {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: 100%;
  background-color: var(--contrast);
  color: var(--background);
}

flex-table row {
  display: flex;
  width: 100%;
  align-items: center;
  border-bottom: 1px solid var(--offset);
}

flex-table row:last-of-type {
  border-bottom: none;
}

flex-table cell {
  display: flex;
  flex: 1;
  justify-content: center;
  align-items: center;
  padding: 0.25rem;
  gap: 0.25rem;
  height: 100%;
}

flex-table cell:last-of-type {
  border-right: none;
}

flex-table cell.condense {
  flex: none;
  width: fit-content;
}

flex-table cell.small {
  flex: 0.25;
}

flex-table cell.tiny {
  flex: 0.1;
}

flex-table cell.text {
  text-align: start;
}

flex-table cell textarea {
  width: 100%;
  text-align: start;
  height: 4rem;
}

flex-table cell button {
  border: none;
  height: 2rem;
  width: 2rem;
  border-radius: 4px;
}

flex-table cell input,
flex-table cell select {
  width: 100%;
}

flex-table cell button:hover {
  opacity: 0.75;
}

flex-table-body {
  margin-top: var(--head-height);
  display: flex;
  flex-direction: column;
  width: 100%;
}
