#list-toc-generated {
  padding-left: 0 !important;
  list-style: none;
}

#list-toc-generated .toc-element a::after {
  content: " p. " target-counter(attr(href), page);
  float: right;
}

#list-toc-generated .toc-element-level-1 {
  margin-top: 25px;
  font-weight: bold;
}

#list-toc-generated .toc-element-level-2 {
  margin-left: 25px;
}

#list-toc-generated .toc-element-level-3 {
  margin-left: 50px;
}

#list-toc-generated .toc-element-level-4 {
  margin-left: 75px;
}

/* target-text(attr(href), before) doesn't work for now, replace with counters (see below)*/
/* #list-toc-generated .toc-element a::before{
      content: target-text(attr(href), before);
  } */

/* counters */

#list-toc-generated {
  counter-reset: counterTocLevel1;
}

#list-toc-generated .toc-element-level-1 {
  counter-increment: counterTocLevel1;
  counter-reset: counterTocLevel2;
}

#list-toc-generated .toc-element-level-1::before {
  content: counter(counterTocLevel1) ". ";
  padding-right: 5px;
}

#list-toc-generated .toc-element-level-2 {
  counter-increment: counterTocLevel2;
}

#list-toc-generated .toc-element-level-2::before {
  content: counter(counterTocLevel1) ". " counter(counterTocLevel2) ". ";
  padding-right: 5px;
}

#list-toc-generated .toc-element-level-3 {
  counter-increment: counterTocLevel3;
}

#list-toc-generated .toc-element-level-3::before {
  content: counter(counterTocLevel1) ". " counter(counterTocLevel2) ". "
    counter(counterTocLevel3) ". ";
  padding-right: 5px;
}

#list-toc-generated .toc-element-level-4 {
  counter-increment: counterTocLevel4;
}

#list-toc-generated .toc-element-level-4::before {
  content: counter(counterTocLevel1) ". " counter(counterTocLevel2) ". "
    counter(counterTocLevel3) ". " counter(counterTocLevel4) ". ";
  padding-right: 5px;
}

/*  leader() doesn't work for now, replace with the hack bellow */
/* #list-toc-generated .toc-element a::after{
      content: leader('.') " p. " target-counter(attr(href), page);
      float: right;
  } */

/* hack for leaders */

#list-toc-generated {
  overflow-x: clip;
}

#list-toc-generated .toc-element::after {
  content: ".................................................................................................................................................";
  float: left;
  width: 0;
  padding-left: 5px;
  letter-spacing: 2px;
}

#list-toc-generated .toc-element {
  display: flex;
}

#list-toc-generated .toc-element a::after {
  position: absolute;
  right: 0;
  background-color: white;
  padding-left: 6px;
}

#list-toc-generated .toc-element a {
  right: 0;
}
