/* until browsers don't let us set length values based on dppx, we
need a way to calculate them ourself */
:root {
  --dpr: 1;
  --bpx: 1;
  --bpx1: 1;
}
@media (min-resolution: 105dpi) {
  :root {
    --dpr: 1.1;
    --bpx: 1.1;
    --bpx1: calc(1 / 1.1);
  }
}
@media (min-resolution: 115dpi) {
  :root {
    --dpr: 1.2;
    --bpx: 1.2;
    --bpx1: calc(1 / 1.2);
  }
}
@media (min-resolution: 120dpi) {
  :root {
    --dpr: 1.25;
    --bpx: 1.25;
    --bpx1: calc(1 / 1.25);
  }
}
@media (min-resolution: 128dpi) {
  :root {
    --dpr: 1.333;
    --bpx: 1.333;
    --bpx1: calc(1 / 1.333);
  }
}
@media (min-resolution: 144dpi) {
  :root {
    --dpr: 1.5;
    --bpx: 1.5;
    --bpx1: calc(1 / 1.5);
  }
}
@media (min-resolution: 160dpi) {
  :root {
    --dpr: 1.666;
    --bpx: 1.666;
    --bpx1: calc(1 / 1.666);
  }
}
@media (min-resolution: 168dpi) {
  :root {
    --dpr: 1.75;
    --bpx: 1.75;
    --bpx1: calc(1 / 1.75);
  }
}
@media (min-resolution: 192dpi) {
  :root {
    --dpr: 2;
    --bpx: 1;
    --bpx1: 1;
  }
}
@media (min-resolution: 240dpi) {
  :root {
    --dpr: 2.5;
    --bpx: 1.25;
    --bpx1: calc(1 / 1.25);
  }
}
@media (min-resolution: 288dpi) {
  :root {
    --dpr: 3;
    --bpx: 1;
    --bpx1: 1;
  }
}
@media (min-resolution: 384dpi) {
  :root {
    --dpr: 4;
    --bpx: 1;
    --bpx1: 1;
  }
}
@media (min-resolution: 480dpi) {
  :root {
    --dpr: 5;
    --bpx: 1.25;
    --bpx1: calc(1 / 1.25);
  }
}
@media (min-resolution: 576dpi) {
  :root {
    --dpr: 6;
    --bpx: 1.5;
    --bpx1: calc(1 / 1.5);
  }
}
@media (min-resolution: 768dpi) {
  :root {
    --dpr: 8;
    --bpx: 1;
    --bpx1: 1;
  }
}

html {
  color-scheme: only var(--INTERNAL-BROWSER-theme);
  height: 100%;
  width: 100%;
  --VARIABLE-LINK-color: var(--INTERNAL-MAIN-LINK-color);
  --VARIABLE-LINK-HOVER-color: var(--INTERNAL-MAIN-LINK-HOVER-color);
}

body {
  background-color: var(--INTERNAL-MAIN-BG-color);
  color: var(--INTERNAL-MAIN-TEXT-color);
  display: flex;
  flex-direction: row-reverse; /* to allow body to have initial focus for PS in some browsers and better SEO and a11y */
  font-size: 1.015625rem;
  font-variation-settings: var(--INTERNAL-MAIN-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-font-weight);
  font-family: var(--INTERNAL-MAIN-font);
  height: 100%;
  justify-content: flex-end;
  letter-spacing: var(--INTERNAL-MAIN-letter-spacing);
  line-height: 1.574;
  /* overflow: hidden; PSC removed for #242 #243 #244; to avoid browser scrollbar to flicker before we create our own */
  width: 100%;
}

b,
strong,
label,
th,
blockquote cite {
  font-weight: var(--INTERNAL-MAIN-BOLD-font-weight);
}

ul {
  list-style: disc;
}

dt {
  font-style: italic;
}

dd {
  display: list-item;
  list-style: disc;
  margin-inline-start: 1.5rem;
}

a {
  color: var(--VARIABLE-LINK-color);
}

a:hover,
a:active,
a:focus {
  color: var(--VARIABLE-LINK-HOVER-color);
}

.default-animation {
  transition: all 0.35s ease;
}

#R-sidebar {
  background: var(--INTERNAL-MENU-SECTIONS-BG-color);
  display: flex;
  flex-basis: auto;
  flex-direction: column;
  flex-grow: 0;
  flex-shrink: 0;
  font-size: 0.953125rem;
  height: 100%;
  inset-inline-start: 0;
  line-height: 1.574;
  min-height: 100%;
  overflow: hidden;
  position: fixed;
  min-width: var(--INTERNAL-MENU-L-width);
  max-width: var(--INTERNAL-MENU-L-width);
  width: var(--INTERNAL-MENU-L-width);
}

#R-sidebar a {
  text-decoration: none;
}

#R-header-wrapper > * {
  padding-inline: 1rem;
}
#R-header-wrapper > search {
  color: var(--INTERNAL-MENU-SEARCH-color);
  display: block;
  margin-block: 0.5rem;
}

#R-logo.R-default:has(> .logo-title) + search,
#R-header-wrapper > search:not(:only-child) {
  margin-bottom: 1rem;
}

#R-header-wrapper > search > form {
  overflow: hidden;
}

.searchbox {
  background-color: var(--INTERNAL-MENU-SEARCH-BG-color);
  border-color: var(--INTERNAL-MENU-SEARCH-BORDER-color);
  border-radius: 4px;
  border-style: solid;
  border-width: 1px;
  position: relative;
}

.searchbox > :first-child {
  inset-inline-start: 0.333rem;
  position: absolute;
}

.searchbox > button {
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
  border: 0;
  margin: 0;
  padding: 0;
  top: 0.25rem;
}

.searchbox > i {
  top: 0.45rem;
}

.searchbox > :last-child {
  inset-inline-end: 0.333rem;
  position: absolute;
}

#R-sidebar .searchbox > button {
  color: var(--INTERNAL-MENU-SEARCH-color);
  opacity: 0.75;
}

#R-sidebar .searchbox button:hover {
  color: var(--INTERNAL-MENU-SEARCH-HOVER-color);
  opacity: 1;
}

.searchbox input {
  display: inline-block;
  width: 100%;
  height: 1.875rem;
  background: transparent;
  border: 0;
  padding-bottom: 0;
  padding-inline-end: 1.6rem;
  padding-inline-start: 1.8rem;
  padding-top: 0;
  margin: 0;
}

.searchbox input::-webkit-input-placeholder {
  color: var(--INTERNAL-MENU-SEARCH-color);
}
.searchbox input::placeholder {
  color: var(--INTERNAL-MENU-SEARCH-color);
  opacity: 0.45;
}

#R-content-wrapper {
  --ps-rail-hover-color: rgba(176, 176, 176, 0.25);
  display: flex;
  flex-direction: column;
  flex: 1; /* fill rest of vertical space */
  overflow: hidden;
  position: relative; /* PS */
  z-index: 100;
}

#R-sidebar .padding {
  padding: 0 1rem;
}

#R-sidebar .R-sidebarmenu > ul {
  margin-top: 1rem;
}

#R-sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

#R-sidebar ul li {
  padding: 0;
}

#R-sidebar ul li.visited + span {
  margin-inline-end: 1rem;
}

#R-sidebar ul li .read-icon {
  display: none;
  font-size: 0.8125rem;
  inset-inline-end: 1rem;
  margin: 0.25rem 0 0 0;
  min-width: 1rem;
  position: absolute;
}

#R-sidebar ul li > a .read-icon {
  color: var(--INTERNAL-MENU-VISITED-color);
}
#R-sidebar ul li.visited > a .read-icon {
  display: inline;
}

#R-sidebar .nav-title {
  color: var(--INTERNAL-MENU-SECTIONS-LINK-color);
  font-size: 2rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H1-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H1-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H1-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H1-letter-spacing);
  line-height: 110%;
  margin: 1.25rem 0 -0.25rem 0;
  padding-inline-start: 1rem;
  text-rendering: optimizeLegibility;
  text-transform: uppercase;
}

#R-sidebar hr {
  border-bottom-style: solid;
  border-bottom-width: 1px;
  margin: 1rem 1rem 0 1rem;
}

#R-homelinks hr {
  border-color: var(--INTERNAL-MENU-HOME-SEPARATOR-color);
}
#R-homelinks .R-menu-divider:first-child hr {
  border-color: var(--INTERNAL-MENU-HOME-TOP-SEPARATOR-color);
  margin-top: 0;
}
#R-homelinks .R-menu-divider:last-child hr {
  border-color: var(--INTERNAL-MENU-HOME-BOTTOM-SEPARATOR-color);
  margin-bottom: 3px;
  margin-top: 0;
}

/* visibility for sidebarheader is tricky; first and last divider may have different colors
than the ones in between, so they need to have privileged visibility; order is:
- last
- first
- in between
*/
#R-sidebar .R-sidebarmenu:not(:has(> ul > *)) {
  /* hide all empty menus */
  display: none;
}
#R-sidebar .R-menu-divider:not(:has(+ .R-sidebarmenu > ul > *)) hr {
  /* hide all upper hrs if the following menu has no entries,
  this is common for all menu regardless of header, body or footer */
  display: none;
}
#R-homelinks .R-menu-divider:first-child:not(:has(+ .R-sidebarmenu > ul > *)):has(~ .R-sidebarmenu > ul > *) hr {
  /* in case if the first menu is empty and we have some other menus to follow, we have
  to show the first divider because of different coloring */
  display: revert;
}
#R-homelinks .R-menu-divider:first-child + .R-sidebarmenu:not(:has(> ul > *)) ~ .R-menu-divider:has(+ .R-sidebarmenu > ul > *) hr {
  /* in case if the first menu is empty and we have some other menus to follow, we have
  to hide the first following menus divider because of different coloring;
  this selector selects all following menus, so we have to write a follow up
  rule to remove that effect on all but the first */
  display: none;
}
#R-sidebar #R-homelinks .R-menu-divider:has(+ .R-sidebarmenu > ul > *) ~ .R-menu-divider:has(+ .R-sidebarmenu > ul > *) hr {
  /* the mentioned follow up rule from above */
  display: revert;
}
#R-sidebar #R-homelinks .R-menu-divider:last-child hr {
  display: revert;
}

#R-content-wrapper hr {
  border-color: var(--INTERNAL-MENU-SECTION-SEPARATOR-color);
}

#R-footer-margin {
  flex-grow: 1;
}

#R-footer-margin + .R-menu-divider hr {
  margin-top: 1.25rem;
}

#R-footer {
  color: var(--INTERNAL-MENU-SECTIONS-LINK-color);
  font-size: 0.8125rem;
  padding-bottom: 1.25rem;
  padding-top: 2rem;
  text-align: center;
}
#R-footer:empty {
  padding-bottom: 0.625rem;
  padding-top: 0.625rem;
}

#R-footer > * {
  margin: 0 auto;
}

#R-footer > hr:first-child {
  margin-bottom: 1.25rem;
  margin-top: -0.5rem;
}

#R-footer > hr {
  margin-left: 0;
  margin-right: 0;
}

article .R-taxonomy.tags {
  --VARIABLE-TAGS-color: var(--INTERNAL-MAIN-BG-color);
  --VARIABLE-TAGS-BG-color: var(--VARIABLE-BOX-color);
  margin-left: 1rem;
  margin-top: 1rem;
}

article .R-taxonomy.tags i {
  display: none;
}

article .R-taxonomy.tags ul > li ~ li:before {
  content: ' ';
}

article .R-taxonomy.tags a.term-link {
  background-color: var(--VARIABLE-TAGS-BG-color);
  border-bottom-right-radius: 3px;
  border-top-right-radius: 3px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
  color: var(--VARIABLE-TAGS-color);
  display: inline-block;
  font-size: 0.8em;
  font-weight: var(--INTERNAL-MAIN-TITLES-font-weight);
  line-height: 2em;
  margin: 0 0 8px -1px;
  margin-inline-end: 16px;
  padding: 0 10px 0 12px;
  position: relative;
}

article .R-taxonomy.tags a.term-link:before {
  border-color: transparent;
  border-right-color: var(--VARIABLE-TAGS-BG-color);
  border-style: solid;
  border-width: 1em 1em 1em 0;
  content: '';
  left: -1em;
  height: 0;
  position: absolute;
  top: 0;
  width: 0;
}

article .R-taxonomy.tags a.term-link:after {
  background-color: var(--VARIABLE-TAGS-color);
  border-radius: 100%;
  content: '';
  left: 1px;
  height: 5px;
  position: absolute;
  top: 10px;
  width: 5px;
}

article .R-taxonomy.tags a.term-link:hover:after {
  width: 5px;
}

#R-body {
  display: flex;
  flex-basis: 100%;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 0;
  height: 100%;
  margin-inline-start: var(--INTERNAL-MENU-L-width);
  min-height: 100%;
  overflow-wrap: break-word; /* avoid x-scrolling of body if it is to large to fit */
  position: relative; /* PS */
  min-width: calc(100% - var(--INTERNAL-MENU-L-width));
  max-width: calc(100% - var(--INTERNAL-MENU-L-width));
  width: calc(100% - var(--INTERNAL-MENU-L-width));
  z-index: 70;
}

#R-body svg,
#R-body img,
#R-body figure > figcaption > h4,
#R-body figure > figcaption > p,
#R-body .video-container {
  display: block;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  text-align: center;
}

#R-body svg:not(.lightbox-image).left,
#R-body img:not(.lightbox-image).left {
  margin-left: 0;
}

#R-body svg:not(.lightbox-image).right,
#R-body img:not(.lightbox-image).right {
  margin-right: 0;
}

#R-body svg:not(.lightbox-image).border,
#R-body img:not(.lightbox-image).border,
#R-body .video-container.border {
  background-clip: padding-box;
  border: 1px solid rgba(134, 134, 134, 0.333);
}

#R-body svg:not(.lightbox-image).shadow,
#R-body img:not(.lightbox-image).shadow,
#R-body .video-container.shadow {
  box-shadow: 0 10px 30px rgba(176, 176, 176, 0.666);
}

#R-body svg:not(.lightbox-image).inline,
#R-body img:not(.lightbox-image).inline {
  display: inline;
  margin: 0;
  vertical-align: bottom;
}

#R-body figure > figcaption {
  margin: 0;
}

#R-body figure > figcaption > h4 {
  font-size: 1rem;
  font-weight: 500;
  margin: 0;
}

#R-body figure > figcaption > p {
  font-size: 0.85rem;
  font-weight: 300;
  margin-top: 0.15rem;
}
#R-body figure > figcaption > h4 + p {
  margin-top: 0;
}

#R-body-inner {
  display: flex;
  flex: auto;
  flex-direction: column;
  overflow-y: auto;
  padding: 0 3.25rem 4rem 3.25rem;
  position: relative; /* PS */
}
@media screen and (max-width: 59.999rem) {
  #R-body-inner {
    padding: 0 2rem 1rem 2rem;
  }
}
@media screen and (max-width: 47.999rem) {
  #R-body-inner {
    padding: 0 1.25rem 0.375rem 1.25rem;
  }
}

#R-topbar a:hover:empty,
#R-topbar a:active:empty,
#R-topbar a:focus:empty,
#R-topbar a:hover :not(i),
#R-topbar a:active :not(i),
#R-topbar a:focus :not(i),
#R-topbar button:hover :not(i),
#R-topbar button:active :not(i),
#R-topbar button:focus :not(i),
#R-topbar .title:hover,
#R-topbar .title:active,
#R-topbar .title:focus,
.topbar-content a:hover,
.topbar-content a:active,
.topbar-content a:focus,
article a:hover,
article a:active,
article a:focus,
article a:hover .copy-to-clipboard,
article a:active .copy-to-clipboard,
article a:focus .copy-to-clipboard {
  text-decoration: underline;
}
.topbar-content a:hover,
.topbar-content a:active,
.topbar-content a:focus,
article a:hover,
article a:active,
article a:focus,
article a:hover .copy-to-clipboard,
article a:active .copy-to-clipboard,
article a:focus .copy-to-clipboard,
article a.lightbox-back:hover > svg:only-child:empty,
article a.lightbox-back:active > svg:only-child:empty,
article a.lightbox-back:focus > svg:only-child:empty,
article a.lightbox-back:hover > img:only-child:empty,
article a.lightbox-back:active > img:only-child:empty,
article a.lightbox-back:focus > img:only-child:empty,
article .btn > button:hover,
article .btn > button:active,
article .btn > button:focus {
  outline: none;
}
article a:hover > svg:only-child:empty,
article a:active > svg:only-child:empty,
article a:focus > svg:only-child:empty,
article a:hover > img:only-child:empty,
article a:active > img:only-child:empty,
article a:focus > img:only-child:empty {
  outline: 0.15rem solid var(--VARIABLE-LINK-HOVER-color);
}

#R-body-inner:focus-visible {
  /* remove focus indicator for programatically set focus */
  outline: none;
}

#R-body h1 + hr {
  margin-bottom: 2rem;
  margin-top: -1rem;
}

#R-body .flex-block-wrapper {
  margin-left: auto;
  margin-right: auto;
  max-width: calc(var(--INTERNAL-MAIN-MAX-width) - var(--INTERNAL-MENU-L-width) - 2 * 3.25rem);
  width: 100%;
}
#R-body .flex-block-wrapper:has(article.narrow) {
  max-width: calc(var(--INTERNAL-MAIN-MAX-width) - var(--INTERNAL-MENU-L-width) - 2 * 9.75rem);
}
.main-max-width #R-body .flex-block-wrapper {
  width: calc(var(--INTERNAL-MAIN-MAX-width) - var(--INTERNAL-MENU-L-width) - 2 * 3.25rem);
}
.main-max-width #R-body .flex-block-wrapper:has(article.narrow) {
  width: calc(var(--INTERNAL-MAIN-MAX-width) - var(--INTERNAL-MENU-L-width) - 2 * 9.75rem);
}

#R-body-inner:has(> .flex-block-wrapper article.narrow) {
  padding: 0 9.75rem 2rem 9.75rem;
}
@media screen and (max-width: 59.999rem) {
  #R-body-inner:has(> .flex-block-wrapper article.narrow) {
    padding: 0 6.5rem 1rem 6.5rem;
  }
}
@media screen and (max-width: 47.999rem) {
  #R-body-inner:has(> .flex-block-wrapper article.narrow) {
    padding: 0 3.25rem 0.375rem 3.25rem;
  }
}

#R-body-inner > .flex-block-wrapper article.narrow > p {
  font-size: 1.2rem;
  text-align: justify;
}

mark {
  background: transparent;
  background-image: linear-gradient(to right, color-mix(in srgb, var(--INTERNAL-ACCENT-color) 5%, transparent), color-mix(in srgb, var(--INTERNAL-ACCENT-color) 95%, transparent) 4%, color-mix(in srgb, var(--INTERNAL-ACCENT-color) 40%, transparent));
  border-radius: 0.8em 0.3rem;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  color: rgba(0, 0, 0, 1);
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
  margin: 0 -0.25rem 0 -0.1rem;
  padding: 0.1rem 0.25rem 0.05rem 0.1rem;
}

kbd {
  background-color: rgba(134, 134, 134, 0.166);
  border-color: rgba(134, 134, 134, 0.5);
  border-radius: 0.25rem;
  border-style: solid;
  border-width: 1px;
  box-shadow: 0 0.0625rem 0 0.0625rem rgba(134, 134, 134, 0.5);
  color: var(--INTERNAL-TEXT-color);
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
  line-height: 1;
  min-width: 0.75rem;
  padding: 0.125rem 0.3125rem 0.125rem 0.3125rem;
  position: relative;
  text-align: center;
  top: -0.125rem;
}

h1 {
  color: var(--INTERNAL-MAIN-TITLES-H1-TEXT-color);
  font-size: 3.25rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H1-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H1-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H1-font);
  hyphens: auto;
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H1-letter-spacing);
  margin: 0.85rem 0 1rem 0;
  /* big titles cause a horizontal scrollbar - fixing this by wrapping text */
  overflow-wrap: break-word;
  overflow-x: hidden;
  text-align: center;
  text-rendering: optimizeLegibility;
  text-transform: uppercase;
}

#R-body-inner > .flex-block-wrapper article.narrow h1 {
  border-bottom: 4px solid rgba(134, 134, 134, 0.125);
}
@media only screen and (min-width: 48rem) and (max-width: 59.999rem) {
  #R-body-inner > .flex-block-wrapper article h1 {
    font-size: 2.8rem;
  }
}
@media only screen and (max-width: 47.999rem) {
  #R-body-inner > .flex-block-wrapper article h1 {
    font-size: 2.5rem;
  }
}

.article-subheading {
  color: var(--INTERNAL-MAIN-TITLES-H1-TEXT-color);
  font-size: 1.8rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H1-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H1-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H1-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H1-letter-spacing);
  text-align: center;
}
#R-body-inner > .flex-block-wrapper article > .article-subheading {
  margin-top: 0;
}
#R-body-inner > .flex-block-wrapper article.narrow > .article-subheading {
  margin-top: 2rem;
}
@media screen and (max-width: 59.999rem) {
  #R-body-inner > .flex-block-wrapper article.narrow > .article-subheading {
    margin-top: 1rem;
  }
}
@media screen and (max-width: 47.999rem) {
  #R-body-inner > .flex-block-wrapper article.narrow > .article-subheading {
    margin-top: 0.375rem;
  }
}

h2,
.card-title {
  color: var(--INTERNAL-MAIN-TITLES-H2-TEXT-color);
  font-size: 2.2rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H2-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H2-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H2-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H2-letter-spacing);
}

h3 {
  color: var(--INTERNAL-MAIN-TITLES-H3-TEXT-color);
  font-size: 1.8rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H3-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H3-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H3-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H3-letter-spacing);
}

h4 {
  color: var(--INTERNAL-MAIN-TITLES-H4-TEXT-color);
  font-size: 1.85rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H4-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H4-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H4-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H4-letter-spacing);
}

h5 {
  color: var(--INTERNAL-MAIN-TITLES-H5-TEXT-color);
  font-size: 1.6rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H5-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H5-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H5-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H5-letter-spacing);
}

h6 {
  color: var(--INTERNAL-MAIN-TITLES-H6-TEXT-color);
  font-size: 1.3rem;
  font-variation-settings: var(--INTERNAL-MAIN-TITLES-H6-font-variation-settings);
  font-weight: var(--INTERNAL-MAIN-TITLES-H6-font-weight);
  font-family: var(--INTERNAL-MAIN-TITLES-H6-font);
  letter-spacing: var(--INTERNAL-MAIN-TITLES-H6-letter-spacing);
}

h2,
.card-title,
h3,
.article-subheading,
h4,
h5,
h6 {
  hyphens: auto;
  margin: 1.5rem 0 1rem 0;
  /* big titles cause a horizontal scrollbar - fixing this by wrapping text */
  overflow-wrap: break-word;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
}

h2,
h3,
h4,
h5,
h6 {
  /* leave space for anchor to avoid overflow */
  padding-inline-end: 2rem;
}

blockquote {
  border-inline-start: 0.6rem solid rgba(134, 134, 134, 0.4);
}

blockquote p {
  font-size: 1.06640625rem;
  font-style: italic;
  opacity: 0.75;
  text-align: justify;
}

blockquote cite {
  display: block;
  opacity: 0.5;
  padding-top: 0.5rem;
  text-align: end;
}

/* colored boxes */

.box {
  background-color: var(--VARIABLE-BOX-color);
  border-color: var(--VARIABLE-BOX-color);
  border-style: solid;
  border-width: 1px;
  margin: 1.5rem 0;
  outline: none;
  pointer-events: none;
}

.box > .box-label {
  color: var(--VARIABLE-BOX-CAPTION-color);
  font-weight: 500;
  margin-left: 0.6rem;
  margin-right: 0.6rem;
  padding: 0.2rem 0;
}
.box > .box-label::-webkit-details-marker,
.box > .box-label::marker {
  display: none;
}

.box > .box-content {
  background-color: var(--VARIABLE-BOX-BG-color);
  color: var(--VARIABLE-BOX-TEXT-color);
  padding-top: 1rem;
  padding-bottom: 1rem;
  padding-left: 1rem;
  padding-right: 1rem;
  pointer-events: auto;
}
/* remove margin if only a single code block is contained in the tab */
#R-body .box-content:not(:has(> p)):has(> div[class*='highlight']:only-of-type),
#R-body .box-content:has(> p:empty):has(> div[class*='highlight']:only-of-type) {
  padding: 0;
}
/* remove border from a code block if single  */
#R-body .box-content:not(:has(> p)) > div[class*='highlight']:only-of-type > pre,
#R-body .box-content:has(> p:empty) > div[class*='highlight']:only-of-type > pre {
  border: 0;
}

p:empty {
  /* in case of image render hook, Hugo may generate empty <p>s that we want to ignore */
  display: none;
}

/* in case of image render hook, Hugo may generate empty <p>s that we want to ignore as well, so a simple :first-child or :last-child is not enough */
#R-body table th > :nth-child(1 of :not(:empty)),
#R-body table th > :nth-child(1 of :not(:empty)) :nth-child(1 of :not(:empty)),
#R-body table td > :nth-child(1 of :not(:empty)),
#R-body table td > :nth-child(1 of :not(:empty)) :nth-child(1 of :not(:empty)),
#R-body .box > .box-content > :nth-child(1 of :not(:empty)),
#R-body .box > .box-content > :nth-child(1 of :not(:empty)) :nth-child(1 of :not(:empty)),
#R-body .card-content > .card-content-text > :nth-child(1 of :not(:empty)),
#R-body .card-content > .card-content-text > :nth-child(1 of :not(:empty)) :nth-child(1 of :not(:empty)),
#R-body .tab-content > .tab-content-text > :nth-child(1 of :not(:empty)),
#R-body .tab-content > .tab-content-text > :nth-child(1 of :not(:empty)) :nth-child(1 of :not(:empty)) {
  margin-top: 0;
}

#R-body table th > :nth-last-child(1 of :not(:empty)),
#R-body table th > :nth-last-child(1 of :not(:empty)) :nth-last-child(1 of :not(:empty)),
#R-body table th > div.highlight:last-child pre:not(.mermaid),
#R-body table td > :nth-last-child(1 of :not(:empty)),
#R-body table td > :nth-last-child(1 of :not(:empty)) :nth-last-child(1 of :not(:empty)),
#R-body table td > div:last-child pre:not(.mermaid),
#R-body .box > .box-content > :nth-last-child(1 of :not(:empty)),
#R-body .box > .box-content > :nth-last-child(1 of :not(:empty)) :nth-last-child(1 of :not(:empty)),
#R-body .box > .box-content > div:last-child pre:not(.mermaid),
#R-body .card-content > .card-content-text > :nth-last-child(1 of :not(:empty)),
#R-body .card-content > .card-content-text > :nth-last-child(1 of :not(:empty)) :nth-last-child(1 of :not(:empty)),
#R-body .card-content > .card-content-text > div:last-child pre:not(.mermaid),
#R-body .tab-content > .tab-content-text > :nth-last-child(1 of :not(:empty)),
#R-body .tab-content > .tab-content-text > :nth-last-child(1 of :not(:empty)) :nth-last-child(1 of :not(:empty)),
#R-body .tab-content > .tab-content-text > div:last-child pre:not(.mermaid) {
  margin-bottom: 0;
}

/* Children shortcode */
.children-type-group li > p + p {
  overflow: hidden;
  text-overflow: ellipsis;
  text-wrap-mode: nowrap;
}
.children-type-group li > p + p,
.children-type-tree li > p + p,
.children-type-flat li > p {
  font-size: 0.859625rem;
  font-style: italic;
}

.children-type-group p,
.children-type-tree p,
.children-type-flat p,
.children-type-list p {
  margin-bottom: 0;
  margin-top: 0;
  padding-bottom: 0;
  padding-top: 0;
}

.children-type-group p + p,
.children-type-tree p + p,
.children-type-flat p + p,
.children-type-list p + p {
  margin-top: 0.125em;
}

.children-type-flat,
.children-type-list {
  list-style: none;
  padding-inline-start: 0;
}

.children-type-flat li,
.children-type-list li {
  margin-inline-start: 0;
}

.children-type-list :is(h1, h2, h3, h4, h5, h6) {
  margin-bottom: 0;
  margin-top: 1rem;
}

code,
kbd,
pre:not(.mermaid),
samp {
  font-size: 0.934375em;
  font-variation-settings: var(--INTERNAL-CODE-font-variation-settings);
  font-weight: var(--INTERNAL-CODE-font-weight);
  font-family: var(--INTERNAL-CODE-font);
  letter-spacing: var(--INTERNAL-CODE-letter-spacing);
  vertical-align: baseline;
}

code {
  background-color: var(--INTERNAL-CODE-INLINE-BG-color);
  border-color: var(--INTERNAL-CODE-INLINE-BORDER-color);
  border-radius: 0.125em;
  border-style: solid;
  border-width: 1px;
  color: var(--INTERNAL-CODE-INLINE-color);
  -webkit-print-color-adjust: economy;
  color-adjust: economy;
  padding-left: 0.125em;
  padding-right: 0.125em;
}

pre:not(.mermaid) {
  background-color: var(--INTERNAL-CODE-BLOCK-BG-color);
  border-color: var(--INTERNAL-CODE-BLOCK-BORDER-color);
  border-radius: 2px;
  border-style: solid;
  border-width: 1px;
  color: var(--INTERNAL-CODE-BLOCK-color);
  -webkit-print-color-adjust: economy;
  color-adjust: economy;
  line-height: 1.15;
  padding: 1rem;
  position: relative;
}

pre:not(.mermaid) code {
  background-color: inherit;
  border: 0;
  color: inherit;
  -webkit-print-color-adjust: economy;
  color-adjust: economy;
  font-size: 0.9375rem;
  margin: 0;
  padding: 0;
}

div.highlight {
  position: relative;
}
/* we may have special treatment if highlight shortcode was used in table lineno mode */
div.highlight > div:not(.actionbar) {
  background-color: var(--INTERNAL-CODE-BLOCK-BG-color);
  border-color: var(--INTERNAL-CODE-BLOCK-BORDER-color);
  border-style: solid;
  border-width: 1px;
}
/* remove default style for usual markdown tables */
div.highlight > div:not(.actionbar) table {
  background-color: transparent;
  border-width: 0;
  margin: 0;
}
table {
  color: var(--INTERNAL-MAIN-TEXT-color);
  position: relative;
}
tr:has(th) {
  background-color: var(--INTERNAL-MAIN-BG-color);
  position: sticky;
  top: -1px;
  z-index: 110;
}
div.highlight > div:not(.actionbar) td {
  border-width: 0;
}
#R-body div.highlight > div:not(.actionbar) a {
  line-height: inherit;
}
#R-body div.highlight > div:not(.actionbar) a:after {
  display: none;
}
/* disable selection for lineno cells */
div.highlight > div:not(.actionbar) td:first-child:not(:last-child),
div.highlight > span[id] {
  -webkit-user-select: none;
  user-select: none;
}
/* increase code column to full width if highlight shortcode was used in table lineno mode  */
div.highlight > div:not(.actionbar) td:not(:first-child):last-child {
  width: 100%;
}
/* add scrollbars if highlight shortcode was used in table lineno mode */
div.highlight > div:not(.actionbar) table {
  display: block;
  overflow: auto;
}
div.highlight:not(.wrap-code) pre:not(.mermaid) {
  overflow: auto;
}
div.highlight:not(.wrap-code) pre:not(.mermaid) code {
  white-space: pre;
}
div.highlight.wrap-code pre:not(.mermaid) code {
  white-space: pre-wrap;
}
/* remove border from row cells if highlight shortcode was used in table lineno mode */
div.highlight > div:not(.actionbar) td > pre:not(.mermaid) {
  border-radius: 0;
  border-width: 0;
}
/* in case of table lineno mode we want to move each row closer together - besides the edges
this usually applies only to wrapfix tables but it doesn't hurt for non-wrapfix tables too */
div.highlight > div:not(.actionbar) tr:not(:first-child) pre:not(.mermaid) {
  padding-top: 0;
}
div.highlight > div:not(.actionbar) tr:not(:last-child) pre:not(.mermaid) {
  padding-bottom: 0;
}
/* in case of table lineno mode we want to move each columns closer together on the inside */
div.highlight > div:not(.actionbar) td:first-child:not(:last-child) pre:not(.mermaid) {
  padding-right: 0;
}
div.highlight > div:not(.actionbar) td:not(:first-child):last-child pre:not(.mermaid) {
  padding-left: 0;
}

hr {
  border-bottom: 4px solid rgba(134, 134, 134, 0.125);
}

#R-body-inner pre:not(.mermaid) {
  white-space: pre-wrap;
}

table {
  background-color: var(--INTERNAL-MAIN-BG-color);
  border: 1px solid rgba(134, 134, 134, 0.333);
  margin-bottom: 1rem;
  margin-top: 1rem;
  table-layout: auto;
}

th,
thead td {
  background-color: rgba(134, 134, 134, 0.166);
  border: 1px solid rgba(134, 134, 134, 0.333);
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
  padding: 0.5rem;
}

td {
  border: 1px solid rgba(134, 134, 134, 0.333);
  padding: 0.5rem;
}
tbody > tr:nth-child(even) > td {
  background-color: rgba(134, 134, 134, 0.045);
}

/* Toast Notification System */
#toast-container {
  align-items: center;
  bottom: 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  left: 50%;
  pointer-events: none;
  position: fixed;
  transform: translateX(-50%);
  z-index: 200;
}

.toast {
  animation: toast-slide-in 0.3s ease-out;
  background-color: var(--INTERNAL-PRIMARY-color);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  color: var(--MAIN-BG-color);
  font-size: 0.875rem;
  font-weight: 500;
  max-width: 90vw;
  padding: 0.75rem 1.25rem;
  pointer-events: auto;
  text-align: center;
  width: max-content;
}

.toast.toast-hiding {
  animation: toast-fade-out 0.3s ease-in forwards;
}

@keyframes toast-slide-in {
  from {
    opacity: 0;
    transform: translateY(1rem);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes toast-fade-out {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

#R-topbar {
  min-height: 3rem;
  position: relative;
  z-index: 170;
}

#R-topbar > .topbar-wrapper {
  align-items: center;
  background: var(--INTERNAL-TOPBAR-BG-color);
  color: var(--INTERNAL-TOPBAR-TEXT-color);
  display: flex;
  flex-basis: 100%;
  flex-direction: row;
  height: 100%;
  --VARIABLE-LINK-color: var(--INTERNAL-TOPBAR-LINK-color);
  --VARIABLE-LINK-HOVER-color: var(--INTERNAL-TOPBAR-LINK-HOVER-color);
}

.topbar-button {
  display: inline-block;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  position: relative;
}
.topbar-button:not([data-origin]) {
  display: none;
}

.topbar-wrapper > .topbar-area-start > .topbar-button {
  border-inline-end: 1px solid var(--INTERNAL-TOPBAR-SEPARATOR-color);
}
.topbar-wrapper > .topbar-area-end > .topbar-button {
  border-inline-start: 1px solid var(--INTERNAL-TOPBAR-SEPARATOR-color);
}

.topbar-content-wrapper > .topbar-area > .topbar-button {
  padding: 0.5rem 0;
  margin: -0.25rem;
}

.topbar-button > .btn {
  font-size: 1rem;
}
.topbar-button > .btn.cstyle {
  --VARIABLE-LINK-color: var(--INTERNAL-TOPBAR-BUTTON-color);
  --VARIABLE-LINK-HOVER-color: var(--INTERNAL-TOPBAR-BUTTON-HOVER-color);
}

.topbar-button > .btn > button:disabled i,
.topbar-button > .btn > span i {
  color: rgba(134, 134, 134, 0.333);
}

.topbar-sidebar-divider {
  border-inline-start-color: var(--INTERNAL-MENU-TOPBAR-SEPARATOR-color);
  border-inline-start-style: solid;
  border-inline-start-width: 1px;
  height: 2rem;
  margin-inline-end: calc(var(--bpx1) * -1px);
  inset-inline-start: calc(var(--bpx1) * -1px);
  position: relative;
  width: 1px;
}
@media screen and (max-width: 47.999rem) {
  .topbar-sidebar-divider {
    border-inline-start-color: transparent;
  }
}
.topbar-sidebar-divider::after {
  content: '\00a0';
}

.topbar-wrapper > .topbar-area-start {
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
}
.topbar-wrapper > .topbar-area-end {
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
}
.topbar-wrapper > .topbar-hidden {
  display: none;
}

html[dir='rtl'] .topbar-button-prev i,
html[dir='rtl'] .topbar-button-next i {
  transform: scaleX(-1);
}

.topbar-content {
  top: 1rem;
}
.topbar-wrapper > .topbar-area-start .topbar-content {
  inset-inline-start: 1.5rem;
}
.topbar-wrapper > .topbar-area-end .topbar-content {
  inset-inline-end: 1.5rem;
}
.topbar-content .topbar-content {
  /* we don't allow flyouts in flyouts; come on, don't get funny... */
  display: none;
}

.topbar-breadcrumbs {
  margin: 0;
  padding: 0 calc(0.9em - 2px);
}
@media screen and (max-width: 47.999rem) {
  .topbar-breadcrumbs {
    text-align: center;
  }
  .topbar-breadcrumbs li:has(> a) {
    /* same as .a11y-only */
    /* idea taken from https://www.filamentgroup.com/lab/a11y-form-labels.html */
    clip-path: polygon(0 0, 1px 0, 1px 1px, 0 1px);
    overflow: hidden;
    position: absolute;
    height: 1px;
    transform: translateY(-100%);
    transition: transform 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28);
    -webkit-user-select: none;
    user-select: none;
    white-space: nowrap;
    width: 1px;
  }
}

.breadcrumbs {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  white-space: nowrap;
}

.breadcrumbs meta {
  display: none;
}

.breadcrumbs li {
  display: inline-block;
}

#R-body a[aria-disabled='true'] {
  color: var(--INTERNAL-MAIN-TEXT-color);
  pointer-events: none;
  text-decoration: none;
}

@media screen and (max-width: 59.999rem) {
  #R-sidebar {
    min-width: var(--INTERNAL-MENU-M-width);
    max-width: var(--INTERNAL-MENU-M-width);
    width: var(--INTERNAL-MENU-M-width);
  }
  #R-body {
    margin-inline-start: var(--INTERNAL-MENU-M-width);
    min-width: calc(100% - var(--INTERNAL-MENU-M-width));
    max-width: calc(100% - var(--INTERNAL-MENU-M-width));
    width: calc(100% - var(--INTERNAL-MENU-M-width));
  }
}
@media screen and (max-width: 47.999rem) {
  /* we don't support sidebar flyout in mobile */
  .mobile-support #R-sidebar {
    inset-inline-start: calc(-1 * var(--INTERNAL-MENU-S-width));
    min-width: var(--INTERNAL-MENU-S-width);
    max-width: var(--INTERNAL-MENU-S-width);
    width: var(--INTERNAL-MENU-S-width);
  }
  .mobile-support #navshow {
    display: inline;
  }
  .mobile-support #R-body {
    margin-inline-start: 0;
    min-width: 100%;
    max-width: 100%;
    width: 100%;
  }
  .mobile-support.sidebar-flyout {
    overflow: hidden;
  }
  .mobile-support.sidebar-flyout #R-sidebar {
    inset-inline-start: 0;
    z-index: 90;
  }
  .mobile-support.sidebar-flyout #R-body {
    margin-inline-start: var(--INTERNAL-MENU-S-width);
    overflow: hidden;
  }
  .mobile-support.sidebar-flyout #R-body-overlay {
    background-color: rgba(134, 134, 134, 0.5);
    bottom: 0;
    cursor: pointer;
    height: 100vh;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 190;
  }
}

span.copy-to-clipboard {
  display: inline;
  position: relative;
}

code.copy-to-clipboard-code:has(+ .inline-copy-to-clipboard-button):after {
  display: inline-block;
  width: calc(1.375em - var(--bpx1) * 0.125em);
  content: '';
}

.inline-copy-to-clipboard-button.btn.cstyle {
  font: initial;
  font-size: 0.934375em;
  margin-inline-start: calc(-1 * (1.375em - var(--bpx1) * 0.125em));
  position: relative;
  z-index: 10;
}

.inline-copy-to-clipboard-button.btn.cstyle > * {
  border-start-start-radius: 0;
  border-start-end-radius: 0.125em;
  border-end-start-radius: 0;
  border-end-end-radius: 0.125em;
  border-color: var(--INTERNAL-CODE-INLINE-BORDER-color);
  padding: 0;
}

.inline-copy-to-clipboard-button.btn.cstyle > * > i {
  font-size: 0.859625em;
  line-height: 1.375em;
  width: 1.375em;
}

.actionbar {
  display: none;
  inset-inline-end: 4px;
  position: absolute;
  top: 4px;
}

.disableHoverBlockCopyToClipBoard .actionbar {
  display: block;
}

.actionbar-wrapper:hover .actionbar,
.actionbar-wrapper:focus-within .actionbar,
.actionbar:has(:hover),
.actionbar:has(:active),
.actionbar:has(:focus) {
  display: block;
}

@media (any-hover: none) {
  /* if at least one input device does not support hover, force actionbar to be visible */
  .actionbar {
    display: block;
  }
}

.force-display {
  display: block !important;
}

option {
  color: initial;
}

.expand {
  margin-bottom: 1.5rem;
  margin-top: 1.5rem;
  outline: initial;
  pointer-events: initial;
  position: relative;
}

.expand > .box-label {
  cursor: pointer;
}
.expand > .box-label:hover,
.expand > .box-label:active,
.expand > .box-label:focus {
  text-decoration: underline;
}

.expand > .box-label > .expander-icon {
  font-size: 0.8rem;
  width: 0.6rem;
}
.expand[open] > .box-label > i.expander-icon {
  transform: rotate(90deg);
}
html[dir='rtl'] .expand > .box-label > i.expander-icon {
  transform: scaleX(-1);
}
html[dir='rtl'] .expand[open] > .box-label > i.expander-icon {
  transform: rotate(90deg);
}

#R-body footer.footline {
  margin-top: 2rem;
}

.headline i,
.footline i {
  margin-inline-start: 0.5rem;
}
.headline i:first-child,
.footline i:first-child {
  margin-inline-start: 0;
}

.mermaid-container {
  margin-bottom: 1.7rem;
  margin-top: 1.7rem;
}

.mermaid {
  display: inline-block;
  border: 1px solid transparent;
  padding: 0.5rem 0.5rem 0 0.5rem;
  position: relative;
  /* don't use display: none, as this will cause no renderinge by Mermaid */
  visibility: hidden;
  width: 100%;
}
.mermaid-container.zoomable > .mermaid:hover {
  border-color: rgba(134, 134, 134, 0.333);
}
.mermaid.mermaid-render {
  visibility: visible;
}

.mermaid > svg {
  /* remove inline height from generated diagram */
  height: initial !important;
}
.mermaid-container.zoomable > .mermaid > svg {
  cursor: grab;
}

.svg-reset-button.btn {
  display: none;
}

.svg-reset-button.btn.zoomed {
  display: block;
}

.mermaid-code {
  display: none;
}

.include.hide-first-heading h1 ~ h2:first-of-type,
.include.hide-first-heading h1 ~ h3:first-of-type,
.include.hide-first-heading h2 ~ h3:first-of-type,
.include.hide-first-heading h1 ~ h4:first-of-type,
.include.hide-first-heading h2 ~ h4:first-of-type,
.include.hide-first-heading h3 ~ h4:first-of-type,
.include.hide-first-heading h1 ~ h5:first-of-type,
.include.hide-first-heading h2 ~ h5:first-of-type,
.include.hide-first-heading h3 ~ h5:first-of-type,
.include.hide-first-heading h4 ~ h5:first-of-type,
.include.hide-first-heading h1 ~ h6:first-of-type,
.include.hide-first-heading h2 ~ h6:first-of-type,
.include.hide-first-heading h3 ~ h6:first-of-type,
.include.hide-first-heading h4 ~ h6:first-of-type,
.include.hide-first-heading h5 ~ h6:first-of-type {
  display: block;
}

/* Table of contents */

.topbar-flyout #R-main-overlay {
  bottom: 0;
  cursor: pointer;
  left: 0;
  position: absolute;
  right: 0;
  top: 3rem;
  z-index: 160;
}

.topbar-content {
  background: var(--INTERNAL-TOPBAR-OVERLAY-BG-color);
  border: 0 solid rgba(134, 134, 134, 0.166);
  box-shadow: 1px 2px 5px 1px rgba(134, 134, 134, 0.2);
  height: 0;
  opacity: 0;
  overflow: hidden;
  position: absolute;
  visibility: hidden;
  width: 0;
  z-index: 180;
}

.topbar-button.topbar-flyout .topbar-content {
  border-width: 1px;
  height: auto;
  opacity: 1;
  visibility: visible;
  width: auto;
}

.topbar-content .topbar-content-wrapper {
  background-color: rgba(134, 134, 134, 0.066);
}

.topbar-content-wrapper {
  --ps-rail-hover-color: rgba(176, 176, 176, 0.25);
  max-height: 90vh;
  overflow: hidden;
  padding: 0.5rem 1rem;
  position: relative; /* PS */
}

.topbar-content .topbar-button {
  border-width: 0;
  padding: 0.5rem 0;
}

#TableOfContents,
.TableOfContents {
  font-size: 0.8125rem;
}
#TableOfContents ul,
.TableOfContents ul {
  list-style: none;
  margin: 0;
  padding: 0 1rem;
}

#TableOfContents > ul,
.TableOfContents > ul {
  padding: 0;
}

#TableOfContents li,
.TableOfContents li {
  white-space: nowrap;
}

#TableOfContents > ul > li > a,
.TableOfContents > ul > li > a {
  font-weight: 500;
}

/* tree shortcode */

.list-tree ul {
  list-style-type: none;
  padding: 0;
  position: relative;
  overflow: hidden;
}

.list-tree > ul {
  padding-inline-start: 1rem;
}

.list-tree li {
  color: var(--INTERNAL-MAIN-TEXT-color);
  margin-bottom: 0;
  margin-inline-end: 0;
  margin-inline-start: 0.5rem;
  margin-top: 0;
  padding-bottom: 0;
  padding-inline-end: 0.75rem;
  padding-inline-start: 1rem;
  padding-top: 0;
  position: relative;
}
.list-tree > ul > li {
  margin-inline-start: calc(-0.5rem);
}

.list-tree li::before,
.list-tree li::after {
  content: '';
  position: absolute;
  inset-inline-start: 0;
}

/* horizontal line on inner list items */

.list-tree li::before {
  border-top: 2px solid var(--INTERNAL-MAIN-TEXT-color);
  height: 0;
  top: 0.75rem;
  width: 0.75rem;
}

/* vertical line on list items */

.list-tree li:after {
  border-left: 2px solid var(--INTERNAL-MAIN-TEXT-color);
  height: 100%;
  top: -0.5rem;
  width: 0;
}

.list-tree ul:last-child li:last-child:after {
  height: 1.25rem;
}

.list-tree i {
  color: var(--INTERNAL-PRIMARY-color);
  margin-inline-end: 0.25rem;
}

/* icons with style attribute */

i.cstyle {
  color: var(--VARIABLE-BOX-color);
}

.btn {
  background-color: var(--VARIABLE-BOX-color);
  border-radius: 4px;
  display: inline-block;
  font-size: 0.9em;
  font-weight: 500;
  line-height: 1.1;
  margin-bottom: 0;
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
}

.btn.cstyle {
  --VARIABLE-LINK-color: var(--INTERNAL-MAIN-BUTTON-color);
  --VARIABLE-LINK-HOVER-color: var(--INTERNAL-MAIN-BUTTON-HOVER-color);
}

.btn.interactive {
  cursor: pointer;
}

.btn > button {
  letter-spacing: var(--INTERNAL-MAIN-letter-spacing);
}

.btn > span,
.btn > a {
  display: block;
}

.btn > :where(button) {
  -webkit-appearance: none;
  appearance: none;
  border-width: 0;
  margin: 0;
  padding: 0;
}

.btn > * {
  background-color: transparent;
  border-color: var(--VARIABLE-BOX-color);
  border-radius: 4px;
  border-style: solid;
  border-width: 1px;
  color: var(--VARIABLE-BOX-CAPTION-color);
  padding: 0.4em 0.5em;
  text-align: center;
  touch-action: manipulation;
  -webkit-user-select: none;
  user-select: none;
  white-space: nowrap;
}

.btn > *:has(> i.fa-fw.fa-lg) {
  padding: 0.2em;
}

.btn > * > i.fa-fw {
  /* fa-fw makes rectangles instead of squares, so we adjust back, hopefully no icon exceeds that area */
  line-height: 1.15em;
  width: 1.15em;
}

.btn > * > i.fa-fw.fa-lg {
  /* fa-lg makes rectangles instead of squares, so we adjust back, hopefully no icon exceeds that area */
  line-height: 1.375em;
  width: 1.375em;
}

.btn > * > i + .title {
  padding-inline-start: 0.1em;
}

.btn.noborder > * {
  border-color: transparent !important;
}
.btn.notitle > * {
  padding: 0.4em;
}

.btn.notitle.noicon > *:after {
  /* avoid breakage if no content is given */
  content: '\200b';
  display: block;
  min-height: 1.15em;
  min-width: 1.15em;
}

#R-body #R-body-inner .btn > *.highlight:after {
  background-color: transparent;
}

.btn.interactive > *:hover,
.btn.interactive > *:active,
.btn.interactive > *:focus {
  background-color: var(--VARIABLE-BOX-BG-color);
  color: var(--VARIABLE-BOX-TEXT-color);
  text-decoration: none;
}

.btn.cstyle.transparent {
  --VARIABLE-BOX-BG-color: var(--INTERNAL-BOX-BG-color);
}

.btn.interactive.cstyle.transparent:hover,
.btn.interactive.cstyle.transparent:focus,
.btn.interactive.cstyle.transparent:active,
.btn.interactive.cstyle.transparent:has(a:hover),
.btn.interactive.cstyle.transparent:has(a:focus),
.btn.interactive.cstyle.transparent:has(a:active) {
  background-color: var(--INTERNAL-BOX-NEUTRAL-color);
}

.btn.cstyle.transparent > * {
  --VARIABLE-BOX-color: var(--INTERNAL-BOX-NEUTRAL-color);
  --VARIABLE-BOX-TEXT-color: var(--VARIABLE-BOX-CAPTION-color);
}

.btn.cstyle.link > button[disabled],
.btn.cstyle.link:not(.interactive) > * {
  --VARIABLE-BOX-color: transparent;
  --VARIABLE-BOX-BG-color: transparent;
}

/* anchors */
.anchor {
  font-size: 0.5em;
  margin-inline-start: 0.3em;
  margin-top: 0.55em;
  position: absolute;
  visibility: hidden;
}
@media (any-hover: none) {
  /* if there is at least one input device that does not support hover, we want to force the copy button */
  .anchor {
    visibility: visible;
  }
}
h2:hover .anchor,
h3:hover .anchor,
h4:hover .anchor,
h5:hover .anchor,
h6:hover .anchor {
  visibility: visible;
}

/* Redfines headers style */

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  font-weight: inherit;
}

#R-body h1 + h2,
#R-body h1 + h3,
#R-body h1 + h4,
#R-body h1 + h5,
#R-body h1 + h6,
#R-body h2 + h3,
#R-body h2 + h4,
#R-body h2 + h5,
#R-body h2 + h6,
#R-body h3 + h4,
#R-body h3 + h5,
#R-body h3 + h6,
#R-body h4 + h5,
#R-body h4 + h6,
#R-body h5 + h6 {
  margin-top: 1rem;
}

.menu-control .control-style {
  cursor: pointer;
  height: 1.574em;
  overflow: hidden;
}

.menu-control i {
  padding-top: 0.25em;
}

.menu-control i,
.menu-control span {
  cursor: pointer;
  display: block;
  float: left;
}
html[dir='rtl'] .menu-control i,
html[dir='rtl'] .menu-control span {
  float: right;
}

.menu-control :hover,
.menu-control i:hover,
.menu-control span:hover {
  cursor: pointer;
}

.menu-control select,
.menu-control button {
  -webkit-appearance: none;
  appearance: none;
  height: 1.33rem;
  outline: none;
  width: 100%;
}
.menu-control button:active,
.menu-control button:focus,
.menu-control select:active,
.menu-control select:focus {
  outline-style: solid;
}

.menu-control select {
  background-color: transparent;
  background-image: none;
  border: none;
  box-shadow: none;
  padding-left: 0;
  padding-right: 0;
}

.menu-control option {
  color: rgba(0, 0, 0, 1);
  padding: 0;
  margin: 0;
}

.menu-control button {
  background-color: transparent;
  cursor: pointer;
  display: block;
  text-align: start;
}

.clear {
  clear: both;
}

/* clears the 'X' from Chrome's search input */
input[type='search']::-webkit-search-decoration,
input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-results-button,
input[type='search']::-webkit-search-results-decoration {
  display: none;
}

span.math:has(> mjx-container[display]) {
  display: block;
}

@supports selector(.math:has(> mjx-container)) {
  .math {
    visibility: hidden;
  }
  .math:has(> mjx-container) {
    visibility: visible;
  }
}
.math.align-left > mjx-container {
  text-align: left !important;
}

.math.align-center > mjx-container {
  text-align: center !important;
}

.math.align-right > mjx-container {
  text-align: right !important;
}

.scrollbar-measure {
  /* https://davidwalsh.name/detect-scrollbar-width */
  height: 100px;
  overflow: scroll;
  position: absolute;
  width: 100px;
  top: -9999px;
}

.include.hide-first-heading h1:first-of-type,
.include.hide-first-heading h2:first-of-type,
.include.hide-first-heading h3:first-of-type,
.include.hide-first-heading h4:first-of-type,
.include.hide-first-heading h5:first-of-type,
.include.hide-first-heading h6:first-of-type,
.a11y-only {
  /* idea taken from https://www.filamentgroup.com/lab/a11y-form-labels.html */
  clip-path: polygon(0 0, 1px 0, 1px 1px, 0 1px);
  overflow: hidden;
  position: absolute;
  height: 1px;
  transform: translateY(-100%);
  transition: transform 0.5s cubic-bezier(0.18, 0.89, 0.32, 1.28);
  -webkit-user-select: none;
  user-select: none;
  white-space: nowrap;
  width: 1px;
}

/* filament style for making action visible on focus - not adapted yet
.a11y-only:focus {
    position: fixed;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
    margin: 0 0 0 -100px;
    top: -.3em;
    left: 50%;
    text-align: center;
    width: 200px;
    background: rgba(255, 255, 255, 1);
    color: rgba(54, 133, 18, 1);
    padding: .8em 0 .7em;
    font-size: 16px;
    z-index: 5000;
    text-decoration: none;
    border-bottom-right-radius: 8px;
    border-bottom-left-radius: 8px;
    outline: 0;
    transform: translateY(0%);
}
*/

.mermaid-container.align-right {
  text-align: right;
}

.mermaid-container.align-center {
  text-align: center;
}

.mermaid-container.align-left {
  text-align: left;
}

.searchform {
  display: flex;
}

.searchform input {
  flex: 1 0 60%;
  border-radius: 4px;
  border: 2px solid rgba(134, 134, 134, 0.125);
  background: rgba(134, 134, 134, 0.125);
  display: block;
  margin: 0;
  margin-inline-end: 0.5rem;
}

.searchform input::-webkit-input-placeholder,
.searchform input::placeholder {
  color: rgba(134, 134, 134, 1);
  opacity: 0.666;
}

.searchform .btn {
  display: inline-flex;
}

.searchhint {
  margin-top: 1rem;
  height: 1.5rem;
}

#R-sidebar .autocomplete-suggestions {
  background-color: var(--INTERNAL-MAIN-BG-color);
  border: 0 solid rgba(134, 134, 134, 0.166);
  box-shadow: 1px 2px 5px 1px rgba(134, 134, 134, 0.333);
}

#R-sidebar .autocomplete-suggestion {
  /* restore autocomplete default value for sidebar, because it is affected
  by coarse element styling */
  display: block;
}

#R-sidebar .autocomplete-suggestions > .autocomplete-suggestion > .breadcrumbs {
  /* don't show breadcrumbs in sidebar search */
  display: none;
}

#R-searchresults .autocomplete-suggestion {
  display: block;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.5rem;
  padding: 1rem;
  text-decoration: none;
}
#R-searchresults .autocomplete-suggestion:after {
  height: 0;
}

#R-searchresults .autocomplete-suggestion > .breadcrumbs {
  font-size: 0.9rem;
  font-weight: 400;
  margin-top: 0.167em;
  padding-left: 0.2em;
  padding-right: 0.2em;
}

#R-searchresults .autocomplete-suggestion > .context {
  font-size: 1rem;
  font-weight: 300;
  margin-top: 0.66em;
  padding-left: 0.1em;
  padding-right: 0.1em;
}

#R-html .autocomplete-suggestion {
  color: var(--VARIABLE-LINK-color);
}
#R-html .autocomplete-suggestion.selected,
#R-html .autocomplete-suggestion:focus {
  color: var(--VARIABLE-LINK-HOVER-color);
  background-color: rgba(134, 134, 134, 0.133);
}
#R-html .autocomplete-suggestion:hover {
  color: var(--VARIABLE-LINK-HOVER-color);
  background-color: rgba(134, 134, 134, 0.2);
}
#R-html .autocomplete-suggestion .link {
  color: inherit;
}
#R-html .autocomplete-suggestion.selected .link,
#R-html .autocomplete-suggestion:focus .link,
#R-html .autocomplete-suggestion:hover .link {
  color: inherit;
  text-decoration: underline;
}
#R-html .autocomplete-suggestion > .breadcrumbs {
  background-color: transparent;
  color: var(--INTERNAL-PRIMARY-color);
}
#R-html .autocomplete-suggestion > .context {
  background-color: transparent;
  color: var(--INTERNAL-MAIN-TEXT-color);
}

.badge {
  border-radius: 3px;
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 500;
  vertical-align: middle;
}

.badge > * {
  border-color: var(--VARIABLE-BOX-TEXT-color);
  border-radius: 3px;
  border-style: solid;
  border-width: 1px;
  display: inline-block;
  padding: 0 0.25rem;
}

.badge > .badge-title {
  background-color: rgba(16, 16, 16, 1);
  border-inline-end: 0;
  border-start-end-radius: 0;
  border-end-end-radius: 0;
  color: rgba(240, 240, 240, 1);
  filter: contrast(2);
  opacity: 0.75;
}

.badge.badge-with-title > .badge-content {
  border-start-start-radius: 0;
  border-end-start-radius: 0;
}

.badge > .badge-content {
  background-color: var(--VARIABLE-BOX-color);
  color: var(--VARIABLE-BOX-CAPTION-color);
}
.badge-content:after {
  /* avoid breakage if no content is given */
  content: '\200b';
}

.badge.cstyle.transparent {
  --VARIABLE-BOX-BG-color: var(--INTERNAL-BOX-BG-color);
}

/* task list and its checkboxes */
/*  move start of list to left to adjust for missing list-style */
article :not(li) > ul > li:has(> input[type='checkbox']),
article :not(li) > ul > li:has(> span > input[type='checkbox']) {
  margin-inline-start: -1.5rem;
}

article ul > li:has(> input[type='checkbox']) {
  list-style: none;
}

article ul > li:has(> input[type='checkbox'])::before,
article ul > li:has(> span > input[type='checkbox'])::before {
  content: '\200B'; /* accessibilty for Safari https://developer.mozilla.org/en-US/docs/Web/CSS/list-style */
}

/* https://moderncss.dev/pure-css-custom-checkbox-style/ */
article ul > li > input[type='checkbox'],
article ul > li > span > input[type='checkbox'] {
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--INTERNAL-MAIN-BG-color); /* box background */
  /* For iOS < 15 */
  border: 0.15em solid currentColor;
  border-radius: 0.15em;
  color: var(--INTERNAL-MAIN-TEXT-color);
  display: inline-grid;
  font: inherit;
  height: 1.15em;
  margin: 0;
  place-content: center;
  transform: translateY(-0.075em);
  width: 1.15em;
}

article ul > li > input[type='checkbox']::before,
article ul > li > span > input[type='checkbox']::before {
  box-shadow: inset 1em 1em var(--INTERNAL-PRIMARY-color);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  content: '';
  height: 0.65em;
  transform: scale(0);
  transform-origin: bottom left;
  transition: 120ms transform ease-in-out;
  width: 0.65em;
  /* Windows High Contrast Mode fallback must be last */
  background-color: CanvasText;
}

article ul > li > input[type='checkbox']:checked::before,
article ul > li > span > input[type='checkbox']:checked::before {
  transform: scale(1);
}

/* CSS Lightbox https://codepen.io/gschier/pen/kyRXVx */
.lightbox-back {
  align-items: center;
  background: rgba(0, 0, 0, 0.8);
  bottom: 0;
  display: none;
  justify-content: center;
  left: 0;
  position: fixed;
  right: 0;
  text-align: center;
  top: 0;
  white-space: nowrap;
  z-index: 1999;
}

.lightbox-back:target {
  display: flex;
}

.lightbox-back svg,
.lightbox-back img {
  background-color: var(--INTERNAL-MAIN-BG-color);
  max-height: 95%;
  max-width: 95%;
  overflow: auto;
  padding: min(2vh, 2vw);
}

/* basic menu list styles (non-collapsible) */

#R-sidebar select,
#R-sidebar .collapsible-menu label,
#R-sidebar .menu-control,
#R-sidebar :is(a, span) {
  color: var(--INTERNAL-MENU-SECTIONS-LINK-color);
}

#R-sidebar select:hover,
#R-sidebar .collapsible-menu li:not(.active) > label:hover,
#R-sidebar .menu-control:hover,
#R-sidebar a:hover {
  color: var(--INTERNAL-MENU-SECTIONS-LINK-HOVER-color);
}

#R-sidebar li.active > label,
#R-sidebar li.active > a {
  color: var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-color);
}

#R-sidebar li.active > a {
  background-color: var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-BG-color);
}

#R-sidebar ul > li > :is(a, span) {
  display: block;
  position: relative;
}

#R-sidebar ul.space li > * {
  padding-bottom: 0.125rem;
  padding-top: 0.125rem;
}
#R-sidebar ul.space > li > ul {
  padding-bottom: 0;
  padding-top: 0;
}

#R-sidebar ul.morespace li > * {
  padding-bottom: 0.25rem;
  padding-top: 0.25rem;
}
#R-sidebar ul.morespace li > ul {
  padding-bottom: 0;
  padding-top: 0;
}

#R-sidebar ul.enlarge > li.parent,
#R-sidebar ul.enlarge > li.active {
  background-color: var(--INTERNAL-MENU-SECTIONS-ACTIVE-BG-color);
}

#R-sidebar ul.enlarge > li > :is(a, span) {
  font-size: 1.1rem;
  line-height: 2rem;
}
#R-sidebar ul.enlarge > li > a > .read-icon {
  margin-top: 0.5rem;
}
#R-sidebar ul.enlarge > li > ul > li:last-child {
  padding-bottom: 1rem;
}

#R-sidebar ul ul {
  padding-inline-start: 1rem;
}

/* collapsible menu style overrides */

#R-sidebar ul.collapsible-menu > li {
  position: relative;
}

#R-sidebar ul.collapsible-menu > li > input {
  -webkit-appearance: none;
  appearance: none;
  cursor: pointer;
  display: inline-block;
  margin-left: 0;
  margin-right: 0;
  margin-top: 0.65rem;
  position: absolute;
  width: 1rem;
  z-index: 1;
}
#R-sidebar ul.collapsible-menu.enlarge > li > input {
  margin-top: 0.9rem;
}

#R-sidebar ul.collapsible-menu > li > label {
  cursor: pointer;
  display: inline-block;
  inset-inline-start: 0;
  margin-bottom: 0; /* nucleus */
  padding-inline-start: 0.125rem;
  position: absolute;
  width: 1rem;
  z-index: 2;
}
#R-sidebar ul.collapsible-menu.enlarge > li > label {
  font-size: 1.1rem;
  line-height: 2rem;
}

#R-sidebar ul.collapsible-menu > li > label:after {
  content: '';
  display: block;
  height: 1px;
  transition: width 0.5s ease;
  width: 0%;
}

#R-sidebar ul.collapsible-menu > li > label:hover:after {
  width: 100%;
}

#R-sidebar ul.collapsible-menu > li > label > .fas {
  font-size: 0.8rem;
  width: 0.6rem;
}

#R-sidebar ul.collapsible-menu > li > :is(a, span) {
  display: inline-block;
  width: 100%;
}

/* menu states for not(.collapsible-menu) */

#R-sidebar ul ul {
  display: none;
}

#R-sidebar ul > li.parent > ul,
#R-sidebar ul > li.active > ul,
#R-sidebar ul > li.alwaysopen > ul {
  display: block;
}

/* closed menu */

#R-sidebar ul.collapsible-menu > li > input + label ~ ul {
  display: none;
}

#R-sidebar ul.collapsible-menu > li > input + label > .fa-chevron-right {
  display: inline-block;
  text-align: end;
}

/* open menu  */

#R-sidebar ul.collapsible-menu > li > input:checked + label ~ ul {
  display: block;
}

#R-sidebar ul.collapsible-menu > li > input:checked + label > .fa-chevron-right {
  transform: rotate(90deg);
}

/* adjust menu for RTL reading direction */

html[dir='rtl'] #R-sidebar ul.collapsible-menu > li > input + label > i.fa-chevron-right {
  transform: scaleX(-1);
}
html[dir='rtl'] #R-sidebar ul.collapsible-menu > li > input:checked + label > i.fa-chevron-right {
  transform: rotate(90deg);
}

/* common logo */

body #R-logo svg,
body #R-logo svg :not([color]),
body #R-logo svg [color='black'],
body #R-logo svg [color='#000000'] {
  color: var(--INTERNAL-LOGO-IMAGE-color);
}

body #R-logo:hover svg,
body #R-logo:hover svg :not([color]),
body #R-logo:hover svg [color='black'],
body #R-logo:hover svg [color='#000000'] {
  color: var(--INTERNAL-LOGO-IMAGE-HOVER-color);
}

body #R-logo svg :not([fill]),
body #R-logo svg [fill='black'],
body #R-logo svg [fill='#000000'] {
  fill: var(--INTERNAL-LOGO-IMAGE-color);
}

body #R-logo:hover svg :not([fill]),
body #R-logo:hover svg [fill='black'],
body #R-logo:hover svg [fill='#000000'] {
  fill: var(--INTERNAL-LOGO-IMAGE-HOVER-color);
}

body a#R-logo,
body a#R-logo * {
  color: var(--INTERNAL-LOGO-LINK-color);
}

body a#R-logo:hover,
body a#R-logo:hover * {
  color: var(--INTERNAL-LOGO-LINK-HOVER-color);
}

/* default logo */

#R-logo.R-default {
  align-items: center;
  column-gap: 0.4em;
  display: flex;
  flex-direction: row;
  font-family: var(--INTERNAL-LOGO-font);
  font-size: var(--INTERNAL-LOGO-font-size);
  justify-content: center;
  line-height: 1;
  overflow: hidden;
  margin-block: 0.5rem;
  row-gap: 0.1em;
  width: 100%;
}
#R-logo.R-default.direction-column {
  flex-direction: column;
}
@media only all and (max-width: 59.999rem) {
  #R-logo.R-default {
    font-size: calc(var(--INTERNAL-LOGO-font-size) * 0.8);
    margin-block: 0.9rem;
  }
}

#R-logo.R-default .logo-image {
  display: none;
  flex-shrink: 0;
  height: auto;
  width: var(--INTERNAL-LOGO-IMAGE-width);
}

#R-logo.R-default .logo-image > * {
  max-width: var(--INTERNAL-LOGO-IMAGE-width);
}

#R-logo.R-default .logo-title {
  font-size: 2em;
  flex-shrink: 1;
  min-width: 0;
  text-align: start;
  text-wrap: auto;
  word-break: break-word;
}
#R-logo.R-default.direction-column .logo-title {
  text-align: center;
}
#R-logo.R-default.manual-wrap .logo-title {
  white-space: pre;
}

/* columnize content */

.columnize {
  column-count: 2;
}
@media screen and (min-width: 79.25rem) {
  .columnize {
    column-count: 3;
  }
}

.columnize > * {
  break-inside: avoid-column;
}

#R-body .tab-panel {
  margin-bottom: 1.5rem;
  margin-top: 1.5rem;
}

#R-body .tab-nav {
  display: flex;
  flex-wrap: wrap;
}

#R-body .tab-nav-title {
  font-size: 0.9rem;
  font-weight: 400;
  line-height: 1.42857143;
  padding: 0.2rem 0;
  margin-inline-start: 0.6rem;
}

#R-body .tab-nav-button {
  -webkit-appearance: none;
  appearance: none;
  background-color: transparent;
  border: 1px solid transparent;
  color: var(--VARIABLE-LINK-color);
  display: block;
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.42857143;
  margin-inline-start: 0.6rem;
}

#R-body .tab-nav-button.active {
  background-color: var(--VARIABLE-BOX-color);
  border-bottom-color: var(--VARIABLE-BOX-BG-color);
  border-radius: 2px 2px 0 0;
  color: var(--VARIABLE-BOX-TEXT-color);
  cursor: default;
}
#R-body .tab-nav-button:not(.active):hover,
#R-body .tab-nav-button:not(.active):active,
#R-body .tab-nav-button:not(.active):focus {
  color: var(--VARIABLE-LINK-HOVER-color);
}

#R-body .tab-nav-button > .tab-nav-text {
  border-bottom-color: var(--VARIABLE-BOX-color);
  border-bottom-style: solid;
  border-bottom-width: 0.15rem;
  display: block;
  padding: 0.2rem 0.6rem 0 0.6rem;
}
/* https://stackoverflow.com/a/46452396 */
#R-body .tab-nav-button.active > .tab-nav-text {
  background-color: var(--VARIABLE-BOX-BG-color);
  border-bottom-color: transparent;
  border-radius: 1px 1px 0 0;
  text-shadow: -0.08ex 0 0 currentColor, 0.08ex 0 0 currentColor;
}
@supports (-webkit-text-stroke-width: 0.09ex) {
  #R-body .tab-nav-button.active > .tab-nav-text {
    text-shadow: -0.08ex 0 0 currentColor, 0.08ex 0 0 currentColor;
    -webkit-text-stroke-width: 0.09ex;
  }
}
#R-body .tab-nav-button:not(.active):hover > .tab-nav-text,
#R-body .tab-nav-button:not(.active):active > .tab-nav-text,
#R-body .tab-nav-button:not(.active):focus > .tab-nav-text {
  border-bottom-color: var(--VARIABLE-LINK-HOVER-color);
}

#R-body .tab-content {
  background-color: var(--VARIABLE-BOX-color);
  border-color: var(--VARIABLE-BOX-color);
  border-style: solid;
  border-width: 1px;
  display: none;
  /* if setting a border to 1px, a browser instead sets it to 1dppx which is not
    usable as a unit yet, so we have to calculate it ourself */
  margin-top: calc(var(--bpx1) * -1px);
  z-index: 10;
}

#R-body .tab-content.active {
  display: block;
}

#R-body .tab-content-text {
  background-color: var(--VARIABLE-BOX-BG-color);
  color: var(--VARIABLE-BOX-TEXT-color);
  padding: 1rem;
}

/* remove margin if only a single code block is contained in the tab (FF without :has using .codify style) */
#R-body .tab-content.codify > .tab-content-text {
  padding: 0;
}
#R-body .tab-content-text:has(> div.highlight:only-child) {
  padding: 0;
}

/* remove border from code block if single in tab */
#R-body .tab-content-text > div.highlight:only-child > div,
#R-body .tab-content-text > div.highlight:only-child pre:not(.mermaid),
#R-body .tab-content-text > pre:not(.mermaid).pre-code:only-child {
  border-width: 0;
}

.tab-panel-style.cstyle.initial,
.tab-panel-style.cstyle.default {
  --VARIABLE-BOX-BG-color: var(--INTERNAL-MAIN-BG-color);
}

.tab-panel-style.cstyle.transparent {
  --VARIABLE-BOX-color: rgba(134, 134, 134, 0.4);
  --VARIABLE-BOX-BG-color: transparent;
}

#R-body .tab-panel-style.cstyle.initial.tab-nav-button.active,
#R-body .tab-panel-style.cstyle.default.tab-nav-button.active,
#R-body .tab-panel-style.cstyle.transparent.tab-nav-button.active {
  background-color: var(--VARIABLE-BOX-BG-color);
  border-left-color: var(--VARIABLE-BOX-color);
  border-right-color: var(--VARIABLE-BOX-color);
  border-top-color: var(--VARIABLE-BOX-color);
}

#R-body .tab-panel-style.cstyle.code.tab-nav-button:not(.active) {
  --VARIABLE-BOX-color: var(--INTERNAL-BOX-NEUTRAL-color);
}

#R-body .tab-panel-style.cstyle.initial.tab-content,
#R-body .tab-panel-style.cstyle.default.tab-content,
#R-body .tab-panel-style.cstyle.transparent.tab-content {
  background-color: var(--VARIABLE-BOX-BG-color);
}

/* bordering the menu and topbar */

#R-topbar {
  border-bottom-color: var(--INTERNAL-MAIN-TOPBAR-BORDER-color);
  border-bottom-style: solid;
  border-bottom-width: 1px;
}

#R-header-wrapper {
  background-color: var(--INTERNAL-MENU-HEADER-BG-color);
  color: var(--INTERNAL-MENU-HEADER-color);
  text-align: center;
}

#R-header-wrapper :is(a, span) {
  color: var(--INTERNAL-MENU-HEADER-color);
}

:has(~ #R-content-wrapper),
#R-content-wrapper > * {
  border-inline-end-color: var(--INTERNAL-MENU-BORDER-color);
  border-inline-end-style: solid;
  border-inline-end-width: 1px;
}

#R-header-topbar {
  background-color: transparent;
  border-bottom-color: transparent;
  border-bottom-style: solid;
  border-bottom-width: 1px;
  border-inline-end-color: var(--INTERNAL-MENU-TOPBAR-BORDER-color);
  border-inline-end-style: solid;
  border-inline-end-width: 1px;
  height: 3rem;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 1;
}
@media screen and (max-width: 47.999rem) {
  .mobile-support #R-header-topbar {
    border-inline-end-color: var(--INTERNAL-MENU-BORDER-color);
  }
}

#topics > ul {
  margin-top: 1rem;
}

#R-sidebar ul.collapsible-menu li.active > a {
  border-bottom-color: var(--INTERNAL-MENU-BORDER-color);
  border-top-color: var(--INTERNAL-MENU-BORDER-color);
  border-inline-start-color: var(--INTERNAL-MENU-BORDER-color);
  border-inline-end-color: var(--INTERNAL-MENU-SECTION-ACTIVE-CATEGORY-BORDER-color);
  border-style: solid;
  border-width: 1px;
  padding-left: calc(1rem - var(--bpx1) * 1px);
  padding-right: calc(1rem - var(--bpx1) * 1px);
  width: calc(100% + var(--bpx1) * 1px);
}
#R-sidebar ul.morespace.collapsible-menu li.active > a {
  padding-bottom: calc(0.25rem - var(--bpx1) * 1px);
  padding-top: calc(0.25rem - var(--bpx1) * 1px);
}
#R-sidebar ul.space.collapsible-menu li.active > a {
  padding-bottom: calc(0.125rem - var(--bpx1) * 1px);
  padding-top: calc(0.125rem - var(--bpx1) * 1px);
}

/* basic menu header styles */

#R-homelinks {
  background-color: var(--INTERNAL-MENU-HEADER-BORDER-color);
  color: var(--INTERNAL-MENU-HOME-LINK-color);
  overflow: hidden;
  padding: 0;
}

#R-sidebar #R-homelinks ul {
  margin: 0.75rem 0;
}
#R-sidebar #R-homelinks ul.space {
  margin: 0.625rem 0;
}
#R-sidebar #R-homelinks ul.morespace {
  margin: 0.5rem 0;
}

#R-homelinks .nav-title {
  color: var(--INTERNAL-MENU-HOME-LINK-color);
}

/* override for the menu header */

#R-homelinks select,
#R-homelinks .collapsible-menu label,
#R-homelinks .menu-control,
#R-homelinks :is(a, span) {
  color: var(--INTERNAL-MENU-HOME-LINK-color);
}

#R-homelinks ul.collapsible-menu li.active > a {
  border-bottom-color: transparent;
  border-top-color: transparent;
  border-inline-start-color: transparent;
  border-inline-end-color: transparent;
}

#R-homelinks select:hover,
#R-homelinks :is(.collapsible-menu, :not(.collapsible-menu)) li:not(.active) > label:hover,
#R-homelinks .menu-control:hover,
#R-homelinks :is(.collapsible-menu, :not(.collapsible-menu)) a:hover {
  color: var(--INTERNAL-MENU-HOME-LINK-HOVER-color);
}

#R-homelinks li.active > label,
#R-homelinks li.active > a {
  color: var(--INTERNAL-MENU-HOME-LINK-color);
}

#R-homelinks li.active > a {
  background-color: transparent;
}

article .R-taxonomy ul,
article .R-taxonomy li {
  list-style: none;
  display: inline;
  padding: 0;
}
article .R-taxonomy i ~ ul > li:before {
  content: ' ';
}
article .R-taxonomy ul > li ~ li:before {
  content: ' | ';
}

#R-body:has(article:first-of-type.notfound) {
  margin-inline-start: 0;
  max-width: 100%;
  min-width: 100%;
  width: 100%;
}
article.notfound p {
  text-align: center;
}
article.notfound h1 {
  color: var(--MAIN-TEXT-color);
  line-height: 1;
  font-size: 5rem;
  overflow: hidden;
}
article.notfound h1 span {
  font-size: 6.5rem;
  font-weight: 500;
}
article.notfound h1 i {
  font-size: 5rem;
  vertical-align: text-top;
}
article.notfound h2 {
  color: var(--MAIN-TEXT-color);
  font-size: 2.5rem;
  font-weight: 500;
  padding: 0;
  text-align: center;
}
article.notfound #shrug svg,
article.notfound #shrug svg * {
  color: #000000;
  color: var(--MAIN-TEXT-color);
  fill: #000000 !important;
  fill: var(--MAIN-TEXT-color) !important;
}
article.notfound #shrug svg {
  transform: scaleX(-1);
  width: 15rem;
}

/* transparent boxes have different margins and - apperantly - different coloring */

.box.cstyle.transparent > .box-label {
  margin: 0;
  padding-bottom: 0;
  padding-top: 0;
}
.box.expand.cstyle.transparent > .box-label {
  color: var(--VARIABLE-LINK-color);
}
.box.expand.cstyle.transparent > .box-label:hover,
.box.expand.cstyle.transparent > .box-label:active,
.box.expand.cstyle.transparent > .box-label:focus {
  color: var(--VARIABLE-LINK-HOVER-color);
}

.box.cstyle.transparent > .box-content {
  margin-top: 0;
  padding-bottom: 0;
}

/* #1021 avoid mermaid tooltip layout shift */
.mermaidTooltip {
  position: absolute;
}

/* cards */

.card-container {
  align-items: start;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
  margin: 1.5rem 0;
  padding: 0;
}

/* Prevent nested containers from breaking grid */
.card-container .card-container {
  display: block;
  grid-template-columns: none;
}

.card-container .card {
  background: var(--INTERNAL-BOX-BG-color);
  border: 1px solid color-mix(in srgb, var(--INTERNAL-MAIN-TEXT-color) 10%, transparent);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  color: var(--INTERNAL-MAIN-TEXT-color);
  display: flex;
  flex-direction: column;
  height: fit-content;
  max-height: 600px;
  min-height: 300px;
  overflow: hidden;
  overflow-wrap: break-word;
  position: relative;
  transition: all 0.3s ease;
  word-break: break-word;
}

.card-container .card:focus-within:has(.card-title > a:focus) {
  outline: auto;
}

.card-container > .card.card-popout {
  border: 1px solid color-mix(in srgb, var(--VARIABLE-LINK-color) 33%, transparent);
}

/* top handle */
.card-container .card::before {
  background: linear-gradient(90deg, var(--VARIABLE-LINK-color) 0%, color-mix(in srgb, var(--VARIABLE-LINK-color) 60%, white) 100%);
  content: '';
  height: 3px;
  left: 0;
  opacity: 0;
  position: absolute;
  right: 0;
  top: 0;
  transition: opacity 0.3s ease;
}

.card-container .card.card-popout:hover {
  border-color: color-mix(in srgb, var(--VARIABLE-LINK-color) 40%, transparent);
  box-shadow: 0 8px 25px color-mix(in srgb, var(--VARIABLE-LINK-color) 25%, transparent);
  transform: translateY(-4px) translateX(4px);
}

.card-container .card.card-popout:hover::before {
  opacity: 1;
}

.card-container .card-image {
  background: transparent;
  height: 300px;
  order: -1;
  overflow: hidden;
  position: relative;
}

.card-container .card-content + .card-image {
  min-height: 160px;
  height: 160px;
}

.card-container .card-image img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.card-container .card-content {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  margin: 1.25rem 1rem;
  min-height: 0;
  overflow: hidden;
}

.card-container .card-title {
  color: var(--INTERNAL-MAIN-TITLES-TEXT-color);
  flex: 0 0 auto;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.3;
  margin-top: 0;
}

.card-container .card-title a {
  color: inherit;
  text-decoration: none;
  transition: all 0.3s ease;
}

.card-container .card-title a:before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
}

.card-container .card-content-text {
  flex: 1 1 auto;
  font-size: 0.9rem;
  line-height: 1.5;
  overflow: hidden;
}

/* Responsive: 2 columns on tablet */
@media screen and (max-width: 59.999rem) {
  article:not(.narrow) .card-container {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 74.999rem) {
  article.narrow .card-container {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Responsive: 1 column on mobile */
@media screen and (max-width: 47.999rem) {
  article.narrow .card-container,
  article:not(.narrow) .card-container {
    gap: 1.25rem;
    grid-template-columns: 1fr;
  }

  .card-container .card-content {
    padding: 1rem;
  }

  .card-container .card-content + .card-image {
    height: 140px;
  }
}

/* Dark theme compatibility */
body[data-theme='dark'] .card-container .card,
.relearn-dark .card-container .card {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

body[data-theme='dark'] .card-container .card:hover,
.relearn-dark .card-container .card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

/* color style definitions */

.cstyle {
  --VARIABLE-BOX-color: var(--INTERNAL-BOX-NEUTRAL-color);
  --VARIABLE-BOX-TEXT-color: var(--INTERNAL-BOX-NEUTRAL-TEXT-color);
  --VARIABLE-BOX-CAPTION-color: var(--INTERNAL-BOX-CAPTION-color);
  --VARIABLE-BOX-BG-color: var(--INTERNAL-BOX-BG-color);
  -webkit-print-color-adjust: exact;
  color-adjust: exact;
}

.cstyle.link {
  --VARIABLE-BOX-color: transparent;
  --VARIABLE-BOX-TEXT-color: var(--VARIABLE-LINK-HOVER-color);
  --VARIABLE-BOX-CAPTION-color: var(--VARIABLE-LINK-color);
  --VARIABLE-BOX-BG-color: rgba(160, 160, 160, 0.2);
}

.cstyle.action {
  --VARIABLE-BOX-color: rgba(160, 160, 160, 0.2);
  --VARIABLE-BOX-TEXT-color: var(--INTERNAL-MAIN-BG-color);
  --VARIABLE-BOX-CAPTION-color: var(--VARIABLE-LINK-color);
  --VARIABLE-BOX-BG-color: var(--VARIABLE-LINK-color);
}
