/***********************************************************
 * Special AsciiDoc elements
 */
#header,
#content,
#footnotes,
#footer {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  margin-bottom: 0;
  max-width: 62.5em;
  *zoom: 1;
  position: relative;
  padding-left: 0.9375em;
  padding-right: 0.9375em;
}
#header {
  margin-top: 20px;
  margin-bottom: 10px;
}
#header > h1 {
  color: #333333;
  font-weight: normal;
}
#header #revnumber {
  text-transform: capitalize;
}
#header > #author + br {
  display: none;
}
#header > h1 + span {
  padding-left: 3px;
}
#header > br + span {
  padding-left: 3px;
}
#header > br + span.email:before {
  content: "\2013 \0020";
}
#header > br + span.author {
  padding-left: 0;
}
#header > br + span.author:before {
  content: ", ";
}
#toc {
  margin-bottom: 10px;
  padding-bottom: 5px;
}
#toc > ul {
  margin-left: 0.25em;
}
#toc ul ul {
  margin-left: 0;
  padding-left: 1.2em;
}
#toc ul.sectlevel0 > li > a {
  font-style: italic;
}
#toc ul.sectlevel0 ul.sectlevel1 {
  margin-left: 0;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
#toc > ul.sectlevel1 {
  padding-left: 0;
}
#toc ul {
  list-style-type: none;
}
#toctitle {
  margin-top: 20px;
  margin-bottom: 10px;
}
@media only screen and (min-width: 768px) {
  body.toc2 {
    padding-left: 15em;
    padding-right: 0;
  }
  #toc.toc2 {
    position: fixed;
    width: 15em;
    left: 0;
    top: 0;
    border-right: 1px solid #eeeeee;
    border-bottom: 0;
    z-index: 1000;
    padding: 1em;
    height: 100%;
    overflow: auto;
  }
  #toc.toc2 #toctitle {
    margin-top: 0;
    font-size: 1.2em;
  }
  #toc.toc2 > ul {
    font-size: .90em;
  }
  #toc.toc2 ul ul {
    margin-left: 0;
    padding-left: 1.2em;
  }
  #toc.toc2 ul.sectlevel0 ul.sectlevel1 {
    padding-left: 0;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
  }
  #toc.toc2 > ul.sectlevel1 {
    padding-left: 0;
  }
  body.toc2.toc-right {
    padding-left: 0;
    padding-right: 15em;
  }
  body.toc2.toc-right #toc.toc2 {
    border-right: 0;
    border-left: 1px solid #eeeeee;
    left: auto;
    right: 0;
  }
}
@media only screen and (min-width: 992px) {
  body.toc2 {
    padding-left: 20em;
    padding-right: 0;
  }
  #toc.toc2 {
    width: 20em;
  }
  #toc.toc2 #toctitle {
    font-size: 1.375em;
  }
  #toc.toc2 > ul {
    font-size: 0.95em;
  }
  #toc.toc2 ul ul {
    padding-left: 1.5em;
  }
  body.toc2.toc-right {
    padding-left: 0;
    padding-right: 20em;
  }
}
#content #toc {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
#content #toc blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
#content #toc a {
  text-decoration: none;
}
#content #toctitle {
  font-weight: bold;
  font-size: 1em;
  padding-left: 0.25em;
}
#footer {
  max-width: 100%;
  margin-top: 20px;
  background-color: #eeeeee;
  padding: 5px 10px;
}
#footer-text {
  color: #333333;
  line-height: 18px;
}
#content h1 > a.anchor,
h2 > a.anchor,
h3 > a.anchor,
#toctitle > a.anchor,
.sidebarblock > .content > .title > a.anchor,
h4 > a.anchor,
h5 > a.anchor,
h6 > a.anchor {
  position: absolute;
  width: 1em;
  margin-left: -1em;
  display: block;
  text-decoration: none;
  visibility: hidden;
  text-align: center;
  font-weight: normal;
}
#content h1 > a.anchor:before,
h2 > a.anchor:before,
h3 > a.anchor:before,
#toctitle > a.anchor:before,
.sidebarblock > .content > .title > a.anchor:before,
h4 > a.anchor:before,
h5 > a.anchor:before,
h6 > a.anchor:before {
  content: '\00A7';
  font-size: .85em;
  vertical-align: text-top;
  display: block;
  margin-top: 0.05em;
}
#content h1:hover > a.anchor,
h2:hover > a.anchor,
h3:hover > a.anchor,
#toctitle:hover > a.anchor,
.sidebarblock > .content > .title:hover > a.anchor,
h4:hover > a.anchor,
h5:hover > a.anchor,
h6:hover > a.anchor,
#content h1 > a.anchor:hover,
h2 > a.anchor:hover,
h3 > a.anchor:hover,
#toctitle > a.anchor:hover,
.sidebarblock > .content > .title > a.anchor:hover,
h4 > a.anchor:hover,
h5 > a.anchor:hover,
h6 > a.anchor:hover {
  visibility: visible;
}
#content h1 > a.link,
h2 > a.link,
h3 > a.link,
#toctitle > a.link,
.sidebarblock > .content > .title > a.link,
h4 > a.link,
h5 > a.link,
h6 > a.link {
  color: #337ab7;
  text-decoration: none;
}
#content h1 > a.link:hover,
h2 > a.link:hover,
h3 > a.link:hover,
#toctitle > a.link:hover,
.sidebarblock > .content > .title > a.link:hover,
h4 > a.link:hover,
h5 > a.link:hover,
h6 > a.link:hover {
  color: #262626;
}
.audioblock,
.imageblock,
.literalblock,
.listingblock,
.mathblock,
.stemblock,
.verseblock,
.videoblock {
  margin-bottom: 10px;
}
/***********************************************************
 * Titles and captions
 */
.admonitionblock td.content > .title,
.audioblock > .title,
.exampleblock > .title,
.imageblock > .title,
.listingblock > .title,
.literalblock > .title,
.stemblock > .title,
.openblock > .title,
.paragraph > .title,
.quoteblock > .title,
table.tableblock > .title,
.sidebarblock > .title,
.verseblock > .title,
.videoblock > .title,
.dlist > .title,
.olist > .title,
.ulist > .title,
.qlist > .title,
.hdlist > .title {
  text-align: left;
  font-weight: bold;
  margin-top: 0.5em;
  margin-bottom: 0.3em;
}
.tableblock > caption {
  text-align: left;
  font-weight: bold;
  white-space: nowrap;
  overflow: visible;
  max-width: 0;
}
/***********************************************************
 * Admonition block
 */
.admonitionblock > table {
  border: 0;
  background: none;
  width: 100%;
  margin-bottom: 10px;
}
.admonitionblock > table td.icon {
  width: 50px;
  vertical-align: top;
  height: 50px;
}
.admonitionblock > table td.icon img {
  max-width: none;
}
.admonitionblock > table td.icon .title {
  text-transform: uppercase;
}
.admonitionblock > table td.content {
  padding-left: 1em;
  padding-right: 1em;
  border-left: 5px solid #eeeeee;
}
.admonitionblock > table td.content > :last-child > :last-child {
  margin-bottom: 0;
}
/***********************************************************
 * Example and sidebar blocks
 */
.exampleblock > .content {
  padding: 10px 20px;
  margin: 0 0 20px;
  border-left: 5px solid #eeeeee;
  border-right: 1px solid #eeeeee;
  border-top: 1px solid #eeeeee;
  border-bottom: 1px solid #eeeeee;
  color: #333333;
}
.sidebarblock > .content {
  min-height: 20px;
  padding: 19px;
  margin-bottom: 20px;
  background-color: #f5f5f5;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
}
.sidebarblock > .content > .title {
  font-size: 18px;
  margin-bottom: 10px;
  line-height: 20px;
}
.sidebarblock > .content blockquote {
  border-color: #ddd;
  border-color: rgba(0, 0, 0, 0.15);
}
.exampleblock > .content > :last-child > :last-child,
.sidebarblock > .content > :last-child > :last-child,
.exampleblock > .content .olist > ol > li:last-child > :last-child,
.sidebarblock > .content .olist > ol > li:last-child > :last-child,
.exampleblock > .content .ulist > ul > li:last-child > :last-child,
.sidebarblock > .content .ulist > ul > li:last-child > :last-child,
.exampleblock > .content .qlist > ol > li:last-child > :last-child,
.sidebarblock > .content .qlist > ol > li:last-child > :last-child {
  margin-bottom: 0;
}
/***********************************************************
 * Literal block
 */
.literalblock pre,
.literalblock pre[class] {
  color: #333333;
  background-color: inherit;
  border: 0;
  padding: 0;
  word-wrap: break-word;
}
.literalblock pre.nowrap,
.literalblock pre[class].nowrap {
  overflow-x: auto;
  white-space: pre;
  word-wrap: normal;
}
.literalblock pre > code,
.literalblock pre[class] > code {
  display: block;
}
.literalblock + .colist {
  margin-top: -0.5em;
}
/***********************************************************
 * Code listing block
 */
.listingblock.prescrollable pre {
  max-height: 340px;
  overflow-y: auto;
}
.listingblock pre.nowrap {
  overflow-x: auto;
  white-space: pre;
  word-wrap: normal;
}
.listingblock pre > code {
  display: block;
}
.listingblock pre + .colist {
  margin-top: -0.5em;
}
@media only screen and (min-width: 1200px) {
  .listingblock pre {
    font-size: 10.4px;
  }
}
@media only screen and (min-width: 768px) {
  .listingblock pre {
    font-size: 11.7px;
  }
}
@media only screen and (min-width: 992px) {
  .listingblock pre {
    font-size: 13px;
  }
}
.listingblock pre.highlight {
  padding: 3px;
}
.listingblock pre.highlight > code {
  padding: 5px 10px;
}
.listingblock > .content {
  position: relative;
}
.listingblock:hover code[class*=" language-"]:before {
  text-transform: uppercase;
  font-size: 0.9em;
  color: #333333;
  position: absolute;
  top: 0.25em;
  right: 1.5em;
}
.listingblock.terminal pre .command:before {
  content: attr(data-prompt);
  padding-right: 0.5em;
  color: #333333;
}
.listingblock.terminal pre .command:not([data-prompt]):before {
  content: '$';
}
.listingblock:hover code.asciidoc:before {
  content: "asciidoc";
}
.listingblock:hover code.clojure:before {
  content: "clojure";
}
.listingblock:hover code.css:before {
  content: "css";
}
.listingblock:hover code.groovy:before {
  content: "groovy";
}
.listingblock:hover code.html:before {
  content: "html";
}
.listingblock:hover code.java:before {
  content: "java";
}
.listingblock:hover code.javascript:before {
  content: "javascript";
}
.listingblock:hover code.python:before {
  content: "python";
}
.listingblock:hover code.ruby:before {
  content: "ruby";
}
.listingblock:hover code.scss:before {
  content: "scss";
}
.listingblock:hover code.xml:before {
  content: "xml";
}
.listingblock:hover code.yaml:before {
  content: "yaml";
}
/***********************************************************
 * Quote block
 */
.quoteblock {
  padding: 10px 20px;
  margin: 0 0 20px;
  font-size: 17.5px;
  border-left: 5px solid #eeeeee;
}
.quoteblock blockquote {
  padding: 0 0 0.25em 0;
  border: 0;
}
.quoteblock blockquote > .paragraph:not(:last-child) {
  margin-bottom: 10px;
}
.quoteblock .attribution {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
  margin-top: -0.25em;
  padding-bottom: 0.25em;
  text-align: right;
}
.quoteblock .attribution br {
  display: none;
}
.quoteblock .attribution cite {
  display: block;
}
/***********************************************************
 * Verse block
 */
.verseblock {
  padding: 10px 20px;
  margin: 0 0 20px;
  font-size: 17.5px;
  border-left: 5px solid #eeeeee;
}
.verseblock pre {
  padding: 0 0 0.25em 0;
  border: 0;
  color: #333333;
  background-color: #ffffff;
  font-size: 14px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.verseblock pre > .paragraph:not(:last-child) {
  margin-bottom: 10px;
}
.verseblock .attribution {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777777;
  margin-top: -0.25em;
  padding-bottom: 0.25em;
  text-align: right;
}
.verseblock .attribution br {
  display: none;
}
.verseblock .attribution cite {
  display: block;
}
/***********************************************************
 * Overrides for Pygments default styles
 */
table.pyhltable {
  border: 0;
  margin-bottom: 0;
}
table.pyhltable td {
  vertical-align: top;
  padding-top: 0;
  padding-bottom: 0;
}
table.pyhltable td.code {
  padding-left: .75em;
  padding-right: 0;
}
.highlight.pygments .lineno,
table.pyhltable td:not(.code) {
  color: #333333;
  padding-left: 0;
  padding-right: .5em;
  border-right: 1px solid #eeeeee;
}
.highlight.pygments .lineno {
  display: inline-block;
  margin-right: .25em;
}
table.pyhltable .linenodiv {
  background-color: transparent !important;
  padding-right: 0 !important;
}
/***********************************************************
 * Tables
 */
table.tableblock {
  border: 1px solid #dddddd;
  margin-bottom: 10px;
}
table.tableblock > thead > tr > th,
table.tableblock > tbody > tr > th,
table.tableblock > tfoot > tr > th,
table.tableblock > thead > tr > td,
table.tableblock > tbody > tr > td,
table.tableblock > tfoot > tr > td {
  border: 1px solid #dddddd;
  padding: 4px;
}
table.tableblock > thead > tr > th,
table.tableblock > thead > tr > td {
  border-bottom-width: 2px;
}
table.tableblock td .paragraph:last-child p > p:last-child,
table.tableblock th > p:last-child,
table.tableblock td > p:last-child {
  margin-bottom: 0;
}
table.tableblock.grid-none td,
table.tableblock.grid-none th {
  border: 0;
}
table.tableblock.grid-rows td,
table.tableblock.grid-rows th {
  border-left: 0;
  border-right: 0;
}
table.tableblock.grid-cols td,
table.tableblock.grid-cols th {
  border-top: 0;
  border-bottom: 0;
}
table.tableblock.frame-topbot,
table.tableblock.frame-none {
  border-left: 0;
  border-right: 0;
}
table.tableblock.frame-sides,
table.tableblock.frame-none {
  border-top: 0;
  border-bottom: 0;
}
th.tableblock.halign-left,
td.tableblock.halign-left {
  text-align: left;
}
th.tableblock.halign-right,
td.tableblock.halign-right {
  text-align: right;
}
th.tableblock.halign-center,
td.tableblock.halign-center {
  text-align: center;
}
th.tableblock.valign-top,
td.tableblock.valign-top {
  vertical-align: top;
}
th.tableblock.valign-bottom,
td.tableblock.valign-bottom {
  vertical-align: bottom;
}
th.tableblock.valign-middle,
td.tableblock.valign-middle {
  vertical-align: middle;
}
td > div.verse {
  white-space: pre;
}
/***********************************************************
 * AsciiDoc list styles
 */
dl dd {
  margin-left: 1em;
}
dl dd:last-child,
dl dd:last-child > :last-child {
  margin-bottom: 0;
}
ol > li p,
ul > li p,
ul dd,
ol dd,
.olist .olist,
.ulist .ulist,
.ulist .olist,
.olist .ulist {
  margin-bottom: 10px;
}
ul.unstyled,
ol.unnumbered,
ul.checklist,
ul.none {
  list-style-type: none;
}
ul.unstyled,
ol.unnumbered,
ul.checklist {
  padding-left: 1.6em;
}
ul.checklist li > p:first-child > fa-check-square-o:first-child,
ul.checklist li > p:first-child > input[type="checkbox"]:first-child {
  margin-right: 0.25em;
}
ul.checklist li > p:first-child > input[type="checkbox"]:first-child {
  position: relative;
  top: 1px;
}
ul.inline {
  margin: 0 auto 0.625em auto;
  margin-left: -1.375em;
  margin-right: 0;
  padding: 0;
  list-style: none;
  overflow: hidden;
}
ul.inline > li {
  list-style: none;
  float: left;
  margin-left: 1.375em;
  display: block;
}
ul.inline > li > * {
  display: block;
}
.unstyled dl dt {
  font-weight: normal;
  font-style: normal;
}
ol.arabic {
  list-style-type: decimal;
}
ol.decimal {
  list-style-type: decimal-leading-zero;
}
ol.loweralpha {
  list-style-type: lower-alpha;
}
ol.upperalpha {
  list-style-type: upper-alpha;
}
ol.lowerroman {
  list-style-type: lower-roman;
}
ol.upperroman {
  list-style-type: upper-roman;
}
ol.lowergreek {
  list-style-type: lower-greek;
}
.hdlist > table,
.colist > table {
  border: 0;
  background: none;
}
.hdlist > table > tbody > tr,
.colist > table > tbody > tr {
  background: none;
}
td.hdlist1 {
  padding-right: .8em;
  font-weight: bold;
}
td.hdlist1,
td.hdlist2 {
  vertical-align: top;
}
.colist > table tr > td:first-of-type {
  padding: 0 .8em;
  line-height: 1;
}
.colist > table tr > td:last-of-type {
  padding: 0.5em 0;
}
.qanda > ol > li > p > em:only-child {
  color: #2e6da4;
}
/***********************************************************
 * Inline images
 */
.image.left,
.image.right {
  margin-top: 0.4em;
  margin-bottom: 0.4em;
  display: inline-block;
  line-height: 0;
}
.image.left.thumb,
.image.right.thumb {
  margin-top: 0.4em;
  margin-bottom: 0em;
}
.image.left {
  float: left;
  margin-right: 0.8em;
}
.image.right {
  float: right;
  margin-left: 0.8em;
}
.image.thumb img {
  display: block;
  padding: 4px;
  margin-bottom: 20px;
  line-height: 1.42857143;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 4px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
  margin-bottom: 10px;
  text-decoration: none;
}
.image.thumb img > img,
.image.thumb img a > img {
  margin-left: auto;
  margin-right: auto;
}
a.image.thumb img:hover,
a.image.thumb img:focus,
a.image.thumb img.active {
  border-color: #337ab7;
}
.image.thumb img .caption {
  padding: 9px;
  color: #333333;
}
.thumb {
  line-height: 0;
  display: inline-block;
}
a.image img:hover,
a.image img:focus,
a.image img:active {
  border-color: #23527c;
}
/***********************************************************
 * Image block
 */
.imageblock.left,
.imageblock[style*="float: left"] {
  margin: 0.8em 0.8em 10px 0;
}
.imageblock.right,
.imageblock[style*="float: right"] {
  margin: 0.8em 0 10px 0.8em;
}
.imageblock > .title {
  margin-bottom: 0;
}
.imageblock.thumb img {
  display: block;
  padding: 4px;
  line-height: 1.42857143;
  background-color: #ffffff;
  border: 1px solid #dddddd;
  border-radius: 4px;
  -webkit-transition: border 0.2s ease-in-out;
  -o-transition: border 0.2s ease-in-out;
  transition: border 0.2s ease-in-out;
  margin-bottom: 20px;
}
.imageblock.thumb img > img,
.imageblock.thumb img a > img {
  margin-left: auto;
  margin-right: auto;
}
a.imageblock.thumb img:hover,
a.imageblock.thumb img:focus,
a.imageblock.thumb img.active {
  border-color: #337ab7;
}
.imageblock.thumb img .caption {
  padding: 9px;
  color: #333333;
}
/***********************************************************
 * AsciiDoc footnote styles
 */
span.footnote,
span.footnoteref {
  vertical-align: super;
  font-size: 12px;
}
span.footnote a,
span.footnoteref a {
  text-decoration: none;
}
#footnotes {
  padding-top: 0.25em;
  padding-bottom: 0.25em;
  margin-bottom: 10px;
}
#footnotes hr {
  width: 20%;
  min-width: 1.5em;
  margin: -0.25em 0 0.75em 0;
  border-width: 1px 0 0 0;
}
#footnotes .footnote {
  padding: 0 0.25em;
  line-height: 1.3;
  font-size: 12px;
  margin-left: 1.2em;
  text-indent: -1.2em;
  margin-bottom: .2em;
}
#footnotes .footnote a:first-of-type {
  font-weight: bold;
  text-decoration: none;
}
#footnotes .footnote:last-of-type {
  margin-bottom: 0;
}
#content #footnotes {
  margin-top: -10px;
  margin-bottom: 0;
  padding: 1em 0;
}
.gist .file-data > table {
  border: none;
  background: #fff;
  width: 100%;
  margin-bottom: 0;
}
.gist .file-data > table td.line-data {
  width: 99%;
}
/***********************************************************
 * AsciiDoc built-in roles
 */
div.unbreakable {
  page-break-inside: avoid;
}
.big {
  font-size: larger;
}
.underline {
  text-decoration: underline;
}
.overline {
  text-decoration: overline;
}
.line-through {
  text-decoration: line-through;
}
.aqua {
  color: #00bfbf;
}
.aqua-background {
  background-color: #00fafa;
}
.black {
  color: black;
}
.black-background {
  background-color: black;
}
.blue {
  color: #0000bf;
}
.blue-background {
  background-color: #0000fa;
}
.fuchsia {
  color: #bf00bf;
}
.fuchsia-background {
  background-color: #fa00fa;
}
.gray {
  color: #606060;
}
.gray-background {
  background-color: #7d7d7d;
}
.green {
  color: #006000;
}
.green-background {
  background-color: #007d00;
}
.lime {
  color: #00bf00;
}
.lime-background {
  background-color: #00fa00;
}
.maroon {
  color: #600000;
}
.maroon-background {
  background-color: #7d0000;
}
.navy {
  color: #000060;
}
.navy-background {
  background-color: #00007d;
}
.olive {
  color: #606000;
}
.olive-background {
  background-color: #7d7d00;
}
.purple {
  color: #600060;
}
.purple-background {
  background-color: #7d007d;
}
.red {
  color: #bf0000;
}
.red-background {
  background-color: #fa0000;
}
.silver {
  color: #909090;
}
.silver-background {
  background-color: #bcbcbc;
}
.teal {
  color: #006060;
}
.teal-background {
  background-color: #007d7d;
}
.white {
  color: #bfbfbf;
}
.white-background {
  background-color: #fafafa;
}
.yellow {
  color: #bfbf00;
}
.yellow-background {
  background-color: #fafa00;
}
/*
 * This is based on Dan Allen's _awesome-icons.scss 
 * https://github.com/asciidoctor/asciidoctor-stylesheet-factory/tree/master/sass/components
 */
span.icon > .fa {
  cursor: default;
}
.admonitionblock td.icon [class^="fa icon-"]:before {
  font-size: 2.5em;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  cursor: default;
}
.admonitionblock td.icon .icon-note:before {
  content: "\f05a";
  color: #5bc0de;
}
.admonitionblock td.icon .icon-tip:before {
  content: "\f0eb";
  color: #337ab7;
}
.admonitionblock td.icon .icon-warning:before {
  content: "\f071";
  color: #f0ad4e;
}
.admonitionblock td.icon .icon-caution:before {
  content: "\f06d";
  color: #d9534f;
}
.admonitionblock td.icon .icon-important:before {
  content: "\f06a";
  color: #5cb85c;
}
.conum {
  display: inline-block;
  color: white !important;
  background-color: black;
  -webkit-border-radius: 100px;
  -moz-border-radius: 100px;
  border-radius: 100px;
  text-align: center;
  width: 20px;
  height: 20px;
  font-size: 12px;
  font-weight: bold;
  line-height: 20px;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  position: relative;
  top: -2px;
  letter-spacing: -1px;
}
.conum * {
  color: white !important;
}
.conum + b {
  display: none;
}
.conum:after {
  content: attr(data-value);
}
.conum:not([data-value]):empty {
  display: none;
}
