.punnett-square { overflow-x: auto; }

.punnett-square-table {
  font-size: var(--font-size-14);
  line-height: 1.25rem;
  border-collapse: collapse;
}

.punnett-square-spacer {
  width: var(--spacing-48);
  height: 2.5rem; /* Note: bespoke value */
}

.punnett-square-partner-label,
.punnett-square-user-label {
  font-size: var(--font-size-12);
  line-height: 1rem;
  font-weight: var(--font-weight-500);
  color: var(--text-tertiary);
}
.punnett-square-partner-label { text-align: center; padding-bottom: var(--spacing-4); }
.punnett-square-user-label {
  padding-right: var(--spacing-4);
  vertical-align: middle;

  &.punnett-square-user-label--rotated {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
  }
}

.punnett-square-allele-header,
.punnett-square-row-allele {
  text-align: center;
  font-family: var(--font-family-mono);
  font-weight: var(--font-weight-700);
  color: var(--text-primary);
  border: var(--stroke-weight-1) solid var(--border-default);
  background-color: var(--background-surface-2);
}
.punnett-square-allele-header {
  width: 4rem; /* Note: bespoke value */
  height: 2.5rem; /* Note: bespoke value */
}
.punnett-square-row-allele {
  width: var(--spacing-48);
  height: var(--spacing-48);
}

.punnett-square-cell {
  width: 4rem; /* Note: bespoke value */
  height: var(--spacing-48);
  text-align: center;
  font-family: var(--font-family-mono);
  font-weight: var(--font-weight-700);
  border: var(--stroke-weight-1) solid var(--border-default);
  background-color: var(--background-base);
  color: var(--text-primary);

  &.punnett-square-cell--critical,
  &.punnett-square-cell--warning {
    border: var(--stroke-weight-2) solid var(--border-default);
    color: var(--text-risk-factor);
  }

  &.punnett-square-cell--caution {
    border: var(--stroke-weight-2) solid var(--border-default);
  }
}
