/* The standard CSS for doxygen 1.16.1*/

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.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: "\25ba";
	padding-right:4px;
	font-size: 80%;
}

details[open]>summary::before {
	content: "\25bc";
	padding-right:4px;
	font-size: 80%;
}

:root {
    scrollbar-width: thin;
    scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color);
}

::-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);
}

