@charset "UTF-8";
/* autogenerated from `constants.py` */
:root {
  string-set: author 'James Benone', copyright 'CC BY-NC-SA 4.0 © 2025 James Benone', title 'Documentation'; }

h1, h2, h3 {
  string-set: chapter content(); }

/**
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/styles/cover.scss
 * Type            : Stylesheet - SCSS
 * Description     : All style used for front cover and back cover elements
 * Author          : BRT - Briard Thibaud, <thibaud.brrd@eduge.ch>     -> (Main author)
 * Author          : ORZ - @orzih,         <https://github.com/orzih/> -> (Original author)
**/
@media print {
  article#doc-frontcover {
    height: 247mm;
    display: flex;
    flex-direction: column; }
    article#doc-frontcover > .wrapper {
      flex: 1 0 auto;
      text-align: center;
      padding: 0 3rem; }
      article#doc-frontcover > .wrapper.upper {
        flex: 0 1 auto;
        max-height: 95mm; }
        article#doc-frontcover > .wrapper.upper > .logo {
          width: 100%;
          height: 100%;
          object-position: center bottom;
          object-fit: contain; }
      article#doc-frontcover > .wrapper h1 {
        font-size: 36pt;
        line-height: 1.4; }
      article#doc-frontcover > .wrapper h2 {
        border: none;
        bookmark-level: none; }
    article#doc-frontcover > .properties {
      flex: 0 0 auto;
      text-align: right;
      padding: 0 2rem; }
      article#doc-frontcover > .properties p.doc-cover-property-copyright {
        font-size: 80%; }
  article#doc-backcover {
    height: 247mm;
    display: flex;
    flex-direction: column;
    text-align: center; }
    article#doc-backcover .wrapper {
      flex: 1 0 auto;
      display: inline-block; }
    article#doc-backcover .qrcode {
      display: inline-block;
      flex: 0 0 auto; }
      article#doc-backcover .qrcode > a {
        display: inline-block;
        padding: 0.5em 2em;
        border-radius: 1em;
        background-color: #fff; }
        article#doc-backcover .qrcode > a img {
          width: 100%;
          height: auto; } }

/**
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/styles/toc.scss
 * Type            : Stylesheet - SCSS
 * Description     : All styles used for table of content and table of figures elements
 * Author          : BRT - Briard Thibaud, <thibaud.brrd@eduge.ch>     -> (Main author)
 * Author          : ORZ - @orzih,         <https://github.com/orzih/> -> (Original author)
**/
@media print {
  article#doc-toc,
  article#doc-tof {
    margin: 0 .8rem 1.2rem;
    padding-top: .6rem;
    font-size: 12pt;
    line-height: 1.6; }
    article#doc-toc > h1,
    article#doc-tof > h1 {
      margin: 0 0 2rem;
      color: rgba(0, 0, 0, 0.54);
      font-size: 1.2rem;
      font-weight: 300;
      letter-spacing: -.01em;
      page-break-after: auto;
      page-break-inside: auto; }
      article#doc-toc > h1::before,
      article#doc-tof > h1::before {
        display: block;
        margin-top: -9px;
        padding-top: 9px;
        content: ""; }
    article#doc-toc > h2,
    article#doc-tof > h2 {
      margin: 2rem 0 1rem;
      color: rgba(0, 0, 0, 0.54);
      font-size: 1rem;
      font-weight: 300;
      letter-spacing: -.005em;
      page-break-after: auto;
      page-break-inside: auto;
      bookmark-level: none; }
      article#doc-toc > h2::before,
      article#doc-tof > h2::before {
        display: block;
        margin-top: -9px;
        padding-top: 9px;
        content: ""; }
    article#doc-toc ul,
    article#doc-tof ul {
      list-style: none;
      padding-left: 0;
      margin-left: 1em;
      font-size: 8pt;
      page-break-inside: auto !important; }
    article#doc-toc li,
    article#doc-tof li {
      list-style: none; }
      article#doc-toc li > a,
      article#doc-tof li > a {
        color: inherit;
        text-decoration: none;
        padding-top: 0.4rem;
        border-bottom: 1px dotted #ddd;
        display: inline-block;
        width: 100%; }
        article#doc-toc li > a > span.doc-order,
        article#doc-tof li > a > span.doc-order {
          padding-right: 0.5em; }
        article#doc-toc li > a::after,
        article#doc-tof li > a::after {
          float: right;
          content: target-counter(attr(href), page); }
  article#doc-tof li.doc-tof-group-separator {
    height: 2em; } }

/**
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/styles/utils.scss
 * Type            : Stylesheet - SCSS
 * Description     : A series of usefull class to manipulate layout and display of elements
 * Author          : BRT - Briard Thibaud, <thibaud.brrd@eduge.ch>
**/
/**
 * Build a series of class .pdf-break-<type>-<value> that can be use to apply break-<type>: <value> to elements
**/
.pdf-break-before-auto {
  break-before: auto !important; }

.pdf-break-before-always {
  break-before: always !important; }

.pdf-break-before-avoid {
  break-before: avoid !important; }

.pdf-break-before-avoid-page {
  break-before: avoid-page !important; }

.pdf-break-before-avoid-column {
  break-before: avoid-column !important; }

.pdf-break-before-avoid-region {
  break-before: avoid-region !important; }

.pdf-break-before-left {
  break-before: left !important; }

.pdf-break-before-right {
  break-before: right !important; }

.pdf-break-before-page {
  break-before: page !important; }

.pdf-break-before-column {
  break-before: column !important; }

.pdf-break-inside-auto {
  break-inside: auto !important; }

.pdf-break-inside-always {
  break-inside: always !important; }

.pdf-break-inside-avoid {
  break-inside: avoid !important; }

.pdf-break-inside-avoid-page {
  break-inside: avoid-page !important; }

.pdf-break-inside-avoid-column {
  break-inside: avoid-column !important; }

.pdf-break-inside-avoid-region {
  break-inside: avoid-region !important; }

.pdf-break-inside-left {
  break-inside: left !important; }

.pdf-break-inside-right {
  break-inside: right !important; }

.pdf-break-inside-page {
  break-inside: page !important; }

.pdf-break-inside-column {
  break-inside: column !important; }

.pdf-break-after-auto {
  break-after: auto !important; }

.pdf-break-after-always {
  break-after: always !important; }

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

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

.pdf-break-after-avoid-column {
  break-after: avoid-column !important; }

.pdf-break-after-avoid-region {
  break-after: avoid-region !important; }

.pdf-break-after-left {
  break-after: left !important; }

.pdf-break-after-right {
  break-after: right !important; }

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

.pdf-break-after-column {
  break-after: column !important; }

/**
 * Build the same series of class but for childs elements (This is to handle implied elements)
 * SEE: https://python-markdown.github.io/extensions/attr_list/#limitations
**/
.pdf-break-before-auto-childs * {
  break-before: auto !important; }

.pdf-break-before-always-childs * {
  break-before: always !important; }

.pdf-break-before-avoid-childs * {
  break-before: avoid !important; }

.pdf-break-before-avoid-page-childs * {
  break-before: avoid-page !important; }

.pdf-break-before-avoid-column-childs * {
  break-before: avoid-column !important; }

.pdf-break-before-avoid-region-childs * {
  break-before: avoid-region !important; }

.pdf-break-before-left-childs * {
  break-before: left !important; }

.pdf-break-before-right-childs * {
  break-before: right !important; }

.pdf-break-before-page-childs * {
  break-before: page !important; }

.pdf-break-before-column-childs * {
  break-before: column !important; }

.pdf-break-inside-auto-childs * {
  break-inside: auto !important; }

.pdf-break-inside-always-childs * {
  break-inside: always !important; }

.pdf-break-inside-avoid-childs * {
  break-inside: avoid !important; }

.pdf-break-inside-avoid-page-childs * {
  break-inside: avoid-page !important; }

.pdf-break-inside-avoid-column-childs * {
  break-inside: avoid-column !important; }

.pdf-break-inside-avoid-region-childs * {
  break-inside: avoid-region !important; }

.pdf-break-inside-left-childs * {
  break-inside: left !important; }

.pdf-break-inside-right-childs * {
  break-inside: right !important; }

.pdf-break-inside-page-childs * {
  break-inside: page !important; }

.pdf-break-inside-column-childs * {
  break-inside: column !important; }

.pdf-break-after-auto-childs * {
  break-after: auto !important; }

.pdf-break-after-always-childs * {
  break-after: always !important; }

.pdf-break-after-avoid-childs * {
  break-after: avoid !important; }

.pdf-break-after-avoid-page-childs * {
  break-after: avoid-page !important; }

.pdf-break-after-avoid-column-childs * {
  break-after: avoid-column !important; }

.pdf-break-after-avoid-region-childs * {
  break-after: avoid-region !important; }

.pdf-break-after-left-childs * {
  break-after: left !important; }

.pdf-break-after-right-childs * {
  break-after: right !important; }

.pdf-break-after-page-childs * {
  break-after: page !important; }

.pdf-break-after-column-childs * {
  break-after: column !important; }

@media print {
  .site-only {
    display: none; } }

.pdf-only {
  display: none; }
  @media print {
    .pdf-only {
      display: block; } }
/**
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/styles/paging.scss
 * Type            : Stylesheet - SCSS
 * Description     : Set pages properties, headers and footer content as well as content layout and page breaks rules
 * Author          : BRT - Briard Thibaud, <thibaud.brrd@eduge.ch>     -> (Main author)
 * Author          : ORZ - @orzih,         <https://github.com/orzih/> -> (Original author)
**/
/* Pages properties, headers and footers */
@media print {
  article#doc-frontcover {
    page: frontcover; } }

@media print {
  article#doc-backcover {
    page: backcover; } }

@page {
  size: a4 portrait;
  margin: 25mm 10mm 25mm 10mm;
  white-space: pre;
  color: black;
  @top-right {
    font-size: 7pt;
    content: string(chapter); }
  @bottom-center {
    font-size: 8pt;
    content: "- " counter(page) "/" counter(pages) " -"; }
  @bottom-right {
    font-size: 6pt;
    content: string(copyright); } }

@page frontcover {
  @top-left {
    content: normal; }
  @top-center {
    content: normal; }
  @top-right {
    content: normal; }
  @bottom-left {
    content: normal; }
  @bottom-center {
    content: normal; }
  @bottom-right {
    content: normal; } }

@page backcover {
  @top-left {
    content: normal; }
  @top-center {
    content: normal; }
  @top-right {
    content: normal; }
  @bottom-center {
    content: normal; }
  @bottom-left {
    font-size: 8pt;
    content: string(title); }
  @bottom-right {
    font-size: 8pt;
    content: string(copyright); } }

/* Layout of content and page break rules */
@media print {
  body {
    background: none;
    background-color: #fff; }
  article#doc-content {
    margin: 0 0.8rem;
    padding: 0; }
  section.doc-content-section article.doc-content-article {
    padding: 0;
    margin: 0; }
  section.doc-content-section > h1, section.doc-content-section > h2, section.doc-content-section > h3, section.doc-content-section > h4, section.doc-content-section > h5, section.doc-content-section > h6 {
    margin-bottom: 0; }
  article#doc-frontcover,
  article#doc-toc,
  article#doc-tof,
  article#doc-content {
    page-break-after: always; }
  /**
   * Break on first level chapter (section/article)
  **/
  section.doc-content-section:has(> h1:first-child):has(+ section.doc-content-section),
  section.doc-content-section:has(> h1:first-child):has(+ article.doc-content-article),
  article.doc-content-article:has(> h1:first-child):has(+ section.doc-content-section),
  article.doc-content-article:has(> h1:first-child):has(+ article.doc-content-article) {
    page-break-after: always; }
  section, article {
    /* Defining all page breaks */
    /**
    * Note:
    *     `page-break-inside` property cause issue when table are too big to fit on one page.
    *     It will result on the table being put on a new page
    *     which create a more or less large empty space on page above.
    *     That fine when page above already have lot of content
    *     but if the table was the only element on page it create a large empty space.
    *     
    *     (I only tested with table for now but i guess it would be the same for code blocks)
    * - BRT
    **/
    /**
    * Note:
    *     This solution to the problem (note) above seem to work.
    *     It might need more testing ans some adjustment though.
    *     n+10 is an abitrary value that could be changed if needed,
    *     there is no real reason for it to be 10 at the moment.
    * - BRT
    * See:
    *     weasyprint issue presenting solution: https://github.com/Kozea/WeasyPrint/issues/1252
    **/
    /**
    * Note:
    *     This solution implement same process as for table (code above)
    *     It seem to be not working with list inside .grid.cards.
    *     It may be related to `display: grid` property-value.
    *     Cause issue with table of content page
    * - BRT
    **/
    /*
    ul:not(article#doc-toc ul),
    ol:not(article#doc-toc ol) {
      page-break-before: avoid;
    }

    li {
      page-break-after: avoid;
    }

    li:nth-child(n+10) {
      page-break-after: auto;
    }
    */
    /** Note:
    *      I tried applying same solution to codeblocks with linenums.
    *      It don't work and i assume it is because of tags pre, code and span behavior.
    *      For now the recommended use is to not use "linenums" on codeblocks bigger than 50 lines.
    * - BRT
    **/
    /*
    table.highlighttable td.linenos pre span,
    table.highlighttable td.code code span {
      page-break-after: avoid;
    }

    table.highlighttable td.linenos pre span:nth-child(n+20),
    table.highlighttable td.code code span:nth-child(n+20) {
      page-break-after: auto;
    }
    */ }
    section,
    section h1,
    section h2,
    section h3,
    section h4,
    section h5,
    section h6,
    section div.tabbed-content--wrap > .tabbed-content, article,
    article h1,
    article h2,
    article h3,
    article h4,
    article h5,
    article h6,
    article div.tabbed-content--wrap > .tabbed-content {
      clear: both; }
    section h1, section h2, section h3, section h4, section h5, section h6,
    section img, article h1, article h2, article h3, article h4, article h5, article h6,
    article img {
      page-break-after: avoid;
      page-break-inside: avoid; }
    section a,
    section blockquote,
    section ul,
    section ol, article a,
    article blockquote,
    article ul,
    article ol {
      page-break-before: avoid;
      page-break-inside: avoid; }
    section table, article table {
      page-break-before: avoid; }
    section tr, article tr {
      page-break-after: avoid; }
    section tr:nth-child(n+10), article tr:nth-child(n+10) {
      page-break-after: auto; }
    section pre,
    section dt + dd, article pre,
    article dt + dd {
      page-break-before: avoid; }
    section h1 + ul, section h2 + ul, section h3 + ul, section h4 + ul, section h5 + ul, section h6 + ul,
    section h1 + ol,
    section h2 + ol,
    section h3 + ol,
    section h4 + ol,
    section h5 + ol,
    section h6 + ol, article h1 + ul, article h2 + ul, article h3 + ul, article h4 + ul, article h5 + ul, article h6 + ul,
    article h1 + ol,
    article h2 + ol,
    article h3 + ol,
    article h4 + ol,
    article h5 + ol,
    article h6 + ol {
      page-break-inside: auto; }
    section div.admonition, article div.admonition {
      page-break-inside: avoid; }
    section div.tabbed-content--wrap, article div.tabbed-content--wrap {
      page-break-inside: avoid; }
    section * + div.highlight,
    section * + div.tabbed-set, article * + div.highlight,
    article * + div.tabbed-set {
      page-break-before: avoid; }
  section.two-columns {
    columns: 2;
    column-gap: 1cm; } }

/**
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/styles/fonts.scss
 * Type            : Stylesheet - SCSS
 * Description     : Set fonts used
 * Author          : HKA - @hkato, <https://github.com/hkato>  -> (Main author)
 * Author          : ORZ - @orzih, <https://github.com/orzih/> -> (Original author)
 * See             : https://github.com/domWalters/mkdocs-to-pdf/issues/21
**/
@media print {
  html {
    font-size: 95%;
    font-family: 'Roboto', 'Noto Sans CJK JP', sans-serif; }
  body {
    font-size: 10.5pt;
    font-family: 'Roboto', 'Noto Sans CJK JP', sans-serif; }
  article {
    font-size: 0.8rem;
    line-height: 1.6; }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  label {
    font-family: 'Roboto', 'Noto Sans CJK JP', sans-serif; }
  pre,
  code,
  var,
  samp,
  kbd,
  tt {
    font-family: 'Roboto Mono', 'Noto Sans Mono CJK JP', monospace, sans-serif;
    font-size: 0.8em; }
  pre code,
  pre var,
  pre samp,
  pre kbd,
  pre tt {
    font-size: 100%; } }

/**
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/styles/<FILE>.scss
 * Type            : Stylesheet - SCSS
 * Description     : <DESC>
 * Author          : BRT - Briard Thibaud, <thibaud.brrd@eduge.ch>     -> (Main author)
 * Author          : ORZ - @orzih,         <https://github.com/orzih/> -> (Original author)
**/
@media print {
  section h1, section h2, section h3, article h1, article h2, article h3 {
    border-bottom-style: solid; }
  article#doc-frontcover h1 {
    border-bottom-width: 5px; }
  article#doc-toc h1, article#doc-tof h1, section.doc-content-section h1, article.doc-content-article h1 {
    border-bottom-width: 2px; }
  article#doc-toc h2, article#doc-tof h2, section.doc-content-section h2, article.doc-content-article h2 {
    border-bottom-width: 1px; }
  article#doc-toc h3, article#doc-tof h3, section.doc-content-section h3, article.doc-content-article h3 {
    border-bottom-width: 0.5px; }
  article#doc-toc h1 > span.doc-order,
  article#doc-toc h2 > span.doc-order,
  article#doc-toc h3 > span.doc-order, article#doc-tof h1 > span.doc-order,
  article#doc-tof h2 > span.doc-order,
  article#doc-tof h3 > span.doc-order, section.doc-content-section h1 > span.doc-order,
  section.doc-content-section h2 > span.doc-order,
  section.doc-content-section h3 > span.doc-order, article.doc-content-article h1 > span.doc-order,
  article.doc-content-article h2 > span.doc-order,
  article.doc-content-article h3 > span.doc-order {
    padding-left: 6px; } }

@media print {
  section h1, section h2, section h3, article h1, article h2, article h3 {
    border-bottom-color: var(--md-primary-fg-color); }
  body[data-md-color-primary="white"] section h1, body[data-md-color-primary="white"] section h2, body[data-md-color-primary="white"] section h3, body[data-md-color-primary="white"] article h1, body[data-md-color-primary="white"] article h2, body[data-md-color-primary="white"] article h3 {
    border-bottom-color: var(--md-accent-fg-color); }
  body[data-md-color-primary="white"][data-md-color-accent="white"] section h1, body[data-md-color-primary="white"][data-md-color-accent="white"] section h2, body[data-md-color-primary="white"][data-md-color-accent="white"] section h3, body[data-md-color-primary="white"][data-md-color-accent="white"] article h1, body[data-md-color-primary="white"][data-md-color-accent="white"] article h2, body[data-md-color-primary="white"][data-md-color-accent="white"] article h3 {
    border-bottom-color: black; } }

@media print {
  .md-typeset .tabbed-set {
    display: block; }
    .md-typeset .tabbed-set .tabbed-content--wrap {
      border: 1px solid #aaa;
      border-radius: 0;
      margin: 0;
      padding: 0; }
      .md-typeset .tabbed-set .tabbed-content--wrap:not(:last-child) {
        border-bottom: none; }
      .md-typeset .tabbed-set .tabbed-content--wrap:first-child, .md-typeset .tabbed-set .tabbed-content--wrap:first-child > label {
        border-top-left-radius: 0.2rem;
        border-top-right-radius: 0.2rem; }
      .md-typeset .tabbed-set .tabbed-content--wrap:last-child, .md-typeset .tabbed-set .tabbed-content--wrap:last-child > div.tabbed-content {
        border-bottom-left-radius: 0.2rem;
        border-bottom-right-radius: 0.2rem; }
      .md-typeset .tabbed-set .tabbed-content--wrap > input {
        display: none; }
      .md-typeset .tabbed-set .tabbed-content--wrap > label {
        display: block;
        padding: 0.4rem 0.6rem;
        margin: 0;
        background: #aaaaaa1a;
        border: none; }
      .md-typeset .tabbed-set .tabbed-content--wrap > .tabbed-content {
        padding: 0.6rem 0.6rem;
        border: none; } }

.__topdf-download {
  position: relative;
  display: inline-block; }

.__topdf-download .__topdf-download-button {
  display: flex;
  align-items: center;
  gap: 0.5em;
  /* space between icons and ::after */
  cursor: pointer;
  list-style: none;
  padding: 0.5em 1em;
  font-weight: bold;
  border-radius: 4px; }

.__topdf-download[open] .__topdf-download-menu {
  display: block; }

.__topdf-download-menu {
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 10;
  background: var(--md-default-bg-color);
  border-radius: 0.2rem;
  margin-top: 0.2rem;
  padding: 0.3rem 0;
  box-shadow: var(--md-shadow-z2);
  min-width: 180px;
  display: none;
  font-size: 0.7rem;
  line-height: 1.3; }

.__topdf-download-item,
.__topdf-download-item a {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-decoration: none; }

.__topdf-download-item {
  color: var(--md-default-fg-color); }

.__topdf-download-item a {
  padding: 0.5em 1em; }

.__topdf-download-item:hover {
  background: var(--md-primary-fg-color);
  color: var(--md-primary-bg-color); }

.__topdf-download-button.__topdf-download-multiple::after {
  content: "";
  border-top: .5em solid;
  border-right: .5em solid transparent;
  border-bottom: 0;
  border-left: .5em solid transparent; }

@media print {
  .md-typeset {
    /**
    * NOTE:
    *     This prevent material tags from having 2 nested boxes.
    *     Material apply same style to any elements with .md-tag class.
    *     Weasyprint add a unknown wrapping tag to alone anchors with same classes as anchor.
    *     These 2 behavior result in having 2 nested boxes around tags.
    *     Only problem is that the anchor and it's mysterious wrapper are both responding to `a.mdtag` in CSS.
    * - BRT
    * SEE: Weasyprint Issue                - https://github.com/Kozea/WeasyPrint/issues/811
    * SEE: Material for MkDocs Source code - https://github.com/squidfunk/mkdocs-material/blob/6a1600f9c793e0d8be94db75414b23f0253ec9d8/src/templates/assets/stylesheets/main/components/_tag.scss#L47
    **/ }
    .md-typeset .md-tag {
      display: inline-block; }
    .md-typeset a.md-tag {
      margin-top: 1rem; }
    .md-typeset h1 span.md-tag, .md-typeset h2 span.md-tag, .md-typeset h3 span.md-tag, .md-typeset h4 span.md-tag, .md-typeset h5 span.md-tag, .md-typeset h6 span.md-tag {
      width: auto; } }

@media print {
  .md-typeset .admonition-title + .tabbed-set:last-child,
  .md-typeset summary + .tabbed-set:last-child {
    margin-top: 0.5rem; }
  .md-typeset .admonition-title + .tabbed-set:last-child,
  .md-typeset summary + .tabbed-set:last-child {
    margin-top: 0.5rem; }
  .md-typeset > details summary::after {
    display: none; }
  .md-typeset > div, .md-typeset > div.admonition, .md-typeset > details, .md-typeset > div.tabbed-set, .md-typeset > blockquote, .md-typeset > mark, .md-typeset > table, .md-typeset > p {
    margin-left: 0.7rem; }
  .md-typeset > table.highlighttable {
    margin: 0 0 0 0.7rem; }
  .md-typeset table.highlighttable,
  .md-typeset table.highlighttable > tbody {
    width: 100%; }
  .md-typeset table.highlighttable {
    padding-bottom: 0.5em; }
    .md-typeset table.highlighttable .linenos {
      padding-bottom: 0; }
  .md-typeset h4,
  .md-typeset h5,
  .md-typeset h6 {
    margin-left: 0.25rem; }
  .md-typeset *:not(h3) + h4 {
    margin-top: 1.5rem; }
  .md-typeset hr {
    border-bottom: 1px dotted #999; }
  .md-typeset .footnote {
    line-height: 1.1; }
  .md-typeset table:not([class]) th, .md-typeset table:not([class]) td {
    padding: 0.5em 1.25rem 0.4em; }
  .md-typeset table:not([class]) td {
    border-bottom: 1px solid #eee; }
  .md-typeset span.twemoji {
    height: 1.125rem;
    vertical-align: middle;
    display: inline-block; }
    .md-typeset span.twemoji > img {
      height: 1.125rem;
      vertical-align: middle;
      display: inline-block; }
  /* Should be smaller in ToC or ToF*/
  article#doc-toc span.twemoji,
  article#doc-toc span.twemoji > img,
  article#doc-toc img.twemoji, article#doc-tof span.twemoji,
  article#doc-tof span.twemoji > img,
  article#doc-tof img.twemoji {
    height: 1rem;
    vertical-align: text-bottom;
    display: inline-block; } }

/*
 * Project         : MkDocs Book Binder
 * File            : src/mkdocs_plugin/mkdocs_book_binder/themes/material-polyfills.css
 * Type            : CSS - styles rules
 * Description     : This file fix various ignored values material style when interpreted by weasyprint
 * Author          : BRT - Briard Thibaud, <thibaud.brrd@eduge.ch>
 * Original Author : orzih <https://github.com/orzih/>
*/
/**
 * Note:
 *     This part is related to keyboard keys formatting.
 *     (see: https://squidfunk.github.io/mkdocs-material/reference/formatting/#adding-keyboard-keys)
 *     It heavily change the style of the keys between site and PDF.
 *     Entirely removing this style will result in hard to read keys.
 *     Would be best to find a more similar style to material to be used in PDF.
 * - BRT
**/
.md-typeset kbd {
  vertical-align: middle;
  border-color: #b8b8b8;
  border-style: outset;
  border-width: 0.05rem 0.075rem 0.1rem 0.075rem;
  border-radius: 0.25rem;
  box-shadow: none; }

/**
 * Note:
 *     This style is used for admonitions icons.
 *     It override styles from material since weasyprint can't handle `mask-image`.
 *     It is important to know that if users override the icons or add custom ones
 *     they will need to implement the same style in an extra stylesheet for printing them correctly.
 * - BRT
**/
:root {
  --print-md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23448aff"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.24-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06z"/></svg>');
  --print-md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300b0ff"><path d="M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"/></svg>');
  --print-md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300b8d4"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');
  --print-md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300bfa5"><path d="M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27"/></svg>');
  --print-md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300c853"><path d="M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z"/></svg>');
  --print-md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2364dd17"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>');
  --print-md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff9100"><path d="M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z"/></svg>');
  --print-md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff5252"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');
  --print-md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff1744"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2"/></svg>');
  --print-md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23f50057"><path d="M11 13h2v1h-2zm10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4zm-4 5h-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2zm-6 2h2v-1h-2z"/></svg>');
  --print-md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%237c4dff"><path d="M7 2v2h1v14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2zm4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4z"/></svg>');
  --print-md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%239e9e9e"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3z"/></svg>'); }

@media print {
  /**
     * List indentation fix
     * Issue  : https://github.com/orzih/mkdocs-with-pdf/issues/145
     * Author : BRT
    **/
  .md-typeset ul
.md-typeset ol {
    margin-left: 1rem; }
  .md-typeset ul li,
  .md-typeset ol li {
    margin-left: 1.5rem; }
  .md-typeset .task-list .task-list-item .task-list-indicator {
    padding-right: 1rem; }
  .md-typeset .admonition-title {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  /**
     * Admonition icon fix
     * Note   : This code could be improved by applying DRY principle
     * Issue  : https://github.com/orzih/mkdocs-with-pdf/issues/89
     * Author : CMA - cmaurer, <https://github.com/cmaurer>
     * Author : SAN - santaimpersonator, <https://github.com/santaimpersonator>
    **/
  .md-typeset .admonition-title::before,
  .md-typeset summary::before {
    top: 0.8rem;
    /* 0.8rem represent better what we can see on site (admonitions titles are slightly above icons base */
    left: 0.6rem; }
  .md-typeset .admonition-title::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--note);
    background-repeat: no-repeat; }
  .md-typeset .note > .admonition-title,
  .md-typeset .note > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .note > .admonition-title::before,
  .md-typeset .note > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--note);
    background-repeat: no-repeat; }
  .md-typeset .abstract > .admonition-title,
  .md-typeset .tldr > .admonition-title,
  .md-typeset .summary > .admonition-title,
  .md-typeset .abstract > summary,
  .md-typeset .tldr > summary,
  .md-typeset .summary > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .abstract > .admonition-title::before,
  .md-typeset .tldr > .admonition-title::before,
  .md-typeset .summary > .admonition-title::before,
  .md-typeset .abstract > summary::before,
  .md-typeset .tldr > summary::before,
  .md-typeset .summary > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--abstract);
    background-repeat: no-repeat; }
  .md-typeset .info > .admonition-title,
  .md-typeset .todo > .admonition-title,
  .md-typeset .info > summary,
  .md-typeset .todo > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .info > .admonition-title::before,
  .md-typeset .todo > .admonition-title::before,
  .md-typeset .info > summary::before,
  .md-typeset .todo > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--info);
    background-repeat: no-repeat; }
  .md-typeset .tip > .admonition-title,
  .md-typeset .important > .admonition-title,
  .md-typeset .hint > .admonition-title,
  .md-typeset .tip > summary,
  .md-typeset .important > summary,
  .md-typeset .hint > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .tip > .admonition-title::before,
  .md-typeset .important > .admonition-title::before,
  .md-typeset .hint > .admonition-title::before,
  .md-typeset .tip > summary::before,
  .md-typeset .important > summary::before,
  .md-typeset .hint > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--tip);
    background-repeat: no-repeat; }
  .md-typeset .success > .admonition-title,
  .md-typeset .done > .admonition-title,
  .md-typeset .check > .admonition-title,
  .md-typeset .success > summary,
  .md-typeset .done > summary,
  .md-typeset .check > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .success > .admonition-title::before,
  .md-typeset .done > .admonition-title::before,
  .md-typeset .check > .admonition-title::before,
  .md-typeset .success > summary::before,
  .md-typeset .done > summary::before,
  .md-typeset .check > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--success);
    background-repeat: no-repeat; }
  .md-typeset .question > .admonition-title,
  .md-typeset .faq > .admonition-title,
  .md-typeset .help > .admonition-title,
  .md-typeset .question > summary,
  .md-typeset .faq > summary,
  .md-typeset .help > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .question > .admonition-title::before,
  .md-typeset .faq > .admonition-title::before,
  .md-typeset .help > .admonition-title::before,
  .md-typeset .question > summary::before,
  .md-typeset .faq > summary::before,
  .md-typeset .help > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--question);
    background-repeat: no-repeat; }
  .md-typeset .warning > .admonition-title,
  .md-typeset .attention > .admonition-title,
  .md-typeset .caution > .admonition-title,
  .md-typeset .warning > summary,
  .md-typeset .attention > summary,
  .md-typeset .caution > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .warning > .admonition-title::before,
  .md-typeset .attention > .admonition-title::before,
  .md-typeset .caution > .admonition-title::before,
  .md-typeset .warning > summary::before,
  .md-typeset .attention > summary::before,
  .md-typeset .caution > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--warning);
    background-repeat: no-repeat; }
  .md-typeset .failure > .admonition-title,
  .md-typeset .missing > .admonition-title,
  .md-typeset .fail > .admonition-title,
  .md-typeset .failure > summary,
  .md-typeset .missing > summary,
  .md-typeset .fail > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .failure > .admonition-title::before,
  .md-typeset .missing > .admonition-title::before,
  .md-typeset .fail > .admonition-title::before,
  .md-typeset .failure > summary::before,
  .md-typeset .missing > summary::before,
  .md-typeset .fail > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--failure);
    background-repeat: no-repeat; }
  .md-typeset .danger > .admonition-title,
  .md-typeset .error > .admonition-title,
  .md-typeset .danger > summary,
  .md-typeset .error > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .danger > .admonition-title::before,
  .md-typeset .error > .admonition-title::before,
  .md-typeset .danger > summary::before,
  .md-typeset .error > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--danger);
    background-repeat: no-repeat; }
  .md-typeset .bug > .admonition-title,
  .md-typeset .bug > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .bug > .admonition-title::before,
  .md-typeset .bug > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--bug);
    background-repeat: no-repeat; }
  .md-typeset .example > .admonition-title,
  .md-typeset .example > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .example > .admonition-title::before,
  .md-typeset .example > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--example);
    background-repeat: no-repeat; }
  .md-typeset .quote > .admonition-title,
  .md-typeset .cite > .admonition-title,
  .md-typeset .quote > summary,
  .md-typeset .cite > summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .quote > .admonition-title::before,
  .md-typeset .cite > .admonition-title::before,
  .md-typeset .quote > summary::before,
  .md-typeset .cite > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--quote);
    background-repeat: no-repeat; } }

/**
 * Note:
 *     Still not sure where these rules are used for.
 *     I can't find any mention of footnotes icons in material docs.
 *     I suppose this work basically the same as for admonitions icons,
 *     fixing issue with weasyprint missing support for `mask-image` css rule
 * - BRT
**/
:root {
  --print-md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23000000de"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7h-2z"/></svg>'); }

@media print {
  .md-typeset .footnote-backref::before {
    background-color: transparent;
    background-image: var(--print-md-footnotes-icon); } }

:root {
  --print-md-details-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="hsla(0, 0%, 0%, 0.87)"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg>'); }

@media print {
  .md-typeset summary::after {
    background-color: transparent;
    background-image: var(--print-md-details-icon);
    -webkit-mask-image: none;
    mask-image: none; } }

:root {
  --print-md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ddd"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
  --print-md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300e676"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>'); }

@media print {
  .md-typeset .task-list-control .task-list-indicator::before {
    background-color: transparent;
    background-image: var(--print-md-tasklist-icon); }
  .md-typeset .task-list-control [type="checkbox"]:checked + .task-list-indicator::before {
    background-color: transparent;
    background-image: var(--print-md-tasklist-icon--checked); } }

/**
 * Note        :
 *     This prevent material tags at top of page from having 2 nested boxes.
 *     Material apply same style to any elements with .md-tag class.
 *     Weasyprint add a unknown wrapping tag to alone anchors with same classes as anchor.
 *     These 2 bechavior result in having 2 nested boxes around tags.
 *     Only problem is that the anchor and it's mysterious wrapper are both responding to `a.mdtag` in CSS.
 * - BRT
 * Issue       : Weasyprint          - https://github.com/Kozea/WeasyPrint/issues/811
 * Source code : Material for MkDocs - https://github.com/squidfunk/mkdocs-material/blob/6a1600f9c793e0d8be94db75414b23f0253ec9d8/src/templates/assets/stylesheets/main/components/_tag.scss#L47
**/
@media print {
  a.md-tag {
    display: inline-block !important; } }

/* Hide images for dark mode */
.md-typeset img[src$="#only-dark"],
.md-typeset figure img[src$="#only-dark"] {
  display: none; }

/**
 * Project     : MkDocs Book Binder
 * File        : src/mkdocs_plugin/mkdocs_book_binder/handlers/themes/builtin/material/stylesheets/_admonitions.scss
 * Type        : Style - scss
 * Description : Contain css rules to fix material admonitions styles rules unsupported by weasyprint
 * Authors:
 *     - BRT [author]   — Briard Thibaud <thibaud.brrd@eduge.ch>
 *     - ORZ [original] — orzih <https://github.com/orzih>
 *     - CMA [bugfix]   — cmaurer <https://github.com/cmaurer>
 *     - SAN [bugfix]   — santaimpersonator <https://github.com/santaimpersonator>
**/
/**
 * Admonition icon SVG (with fill attribute) definitions for PDF rendering of admonitions.
 *
 * Description:
 *     These variables define the icons used for admonitions in print (PDF) output.
 *     They override the default Material icons because WeasyPrint does not support `mask-image`.
 * 
 *     Each icon is identical to the one used by Material, but includes a `fill` attribute
 *     directly in the SVG to ensure proper rendering in WeasyPrint.
 * 
 * Note:
 *     If users override or add custom admonition icons, they must also define corresponding
 *     print-friendly versions (with embedded fill color) in an additional stylesheet for them
 *     to appear correctly in the generated PDF.
 * Author:
 *     - BRT
**/
:root {
  --print-md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23448aff"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m3.1 5.07c.14 0 .28.05.4.16l1.27 1.27c.23.22.23.57 0 .78l-1 1-2.05-2.05 1-1c.1-.11.24-.16.38-.16m-1.97 1.74 2.06 2.06-6.06 6.06H7.07v-2.06z"/></svg>');
  --print-md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300b0ff"><path d="M17 9H7V7h10m0 6H7v-2h10m-3 6H7v-2h7M12 3a1 1 0 0 1 1 1 1 1 0 0 1-1 1 1 1 0 0 1-1-1 1 1 0 0 1 1-1m7 0h-4.18C14.4 1.84 13.3 1 12 1s-2.4.84-2.82 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2"/></svg>');
  --print-md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300b8d4"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10A10 10 0 0 0 12 2"/></svg>');
  --print-md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300bfa5"><path d="M17.66 11.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32-2.59 2.08-3.61 5.75-2.39 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5.14.6.41 1.2.71 1.73 1.08 1.73 2.95 2.97 4.96 3.22 2.14.27 4.43-.12 6.07-1.6 1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82 1.19-.28 1.9-1.16 2.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63 1.06.77 1 1.98 1.44 2.24 2.8.04.14.06.28.06.43.03.82-.33 1.72-.93 2.27"/></svg>');
  --print-md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2300c853"><path d="M21 7 9 19l-5.5-5.5 1.41-1.41L9 16.17 19.59 5.59z"/></svg>');
  --print-md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2364dd17"><path d="m15.07 11.25-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 0 0-2-2 2 2 0 0 0-2 2H8a4 4 0 0 1 4-4 4 4 0 0 1 4 4 3.2 3.2 0 0 1-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 0 0 2 12a10 10 0 0 0 10 10 10 10 0 0 0 10-10c0-5.53-4.5-10-10-10"/></svg>');
  --print-md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff9100"><path d="M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z"/></svg>');
  --print-md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff5252"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');
  --print-md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23ff1744"><path d="m11.5 20 4.86-9.73H13V4l-5 9.73h3.5zM12 2c2.75 0 5.1 1 7.05 2.95S22 9.25 22 12s-1 5.1-2.95 7.05S14.75 22 12 22s-5.1-1-7.05-2.95S2 14.75 2 12s1-5.1 2.95-7.05S9.25 2 12 2"/></svg>');
  --print-md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23f50057"><path d="M11 13h2v1h-2zm10-8v6c0 5.5-3.8 10.7-9 12-5.2-1.3-9-6.5-9-12V5l9-4zm-4 5h-2.2c-.2-.6-.6-1.1-1.1-1.5l1.2-1.2-.7-.7L12.8 8H12c-.2 0-.5 0-.7.1L9.9 6.6l-.8.8 1.2 1.2c-.5.3-.9.8-1.1 1.4H7v1h2v1H7v1h2v1H7v1h2.2c.4 1.2 1.5 2 2.8 2s2.4-.8 2.8-2H17v-1h-2v-1h2v-1h-2v-1h2zm-6 2h2v-1h-2z"/></svg>');
  --print-md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%237c4dff"><path d="M7 2v2h1v14a4 4 0 0 0 4 4 4 4 0 0 0 4-4V4h1V2zm4 14c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m2-4c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1m1-5h-4V4h4z"/></svg>');
  --print-md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%239e9e9e"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3z"/></svg>'); }

/**
 * Fix for admonition icon and title positioning
 *
 * Description:
 *     The `::before` pseudo-element (used for the icon) and the actual admonition title element
 *     are collapsing into each other. This visual issue likely come from the related rule below.
 *
 * Issue  : https://github.com/orzih/mkdocs-with-pdf/issues/89
 * Authors:
 *     - CMA — cmaurer <https://github.com/cmaurer>
 *     - SAN — santaimpersonator <https://github.com/santaimpersonator>
**/
@media print {
  .md-typeset .admonition-title,
  .md-typeset summary {
    padding: 0.6rem 0.6rem 0.4rem 2.2rem; }
  .md-typeset .admonition-title::before,
  .md-typeset summary::before {
    /**
         * Originally 0.6rem but 0.8rem represent better what we can see on site
         * (admonitions titles are slightly above icons base
        **/
    top: 0.8rem;
    left: 0.6rem; } }

/**
 * Fix incompatibility between admonition icon styles and WeasyPrint
 *
 * Description:
 *     These rules override material default styles for admonition icons by:
 *     - Making the background color transparent (remove material behavior)
 *     - Setting the background image to the actual icon with fill color
 * 
 * Issue:
 *     Admonition icons use variable colors from the palette.
 *     However, when generating a PDF, the icon appears as a solid colored square,
 *     with no visible icon. This is because WeasyPrint does not support 
 *     the `mask-image` CSS property.
 * 
 * Related issues:
 *     - MkDocs Material : https://github.com/squidfunk/mkdocs-material/issues/3771
 *     - WeasyPrint      : https://github.com/Kozea/WeasyPrint/issues/1458
**/
@media print {
  .md-typeset .note > .admonition-title::before,
  .md-typeset .note > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--note);
    background-repeat: no-repeat; }
  .md-typeset .abstract > .admonition-title::before,
  .md-typeset .abstract > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--abstract);
    background-repeat: no-repeat; }
  .md-typeset .info > .admonition-title::before,
  .md-typeset .info > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--info);
    background-repeat: no-repeat; }
  .md-typeset .tip > .admonition-title::before,
  .md-typeset .tip > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--tip);
    background-repeat: no-repeat; }
  .md-typeset .success > .admonition-title::before,
  .md-typeset .success > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--success);
    background-repeat: no-repeat; }
  .md-typeset .question > .admonition-title::before,
  .md-typeset .question > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--question);
    background-repeat: no-repeat; }
  .md-typeset .warning > .admonition-title::before,
  .md-typeset .warning > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--warning);
    background-repeat: no-repeat; }
  .md-typeset .failure > .admonition-title::before,
  .md-typeset .failure > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--failure);
    background-repeat: no-repeat; }
  .md-typeset .danger > .admonition-title::before,
  .md-typeset .danger > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--danger);
    background-repeat: no-repeat; }
  .md-typeset .bug > .admonition-title::before,
  .md-typeset .bug > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--bug);
    background-repeat: no-repeat; }
  .md-typeset .example > .admonition-title::before,
  .md-typeset .example > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--example);
    background-repeat: no-repeat; }
  .md-typeset .quote > .admonition-title::before,
  .md-typeset .quote > summary::before {
    margin-top: -0.15rem;
    background-color: transparent;
    background-image: var(--print-md-admonition-icon--quote);
    background-repeat: no-repeat; } }
