body{
    overflow-x: hidden;
    max-width: 100%;
}
.bs-callout {
    padding: 20px;
    margin: 20px 0;
    border: 1px solid #eee;
    border-left-width: 5px;
    border-radius: 3px;
}
.bs-callout h4 {
    margin-top: 0;
    margin-bottom: 5px;
}
.bs-callout p:last-child {
    margin-bottom: 0;
}
.bs-callout code {
    border-radius: 3px;
}
.bs-callout+.bs-callout {
    margin-top: -5px;
}
.bs-callout-default {
    border-left-color: #777;
}
.bs-callout-default h4 {
    color: #777;
}
.bs-callout-primary {
    border-left-color: #428bca;
}
.bs-callout-primary h4 {
    color: #428bca;
}
.bs-callout-success {
    border-left-color: #5cb85c;
}
.bs-callout-success h4 {
    color: #5cb85c;
}
.bs-callout-danger {
    border-left-color: #d9534f;
}
.bs-callout-danger h4 {
    color: #d9534f;
}
.bs-callout-warning {
    border-left-color: #f0ad4e;
}
.bs-callout-warning h4 {
    color: #f0ad4e;
}
.bs-callout-info {
    border-left-color: #5bc0de;
}
.bs-callout-info h4 {
    color: #5bc0de;
}

.gi-2x{font-size: 2em;}
.gi-3x{font-size: 3em;}
.gi-4x{font-size: 4em;}
.gi-5x{font-size: 5em;}

.breadcrumb > .active {color: #777 !important;}

/* make room for the nav bar */
h1[id],
h2[id],
h3[id],
h4[id],
h5[id],
h6[id],
dt[id]{
padding-top: 60px;
margin-top: -40px
}

.post-content img {
    margin: 12px 0px 3px 0px;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.post-content video {
    margin: 12px 0px 3px 0px;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.post-content ol li, .post-content ul li {
    margin: 10px 0px;
}

.pageSummary {
    font-size:13px;
    display:block;
    margin-bottom:15px;
    padding-left:20px;
}

.post-summary {
    margin-bottom:12px;
}

.bs-example{
    margin: 20px;
}

.breadcrumb li {
    color: gray;
}

table {
    background-color: transparent;
}
caption {
    padding-top: 8px;
    padding-bottom: 8px;
    color: #777;
    text-align: left;
}
th {
    text-align: left;
}
table {
    max-width: 90%;
    margin-bottom: 20px;
    border: 1px solid #dedede;
}

table > thead > tr > th,
table > tbody > tr > th,
table > tfoot > tr > th,
table > thead > tr > td,
table > tbody > tr > td,
table > tfoot > tr > td {
    padding: 8px;
    line-height: 1.42857143;
    vertical-align: top;
    border-top: 1px solid #ddd;
}
table > thead > tr > th {
    vertical-align: bottom;
    border-bottom: 2px solid #ddd;
    text-transform: none;
    background-color: #777;
    color: white;
    text-align: left;
}
table > caption + thead > tr:first-child > th,
table > colgroup + thead > tr:first-child > th,
table > thead:first-child > tr:first-child > th,
table > caption + thead > tr:first-child > td,
table > colgroup + thead > tr:first-child > td,
table > thead:first-child > tr:first-child > td {
    border-top: 0;
}

table > tbody > tr:nth-of-type(odd) {
    background-color: #f9f9f9;
}

table col[class*="col-"] {
    position: static;
    display: table-column;
    float: none;
}
table td[class*="col-"],
table th[class*="col-"] {
    position: static;
    display: table-cell;
    float: none;
}

table tr td {
    hyphens: auto;
}

p.external a {
    text-align:right;
    font-size:12px;
    color: #0088cc;
    display:inline;
}

#definition-box-container div a.active {
    font-weight: bold;
}
p.post-meta {font-size: 80%; color: #777;}

.entry-date{font-size:14px;font-size:0.875rem;line-height:1.71429;margin-bottom:0;text-transform:uppercase;}

/* search area */
#search-demo-container ul#results-container {
    list-style: none;
    font-size: 12px;
    background-color: white;
    position: absolute;
    top: 40px;
    left: 20px;
    z-index: -1;
    width: 300px;
    border-left: 1px solid #dedede;
}

ul#results-container a {
    background-color: transparent;
}

ul#results-container a:hover {
    color: black;
}
/* end search */

.filter-options {
    margin-bottom: 20px;
}
.filter-options button {
    margin: 3px;
}

div#toc ul li {
    margin: 8px 0px 8px 22px;
    font-size: 90%;
    list-style: square;
}
div#toc ul {
    background-color: whitesmoke;
    padding: 5px;
    border-radius: 4px;
    max-width: 600px;
    color: gray;
}

div#toc ul li ul {
    padding-left:8px;
}

div#toc ul li ul li::before {
    content: "–  ";
}

div#toc >ul::before {
    content: "Table of Contents";
    font-weight: 500;
    color: #555;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
    width:70px;
    padding-top:20px;
    padding-bottom:20px;
    padding-left:10px;
}

li.dropdownActive a {
    font-weight: bold;
}

.post-content a.fa-rss {
    color: orange;
}

.post-content .rssfeedLink {
    color: #248EC2;
}

footer {
    font-size: smaller;
}

/* FAQ page */
#accordion .card-header {
    font-size: 12px;
}

a.accordion-toggle, a.accordion-collapsed {
    font-size: 14px;
    text-decoration: none;
}

span.projectTitle {
    font-weight: 500;
}

.footer {
    text-align: right;
}

.footerMeta {
    background-color: whitesmoke;
    padding: 10px;
    max-width: 250px;
    border-radius: 4px;
    margin-top: 50px;
    font-style:italic;
    font-size:12px;
}

img.screenshotSmall {
    max-width: 300px;
}

dl dt p {
    margin-left:20px;
}

dl dd {
    margin-top:10px;
    margin-bottom:10px;
}

dl.dl-horizontal dd {
    padding-top: 20px;
}

figcaption {
    padding-bottom:12px;
    padding-top:6px;
    max-width: 90%;
    margin-bottom:20px;
    font-style: italic;
    color: gray;
}

.testing {
    color: orange;
}

.preference {
    color: red;
}

table.dataTable thead {
    background-color: #444;
}
table td {
    hyphens: auto;
}

section table tr.success {
    background-color: #dff0d8 !important;
}

table tr.info {
    background-color: #d9edf7 !important;
}

section table tr.warning, table tr.testing, table tr.testing > td.sorting_1 {
    background-color: #fcf8e3 !important;
}
section table tr.danger, table tr.preference, table tr.preference > td.sorting_1 {
    background-color: #f2dede !important;
}

.orange {
    color: orange;
}

table.profile thead tr th {
    background-color: #248ec2;
}

table.request thead tr th {
    background-color: #ED1951;
}

.audienceLabel {
    margin: 10px;
    float: right;
    border:1px solid #dedede;
    padding:7px;
}

.prefaceAudienceLabel {
    color: gray;
    text-align: center;
    margin:5px;
}
span.myLabel {
    padding-left:10px;
    padding-right:10px;
}

button.cursorNorm {
    cursor: default;
}

a.dropdown-toggle {
    margin-left: 10px;
}

hr.faded {
    border: 0;
    height: 1px;
    background-image: linear-gradient(to right, rgba(0,0,0,0), rgba(0,0,0,0.75), rgba(0,0,0,0));
}

hr.shaded {
    height: 12px;
    border: 0;
    margin-top: 70px;
    background: white;
    width: 100%;
    margin-bottom: 10px;
}

.fa-6x{font-size:900%;}
.fa-7x{font-size:1100%;}
.fa-8x{font-size:1300%;}
.fa-9x{font-size:1500%;}
.fa-10x{font-size:1700%;}

i.border {
    padding: 10px 20px;
    background-color: whitesmoke;
}

a[data-bs-toggle] {
    color: #248EC2;
}


a.fa.fa-envelope-o.mailto {
    font-weight: 600;
}

h3 {color: #ED1951; font-weight:normal; font-size:130%;}
h4 {color: #808080; font-weight:normal; font-size:120%; font-style:italic;}

.alert, .callout {
    overflow: hidden;
}

.nav-tabs > .nav-item > .nav-link.active,
.nav-tabs > .nav-item > .nav-link.active:hover,
.nav-tabs > .nav-item > .nav-link.active:focus {
    background-color: #248ec2;
    color: white;
}

ol li ol li {list-style-type: lower-alpha;}
ol li ul li {list-style-type: disc;}

li img {clear:both;}

div#toc ul li ul li {
    list-style-type: none;
    margin: 5px 0px 0px 0px;
}

.tab-content {
    padding: 15px;
    padding-top: 4px;
    padding-bottom: 4px;
    background-color: #FAFAFA;
}

span.tagTitle {font-weight: 500;}

li.activeSeries {
    font-weight: bold;
}

.seriesContext .dropdown-menu li.active {
    font-weight: bold;
    margin-left: 43px;
    font-size:18px;
}

.alert-warning {
    color: #444;
}

div.alert code, h2 code {
    background-color: transparent !important;
}
.alert a {
    text-decoration: underline;
}

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

.tabLabel {
    font-weight: normal;
}

hr {
    background: #999;
    margin: 30px 0px;
    width: 90%;
    margin-left: auto;
    margin-right: auto;
}

button.cursorNorm {
    cursor: pointer;
}

h2 {
    font-size:24px;
    line-height:29px;
}
span.otherProgrammingLanguages {
    font-style: normal;
}

a[data-bs-toggle="tooltip"] {
    color: #649345;
    font-style: italic;
    cursor: default;
}

.seriesNext, .seriesContext {
    margin-top: 15px;
    margin-bottom: 15px;
}

.seriescontext ol li {
    list-style-type: upper-roman;
}

ol.series li {
    list-style-type: decimal;
    margin-left: 40px;
    padding-left: 0px;
}

.siteTagline {
    font-size: 200%;
    font-weight: bold;
    color: silver;
    font-family: monospace;
    text-align: center;
    line-height: 10px;
    margin: 20px 0px;
    display: block;
}

.versionTagline {
    text-align: center;
    margin-bottom: 20px;
    font-family: courier;
    color: #444;
    display:block;
}

span.muted {color: #666;}

table code {background-color: transparent;}

.highlight .err {
    color: #a61717;
    background-color: transparent !important;
}

table p {
    margin-top: 12px;
    margin-bottom: 12px;
}

pre, table code {
    white-space: pre-wrap;
    word-wrap: break-word;
}

pre {
    margin: 25px 0px;
}

#json-box-container pre {
    margin: 0px;
}

.video-js {
    margin: 30px 0px;
}

video {
    display: block;
    margin: 30px 0px;
    border: 1px solid #c0c0c0;
}

p.required, p.dataType {display: block; color: #c0c0c0; font-size: 80%; margin-left:4px;}

dd {margin-left:20px;}

.post-content img.inline {
    margin:0px;
    margin-bottom:6px;
}
.card-header {
    font-weight: bold;
}

.note code, .alert code, .warning code, div#toc code, h2 code, h3 code, h4 code {
    color: inherit;
    padding: 0px;
}

.alert {
    margin-bottom: 25px;
    margin-top: 25px;
}

a.accordion-toggle {
    font-style: normal;
}

span.red {
    color: red;
    font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
}

h3.codeExplanation {
    font-size:18px;
    font-style:normal;
    color: black;
    line-height: 24px;
}

span.soft {
    color: #c0c0c0;
}

.githubEditButton {
    margin-bottom:7px;
}

.endpoint {
    padding: 15px;
    background-color: #f0f0f0;
    font-family: courier;
    font-size: 110%;
    margin: 20px 0px;
    color: #444;
}

.parameter {
    font-family: courier;
    color: red !important;
}

.formBoundary {
    border: 1px solid gray;
    padding: 15px;
    margin: 15px 0px;
    background-color: whitesmoke;
}

@media (max-width: 990px) {
    #mysidebar {
        position: relative;
    }
}

@media (min-width: 1000px) {
    ul#mysidebar {
        width: 225px;
    }
}

@media (max-width: 900px) {
    ul#mysidebar {
        max-width: 100%;
    }
}

.col-md-9 img {
    max-width: 100%;
    max-height: 100%;
}

.post-content img {
    margin: 12px 0px 3px 0px;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
}

.videoThumbs img {
    float: left;
    margin:15px 15px 15px 0px;
    border: 1px solid #dedede;
}

*:hover > .anchorjs-link {
    transition: color .25s linear;
    text-decoration: none;
}

.kbCaption {
    color: white;
    background-color: #444;
    padding:10px;
}

/* this part adds an icon after external links, using FontAwesome */
a:not(.no-icon)[href^="http://"]:after, a:not(.no-icon)[href^="https://"]:after, a:not(.no-icon)[href^="ftp://"]:after {
    content: "\f35d";
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-style: normal;
    display: inline-block;
    text-decoration: none;
    padding-left: 3px;
}

/* Strip the outbound icon when this class is present */
a[href].noCrossRef::after,
a.no_icon:after {
    content:"" !important;
    padding-left: 0;
}

/* algolia search */
.search {
    text-align: left;
}
.search input {
    font-size: 20px;
    width: 300px;
}
.results {
    margin: auto;
    text-align: left;
}
.results ul {
    list-style-type: none;
    padding: 0;
}

div.results {
    position: absolute;
    background-color: white;
    width: 100%;
}

.post-meta {
    font-size: 14px;
    color: #828282;
}

.post-link {
    font-size: 22px;
}

.post-list p {
    margin: 10px 0px;
}

time {
    margin-right: 10px;
}

p.post-meta time {
    margin-right: 0px;
}

span.badge.bg-secondary {
    background-color: gray !important;
}

span.badge.bg-warning {
    background-color: #f0ad4e !important;
}

a code {
    color: #248EC2;
}

code + a > code {
    margin-left: -7px;
}

table th code {
    color: white;
}

ol li ul li ol li {
    list-style: decimal;
}

ol li ul li ol li ul li{
    list-style: disc;
}

.post-content table th {
    vertical-align: top;
}

table thead th code.highlighter-rouge {
    background-color: transparent;
}

.box {
    padding: 10px;
    border: 1px solid #888;
    width: 100px;
    height: 80px;
    background-color: #f5f5f5;
    font-family: Arial;
    font-size: 12px;
    hyphens: auto;
    float: left;
}

.box:hover {
    background-color: #f0f0f0;
}

#userMap {
    overflow-x: auto;
    overflow-y: auto;
    padding: 20px;
    min-width: 770px;
}

#userMap .active {
    background-color: #d6f5d6;
    border:1px solid #555;
    font-weight: bold;
}

h2.userMapTitle {
    font-family: Arial;
}

#userMap a:hover {
    text-decoration: none;
}

div.arrow {
    max-width: 50px;
    margin-left: 15px;
    margin-right: 15px;
    font-size: 20px;
}

div.content {
    max-width: 110px
}

#userMap div.arrow, #userMap div.content {
    float: left;
}

.clearfix {
    clear: both;
}

#userMap div.arrow {
    position: relative;
    top: 30px;
}

.box1 {
    margin-left:0px;
}

button.btn.btn-secondary.btn-lg.modalButton1 {
    margin-left: -20px;
}

div.box.box1 {
    margin-left: -20px;
}

#userMap .btn-lg {
    width: 100px;
    height: 80px;
}

#userMap .complexArrow {
    font-size: 22px;
    margin: 0px 10px;
}

#userMap .btn-lg .active {
    background-color: #d6f5d6;
}

#userMap .btn-lg {
    white-space: pre-wrap;
    word-wrap: break-word;
    font-size: 14px;
}

h4.card-title {
    padding-top: 0px;
    margin-top: 0px;
}

/* News banner on pages other than the landing page */
.banner {
  padding: 15px 0;
}

/* --- FAQ Page Custom Component --- */
.faq-search-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.faq-search-input,
.faq-search-select {
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 8px;
}

.faq-search-input {
  min-width: 240px;
}

.faq-meta-text {
  margin: 0 0 8px 0;
  color: #666;
}

.faq-stats-text {
  margin: 0 0 16px 0;
  color: #666;
}

.faq-results-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.faq-empty-state {
  display: none;
  color: #666;
  padding: 16px 0;
  text-align: center;
}

/* ── Sidebar / Content gap ──────────────────────────────────── */
#tg-sb-sidebar {
  padding-right: 0 !important;
}

#tg-sb-content {
  padding-left: 2rem !important;
  border-left: none;
}

/* ── Content area left margin gap ───────────────────────────── */
.margin-left {
  padding-left: 2rem !important;
}

/* Content spacing */
#tg-sb-content {
  margin-top: 15px;
  padding-top: 20px;
}
.post-header {
  margin-top: 0;
  padding-top: 0;
}

/* ════════════════════════════════════════════════════════════
   GLOBAL DARK MODE BACKGROUND
════════════════════════════════════════════════════════════ */
[data-bs-theme="dark"] body {
    background-color: #121313 !important;
    color: #e0e0e0;
}

[data-bs-theme="dark"] .page-content,
[data-bs-theme="dark"] main,
[data-bs-theme="dark"] .container-fluid,
[data-bs-theme="dark"] #tg-sb-content {
    background-color: #121313 !important;
}