:root {
  /** Shorthands
   *  font: [font-stretch] [font-style] [font-stretch] [font-weight] [font-variant] font-size[/line-height] font-family1[, font-family2];
   *  margin/padding: top right bottom left 
   **/
  /* DinA4*/
  --pdf-size: A4;
  --pdf-page-width: 210mm;
  --pdf-page-height: 297mm;
  --pdf-page-padding: 2.5cm;
  --pdf-font: unset;
  --pdf-color: unset;
  --pdf-background: #fff;
  --pdf-text-transform: unset;
  --pdf-text-decoration: unset;
  --pdf-text-align: unset;
  --pdf-text-shadow: unset;
  --pdf-letter-spacing: unset;
  --pdf-line-height: 1.2;
  --pdf-column-fill: auto;
  --pdf-column-gap: 0.5cm;
  --pdf-columns-column-fill: balance;
  /* footer */
  --pdf-footer-padding: 0 2.5cm;
  --pdf-footer-postition-bottom: 0.7cm;
  --pdf-page-count-font: unset;
  /* title */
  --pdf-title-font: unset;
  --pdf-title-color: unset;
  --pdf-title-background: unset;
  --pdf-title-text-transform: unset;
  --pdf-title-text-decoration: unset;
  --pdf-title-text-align: unset;
  --pdf-title-margin: unset;
  --pdf-title-padding: unset;
  --pdf-title-text-shadow: unset;
  --pdf-title-letter-spacing: unset;
  --pdf-title-line-height: unset;
  --pdf-title-column-span: unset;
  /* subtitle */
  --pdf-subtitle-font: unset;
  --pdf-subtitle-color: unset;
  --pdf-subtitle-background: unset;
  --pdf-subtitle-text-transform: unset;
  --pdf-subtitle-text-decoration: unset;
  --pdf-subtitle-text-align: unset;
  --pdf-subtitle-margin: unset;
  --pdf-subtitle-padding: unset;
  --pdf-subtitle-text-shadow: unset;
  --pdf-subtitle-letter-spacing: unset;
  --pdf-subtitle-line-height: unset;
  --pdf-subtitle-column-span: unset;
  /* h1 */
  --pdf-h1-font: unset;
  --pdf-h1-color: unset;
  --pdf-h1-background: unset;
  --pdf-h1-text-transform: unset;
  --pdf-h1-text-decoration: unset;
  --pdf-h1-text-align: unset;
  --pdf-h1-margin: unset;
  --pdf-h1-padding: unset;
  --pdf-h1-text-shadow: unset;
  --pdf-h1-letter-spacing: unset;
  --pdf-h1-line-height: unset;
  --pdf-h1-column-span: unset;
  /* h2 */
  --pdf-h2-font: unset;
  --pdf-h2-color: unset;
  --pdf-h2-background: unset;
  --pdf-h2-text-transform: unset;
  --pdf-h2-text-decoration: unset;
  --pdf-h2-text-align: unset;
  --pdf-h2-margin: unset;
  --pdf-h2-padding: unset;
  --pdf-h2-text-shadow: unset;
  --pdf-h2-letter-spacing: unset;
  --pdf-h2-line-height: unset;
  --pdf-h2-column-span: unset;
  /* h3 */
  --pdf-h3-font: unset;
  --pdf-h3-color: unset;
  --pdf-h3-background: unset;
  --pdf-h3-text-transform: unset;
  --pdf-h3-text-decoration: unset;
  --pdf-h3-text-align: unset;
  --pdf-h3-margin: unset;
  --pdf-h3-padding: unset;
  --pdf-h3-text-shadow: unset;
  --pdf-h3-letter-spacing: unset;
  --pdf-h3-line-height: unset;
  --pdf-h3-column-span: unset;
  /* h4 */
  --pdf-h4-font: unset;
  --pdf-h4-color: unset;
  --pdf-h4-background: unset;
  --pdf-h4-text-transform: unset;
  --pdf-h4-text-decoration: unset;
  --pdf-h4-text-align: unset;
  --pdf-h4-margin: unset;
  --pdf-h4-padding: unset;
  --pdf-h4-text-shadow: unset;
  --pdf-h4-letter-spacing: unset;
  --pdf-h4-line-height: unset;
  --pdf-h4-column-span: unset;
  /* h5 */
  --pdf-h5-font: unset;
  --pdf-h5-color: unset;
  --pdf-h5-background: unset;
  --pdf-h5-text-transform: unset;
  --pdf-h5-text-decoration: unset;
  --pdf-h5-text-align: unset;
  --pdf-h5-margin: unset;
  --pdf-h5-padding: unset;
  --pdf-h5-text-shadow: unset;
  --pdf-h5-letter-spacing: unset;
  --pdf-h5-line-height: unset;
  --pdf-h5-column-span: unset;
  /* h6 */
  --pdf-h6-font: unset;
  --pdf-h6-color: unset;
  --pdf-h6-background: unset;
  --pdf-h6-text-transform: unset;
  --pdf-h6-text-decoration: unset;
  --pdf-h6-text-align: unset;
  --pdf-h6-margin: unset;
  --pdf-h6-padding: unset;
  --pdf-h6-text-shadow: unset;
  --pdf-h6-letter-spacing: unset;
  --pdf-h6-line-height: unset;
  --pdf-h6-column-span: unset;
  /* p */
  --pdf-p-font: unset;
  --pdf-p-color: unset;
  --pdf-p-background: unset;
  --pdf-p-text-transform: unset;
  --pdf-p-text-align: unset;
  --pdf-p-text-decoration: unset;
  --pdf-p-margin: unset;
  --pdf-p-padding: unset;
  --pdf-p-text-shadow: unset;
  --pdf-p-letter-spacing: unset;
  --pdf-p-line-height: unset;
  --pdf-p-column-span: unset;
  /* a */
  --pdf-a-font: unset;
  --pdf-a-color: unset;
  --pdf-a-background: unset;
  --pdf-a-text-transform: unset;
  --pdf-a-text-align: unset;
  --pdf-a-text-decoration: unset;
  --pdf-a-margin: unset;
  --pdf-a-padding: unset;
  --pdf-a-text-shadow: unset;
  --pdf-a-letter-spacing: unset;
  --pdf-a-line-height: unset;
  --pdf-a-column-span: unset;
  /* img */
  --pdf-img-width: unset;
  /* ul */
  --pdf-ul-font: unset;
  --pdf-ul-color: unset;
  --pdf-ul-background: unset;
  --pdf-ul-text-transform: unset;
  --pdf-ul-text-align: unset;
  --pdf-ul-text-decoration: unset;
  --pdf-ul-margin: unset;
  --pdf-ul-padding: unset;
  --pdf-ul-text-shadow: unset;
  --pdf-ul-letter-spacing: unset;
  --pdf-ul-line-height: unset;
  --pdf-ul-column-span: unset;
  /* ol */
  --pdf-ol-font: unset;
  --pdf-ol-color: unset;
  --pdf-ol-background: unset;
  --pdf-ol-text-transform: unset;
  --pdf-ol-text-align: unset;
  --pdf-ol-text-decoration: unset;
  --pdf-ol-margin: unset;
  --pdf-ol-padding: unset;
  --pdf-ol-text-shadow: unset;
  --pdf-ol-letter-spacing: unset;
  --pdf-ol-line-height: unset;
  --pdf-ol-column-span: unset;
  /* li */
  --pdf-li-font: unset;
  --pdf-li-color: unset;
  --pdf-li-background: unset;
  --pdf-li-text-transform: unset;
  --pdf-li-text-align: unset;
  --pdf-li-text-decoration: unset;
  --pdf-li-margin: unset;
  --pdf-li-padding: unset;
  --pdf-li-text-shadow: unset;
  --pdf-li-letter-spacing: unset;
  --pdf-li-line-height: unset;
  --pdf-li-column-span: unset;
  /* blockquote */
  --pdf-blockquote-font: unset;
  --pdf-blockquote-color: unset;
  --pdf-blockquote-background: unset;
  --pdf-blockquote-text-transform: unset;
  --pdf-blockquote-text-align: unset;
  --pdf-blockquote-text-decoration: unset;
  --pdf-blockquote-margin: unset;
  --pdf-blockquote-padding: unset;
  --pdf-blockquote-text-shadow: unset;
  --pdf-blockquote-letter-spacing: unset;
  --pdf-blockquote-line-height: unset;
  --pdf-blockquote-column-span: unset;
  /* code */
  --pdf-code-font: unset;
  --pdf-code-color: unset;
  --pdf-code-background: unset;
  --pdf-code-text-transform: unset;
  --pdf-code-text-align: unset;
  --pdf-code-text-decoration: unset;
  --pdf-code-margin: unset;
  --pdf-code-padding: unset;
  --pdf-code-text-shadow: unset;
  --pdf-code-letter-spacing: unset;
  --pdf-code-line-height: unset;
  --pdf-code-column-span: unset;
  /* table */
  --pdf-table-font: unset;
  --pdf-table-color: unset;
  --pdf-table-background: unset;
  --pdf-table-text-transform: unset;
  --pdf-table-text-align: unset;
  --pdf-table-text-decoration: unset;
  --pdf-table-border: unset;
  --pdf-table-width: unset;
  --pdf-table-margin: unset;
  --pdf-table-padding: unset;
  --pdf-table-text-shadow: unset;
  --pdf-table-letter-spacing: unset;
  --pdf-table-line-height: unset;
  --pdf-table-column-span: unset;
  /* th */
  --pdf-th-font: unset;
  --pdf-th-color: unset;
  --pdf-th-background: unset;
  --pdf-th-text-transform: unset;
  --pdf-th-text-align: unset;
  --pdf-th-text-decoration: unset;
  --pdf-th-border: unset;
  --pdf-th-margin: unset;
  --pdf-th-padding: unset;
  --pdf-th-text-shadow: unset;
  --pdf-th-letter-spacing: unset;
  --pdf-th-line-height: unset;
  --pdf-th-column-span: unset;
  /* td */
  --pdf-td-font: unset;
  --pdf-td-color: unset;
  --pdf-td-background: unset;
  --pdf-td-text-transform: unset;
  --pdf-td-text-align: unset;
  --pdf-td-text-decoration: unset;
  --pdf-td-border: unset;
  --pdf-td-margin: unset;
  --pdf-td-padding: unset;
  --pdf-td-text-shadow: unset;
  --pdf-td-letter-spacing: unset;
  --pdf-td-line-height: unset;
  --pdf-td-column-span: unset;
  /* custom box1 */
  --pdf-box1-break-inside: unset;
  --pdf-box1-break-after: unset;
  --pdf-box1-font: unset;
  --pdf-box1-color: unset;
  --pdf-box1-background: unset;
  --pdf-box1-text-transform: unset;
  --pdf-box1-text-align: unset;
  --pdf-box1-text-decoration: unset;
  --pdf-box1-border: unset;
  --pdf-box1-margin: unset;
  --pdf-box1-padding: unset;
  --pdf-box1-text-shadow: unset;
  --pdf-box1-letter-spacing: unset;
  --pdf-box1-line-height: unset;
  --pdf-box1-column-span: unset;
  /* custom box2 */
  --pdf-box2-break-inside: unset;
  --pdf-box2-break-after: unset;
  --pdf-box2-font: unset;
  --pdf-box2-color: unset;
  --pdf-box2-background: unset;
  --pdf-box2-text-transform: unset;
  --pdf-box2-text-align: unset;
  --pdf-box2-text-decoration: unset;
  --pdf-box2-border: unset;
  --pdf-box2-margin: unset;
  --pdf-box2-padding: unset;
  --pdf-box2-text-shadow: unset;
  --pdf-box2-letter-spacing: unset;
  --pdf-box2-line-height: unset;
  --pdf-box2-column-span: unset;
  /* custom box3 */
  --pdf-box3-break-inside: unset;
  --pdf-box3-break-after: unset;
  --pdf-box3-font: unset;
  --pdf-box3-color: unset;
  --pdf-box3-background: unset;
  --pdf-box3-text-transform: unset;
  --pdf-box3-text-align: unset;
  --pdf-box3-text-decoration: unset;
  --pdf-box3-border: unset;
  --pdf-box3-margin: unset;
  --pdf-box3-padding: unset;
  --pdf-box3-text-shadow: unset;
  --pdf-box3-letter-spacing: unset;
  --pdf-box3-line-height: unset;
  --pdf-box3-column-span: unset;
  /* custom box1 */
  --pdf-box1-break-inside: avoid;
  --pdf-box1-break-after: unset;
  --pdf-box1-font: unset;
  --pdf-box1-color: unset;
  --pdf-box1-background: #ccc;
  --pdf-box1-text-transform: unset;
  --pdf-box1-text-align: unset;
  --pdf-box1-text-decoration: unset;
  --pdf-box1-border: 1px solid black;
  --pdf-box1-margin: 0.5em 0 0.5em 0;
  --pdf-box1-padding: 0.2em 0.1em 0.1em 0.1em;
  --pdf-box1-text-shadow: unset;
  --pdf-box1-letter-spacing: unset;
  --pdf-box1-line-height: unset;
  --pdf-box1-column-span: unset;
  /* custom box2 */
  --pdf-box2-break-inside: avoid;
  --pdf-box2-break-after: unset;
  --pdf-box2-font: unset;
  --pdf-box2-color: unset;
  --pdf-box2-background: unset;
  --pdf-box2-text-transform: unset;
  --pdf-box2-text-align: unset;
  --pdf-box2-text-decoration: unset;
  --pdf-box2-border: 1px solid black;
  --pdf-box2-margin: 0.5em 0 0.5em 0;
  --pdf-box2-padding: 0.2em 0.1em 0.1em 0.1em;
  --pdf-box2-text-shadow: unset;
  --pdf-box2-letter-spacing: unset;
  --pdf-box2-line-height: unset;
  --pdf-box2-column-span: unset;
  /* custom box3 */
  --pdf-box3-break-inside: avoid;
  --pdf-box3-break-after: unset;
  --pdf-box3-font: unset;
  --pdf-box3-color: unset;
  --pdf-box3-background: unset;
  --pdf-box3-text-transform: unset;
  --pdf-box3-text-align: unset;
  --pdf-box3-text-decoration: unset;
  --pdf-box3-border: 1px dashed black;
  --pdf-box3-margin: 0.5em 0 0.5em 0;
  --pdf-box3-padding: 0.2em 0.1em 0.1em 0.1em;
  --pdf-box3-text-shadow: unset;
  --pdf-box3-letter-spacing: unset;
  --pdf-box3-line-height: unset;
  --pdf-box3-column-span: unset;
}

.pdf-page {
  * {
    margin-block: 0;
    padding-block: 0;
  }

  /* Page size and print borders, e.g. A4 */
  width: var(--pdf-page-width);
  height: var(--pdf-page-height) !important;
  min-height: var(--pdf-page-height) !important;
  max-height: var(--pdf-page-height) !important;
  padding: var(--pdf-page-padding);
  background: var(--pdf-background);

  /* Default settings */
  color: var(--pdf-color);
  background: var(--pdf-background);
  font: var(--pdf-font);
  text-transform: var(--pdf-text-transform);
  text-align: var(--pdf-text-align);
  text-shadow: var(--pdf-text-shadow);
  letter-spacing: var(--pdf-letter-spacing);
  line-height: var(--pdf-line-height);
  text-decoration: var(--pdf-text-decoration);

  /* TODO This is application logic, move to application.css */
  /* Smooth zoom effects */
  transform-origin: top center;
  transition: zoom 0.1s ease-out;

  /* Embedding in previewer */
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.6);
  margin-bottom: 40px;
  position: relative;
  overflow: hidden;

  /* Standard markdown elements */
  img {
    /* TODO variable */
    /*width: 100%;*/
    width: var(--pdf-img-width, revert-layer);
    max-width: 100%;
    max-height: 100%;
    height: auto;
    display: block;
    break-inside: avoid;
  }

  h1 {
    break-after: avoid;
    break-inside: avoid;
    column-span: var(--pdf-h1-column-span, revert-layer);
    margin: var(--pdf-h1-margin, revert-layer);
    padding: var(--pdf-h1-padding, revert-layer);
    color: var(--pdf-h1-color, revert-layer);
    background: var(--pdf-h1-background, revert-layer);
    font: var(--pdf-h1-font, revert-layer);
    text-transform: var(--pdf-h1-text-transform, revert-layer);
    text-align: var(--pdf-h1-text-align, revert-layer);
    text-shadow: var(--pdf-h1-text-shadow, revert-layer);
    letter-spacing: var(--pdf-h1-letter-spacing, revert-layer);
    line-height: var(--pdf-h1-line-height, revert-layer);
    text-decoration: var(--pdf-h1-text-decoration, revert-layer);
  }

  h2 {
    break-after: avoid;
    break-inside: avoid;
    column-span: var(--pdf-h2-column-span, revert-layer);
    margin: var(--pdf-h2-margin, revert-layer);
    padding: var(--pdf-h2-padding, revert-layer);
    color: var(--pdf-h2-color, revert-layer);
    background: var(--pdf-h2-background, revert-layer);
    font: var(--pdf-h2-font, revert-layer);
    text-transform: var(--pdf-h2-text-transform, revert-layer);
    text-align: var(--pdf-h2-text-align, revert-layer);
    text-shadow: var(--pdf-h2-text-shadow, revert-layer);
    letter-spacing: var(--pdf-h2-letter-spacing, revert-layer);
    line-height: var(--pdf-h2-line-height, revert-layer);
    text-decoration: var(--pdf-h2-text-decoration, revert-layer);
  }

  h3 {
    break-after: avoid;
    break-inside: avoid;
    column-span: var(--pdf-h3-column-span, revert-layer);
    margin: var(--pdf-h3-margin, revert-layer);
    padding: var(--pdf-h3-padding, revert-layer);
    color: var(--pdf-h3-color, revert-layer);
    background: var(--pdf-h3-background, revert-layer);
    font: var(--pdf-h3-font, revert-layer);
    text-transform: var(--pdf-h3-text-transform, revert-layer);
    text-align: var(--pdf-h3-text-align, revert-layer);
    text-shadow: var(--pdf-h3-text-shadow, revert-layer);
    letter-spacing: var(--pdf-h3-letter-spacing, revert-layer);
    line-height: var(--pdf-h3-line-height, revert-layer);
    text-decoration: var(--pdf-h3-text-decoration, revert-layer);
  }

  h4 {
    break-after: avoid;
    break-inside: avoid;
    column-span: var(--pdf-h4-column-span, revert-layer);
    margin: var(--pdf-h4-margin, revert-layer);
    padding: var(--pdf-h4-padding, revert-layer);
    color: var(--pdf-h4-color, revert-layer);
    background: var(--pdf-h4-background, revert-layer);
    font: var(--pdf-h4-font, revert-layer);
    text-transform: var(--pdf-h4-text-transform, revert-layer);
    text-align: var(--pdf-h4-text-align, revert-layer);
    text-shadow: var(--pdf-h4-text-shadow, revert-layer);
    letter-spacing: var(--pdf-h4-letter-spacing, revert-layer);
    line-height: var(--pdf-h4-line-height, revert-layer);
    text-decoration: var(--pdf-h4-text-decoration, revert-layer);
  }

  h5 {
    column-span: var(--pdf-h5-column-span, revert-layer);
    margin: var(--pdf-h5-margin, revert-layer);
    padding: var(--pdf-h4-padding, revert-layer);
    color: var(--pdf-h5-color, revert-layer);
    background: var(--pdf-h5-background, revert-layer);
    font: var(--pdf-h5-font, revert-layer);
    text-transform: var(--pdf-h5-text-transform, revert-layer);
    text-align: var(--pdf-h5-text-align, revert-layer);
    text-shadow: var(--pdf-h5-text-shadow, revert-layer);
    letter-spacing: var(--pdf-h5-letter-spacing, revert-layer);
    line-height: var(--pdf-h5-line-height, revert-layer);
    text-decoration: var(--pdf-h5-text-decoration, revert-layer);
  }

  h6 {
    column-span: var(--pdf-h6-column-span, revert-layer);
    margin: var(--pdf-h6-margin, revert-layer);
    padding: var(--pdf-h6-padding, revert-layer);
    color: var(--pdf-h6-color, revert-layer);
    background: var(--pdf-h6-background, revert-layer);
    font: var(--pdf-h6-font, revert-layer);
    text-transform: var(--pdf-h6-text-transform, revert-layer);
    text-align: var(--pdf-h6-text-align, revert-layer);
    text-shadow: var(--pdf-h6-text-shadow, revert-layer);
    letter-spacing: var(--pdf-h6-letter-spacing, revert-layer);
    line-height: var(--pdf-h6-line-height, revert-layer);
    text-decoration: var(--pdf-h6-text-decoration, revert-layer);
  }

  p {
    column-span: var(--pdf-p-column-span, revert-layer);
    margin: var(--pdf-p-margin, revert-layer);
    padding: var(--pdf-p-padding, revert-layer);
    color: var(--pdf-p-color, revert-layer);
    background: var(--pdf-p-background, revert-layer);
    font: var(--pdf-p-font, revert-layer);
    text-transform: var(--pdf-p-text-transform, revert-layer);
    text-align: var(--pdf-p-text-align, inherit);
    text-shadow: var(--pdf-p-text-shadow, revert-layer);
    letter-spacing: var(--pdf-p-letter-spacing, revert-layer);
    line-height: var(--pdf-p-line-height, revert-layer);
    text-decoration: var(--pdf-p-text-decoration, revert-layer);
  }

  a {
    column-span: var(--pdf-a-column-span, revert-layer);
    margin: var(--pdf-a-margin, revert-layer);
    padding: var(--pdf-a-padding, revert-layer);
    color: var(--pdf-a-color, revert-layer);
    background: var(--pdf-a-background, revert-layer);
    font: var(--pdf-a-font, revert-layer);
    text-transform: var(--pdf-a-text-transform, revert-layer);
    text-align: var(--pdf-a-text-align, revert-layer);
    text-shadow: var(--pdf-a-text-shadow, revert-layer);
    letter-spacing: var(--pdf-a-letter-spacing, revert-layer);
    line-height: var(--pdf-a-line-height, revert-layer);
    text-decoration: var(--pdf-a-text-decoration, revert-layer);
  }

  ol {
    break-inside: avoid;
    column-span: var(--pdf-ol-column-span, revert-layer);
    margin: var(--pdf-ol-margin, revert-layer);
    padding: var(--pdf-ol-padding, revert-layer);
    color: var(--pdf-ol-color, revert-layer);
    background: var(--pdf-ol-background, revert-layer);
    font: var(--pdf-ol-font, revert-layer);
    text-transform: var(--pdf-ol-text-transform, revert-layer);
    text-align: var(--pdf-ol-text-align, revert-layer);
    text-shadow: var(--pdf-ol-text-shadow, revert-layer);
    letter-spacing: var(--pdf-ol-letter-spacing, revert-layer);
    line-height: var(--pdf-ol-line-height, revert-layer);
    text-decoration: var(--pdf-ol-text-decoration, revert-layer);
  }

  ul {
    break-inside: avoid;
    column-span: var(--pdf-ul-column-span, revert-layer);
    margin: var(--pdf-ul-margin, revert-layer);
    padding: var(--pdf-ul-padding, revert-layer);
    color: var(--pdf-ul-color, revert-layer);
    background: var(--pdf-ul-background, revert-layer);
    font: var(--pdf-ul-font, revert-layer);
    text-transform: var(--pdf-ul-text-transform, revert-layer);
    text-align: var(--pdf-ul-text-align, revert-layer);
    text-shadow: var(--pdf-ul-text-shadow, revert-layer);
    letter-spacing: var(--pdf-ul-letter-spacing, revert-layer);
    line-height: var(--pdf-ul-line-height, revert-layer);
    text-decoration: var(--pdf-ul-text-decoration, revert-layer);
  }

  li {
    column-span: var(--pdf-li-column-span, revert-layer);
    margin: var(--pdf-li-margin, revert-layer);
    padding: var(--pdf-li-padding, revert-layer);
    color: var(--pdf-li-color, revert-layer);
    background: var(--pdf-li-background, revert-layer);
    font: var(--pdf-li-font, revert-layer);
    text-transform: var(--pdf-li-text-transform, revert-layer);
    text-align: var(--pdf-li-text-align, revert-layer);
    text-shadow: var(--pdf-li-text-shadow, revert-layer);
    letter-spacing: var(--pdf-li-letter-spacing, revert-layer);
    line-height: var(--pdf-li-line-height, revert-layer);
    text-decoration: var(--pdf-li-text-decoration, revert-layer);
  }

  /** Nested lists have no extra margin */
  :is(ol, ul, li) > ol {
    column-span: none;
    margin: unset;
    padding: var(--pdf-ol-padding, revert-layer);
  }

  :is(ol, ul, li) > ul {
    column-span: none;
    margin: unset;
    padding: var(--pdf-ul-padding, revert-layer);
  }

  blockquote {
    break-inside: avoid;
    column-span: var(--pdf-blockquote-column-span, revert-layer);
    margin: var(--pdf-blockquote-margin, revert-layer);
    padding: var(--pdf-blockquote-padding, revert-layer);
    color: var(--pdf-blockquote-color, revert-layer);
    background: var(--pdf-blockquote-background, revert-layer);
    font: var(--pdf-blockquote-font, revert-layer);
    text-transform: var(--pdf-blockquote-text-transform, revert-layer);
    text-align: var(--pdf-blockquote-text-align, revert-layer);
    text-shadow: var(--pdf-blockquote-text-shadow, revert-layer);
    letter-spacing: var(--pdf-blockquote-letter-spacing, revert-layer);
    line-height: var(--pdf-blockquote-line-height, revert-layer);
    text-decoration: var(--pdf-blockquote-text-decoration, revert-layer);

    /* Text is wrapped again inside the blockquote. Do not apply spacing settings again. */
    p {
      margin: 0;
      padding: 0;
    }
  }

  pre {
    display: block;
    width: 100%;
    break-inside: avoid;
    column-span: var(--pdf-code-column-span, revert-layer);
    margin: var(--pdf-code-margin, revert-layer);
    padding: var(--pdf-code-padding, revert-layer);
    color: var(--pdf-code-color, revert-layer);
    background: var(--pdf-code-background, revert-layer);
    font: var(--pdf-code-font, revert-layer);
    text-transform: var(--pdf-code-text-transform, revert-layer);
    text-align: var(--pdf-code-text-align, revert-layer);
    text-shadow: var(--pdf-code-text-shadow, revert-layer);
    letter-spacing: var(--pdf-code-letter-spacing, revert-layer);
    line-height: var(--pdf-code-line-height, revert-layer);
    text-decoration: var(--pdf-code-text-decoration, revert-layer);
  }

  /* Inline code embedded in normal text flow */
  p {
    code {
      display: unset;
      width: unset;
    }
  }

  table {
    display: table;
    break-inside: avoid;
    border-collapse: collapse;
    column-span: var(--pdf-table-column-span, revert-layer);
    width: var(--pdf-table-width, revert-layer);
    /* 
    * Quirks to imitate user agent default behaviour.
    * Tables next to other tables should stick together.
    * As table is not affected by padding settings, we use padding for margin.
    */
    margin: var(--pdf-table-padding, revert-layer);
    padding: var(--pdf-table-padding, revert-layer);
    border: var(--pdf-table-border, revert-layer);
    color: var(--pdf-table-color, revert-layer);
    background: var(--pdf-table-background, revert-layer);
    font: var(--pdf-table-font, revert-layer);
    text-transform: var(--pdf-table-text-transform, revert-layer);
    text-align: var(--pdf-table-text-align, revert-layer);
    text-shadow: var(--pdf-table-text-shadow, revert-layer);
    letter-spacing: var(--pdf-table-letter-spacing, revert-layer);
    line-height: var(--pdf-table-line-height, revert-layer);
    text-decoration: var(--pdf-table-text-decoration, revert-layer);

    th {
      border-collapse: collapse;
      column-span: var(--pdf-th-column-span, revert-layer);
      margin: var(--pdf-th-margin, revert-layer);
      padding: var(--pdf-th-padding, revert-layer);
      border: var(--pdf-th-border, revert-layer);
      color: var(--pdf-th-color, revert-layer);
      background: var(--pdf-th-background, revert-layer);
      font: var(--pdf-th-font, revert-layer);
      text-transform: var(--pdf-th-text-transform, revert-layer);
      text-align: var(--pdf-th-text-align, revert-layer);
      text-shadow: var(--pdf-th-text-shadow, revert-layer);
      letter-spacing: var(--pdf-th-letter-spacing, revert-layer);
      line-height: var(--pdf-th-line-height, revert-layer);
      text-decoration: var(--pdf-th-text-decoration, revert-layer);
    }

    td {
      border-collapse: collapse;
      column-span: var(--pdf-td-column-span, revert-layer);
      margin: var(--pdf-td-margin, revert-layer);
      padding: var(--pdf-td-padding, revert-layer);
      border: var(--pdf-td-border, revert-layer);
      color: var(--pdf-td-color, revert-layer);
      background: var(--pdf-td-background, revert-layer);
      font: var(--pdf-td-font, revert-layer);
      text-transform: var(--pdf-td-text-transform, revert-layer);
      text-align: var(--pdf-td-text-align, revert-layer);
      text-shadow: var(--pdf-td-text-shadow, revert-layer);
      letter-spacing: var(--pdf-td-letter-spacing, revert-layer);
      line-height: var(--pdf-td-line-height, revert-layer);
      text-decoration: var(--pdf-td-text-decoration, revert-layer);

      &[align="center"] {
        text-align: center !important;
      }

      &[align="right"] {
        text-align: right !important;
      }

      &[align="left"] {
        text-align: left !important;
      }
    }
  }

  /* 
   * Quirks to imitate user agent default behaviour.
   * Tables next to other tables should stick together.
   * As table is not affected by padding settings, we use padding here.
   * Use margin between table elements instead of padding.
   */
  table + table {
    margin: var(--pdf-table-margin, revert-layer);
  }

  /** Custom title */
  .title,
  .title p {
    break-after: avoid;
    break-inside: avoid;
    column-span: var(--pdf-title-column-span, revert-layer);
    margin: var(--pdf-title-margin, revert-layer);
    padding: var(--pdf-title-padding, revert-layer);
    color: var(--pdf-title-color, revert-layer);
    background: var(--pdf-title-background, revert-layer);
    font: var(--pdf-title-font, revert-layer);
    text-transform: var(--pdf-title-text-transform, revert-layer);
    text-align: var(--pdf-title-text-align, inherit);
    text-shadow: var(--pdf-title-text-shadow, revert-layer);
    letter-spacing: var(--pdf-title-letter-spacing, revert-layer);
    line-height: var(--pdf-title-line-height, revert-layer);
    text-decoration: var(--pdf-title-text-decoration, revert-layer);
  }

  /** Custom subtitle */
  .subtitle,
  .subtitle p {
    break-after: avoid;
    break-inside: avoid;
    column-span: var(--pdf-subtitle-column-span, revert-layer);
    margin: var(--pdf-subtitle-margin, revert-layer);
    padding: var(--pdf-subtitle-padding, revert-layer);
    color: var(--pdf-subtitle-color, revert-layer);
    background: var(--pdf-subtitle-background, revert-layer);
    font: var(--pdf-subtitle-font, revert-layer);
    text-transform: var(--pdf-subtitle-text-transform, revert-layer);
    text-align: var(--pdf-subtitle-text-align, inherit);
    text-shadow: var(--pdf-subtitle-text-shadow, revert-layer);
    letter-spacing: var(--pdf-subtitle-letter-spacing, revert-layer);
    line-height: var(--pdf-subtitle-line-height, revert-layer);
    text-decoration: var(--pdf-subtitle-text-decoration, revert-layer);
  }

  /* Custom box variants */
  .box1 {
    break-after: var(--pdf-box1-break-after, revert-layer);
    break-inside: var(--pdf-box1-break-inside, revert-layer);
    column-span: var(--pdf-box1-column-span, revert-layer);
    margin: var(--pdf-box1-margin, revert-layer);
    padding: var(--pdf-box1-padding, revert-layer);
    color: var(--pdf-box1-color, revert-layer);
    border: var(--pdf-box1-border, revert-layer);
    background: var(--pdf-box1-background, revert-layer);
    font: var(--pdf-box1-font, revert-layer);
    text-transform: var(--pdf-box1-text-transform, revert-layer);
    text-align: var(--pdf-box1-text-align, inherit);
    text-shadow: var(--pdf-box1-text-shadow, revert-layer);
    letter-spacing: var(--pdf-box1-letter-spacing, revert-layer);
    line-height: var(--pdf-box1-line-height, revert-layer);
    text-decoration: var(--pdf-box1-text-decoration, revert-layer);

    /* The first and last elements inside should rely on padding of the box. */
    *:first-child {
      margin-top: 0;
    }

    *:last-child {
      margin-bottom: 0;
    }
  }

  .box2 {
    break-after: var(--pdf-box2-break-after, revert-layer);
    break-inside: var(--pdf-box2-break-inside, revert-layer);
    column-span: var(--pdf-box2-column-span, revert-layer);
    margin: var(--pdf-box2-margin, revert-layer);
    padding: var(--pdf-box2-padding, revert-layer);
    color: var(--pdf-box2-color, revert-layer);
    border: var(--pdf-box2-border, revert-layer);
    background: var(--pdf-box2-background, revert-layer);
    font: var(--pdf-box2-font, revert-layer);
    text-transform: var(--pdf-box2-text-transform, revert-layer);
    text-align: var(--pdf-box2-text-align, inherit);
    text-shadow: var(--pdf-box2-text-shadow, revert-layer);
    letter-spacing: var(--pdf-box2-letter-spacing, revert-layer);
    line-height: var(--pdf-box2-line-height, revert-layer);
    text-decoration: var(--pdf-box2-text-decoration, revert-layer);

    /* The first and last elements inside should rely on padding of the box. */
    *:first-child {
      margin-top: 0;
    }

    *:last-child {
      margin-bottom: 0;
    }
  }

  .box3 {
    break-after: var(--pdf-box3-break-after, revert-layer);
    break-inside: var(--pdf-box3-break-inside, revert-layer);
    column-span: var(--pdf-box3-column-span, revert-layer);
    margin: var(--pdf-box3-margin, revert-layer);
    padding: var(--pdf-box3-padding, revert-layer);
    color: var(--pdf-box3-color, revert-layer);
    border: var(--pdf-box3-border, revert-layer);
    background: var(--pdf-box3-background, revert-layer);
    font: var(--pdf-box3-font, revert-layer);
    text-transform: var(--pdf-box3-text-transform, revert-layer);
    text-align: var(--pdf-box3-text-align, inherit);
    text-shadow: var(--pdf-box3-text-shadow, revert-layer);
    letter-spacing: var(--pdf-box3-letter-spacing, revert-layer);
    line-height: var(--pdf-box3-line-height, revert-layer);
    text-decoration: var(--pdf-box3-text-decoration, revert-layer);

    /* The first and last elements inside should rely on padding of the box. */
    *:first-child {
      margin-top: 0;
    }

    *:last-child {
      margin-bottom: 0;
    }
  }

  footer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    position: absolute;
    bottom: var(--pdf-footer-postition-bottom);
    left: 0;
    font: var(--pdf-page-count-font);
    font-weight: normal;
    padding: var(--pdf-footer-padding);
    .left {
      text-align: left;
      width: 30%;
    }
    .center {
      text-align: center;
      width: 30%;
    }
    .right {
      text-align: right;
      width: 30%;
    }
  }

  /* Table of contents */
  .toc {
    ul {
      list-style: none;
      padding-left: 0;
      margin: 0px;
      ul {
        margin-left: 0.5rem;
        margin-top: 2px;
      }
    }
    li > a {
      display: flex;
      align-items: baseline;
      text-decoration: none;
      width: 100%;
      margin-bottom: 4px;
    }
    li > a::before {
      content: "";
      flex-grow: 1;
      order: 2;
      border-bottom: 1px dotted black;
      margin: 0 5px;
      position: relative;
    }
    li > a::after {
      content: attr(data-page);
      order: 3;
      font-weight: normal;
    }
    li span {
      order: 1;
    }
  }

  /* Functional elements, placed by user to control column and page flow */

  /* Columns per page */
  column-count: unset;
  column-gap: var(--pdf-column-gap);
  column-fill: var(--pdf-column-fill, revert-layer);
  &[data-column-count="1"] {
    /* 
     * column-count: 1 makes large images show up in 100% of their intrinic size, not 100% of the page size. 
     * To avoid this, just remove the column-count.
     */
    column-count: unset;
  }
  &[data-column-count="2"] {
    column-count: 2;
  }
  &[data-column-count="3"] {
    column-count: 3;
  }

  /** Individual column sections */
  .columns {
    display: block;
    column-span: unset;
    column-fill: var(--pdf-columns-column-fill, revert-layer);

    &[data-column-count="1"] {
      /* 
       * column-count: 1 makes large images show up in 100% of their intrinic size, not 100% of the page size. 
       * To avoid this, just remove the column-count.
       */
      column-count: unset;
    }
    &[data-column-count="2"] {
      column-count: 2;
    }
    &[data-column-count="3"] {
      column-count: 3;
    }
  }
  .column-break {
    display: block;
    width: 0;
    height: 0;
    visibility: hidden;
    break-after: column;
  }
  .no-columns {
    display: block;
    column-span: all;
  }
  .full-width {
    width: 100%;
  }
  .text-left {
    text-align: left !important;
  }
  .text-center {
    text-align: center !important;
  }
  .text-right {
    text-align: right !important;
  }
  .text-justify {
    text-align: justify !important;
  }

  /** Helping line to show the bottom padding of the page */
  .page-limiter-bottom {
    width: calc(100% - 10px);
    height: 1px;
    line-height: 0;
    margin: 0 5px;
    border: 1px rgba(255, 0, 0, 0.25) dashed;
    position: absolute;
    left: 0;
    bottom: var(--page-limiter-bottom, 0);
    z-index: 3;
    display: none;

    &.show {
      display: block;
    }
  }
}

@media print {
  @page {
    size: var(--pdf-size);
    margin: 0;
    padding: 0;
  }

  /* Remove or hide application specific content, just show the plain page */
  html,
  body {
    background: var(--pdf-background) !important;
    width: var(--pdf-page-width);
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: visible !important;
  }
  #editor-container,
  .toolbar,
  .toolbar-container,
  #resizer {
    display: none !important;
  }

  #preview-container {
    display: block !important;
    width: var(--pdf-page-width) !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .pdf-page {
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    margin: 0 !important;
    padding: var(--pdf-page-padding) !important;
    /* Chrome needs a small margin to avoid additional empty pages */
    height: calc(var(--pdf-page-height) - 1px) !important;
    min-height: calc(var(--pdf-page-height) - 1px) !important;
    overflow: hidden !important;
    display: block !important;
    box-shadow: none !important;
    page-break-after: always !important;
    break-after: always !important;
    page-break-inside: avoid !important;

    .page-limiter-bottom {
      display: none;
    }
  }

  .pdf-page:last-child {
    page-break-after: avoid !important;
    break-after: avoid !important;
  }
}
