/* CSS based on doxygen 1.8.15 */
.doxy { font-size: 90%; }

.doxy a, .doxy code { padding: 0; }
.doxy h1, .doxy h2, .doxy h3, .doxy h4, .doxy h5, .doxy h6 {color: #fff;}
.doxy h1 { font-size: 150%; color: #fff; }
.doxy h2 { font-size: 115%; }
.doxy h3 { font-size: 130%; }

.dyncontent > .center > img {
  filter: invert(1);
}

.doxy code {
  background: none;
  border: none;
}

div.groupHeader,
div.title  {
  font-family: "Montserrat", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "Tahoma", sans-serif;
}

p.reference, p.definition {
  font: 400 14px/22px Roboto,sans-serif;
}

/* @group Heading Levels */
.title {
  font-size: 150%;
  margin: 10px 0px;
}

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

h2.groupheader {
  color: #ffffff;
  font-size: 150%;
  font-weight: normal;
  width: 100%;
  text-shadow: none;
  padding-bottom: 2px;
}

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

.contents > p,
.contents > .textblock,
.contents > .dynheader {
  margin: 10px 0px;
  font-size: 110%;
}

.contents > .groupheader {
  padding: 2px 0px 5px 0px;
}


dt {
  font-weight: bold;
}

div.multicol {
  column-gap: 1em;
  column-count: 3;
}

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

p.starttd {
  margin-top: 0px;
}
/* @end */

caption {
  font-weight: bold;
}

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

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

div.qindex, div.navtab {
  border: 1px solid #A3B4D7;
  text-align: center;
}

div.qindex, div.navpath {
  width: 100%;
  line-height: 140%;
}

div.navtab {
  margin-right: 15px;
}

/* @group Link Styling */
doxy a, doxy a:visited {
  color: #0081cc;
  font-weight: normal;
  text-decoration: none;
}
doxy a:hover {
  text-decoration: underline;
}

doxy a.qindex {
  font-weight: bold;
}

doxy a.qindexHL {
  font-weight: bold;
  color: #FFFFFF;
  border: 1px double #869DCA;
}

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

.contents a.qindexHL,
.contents a.qindexHL:visited { color: #FFFFFF; }

doxy a.el { font-weight: bold; }
doxy a.code, doxy a.code:visited, doxy a.line, doxy a.line:visited { color: #4665A2; }
doxy a.codeRef, doxy a.codeRef:visited, doxy a.lineRef, doxy a.lineRef:visited { color: #4665A2; }

span.dockey {color: #949494;}
.memitem-link {
  text-indent: -16px;
  padding-left: 16px;
}
.memitem-link {color: #ffffff;}
.memitem-link .dockey {color: #b5b5b5;}
/* @end */

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

ul {
  overflow: hidden;
}

#side-nav ul {
  overflow: visible;
}

#main-nav ul {
  overflow: visible;
}

.fragment {
  text-align: left;
  direction: ltr;
  overflow-x: auto;
  overflow-y: hidden;
}

pre.fragment {
  border: 1px solid #C4CFE5;
  padding: 4px 6px;
  margin: 4px 8px 4px 2px;
  overflow: auto;
  word-wrap: break-word;
  font-size:  9pt;
  line-height: 125%;
  font-family: monospace, fixed;
  font-size: 105%;
}

div.fragment {
  padding: 10px;
  margin: 10px 0px;
  background: #040404;
  overflow-x: auto;
}

div.line {
  font-family: monospace, fixed;
  font-size: 13px;
  min-height: 13px;
  line-height: 1.2;
  white-space: pre;
  text-indent: -53px;
  padding-left: 53px;
  padding-bottom: 0px;
  margin: 0px;
}

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

span.lineno {
  padding-right: 4px;
  text-align: right;
  border-right: 2px solid #0F0;
  white-space: pre;
}

.lineno {
  user-select: none;
}

div.ah, span.ah {
  background-color: black;
  font-weight: bold;
  color: #FFFFFF;
  margin-bottom: 3px;
  margin-top: 3px;
  padding: 0.2em;
}

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

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

div.groupHeader {
  margin: 12px 0px;
  font-size: 100%;
  color: #eff9ff;
}

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

td.indexkey {
  font-weight: bold;
  border: 1px solid #C4CFE5;
  margin: 2px 0px 2px 0;
  padding: 2px 10px;
  white-space: nowrap;
  vertical-align: top;
}

td.indexvalue {
  border: 1px solid #C4CFE5;
  padding: 2px 10px;
  margin: 2px 0px;
}

tr.memlist {}
p.formulaDsp { text-align: center; }
img.formulaDsp {}

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

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

div.center img {
  border: 0px;
}

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

img.footer {
  border: 0px;
  vertical-align: middle;
}

/* @group Code Colorization */
span.keyword       { color: #53b1ff; }
span.keywordtype   { color: #53b1ff; }
span.keywordflow   { color: #53b1ff; }
span.comment       { color: #8c8c8c; }
span.preprocessor  { color: #53b1ff; }
span.stringliteral { color: #ffa37d; }
span.charliteral   { color: #ffa37d; }

blockquote {
  border-left: 2px solid #9CAFD4;
  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 #A3B4D7;
}

th.dirtab {
  font-weight: bold;
}

hr {
  height: 0px;
  border: none;
  border-top: 1px solid #4A6AAA;
}

hr.footer {
  height: 1px;
}

.memTemplParams {
  color: #7cecff;
  white-space: nowrap;
  font-size: 85%;
}

/* @group Member Details */
h2.memtitle {
  display: block;
  margin: 1px 0 15px 0;
  padding: 6px 0 0 0;
  line-height: 1.25;
  font-weight: 300;
  border-bottom: none;
  font-family: monospace;
  font-size: 90%;
}

.permalink {
  display: inline-block;
  opacity: 0;
  font-size: 85%;
  text-indent: 0;
}

h1:hover > .permalink { opacity: 1; }
h2:hover > .permalink { opacity: 1; }
h3:hover > .permalink { opacity: 1; }

.memtemplate {
  color: #949494;
}

.memnav {
  background-color: #EBEFF6;
  border: 1px solid #A3B4D7;
  text-align: center;
  margin: 2px;
  margin-right: 15px;
  padding: 2px;
}

.mempage {
  width: 100%;
}

.memitem {
  padding: 0;
  margin-bottom: 0;
  margin-right: 5px;
  transition: box-shadow 0.5s linear;
  width: 100%;
}

.memname {
  font-weight: bold;
  color: #fff;
}

.memproto, dl.reflist dt {
  color: #ffffff;
  font-weight: bold;
}

.overload {
  font-family: "courier new",courier,monospace;
  font-size: 85%;
  padding-left: 8px;
}

.memdoc, dl.reflist dd {
  border-top-width: 0;
}
.memdoc p { margin: 4px 0; }

dl.reflist dt {
  padding: 5px;
}

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

.paramkey {
  text-align: right;
}

.paramtype {
  white-space: nowrap;
}

.paramname {
  color: #50abff;
  white-space: nowrap;
}
.paramname em {
  font-style: normal;
}
.paramname code {
  line-height: 14px;
}

.params, .retval, .exception, .tparams {
}

dl.params {
  background: #333;
  padding: 10px;
  margin: 4px 0;
}

dl.params dt {
  padding: 1px 1px 4px 1px;
  color: #ffc79d;
  font-size: 110%;
}

table.params {
  border: none;
  padding: 0;
}

table.params td.paramname {
  padding-right: 10px;
}

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

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

.params .paramdir, .tparams .paramdir {
  font-family: "courier new",courier,monospace;
  vertical-align: top;
}

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

span.mlabel {
  background-color: rgba(23, 84, 152, 0.17);
  border: solid 1px #4c94cc;
  color: #7bd9ff;
  margin-right: 4px;
  padding: 1px 3px;
  border-radius: 3px;
  font-size: 65%;
  white-space: nowrap;
  vertical-align: middle;
}
/* @end */

/* these are for tree view inside a (index) page */
div.directory {
  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.even {
  padding-left: 6px;
}

.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: #719fff;
}

.arrow {
  color: #9CAFD4;
  user-select: none;
  cursor: pointer;
  font-size: 80%;
  display: inline-block;
  width: 16px;
  height: 22px;
}

.icon {
  font-family: Arial, Helvetica;
  font-weight: bold;
  font-size: 12px;
  height: 14px;
  width: 16px;
  display: inline-block;
  background-color: #728DC1;
  color: white;
  text-align: center;
  border-radius: 4px;
  margin-left: 2px;
  margin-right: 2px;
}

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

.iconfopen {
  width: 24px;
  height: 18px;
  margin-bottom: 4px;
  background-image:url('folderopen.png');
  background-position: 0px -4px;
  background-repeat: repeat-y;
  vertical-align:top;
  display: inline-block;
}

.iconfclosed {
  width: 24px;
  height: 18px;
  margin-bottom: 4px;
  background-image:url('folderclosed.png');
  background-position: 0px -4px;
  background-repeat: repeat-y;
  vertical-align:top;
  display: inline-block;
}

.icondoc {
  width: 24px;
  height: 18px;
  margin-bottom: 4px;
  background-image:url('doc.png');
  background-position: 0px -4px;
  background-repeat: repeat-y;
  vertical-align:top;
  display: inline-block;
}

table.directory {
  font: 400 14px Roboto,sans-serif;
}
/* @end */

div.dynheader {
  margin-top: 8px;
}

address {
  font-style: normal;
  color: #2A3D61;
}

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 #2D4068;
  padding: 3px 7px 2px;
}

table.doxtable th {
  font-size: 110%;
  padding-bottom: 4px;
  padding-top: 5px;
}

table.fieldtable,
.fieldtable td, .fieldtable th {
  border: 1px solid var(--table-border);
}

table.fieldtable {
  table-layout: fixed;
  width: 100%;
  border-top: none;
  border-spacing: 0px;
  margin-bottom: 10px;
  color: #fff;
  background: var(--table-content-background);
}

.fieldtable .fieldname {
  font-weight: bold;
}

.fieldtable td, .fieldtable th {
  padding: 3px 7px 2px;
  border-left: none;
  border-bottom: none;
}

.fieldtable th {
  background-color: var(--table-header-background);
  color: var(--table-header-text-color);
  font-size: 110%;
  text-align:left;
  font-weight: bold;
}

.fieldtable td:last-child, .fieldtable th:last-child {
  border-right: none;
}

.fieldtable td.fielddoc p { margin: 0; }

.tabsearch {
  top: 0px;
  left: 10px;
  height: 36px;
  background-image: url('tab_b.png');
  z-index: 101;
  overflow: hidden;
  font-size: 13px;
}

div.summary {
  float: right;
  font-size: 8pt;
  padding-right: 10px;
}

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 {
  padding: 1px;
  font-size: 14px;
  width: 50%;
  text-align: left;
}

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

div.header {
  margin:  0px;
}

div.headertitle {
  color: #fff;
}

dl {
  padding: 0;
}

dl.section {
  padding: 10px;
  margin: 15px 0;
  border: none;
}

.fieldtable .section {
  margin: 4px 0;
}

dl.section dt {
  margin: 2px 0 4px 0;
  font-size: 120%;
  font-weight: bold;
  color: #ffc79d;
}

dl.remark { background: #05a2ff42; }
dl.note { background: #ffffff1a; }
dl.warning, dl.attention, dl.deprecated dl.todo, dl.bug {background: #ff5f5f47;}

dl.pre, dl.post, dl.invariant { border: solid 1px #00D000; }
dl.test { border: solid 1px #8bd2ff; }

div.doxy .image,
div.doxy .dotgraph,
div.doxy .mscgraph,
div.doxy .plantumlgraph,
div.doxy .diagraph {
  text-align: center;
}

div.doxy .caption {
  font-weight: bold;
}

div.zoom {
  border: 1px solid #90A5CE;
}

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

dl.citelist dt {
  color:#334975;
  float:left;
  font-weight:bold;
  margin-right:10px;
  padding:5px;
}

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

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

div.toc li {
  background: url("bdwn.png") no-repeat scroll 0 5px transparent;
  font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
  margin-top: 5px;
  padding-left: 10px;
  padding-top: 2px;
}

div.toc h3 {
  font: bold 12px/1.2 Arial,FreeSans,sans-serif;
  color: #4665A2;
  border-bottom: 0 none;
  margin: 0;
}

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

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

div.toc li.level2 {
  margin-left: 15px;
}

div.toc li.level3 {
  margin-left: 30px;
}

div.toc li.level4 {
  margin-left: 45px;
}

.inherit_header {
  margin: 10px 0;
  font-weight: bold;
  color: #ffffff;
  cursor: pointer;
  user-select: none;
}

/* tooltip related style info */

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

#powerTip {
  cursor: default;
  white-space: nowrap;
  background-color: white;
  border: 1px solid gray;
  border-radius: 4px 4px 4px 4px;
  box-shadow: 1px 1px 7px gray;
  display: none;
  font-size: smaller;
  max-width: 80%;
  opacity: 0.9;
  padding: 1ex 1em 1em;
  position: absolute;
  z-index: 2147483647;
}

#powerTip div.ttdoc {
  color: grey;
  font-style: italic;
}

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

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

#powerTip div.ttdeci {
  color: #006318;
}

#powerTip div {
  margin: 0px;
  padding: 0px;
  font: 12px/16px Roboto,sans-serif;
}

#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: #FFFFFF;
  border-width: 10px;
  margin: 0px -10px;
}
#powerTip.n:before {
  border-top-color: #808080;
  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: #FFFFFF;
  border-width: 10px;
  margin: 0px -10px;
}

#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
  border-bottom-color: #808080;
  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: #FFFFFF;
  border-width: 10px;
  top: 50%;
  margin-top: -10px;
}
#powerTip.e:before {
  border-left-color: #808080;
  border-width: 11px;
  top: 50%;
  margin-top: -11px;
}

#powerTip.w:after, #powerTip.w:before {
  right: 100%;
}
#powerTip.w:after {
  border-right-color: #FFFFFF;
  border-width: 10px;
  top: 50%;
  margin-top: -10px;
}
#powerTip.w:before {
  border-right-color: #808080;
  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;
  }
}

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

table.markdownTable td, table.markdownTable th {
  border: 1px solid #2D4068;
  padding: 3px 7px 2px;
}

table.markdownTable tr {
}

th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
  background-color: #374F7F;
  color: #FFFFFF;
  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, samp {
  display: inline-block;
  direction: ltr;
}
/* @end */

u { text-decoration: underline; }

.doxy a[name="nested-classes"],
.doxy a[name="func-members"],
.doxy a[name="pub-methods"],
.doxy a[name="pub-static-methods"],
.doxy a[name="inherited"] {
  display: block;
}

@media all and (max-width: 960px) {
  table.fieldtable {
    display: block;
    border: none;
    width: 100%;
  }
  table.fieldtable tbody {
    display: block;
  }
  table.fieldtable tr {
    display: block;
    border: 1px solid #348cd2;
    border-bottom-width: 0;
    padding: 4px 8px;
  }
  table.fieldtable tr:first-child {
    padding: 0;
  }
  table.fieldtable tr:last-child {
    border-bottom-width: 1px;
  }

  table.fieldtable td { display: block; padding: 0; border: none; }
  table.fieldtable td:first-child { margin-bottom: 6px; }
  table.fieldtable th { display: block; border: none; }
  table.fieldtable th:last-child {
    display: none;
  }
  table.fieldtable p { padding: 0; }
}