/*
Originates at https://modelearth.github.io/localsite/css/base.css 
Used in localsite, modelearth, io, neighborhood, trees
*/
:root {
    --header-height: 80px;  /* Define header height as CSS variable */
    --side-nav-width: 67px;

    --bg-primary: #F9FAFB;
    --bg-secondary: #FFFFFF;
    --bg-tertiary: #F3F4F6;
    --text-primary: #1A1A1A;
    --text-secondary: #6B7280;
    --text-muted: #9CA3AF;
    --accent-green: #10B981;
    --accent-blue: #3B82F6;
    --accent-orange: #F59E0B;
    --border-light: #E5E7EB;
    --border-medium: #D1D5DB;
    --input-border: #cbd5e1;
    --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --radius-sm: 6px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --border-radius: 12px;
    --sidebar-width-expanded: 67px;
    --sidebar-collapsed: 64px;
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
#side-nav {
  width: 62px;
  flex-shrink: 0;
}
.main-nav {
  flexXXX: 0 0 189px !important;
  width: 189px !important;
  flex-shrink: 0;
}
#side-nav-absolute::-webkit-scrollbar, #side-nav-content::-webkit-scrollbar {
    display: none;
}
.main-nav-full {
  width: 252px !important;
  flex-shrink: 0; /* Prevents the column from shrinking below 257px */
}
@media (max-width: 600px) {
  .main-nav {
    width:100% !important;
    flex: 2;
  }
  .main-nav-full {
    width:100% !important;
  }
  .chart-controls {
    width: 100%;
  }
  .chart-controls select {
    width: 100%;
  }
  #main-content .whichLinesHolder {
    display: block !important;
    width: 100%;
    margin-bottom: 10px;
  }
}
.sidebar-hidden #side-nav {
  width: 0px !important;
  display: none !important;
}
.dark {
    --bg-secondary: #555;
    --bg-tertiary: #555;
    --text-secondary: #6B7280; /* too light for icons on team/projects */
    --text-secondary: #bbb;
    --text-primary: #eee;
    --border-light: #aaa;
    --border-medium: #666;
}
@media (max-width: 600px) {
  :root {
      --header-height: 60px;
  }
  #side-nav-absolute {
    width:  100% !important;
    right: 0px !important;
  }
}
/* Also in base.css */
.flexbody {
    display: flex;
    height: 100vh;
    flex-direction: row;
}

/* Since pages in team don't have .flexbody in body tag. */
body {
    /*
    display: flex;
    height: 100vh;
    flex-direction: row;
    */
    -webkit-font-smoothing: antialiased;
}

header, footer {
    flex-shrink: 0;
}

@font-face {
  font-family:'Amaze';font-weight:300;
  src:url("/localsite/css/fonts/ember.woff2") format("woff2"), url("/localsite/css/fonts/ember.woff") format("woff")
}
* {box-sizing: border-box;}
/* CAUSED SPACE in map/index.html WHEN #tableSide DIV EMPTY - SHOULD NOT NEED
.hideMobile, .hideMobileWide {display:inline-block;}
*/
.showMobile, .showMobileWide {display:none;}
.showGit {display:none;}
.hideGit {display:inline-block;}
.local, .localonly {
  background-image: linear-gradient(45deg, rgba(0,0,0,0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(0,0,0,0.1) 25%, transparent 25%), linear-gradient(45deg, transparent 95%, rgba(0,0,0,0.1) 75%), linear-gradient(-45deg, transparent 95%, rgba(0,0,0,0.1) 75%);
  background-size: 3px 3px;
}
.dark .local, .dark .localonly {
  background-image: linear-gradient(45deg, rgba(250,250,250,0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(250,250,250,0.1) 25%, transparent 25%), linear-gradient(45deg, transparent 95%, rgba(250,250,250,0.1) 75%), linear-gradient(-45deg, transparent 95%, rgba(250,250,250,0.1) 75%);
}
.localonly {padding:20px; }
svg{max-width:none;} /* Fix for embedding material icon map points in Drupal */

@media (max-width: 800px) {
  .hideMobile {display:none;}
  .hideNarrow {display:none;} /* Not activated when rightSideTabs displayed */
  .showMobile {display:inline-block !important;}
}
@media (max-width: 1800px) {
  .bodyLeftMarginFull .hideMobileFull, .bodyLeftMarginList .hideMobileFull, .bodyMargin .hideMobileFull, .bodyRightMargin .hideMobileFull {display:none;}
  .bodyLeftMarginFull .showMobileFull, .bodyLeftMarginList .showMobileFull, .bodyMargin .showMobileFull, .bodyRightMargin .showMobileFull {display:inline-block !important;}
}
@media (min-width: 801px) {
  .showWide {display:inline-block !important;}
}
@media (max-width: 900px) {
  .hideMobileWide {display:none;}
  .showMobileWide {display:inline-block;}
}
html,body { /* both are needed for map height in iframe */
  height: 100%;
}
body {
  background-color: rgb(250, 250, 250);
  margin: 0px;
  -webkit-font-smoothing: antialiased;
  font-family: 'Nunito Sans', Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: #333;
  line-heightX:0; /* prevents gaps betweet images, but 0 caused text to overlap on start and nav icons. */
}
#datascape {
  font-size: 0; /* prevents 19px tall blank space */
}
.dark {
  color: #eee;
  background-color: #333;
}
.bodyIconMargin {
  margin-left: 64px;
}
.bodyLeftMargin {
  margin-left: 220px;
}
.bodyLeftMarginList {
  margin-left: 380px;
}
.bodyLeftMarginFull {
  margin-left: 600px;
}
@media (max-width: 1000px) {
  .bodyLeftMargin #locationFilterHolder #filterLocations {
    padding-left: 30px;
  }
}
@media (max-width: 500px) {
  .bodyLeftMargin {
    margin-left: 0px;
  }
}
.bodyRightMargin {
  /* adds extra spec left of header following change to add nav.js */
  margin-right: 500px;
}
@media (max-width: 400px) {
  .bodyLeftMargin {
    margin-left: 0px;
  }
  .bodyRightMargin {
    margin-right: 0px;
  }
}
@media (max-width: 600px) {
  .content ul,
  .content ol {
    margin-left: 0;
    padding-left: 0;
    list-style-position: inside;
  }
  .content li {
    text-indent: -0.2em;
  }
}
@media (max-width: 1450px) { /* 1250px */
  .mobileView .hideMobile {
    display: none;
  }
  .mobileView .maintext {
    padding: 50px;
  }
  .mobileView .fullMobile {
    width: 100%;
  }
  .mobileView .floatright {
    width: 100%;
    margin-left: 0px;
    float: none;
  }
}
@media (max-width: 1500px) {
  .mobileView .hideMobileSooner {
    display: none;
  }
}
.rightside, .floatright {
  float:right;
  max-width:400px;
  margin-left:40px;
  margin-bottom:30px;
  /* font-size: 18px; */
}
@media (max-width: 1120px) {
  .rightside {
    max-width:auto;
    margin-left:0px;
    margin-bottom:30px;
    float:none;
  }
}
.roundedCorners {
  border-radius: 20px;
}
.floatLeft {
  float:left;
  margin-right:40px;
}
.floatRight {
  float:right;
  margin-left:40px;
}
@media (max-width: 800px) {
  .floatLeft {
    float:none !important;
    width:100% !important;
    margin-right:0px;
    margin-bottom:40px;
  }
  .floatRight {
    float:none !important;
    width:100% !important;
    margin-left:0px;
    margin-bottom:40px;
  }
}

@media (max-width: 800px) {
  .floatright {
    max-width:auto;
    margin-left:0px;
    margin-bottom:30px;
    float:none;
  }
  .fullMobile {
    float:none;
    width:100% !important;
    max-width:100% !important;
    margin-left:0px !important;
  }
}
@media (max-width: 2200px) {
  #flexwrapper {
    /*display: block;*/
  }
  .bodyLeftMarginFull.bodyRightMargin #mapHolder {
    float: left;
    width: 100%;
  }
  .bodyLeftMarginFull.bodyRightMargin #mapHolderInner {
    position: relative;
    width: 100%;
  }
}
@media (max-width: 1800px) {
  /* only hide if 2 classes on body */
  .bodyLeftMargin.bodyRightMargin .hideMobileSooner {
    display: none;
  }
  .bodyLeftMargin.bodyRightMargin .floatright, .bodyLeftMargin.bodyRightMargin .floatRight {
    float: none;
    margin-left: 0px;
    margin-bottom: 20px;
  }
  .bodyLeftMarginFull .fullNarrow, .bodyLeftMarginList .fullNarrow, .bodyRightMargin .fullNarrow {
    width: 100%;
  }
}
@media (max-width: 1400px) {
  #hublist {
    widthX: 100%; /* Messed with #mapHolder in map.css */
    padding-right: 0px;
  }
  .bodyLeftMarginFull #mapHolder {
    float: left;
    width: 100%;
  }
  .bodyLeftMarginFull #mapHolderInner {
    position: relative;
    width: 100%;
  }
}
@media (max-width: 1200px) {
  .bodyLeftMarginList #flexwrapper {
    display: block;
  }
}

/* Also in nav.css - allows #main-nav to extend to footer */
.flexbody {
    display: flex;
    height: 100vh;
    flex-direction: row;
}

main, .flexmain {
    flex-grow: 1; /* for footer */
}
header, main, .flexfooter {
    /* Resulted in massive images */
    /* flex-shrink: 0; */ /* prevent shrinking if content is larger than the screen. */
}
#main-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}
/* Ensure proper footer positioning */
#main-layout {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

#main-container {
  flex: 1 0 auto;
  /* Let content determine height naturally, no forced min-height */
}

#main-content {
  width: 100%;
}

table {
  border-spacing: 0px;
}
td {
  padding: 0px;
  vertical-align: top;
}
textarea {
  border-color: #777;
}
.dark textarea {
  color: #eee;
  background-color: #222;
  border-color: #222;
  border-left: 4px solid green;
  border-radius: 6px;
}
.textInput {
  font-size: 15px;
  box-sizing: border-box;
  height: 34px;
  min-height: 34px;
  padding-left: 8px;
  border: 1px solid #ccc;
  border-radius: 6px;
}
/* Lighter: #4091dd */
.content p {
  margin-top: 0px;
  margin-bottom: 16px;
  /*
  font-family: 'Open Sans', 'Helvetica Neue', Arial, Helvetica, sans-serif;
  font-family: "Raleway", "Helvetica Neue", Helvetica, Arial, sans-serif;
  */
  font-sizeX: 15px;
}
h1,h2,h3,h4 {
  font-family: Raleway;
  line-height: 1.5;
}
h2, h3, h4 {
    font-family: 'PT Sans', sans-serif;
    font-family: Raleway, Lato, "Helvetica Neue", Helvetica, "Lato", sans-serif;
}
h1 {
  font-weight: 300;
  color: #444;
  line-height: 1.3;
  margin-top: 10px;
  font-size: 31px;
  font-family: "Amaze", "Helvetica Neue", Helvetica, "Lato", sans-serif;
}
@container (max-width: 400px) {
  h1 {
    font-size: 24px;
  }
}
.h1-home {
  font-size: 28pt;
  font-family: "Helvetica Neue", Helvetica, "Lato", sans-serif;
  font-weight: 200;
}
h2 {
  margin-top: 0px;
  font-weight: 500;
  font-weight: 800;
  font-size: 1.4em;
  padding-top: 12px;
  padding-bottom: 5px;
  border-bottom: 1px solid #ddd;
  margin-bottom: 18px;
  color: rgb(77, 82, 89);
  color: #333;
  overflow: auto;
}
.flexmain h2::before { /* Prevents hashtag h2 links from being covered by site header */
  display: block; 
  content: " "; 
  margin-top: -120px; 
  height: 120px; 
  visibility: hidden; 
  pointer-events: none;
}
/* Prevents hashtag section links from being covered by site header */
/* test and maybe reactivate */
.flexmain section::before { 
  display: block; 
  content: " "; 
  margin-top: -120px; 
  height: 120px; 
  visibility: hidden; 
  pointer-events: none;
}
#footer .container section::before { /* Correct Drupal Footer */
  margin-top: auto;
  height: auto;
}
h3 {
  font-weight: 800; 
  font-size: 1.1em;
  line-height: 1.3em;
  margin-top: 25px;
  margin-bottom: 16px;
  color: #000;
  /* font-family: "Amaze", 'PT Sans', sans-serif; */
}
h4 {
  margin-top: 20px;
  font-weight: 600;
  font-size: 1em;
  line-height: 26px;
  margin-top: 15px;
  margin-bottom: 12px;
  color: #333;
}
h5 {
  font-weight: 300;
  font-size: 1.1em;
  margin-top: 20px;
  margin-bottom: 10px;
}
h6 {
  font-weight: 600;
  font-size: 0.95em;
  color: #333;
  margin-top: 10px;
  margin-bottom: 0px;
}
@media (max-width: 400px) {
  h1 {
    margin-top: 0px;
  }
}


.dark h1, .dark h2, .dark h3, .dark h4, .dark h5, .dark h6 {
  color: #ccc;
}

/* hacks for useeio widgets */
.dark .MuiTypography-h6 {
  color: #ccc;
}
.dark .MuiTypography-body1 {
  color: #ccc;
}
.dark .MuiInputBase-root {
  color: #fff;
}
.dark .MuiIconButton-root {
  color: #fff;
}
.dark .sector-list a, .dark .sector-list a:visited {
  color: #fff;
}
.dark .sector-list .indicator-group {
  color: #bbb;
}
.dark .tabulator .tabulator-header, .dark .tabulator .tabulator-footer {
  background-color: #333;
  border-bottom: 1px solid transparent;
}
.dark .tabulator .tabulator-tableholder .tabulator-table {
  background-color: #333;
  color: #fff;
}
.dark .tabulator .tabulator-header .tabulator-col {
  background-color: #000;
  color: #fff;
}
.dark .tabulator .tabulator-header .tabulator-col:hover {
  background-color: #555;
}
sup {
  line-height: 0.8em;
  font-size: 0.6em;
}
hr {
    border: 0px;
    border-top: 1px solid #ddd;
}
details {
  display:inline;
}
summary { /* a button */
  display: inline;
  padding:0 5px;
  floatX:left;
  margin-right:8px;
  border: 1px solid #ccc;
}
summary::-webkit-details-marker {
  display: none
}
@media print 
{
  .noprint {display: none; }
  .pagebreak {
      clear: both;
      page-break-after: always;
  }
}
@media screen {.printonly {display: none; }}


.table-cell, .table-cell-mobile {
  display: table-cell;
  vertical-align: top;
  position: relative; /* Allows menu rollover/popups to overlap adjacent cell */
}
.dark .table-cell, .dark .table-cell-mobile {
  background-colorX: #111;
}
@media (max-width: 800px) {
  .table-cell {
    display: block;
    float: left;
  }
}

.flex-row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
}
.flex-column {
  display: flex;
  flex-direction: column;
  flex-basis: 100%;
  flex: 1;
  overflow: auto;
}
.flexright {
  max-width: 350px;
  padding-left: 40px;
}
@media (max-width: 500px) {
  .mobileWide {
    width: 100%;
    display: block;
  }
  .flexright {
    max-width: 100%;
    padding-left: 0px;
    display: block;
  }
}
.num {
  float: left;
  padding-right: 12px;
}
.by {
  display: none;
}
#header {
	z-index: 10001;
}
.displayOnload {
  display:block !important; /* hidden until css loaded */
}
.content, #observablehq-center {
  max-width: 1100px;
  margin: 0 auto;
  padding-left: 18px;
  padding-right: 18px;
  font-size: 15px;
  line-height: 1.55em;
  /* position: relative; */  /* overlapped top filters */
}
.content pre {
  line-height: 1.25em; /* prevents gaps in tree chart */
}
#observablehq-toc nav {
  margin-top: 148px; /* when showsearch */
  margin-top: 100px;
  padding-top: 18px;
}
@media (min-width: 1600px) {
	.content {
	  max-width: 1500px;
	}
}
.contentpadding, #observablehq-center {
  padding-top: 25px;
  padding-left: 30px;
  padding-right: 30px;
  padding-bottom: 30px;
}
.content a, .contentfull a, .content-color a {
  text-decoration: none;
}
.content a:link, .content a:visited, .contentfull a:link, .contentfull a:visited, .content-color a:link, .content-color a:visited {
  color: #0366d6;
}
.dark .content a:link, .dark .content a:visited, .dark .content-color a:link, .dark .content-color a:visited  {
  color: #acb;
}
.lite { /* Also in DS */
  background-color: #eee;
  color:  #333;
}
.dark .lite {
  background-color: #555;
  background: #555;
  color:  #eee;
}
.liteDiv a {
  color: #333;
}
/* Mix of light and dark text - left side nav */
/*
.greyDiv { 
  color: #fff;
  background-color: #b1b1b1;
}
.greyDiv a:link, .greyDiv a:visited, .content .greyDiv a:link, .content .greyDiv a:visited {
  color: #fff;
  text-decoration: none;
}
.greyDiv b, .greyDiv .maincat, .greyDiv b a:link, .greyDiv b a:visited, .content .greyDiv b, .content .greyDiv .maincat, .content .greyDiv b a:link, .content .greyDiv b a:visited {
  color: #333;
}
.greyDiv b a:hover, .greyDiv b a:visited:hover {
  color: #fff;
}
.dark .greyDiv {
  background-color: #444 !important;
  border: 0px;
}
.dark .greyDiv a:link, .greyDiv a:visited, .dark .content .greyDiv a:link, .dark .content .greyDiv a:visited {
  color: #fff;
}
.dark .greyDiv b, .dark .greyDiv .maincat, .dark .greyDiv b a, .dark .greyDiv b a:visited, .dark .content .greyDiv b, .dark .content .greyDiv .maincat, .dark .content .greyDiv b a, .dark .content .greyDiv b a:visited {
  color: #fff;
}
*/

.dark .greyDiv {
    color: #fff;
    background-color: #666 !important;
}

.litetext {
  color:#888;
}
.darktext {
  color:#333;
}
.dark .litetext {
  color:#fff;
}
.dark .darktext {
  color:#aaa;
}
.bodyLeftMargin .contentpadding {
  padding-left: 30px;
  padding-right: 30px;
}
.contentwide {
  max-width: 1400px;
  padding-left: 10px;
  padding-right: 10px;
}
.contentfull {
  max-width: 2000px;
}

@media (max-width: 1400px) {
  .contentwide {
    max-width: 1350px;
  }
}
@media (max-width: 1200px) {

  .content li {
    /* Caused 10+ to be half hidden. Tried overflow: visible */
    /* margin-left: -20px; */
  }
}
@media (max-width: 800px) {
  #headerbar .contentpadding {
    padding-leftX: 20px;
    padding-rightX: 0px;
  }
}
@media (max-width: 600px) {
  .contentpadding {
    padding-left: 30px;
    padding-right: 30px;
    min-width: 150px;
  }
}

.container {
  position: relative;
  margin: 0 auto;
  /* max-width: 1200px; */ /* makes video in rotation to short */ /* max-width will conflict with sites that use bootstrap */
  /* Conflicts with Drupal footer
  padding-left: 55px;
  padding-right: 55px;
  */
}
.container a {
  text-decoration: none;
}
.lead {
    font-family: 'PT Sans', sans-serif;
    font-weight: normal;
    color: rgb(66, 72, 79);
    font-size: 17px;
    font-weight: 100;
    line-height: 1.5;
}
.caption {
  font-size: 12.5px;
  margin-bottom:27px;
}

.pageColumns {
  overflowX: hidden; /* Allows bottom padding to apply after float:left columns */
  overflowX: scroll; /* Allows large number of naics columns to be viewed */
  margin-right:-30px;
  padding-bottom: 20px;
}
.pageColumn {
  width:33.33%;
  float:left;
  margin-bottom: 0px;
}
.mobileView .pageColumn {
  width:100%;
}
.full .pageColumn {
  width:100%;
}
.two .pageColumn {
  width:50%;
}
.pageColumnInside {
  position: relative;
  margin-right:40px;
  line-height: 1.55;
  border: 1px solid rgba(255,255,255,0);
  font-size: 16px;
  padding-top: 14px;
  padding-bottom: 18px;
  /* overflow: hidden; */ /* Covers indicator bar */
}
.pageColumns > .pageColumn:last-child {
	margin-right:0px;
}
.pageColumnTitle {
  font-size: 1.27em;
  line-height: 1.3em;
  margin-top: 20px;
  margin-bottom: 16px;
}
@media (max-width:980px) {
  .topcolumns {
    margin-bottom: 20px;
  }
  .pageColumn, .two .pageColumn {
    width:100%;
    float:none;
  }
  .pageColumnOverflow {
    width:100%;
  }
  .pageColumnInside {
    margin-right: 0px;
    padding-top: 0px;
    padding-bottom: 0px;
  }
}
.contentArea {
    margin: 0px; padding: 0px; 
    padding-left: 20px; padding-right: 20px;
    line-height: 1.4em;
}

.litePanel {
    background-color: #eee; /* also set .litePanelFadeOut 238 */
    overflow:auto;
}
.dark .litePanel {
  background-color: #444;
}
.litePanelFadeOut {
  margin-top:10px;
  position:absolute;
  bottom:0;
  left:0;
  right: 0;
  /* right:0; This may cover map zoom. Swicth to flex rows instead to put at bottom of #hublist */
  z-index:999;
  background-color:rgba(238, 238, 238, 0.7);
  background: linear-gradient(to bottom, rgba(238,238,238,0) 0%,rgba(238,238,238,1) 100%);
}
.dark .litePanelFadeOut {
  background-color:rgba(44,44,44,0.7);
  background: linear-gradient(to bottom, rgba(44,44,44,0) 0%,rgba(44,44,44,1) 100%);
}
mark {
  padding:4px 8px 4px 8px;
  background-color: #ffc;
}
code {
  background-color: #eee;
  padding: 2px  5px;
  overflow: scroll;
}
content .js, pre code, .codetext { /* Prevents .js from impacting js class within Drupal body tag */
  background-color: #eee;
  padding:15px;
  border-left: 4px solid #137AD1;
  display: block;
  unicode-bidi: embed;
  font-family: monospace;
  /* white-space: pre-wrap; */ /* Causes Drupal to have large empty div's at top */
}
.codetext {
  width:100%;
  overflow:auto;
  background-color: #eee;
  padding: 15px;
  border: none;
  border-left: 4px solid #137AD1 !important;
  font-family: monospace;
  font-size: 15px;
  line-height: 1.55;
}
.dark code, .dark .codetext {
  color: #ddd;
  background-color: #111;
}
.link {
  color:#4091dd;
  /*
  font-family: 'Open Sans', 'Helvetica Neue', HelveticaNeue, calibri, arial, sans-serif; 
  */ /* thicker, darker */
  font-weight: 600;
}
.darkDivText {
  color: #ccc;
}
.darkDivText a:link, .darkDivText a:visited {
  color: #acb;
}
#hero-content {
  padding: 45px 60px 40px 60px;
}
@media (max-width: 1000px) {
  .bgimg {
    min-height: 400px !important;
  }
}
@media (max-width: 600px) {
  .hero-title {
    margin: 20px;
    padding-top: 30px;
    font-size: 28px !important;
    font-weight: bold !important;
  }
  #hero-content {
    padding: 0px;
  }
  #hero-rect {
    margin: 0px !important;
  }
  .bgimg {
    min-height: 0px !important;
  }
}

#hero-mini {
  float: right;
  background-color: rgba(33, 33, 33, 0.85);
  border-radius: 20px;
  padding-bottom: 0px;
  color: #fff;
  margin-bottom: 0px;
  max-width:140px;
  overflow: hidden;
}
#hero-rect {
  float: left;
  background-color: rgba(255, 255, 255, 0.90);
  background-color: rgba(0, 0, 0, 0.95);
  border-radius: 40px;
  max-width: 600px;
  padding: 30px 50px 25px 50px;
  margin-bottom: 30px;
  color: #fff;
}
@media (max-width: 1400px) {
  .bodyLeftMargin #hero-rect, .bodyRightMargin #hero-rect {
      max-width: 450px;
  }
}
#hero-rect h3, #hero-rect select {
  color: #fff;
}
#hero-rect a:link, #hero-rect a:visited {
  color: #66CF79;
}
#hero-rect:hoverX {
  background-color: rgba(255, 255, 255, 0.9);
  background-color: rgba(33, 33, 33, 0.95);
}
.hero-title {
  font-size:60px;
  line-height: 1em;
  font-weight:800;
  margin-right:30px;
  margin-bottom:10px;
  text-shadow: 2px 2px 6px #333;
  color: #fff;
}
.btn {
    display: inline-block;
    font-weightX: 550;
    color: #343434;
    background-colorX: rgb(239, 239, 239); /* matches useragent buttonface */
    background-color: var(--border-light);
    borderX: 1px solid var(--border-light);
    border: 1px solid var(--border-light);

    text-align: center;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    padding: 0.375rem 1rem;
    line-height: 1.5;
    border-radius: 2rem;
    cursor: pointer;
    margin-right:6px;
    margin-bottom:8px;
}
.btn-med {
  font-size: 0.9rem;
  line-height: 1.35;
  padding: 0.3rem 0.8rem;
  border-radius: 2rem;
  display: inline-flex;
  width: auto;
  border: 1px solid var(--border-light);
}
.btn:link, .btn:visited, .contentpadding .btn:link, .contentpadding .btn:visited {
  color: #343434;;
  text-decoration: none;
}
#hero-rect .btn:link, #hero-rect .btn:visited {
  color: #fff;
}
.btn:hover, .btn-med:hover, .btn-lg:hover {
    background-color: #b9da79;
    border-color: #b9da79;
    color: #fff;
    text-decoration: none;
}
.dark .btn {
  color: #fff;
  background-color: #375a7f;
  border: 1px solid #375a7f;
}
.btn-lg {
  height: 46px;
  font-size: 1.1rem;
  line-height: 2;
  border-radius: 1.5rem;
  padding: 0.375rem 1.3rem;
  border: 1px solid var(--border-light);
  font-weight: 550;
  font-weight: 550;
}
.btn-sm {
  font-size: 0.75rem;
  line-height: 1.2;
  padding: 0.2rem 0.55rem;
  border-radius: 2rem;
  display: inline-flex;
  width: auto;
}

/* color is !important so surrounding a href color from menu.css does not override */
.btn-primary {
    color: #fff !important;
    background-color: #137AD1;
    border-color: #137AD1;
}
.dark .btn-primary {
  background-color: #137AD1;
}
.btn-primary:visited {
    color: #fff !important;
}
.btn-primary:hover {
    background-color: #91bbef;
    background-color: #6fa1d8;
    border-color: #91bbef;
    border-color: #6fa1d8;
}
.btn-black {
    color: #fff !important;
    background-color: #0e121a;
    border-color: #0e121a;
}
.btn-black:visited {
    color: #fff !important;
}
.btn-black:hover {
    background-color: #333;
    border-color: #1b252d;
}
.btn-magenta {
  color: #fff !important;
  /* Closest websafe color is: #cc66cc. https://www.colorhexa.com/b455b4 */
  background-color: #b455b4;
  border-color: #b455b4;
}
.btn-magenta:hover {
  background-color: purple !important;
  text-decoration: none;
}
.btn-periwinkle {
  color: #fff !important;
  background-color: rgb(152, 139, 252);
  border: 1px solid rgb(152, 139, 252);
}
.btn-periwinkle:hover,
.btn-periwinkle:focus {
  background-color: rgb(173, 162, 255);
  border: 1px solid rgb(152, 139, 252);
}
.btn-indigo {
  color: #fff !important;
  background-color: rgb(58, 62, 130);
  border: 1px solid rgb(58, 62, 130);
}
.btn-indigo:hover,
.btn-indigo:focus {
  background-color: rgb(82, 88, 168);
  border: 1px solid rgb(82, 88, 168);
}
.btn-white {
    color: #333 !important;
    background-color: #fff;
    border-color: #ccc;
}
.btn-white:link, .contentpadding .btn-white:link {
  color: #333 !important;
}
.btn-white:visited, .contentpadding .btn-white:visited {
  color: #333 !important;
}
.btn-white:hover, .btn-white:link:hover, .contentpadding .btn-white:link:hover, .btn-white:visited:hover, .contentpadding .btn-white:visited:hover {
    color: #fff !important;
    background-color: #a6c36e;
    border-color: #a6c36e;
}
.btn-info {
    color: #fff !important;
    background-color: #a6c36e;
    border-color: #a6c36e;
}
.btn-success {
    color: #fff !important;
    background-color: #a6c36e;
    border-color: #a6c36e;
}
.btn-warning {
    color: #fff !important;
    background-color: #e6853d;
    border-color: #e6853d;
}
.btn-warning:hover {
    background-color: #ef954d;
    border-color: #ef954d;
}
.btn-danger {
    color: #fff !important;
    background-color: #d34564;
    border-color: #d34564;
}
.btn-danger:hover {
    background-color: #f15a7f;
    border-color: #f15a7f;
}
@media (max-width: 500px) {
  .btn {
    width:100%;
  }
  .btn-sm {
    width: auto;
    display: inline-flex;
  }
}

.btn-nice {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  margin-bottom: 10px;
  background: linear-gradient(135deg, #4a90e2 0%, #5ba3f5 100%);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 2px 8px rgba(74, 144, 226, 0.35);
}
a.btn-nice:link,
a.btn-nice:visited {
  text-decoration: none !important;
  color: #fff !important;
}
.dark a.btn-nice:link,
.dark a.btn-nice:visited {
  color: #fff !important;
}
.noborder, .dark .noborder, .noborder:hover, .dark .noborder:hover {
  border: 0px;
}
.nav {
  list-style: none;
  font-size: 13.5px;
}

.pageLinks a {
  display: inline;
  float: none;
}
.nav>li>a {
  padding: 8px;
  margin-top: 2px;
  margin-bottom: 2px;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
}
.nav>li>a:hover {
  background: #ddd;
}
.nav-right {
  float:right;
}
.nav-right ul li {
  float:left;
}
.header-navigation {
  background-color:#eceaeb;
  margin-bottom:0px; 
  -webkit-box-shadow: 0 4px 4px -2px #999;
  -moz-box-shadow: 0 4px 4px -2px #999;
  box-shadow: 0 4px 4px -2px #999;
  z-index:10; 
}
.topLinks b {
  font-weight: 800;
}
#rightColumn img {
  /* messed up /account page */
  /*
  width:100%;
  */
}
.close-X-sm {
  cursor:pointer;
  padding:5px 9px 12px 12px;
  font-size:18px;
  color:#eee;
  /* If code appear instead of x, check if some other font is being applied. Try activating this line to fix (copied from an x that worked).
  font-family: 'Nunito Sans', Lato, 'Helvetica Neue', Helvetica, Arial, sans-serif;
  */
}
.close-X-sm:hover {
  color:#777;
}
.pagecard {
    clear:both;
    overflow: auto;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    border-radius: 28px;
    margin-bottom: 30px;
}
.cardstyle {
    background: #fff;
    min-height: 50px;
    position: relative;
    border-radius: 28px;
    padding: 20px;
}
.dark .cardstyle {
    background: #555;
}
.dark .menuBuddyRight {
  background: #666;
}
.dark .sideMenuColumn {
  background: #444;
  color: #fff;
}
.dark .sideMenuColumn .layerSection {
  color: #fff;
}
@media (max-width: 1200px) {
    .pagecard {
        paddingX:40px;
        margin-rightX:20px;
    }
}
@media (max-width: 500px) {
    .pagecard {
        padding:0px;
    }
}
.leftLogo {
    float:left;
    margin:20px;
    margin-right:40px;
    min-width: 210px;
}
@media (max-width: 800px) {
  .leftLogo {
    float:none;
    margin-right:20px;
    max-width: 150px;
  }
  .narrowscreen {
    width:100% !important;
    max-width: 100% !important;
    float:none !important;
    padding:0 !important;
    margin:0 0 30px 0;
  }
}
.leftOffset {
  padding-left: 55px;
}
#log_display {
  position:fixed;
  z-index: 999999;
  top:70%;
  left:50px;
  padding: 8px 8px 8px 8px;
  color:#fff;
  background: rgba(0,0,0,.8);
  border:1px solid #ccc;
  border-radius: 10px 10px 10px 10px;
}
#log_display textarea {
  color:#fff;
  background: rgba(0,0,0,0);
  min-width: 600px;
  min-height: 150px;
  overflow:scroll;
  border:1px solid #ccc;
}
.bgimg {
  position: relative;
  opacity: 0.65;
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-sizeX: cover;
  background-position: 0 54px; /* Under #mapFilters #filterFields headerbar */
  background-size: 100% auto;
  borderX: 2px solid blue;

  opacityX: 0.2;
}
@media(max-width:1022px) {
  .bgimg {
    background-position: 0 0;
  }
}
@media(max-width:800px) {
  .bgimg {
    widthX: 200%; /* taller on mobile */
  }
}
/* Turn off parallax scrolling for tablets and phones */
@media only screen and (max-device-width: 1024px) {
  .bgimg {
      background-attachment: scroll;
      background-position: 0 0; /* Prevents space above img */
  }
}
.herocenter {
  position: absolute;
  left: 0;
  top: 48.5%;
  width: 100%;
  text-align: center;
  color: #000;
}
.herocenter-text {
  font-size: 18px;
  border: 1px solid #aaa;
  display: inline-block;
  padding: 4px 10px 4px 10px;
  letter-spacing: .1em;
  marginX: 20px 0px 20px 0px;
  color: #fff;
  text-decoration: none;

  border: 0px;
  background: rgba(55,55,55,0.7);
  padding: 20px 25px 20px 25px;

  /*
  border: 0px;
  padding: 18px 25px 18px 25px;
  color: #000;
  background: rgba(255,255,255,0.8);
  */
}
.herocenter-text a {
  color: #fff;
}
.herocenter span.border {
  background-color: #111;
  background-color: #000;
  opacity: 0.85;
  color: #fff;
  padding: 18px;
  padding-left: 25px;
  font-size: 25px;
  font-size:18px;
  letter-spacing: 10px;
  display: inline-block;
}

/* Temp until io renamed in useeio-widget */
.input-output input[type="text"], .input-output input[type="search"], .input-output select, select {
  font-size: 18px;
  border: 1px solid lightgray;
  border: 1px solid #444;
  border-radius: 18px;
  min-height: 32px;
  padding: 0 5px 0 10px;
  padding-top: 4px; /* Firefox */
  margin-right: 5px;
  margin-bottom: 10px;

  padding-right: 28px; /* Applies when text reaches right side */
  appearance: none; /* Remove default arrow */
  -webkit-appearance: none;
  -moz-appearance: none;
  background: white url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 10l5 5 5-5z"/></svg>') no-repeat right 5px center; /* Custom arrow */
  background-size: 24px; /* Size of the custom arrow */
}
.config-field input, .config-field select {
  width: 100%;
  padding: 9px 10px;
  border-radius: 10px;
  border: 1px solid var(--input-border, var(--border-medium, #D1D5DB));
  font-size: 14px;
  font-family: "Lato", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  margin-bottom: 7px;
}
.dark .config-field input,
body.dark .config-field input,
.dark .config-field select,
body.dark .config-field select {
  background: #0b1120;
  color: #e2e8f0;
  border-color: rgba(148, 163, 184, 0.35);
}
.dark select {
  background-color: #000;
  color: #fff;
  /* white arrow */
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="white" d="M7 10l5 5 5-5z"/></svg>') no-repeat right 5px center; /* Custom white arrow */
  background-color: #888;
  margin-leftX: 1px; /* prevents border from being cropped when dropdown selected */
}

.notdark {
  color: #333;
}
.notdark .content a:link, .notdark .content a:visited {
  color: #0366d6 !important;
}
.notdark select {
  color: #333 !important;
  background: #fff url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 10l5 5 5-5z"/></svg>') no-repeat right 5px center; /* Custom arrow */
  
}

#logospace {
  float:left;
  vertical-align:middle;
}
/*
.logoholder {
  background-size: 100% 100%;
  background-position:center;
  height:50px;
    width:70px;
    margin-top: -40px;
}
*/
#logoholder {
  /*
  background-size: 100% 100%;
  margin:0 auto;
  */
  float:left;
  display: block;

  position: absolute;
  top: 50%;
  transform: translate(0%, -50%);
}
#logoholderbar {
  padding: 0px 14px 0 0;
}
.logoTopPadding {
  padding-top:5.5px;
}
#headerLogo {
  margin-right: 4.5px;
  float: left;
}
@media (max-width: 600px) {
  #headerLogo img {
    max-width: 120px;
  }
}
/* phase out? */
.logoholder-state {
  background:url(img/logo/georgia-icon-on-gray.png) no-repeat;
  margin-top: 5px;
  height: 50px;
  width: 70px;
}
.logolink:hover{
  text-decoration: none;
}

#headerLocTitleHolder {
  float:left;
  positionX: relative; /* moves too high, needs work */
  /*
  padding:10px 0 0 0px;
  font-size: 22px;
  height:45px;
  */
}
/*
.headerLocTitleHolder-state {
  margin-top: 7px;
}

, #headerLocTitle
*/
#headerSiteTitle {
  font-size: 24px;
  font-family: Helvetica !important;
  font-weight: 100;
  color: #777;
  letter-spacing: 1.4px;
  padding-bottom: 5px;

  /* Align vertically */
  position: absolute;
  top: 50%;
  transform: translate(0%, -50%);
}
@media (min-width: 601px) {
  #headerSiteTitle {
      min-width: 250px; /* Prevents being too narrow in OpenWebUI */
  }
}
#headerLocTitle {
  float:left;
  padding-top:1px;
  color:#9c9c9c;
  font-size: 22px;
}
.headerbar {
  background-color: rgb(239 239 239);
  pointer-events: auto;
}
.filterFieldsHolderFixed {
  background-color: rgb(239 239 239);
}
.filterFieldsHolderFixed .filterClickActive {
  border-radius: 20px;
  border: 0px;
  border-right: 1px solid lightgray;
  border-bottom: 1px solid lightgray;
  padding: 0px 9px 0px 12px;
  min-height: 34px !important;
  vertical-align: baseline;
  background-color: #fff;
  color: #686868;
  text-shadow: none;
  height: auto;
}
.filterFieldsHolderFixed #showSideTabsInBar {
  display: block !important;
}
.filterFieldsBodyTop {
  margin-top: 48px
}
.bodyLeftMargin .headerbar, .bodyLeftMargin .filterFieldsHolderFixed {
  /* left: 220px; */
}
.headerbar a:link, .headerbar a:visited {
    color: #777;
}
.headerbar a:link:hover, .headerbar a:visited:hover {
    color: #444;
}
.headerbar {
  border-bottom: 1px solid rgb(238,238,238/95%); /* #eee */
  border-bottom: 1px solid rgb(238,238,238);
  background-color: #eee;
}
/*
.showSideTabs:hover,
.showSideTabs:hover i {
  background-color: transparent !important;
  color: #555;
  box-shadow: none;
  text-shadow: none;
  filter: none;
}
.dark .showSideTabs:hover,
.dark .showSideTabs:hover i {
  color: #fff;
}
*/

.dark .headerbar {
  background: #222;
  border-bottom: 1px solid #333;
}
.headerbarheight {
  min-height:80px;
}
.headerbarhide {
  display: none !important;
}
/*
@media (max-width: 800px) {
  .headerbar {
    padding-left: 20px;
    padding-right: 0px;
  }
}
*/
@media (max-width: 600px) {
  #showSideFromBar {
    display: none !important;
  }
  #mapFilters {
    margin-left: 6px !important;
  }
}
.headerLeftIcon i {
  font-size:24px;
  min-width:28px; 
  opacity:1;
  color:#333;
  padding-left:2px; 
  padding-right:2px;
  border:0px solid #555;
  border-radius:8px;
  cursor: pointer;
}
#showSideFromHeader i {
  color: #555;
}
#showSideFromHeader i:hover {
  color: #000 !important;
}
#showSideFromHeader:hover i {
  color: #000 !important;
}
.dark #showSideFromHeader i {
  color: #ddd;
}
.dark #showSideFromHeader:hover i {
  color: #fff !important;
}
@media (max-width: 380px) {
  .showSearch {
    display: none;
  }
}

#headerIcons {
  color:#aaa;
  float:left;
  margin-top:14px;
}
#headerIcons:hover {
  background-colorX: #ddd;
  background-color: transparent !important; /* temp to override bootstrap until #headerIcons is renamed */
}
:root {
  --header-offset-height: 79px; /* Default header offset height */
}

.headeroffset { /* Does not include bar */
  height:79px;
}
#local-headerXXX {
  /* min-height:82.5px; */ /* Caused space under current header */
  min-height:79px;
}
@media (max-width: 600px) {
  :root {
    --header-offset-height: 64px; /* Mobile header offset height */
  }
  
  #headerIcons {
    margin-top:4px;
  }
  .headerbarheight {
    height:64px;
  }
  .headeroffset {
    height:64px;
  }
}

.filters-margin {
  margin: 0 auto;
  max-width:1000px;
}

/* HEADER */

.upperIcons {
  margin-right: 18px;
}
#headerLogoholder {
  margin-left: 35px;
}
@media (max-width: 600px) {
  .upperIcons {
    margin-right: 8px;
  }
  #headerLogoholder {
    padding-leftX: 59px;
  }
  #showNavColumn {
    display: none !important;
  }
}
@media (max-width: 300px) {
  #headerLocTitleHolder {
    display: none;
  }
  .headerLogoDesktop, #headerLogoholder {
    display: none;
  }
}

/* .upperIcons > */

.upperIcons > div:hover {
  cursor: pointer;
}
.upperIcons > span:hover {
  color: #000; /* not working */
}
#menuHolder {
  height:100%;
  position:fixed;
  right:0px;
  overflow: auto;
  background: #fff;
  width:250px;
  margin-right:-250px;
  -webkit-transition-duration: 0.3s;
	-moz-transition-duration: 0.3s;
	-o-transition-duration: 0.3s;
	transition-duration: 0.3s;
	box-sizing: border-box;
	z-index: 99999;
  pointer-events: auto;
}
@media (max-width: 600px) {
	#menuHolder {
		width:100%;
	}
}
#menuTop {
  margin-left:20px;
}
#menuNav {
  margin-top:20px;
}
#menuNav a {
  display: block;
  padding-left: 40px !important;
  padding-top: 15px !important;
  min-height: 50px;
  box-sizing: border-box;
}
/*
#menuNav a:hover {
  background-color: #ddd;
}
*/
#menuNav a {
  font-size:16px;
  font-weight: 500;
  color: #ccc;
}
#menuNav a:hover {
  background-color: #000;
}
#menuNav b a {
  font-weight: 600;
}

@media (max-width: 600px) {
  #menuNav a {
    font-size:20px;
  }
}
#menuHolder a {
  padding: 10px;
  text-decoration: none;
}
.hideMenu {
  margin-top:30px;
  margin-right:17px;
  cursor:pointer;
  border: 2px solid #AEAEAE;
  border-radius: 30px;
  font-size: 32px;
  font-weight: 100;
  display: inline-block;
  line-height: 0px;
  padding: 11px 3px;
  width: 27px;
  position: relative;
  float: right;
}
.hideMenu:hover {
  color:#fff;
  border-color: #fff;
}
.hideMenuInner {
  position:absolute;
  top:3px;
  left:4px;
  color:#555;
  display: none;
  font-size: 20px;
  display: inline-block;
  line-height: 17px;
}
.hideMenuInner:hover {
  color:#fff;
}
/* @media handheld { */
@media only screen and (max-width: 479px) { /* Since Lato font not available on Android */
  .hideMenu:after {
      top: 12px;
      left: 4px;
  }
}
/* END HEADER */


/* json to html display */
.valueonly {
  padding-top: 5px;
  min-width: 80px;
}
.titlecell {
  border-top:1px solid #ccc;
  padding: 5px 12px 0 5px;
  floatX:left;
  clear:both;
  min-width: 180px;
  font-weight: 500;
}
.floating-object {
  floatX:left;
  margin-right:10px;
  margin-bottom:10px;
}
.floating-object.rowlevel2 {
  padding-bottom: 10px;
  border-bottom:1px solid #ccc;
}
.objectcell .titlecell {
  /* too narrow for usda */
  min-widthX: 140px;
}
.objectcell .rowlevel2.titlecell {
  min-width: 150px;
}
.objectcell .rowlevel3.titlecell, .objectcell .rowlevel4.titlecell {
  overflow: hidden; /* for usda */
}
.rowlevel7.objectcell {
  float: left;
}
.rowlevel3.objectcell > div, .rowlevel4.objectcell > div, .rowlevel5.objectcell > div, .rowlevel7.objectcell > div, .rowlevel8.objectcell.div  {
  border-bottomX:1px solid #ccc;
}
.objectcell-lines > .objectcell-line { /* immediate child only */
  border-bottom:1px solid #ccc;
}
.celltop {
  margin-top: 4px;
}
.barTitle {
  background:#999;
  color:#fff;
  padding:4px;
  padding-left:10px;
  min-width:255px;
}
.valueimg {
  width: 100%;
  max-width: 600px;
}
.rowlevel3.celltop {
  border: 0px;
}
.rowlevel2 > .barTitle, .rowlevel3 > .barTitle {
  font-size: 1.2em;
  font-weight: bold;
}
/*
.objectcell.objectcell.objectcell .barTitle {
  background:none;
  font-weight: bold;
}
*/
.rightcell {
  margin-top:5px;
  overflow: auto;
  font-weight: 350;
  color: #000;
}
.rightlogo {
  width:100%;
  max-width:300px;
  margin-top:5px;
  margin-bottom:5px;
}
.hidden {
  displayX:none;
}
.bucketDesc {
  white-space: nowrap;
}
.json_to_html_table .titlecell:first-of-type {
  border-top: 0px #fff solid;
}
.json_to_html_table .rightcell:first-of-type {
  border-top: 0px #fff solid;
}
.rowlevel2 {
  margin-bottom:10px;
  cursor: pointer;
}
.rowlevel2.keyonly {
  font-size: 18px;
  float: left;
}
.valueonly {
  padding-left: 5px;
  padding-right: 5px;
  overflow: auto;
}
.rowlevel2.valueonly {
  font-size: 16px;
  overflow: auto;
}
.rowlevel2 div:last-of-type {
  border-bottom: 0px #fff solid !important;
  /* Add a shadow here that using a negative margin to get hidden by next .bartitle */
}
.two-wide {
  overflow: hidden;
  margin-right: 0px;
}
.two-wide div {
  float:left;
  width:33.3%;
}
.two-wide div img {
  width: 100%;
  margin-rightX:12px;
  margin-bottom:24px;
}
@media (max-width: 1400px) {
  .two-wide div {
    width: 50%;
    max-width: 1000px;
  }
}
@media (max-width: 800px) {
  .two-wide div {
    width: 100% !important;
    clear: none !important;
  }
}

/* The switch - the box around the slider */
.switch {
  position: relative;
  display: inline-block;
  width: 46px;
  height: 28px;
}
/* Hide default HTML checkbox */
.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
/* The slider */
.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
}
.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
}
input:checked + .slider {
  background-color: #2196F3;
}
input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}
input:checked + .slider:before {
  -webkit-transform: translateX(18px);
  -ms-transform: translateX(18px);
  transform: translateX(18px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.mdTable table {
  border: 1px solid #ddd;
  padding: 20px;
  padding-bottom: 15px;
  margin-bottom: 20px;
}
#readmeDiv tr, .mdTable tr {
  text-align: left;
}
#readmeDiv td, #readmeDiv th, .mdTable td, .mdTable th {
  text-align: left;
  padding-right: 20px;
}
#readmeDiv tr td, .mdTable tr td
{
  border-bottom: 1px solid #ddd;
}
#readmeDiv tr:last-child td, .mdTable tr:last-child td {
  border-bottom: 0px solid #ddd;
}
.large-list {
  font-size: 16px;
}
.large-list h1 {
  font-weight: 700;
  font-family: Roboto,Inter,-apple-system,system-ui,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;
}
.large-list h2 {
  position: relative;
  font-weight: 400;
}
.large-list h3 {
  font-size: 1.1em;
}
.large-list .num {
  font-size: 17px;
  background-color: #999;
  color: #fff;
  padding-top: 4px;
  padding-left: 8px;
  width: 25px;
  height: 25px;
  line-height: 16px;
  margin-right: 8px;
  left: 0px;
  bottom: 12px;
  border-radius: 13px;
  display: block;
}
h2 .num {
  position: absolute;
}
.large-list .txt {
  margin-left: 33px;
}
.dark .large-list .num {
  background-color: #000;
}
/* Hide vertical lines in Tabulator grid */
.tabulator .tabulator-row .tabulator-cell {
    border-right: none !important;
}
.dark .tabulator .tabulator-row .tabulator-cell {
    border-bottom: 1px solid #555;
    background-color: #333;
}
/* Hide vertical lines in the column headers */
.tabulator .tabulator-header .tabulator-col {
    border-right: none !important;
}
.tabulator-col {
  line-height: 1.55em; /* Allos for consisten heaer arro position*/
}
/* Arrow on left of column titles, applied only when prior title div has text-align: left */
.tabulator-col:not(:has(.tabulator-col-title[style*="text-align: right"])) .tabulator-col-title {
  padding-right: 5px !important;
  position: relative !important;
  float: left !important;
  width: auto !important;
}
.tabulator-col:not(:has(.tabulator-col-title[style*="text-align: right"])) .tabulator-col-sorter {
  position:relative !important;
  float:left !important;
  padding: 5px !important;
  padding-top: 7px !important;
}

/* Nav.css */

/* overrides base.css */
.headerbar { 
    left: var(--side-nav-width, 62px);
}

/* On mobile, headerbar should be at left edge when sidebar is hidden */
@media (max-width: 600px) {
    body.sidebar-hidden .headerbar {
        left: 0;
    }
}

#sideIcons {
    left: var(--side-nav-menu, 62px); /* Without !important the 3-bar menu is not visible */
}
#sideIcons {
    position:absolute;
    left: 64px !important; /* Without !important the 3-bar menu is not visible */
    width: 32px;
}
#pageControls {
    position: relative;
}
/* inserted into bar at top of content on team/projects and other pages */
#pageControls #sideIcons {
    position: relative;
    top: 0;
    left: 0 !important;
    flex: 0 0 auto;
}
#pageControls #showNavColumn {
    padding: 0px;
}

/* Sidebar Styles */
.sidebarX {
    flex-direction: column;
    position: fixed;
    z-index: 1000;
}
#side-nav {
  transition: var(--transition-smooth);
  background: var(--bg-secondary);
  transition: var(--transition-smooth);
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  align-self: flex-start;
  /* Optional: Setting height: 100% carries white backround color behind inner side nav in Light mode */
}

#side-nav.expanded {
  width: 300px;
  width: 238px;
}
#side-nav.expanded .nav-link {
  width: calc(100% - 10px);
  margin-right: 10px;
}
@media (max-width: 600px) {
  #side-nav.expanded {
    width: 100%;
  }
}
#side-nav.expanded #main-nav {
  display: none !important;
}
#side-navXX.collapsed {
  width: 64px;
  min-width: 64px;
}

/* Close button for sidebar */
#side-nav-header {
  flex-shrink: 0;
  padding: 8px;
  border-bottom: 1px solid var(--border-light);
}
@media (max-width: 600px) {
  .collapsed #side-nav-header {
    display: none;
  }
}
#side-nav-content {
  z-index: 100;
  border-right: 1px solid #dedede;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  background: var(--bg-secondary, #ffffff);
}
#side-nav-content {
  z-index: 4000;
}
#side-nav-footer{
    flex-shrink: 0;
    margin-top: auto; /* Push to bottom */
    border-top: 1px solid var(--border-light);
    padding: 8px;
}

.sidebarX.collapsed {
    width: var(--sidebar-collapsed);
}

.sidebarX.collapsed.hovered:not(.locked) {
    width: var(--sidebar-width-expanded);
}

/* Global state classes for sidebar width tracking */
body.sidebar-collapsed {
    --side-nav-width: var(--sidebar-collapsed);
}

body.sidebar-expanded {
    --side-nav-width: calc(var(--sidebar-width-expanded) - 3px);
}

body.sidebar-hovered {
    --side-nav-width: calc(var(--sidebar-width-expanded) - 3px);
}

.sidebar-toggle {
    background: none;
    border: none;
    color: var(--text-secondary);
    cursor: pointer;
    padding: 12px;
    border-radius: var(--radius-sm);
    transition: var(--transition-smooth);
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.sidebar-toggle:hover {
    background: var(--bg-tertiary);
    color: var(--text-primary);
}

/* When expanded: arrow points left, when collapsed: arrow points right */
.sidebar.collapsed .sidebar-toggle {
    /* justify-content: center; */
}

/* Don't apply CSS rotation - let JavaScript handle icon changes */
.sidebar-toggle i {
    transform: none;
}

/* Ensure arrow icon maintains proper size */
.sidebar-toggle i {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

/* External Site Specific Styles - Add spacing for hidden header */
/*
#side-nav-menu
.sidebar.external-site .nav-section:first-child {
    padding-top: 42px;
}
*/
/* External Site Specific Styles - Show arrows when expanded, hide when collapsed */
.sidebar.external-site .nav-arrow {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    width: 16px !important;
    height: 16px !important;
    margin-left: 8px !important;
}

.sidebar.external-site.collapsed .nav-arrow,
.sidebar.external-site.collapsed.hovered .nav-arrow,
.sidebar.external-site.collapsed.locked .nav-arrow {
    display: none !important;
}

.sidebar.external-site #side-nav-footer,
.sidebar.external-site.collapsed #side-nav-footer,
.sidebar.external-site.collapsed.hovered #side-nav-footer,
.sidebar.external-site.collapsed.locked #side-nav-footer {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    margin-top: auto !important;
    border-top: 1px solid var(--border-light) !important;
    padding: 8px !important;
}

.sidebar.external-site .sidebar-toggle,
.sidebar.external-site.collapsed .sidebar-toggle,
.sidebar.external-site.collapsed.hovered .sidebar-toggle,
.sidebar.external-site.collapsed.locked .sidebar-toggle {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: none !important;
    border: none !important;
    color: var(--text-secondary) !important;
    cursor: pointer !important;
    padding: 12px !important;
    border-radius: var(--radius-sm) !important;
    width: 100% !important;
    align-items: center !important;
    justify-content: flex-start !important;
}


/* Cursor for expanding collapsed sidebar */
.sidebar.collapsed #side-nav-content {
    cursor: e-resize; /* rightward pointing double-arrow */
    max-width: 62px;
    overflow: visible;
}
.sidebar.collapsed .nav-section .nav-text {
  display: none !important;
}
.sidebar.collapsed .nav-section .nav-link {
  width: 0px !important;
  max-width: 0px !important;
  min-width: 0px !important;
}
.sidebar.collapsed .nav-section {
  position: relative;
}
.sidebar.collapsed .nav-section:hover .nav-link {
  width: auto;
  max-width: 200px !important;
  min-width: 200px !important;
  transition: none !important;
  z-index: 99999 !important;
  position: relative;
  margin-top: -2px;
  margin-left: 5px;
  border: 3px solid #000;
}
.sidebar.collapsed .nav-section:hover .nav-icon {
  margin-right: 12px !important;
}
.sidebar.collapsed .nav-section:hover .nav-link.active {
  border-radius: 50px !important;
  width: calc(100% - 16px) !important;
  height: auto !important;
  margin: 2px 8px 2px 14px !important;
  justify-content: space-between !important;
  padding: 12px 16px 12px 16px !important;
}

/* Navigation Menu */
#side-nav-absolute {
    position: absolute;
    top: var(--header-height);
    bottom: 0px;
    height: calc(100vh - var(--header-height));
    display: flex;
    flex-direction: row;
    overflow-y: auto;
    background-color: #efefef;
    z-index: 10050;
}
.dark #side-nav-absolute {
    background-color: #666667;
}
#side-nav-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
}
#side-nav-menu {
    flex: 1;
    overflow-y: auto;
    position: relative;
    z-index: 1;
}

.sidebar.collapsed #side-nav-menu {
    overflow: visible;
}

.sidebar.collapsed #side-nav-absolute {
    overflow: visible;
}
.nav-item {
    margin-bottom: 4px;
    positionX: relative;
    min-height: 42px;
}

.nav-link {
    min-width: 200px;
    display: flex;
    align-items: center;
    padding: 12px 12px 12px 12px;
    background: none;
    border: 0px solid transparent;
    border-radius: 50px;
    color: var(--text-secondary);
    cursor: pointer;
    transitionX: var(--transition-smooth);
    text-align: left;
    font-size: 20px;
    font-weight: 500;
    margin: 2px 8px;
    font-family: TwitterChirp, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    text-decoration: none;
    /* position: absolute !important; */
    z-index: 1500 !important;
}
.nav-link:link,
.nav-link:visited {
    color: var(--text-secondary);
}

.nav-link:hover {
    background: var(--bg-tertiary);
    border-color: var(--border-medium);
    color: var(--text-primary);
    box-shadow: var(--shadow-sm);

    align-items: left !important;
}

/* Use solid background when sidebar is expanded */
.sidebar.expanded .nav-link:hover,
.sidebar.hovered:not(.locked) .nav-link:hover {
    background: var(--bg-tertiary);
}

.nav-link.active {
    color: var(--text-primary);
}
.dark .nav-link.active  {

}
/* Active nav styling for different states */
.nav-link.active {
    background: var(--bg-tertiary);
}

/* Expanded state - show full width background */
#side-nav.expanded .nav-link.active {
    background: var(--bg-tertiary);
    width: calc(100% - 16px);
    height: auto;
    margin: 2px 8px;
    justify-content: space-between;
    padding: 12px 16px 12px 16px;
}

/* Collapsed state - show circular background */
.sidebar.collapsed .nav-text {
  displayX: none !important;
}
.sidebar.collapsed .nav-link.active {
    background: var(--bg-tertiary);
    border-radius: 50%;
    width: 40px;
    height: 40px;
    min-width: 40px !important;
    marginX: 4px auto;
    margin-left:20px;
    justify-content: center;
    padding: 12px;
}
.sidebar.collapsed .nav-icon {
  margin-right: 0px !important;
}

.sidebar.collapsed.hovered:not(.locked) .nav-link.active {
    background: var(--bg-tertiary);
    border-radius: var(--radius-md);
    width: calc(100% - 16px);
    height: auto;
    margin: 2px 8px;
    justify-content: space-between;
    padding: 12px 16px 12px 16px;
}

.nav-icon {
    width: 22px;
    height: 22px;
    margin-right: 12px;
    flex-shrink: 0;
    color: inherit;
}

.nav-link:link .nav-icon,
.nav-link:visited .nav-icon {
    color: var(--text-secondary);
}

.nav-text {
    flex: 1;
    white-space: nowrap;
    opacity: 1;
    transition: var(--transition-smooth);
    display: block;
}
.sidebar.collapsed .nav-text {
    opacity: 0;
    width: 0;
}

.sidebar.collapsed .nav-link:hover .nav-text {
    opacity: 1;
    display:block !important; /* Show on circle hover */
}

.nav-link:hover .nav-text {
  colorX: #333;
}

.sidebar.collapsed.hovered:not(.locked) .nav-text {
    opacity: 1;
    width: auto;
    display: block;
}

.nav-arrow {
    width: 16px;
    height: 16px;
    margin-left: 8px;
    transition: var(--transition-smooth);
    flex-shrink: 0;
    position: relative;
}


.nav-arrow.expanded {
    transform: rotate(90deg);
}

.sidebar.collapsed .nav-arrow {
    display: none;
}

.sidebar.collapsed .nav-link {
  position: absolute !important; /* Allows rollover to be hidden when nav width is collapsed */
}

.sidebar.collapsed.hovered:not(.locked) .nav-arrow {
    opacity: 1;
    width: 16px;
}

/* Subnav Styles */
.subnav {
    max-height: 0;
    overflow: hidden;
    transition: var(--transition-smooth);
    background: transparent;
}

.subnav.expanded {
    max-height: 300px;
}

.subnav-link {
    display: flex;
    align-items: center;
    padding: 8px 20px 8px 52px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 13px;
    transition: var(--transition-smooth);
}

.subnav-link:link,
.subnav-link:visited {
    color: var(--text-secondary);
}

.subnav-link:hover {
    background: var(--bg-tertiary);
    color: var(--text-primary);
}

/* Dark mode hover styles - make nav and subnav hovers darker */
.dark .nav-link:hover {
    background: #374151 !important;
}

.dark .subnav-link:hover {
    background: #374151 !important;
}

.subnav-link.active {
    color: var(--accent-blue);
    background: var(--bg-secondary);
    font-weight: 500;
}

.subnav-icon {
    width: 16px;
    height: 16px;
    margin-right: 8px;
    flex-shrink: 0;
    color: inherit;
}

.subnav-link:link .subnav-icon,
.subnav-link:visited .subnav-icon {
    color: var(--text-secondary);
}

.sidebar.collapsed .subnav {
    display: none;
}

.sidebar.collapsed.hovered:not(.locked) .subnav {
    display: block;
}

/* Main Content */
.main-content {
    displayX: flex;
    flexX: 1;
    transition: var(--transition-smooth);
    min-height: 100vh;
    width: 100%;
}

.sidebar.collapsed ~ .main-content {
    margin-left: var(--sidebar-collapsed);
}

/* Mobile Responsive */
@media (max-width: 600px) {
  .nav-link {
    padding-right: 20px;
  }
  #side-nav {
    top: var(--header-height, 60px);
  }
  
  /* Expanded nav arrows on mobile - larger with circle background */
  #side-nav.expanded .nav-arrow {
    width: 32px !important;
    height: 32px !important;
    background: var(--bg-tertiary) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin-left: 12px !important;
  }
  
  /* Dark mode styling for mobile nav arrow circles */
  .dark #side-nav.expanded .nav-arrow {
    background: #333 !important;
  }
    #side-navX {
        width: 64px;
        position: fixed;
        top: var(--header-height, 79px);
        left: 0;
        height: calc(100vh - var(--header-height, 79px));
        z-index: 1000;
    }
    
    /* Hide sidebar completely on mobile when hidden */
    body.sidebar-hidden #side-nav {
        display: none !important;
    }
    
    /* When mobile-open, expand to full width and overlay */
    #side-nav.mobile-open {
        width: 100vw !important;
        z-index: 2000;
    }
    
    /* Show titles and arrows when mobile-open (expanded) */
    #side-nav.mobile-open .nav-text {
        opacity: 1 !important;
        width: auto !important;
        display: block !important;
    }
    
    #side-nav.mobile-open .nav-arrow {
        display: block !important;
        opacity: 1 !important;
    }
    
    #side-nav.mobile-open .logo-text {
        opacity: 1 !important;
        width: auto !important;
        display: block !important;
    }
    
    /* Fix active nav alignment in mobile-open - don't center when text is visible */
    #side-nav.mobile-open .nav-link {
        justify-content: space-between !important;
        width: calc(100% - 16px) !important;
        margin: 2px 8px !important;
        padding-right: 16px !important;
    }
    
    #side-nav.mobile-open .nav-link .nav-icon {
        margin-right: 12px !important;
    }
    
    /* Fix active nav circle in mobile-open - prevent oval stretching and offset issues */
    #side-nav.mobile-open .nav-link.active {
        background: var(--bg-tertiary) !important;
        border-radius: var(--radius-md) !important;
        justify-content: space-between !important;
        width: calc(100% - 16px) !important;
        height: auto !important;
        margin: 2px 8px !important;
        padding: 12px 16px 12px 16px !important;
    }
    
    /* Show subnav in mobile-open mode */
    #side-nav.mobile-open .subnav {
        display: block !important;
        max-height: 0 !important;
        opacity: 0 !important;
        overflow: hidden !important;
    }
    
    #side-nav.mobile-open .subnav.expanded {
        display: block !important;
        max-height: 300px !important;
        opacity: 1 !important;
        overflow: visible !important;
    }
    
    /* Ensure subnav links are visible in mobile-open */
    #side-nav.mobile-open .subnav-link {
        display: flex !important;
        opacity: 1 !important;
        padding: 8px 20px 8px 52px !important;
    }
    
    /* Hide main content when mobile nav is open */
    #main-layout {
        transition: var(--transition-smooth);
        margin-left: 0; /* No margin on mobile */
    }
    
    /* Only add margin when sidebar is visible and not hidden */
    body:not(.sidebar-hidden) #main-layout {
        margin-leftX: 64px;
    }
    
    #side-nav.mobile-open ~ #main-layout {
        opacity: 0.3;
        pointer-events: none;
        margin-left: 0; /* No margin when overlay mode */
    }
    
    .main-content {
        margin-left: 0;
    }
    
    /* Ensure body doesn't reserve space for hidden sidebar on mobile */
    body.sidebar-hidden {
        --side-nav-width: 0px;
    }
    
    .mobile-overlay {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: rgba(0, 0, 0, 0.5);
        z-index: 1999;
        display: none;
    }
    
    .mobile-overlay.active {
        display: block;
    }
}

/* Tooltips for collapsed sidebar */
.nav-tooltip {
    position: fixed;
    background: var(--bg-tertiary);
    color: var(--text-primary);
    padding: 0;
    border-radius: 24px;
    font-size: 16px;
    font-weight: 500;
    white-space: nowrap;
    z-index: 5000;
    pointer-events: auto;
    opacity: 0;
    transition: none;
    height: 48px;
    display: flex;
    align-items: center;
    min-width: 180px;
    transform: translateX(3px); /* Shift entire tooltip right by 3px (moved 10px left from original 13px) */
}

.nav-tooltip.show {
    opacity: 1;
}

.tooltip-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    position: absolute;
    left: 12px; /* Position icon at left edge of tooltip */
}

.tooltip-text {
    flex: 1;
    text-align: center;
    padding: 0 12px 0 48px; /* Left padding to clear the fixed icon */
}

.tooltip-link {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: 0 12px 0 0;
    font: inherit;
    display: flex;
    align-items: center;
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 24px;
    transition: none;
}

.tooltip-link:hover {
    background: rgba(255, 255, 255, 0.1);
}

/* Dark mode fix for tooltip curved corners */
.dark .nav-tooltip {
    background: #6b7280; /* Lighter grey for rollover */
}

.dark .tooltip-link {
    border-radius: 24px;
    margin: 0 -12px;
}

.dark .tooltip-link:hover {
    background: #6b7280; /* Lighter grey for rollover */
}

/* Active icon circle in dark mode */
.dark .sidebar.collapsed .nav-link.active {
    background: #6b7280; /* Lighter grey circle around active icon */
    border-radius: 50%;
    left:-8px;

    widthX: 40px;
    heightX: 40px;
    displayX: flex;
    align-itemsX: center;
    justify-contentX: center;
}

.dark .sidebar.collapsed .nav-link.active .nav-icon {
    color: var(--text-primary);
    font-weight: bold;
}

.nav-x {
    float: right;
    width: 24px;
    height: 24px;
    background: var(--bg-secondary);
    border: none;
    color: #666;
    cursor: pointer;
    font-size: 14px;
    line-height: 1;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 4001;
    transition: var(--transition-smooth);
    opacity: 0.6;
    pointer-events: auto;
}

.nav-x:hover {
    background: rgba(0, 0, 0, 0.1);
    color: #000;
    opacity: 1;
}

.dark .nav-x {
    color: #ccc;
}

.dark .nav-x:hover {
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
}

/* Show close button when sidebar is visible, regardless of collapsed state */

@media (max-width: 600px) {
    .nav-x {
        width: 38px;
        height: 38px;
        font-size: 30px;
        position: static;
        padding: 12px;
        margin-bottom: 0px;
    }
    
    /* Keep showSideFromHeader visible on narrow screens */
    #showSideFromHeader {
        display: inline-block;
    }
}

.basePanel {
    background: white;
    border-radius: var(--border-radius);
}
.basePanelTop {
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: var(--border-radius);
}
.dark .basePanel {
    background: #333;
}
.basePanelBackground { /* For control that overlap scrolling list */
    background: white;
}
.dark .basePanelBackground {
    background: #333;
}
/* Not needed for team/js/map.js widget

*/
.basePanelPadding {
    padding:10px;
}
.basePanelFadeOut {
    position: relative;
    mask: linear-gradient(to bottom, rgba(0,0,0,1) 85%, rgba(0,0,0,0) 100%);
    -webkit-mask: linear-gradient(to bottom, rgba(0,0,0,1) 85%, rgba(0,0,0,0) 100%);
}
/* Reopen button for header */
.nav-reopen-btn {
    vertical-align: middle;
    display: inline-block;
    margin: 0 auto;
    padding: 6px;
    opacity: 0.3;
    background: none;
    border: none;
    cursor: pointer;
    transition: var(--transition-smooth);
    display: none; /* Hidden by default */
}

.nav-reopen-btn i {
    font-size: 24px;
    min-width: 30px;
    opacity: 1;
    color: #333;
    padding-left: 2px;
    padding-right: 2px;
    border: 1px solid #555;
    border-radius: 8px;
}

.nav-reopen-btn i {
    color: #555;
}

.nav-reopen-btn i:hover {
    color: #000 !important;
}

.nav-reopen-btn:hover i {
    color: #000 !important;
}

.dark .nav-reopen-btn i {
    color: #ddd;
}

.dark .nav-reopen-btn:hover i {
    color: #fff !important;
}

/* Hide reopen button by default */
#openNav {
    display: none !important;
}

/* Show reopen button when sidebar is hidden */
body.sidebar-hidden #openNav {
    display: inline-block !important;
}

/* Show reopen button by default on mobile width */
@media (max-width: 600px) {
    #openNav {
        display: inline-block !important;
    }
    
    /* Hide reopen button when showSideFromHeader is visible */
    #showSideFromHeader:not([style*="display: none"]) ~ * #openNav,
    #showSideFromHeader:not([style*="display:none"]) ~ * #openNav {
        display: none !important;
    }
    
    /* Alternative approach: hide when showSideFromHeader exists and is visible */
    body:has(#showSideFromHeader:not([style*="display: none"])) #openNav,
    body:has(#showSideFromHeader:not([style*="display:none"])) #openNav {
        display: none !important;
    }
}

/* Ensure reopen button is visible */
#openNav i {
    display: inline-block;
    text-align: center;
    font-size: 24px !important; /* Keep original size for border */
    line-height: 20px !important; /* 4px smaller line-height */
    text-shadow: 0 0 1px currentColor, 0 0 1px currentColor, 0 0 1px currentColor !important; /* Make dots appear bolder */
    font-weight: bold !important;
}

/* Settings toggle styling - shared across projects */
#settings-toggle {
    background: var(--bg-tertiary);
    border: 1px solid var(--border-medium);
    border-radius: 50%;
    width: 32px;
    height: 32px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    color: var(--text-secondary);
}

#settings-toggle:hover {
    background: var(--bg-secondary);
    color: var(--text-primary);
    transform: rotate(45deg);
}

#settings-toggle svg {
    stroke-width: 1;
}

/* Dark mode styles for settings toggle */
.dark #settings-toggle {
    background: var(--bg-tertiary);
    border: 1px solid var(--border-medium);
    color: var(--text-secondary);
}

.dark #settings-toggle:hover {
    background: #666;
    color: white;
    border-color: #777;
    transform: rotate(45deg);
}

.dark #settings-toggle svg {
    stroke: white;
}
.badge-setX {
    display: flex;
    flex-wrap: wrap;
}
.badge {
    display: inline-block;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 500;
    border-radius: 3px;
    margin: 3px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    border: 1px solid #ddd;
}
.badge:hover {
  background: #888;
  color: white;
}
/* Generic button styling to match anchor links */
.bthButton {
    font-size: inherit !important;
    font-weight: inherit !important;
    font-family: inherit !important;
    min-height: 32px;
    justify-content: center;
    box-sizing: border-box;
}

/* Panel Menu Toggle Styles - Reusable across panels */
.menuToggleMenu {
  position: absolute;
  right: 10px;
  top: 50px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
  min-width: 180px;
  padding: 6px 0;
  z-index: 1001;
}
.menuToggleMenuInline {
  position: absolute;
  top: 0;
  right: 0;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  min-width: 180px;
  padding: 6px 0;
}
.dark .menuToggleMenu {
  background: #333;
  border-color: #555;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
}
.dark .menuToggleMenuInline {
  background: #333;
  border-color: #555;
}
.menuToggleItem {
  padding: 8px 12px;
  cursor: pointer;
  color: #444;
  display: block;
  text-decoration: none;
  position: relative;
  line-height: 1;
}
.menuToggleItem .material-icons {
  font-size: 16px;
  vertical-align: middle;
  margin-right: 8px;
}
.menuToggleCheck {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
  color: #888;
  display: none !important;
}
.menuToggleItem.is-active .menuToggleCheck {
  display: inline-block !important;
}
.menuToggleItem:hover {
  background: #f2f2f2;
  color: #111;
}
.menuToggleDivider {
  border-top: 1px solid #eee;
  margin: 4px 0;
}
.menuToggleLink {
  color: inherit;
}
.dark .menuToggleItem {
  color: #eee;
}
.dark .menuToggleCheck {
  color: #aaa;
}
.dark .menuToggleItem:hover {
  background: #444;
  color: #fff;
}
.dark .menuToggleLink {
  color: inherit;
}
.dark .menuToggleDivider {
  border-top-color: #555;
}
.menuToggleHolderInline {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  width: 100%;
  min-height: 34px;
  border: 1px solid #ddd; /* For #widgetDetailsControls (which is not the detail panel) */
  border-radius: 8px;
  transition: all 0.2s;
}
.menuToggleHolderInline .material-icons {
  transition: none;
}
.menuToggleHolderInline:hover {
  border-color: #007bff;
  background: #f8f9fa;
}
.dark .menuToggleHolderInline {
  background: #333;
  border-color: #555;
}
.dark .menuToggleHolderInline:hover {
  border-color: #007bff;
  background: #444;
}
.menuToggleHolderMap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  width: 40px;
  height: 40px;
  background: transparent;
}
/* Add white transparent circle behind map icons */
.menuToggleHolderMap::before {
  content: '';
  position: absolute;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.7);
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  transition: background 0.2s ease;
}
.menuToggleHolderMap:hover::before {
  background: #333;
}
.dark .menuToggleHolderMap::before {
  background: rgba(255, 255, 255, 0.5);
}
.dark .menuToggleHolderMap:hover::before {
  background: rgba(255, 255, 255, 0.7);
}
.menuToggleHolderMap .material-icons {
  transition: color 0.2s ease;
  position: relative;
  z-index: 1;
}
.menuToggleHolderMap:hover .menu-toggle-arrow {
  color: white;
}
.dark .menuToggleHolderMap:hover .menu-toggle-arrow {
  color: #aaa;
}
/* Common circle background styling for menu toggle icons */
.menuToggleHolderMap .material-icons.circle-bg {
  color: rgba(255, 255, 255, 0.6);
  font-size: 34px;
}
.dark .menuToggleHolderMap .material-icons.circle-bg {
  color: rgba(255, 255, 255, 0.5);
}
/* Circle background for non-map panels */
.menuIconHolder:not(.menuToggleHolderMap) .material-icons.circle-bg {
  color: #ddd;
  font-size: 32px;
}
.dark .menuIconHolder:not(.menuToggleHolderMap) .material-icons.circle-bg {
  color: rgba(255, 255, 255, 0.7);
}
/* Common arrow icon styling for all MenuControl arrows */
.menu-toggle-arrow {
  font-size: 28px;
  font-weight: 500;
  color: #aaa;
}
/* Ensure icon positioning is stable */
#widgetDetailsMenuControl .material-icons,
#widgetmapWrapperMenuControl .material-icons,
#pageGalleryMenuControl .material-icons,
#locationDetailsMenuControl .material-icons {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
#widgetDetailsMenuControl .material-icons[id$="MenuToggleIcon"],
#widgetmapWrapperMenuControl .material-icons[id$="MenuToggleIcon"],
#pageGalleryMenuControl .material-icons[id$="MenuToggleIcon"],
#locationDetailsMenuControl .material-icons[id$="MenuToggleIcon"] {
  position: absolute !important;
}
/* Fade transition for locationDetails during tour */
.locationDetails {
  transition: opacity 0.2s ease-in-out;
}
.locationDetails.fading {
  opacity: 0.5;
}
/* Wider clickable area for locationDetails menu toggle */
#locationDetailsMenuControl {
  padding: 8px 12px !important;
}
#rightIcons {
  max-height: 54px;
  overflow: visible;
}
#filterFieldsDropdownToggle {
  display: none;
  float: left;
  padding: 6px;
  padding-left: 0;
  opacity: 0.3;
  cursor: pointer;
}
#filterFieldsDropdownToggle .material-icons {
  font-size: 35px;
  font-weight: 500;
  opacity: 1;
  color: #333;
  padding-top: 3px;
  padding-left: 5px;
  padding-right: 2px;
  min-width: 38px;
}
.dark #filterFieldsDropdownToggle .material-icons {
  color: #bbb;
}
.filterTopIconHolder {
  position: relative;
  float: left;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  overflow: visible;
}
.bar-centered-icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
#filterFieldToggleHolder {
  width: 93px;
  min-width: 93px;
  cursor: pointer;
}
#filterFieldToggleInHeader {
  width: 44px;
  min-width: 44px;
  cursor: pointer;
  display: none;
}
#showSideTabsInBar {
  width: 42px;
}
#filterFieldToggleHolder i,
#filterFieldToggleInHeader i {
  font-size: 32px;
  color: #888;
  cursor: pointer;
}
#filterFieldToggleIcon,
#filterFieldToggleIconInHeader,
.filter-field-toggle-icon {
  position: absolute !important;
  font-size: 28px;
}
/*
#filterFieldToggleHolder:not(.filter-toggle-forward) #filterFieldToggleIcon {
  font-size: 28px;
}
*/
#filterFieldToggleHolder.filter-toggle-forward .filter-field-toggle-icon,
#filterFieldToggleInHeader.filter-toggle-forward .filter-field-toggle-icon {
  font-size: 28px;
}
@media (max-width: 400px) {
  #filterFieldToggleHolder i,
  #filterFieldToggleInHeader i {
    font-size: 36px;
  }
  #filterFieldToggleIcon,
  #filterFieldToggleIconInHeader,
  .filter-field-toggle-icon {
    font-size: 32px;
  }
  #filterFieldToggleHolder:not(.filter-toggle-forward) .filter-field-toggle-icon,
  #filterFieldToggleInHeader:not(.filter-toggle-forward) .filter-field-toggle-icon {
    font-size: 32px;
  }
  #filterFieldToggleHolder.filter-toggle-forward .filter-field-toggle-icon,
  #filterFieldToggleInHeader.filter-toggle-forward .filter-field-toggle-icon {
    font-size: 32px;
  }
}
@media (max-width: 600px) {
  #filterFieldsDropdownToggle {
    display: block;
  }
  #filterFieldToggleHolder {
    display: none;
  }
  #filterFieldToggleInHeader {
    display: inline-flex;
  }
  #filteFieldsDropdowns {
    container-type: inline-size;
  }
  #filteFieldsDropdowns.auto-hide-narrow {
    display: none;
  }
}
/* Orange color for pause icon during tour */
#locationDetailsMenuToggleIcon.pause-icon {
  color: #ff6b35 !important;
}
