/* The standard CSS for doxygen 1.17.0*/

html {
/* page base colors */
--page-background-color: white;
--page-foreground-color: black;
--page-link-color: #3D578C;
--page-visited-link-color: #3D578C;
--page-external-link-color: #334975;

/* index */
--index-odd-item-bg-color: #F8F9FC;
--index-even-item-bg-color: white;
--index-header-color: black;
--index-separator-color: #A0A0A0;

/* header */
--header-background-color: #F9FAFC;
--header-separator-color: #C4CFE5;
--group-header-separator-color: #D9E0EE;
--group-header-color: #354C7B;

--footer-foreground-color: #2A3D61;
--footer-logo-width: 75px;
--citation-label-color: #334975;
--glow-color: cyan;

--title-background-color: white;
--title-separator-color: #C4CFE5;

--blockquote-background-color: #F7F8FB;
--blockquote-border-color: #9CAFD4;

--scrollbar-thumb-color: #C4CFE5;
--scrollbar-background-color: #F9FAFC;

--icon-background-color: #728DC1;
--icon-foreground-color: white;
--icon-folder-open-fill-color: #C4CFE5;
--icon-folder-fill-color: #D8DFEE;
--icon-folder-border-color: #4665A2;
--icon-doc-fill-color: #D8DFEE;
--icon-doc-border-color: #4665A2;

/* brief member declaration list */
--memdecl-background-color: #F9FAFC;
--memdecl-foreground-color: #555;
--memdecl-template-color: #4665A2;
--memdecl-border-color: #D5DDEC;

/* detailed member list */
--memdef-border-color: #A8B8D9;
--memdef-title-background-color: #E2E8F2;
--memdef-proto-background-color: #EEF1F7;
--memdef-proto-text-color: #253555;
--memdef-param-name-color: #602020;
--memdef-template-color: #4665A2;

/* tables */
--table-cell-border-color: #2D4068;
--table-header-background-color: #374F7F;
--table-header-foreground-color: #FFFFFF;

/* labels */
--label-background-color: #728DC1;
--label-left-top-border-color: #5373B4;
--label-right-bottom-border-color: #C4CFE5;
--label-foreground-color: white;

/** navigation bar/tree/menu */
--nav-background-color: #F9FAFC;
--nav-foreground-color: #364D7C;
--nav-border-color: #C4CFE5;
--nav-breadcrumb-separator-color: #C4CFE5;
--nav-breadcrumb-active-bg: #EEF1F7;
--nav-breadcrumb-color: #354C7B;
--nav-splitbar-bg-color: #DCE2EF;
--nav-splitbar-handle-color: #9CAFD4;
--nav-font-size-level1: 13px;
--nav-font-size-level2: 10px;
--nav-font-size-level3: 9px;
--nav-text-normal-color: #283A5D;
--nav-menu-button-color: #364D7C;
--nav-menu-background-color: white;
--nav-menu-foreground-color: #555555;
--nav-menu-active-bg: #DCE2EF;
--nav-menu-active-color: #9CAFD4;
--nav-arrow-color: #B6C4DF;
--nav-arrow-selected-color: #90A5CE;

/* sync icon */
--sync-icon-border-color: #C4CFE5;
--sync-icon-background-color: #F9FAFC;
--sync-icon-selected-background-color: #EEF1F7;
--sync-icon-color: #C4CFE5;
--sync-icon-selected-color: #6884BD;

/* table of contents */
--toc-background-color: #F4F6FA;
--toc-border-color: #D8DFEE;
--toc-header-color: #4665A2;
--toc-down-arrow-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px' fill='grey'><text x='0' y='5' font-size='10'>&%238595;</text></svg>");

/** search field */
--search-background-color: white;
--search-foreground-color: #909090;
--search-active-color: black;
--search-filter-background-color: rgba(255,255,255,.7);
--search-filter-backdrop-filter: blur(4px);
--search-filter-foreground-color: black;
--search-filter-border-color: rgba(150,150,150,.4);
--search-filter-highlight-text-color: white;
--search-filter-highlight-bg-color: #3D578C;
--search-results-foreground-color: #425E97;
--search-results-background-color: rgba(255,255,255,.8);
--search-results-backdrop-filter: blur(4px);
--search-results-border-color: rgba(150,150,150,.4);
--search-box-border-color: #B6C4DF;
--search-close-icon-bg-color: #A0A0A0;
--search-close-icon-fg-color: white;

/** code fragments */
--code-keyword-color: #008000;
--code-type-keyword-color: #604020;
--code-flow-keyword-color: #E08000;
--code-comment-color: #800000;
--code-preprocessor-color: #806020;
--code-string-literal-color: #002080;
--code-char-literal-color: #008080;
--code-xml-cdata-color: black;
--code-vhdl-digit-color: #FF00FF;
--code-vhdl-char-color: #000000;
--code-vhdl-keyword-color: #700070;
--code-vhdl-logic-color: #FF0000;
--fragment-foreground-color: black;
--fragment-background-color: #FBFCFD;
--fragment-border-color: #C4CFE5;
--fragment-lineno-border-color: #00FF00;
--fragment-lineno-background-color: #E8E8E8;
--fragment-lineno-foreground-color: black;
--fragment-lineno-link-fg-color: #4665A2;
--fragment-lineno-link-bg-color: #D8D8D8;
--fragment-lineno-link-hover-fg-color: #4665A2;
--fragment-lineno-link-hover-bg-color: #C8C8C8;
--fragment-copy-ok-color: #2EC82E;
--fragment-highlight-filter: -3;
--tooltip-foreground-color: black;
--tooltip-background-color: rgba(255,255,255,0.8);
--tooltip-arrow-background-color: white;
--tooltip-border-color: rgba(150,150,150,0.7);
--tooltip-backdrop-filter: blur(3px);
--tooltip-doc-color: grey;
--tooltip-declaration-color: #006318;
--tooltip-link-color: #4665A2;
--tooltip-shadow: 0 4px 8px 0 rgba(0,0,0,.25);
--fold-line-color: #808080;

/** font-family */
--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
--font-family-search: Arial,Verdana,sans-serif;
--font-family-icon: Arial,Helvetica;
--font-family-tooltip: Roboto,sans-serif;

/** special sections */
--warning-color-bg: #f8d1cc;
--warning-color-hl: #b61825;
--warning-color-text: #75070f;
--note-color-bg: #faf3d8;
--note-color-hl: #f3a600;
--note-color-text: #5f4204;
--todo-color-bg: #e4f3ff;
--todo-color-hl: #1879C4;
--todo-color-text: #274a5c;
--test-color-bg: #e8e8ff;
--test-color-hl: #3939C4;
--test-color-text: #1a1a5c;
--deprecated-color-bg: #ecf0f3;
--deprecated-color-hl: #5b6269;
--deprecated-color-text: #43454a;
--bug-color-bg: #e4dafd;
--bug-color-hl: #5b2bdd;
--bug-color-text: #2a0d72;
--invariant-color-bg: #d8f1e3;
--invariant-color-hl: #44b86f;
--invariant-color-text: #265532;
--satisfies-color-hl: #b61825;
--satisfies-color-bg: #f8d1cc;
--verifies-color-hl: #b61825;
--verifies-color-bg: #f8d1cc;

}

@media (prefers-color-scheme: dark) {
  html:not(.dark-mode) {
    color-scheme: dark;

/* page base colors */
--page-background-color: black;
--page-foreground-color: #C9D1D9;
--page-link-color: #90A5CE;
--page-visited-link-color: #90A5CE;
--page-external-link-color: #A3B4D7;

/* index */
--index-odd-item-bg-color: #0B101A;
--index-even-item-bg-color: black;
--index-header-color: #C4CFE5;
--index-separator-color: #334975;

/* header */
--header-background-color: #070B11;
--header-separator-color: #141C2E;
--group-header-separator-color: #1D2A43;
--group-header-color: #90A5CE;

--footer-foreground-color: #5B7AB7;
--footer-logo-width: 60px;
--citation-label-color: #90A5CE;
--glow-color: cyan;

--title-background-color: #090D16;
--title-separator-color: #212F4B;

--blockquote-background-color: #101826;
--blockquote-border-color: #283A5D;

--scrollbar-thumb-color: #2C3F65;
--scrollbar-background-color: #070B11;

--icon-background-color: #334975;
--icon-foreground-color: #C4CFE5;
--icon-folder-open-fill-color: #4665A2;
--icon-folder-fill-color: #5373B4;
--icon-folder-border-color: #C4CFE5;
--icon-doc-fill-color: #6884BD;
--icon-doc-border-color: #C4CFE5;

/* brief member declaration list */
--memdecl-background-color: #0B101A;
--memdecl-foreground-color: #BBB;
--memdecl-template-color: #7C95C6;
--memdecl-border-color: #233250;

/* detailed member list */
--memdef-border-color: #233250;
--memdef-title-background-color: #1B2840;
--memdef-proto-background-color: #19243A;
--memdef-proto-text-color: #9DB0D4;
--memdef-param-name-color: #D28757;
--memdef-template-color: #7C95C6;

/* tables */
--table-cell-border-color: #283A5D;
--table-header-background-color: #283A5D;
--table-header-foreground-color: #C4CFE5;

/* labels */
--label-background-color: #354C7B;
--label-left-top-border-color: #4665A2;
--label-right-bottom-border-color: #283A5D;
--label-foreground-color: #CCCCCC;

/** navigation bar/tree/menu */
--nav-background-color: #101826;
--nav-foreground-color: #364D7C;
--nav-border-color: #212F4B;
--nav-breadcrumb-separator-color: #212F4B;
--nav-breadcrumb-active-bg: #1D2A43;
--nav-breadcrumb-color: #90A5CE;
--nav-splitbar-bg-color: #283A5D;
--nav-splitbar-handle-color: #4665A2;
--nav-font-size-level1: 13px;
--nav-font-size-level2: 10px;
--nav-font-size-level3: 9px;
--nav-text-normal-color: #B6C4DF;
--nav-menu-button-color: #B6C4DF;
--nav-menu-background-color: #05070C;
--nav-menu-foreground-color: #BBBBBB;
--nav-menu-active-bg: #1D2A43;
--nav-menu-active-color: #C9D3E7;
--nav-arrow-color: #4665A2;
--nav-arrow-selected-color: #6884BD;

/* sync icon */
--sync-icon-border-color: #212F4B;
--sync-icon-background-color: #101826;
--sync-icon-selected-background-color: #1D2A43;
--sync-icon-color: #4665A2;
--sync-icon-selected-color: #5373B4;

/* table of contents */
--toc-background-color: #151E30;
--toc-border-color: #202E4A;
--toc-header-color: #A3B4D7;
--toc-down-arrow-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='10px' width='5px'><text x='0' y='5' font-size='10' fill='grey'>&%238595;</text></svg>");

/** search field */
--search-background-color: black;
--search-foreground-color: #C5C5C5;
--search-active-color: #F5F5F5;
--search-filter-background-color: #101826;
--search-filter-foreground-color: #90A5CE;
--search-filter-backdrop-filter: none;
--search-filter-border-color: #7C95C6;
--search-filter-highlight-text-color: #BCC9E2;
--search-filter-highlight-bg-color: #283A5D;
--search-results-background-color: black;
--search-results-foreground-color: #90A5CE;
--search-results-backdrop-filter: none;
--search-results-border-color: #334975;
--search-box-border-color: #334975;
--search-close-icon-bg-color: #909090;
--search-close-icon-fg-color: black;

/** code fragments */
--code-keyword-color: #CC99CD;
--code-type-keyword-color: #AB99CD;
--code-flow-keyword-color: #E08000;
--code-comment-color: #717790;
--code-preprocessor-color: #65CABE;
--code-string-literal-color: #7EC699;
--code-char-literal-color: #00E0F0;
--code-xml-cdata-color: #C9D1D9;
--code-vhdl-digit-color: #FF00FF;
--code-vhdl-char-color: #C0C0C0;
--code-vhdl-keyword-color: #CF53C9;
--code-vhdl-logic-color: #FF0000;
--fragment-foreground-color: #C9D1D9;
--fragment-background-color: #090D16;
--fragment-border-color: #30363D;
--fragment-lineno-border-color: #30363D;
--fragment-lineno-background-color: black;
--fragment-lineno-foreground-color: #6E7681;
--fragment-lineno-link-fg-color: #6E7681;
--fragment-lineno-link-bg-color: #303030;
--fragment-lineno-link-hover-fg-color: #8E96A1;
--fragment-lineno-link-hover-bg-color: #505050;
--fragment-copy-ok-color: #0EA80E;
--fragment-highlight-filter: 5;
--tooltip-foreground-color: #C9D1D9;
--tooltip-background-color: #202020;
--tooltip-arrow-background-color: #202020;
--tooltip-backdrop-filter: none;
--tooltip-border-color: #C9D1D9;
--tooltip-doc-color: #D9E1E9;
--tooltip-declaration-color: #20C348;
--tooltip-link-color: #79C0FF;
--tooltip-shadow: none;
--fold-line-color: #808080;

/** font-family */
--font-family-normal: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed;
--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
--font-family-title: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif;
--font-family-search: Arial,Verdana,sans-serif;
--font-family-icon: Arial,Helvetica;
--font-family-tooltip: Roboto,sans-serif;

/** special sections */
--warning-color-bg: #2e1917;
--warning-color-hl: #ad2617;
--warning-color-text: #f5b1aa;
--note-color-bg: #3b2e04;
--note-color-hl: #f1b602;
--note-color-text: #ceb670;
--todo-color-bg: #163750;
--todo-color-hl: #1982D2;
--todo-color-text: #dcf0fa;
--test-color-bg: #121258;
--test-color-hl: #4242cf;
--test-color-text: #c0c0da;
--deprecated-color-bg: #2e323b;
--deprecated-color-hl: #738396;
--deprecated-color-text: #abb0bd;
--bug-color-bg: #2a2536;
--bug-color-hl: #7661b3;
--bug-color-text: #ae9ed6;
--invariant-color-bg: #303a35;
--invariant-color-hl: #76ce96;
--invariant-color-text: #cceed5;
--satisfies-color-hl: #ad2617;
--satisfies-color-bg: #2e1917;
--verifies-color-hl: #ad2617;
--verifies-color-bg: #2e1917;

}}
body {
	background-color: var(--page-background-color);
	color: var(--page-foreground-color);
}

body, table, div, p, dl {
	font-weight: 400;
	font-size: 14px;
	font-family: var(--font-family-normal);
	line-height: 22px;
}

body.resizing {
	user-select: none;
	-webkit-user-select: none;
}

#doc-content {
	scrollbar-width: thin;
}

/* @group Heading Levels */

.title {
	font-family: var(--font-family-normal);
	line-height: 28px;
	font-size: 160%;
	font-weight: 400;
	margin: 10px 2px;
}

h1.groupheader {
	font-size: 150%;
}

h2.groupheader {
	box-shadow: 12px 0 var(--page-background-color),
		   -12px 0 var(--page-background-color),
		    12px 1px var(--group-header-separator-color),
		   -12px 1px var(--group-header-separator-color);
	color: var(--group-header-color);
	font-size: 150%;
	font-weight: normal;
	margin-top: 1.75em;
	padding-top: 8px;
	padding-bottom: 4px;
	width: 100%;
}

td h2.groupheader {
	box-shadow: 13px 0 var(--page-background-color),
		   -13px 0 var(--page-background-color),
		    13px 1px var(--group-header-separator-color),
		   -13px 1px var(--group-header-separator-color);
}

h3.groupheader {
	font-size: 100%;
}

h1, h2, h3, h4, h5, h6 {
	-webkit-transition: text-shadow 0.5s linear;
	-moz-transition: text-shadow 0.5s linear;
	-ms-transition: text-shadow 0.5s linear;
	-o-transition: text-shadow 0.5s linear;
	transition: text-shadow 0.5s linear;
	margin-right: 15px;
}

h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
	text-shadow: 0 0 15px var(--glow-color);
}

dt {
	font-weight: bold;
}

p.startli, p.startdd {
	margin-top: 2px;
	margin-bottom: 0px;
}

th p.starttd, th p.intertd, th p.endtd {
	font-size: 100%;
	font-weight: 700;
}

p.starttd {
	margin-top: 0px;
}

p.endli {
	margin-bottom: 0px;
}

p.enddd {
	margin-bottom: 4px;
}

p.endtd {
	margin-bottom: 2px;
}

p.interli {
}

p.interdd {
}

p.intertd {
}

/* @end */

caption {
	font-weight: bold;
}

span.legend {
	font-size: 70%;
	text-align: center;
}

h3.version {
	font-size: 90%;
	text-align: center;
}

div.navtab {
	margin-right: 6px;
	padding-right: 6px;
	text-align: right;
	line-height: 110%;
	background-color: var(--nav-background-color);
}

div.navtab table {
	border-spacing: 0;
}

td.navtab {
	padding-right: 6px;
	padding-left: 6px;
}

td.navtabHL {
	padding-right: 6px;
	padding-left: 6px;
	border-radius: 0 6px 6px 0;
	background-color: var(--nav-menu-active-bg);
}

div.alphasepar:before{
  content: " | " ;
  width: 14px;
  display: inline-block;
  text-align: center;
  line-height: 140%;
  font-size: 130%;
}

div.alphasepar{
  display: inline-block;
}

div.qindex{
	text-align: center;
	width: 100%;
	line-height: 140%;
	font-size: 130%;
	color: var(--index-separator-color);
}

#main-menu a:focus {
	outline: auto;
	z-index: 10;
	position: relative;
}

dt.alphachar{
	font-size: 180%;
	font-weight: bold;
}

.alphachar a{
	color: var(--index-header-color);
}

.alphachar a:hover, .alphachar a:visited{
	text-decoration: none;
}

.classindex dl {
	padding: 25px;
	column-count:1
}

.classindex dd {
	display:inline-block;
	margin-left: 50px;
	width: 90%;
	line-height: 1.15em;
}

.classindex dl.even {
	background-color: var(--index-even-item-bg-color);
}

.classindex dl.odd {
	background-color: var(--index-odd-item-bg-color);
}

@media(min-width: 1120px) {
	.classindex dl {
		column-count:2
	}
}

@media(min-width: 1320px) {
	.classindex dl {
		column-count:3
	}
}


/* @group Link Styling */

a {
	color: var(--page-link-color);
	font-weight: normal;
	text-decoration: none;
}

.contents a:visited {
	color: var(--page-visited-link-color);
}

span.label a:hover {
	text-decoration: none;
	background:   linear-gradient(to bottom, transparent 0,transparent calc(100% - 1px), currentColor 100%);
}

a.el {
	font-weight: bold;
}

a.elRef {
}

a.el, a.el:visited, a.code, a.code:visited, a.line, a.line:visited {
	color: var(--page-link-color);
}

a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
	color: var(--page-external-link-color);
}

a.code.hl_class { /* style for links to class names in code snippets */ }
a.code.hl_struct { /* style for links to struct names in code snippets */ }
a.code.hl_union { /* style for links to union names in code snippets */ }
a.code.hl_interface { /* style for links to interface names in code snippets */ }
a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
a.code.hl_category { /* style for links to category names in code snippets */ }
a.code.hl_exception { /* style for links to exception names in code snippets */ }
a.code.hl_service { /* style for links to service names in code snippets */ }
a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
a.code.hl_concept { /* style for links to concept names in code snippets */ }
a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
a.code.hl_package { /* style for links to package names in code snippets */ }
a.code.hl_define { /* style for links to macro names in code snippets */ }
a.code.hl_function { /* style for links to function names in code snippets */ }
a.code.hl_variable { /* style for links to variable names in code snippets */ }
a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
a.code.hl_friend { /* style for links to friend names in code snippets */ }
a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
a.code.hl_property { /* style for links to property names in code snippets */ }
a.code.hl_event { /* style for links to event names in code snippets */ }
a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }

div.embeddoc {
	font-family: var(--font-family-monospace);
	padding-left: 10px;
}

/* @end */

dl.el {
	margin-left: -1cm;
}

ul.check {
	list-style: none;
	padding-left: 40px;
	margin: 0;
}

ul.check li {
	position: relative;
}

li.unchecked::before, li.checked::before {
	position: absolute;
	left: -18px;
	top: 0;
}

li.unchecked::before {
	content: "☐";
}

li.checked::before {
	content: "☑";
}

ul.check li > p {
	display: inline;
}

ul.check li > p:not(:first-child) {
	display: block;
}

ol {
	text-indent: 0px;
}

ul {
	text-indent: 0px;
	overflow: visible;
}

ul.multicol {
	-moz-column-gap: 1em;
	-webkit-column-gap: 1em;
	column-gap: 1em;
	-moz-column-count: 3;
	-webkit-column-count: 3;
	column-count: 3;
	list-style-type: none;
}

#side-nav ul {
	overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */
}

#main-nav ul {
	overflow: visible; /* reset ul rule for the navigation bar drop down lists */
}

.fragment {
	text-align: left;
	direction: ltr;
	overflow-x: auto;
	overflow-y: hidden;
	position: relative;
	min-height: 12px;
	margin: 10px 0px;
	padding: 10px 10px;
	border: 1px solid var(--fragment-border-color);
	border-radius: 4px;
	background-color: var(--fragment-background-color);
	color: var(--fragment-foreground-color);
}

pre.fragment {
	word-wrap: break-word;
	font-size:  10pt;
	line-height: 125%;
	font-family: var(--font-family-monospace);
}

span.tt {
        white-space: pre;
	font-family: var(--font-family-monospace);
	background-color: var(--fragment-background-color);
}

.clipboard {
	width: 24px;
	height: 24px;
	right: 5px;
	top: 5px;
	opacity: 0;
	position: absolute;
	display: inline;
	overflow: hidden;
	justify-content: center;
	align-items: center;
	cursor: pointer;
}

.clipboard.success {
	border: 1px solid var(--fragment-foreground-color);
	border-radius: 4px;
}

.fragment:hover .clipboard, .clipboard.success {
	opacity: .4;
}

.clipboard:hover, .clipboard.success {
	opacity: 1 !important;
}

.clipboard:active:not([class~=success]) svg {
	transform: scale(.91);
}

.clipboard.success svg {
	fill: var(--fragment-copy-ok-color);
}

.clipboard.success {
	border-color: var(--fragment-copy-ok-color);
}

div.line {
	font-family: var(--font-family-monospace);
	font-size: 13px;
	min-height: 13px;
	line-height: 1.2;
	text-wrap: wrap; 
	word-break: break-all;
	white-space: -moz-pre-wrap; /* Moz */
	white-space: -pre-wrap;     /* Opera 4-6 */
	white-space: -o-pre-wrap;   /* Opera 7 */
	white-space: pre-wrap;      /* CSS3  */
	word-wrap: break-word;      /* IE 5.5+ */
	text-indent: -62px;
	padding-left: 62px;
	padding-bottom: 0px;
	margin: 0px;
	-webkit-transition-property: background-color, box-shadow;
	-webkit-transition-duration: 0.5s;
	-moz-transition-property: background-color, box-shadow;
	-moz-transition-duration: 0.5s;
	-ms-transition-property: background-color, box-shadow;
	-ms-transition-duration: 0.5s;
	-o-transition-property: background-color, box-shadow;
	-o-transition-duration: 0.5s;
	transition-property: background-color, box-shadow;
	transition-duration: 0.5s;
}

div.line:after {
	content:"\000A";
	white-space: pre;
}

div.line.glow {
	background-color: var(--glow-color);
	box-shadow: 0 0 10px var(--glow-color);
}

span.fold {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 4px;
	margin-right: 1px;
}

span.foldnone {
	display: inline-block;
	position: relative;
	cursor: pointer;
	user-select: none;
}

span.fold.plus, span.fold.minus {
	width: 10px;
	height: 10px;
	background-color: var(--fragment-background-color);
	position: relative;
	border: 1px solid var(--fold-line-color);
	margin-right: 1px;
}

span.fold.plus::before, span.fold.minus::before {
	content: '';
	position: absolute;
	background-color: var(--fold-line-color);
}

span.fold.plus::before {
	width: 2px;
	height: 6px;
	top: 2px;
	left: 4px;
}

span.fold.plus::after {
	content: '';
	position: absolute;
	width: 6px;
	height: 2px;
	top: 4px;
	left: 2px;
	background-color: var(--fold-line-color);
}

span.fold.minus::before {
	width: 6px;
	height: 2px;
	top: 4px;
	left: 2px;
}

span.lineno {
	padding-right: 4px;
	margin-right: 9px;
	text-align: right;
	border-right: 2px solid var(--fragment-lineno-border-color);
	color: var(--fragment-lineno-foreground-color);
	background-color: var(--fragment-lineno-background-color);
	white-space: pre;
}
span.lineno a, span.lineno a:visited {
	color: var(--fragment-lineno-link-fg-color);
	background-color: var(--fragment-lineno-link-bg-color);
}

span.lineno a:hover {
	color: var(--fragment-lineno-link-hover-fg-color);
	background-color: var(--fragment-lineno-link-hover-bg-color);
}

.lineno {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

div.classindex ul {
	list-style: none;
	padding-left: 0;
}

div.classindex span.ai {
	display: inline-block;
}

div.groupHeader {
	box-shadow: 13px 0 var(--page-background-color),
	           -13px 0 var(--page-background-color),
	            13px 1px var(--group-header-separator-color),
	           -13px 1px var(--group-header-separator-color);
	color: var(--group-header-color);
	font-size: 110%;
	font-weight: 500;
	margin-left: 0px;
	margin-top: 0em;
	margin-bottom: 6px;
	padding-top: 8px;
	padding-bottom: 4px;
}

div.groupText {
	margin-left: 16px;
	font-style: italic;
}

body {
	color: var(--page-foreground-color);
	margin: 0;
}

div.contents {
	margin-top: 10px;
	margin-left: 12px;
	margin-right: 12px;
}

p.formulaDsp {
	text-align: center;
}

img.dark-mode-visible {
	display: none;
}
img.light-mode-visible {
	display: none;
}

img.formulaInl, img.inline {
	vertical-align: middle;
}

div.center {
	text-align: center;
	margin-top: 0px;
	margin-bottom: 0px;
	padding: 0px;
}

div.center img {
	border: 0px;
}

address.footer {
	text-align: right;
	padding-right: 12px;
}

img.footer {
	border: 0px;
	vertical-align: middle;
	width: var(--footer-logo-width);
}

.compoundTemplParams {
	color: var(--memdecl-template-color);
	font-size: 80%;
	line-height: 120%;
}

/* @group Code Colorization */

span.keyword {
	color: var(--code-keyword-color);
}

span.keywordtype {
	color: var(--code-type-keyword-color);
}

span.keywordflow {
	color: var(--code-flow-keyword-color);
}

span.comment {
	color: var(--code-comment-color);
}

span.preprocessor {
	color: var(--code-preprocessor-color);
}

span.stringliteral {
	color: var(--code-string-literal-color);
}

span.charliteral {
	color: var(--code-char-literal-color);
}

span.xmlcdata {
	color: var(--code-xml-cdata-color);
}

span.vhdldigit { 
	color: var(--code-vhdl-digit-color);
}

span.vhdlchar { 
	color: var(--code-vhdl-char-color);
}

span.vhdlkeyword { 
	color: var(--code-vhdl-keyword-color);
}

span.vhdllogic { 
	color: var(--code-vhdl-logic-color);
}

blockquote {
	background-color: var(--blockquote-background-color);
	border-left: 2px solid var(--blockquote-border-color);
	margin: 0 24px 0 4px;
	padding: 0 12px 0 16px;
}

/* @end */

td.tiny {
	font-size: 75%;
}

.dirtab {
	padding: 4px;
	border-collapse: collapse;
	border: 1px solid var(--table-cell-border-color);
}

th.dirtab {
	background-color: var(--table-header-background-color);
	color: var(--table-header-foreground-color);
	font-weight: bold;
}

hr {
	border: none;
	margin-top: 16px;
	margin-bottom: 16px;
	height: 1px;
	box-shadow: 13px 0 var(--page-background-color),
		   -13px 0 var(--page-background-color),
		    13px 1px var(--group-header-separator-color),
		   -13px 1px var(--group-header-separator-color);
}

hr.footer {
	height: 1px;
}

/* @group Member Descriptions */

table.memberdecls {
	border-spacing: 0px;
	padding: 0px;
}

.memberdecls td, .fieldtable tr {
	transition-property: background-color, box-shadow;
	transition-duration: 0.5s;
}

.memberdecls td.glow, .fieldtable tr.glow {
	background-color: var(--glow-color);
	box-shadow: 0 0 15px var(--glow-color);
}

.memberdecls tr[class^='memitem'] {
	font-family: var(--font-family-monospace);
}

.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight {
	padding-top: 2px;
	padding-bottom: 2px;
}

.memTemplParams {
	padding-left: 10px;
	padding-top: 5px;
}

.memItemLeft, .memItemRight, .memTemplParams {
	background-color: var(--memdecl-background-color);
}

.mdescLeft, .mdescRight {
	padding: 0px 8px 4px 8px;
	color: var(--memdecl-foreground-color);
}

tr[class^='memdesc'] {
	box-shadow: inset 0px 1px 3px 0px rgba(0,0,0,.075);
}

.mdescLeft {
	border-left: 1px solid var(--memdecl-border-color);
	border-bottom: 1px solid var(--memdecl-border-color);
}

.mdescRight {
	border-right: 1px solid var(--memdecl-border-color);
	border-bottom: 1px solid var(--memdecl-border-color);
}

.memTemplParams {
	color: var(--memdecl-template-color);
	white-space: nowrap;
	font-size: 80%;
	border-left: 1px solid var(--memdecl-border-color);
	border-right: 1px solid var(--memdecl-border-color);
}

td.ititle {
	border: 1px solid var(--memdecl-border-color);
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	padding-left: 10px;
}

tr:not(:first-child) > td.ititle {
	border-top: 0;
	border-radius: 0;
}

.memItemLeft {
	white-space: nowrap;
	border-left: 1px solid var(--memdecl-border-color);
	border-bottom: 1px solid var(--memdecl-border-color);
	padding-left: 10px;
	transition: none;
	vertical-align: top;
	text-align: right;
}

.memItemRight {
	width: 100%;
	border-right: 1px solid var(--memdecl-border-color);
	border-bottom: 1px solid var(--memdecl-border-color);
	padding-right: 10px;
	transition: none;
	vertical-align: bottom;
}

tr.heading        + tr[class^='memitem'] td.memItemLeft,
tr.groupHeader    + tr[class^='memitem'] td.memItemLeft,
tr.inherit_header + tr[class^='memitem'] td.memItemLeft {
        border-top: 1px solid var(--memdecl-border-color);
	border-top-left-radius: 4px;
}

tr.heading        + tr[class^='memitem'] td.memItemRight,
tr.groupHeader    + tr[class^='memitem'] td.memItemRight,
tr.inherit_header + tr[class^='memitem'] td.memItemRight {
        border-top: 1px solid var(--memdecl-border-color);
	border-top-right-radius: 4px;
}

tr.heading        + tr[class^='memitem'] td.memTemplParams,
tr.heading        + tr td.ititle,
tr.groupHeader    + tr[class^='memitem'] td.memTemplParams,
tr.groupHeader    + tr td.ititle,
tr.inherit_header + tr[class^='memitem'] td.memTemplParams {
        border-top: 1px solid var(--memdecl-border-color);
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
}

table.memberdecls tr:last-child td.memItemLeft,
table.memberdecls tr:last-child td.mdescLeft,
table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader)    td.memItemLeft,
table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemLeft,
table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader)    td.mdescLeft,
table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescLeft {
	border-bottom-left-radius: 4px;
}

table.memberdecls tr:last-child td.memItemRight,
table.memberdecls tr:last-child td.mdescRight,
table.memberdecls tr[class^='memitem']:has(+ tr.groupHeader)    td.memItemRight,
table.memberdecls tr[class^='memitem']:has(+ tr.inherit_header) td.memItemRight,
table.memberdecls tr[class^='memdesc']:has(+ tr.groupHeader)    td.mdescRight,
table.memberdecls tr[class^='memdesc']:has(+ tr.inherit_header) td.mdescRight {
	border-bottom-right-radius: 4px;
}

tr.template .memItemLeft, tr.template .memItemRight {
	border-top: none;
	padding-top: 0;
}


/* @end */

/* @group Member Details */

/* Styles for detailed member documentation */

.memtitle {
	padding: 8px;
	border-top: 1px solid var(--memdef-border-color);
	border-left: 1px solid var(--memdef-border-color);
	border-right: 1px solid var(--memdef-border-color);
	border-top-right-radius: 4px;
	border-top-left-radius: 4px;
	margin-bottom: -1px;
	background-color: var(--memdef-proto-background-color);
	line-height: 1.25;
	font-family: var(--font-family-monospace);
	font-weight: 500;
	font-size: 16px;
	float:left;
	box-shadow: 0 10px 0 -1px var(--memdef-proto-background-color),
	            0 2px 8px 0 rgba(0,0,0,.075);
	position: relative;
}

.memtitle:after {
	content: '';
	display: block;
	background: var(--memdef-proto-background-color);
	height: 10px;
	bottom: -10px;
	left: 0px;
	right: -14px;
	position: absolute;
	border-top-right-radius: 6px;
}

.permalink
{
	font-family: var(--font-family-monospace);
	font-weight: 500;
	line-height: 1.25;
	font-size: 16px;
	display: inline-block;
	vertical-align: middle;
}

.memtemplate {
	font-size: 80%;
	color: var(--memdef-template-color);
	font-family: var(--font-family-monospace);
	font-weight: normal;
	margin-left: 9px;
}

.mempage {
	width: 100%;
}

.memitem {
	padding: 0;
	margin-bottom: 10px;
	margin-right: 5px;
	display: table !important;
	width: 100%;
	box-shadow: 0 2px 8px 0 rgba(0,0,0,.075);
	border-radius: 4px;
}

.memitem.glow {
	box-shadow: 0 0 15px var(--glow-color);
}

.memname {
	font-family: var(--font-family-monospace);
	font-size: 13px;
	font-weight: 400;
	margin-left: 6px;
}

.memname td {
	vertical-align: bottom;
}

.memproto, dl.reflist dt {
	border-top: 1px solid var(--memdef-border-color);
	border-left: 1px solid var(--memdef-border-color);
	border-right: 1px solid var(--memdef-border-color);
	padding: 6px 0px 6px 0px;
	color: var(--memdef-proto-text-color);
	font-weight: bold;
	background-color: var(--memdef-proto-background-color);
	border-top-right-radius: 4px;
	border-bottom: 1px solid var(--memdef-border-color);
}

.overload {
	font-family: var(--font-family-monospace);
	font-size: 65%;
}

.memdoc, dl.reflist dd {
	border-bottom: 1px solid var(--memdef-border-color);
	border-left: 1px solid var(--memdef-border-color);
	border-right: 1px solid var(--memdef-border-color);
	padding: 6px 10px 2px 10px;
	border-top-width: 0;
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
}

dl.reflist dt {
	padding: 5px;
}

dl.reflist dd {
	margin: 0px 0px 10px 0px;
	padding: 5px;
}

.paramkey {
	text-align: right;
}

.paramtype {
	white-space: nowrap;
	padding: 0px;
	padding-bottom: 1px;
}

.paramname {
	white-space: nowrap;
	padding: 0px;
	padding-bottom: 1px;
	margin-left: 2px;
}

.paramname em {
	color: var(--memdef-param-name-color);
	font-style: normal;
	margin-right: 1px;
}

.paramname .paramdefval {
	font-family: var(--font-family-monospace);
}

.params, .retval, .exception, .tparams {
	margin-left: 0px;
	padding-left: 0px;
}

.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname {
	font-weight: bold;
	vertical-align: top;
}

.params .paramtype, .tparams .paramtype {
	font-style: italic;
	vertical-align: top;
}

.params .paramdir, .tparams .paramdir {
	font-family: var(--font-family-monospace);
	vertical-align: top;
}

table.mlabels {
	border-spacing: 0px;
}

td.mlabels-left {
	width: 100%;
	padding: 0px;
}

td.mlabels-right {
	vertical-align: bottom;
	padding: 0px;
	white-space: nowrap;
}

span.mlabels {
	margin-left: 8px;
}

span.mlabel {
	background-color: var(--label-background-color);
	border-top:1px solid var(--label-left-top-border-color);
	border-left:1px solid var(--label-left-top-border-color);
	border-right:1px solid var(--label-right-bottom-border-color);
	border-bottom:1px solid var(--label-right-bottom-border-color);
	text-shadow: none;
	color: var(--label-foreground-color);
	margin-right: 4px;
	padding: 2px 3px;
	border-radius: 3px;
	font-size: 7pt;
	white-space: nowrap;
	vertical-align: middle;
}



/* @end */

/* these are for tree view inside a (index) page */

div.directory {
	margin: 10px 0px;
	width: 100%;
}

.directory table {
	border-collapse:collapse;
}

.directory td {
	margin: 0px;
	padding: 0px;
	vertical-align: top;
}

.directory td.entry {
	white-space: nowrap;
	padding-right: 6px;
	padding-top: 3px;
}

.directory td.entry a {
	outline:none;
}

.directory td.entry a img {
	border: none;
}

.directory td.desc {
	width: 100%;
	padding-left: 6px;
	padding-right: 6px;
	padding-top: 3px;
	border-left: 1px solid rgba(0,0,0,0.05);
}

.directory tr.odd {
	padding-left: 6px;
	background-color: var(--index-odd-item-bg-color);
}

.directory tr.even {
	padding-left: 6px;
	background-color: var(--index-even-item-bg-color);
}

.directory img {
	vertical-align: -30%;
}

.directory .levels {
	white-space: nowrap;
	width: 100%;
	text-align: right;
	font-size: 9pt;
}

.directory .levels span {
	cursor: pointer;
	padding-left: 2px;
	padding-right: 2px;
	color: var(--page-link-color);
}

.arrow {
	color: var(--nav-background-color);
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	cursor: pointer;
	font-size: 80%;
	display: inline-block;
	width: 16px;
	height: 14px;
	transition: opacity 0.3s ease;
}

span.arrowhead {
	position: relative;
	padding: 0;
	margin: 0 0 0 2px;
	display: inline-block;
	width: 5px;
	height: 5px;
	border-right: 2px solid var(--nav-arrow-color);
	border-bottom: 2px solid var(--nav-arrow-color);
	transform: rotate(-45deg);
	transition: transform 0.3s ease;
}

span.arrowhead.opened {
	transform: rotate(45deg);
}

.selected span.arrowhead {
	border-right: 2px solid var(--nav-arrow-selected-color);
	border-bottom: 2px solid var(--nav-arrow-selected-color);
}

.icon {
	font-family: var(--font-family-icon);
	line-height: normal;
	font-weight: bold;
	font-size: 12px;
	height: 14px;
	width: 16px;
	display: inline-block;
	background-color: var(--icon-background-color);
	color: var(--icon-foreground-color);
	text-align: center;
	border-radius: 4px;
	margin-left: 2px;
	margin-right: 2px;
}

.icona {
	width: 24px;
	height: 22px;
	display: inline-block;
}

.iconfolder {
	width: 24px;
	height: 18px;
	margin-top: 6px;
	vertical-align:top;
	display: inline-block;
	position: relative;
}

.icondoc {
	width: 24px;
	height: 18px;
	margin-top: 3px;
	vertical-align:top;
	display: inline-block;
	position: relative;
}

.folder-icon {
	width: 16px;
	height: 11px;
	background-color: var(--icon-folder-fill-color);
	border: 1px solid var(--icon-folder-border-color);
	border-radius: 0 2px 2px 2px;
	position: relative;
	box-sizing: content-box;
}

.folder-icon::after {
	content: '';
	position: absolute;
	top: 2px;
	left: -1px;
	width: 16px;
	height: 7px;
	background-color: var(--icon-folder-open-fill-color);
	border: 1px solid var(--icon-folder-border-color);
	border-radius: 7px 7px 2px 2px;
	transform-origin: top left;
	opacity: 0;
	transition: all 0.3s linear;
}

.folder-icon::before {
	content: '';
	position: absolute;
	top: -3px;
	left: -1px;
	width: 6px;
	height: 2px;
	background-color: var(--icon-folder-fill-color);
	border-top: 1px solid var(--icon-folder-border-color);
	border-left: 1px solid var(--icon-folder-border-color);
	border-right: 1px solid var(--icon-folder-border-color);
	border-radius: 2px 2px 0 0;
}

.folder-icon.open::after {
	top: 3px;
	opacity: 1;
}

.doc-icon {
	left: 6px;
	width: 12px;
	height: 16px;
	background-color: var(--icon-doc-border-color);
	clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%);
	position: relative;
	display: inline-block;
}
.doc-icon::before {
	content: "";
	left: 1px;
	top: 1px;
	width: 10px;
	height: 14px;
	background-color: var(--icon-doc-fill-color);
	clip-path: polygon(0 0, 66% 0, 100% 25%, 100% 100%, 0 100%);
	position: absolute;
	box-sizing: border-box;
}
.doc-icon::after {
	content: "";
	left: 7px;
	top: 0px;
	width: 3px;
	height: 3px;
	background-color: transparent;
	position: absolute;
	border: 1px solid var(--icon-doc-border-color);
}




/* @end */

div.dynheader {
	margin-top: 8px;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

span.dynarrow {
	position: relative;
	display: inline-block;
	width: 12px;
	bottom: 1px;
}

address {
	font-style: normal;
	color: var(--footer-foreground-color);
}

table.doxtable caption {
	caption-side: top;
}

table.doxtable {
	border-collapse:collapse;
	margin-top: 4px;
	margin-bottom: 4px;
}

table.doxtable td, table.doxtable th {
	border: 1px solid var(--table-cell-border-color);
	padding: 3px 7px 2px;
}

table.doxtable th {
	background-color: var(--table-header-background-color);
	color: var(--table-header-foreground-color);
	font-size: 110%;
	padding-bottom: 4px;
	padding-top: 5px;
}

table.fieldtable {
	margin-bottom: 10px;
	border: 1px solid var(--memdef-border-color);
	border-spacing: 0px;
	border-radius: 4px;
	box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
}

.fieldtable td, .fieldtable th {
	padding: 3px 7px 2px;
}

.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fieldinit {
	white-space: nowrap;
	border-right: 1px solid var(--memdef-border-color);
	border-bottom: 1px solid var(--memdef-border-color);
	vertical-align: top;
}

.fieldtable td.fieldname {
	padding-top: 3px;
}

.fieldtable td.fieldinit {
	padding-top: 3px;
	text-align: right;
}

.fieldtable td.fielddoc {
	border-bottom: 1px solid var(--memdef-border-color);
}

.fieldtable td.fielddoc p:first-child {
	margin-top: 0px;
}

.fieldtable td.fielddoc p:last-child {
	margin-bottom: 2px;
}

.fieldtable tr:last-child td {
	border-bottom: none;
}

.fieldtable th {
	background-color: var(--memdef-title-background-color);
	font-size: 90%;
	color: var(--memdef-proto-text-color);
	padding-bottom: 4px;
	padding-top: 5px;
	text-align:left;
	font-weight: 400;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	border-bottom: 1px solid var(--memdef-border-color);
}

/* style requirements page */

div.req_title {
        text-decoration-line: underline;
        text-decoration-style: solid;
        text-decoration-color: var(--table-cell-border-color);
        text-decoration-thickness: 1px;
        font-weight: bold;
}

table.reqlist tr > td:first-child {
        text-align: right;
        font-weight: bold;
}

div.missing_satisfies {
        border-left: 8px solid var(--satisfies-color-hl);
	border-radius: 4px;
	background: var(--satisfies-color-bg);
        padding: 10px;
        margin: 10px 0px;
        overflow: hidden;
        margin-left: 0;
}

div.missing_verifies {
        border-left: 8px solid var(--verifies-color-hl);
	border-radius: 4px;
	background: var(--verifies-color-bg);
        padding: 10px;
        margin: 10px 0px;
        overflow: hidden;
        margin-left: 0;
}

/* ----------- navigation breadcrumb styling ----------- */

#nav-path ul {
	height: 30px;
	line-height: 30px;
	color: var(--nav-text-normal-color);
	overflow: hidden;
	margin: 0px;
	padding-left: 4px;
	background-image: none;
	background: var(--page-background-color);
	border-bottom: 1px solid var(--nav-breadcrumb-separator-color);
	font-size: var(--nav-font-size-level1);
	font-family: var(--font-family-nav);
	position: relative;
	z-index: 100;
}

#main-nav {
	border-bottom: 1px solid var(--nav-border-color);
}

.navpath li {
	list-style-type:none;
	float:left;
	color: var(--nav-foreground-color);
}

.navpath li.footer {
	list-style-type:none;
	float:right;
	padding-left:10px;
	padding-right:15px;
	background-image:none;
	background-repeat:no-repeat;
	background-position:right;
	font-size: 8pt;
	color: var(--footer-foreground-color);
}

#nav-path li.navelem {
	background-image: none;
	display: flex;
	align-items: center;
	padding-left: 15px;
}

.navpath li.navelem a {
	text-shadow: none;
	display: inline-block;
	color: var(--nav-breadcrumb-color);
	position: relative;
	top: 0px;
	height: 30px;
	margin-right: -20px;
}

#nav-path li.navelem:after {
	content: '';
	display: inline-block;
	position: relative;
	top: 0;
	right: -15px;
	width: 30px;
	height: 30px;
	transform: scaleX(0.5) scale(0.707) rotate(45deg);
	z-index: 10;
	background: var(--page-background-color);
	box-shadow: 2px -2px 0 2px var(--nav-breadcrumb-separator-color);
	border-radius: 0 5px 0 50px;
}

#nav-path li.navelem:first-child {
	margin-left: -6px;
}

#nav-path li.navelem:hover,
#nav-path li.navelem:hover:after {
	background-color: var(--nav-breadcrumb-active-bg);
}

/* ---------------------- */

div.summary
{
	float: right;
	font-size: 8pt;
	padding-right: 5px;
	width: 50%;
	text-align: right;
}

div.summary a
{
	white-space: nowrap;
}

table.classindex
{
	margin: 10px;
	white-space: nowrap;
	margin-left: 3%;
	margin-right: 3%;
	width: 94%;
	border: 0;
	border-spacing: 0;
	padding: 0;
}

div.ingroups
{
	font-size: 8pt;
	width: 50%;
	text-align: left;
}

div.ingroups a
{
	white-space: nowrap;
}

div.header
{
	margin:  0px;
	background-color: var(--header-background-color);
	border-bottom: 1px solid var(--header-separator-color);
}

div.headertitle
{
	padding: 5px 5px 5px 10px;
}

dl {
	padding: 0 0 0 0;
}

dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a {
	font-weight: bold !important;
}

dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug,
dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark {
	padding: 10px;
	margin: 10px 0px;
	overflow: hidden;
	margin-left: 0;
	border-radius: 4px;
}

dl.section dd {
	margin-bottom: 2px;
}

dl.warning, dl.attention, dl.important {
	background: var(--warning-color-bg);
	border-left: 8px solid var(--warning-color-hl);
	color: var(--warning-color-text);
}

dl.warning dt, dl.attention dt, dl.important dt {
	color: var(--warning-color-hl);
}

dl.warning .tt, dl.attention .tt, dl.important .tt {
	background-color: hsl(from var(--warning-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}

dl.note, dl.remark {
	background: var(--note-color-bg);
	border-left: 8px solid var(--note-color-hl);
	color: var(--note-color-text);
}

dl.note dt, dl.remark dt {
	color: var(--note-color-hl);
}

dl.note .tt, dl.remark .tt {
	background-color: hsl(from var(--note-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}

dl.todo {
	background: var(--todo-color-bg);
	border-left: 8px solid var(--todo-color-hl);
	color: var(--todo-color-text);
}

dl.todo dt {
	color: var(--todo-color-hl);
}

dl.todo .tt {
	background-color: hsl(from var(--todo-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}

dl.test {
	background: var(--test-color-bg);
	border-left: 8px solid var(--test-color-hl);
	color: var(--test-color-text);
}

dl.test dt {
	color: var(--test-color-hl);
}

dl.test .tt {
	background-color: hsl(from var(--test-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}

dl.bug dt a {
	color: var(--bug-color-hl) !important;
}

dl.bug {
	background: var(--bug-color-bg);
	border-left: 8px solid var(--bug-color-hl);
	color: var(--bug-color-text);
}

dl.bug dt a {
	color: var(--bug-color-hl) !important;
}

dl.bug .tt {
	background-color: hsl(from var(--bug-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}

dl.deprecated {
	background: var(--deprecated-color-bg);
	border-left: 8px solid var(--deprecated-color-hl);
	color: var(--deprecated-color-text);
}

dl.deprecated dt a {
	color: var(--deprecated-color-hl) !important;
}

dl.deprecated .tt {
	background-color: hsl(from var(--deprecated-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}


dl.invariant, dl.pre, dl.post {
	background: var(--invariant-color-bg);
	border-left: 8px solid var(--invariant-color-hl);
	color: var(--invariant-color-text);
}

dl.invariant dt, dl.pre dt, dl.post dt {
	color: var(--invariant-color-hl);
}

dl.invariant .tt, dl.pre .tt, dl.post .tt {
	background-color: hsl(from var(--invariant-color-bg) h s calc(l + var(--fragment-highlight-filter)));
}

dl.note dd, dl.warning dd, dl.pre dd, dl.post dd,
dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd,
dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd {
	margin-inline-start: 0px;
}


#projectrow
{
	height: 56px;
}

#projectlogo
{
	text-align: center;
	vertical-align: bottom;
	border-collapse: separate;
}

#projectlogo img
{
	border: 0px none;
}

#projectalign
{
	vertical-align: middle;
	padding-left: 0.5em;
}

#projectname
{
	font-size: 200%;
	font-family: var(--font-family-title);
	margin: 0;
	padding: 0;
}

#side-nav #projectname
{
	font-size: 130%;
}

#projectbrief
{
	font-size: 90%;
	font-family: var(--font-family-title);
	margin: 0px;
	padding: 0px;
}

#projectnumber
{
	font-size: 50%;
	font-family: var(--font-family-title);
	margin: 0px;
	padding: 0px;
}

#titlearea
{
	padding: 0 0 0 5px;
	margin: 0px;
	border-bottom: 1px solid var(--title-separator-color);
	background-color: var(--title-background-color);
}

.image
{
	text-align: center;
}

.dotgraph
{
	text-align: center;
}

.mscgraph
{
	text-align: center;
}

.plantumlgraph
{
	text-align: center;
}

.diagraph
{
	text-align: center;
}

.caption
{
	font-weight: bold;
}

dl.citelist {
	margin-bottom:50px;
}

dl.citelist dt {
	color:var(--citation-label-color);
	float:left;
	font-weight:bold;
	margin-right:10px;
	padding:5px;
	text-align:right;
	width:52px;
}

dl.citelist dd {
	margin:2px 0 2px 72px;
	padding:5px 0;
}

div.toc {
	padding: 14px 25px;
	background-color: var(--toc-background-color);
	border: 1px solid var(--toc-border-color);
	border-radius: 7px 7px 7px 7px;
	float: right;
	height: auto;
	margin: 0 8px 10px 10px;
	width: 200px;
}

div.toc li {
	background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent;
	font: 10px/1.2 var(--font-family-toc);
	margin-top: 5px;
	padding-left: 10px;
	padding-top: 2px;
}

div.toc h3 {
	font: bold 12px/1.2 var(--font-family-toc);
	color: var(--toc-header-color);
	border-bottom: 0 none;
	margin: 0;
}

div.toc ul {
	list-style: none outside none;
	border: medium none;
	padding: 0px;
}

div.toc li[class^='level'] {
	margin-left: 15px;
}

div.toc li.level1 {
	margin-left: 0px;
}

div.toc li.empty {
	background-image: none;
	margin-top: 0px;
}

span.emoji {
        /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
         * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
         */
}

span.obfuscator {
	display: none;
}

.inherit_header {
	font-weight: 400;
	cursor: pointer;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.inherit_header td {
	padding: 6px 0 2px 0;
}

.inherit {
	display: none;
}

tr.heading h2 {
	margin-top: 12px;
	margin-bottom: 12px;
}

/* tooltip related style info */

.ttc {
	position: absolute;
	display: none;
}

#powerTip {
	cursor: default;
	color: var(--tooltip-foreground-color);
	background-color: var(--tooltip-background-color);
	backdrop-filter: var(--tooltip-backdrop-filter);
	-webkit-backdrop-filter: var(--tooltip-backdrop-filter);
	border: 1px solid var(--tooltip-border-color);
	border-radius: 4px;
	box-shadow: var(--tooltip-shadow);
	display: none;
	font-size: smaller;
	max-width: 80%;
	padding: 1ex 1em 1em;
	position: absolute;
	z-index: 2147483647;
}

#powerTip div.ttdoc {
	color: var(--tooltip-doc-color);
	font-style: italic;
}

#powerTip div.ttname a {
	font-weight: bold;
}

#powerTip a {
	color: var(--tooltip-link-color);
}

#powerTip div.ttname {
	font-weight: bold;
}

#powerTip div.ttdeci {
	color: var(--tooltip-declaration-color);
}

#powerTip div {
	margin: 0px;
	padding: 0px;
	font-size: 12px;
	font-family: var(--font-family-tooltip);
	line-height: 16px;
}

#powerTip:before, #powerTip:after {
	content: "";
	position: absolute;
	margin: 0px;
}

#powerTip.n:after,  #powerTip.n:before,
#powerTip.s:after,  #powerTip.s:before,
#powerTip.w:after,  #powerTip.w:before,
#powerTip.e:after,  #powerTip.e:before,
#powerTip.ne:after, #powerTip.ne:before,
#powerTip.se:after, #powerTip.se:before,
#powerTip.nw:after, #powerTip.nw:before,
#powerTip.sw:after, #powerTip.sw:before {
	border: solid transparent;
	content: " ";
	height: 0;
	width: 0;
	position: absolute;
}

#powerTip.n:after,  #powerTip.s:after,
#powerTip.w:after,  #powerTip.e:after,
#powerTip.nw:after, #powerTip.ne:after,
#powerTip.sw:after, #powerTip.se:after {
	border-color: rgba(255, 255, 255, 0);
}

#powerTip.n:before,  #powerTip.s:before,
#powerTip.w:before,  #powerTip.e:before,
#powerTip.nw:before, #powerTip.ne:before,
#powerTip.sw:before, #powerTip.se:before {
	border-color: rgba(128, 128, 128, 0);
}

#powerTip.n:after,  #powerTip.n:before,
#powerTip.ne:after, #powerTip.ne:before,
#powerTip.nw:after, #powerTip.nw:before {
	top: 100%;
}

#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
	border-top-color: var(--tooltip-arrow-background-color);
	border-width: 10px;
	margin: 0px -10px;
}
#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before {
	border-top-color: var(--tooltip-border-color);
	border-width: 11px;
	margin: 0px -11px;
}
#powerTip.n:after, #powerTip.n:before {
	left: 50%;
}

#powerTip.nw:after, #powerTip.nw:before {
	right: 14px;
}

#powerTip.ne:after, #powerTip.ne:before {
	left: 14px;
}

#powerTip.s:after,  #powerTip.s:before,
#powerTip.se:after, #powerTip.se:before,
#powerTip.sw:after, #powerTip.sw:before {
	bottom: 100%;
}

#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
	border-bottom-color: var(--tooltip-arrow-background-color);
	border-width: 10px;
	margin: 0px -10px;
}

#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
	border-bottom-color: var(--tooltip-border-color);
	border-width: 11px;
	margin: 0px -11px;
}

#powerTip.s:after, #powerTip.s:before {
	left: 50%;
}

#powerTip.sw:after, #powerTip.sw:before {
	right: 14px;
}

#powerTip.se:after, #powerTip.se:before {
	left: 14px;
}

#powerTip.e:after, #powerTip.e:before {
	left: 100%;
}
#powerTip.e:after {
	border-left-color: var(--tooltip-border-color);
	border-width: 10px;
	top: 50%;
	margin-top: -10px;
}
#powerTip.e:before {
	border-left-color: var(--tooltip-border-color);
	border-width: 11px;
	top: 50%;
	margin-top: -11px;
}

#powerTip.w:after, #powerTip.w:before {
	right: 100%;
}
#powerTip.w:after {
	border-right-color: var(--tooltip-border-color);
	border-width: 10px;
	top: 50%;
	margin-top: -10px;
}
#powerTip.w:before {
	border-right-color: var(--tooltip-border-color);
	border-width: 11px;
	top: 50%;
	margin-top: -11px;
}

@media print
{
	#top { display: none; }
	#side-nav { display: none; }
	#nav-path { display: none; }
	body { overflow:visible; }
	h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
	.summary { display: none; }
	.memitem { page-break-inside: avoid; }
	#doc-content
	{
	margin-left:0 !important;
	height:auto !important;
	width:auto !important;
	overflow:inherit;
	display:inline;
	}
}

/* @group Markdown */

table.markdownTable {
	border-collapse:collapse;
	margin-top: 4px;
	margin-bottom: 4px;
}

table.markdownTable td, table.markdownTable th {
	border: 1px solid var(--table-cell-border-color);
	padding: 3px 7px 2px;
}

table.markdownTable tr {
}

th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
	background-color: var(--table-header-background-color);
	color: var(--table-header-foreground-color);
	font-size: 110%;
	padding-bottom: 4px;
	padding-top: 5px;
}

th.markdownTableHeadLeft, td.markdownTableBodyLeft {
	text-align: left
}

th.markdownTableHeadRight, td.markdownTableBodyRight {
	text-align: right
}

th.markdownTableHeadCenter, td.markdownTableBodyCenter {
	text-align: center
}

tt, code, kbd
{
	display: inline-block;
}
tt, code, kbd
{
	vertical-align: top;
}
/* @end */

u {
	text-decoration: underline;
}

details>summary {
	list-style-type: none;
}

details > summary::-webkit-details-marker {
	display: none;
}

details>summary::before {
        content: "\25bc";
        padding-right:4px;
        font-size: 80%;
        display: inline-block;
        transform: rotate(-90deg);
}

details[open]>summary::before {
        content: "\25bc";
        padding-right:4px;
        font-size: 80%;
        display: inline-block;
        transform: rotate(0deg);
}
:root {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color);
}

:root.dark-mode {
    color-scheme: dark;
}

::-webkit-scrollbar {
        background-color: var(--scrollbar-background-color);
        height: 12px;
        width: 12px;
}
::-webkit-scrollbar-thumb {
        border-radius: 6px;
        box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color);
        border: solid 2px transparent;
}
::-webkit-scrollbar-corner {
        background-color: var(--scrollbar-background-color);
}

