*, *::before, *::after {
  box-sizing: border-box;
}

:root {
  /* --main-image-url: url("../img/galileo.jpg"); */
  --color-red:#FF0000;
  --color-green:#00FF00;
  --color-blue:#0000FF;
  --color-black:#000000;
  --color-white:#ffffff;
  --color-purple:#A020F0;
  --color-beige:#CD7F32;
  --color-orange:#ffa500;
  --color-saddleBrown:saddlebrown;
  --font16:1.00em;
  --alignCenter:center;
  --alignJustify:justify;
}

body {
  background-color:#000000 !important;
  color:#ffffff;
}
/* DEBUG: confirms PWA standalone mode is active when launched from homescreen */
/* @media (display-mode: standalone) {
  body {
    border: 5px solid yellow !important;
  }
} */

html, body {
  height: 100%;
  overflow: hidden; 
}

p {
  font-family: sans-serif;
  line-height: 1.3;
}

.popup-img {
  background-image: var(--main-image-url);
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 150px;
  border: 1px solid black;
}

.ai-links {
  font-size:calc(var(--font16) * 1.25);
  padding:0;
  line-height:1.75;
}

.ai-links a:hover {
  color:#00ff00;
}

.formBackground {
  background-color:#aaaaaa;
  margin-top: 0;
}

/* a:link {
  color:darkgoldenrod;
}

a:visited {
  color:var(--color-saddleBrown);
}

a:hover {
  color:var(--color-beige);
}

a:active {
  color:var(--color-orange);
} */

/*Note:a:hover MUST come after a:link and a:visited in the CSS definition in order to be effective! a:active MUST come after a:hover in the CSS definition in order to be effective! Pseudo-class names are not case-sensitive.*/

.basemaps-text-color{
  color:var(--color-purple);
  font-weight:bold;  
}

.btn-custom {
  color:var(--color-saddleBrown);
  background-color:antiquewhite;
}

#btnLogout{
  background-color:#004400;
  color:#f0ad4e;
  font-weight:bold;
  font-size:calc(var(--font16) * 1.25);
  height:50px;
  width:50%;
  border:3px solid #f0ad4e;
}

#btnLogout:hover {
  color:antiquewhite;
}

.btn-my-content-settings {
  background-color:#004400;
  color:#f0ad4e;
  font-weight:bold;
  font-size:calc(var(--font16) * 1.25);
  height:75px;
  width:45%;
  border:3px solid #f0ad4e;
  padding:20px 10px;
}

.btn-my-content-settings a{
  text-decoration: none;
  width:45%;
  color:inherit;
}

.breadcrumbsBtns {
  background-color:#004400;
  color:#f0ad4e;
  font-weight:bold;
  font-size:calc(var(--font16) * 1.25);
  height:50px;
  width:40%;
  border:3px solid #f0ad4e;
}

#btnSync{
  padding-left:0;
  padding-right:1px;
}

.indexCamelHeader {
  text-align:center;
}

.index-fig-caption {
  font-size:calc(var(--font16) * 1.0);
  font-weight:bold;
  padding:2vh 0;
}

.index-changing-caption {
  transition: opacity 1s; 
  opacity: 1; 
}

.index-conrad-quote {
  text-align:center; 
  padding:0 50px;
  width:60vw;
}

.index-conrad-quote a{
  text-decoration:none;
  font-style: italic;
  font-size:calc(var(--font16) * 1.2);
  font-family: Segoe UI Variable Text, Arial, sans-serif;
  color:#ff0000;
  font-weight:bold;
  line-height:1.7;
 }

.index-marlow {
  text-align:center;
}

.index-marlow a {
  text-decoration:none;
}

.index-joseph-conrad {
  text-align:center;
  padding-top:2vh;
}

.index-joseph-conrad a {
  text-decoration:none;
}

.index-statement {
  font-size:calc(var(--font16) * 1.3);
  text-align:justify;
  color:#ffffff;
  font-weight:bold;
  font-family:monospace, Arial, Helvetica, sans-serif;
  width: 75%;
  padding-right: 15px; 
  padding-left: 15px; 
  margin-right: auto; 
  margin-left: auto; 
  margin-top:5vh;
}

.index-motto {
  text-align:center;
  letter-spacing:0.03em;
  font-family:Aladdin,Arial,serif;
  color:#ff0000;
  margin-bottom:3vh;
}

.index-footer {
  text-align:center;
  font-weight: bold;
  font-family:monospace;
  font-size:calc(var(--font16) * 1.0);
  width: 75%;
  padding-right: 15px; 
  padding-left: 15px; 
  margin-right: auto; 
  margin-left: auto; 
  margin-bottom: 2vh;
}

.div-cross {
  position:absolute;
  z-index:800;
  top:50%;
  left:50%;
  color:#ff0000;
  font-size:1.5em;
  transform:translateX(-50%) translateY(-50%);
}  

.register-title {
  display: block; 
  transform:scale(0.7);
  text-align:center;
}

.h3-admin{
  color:#ff0000;
}

.headers-info-inputs {
  font-size:calc(var(--font16) * 1.0);
  font-weight:bold;
}

.headers-info-titles {
  font-size:calc(var(--font16) * 1.25);
  font-weight:bold;
  margin-bottom: 0;      
}
 
input[type="range"] {
  background-color:#004400;
  height:10px;
}

input[type="range"]::-webkit-slider-thumb {
  position:relative;
  top:-1px;
  z-index:800;
  width:70px;
  height:35px;
  -webkit-border-radius:40px;
  -moz-border-radius:40px;
  border-radius:10px;
  background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff0000), color-stop(50%,var(--color-orange)), color-stop(100%,#aaa));
} 

input[type="checkbox"]:focus {
  outline: none; 
  background-color: transparent; 
 }

.btn-group input[type="checkbox"] {
  width: 50px;
  height: 50px;
}

.btn-group input[type="checkbox"] + label::after {
content: "";
display: inline-block;
width: 100%;
height: 1px;

position: relative;
top: 50%;
transform: translateY(-50%);
}

.register-form {
  width:90%;
}

.register-form input[type="text"], .register-form select{
  height:15%;
}

.radio-group {
  margin-bottom: 10px; 
}

.radio-group input[type="radio"] {
  margin-right: 8px; 
}

.radio-group label {
  display: inline-flex; 
  align-items: center;
  cursor: pointer;
  font-size: 16px; 
}

.login-button {
  border: 3px solid #954535;
  box-shadow: 0 0 25px rgba(0, 0, 0, 0.5);
  height:12%;
}

.login-button input {
  text-align: center;
  color: #ffffff;
  font-size: calc(var(--font16) *1.0);
  font-weight: bold;
  font-family: monospace, 'Courier New', Courier;
  letter-spacing: 0.02em;
  background-color: #004400;
  border:5px ridge #bbbbbb;
  height:100%;
}

.login-button input:hover {
  background-color: #000000;
}

.j-centered-content {
  display: flex;
  justify-content: center; 
  align-items: center; 
  height: 100%; 
  padding-bottom:10px;
}

.layers-point-line-polygon {
  border-collapse: separate;
  border-spacing: 0 7vh;
  font-size:calc(var(--font16) * 1.3);
}

.layers-point-line-polygon > tr {
  height:200px;
}

#loginFormContainer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size:calc(var(--font16) * 1.0);
  background-color: #dddddd;
  border: 10px ridge #954535;
  width: 30%;
  height: 75%;
  box-shadow: 0 0 50px rgba(0, 0, 0, 0.5);   
} 

#loginFormContainer .form-group {
  margin-bottom: 5%; 
}

.login-title {
  color:#000000;
  text-align:center;
  font-weight:bold;
  margin-top:0;
  padding-top:0;
}

 .login-username-password {
  font-size:inherit;
  font-weight:bold;
  color:#954535;
}

.login-username-password #username, .login-username-password #login-password {
  font-weight:bold;
}

.login-password-visibility {
  cursor: pointer;
  width:4vw;
  border-left:3px ridge #000000;
}

.login-password-visibility #eyeIcon {
  position:relative;
  top:50%;
  left:50%;
  transform:translateX(-50%) translateY(-50%);
}

.login-remember {
  text-align:center;
}

.login-remember label {
  color:#000000;
  font-weight:bold;
}

.remember-checkbox {
  margin-right: 1em;
  transform:scale(2.0);
}

.login-forgot-password {
  font-size:calc(var(--font16) * 1.0);
  font-weight:bold;
  text-align:center;
  color:#000000;
  letter-spacing:0.02em;
  margin-top:2vh;
}

.login-footer {
  position: absolute; 
  left:50%;
  transform: translateX(-50%);
  bottom: 0; 
  width: 100% 
}

.open-nav, .add-new-page-btn {
  background-color:#1A4314;
  color:#ffffff;
  border:solid 5px #8A4513;
  font-size:calc(var(--font16) * 1.25);
} 

.add-new-page-btn div, .add-new-page-btn span {
  font-size: calc(var(--font16) * 1.0);
  font-weight: bold;
  padding: 20px 20px;
  text-decoration: underline;
}

.div-gen-form {
  transition: opacity 0.3s ease-in-out; 
}

.container-modal {
  top: 48.5%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: none;
  overflow:auto;
  width: 30%;
  height:93%;
  background-color: rgba(130, 130, 130, 0.5);
  border:20px ridge #888888;
  padding:20px 50px;
}

.modal-content {
  color:#000000;
  font-weight:bold;
}

.modal-header {
  display: flex; 
  align-items: center; 
  position: relative; 
  background-color: #004400; 
  padding: 10px; 
}

.modal-header img { 
  width: 30px;
  height: auto;
  cursor: pointer;
}

.modal-header-ctrlf {
  background-color: #000000; 
  color: white; 
  padding: 0.5em; 
  display: block; 
  width: 100%; 
  text-align: center; 
  font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
  font-size: 0.9rem; 
}

.modal-header-text {
  flex-grow: 1; 
  text-align: center; 
}

.modal-header-text h4 {
  font-weight: bold;
  color: #ffffff;
}

.modal-header-close-button {
  margin-left: auto; 
  display: flex; 
  align-items: center; 
}

.modal-header-close-button img {
  width: 30px; 
  height: auto;
  cursor: pointer;
}

.modal-features {
  width:70vw;
}

.hdr-gen-form {
  display: flex;
  flex-grow: 1;
  margin: 0 auto; 
  background-color: #004400;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  font-weight: bold;
  text-transform: capitalize;
}

.close-modal {
  position:absolute;
  right:10;
  background:none;
  border: none;
}

.my-content-edit-profile-element {
  background-color:#004400;
  border:3px solid #8A4513;
  text-align: center;
  width:20%;
  margin: 2vh auto 0 auto;
  color:#ffffff;
  font-size:calc(var(--font16) * 1.25);
  font-weight:bold;
  line-height:50px;
  margin-bottom:8vh;
}

.my-content-top-of-page {
  text-align:center;
  letter-spacing: 0.05em;
  margin-top:100px;
}

nav a:visited {
  color:var(--color-beige);
}

nav a:link {
  color:aliceblue;
}

nav a:hover {
  color:var(--color-saddleBrown);
}

.nav-tabs > li > a {
  font-size:calc(var(--font16) * 1.0);
  font-weight:bold;
  border:1px solid #ddd;
}

.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
  color:var(--color-saddleBrown);
  background-color:wheat;
}

.outer {
  width:364px;
  margin:50px auto 0 auto;
  text-align:var(--alignCenter);
}

.div-map-css {
  position: relative;
  left: 0;
  width: 100%;
  min-height:97vh;
  background-color: grey;
}

.lastUpdate {
  position: fixed;
  z-index: 1006;
  bottom: 0;
  min-height: 3vh;
  font-weight: bold;
  background-color: #aaaaaa;
  
}

.footer {
  display: flex;
  justify-content: space-between; 
  align-items: center; 
  width: 100%;
  color:#000000;
  font-family: monospace, 'Courier New', Courier;
  font-size: 1.0rem;
  border-top: 1px ridge #000000;
  z-index: 1006 !important;
}

.footer span {
  display: inline-block;
  font-size: 0.8rem;
  padding-top: 0.5ch;
}

.footer-img {
  height: 16px;
  width: auto;
}

.formatted-time {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px; 
}

.page1-sidebar-button-css button {
  position: relative;
  background-color: #004400;
  color: #ffffff;
  border: solid 5px #8A4513;
  cursor: pointer;
  text-align: center;
  margin: 0 auto;
  width:200px;
  max-width: 200px;
  left: 50%;
  transform: translate(-50%, 0);
}

.page1-title-css {
  width: 100%;
  display: flex;
  justify-content: center;
  margin-bottom: 2vh;
  color: #8A4513;
}

.title-camel-css {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom:3vh;
  padding-top:0;
}

.page1-encrypt-data-css > p {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  margin-top: 10px;
  font-size: calc(var(--font16) * 0.85);
  font-weight: bolder;
  color: #8A4513;
}

.reset-form {
  width:80%;
}

.stream-controls {
  display:none;
  font-size:calc(var(--font16) * 2.50);
  padding-left:10px;
  padding-right:10px;
}

.table-header {
  background-color:wheat;
}

.tbl-group-head {
  background-color:#004400;
  font-size:calc(var(--font16) * 1.00);
  color:#ffffff;
  border:5px solid #8A4513;
}

tr.layers:nth-child(even) {
  background-color:#f2f2f2;
}

.sidebar {    
  position:fixed;
  z-index:801;
  height:100vh;
  width:0;
  top:0;
  left:0;
  background-color:#000000;
  overflow-x:hidden;
  overflow-y:auto;
  transition:0;
  opacity:1.0;
  font-family:monospace, Arial, sans-serif;
  line-height:1.5;
  padding-bottom:50px;
}


.sidebar a {
  padding:8px 8px 8px 32px;
  text-decoration:none;
  font-size:calc(var(--font16) * 1.50);
  display:block;
}

#sidebarGlobalView {  
  display:flex;
  flex-direction: column;
  position:fixed;
  z-index:801;
  width:0;
  height:100%;
  top:0;
  left:0;
  background-color:#000000;
  border-right: 5px ridge #ff0000;
  overflow-y:auto;
  overflow-x:hidden;
  font-size:calc(var(--font16) *1.0);
  font-family:monospace, Arial, sans-serif;
  text-decoration:none;
  color:#ffffff;
  padding-bottom:2%;
}

#sideBarGlobalView a{
  text-decoration:none;
  font-size:calc(var(--font16) * 1.4);
  line-height:1.5em;
  font-weight:bold;
}

#sideBarGlobalView a:hover {
  color:#00ff00;
} 

.timeAndAccuracy {
  justify-content: space-between; 
  padding:0 1% 0 1%; 
}

.sideBarGlobalViewFreqAccComment { 
  justify-content: center;
}

.timeAndAccuracy, .sideBarGlobalViewFreqAccComment {
  display: flex;
  height:20px;
  font-size:calc(var(--font16) * 0.75);
  background-color:#1A4314;
  color:antiquewhite;
}

.sidebar-close-X {
  position:relative;
  display: flex;              
  justify-content: flex-end;   
  align-items: center;         
  margin-top:20px;
}

.sidebar-close-X img {
  margin-right: 10px;          
  cursor: pointer; 
  width:30px;
  height:auto;            
}

#sideBarCloseXText {  
  position:absolute;
  right:10;
  background:none;
  border: none;
  cursor:pointer;
  display: flex;
  justify-content: flex-end; 
 }

 .index-sidebar {    
  position: fixed;
  display: none; 
  z-index: 801;
  height: 20vh;
  width: 0; 
  background: none;
  font-family: monospace, Arial, sans-serif;
  letter-spacing: 0.1em;
}

.index-sidebar a {
  padding-left:32px;
  text-decoration:none;
  font-size:calc(var(--font16) * 1.2);
  font-weight:bold;
  display:block;
}

.index-sideBar-links {
  text-align:left;
  font-size:1.5em;
}

.sidebar-globalview-artificial-intelligence-gemini a {
  display: inline;  
  text-decoration: none;  
}

.sidebar-globalview-artificial-intelligence-gemini a:hover {
  cursor: pointer;  
}

.sidebar-globalview-artificial-intelligence-chatGPT a {
  display: inline;  
  text-decoration: none;  
}

.sidebar-globalview-artificial-intelligence-chatGPT a:hover {
  cursor: pointer;  
}

.sidebar-globalview-map-horizontal-container {
  display: flex;
  position:relative;
  flex-direction:row;
  justify-content: center; 
  align-items:center; 
  width:100%;
}

.sidebar-globalview-btn-main-map {
  display:flex;
  flex:1;
  flex-direction:column;
  justify-content: center;
  align-items: center;
}

.sidebar-globalview-btn-main-map:hover::after {
  content: attr(data-title);
  position: absolute;
  transform:translateY(-150%);
  background-color:#000000;
  padding:5px 5px;
  color: #ff0000;
  font-weight:bold;
  white-space: nowrap;
  z-index: 801;
}

.sidebar-globalview-main-map {
  display:flex;
  flex-direction: column; 
  justify-content: center; 
  align-items: center; 
  width: 60px; 
  height: 60px;
  background-color: #ffff00; 
  border: 3px solid red; 
  border-radius: 50%; 
}

.sidebar-globalview-main-map img {
  width:50px;
  height:40px;
}

.sidebar-globalview-mapContainer-past-present-future {
  display:flex;
  flex:1;
  flex-direction:column;
  justify-content: center;
  align-items: center;
  position: relative; 
}

.sidebar-globalview-mapContainer-past-present-future img {
 width:30px;
 height:auto;
}
.sidebar-globalview-mapContainer-past-present-future a {
 margin-bottom:5%;
 }

 .sidebar-globalview-mapContainer-past-present-future a:last-child {
  margin-bottom:0;
  }

 #sidebar-buttons {
    width: 95%;
    margin: 30px auto 0 auto;
    display: flex;
    flex-direction: column;
    /* gap: 5px;  */
}

.right-sidebar-buttons-container {
  position: absolute;
  z-index:801;
  display: flex;
  flex-direction: column;
}

.right-sidebar-buttons {  
  display: flex;
  align-items: center; 
  justify-content: center;
  width: 30px;
  height: 30px;
  padding: 10px;
  border:2px ridge #ffffff;
  font-size:0.9em;
  font-weight:bold;
  color:#ff0000;
  background: #000000;
  margin-bottom: 7px;
}

.right-sidebar-buttons-close {
  position:absolute;
  top:-3vh;
  right:40px;
  background:none;
  cursor:pointer;
}

.right-sidebar-buttons-close>img {
 height:18px;
 width:18px;
}

 .sidebarUtils {
  position: fixed;
  z-index: 801; 
  top: 40%;
  right: -15vw; 
  width: 30px; 
  height: 25vh;
  transition: right 0.3s ease; 
  overflow: none;
}

 .sidebarUtils-search {
  position: fixed;
  z-index: 801; 
  top: 55%;
  right: -25vw; 
  padding-right:50px;
  width: 30px; 
  height: 25vh;
  transition: right 0.3s ease; 
  overflow: none;
}

.btn-with-tooltip-main {
  position:relative;
 }

.btn-with-tooltip-main:hover::after {
  content: attr(data-title);
  position: absolute;
  z-index: 800;
  background-color: #000000;
  border-radius:20%;
  padding: 8px 8px;
  color: #ff0000;
  font-weight:bold;
  font-size:calc(var(--font16) * 0.75);
  letter-spacing:0.2em;
  transform:translateX(-135%) translateY(-100%);
  white-space:normal;
  text-align:center;
}

.btn-with-tooltip-rightSideUtlitiles {
  position: relative; 
}

.btn-with-tooltip-rightSideUtlitiles:hover::after {
  content: attr(data-title);
  position: absolute;
  z-index: 800;
  background-color: rgba(255, 0, 0, 0.8);
  padding: 8px 8px;
  color: #00ffff;
  border-radius: 0.5rem;
  font-weight: bold;
  font-size: calc(var(--font16) * 1.5);
  white-space: normal;
  text-align: center;

  transform: scale(1);
  transition: transform 0.5s ease, opacity 0.5s ease;
  opacity: 1;
}

.btn-with-tooltip-rightSideUtlitiles::after {
  content: attr(data-title);
  position: absolute;
  z-index: 800;
  background-color: rgba(255, 0, 0, 0.6);
  padding: 8px 8px;
  color: #00ffff;
  border-radius: 0.5rem;
  font-weight: bold;
  font-size: calc(var(--font16) * 1.5);
  white-space: normal;
  text-align: center;
  transform: scale(0);
  transition: transform 0.5s ease, opacity 0.5s ease;
  opacity: 0;
  pointer-events: none; 
}

.hrSideBar {
  border: 3px solid red;
}

#homePageCamel {
  width:300px;
  height:300px;
} 

#homeBodyWidth {
  width: 85%;
  max-width: 100%; 
  margin: 0 auto;
} 

hr.dashed {
  border-top:3px dashed #bbb;
}

hr.rounded {
  border-top:8px solid #bbb;
  border-radius:5px;
}

hr.page123hr {
  width: 75%;
  margin: 0 auto;
  height: 2px;
  margin-bottom:2%;
  color:#000000;
}

.page2SideBarLinks {
  display:block;  
}

.page2SideBarLinks>a>span {
  color:#ffff00;
  font-size:calc(var(--font16) * 1.00);
}

.page2SideBarLinks .hrSideBar {
  border: 3px solid red;
}

.indexSidebarCss {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: left; 
    height: 50%; 
}

.indexSidebarBTNCss {
  display: block;
  position: fixed;
  z-index:801;
  color: white;
  font-size: calc(var(--font16) * 1.0);
  font-weight: bolder;
  top: 2%;
  border-radius: 50%;
  border:5px ridge #ff0000;
  width: 75px;
  height: auto;
  left: 3%;
  background-image: var(--main-image-url);
  background-repeat: no-repeat;
  background-size: cover;
  cursor: pointer;
  background-color: #111;
  line-height: 50px; 
  text-align: center;
  padding-bottom: 0;
}  

.indexSidebarBTNCss::first-letter {
  font-size: calc(var(--font16) *1.5);
  color: red;
  font-weight: bold;
}

.sidebarBTN_MainCss {
  display: block;
  position: fixed;
  z-index:801;
  color: white;
  font-size: calc(var(--font16) * 1.0);
  font-weight: bolder;
  top: 2%;
  border-radius: 50%;
  border:5px ridge #ff0000;
  width: 75px;
  height: auto;
  left: 3%;
  background-image: var(--main-image-url);
  background-repeat: no-repeat;
  background-size: cover;
  cursor: pointer;
  background-color: #111;
  line-height: 50px; 
  text-align: center;
  padding-bottom: 0;
}  

.sidebarBTN_MainCss::first-letter {
  font-size: calc(var(--font16) *1.5);
  color: red;
  font-weight: bold;
}

.button-container {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: 10px;
  margin-top: 20px;
}

.btn-left {
    margin-right: auto; 
}

.btn-right {
    margin-left: auto; 
}

#closeButtonUsers {
  display:block;
  position: fixed;
  z-index:800;
  color:white;
  font-size:calc(var(--font16) * 1.00);
  font-weight:bolder;
  top: 1vh;
  border-radius: 50%;
  border:5px ridge #ff0000;
  width: 75px;
  height: auto;
  right:3vw;
  cursor:pointer;
  background-color:#111; 
  line-height: 50px; 
  text-align: center; 
  padding-bottom: 0;
}   

#sidebarBTNAdminPage.j-centered-content {
  color: white;
  font-size: calc(var(--font16) * 1.25);
  font-weight: bolder;
  top: 1%;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  background-image: var(--main-image-url);
  background-repeat: no-repeat;
  background-size: cover;
  animation: sideBarBtn 60s infinite;
  cursor: pointer;
  background-color: #111;
  line-height: 75px;
  text-align: center;
  margin-left: 1.5vw;
  padding: 0;
}

.divSideBarBTNText {
  color:white;
  font-size:calc(var(--font16) * 1.15);
  font-weight:bolder;
  line-height:50px;
}

.divSideBarBTN::first-letter{
  color:#ff0000;
  font-size:calc(var(--font16) * 1.35);
}

#threeCamelIcons {
 text-align:center;
}

.sidebarForm{
  font-size: calc(var(--font16) * 1.0);
  font-weight:bold;
  opacity:1.0;
  width:100%;
  background-color:#ffffff;
}

#page123Form {
  width:90%;
}

.info-link-btn {
    display: inline-block;
    background-color: #2626ec;
    color: #f8f9fa;
    border: 1px solid #f8f9fa;
    border-radius: 50px;
    padding: 0.375rem 1.5rem;
    text-decoration: none;
    font-size: 1rem;
    font-weight:bond;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.info-link-btn:hover {
    background-color: #f8f9fa;
    color: #212529;
}

.leaflet-container .info-link-btn {
    display: inline-block;
    background-color: #2626ec;
    color: #f8f9fa;
    border: 1px solid #f8f9fa;
    border-radius: 50px;
    padding: 0.375rem 1.5rem;
    text-decoration: none;
    font-size: 1rem;
    font-weight:bond;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.tableEdits{
  font-size: calc(var(--font16) * 1.0);
  font-weight:bold;
  opacity:0.5;
}
.page123CancelButton {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: calc(var(--font16) * 1.75);
  background-color: #000000;
  color: #ffffff;
  font-weight: bold;
  font-family:Georgia, 'Times New Roman', Times, serif;
  letter-spacing:0.06em;
  cursor: pointer;
  height: 10vh;
  padding:0;
  margin:0;
  line-height: auto; 
}

.page123SubmitButton {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: calc(var(--font16) * 1.0);
  background-color: #8A4513;
  color: #FAEBD8;
  font-weight: bold;
  cursor: pointer;
  height: 5vh;
  line-height: auto; 
}

#sideBarCloseXText img {
  display: inline-flex; 
  align-items:center; 
  justify-content:center; 
  float:right;
  width:30px;
  height:auto;
  margin-right:15px;
 }

.page123Sidebar {
  display: none;
  z-index: 801;
  overflow-x: hidden;
  animation: 0.1s;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

#page123SidebarTitle {
  text-align:center;
  letter-spacing: 0.05em;
}

#page123FormEdit {
  color:#113355;
  font-size: calc(var(--font16) * 1.2);
  font-weight:bold;
} 

.set-msg-warning {
  position: absolute;
  bottom: 15vh;
  left: 0;
  width: 30vw;
  height: 20vh;
  background-color:#D2B48C;
  opacity: 1.0;
  border: 5px ridge #dddddd;
  align-items: center;  
  animation: slideIn 3s forwards, slideInReverse 5s 12s forwards; 
}

.set-msg-warning-text {
  position: absolute; 
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%); 
  width: 75%; 
  height: auto; 
  font-size: calc(var(--font16) * 1.50);
  color: #000000;
  opacity: 1;
  font-weight:bold;
  line-height:1.5em;
}

.set-msg-warning-background {
  display: flex; 
  justify-content: center;
  align-items: center; 
  background-color:#D2B48C;
  opacity: 1.0;
  width: 100%;
  height: 100%;
  position: absolute;
  margin:auto;
  top: 0;
  left: 0;
}

#j-countryFlag {
  margin-top:5vh;
  color:#ffffff;
}

#countryFlagHeader {
  position: fixed;
  z-index:800;
  top: 0;
  left: 0;
  right: 0;
  height:auto;
  background-color: #aaaaaa;
  color:#000000;
  font-weight:bolder;
  font-family:Arial, Helvetica, sans-serif;
  padding:0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  letter-spacing:0;
}
#countryFlagHeaderText {
  font-size:calc(var(--font16) * 1.3);
  text-align: center;
  font-style: italic;
  font-weight: bold;
  letter-spacing:0.1em;
}

.circular-button-reset1 {
  background-color: #954535;
  color: white;
  font-weight: bold;
  font-size: 0.80rem;
  width: 100px; 
  height: 100px;
  text-align: center; 
  line-height: 1.5; 
  border: 3px groove #000000; 
  padding:10px;
  white-space: normal; 
}  

.circular-button-reset1:hover {
  color:#90EE90;
}

.colored-corners {
  position: relative;
  overflow: hidden;
}

.colored-corners::before,
.colored-corners::after {
  content: '';
  position: absolute;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #954535; 
}

.colored-corners::before {
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
}

.colored-corners::after {
  top: 0; 
  right: 0; 
  transform: translate(50%, -50%); 
}

.colored-corners::before:first-child {
  bottom: 0; 
  left: 0; 
  transform: translate(-50%, 50%); 
}

.colored-corners::after:last-child {
  bottom: 0; 
  right: 0; 
  transform: translate(50%, 50%); 
}

label {
  cursor: pointer;
}

.img-magnifier-container {
  position: relative;
 }

.img-magnifier-glass {
  position: absolute;
  border: 3px solid #000;
  border-radius: 50%;
  cursor: grab;
  width: 100px;
  height: 100px;
}

.form-control::placeholder {
  color: #013220; 
  opacity:0.6;
  font-family:monospace 'Courier New', Courier;
}

.j-countryName[title] {
  position: relative; 
}

.j-countryName[title]:hover::after {
  content: attr(title); 
  background-color: #F3DAB6;
  color: #301934;
  border-radius: 20px;
  padding: 15px;
  font-weight:bold;
  border: 5px solid #a020f0;
  font-size: calc(var(--font16) * 1.0);
  position: absolute;
  z-index: 800;
  text-align: center; 
  bottom: 50%;
  left: 50%;
  transform: translateX(-50%);
}

#scrollToMe {
  height: 1vh;
}

#pastJourneys>a {
  position: relative;
}

#pastJourneys>a::after {
  content: "";
  background-image: url("img/marker_Past_t");
  background-size: contain;
  width: 5px; 
  height: 5px;
  display: inline-block;
  margin-left: 5px; 
  vertical-align: middle;
}

.obj-overlays-mapconstructor {
  font-weight:bold;
  font-size:calc(var(--font16) * 2.0); 
}

.btn-with-tooltip {
    position: relative; 
}

.btn-with-tooltip:hover {
  cursor: pointer;
}

.fixed-div {
    position: fixed; 
    top:50%;   
    display: flex; 
    align-items: center; 
    margin-top:-50px;
}

.list-marker { 
    white-space: nowrap; 
    padding:20px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: calc(var(--font16) * 0.90);
    background-color: #004400;
    border:3px solid #8a4513;
    color: white;
    font-weight: bold;
    cursor: pointer;
    position:sticky;
    top:0;
}

.clear-breadcrumbs {
  position: fixed;
  top: 100%;
  left: 3%;
  width:100vw;
  height:2vh;
  transform: translateY(-50%) rotate(-90deg);
  transform-origin: left bottom; 
  white-space: nowrap; 
  padding: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: calc(var(--font16) * 0.90);
  background-color: #004400;
  border: 3px solid #8a4513;
  color: white;
  font-weight: bold;
  cursor: pointer;
}

.closeBreadcrumbsWindow {
  position: fixed;
  top: 100%;
  right: -50%;
  width:100vw;
  height:2vh;
  transform: rotate(-90deg); 
  transform-origin: left bottom; 
  white-space: nowrap; 
  padding:20px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: calc(var(--font16) * 0.90);
  background-color: #004400;
  border:3px solid #8a4513;
  color: white;
  font-weight: bold;
  cursor: pointer;
}

#syncCount{
  background-color:#dddddd;
  vertical-align:top;
  color:red;
   font-weight:bold;
  font-family:ariel;
}

.latlngHoverColor {
  border: 1px solid #333;
}

.latlngHoverColor:hover {
  background-color: #ccc;
  border-color: #999;
}

#gen_lat, #gen_lng {
  height:5vh;
  box-shadow: 3px 3px 6px rgba(0, 0, 0, 0.5);
}

#gen_lat[placeholder], #gen_lng[placeholder] {
  font-size: calc(var(--font16) * 0.80);
}

.placesInputMargins {
  margin-top:2vh;
}

.coordinates-label-row > div {
  flex: 1;
  justify-content:center;
}

.coordinates-label-row {
  display: flex;
  gap:20px;
}

#placesModalHeader {
  position:fixed;
  top:0;
}

#getLatLngContainer {
  position:relative;
  display: flex;
  justify-content: center;
  align-items:center;
  background-color: #004400;
  border: 5px ridge #954535;
  box-shadow: 0px 5px 6px rgba(0, 0, 0, 0.5);
  height:50px; 
  letter-spacing: 0.02em;
  font-size: calc(var(--font16) * 0.75);
  font-weight: bold;
  font-family: monospace 'Courier New', Courier;
  color:#ffffff;
  min-width:100;
  margin-bottom:2vh;
}

#getLatLngContainer:hover a {
  background-color: #000000;
  color:#00FF00;
}

#gpsAverageScreen {
  display: flex;
  align-items:center; 
  justify-content:space-evenly;
  margin-bottom:2vh;
}

#containerPlacesStreamVertex {
  display:flex;
  justify-content:center;
  align-items:center;
  background:none;
  font-size: calc(var(--font16) * 1.0);
  font-weight:bold;
  margin-bottom:2vh;
}

.places-stream-vertex {
  background-color:#fff200;
  width:200px;
  border: 1px solid #000; 
  border-radius: 20px; 
}

#placesResetSave {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:20px;
  margin-bottom:2vh;
}

.placesPastPendingWishlist {
  display:flex;
  justify-content:space-evenly;
}

#placesGenFormUpdateContainer {
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
  margin-top:2vh;
}

#placesBtnGenFormUpdate {
  border: 1px solid #000; 
  border-radius: 20px; 
  font-size: calc(var(--font16) * 1.0);
  font-weight:bold;
  width:50%;
  height:5vh;
  background-color:#ffaa00;
}

.inpGenForm {
  border:3px ridge #004400;
  margin-left: 5px;
}

.inpGenForm::placeholder {
    font-size: 1.20rem !important;
}

.inpGenForm::placeholder {
    font-size: 1.20rem !important;
}

#gen_website::placeholder {
    font-size: 1.2rem !important;
}

.latlngGenFormPt {
  text-align: justify;
}

.markerInput {
  color:#000000;
  width: 100%;
}

.latlngGenFormPt .markerInput {
  box-shadow: 2px 2px 4px 4px rgba(0, 68, 0, 0.5);
  display:inline-block;
  padding-left:5px;
}

.latlngGenFormPt>div {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.5);
}

#genFormPt {
  margin-top:4%;
  height:fit-content;
  font-size: calc(var(--font16) * 1.0);
}

#gen_form_ln {
  margin-bottom:3vh;
}

.rule-of-thumb {
  color: red;
}

#globalViewPlacesBtnCancel {
  position:relative;
  bottom:0;
}

#btnResetForm {
  display:inline-block;
  background-color:#ffaa00;
  color:#004400;
  font-weight:bold;
  height:75px;
  width:75px;
}

#btnResetForm:hover {
  background-color:#004400;
  color:#ffaa00;
  font-weight:bold;
}

.save-button {
  box-shadow: 0 3px 6px rgba(21, 136, 94, 0.5);
  text-transform:capitalize;
  font-size: calc(var(--font16) * 1.5);
  font-weight:bold;
  color:#004400;
  background-color:#cccccc;
  letter-spacing:0.2em;
  border:2px ridge #004400;
  box-shadow: 4px 4px 6px rgba(0, 0, 0, 0.75);
  border-radius: 50rem; 
  width:350px;
  height:75px;
}

.save-button:hover {
 color:#ffffff;
 font-weight:bold;
 background-color:#000000;
 border:3px ridge #ffffff;
}

#community-map {
  display:flex;
  justify-content:center;
  align-items:center;
}

#community-map-delete {
  display:flex;
  justify-content:center;
  align-items:center;
  margin-bottom:10px;
}

 #communityMap, #deleteCheckbox, #tripsMap, #adventuresMap, #explorationsMap, #odysseyMap,#deleteTripsCheckbox,#deleteAdventuresCheckbox, #deleteExplorationsCheckbox, #deleteOdysseyCheckbox, #romanempiremap, #deleteromanempireCheckbox, #whsMap, #deleteWHSCheckbox, #taeoMaps .taeoMaps {
  width:15px;
  height:15px;
 }

 #taeoMaps {
  display: flex;
  justify-content: space-between; 
  align-items: center; 
  width: 100%; 
}

.label-input-pair {
  display: flex;
  flex-direction: column; 
  align-items: center; 
  flex-grow: 1; 
  text-align: center; 
  padding: 0 10px; 
}
 
 #deleteCheckbox {
  accent-color: #ff0000; 
 }

 #deleteCheckboxLabel {
  color:#ff0000; 
  margin-right:10px;
 }

 #deleteCheckboxLabel h6 {
  font-weight: bolder;
}

#gen_geojson {
  width: 100%;
}

.hidden-on-gen-form-ln {
  display: none;
}

.color-change-animation {
  animation: sideBarBtn 60s linear infinite;
}
 
.j-sub-header {
  color:antiquewhite;
  background-color:#004400; 
  line-height:6vh;
  width:100%;
  letter-spacing:2px;
  font-family:Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
  margin-bottom: 0.5rem; 
  display: flex; 
  justify-content: center; 
  align-items:center; 
  text-align:center;
  font-size: calc(var(--font16) * 1.5);
}

.j-infoHover:hover{
  background-color: darkorange;
}

.slideNoMembers{
  animation: slideFromLeft 1s ease-in-out;
  position:fixed;
  top:85vh;
  left: 50%; 
  transform: translate(-50%); 
}

.j-vertical-center-title {
  margin-top: 6vh;
}

.confirm-delete, .page-edit, .manage-users {
  position: relative;
  display: inline-block;
}

.confirm-delete::before {
  content: attr(title);
  position: absolute;
  z-index: 800; 
  display: none; 
  top: 0;  
  left: -5em;
  font-size: calc(var(--font16) * 1.5);
  font-family:monospace, 'Courier New', Courier;
  letter-spacing: 0.1em;
  color:#00ff00;
  font-weight:bold;
}

.page-edit::before {
  content: attr(title);
  position: absolute;
  z-index: 800; 
  display: none; 
  top: 0;  
  left: -10em;
  font-size: calc(var(--font16) * 1.5);
  font-family:monospace, 'Courier New', Courier;
  letter-spacing: 0.1em;
  color:#00ff00;
  font-weight:bold; 
}

.manage-users::before {
  content: attr(title);
  position: absolute;
  z-index: 800; 
  display: none; 
  top: 0;  
  left: -20em;
  font-size: calc(var(--font16) * 1.5);
  font-family:monospace, 'Courier New', Courier;
  letter-spacing: 0.1em;
  color:#00ff00;
  font-weight:bold;
}

.confirm-delete:hover::before, .page-edit:hover::before, .manage-users:hover::before {
  display: block; 
}

#errorDatabase {
  color: red;
  position: fixed;
  top: 2vh;
  left: 50%;
  transform: translateX(-50%);
  background-color: #ccc;
  font-weight:bold;
  padding: 10px;
  border: 1px solid #ff0000;
}

.btnOpenSidebarUtils { 
  position: absolute;
  z-index: 801; 
  display: flex; 
  justify-content: center;
  align-items: center; 
  bottom: 10%;
  right:2vw;
  background-color: rgba(255, 0, 0, 0.5);
  width: 50px;
  height: 50px; 
  cursor: pointer; 
  border-radius: 50%; 
  border:25px ridge #ff0000; 
 }

#trinity_video {
	width:200px;
  }

#magContainer {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh; 
}

#sextant {
  max-width: 100%; 
  max-height: 100%; 
}

#registrationMainSection{
padding-top:75px;
}

#registerResetBtn {
  width:35%;
  border:1px ridge #ff0000;
}

#info-close-button-group-center-text {
  margin-top:100px;
}

.complex-box {
  box-shadow: inset 20px 20px 25px rgba(0, 150, 50, 0.3),
  inset -20px -20px 25px rgba(0, 150, 50, 0.3);
}
#sideBarLinks-largeScreen{
  display:none;
}

.magnifier {
  overflow: hidden;
  position: relative;
}

.maglens {
  position: absolute;
  overflow: hidden;
  width: 500px;
  height: 500px;
  border-style:none;
}

.magsmall {
  position: absolute; 
  border-style: none;
}

.maglarge {
  position: absolute; 
  border-style: none;
}

#btnGenFormCancel h3 {
  color:#ffffff;
  font-weight:bold;
  letter-spacing:0.1em;
}

#magnifier-container {
    position: relative;
    display: inline-block;
}

#magnified-image {
    position: absolute;
    border: 1px solid #ccc;
    display: none;
}

#rectangle {
    position: absolute;
    border: 2px dashed #000;
    pointer-events: none;
    display: none;
}  

.btnGPS:hover::before {
  content: attr(data-title); 
  background-color: rgba(243, 218, 182, 0.90); 
  color: #301934;
  border-radius: 20px;
  padding: 15px;
  font-weight: bold;
  border: 5px solid #a020f0;
  font-size: calc(var(--font16) * 1.0);
  position: absolute;
  z-index: 800;
  text-align: center; 
  width:fit-content;
  transform:translateX(-40%) translateY(-50%);
  bottom:23%;
  white-space:nowrap; 
}

.btnGPS {
  background-color: rgba(153, 153, 153, 0.25);
  background:linear-gradient(135deg, rgba(153, 153, 153, 0.5) 25%, transparent 25%) -50px 0,
    linear-gradient(225deg, rgba(153, 153, 153, 0.5) 25%, transparent 25%) -50px 0,
    linear-gradient(315deg, rgba(153, 153, 153, 0.5) 25%, transparent 25%),
    linear-gradient(45deg, rgba(153, 153, 153, 0.5) 25%, transparent 25%);   
  color:#006400;
  width:50px;
  height:50px;
  border-radius:50%;
  border: 5px ridge #006400;
  transition: all 0.3s ease;
}

.btnGPS.clicked {
  background-color:#006400;
  transform: scale(0.9);
}

.divStreamControls{
  display:none;
  position:relative;
  z-index:800;
  top:5%;
  left:50%;
  width:100%;
  text-align:center; 
  transform:translateX(-50%) translateY(-50%);
}

.streamControlsIconText {
  display: block;
  font-weight:bold;
  letter-spacing:0.1em;
}

.slide-image {
  position: fixed;
  top: calc(50% - 100px); 
  left: 0; 
  animation: slide 120s linear infinite; 
}

.slide-image:hover {
  animation-play-state: paused;
}

#cookieConsent {
  position: fixed;
  z-index:99999;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 72%;
  background-color: #333; 
  border:5px ridge #000000;
  color: #cccccc; 
  align-items: flex-end; 
  font-size:calc(var(--font16) * 1.5);
  padding:1% 5% 6% 5%;
  line-height:1.7em;
  display: none;
  overflow:auto;
}

h1, h2 {
  text-align:center;
  margin-top:3vh;
  font-weight:bold;
}

#cookieConsent p>b, #cookieConsent li>span {
  color:#00ff00;
}

#cookieConsent li::marker {
  color:#ff0000;
}

#cookieConsent p::first-letter {
  color:#ff0000;
  font-size:calc(var(--font16) * 1.7);
  font-family:monospace;
}

#cookieConsent button:hover {
  background-color: gold; 
  color:#000000;
}

#cookieConsent button:active {
  background-color: gold; 
  color:#000000;
}

 .accept-cookies {
  background-color: green; 
  color: #fff; 
  padding: 10px 20px; 
  font-size:calc(var(--font16) * 1.0);
  font-weight: bold;
  border: none; 
  border-radius: 4px; 
  cursor: pointer; 
  transition: background-color 0.3s; 
}

.proceed-without-cookies {
  background-color: #5500ff; 
  color: #fff; 
  padding: 10px 20px; 
  font-size:calc(var(--font16) * 1.0);
  font-weight: bold;
  border: none; 
  border-radius: 4px; 
  cursor: pointer; 
  transition: background-color 0.3s; 
}

#cookieButtonContainer {
  display: flex;
  position: fixed;
  bottom: 0; 
  left: 0;
  background-color:#000000;
  width: 100vw;
  height:100px;
}

#cookieButtons {
  position:relative;
  height:50%;
  left:50%;
  top:50%;
  transform: translateX(-50%) translateY(-50%);
  margin: 0 10px; 
  padding: 10px 20px; 
  font-size:calc(var(--font16) * 1.0);
  font-weight: bold;
  border: none; 
  border-radius: 4px; 
  cursor: pointer; 
  transition: background-color 0.3s; 
}

#cookieEUYourOnlineChoices {
  margin-bottom:5vh;
  max-width:100vw;
}

#cookieEUYourOnlineChoices span {
  color:#00ff00;
}

.table-hover tr:hover {
  background-color: #777777;
 }

#headerAdminManageUsers {
  position: fixed; 
  z-index:800;
  top: 0;
  left: 0;
  right: 0; 
  background-color:#999999;
}

#headerAdminManageUsersTable {
  height:5vh;
}

#tableAdminManageUsers {
  border:3px ridge #8a4513;
  color:#ffffff;
  margin-top:75px;
  transform: scale(1.5);
}

#headerAdminManageUsersTable th, #rowsAdminManageUsersTable td {
  vertical-align: middle;
}

#containerTableAdminManageUsers {
  margin-top:22vh;
}

#sidebarAdmin {
  display:none;
  position:relative;
  background-color:#dddddd;
}

#headerAdminPages {
  display: flex;
  justify-content: space-between; 
  margin:3vh 0;
}

#sidebarAdminPagesCancelBTN {
  background-color:#1a4314;
  border:3px ridge #8a4513;
  font-size: calc(var(--font16) * 1.40);
  color:#fff;
  font-weight:bold;
  margin:3vh 0;
  padding:10px;
}

#formContainerAdminPages {
  position:relative;
  width: 35%; 
  height:70vh;
  margin: auto; 
  text-align: center; 
  padding-top: 0; 
  border:10px solid #8A4513;
  background-color:#1A4314;
}

#formAdminPages {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width:90%;
  height:95%;
  background-color:#dddddd;
  border:10px inset #8A4513; 
}

#formAdminPages h1 {
  height:10%;
  font-weight: bold;
  color:#000000;
  letter-spacing:0.02em;
}

#formInputsAdminPages {
  display:flex;
  height:70%;
  justify-content: center;
  font-weight:bold;
  color:#000000;
  font-size: calc(var(--font16) * 1.5);
}

#formInputsAdminPagesAddPageSubmit {
  display: flex;
  justify-content: center; 
  align-items: center; 
  height: 10%; 
  width:60%;
  background-color:#8A4513;  
  margin-top:5%;
  margin-left:auto;
  margin-right:auto; 
  border:5px ridge #1A4314;
  border-radius:5%;
}

#formInputsAdminPagesAddPageSubmit #register-submit {
  font-size: calc(var(--font16) * 1.0);
  font-weight:bold;
  color:#ffffff;
}

#formFooterAdminPages {
  max-height:10%;
  line-height:5%;
}

#containerTablePagesAdminPages {
  display:flex;
  justify-content: center; 
}

#tablePagesAdminPages {
  width:80vw;
  line-height:5vh;
  border-collapse: collapse; 
}

#tablePagesAdminPages thead {
  background-color:#004400;
  font-size:calc(var(--font16) * 1.00);
  color:#ffffff;
  text-align:center;
}

#tablePagesAdminPages th {
  border: none;
}

#tablePagesAdminPages td {
  font-size:calc(var(--font16) * 1.00);
 }



#titleAdminPages {
  font-size:calc(var(--font16) * 1.5);
  margin-top: 5rem; 
  margin-bottom: 5rem;
  padding-top: 0.25rem; 
  font-weight: bold; 
  display: flex;
  justify-content: center;
}

.streamControlsClose {
  background:none;
  border:none;
  margin-inline-start: 0.5rem; 
} 

.streamControlsClose .close-icon {
  width: 35px;
  height: 35px;
}  

#noCarsAllowed,#europeanGreenCapital {
  display:flex;
  justify-content:center;
  align-items:center;
  font-weight:bold;
}

#noCarsAllowed>img {
  width:40px;
  height:"auto";
  padding-right:10px;
}

#johnMichell {
  display: flex;
  flex-direction: column; 
  align-items: center;    
  text-align: center;     
  margin: 0 auto;         
}

#johnMichell>img {
  width:200px;
  height:"auto";
  max-width: 100%; 
  margin-bottom:20px;
}

#europeanGreenCapital>img {
  width:50px;
  height:"auto";
  padding-right:10px;
}

#noCarsAllowed>figcaption,#europeanGreenCapital>figcaption {
  font-size:0.75em;
}

.markers-pointer:hover {
  cursor:pointer;
}

.search-place-input-label {
  color:#ffffff;
  font-weight:bold;
}

.left-section {
  flex: 1;
  display: flex;
  align-items: center;
}

.left-section input,
.left-section button {
    height: 30px;
    margin-right: 10px;
 
}

.center-section {
  position: absolute;
  left: 60%;
  transform: translateX(-60%);
}


#placeInputLabel {
  color:#ffffff;
}

.flex-center {
  display: flex;
  flex-direction: column;  
  align-items: center;     
  justify-content: center; 
  gap: 10px;               
}

#loginInfo {
  margin-bottom:20px;
  color:#004400;
}

#imageModal .modal-dialog {
  max-width: 50%; 
  width: auto;
}

.personal-map-button {
  position: fixed;
  z-index:800;
  bottom: 100px;
  right: 100px;
  padding: 10px 20px;
  font-size: 16px;
  background-color: rgba(255,192,203,1.0);
  color: #003f34;
  font-weight:bold;
  border: 2px ridge #003f34;
  border-radius: 5px;
  cursor: pointer;
}

.personal-map-button:hover {
  background-color: rgba(0,255,0,0.9);
}

.maps-button {
  position: absolute;
  z-index: 800;  
  bottom: 7.25vh; 
  right: 5vw; 
  padding: 0.7rem 1.0rem;
  font-size: 1.5rem;
  font-family: monospace;
  background-color: rgba(0,0,0,0.5);
  color: #ff0000;
  font-weight: bold;  
  border:3px ridge #ff0000; 
  border-radius: 5%;
  cursor: pointer;
}


.maps-button.no-addMarker-btn {
  position: fixed;
  z-index: 800;  
  bottom: 10.0vh;  
  right: 7vw;     
  font-size: 1.4em;
  font-family:Georgia, 'Times New Roman', Times, serif;
   background-color: rgba(0,0,0,0.9);
  color: #ff0000;
  font-weight: bold;
  letter-spacing: 0.05em;  
  border: 0.2rem ridge #ff0000;
  border-radius: 50%;
  width: 80px;
  height:80px;
  cursor: pointer;
}

.maps-button:hover {
  background-color: rgba(0,255,255,1.0);
}

.maps-button-searchdatabase{
  position: absolute;
  z-index: 800;  
  bottom: 7.35vh; 
  right: 28.5vw; 
  font-size: 1.5rem;
  font-family: monospace;
  background-color: rgba(0,0,0,0.5);
  color: #ff0000;
  font-weight: bold;  
  border:3px ridge #ff0000; 
  border-radius: 50%;
  width: 80px;
  height:80px;
  cursor: pointer;
}


.maps-button-searchdatabase.no-addMarker-btn {
  position: fixed;
  z-index: 800;  
  bottom: 10.5vh;  
  right: 5vw;   
  padding: 0.7rem 1.0rem;
  font-size: 1.2rem;
  background-color: rgba(0,0,0,0.7);
  color: #ff0000;
  font-weight: bold;
  letter-spacing: 0.05rem;  
  border: 0.2rem ridge #ff0000;
  border-radius: 0.5rem;
  cursor: pointer;
}

.maps-button-searchdatabase:hover {
  background-color: rgba(0,255,255,1.0);
}

@media (min-width: 768px) {
  #searchButtonContainerBackground_control {
    position: absolute;
    z-index: 801;
    top: 5vh;
    left: 0.7em;
    background-color: rgba(0,0,0,0.0);
    border: 5px ridge #ff0000;
    border-radius: 10px;
    padding: 10px;
    display: flex;  
    flex-direction: column;
    --control-gap: 6px;
    gap: var(--control-gap);
    align-items: center;
    box-shadow:
      0 2px 4px rgba(0, 0, 0, 0.6),
      inset 0 1px 2px rgba(255, 255, 255, 0.1);
  }

  #searchButtonContainerBackground_control::before {
    content: none;
  }

  #searchButtonContainerBackground_control::after {
    clip-path: inset(0 0% 0 0%);
    border: 3px ridge #ff0000;
  }

  #btn9,
  #btn10,
  #btnNotifications,
  #btn11 {
    display: none !important;
  }
}

@media (max-width: 767px) {
  #searchButtonContainerBackground_control {
  position: absolute;
  z-index: 801;
  top: 5vh;
  left: 0.7em;
  background-color: none;
  border:none;
  border-radius: 0;
  padding: 10px;
  display: none;  
  flex-direction: column;
  --control-gap: 6px;
  gap: var(--control-gap);
  align-items: center;
  }

  #searchButtonContainerBackground_control button {
    position: relative;
    z-index: 1;
    width: 40px;
    height: 34px;
    font-size: 18px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;   
    background-color: rgba(0, 0, 0, 0.5); 
  }
}

/* ── App only — push down below status bar ── */
body.is-native-app #searchButtonContainerBackground.mobile-overlay-active {
  top: calc(60% + 40px);
}

#map {
  width: 100%;
  min-height: 97vh;
  overflow: hidden;
  display: flex; 
  justify-content: center; 
  align-items: center; 
  position: relative; 
}

.page-searchdatabase #map {
    position: relative;
    margin-top: 0;
    height: 100%;
    flex: 1;
    min-width: 200px;
    overflow: hidden;
}

@media (max-width: 767px) {
  #map {
    height: 100vh;
    min-height: unset; 
  }
}

body.is-mobile-browser #map {
    height: calc(100vh - 40px);
    min-height: unset;
}

body.is-native-app #map {
    height: 100vh;
    min-height: unset;
}

body.is-native-app .leaflet-bottom {
    bottom: -20px;
}


.letter {
  position: absolute;
  z-index: 800; 
  transform-origin: center; 
}

#letter-A { top: 0; left: 50%; transform: translate(-50%, 0); cursor:pointer;} 
#letter-B { top: 50%; left: 100%; transform: translate(0, -50%);  cursor:pointer;}
#letter-C { top: 100%; left: 50%; transform: translate(-50%, -100%);  cursor:pointer;}
#letter-D { top: 50%; left: 0; transform: translate(0, -50%);  cursor:pointer;}

.circle-link {
  position: absolute;
  z-index: 800;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-0deg); 
  text-decoration: none;
  color: #0000ff; 
  font-weight:bolder;
  font-size: 16px;
  text-align: center;
  pointer-events: auto;   
  width: 100px; 
  height: 100px; 
  background-color: #ffff00;
  border-radius: 50%; 
  display: flex; 
  justify-content: center; 
  align-items: center;   
}

.circle-link-container {
  display: flex;
  flex-direction: column;
  align-items: center;    
  gap: 10px;           
  position: absolute;
  top: 55%;
  right: 0.6%;
  transform: translateY(-50%);
  z-index: 800;
  border: 2px solid red;
  background-color: #dddddd;
  padding: 10px;
  border-radius: 10px;   
}

.circle-link-container.whsRome {
  top: 50%;
}


body.page-searchdatabase .circle-link-container {
    top: 60%;
}

.circle-link-whs {
  text-decoration: none;
  color: #FFFF00;
  font-weight: bolder;
  font-size: 16px;
  text-align: center;
  pointer-events: auto;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.circle-link-romanempire {
  position: absolute;
  z-index: 801;
  top: 53%;
  right: 1%;
  transform: translate(-50%, -50%) rotate(-0deg); 
  text-decoration: none;
  color: #FFFF00;
  font-weight:bolder;
  font-size: 16px;
  text-align: center;
  pointer-events: auto;  
  border-radius: 50%; 
  display: flex; 
  justify-content: center; 
  align-items: center; 
  cursor:pointer;
}

.oval-container {
  position: absolute;
  top: 50%;
  right: 1%;
  transform: translateY(-50%);
  background-color: white;
  border: 3px solid red;
  border-radius: 50px / 30px;
  padding: 20px 10px; 
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 800;
}

.circle-link-search {
  position: absolute;
  z-index: 800;
  top: 30%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-0deg); 
  text-decoration: none;
  color: #FFFF00;
  font-weight:bolder;
  font-size: 16px;
  text-align: center;
  pointer-events: auto;   
  border-radius: 50%; 
  display: flex; 
  justify-content: center; 
  align-items: center;
  cursor:pointer;
}

.circle-link-europe {
  position: absolute;
  z-index: 800;
  top: 70%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-0deg);
  text-decoration: none;
  color: #FFFF00; 
  font-weight:bolder;
  font-size: 16px;
  text-align: center;
  pointer-events: auto; 
  border-radius: 50%; 
  display: flex; 
  justify-content: center; 
  align-items: center;
  cursor:pointer;
}

.circle-container {
  position:absolute;
  z-index: 1001; 
  width: 680px;
  aspect-ratio: 1 / 1.2056;
  border: 20px groove #000000;
  border-radius: 50%;
  background-color: rgba(0, 0, 0, 0.5);
  display: none; 
  animation: rotate-circle 60s cubic-bezier(0.25, 0.1, 0.25, 1) infinite;
}

@keyframes rotate-circle {
  from {
      transform: rotate(0deg);
  }
  to {
      transform: rotate(360deg);
  }
}

@keyframes counter-rotate {
  from {
      transform: translate(-50%, -50%) rotate(0deg);
  }
  to {
      transform: translate(-50%, -50%) rotate(-360deg);
  }
}

@keyframes counter-rotate-circle {
  from {
    transform: translate(-50%, -50%) rotate(0deg); 
  }
  to {
    transform: translate(-50%, -50%) rotate(-360deg); 
  }
}

.circle-container .letter {
    animation: counter-rotate 60s cubic-bezier(0.25, 0.1, 0.25, 1) infinite;
}

.circle-container .circle-link, .circle-container .letter  {  
  animation: counter-rotate-circle 60s cubic-bezier(0.25, 0.1, 0.25, 1) infinite;
}

.circle-container:hover, 
.circle-container:hover .letter,
.circle-container:hover .circle-link,  
.letter:hover, .circle-link:hover {
    animation-play-state: paused;
}

.circle-container, .letter {
    animation-play-state: running;
} 

.reveal-button {
  position: relative;
  z-index: 800;
  display: block;
  margin: 20px auto;
  padding: 10px 20px;
  font-size: 16px;
  cursor: pointer;
  background-color: darkblue;
  color: white;
  border: none;
  border-radius: 5px;   
}

reveal-button:hover {
    background-color: navy;
}

.clearSelectionAddTo, .clearSelectionDeleteFrom {
    margin-top: 10px; 
    cursor: pointer;
}

.convert-to-decimal {
  width:100%;
}
 
.clearRadioButtonDeleteFrom {
  background-color:#ff0000;
}

.descBtnClear {
    display: flex;             
    flex-wrap: wrap;            
    align-items: center;        
    justify-content: space-between; 
    gap: 1rem;                
}

.checkbox-25 {
  width: 25px;
  height: 25px;
}

#communityMapLabel {
  display: block; 
  margin-bottom: 5px;
  margin-right:10px;
}

#communityMapLabel h6 {
  font-weight: bolder;
}

.input-container {
    display: flex;
    justify-content: space-around; 
    align-items: center; 
    width: 100%; 
}

.btn-group {
    display: flex;
    align-items: center; 
}

.btn-group label {
    margin-right: 5px;
}

h6.otherMaps {
    font-weight: bold;
    display: block;
    margin: 0;
    color: #000;
}

h6.deleteOtherMaps {
  font-weight:bold;
  color:#ff0000;
}

.whs-image-overlay {
  width: 150px;       
  height: 150px;     
  position: fixed;  
  z-index: 800;    
  top: 55%;          
  transform: translateY(-50%); 
  right:1px;
  cursor:pointer;
}

.otherMapsSidebar {
  position: fixed;
  z-index: 1001; 
  top: 0;
  left: -400px; 
  width: 400px;
  height: 97%;
  color: #000000;
  background-color: #f0f0f0;
  transition: left 0.3s ease-in-out; 
  overflow-y: auto; 
  box-shadow: 2px 0 5px rgba(0, 0, 0, 0.3);
}

@media screen and (max-width: 768px) {
  .otherMapsSidebar {
    width: 100vw;
    left: -100vw; 
    height: 100vh; 
  }
}

.trips-sidebar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 16px;
  background-color: purple;
  color: #000000;
  border-bottom:5px ridge #000000;
}

.trips-sidebar-header h2 {
    flex: 1;
    text-align: center;
    margin: 0;
}

.close-sidebar-icon {
  width: 25px;
  height: 25px;
}

.custom-flex-container {
    display: flex;
    justify-content: space-between; 
    align-items: center;
    gap: 0.5rem;
    width: 100%;
    padding: 0 0.5rem 0 0;          
    margin-top: 0.5rem;          
    margin-bottom: 0.5rem;
    padding-bottom: 0.5rem;      
}

  .clear-layers-markers {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 10px;           
    margin: 0;
    border: 3px ridge black;
    font-size: 1.0rem;
    font-weight: 900;
    border-radius: 0.25rem;
    cursor: pointer;
    text-align: center;
}

.danger-button {
    background-color: #dc3545;
    color: white;
}

.warning-button {
    background-color: #ffc107;
    color: black;
}

.custom-toggle-button {
    background-color: #198754;
    color: white;
}

/* .zoom-slider {
  color:white;
  font-weight:bold;
} */

.otherMapsSidebar p {
  padding: 16px;
}

#openSidebarButton {
  width: 75px; 
  height: auto; 
  position: absolute; 
  bottom: 100px;
  right: 1%;
  padding: 0;
  margin: 0; 
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; 
  cursor: pointer;
  border: 4px ridge purple;
}

#openSidebarButton.UNESCO {
  width: 125px; 
  height: auto;
  position: absolute;
  bottom: 100px; 
  right: 1%;
  padding: 0;
  margin: 0; 
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden; 
  cursor: pointer; 
  border:none;
  font-weight:bold;
}

#openSidebarButton.UNESCO:hover {
fill:#00ff00;
width:150px;
height:150px;
}

#openSidebarButton img {
  width: 100%;
  height: 100%; 
  object-fit: cover;
  display: block;
}

#openSidebarButton:hover {
  width: 150px;
  height: 150px;
}

a:focus { 
  color: #4892a0; 
  background-color:lightgrey;
  padding:10px;
  /* border:3px ridge purple; */
  border-radius:10px; 
}

.custom-tooltip-class {
  position: relative; 
  z-index: 800;
  background-color: rgba(200, 200, 200, 1.0);
  color: #333; 
  border:3px ridge #000000;
  border-radius: 5px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); 
  padding: 10px; 
  font-family: Arial, sans-serif;
}

.divFooter {
  margin-top: 7px;
  font-family: Consolas, "Courier New", monospace; 
  font-size: 0.5em;
  font-weight: bolder;
}

/* .slider-container {
  position: absolute;
  z-index: 800;
  margin-top: 10px;
  text-align: center;
  left: 50vw;
  bottom: 7vh;
  transform: translateX(-50%); 
  border: 1px ridge #ff0000;
  border-radius: 5px;
  padding: 5px 0;
  background-color: rgba(0, 0, 0, 0.9);
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.5);
}

@media (max-width: 768px) {
  .slider-container {
    display: none;
  }
}

.slider-container label {
   color:white;
   font-weight:bold;
   font-size: 1.2rem;
   font-family:monospace;
} */

/* #zoomSlider {
  position:relative;
  z-index:800;
  width: 80%;
  margin-top: 5px;
} */



/* ── Zoom level readout — index.php ───────────────────────── */
.page-home .slider-container {
    position: absolute;
    top: 5px;
    left: 8px;
    background: rgba(20,20,20,0.75);
    color: #fff;
    border: none;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 12px;
    pointer-events: none;
    white-space: nowrap;
    z-index: 1001;
}








.trips-sidebar-row-container {
  display: flex;
  align-items: center; 
  padding: 10px 0 10px 0;
  margin:0 5px 10px 5px;
  border: 1px solid #ddd;
  background-color:rgba(0, 0, 0, 0.3);
}

.trips-sidebar-row-container button {
  border:2px ridge #000000;
} 

.trips-sidebar-border a {
  margin-right:15px;
}

.trips-sidebar-border, .trips-sidebar-markers {
  vertical-align: middle; 
  margin-right: 5px; 
}

.trips-sidebar-border-countryName {
  font-weight:bold;
  font-size: 0.90em;
  margin-right:10px;
  color:#ffffff;
  cursor: default;
}

.trips-sidebar-row-container img {
  width:40px;
  height:auto;
  margin:0 5px 0 5px;
  cursor: pointer;
}

/* Lightbox overlay */
#sidebar-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.85);
  z-index: 99999;
  align-items: center;
  justify-content: center;
}
#sidebar-lightbox.active {
  display: flex;
}
#sidebar-lightbox-inner {
  position: relative;
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
}
#sidebar-lightbox-inner img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border: 2px solid #fff;
  border-radius: 4px;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
  display: block;
}
#sidebar-lightbox-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 40px;
  height: 40px;
  background: rgba(0,0,0,0.65);
  border: 3px ridge #ffffff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  color: #fff;
  cursor: pointer;
  user-select: none;
  line-height: 1;
  z-index: 1;
}

.border-markers {
  color: #00ff00;
  font-size: 0.90em;
} 

.sidebar-img {
  width: 50px; 
  height: auto;
}

.trips-sidebar-border {
  text-align: center;
}

.trips-sidebar-markers {
  text-align: center;
}

.info-button {
  padding: 5px 10px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

.info-button:hover {
  background-color: #0056b3;
}

#buttonContainer {
    text-align: center;
    margin-top: 10px;
}

.lineandmarker-button-container {
  background: rgba(150, 150, 150, 0.7); 
  padding: 10px;
  border-radius: 5px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  display: flex; 
  flex-direction: column; 
  gap: 10px; 
 }

.lineandmarker-button-container button {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: green; 
  color: white; 
  font-size: 25px; 
  font-weight: bold; 
  width: 50px; 
  height: 50px; 
  border: none; 
  border-radius: 50%; 
  cursor: pointer; 
  transition: background-color 0.3s ease, transform 0.2s ease; 
  position: relative; 
}

.lineandmarker-button-container button:hover {
  background-color: #004d00; 
  transform: scale(1.1); 
}

.lineandmarker-button-container button::before {
  content: ''; 
  position: absolute; 
  font-size: 30px; 
  display: block;
  line-height: 1; 
}

.icon-show-line::before {
  content: '\2192'; 
}

.icon-hide-line::before {
  content: '\21C6'; 
}

.icon-show-markers::before {
  content: '\1F441'; 
}

.icon-hide-markers::before {
  content: '\1F50D'; 
}

.map-marker-line-controls {
  border: 4px ridge #ff0000;
  border-radius:5%;
  padding: 6px;
  position:relative;
  right:1px;
}

.map-marker-line-controls button {
  background-color: #000000;
  border: none;
  color: lightgreen;
  padding: 10px;
  width: 26px;
  height: 26px;
  cursor: pointer;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.map-marker-line-controls button:hover {
  background-color: #333;
}

.map-marker-line-controls button:active {
  background-color: #555;
}

.map-marker-line-controls i {
  font-size: 20px; 
}

.maps-sidebar-header {
  position:sticky;
  top:0;
  background-color:#000000;
}

.whs-sidebar {
  position: fixed;
  z-index: 801;
  top: 0;
  left: -400px; 
  width: 400px;
  height: 100vh;
  background-color: #f4f4f4;
  box-shadow: 2px 0 5px rgba(0, 0, 0, 0.3);
  transition: left 0.3s ease;
  overflow-y: auto; 
}

.whs-sidebar-content {
  padding: 20px;
}

.whs-close-btn {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  float: right;
}

.romanempire-province-popup {
  max-width: none;       
  min-width: auto;       
  padding: 5px 10px;     
  font-size: 14px;        
}

@keyframes pulse {
  0% { 
      transform: scale(1); 
      opacity: 0.9;
      background-color: #000000; 
  }
  50% { 
      transform: scale(1.5); 
      opacity: 0.5;
      background-color: cyan; 
  }
  100% { 
      transform: scale(1); 
      opacity: 0.9;
      background-color: #000000; 
  }
}

.pulsating-circle {
  width: 10px;
  height: 10px;
  background-color: #ff0000; 
  border-radius: 50%;
  border: 3px ridge #999999;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  animation: pulseCurrentLocation 5.0s infinite;
}


@keyframes pulseCurrentLocation {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0; }
  50% { transform: translate(-50%, -50%) scale(1.5); opacity: 1.0; }
  100% { transform: translate(-50%, -50%) scale(1); opacity: 0; }
}

.current-location-tooltip {
  font-size: 1.5em;
  font-weight: bold;
  border-radius: 10%;
  background-color:#000000;
  color:#ffffff;
  border:none;
  padding:15px;
}

  .btn-primary {
    background-color: #007bff;
    color: white;
    border: 1px solid #007bff;
    padding: 10px 20px;
    font-size: 16px;
    border-radius: 5px;
    transition: background-color 0.3s ease, border-color 0.3s ease;
  }

  .btn-primary:hover {
    background-color: #0056b3;
    border-color: #0056b3;
  }

  .modal-footer .btn {
    padding: 8px 16px;
    font-size: 14px;
    border-radius: 4px;
  }

  .modal-footer .btn-secondary {
    background-color: #6c757d;
    color: white;
    border: none;
  }

  .modal-footer .btn-secondary:hover {
    background-color: #5a6268;
  }

  .modal-footer .btn-primary {
    background-color: #28a745;
    color: white;
    border: none;
  }

  .modal-footer .btn-primary:hover {
    background-color: #218838;
  }

  .modal-body .form-control {
    padding: 10px;
    font-size: 14px;
    border-radius: 4px;
    margin-bottom: 15px;
    width: 100%;
  }

  .modal-header .modal-title {
    font-weight: bold;
    font-size: 18px;
  }



.highlight {
  background-color: rgba(255, 215, 0, 0.35); 
  color: inherit;
  border-radius: 6px;
  padding: 0.15em 0.35em;
  box-decoration-break: clone;
}

#searchResultContainer {
  position: absolute;
  z-index: 1100;
  bottom: 3vh;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 255, 0, 1.0);
  color: rgba(0,0,0,1.0);
  border:2px ridge #ff00ff;
  font-weight:bolder;
  padding: 5px 10px;
  border-radius: 5px;
  display: none; 
  font-size: 1.0rem;
  text-align: center;
}

@media (max-width: 767px) {
  #searchResultContainer {
    bottom: 12vh;
}}

.matterhorn-circle{
  width: 45px;
  height: 45px;
  border-radius: 50%; 
  object-fit: cover;  
  display: block;     
}

.circular-image {
  width: 45px;
  height: 45px;
  border-radius: 50%; 
  object-fit: cover;  
  display: block;     
  border: 3px ridge #ff0000;
}

.popup-image-text {
  font-weight: bold;
  text-align: center;
  font-size: 0.8rem;
  color: #000000;
  margin-top: 20px;
}

@keyframes flashBorder {
  0%   { border-color: #ffff00; }
  50%  { border-color: transparent; }
  100% { border-color: #ffff00; }
}

.draw-mode-active {
  animation: flashBorder 0.5s infinite;
}



#elevationChart {
    position: fixed;      
    z-index: 800;       
    bottom: 0;            
    left: 0;
    width: 100%;          
    max-height: 40vh;         
    display: none;          
    background-color: rgba(0,0,0,1.0);
}

#pauseIndicator {
    position: absolute;
    z-index: 800; 
    right: 25px;
    top: 50vh;
    width: 25px;
    height: 25px;
    background-color: red;
    border-radius: 50%;
    border: 3px ridge #000000;
    display: none; 
    animation: blink 1s infinite;  
}

#toggleChartButton {
    position: absolute;
    z-index: 800;
    display: flex; 
    justify-content: center; 
    align-items: center; 
    right: 16px;
    top: 50vh;
    width: 40px;
    height: 40px;
    background-color: #777777;
    color: #00ff00;
    border: 3px ridge #ff0000;
    border-radius: 50%;
    cursor: pointer; 
    display: none; 
    transition: all 0.3s ease-in-out;
    padding: 0; 
}

#toggleChartButton:hover {
    background-color: #555555;
    transform: scale(1.1);
    border-color: #ff8800;
}

#toggleChartButton:active {
    transform: scale(0.95);
    background-color: #444444;
}

#toggleChartButton i {
    display: flex; 
    align-items: center;
    justify-content: center;  
    width: 60%; 
    height: 60%; 
    font-size: 150%; 
    color: white; 
    text-align: center;
    margin: auto; 
}

@keyframes blink {
    0% { background-color: red; }
    50% { background-color: #888888; }
    100% { background-color: red; }
}

.pulsating {
    animation: blink 12s infinite;
}

#toggleElevationCanvasBtn {
    position: absolute;
    z-index: 800;
    display: flex; 
    justify-content: center; 
    align-items: center; 
    right: 60px;
    top: 50vh;
    width: 40px;
    height: 40px;
    background-color: #000000;
    color: #00ff00;
    border: 3px ridge #ff0000;
    border-radius: 50%;
    cursor: pointer;   
    display: none; 
    transition: all 0.3s ease-in-out;
    padding: 0; 
}

#toggleElevationCanvasBtn:hover {
    background-color: #388E3C; 
    transform: scale(1.1);
}

#toggleElevationCanvasBtn:active {
    transform: scale(0.95);
    background-color: #2E7D32;
}

#toggleElevationCanvasBtn i {
    font-size: 20px;
    transition: transform 0.3s ease-in-out;
}

#toggleElevationCanvasBtn.active i {
    transform: rotate(180deg);
}

#chart-container {
  width: 100%;
  background: white;
  padding: 10px;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
  text-align: center;
  position: relative;
  bottom:0;
}

#tooltip {
  position: absolute;
  z-index: 800; 
  background: rgba(0, 0, 0, 0.85); 
  color: #ffffff;
  padding: 8px 12px; 
  border-radius: 5px;
  font-size: 14px; 
  font-weight: bold;
  display: none;
  pointer-events: none; 
  white-space: nowrap;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); 
  border: 1px solid #fff; 
  transition: opacity 0.3s ease-in-out, transform 0.2s ease-in-out;
  transform: scale(0.95);
}

#tooltip.show {
  animation: fadeIn 0.2s ease-in-out;
  opacity: 1;
  transform: scale(1);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

.emoji-marker {
  font-size: 35px;  
  line-height: 35px;
  text-align: center;
}

path.elevation-line {
  stroke-dasharray: 5000; 
  stroke-dashoffset: 5000; 
  animation: drawLine 2.5s linear forwards; 
}

@keyframes drawLine {
  to {
      stroke-dashoffset: 0;
  }
}

.chart-background {
  fill: linear-gradient(to bottom, rgba(135, 206, 250, 0.2), rgba(255, 255, 255, 0.7));
}

.grid line {
  stroke: #ccc; 
  stroke-opacity: 0.7;
  shape-rendering: crispEdges;
}

.grid path {
  display: none; 
}

.pulsating-circle-leadedgeline {
    width: 12px;
    height: 12px;
    background-color: red !important;  
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 10px red !important;  
    animation: pulse 1.5s infinite;
    border: 2px solid #000000; 
}

@keyframes pulse {
    0% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
    50% { transform: translate(-50%, -50%) scale(1.5); opacity: 1.0; }
    100% { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

#loading-spinner-elevationGraph {
  position: absolute;
  z-index: 800; 
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  font-size: 16px;
  color: #555;
  display: flex; 
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8);   
}

#loading-spinner-elevationGraph i {
  font-size: 2rem;
    color: #ff0000;
}

.coins-caches {
  position: absolute;
  z-index: 802;
  background-color: #000000;
  top: 0;
  left: 0;
  color: #ff0000;
  padding: 6px 10px;
  border-radius: 5px;
  border: 2px solid #ff0000;
  font-size: 14px;
  opacity: 0;
  transform: translate(0, 0);
  transition: transform 1.25s ease-in-out, opacity 1.25s ease-in-out;
  will-change: transform, opacity;
}

.coins-caches.show {
  opacity: 1;
  transform: translate(
    calc(50vw - 50%),  
    calc(50vh - 50%)   
  );
}

.toggle-location-btn {
  width: 33px;
  height: 33px;
  background-color: rgba(0,0,0,0.5);
  border: 3px ridge red !important;
  border-radius: 4px;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
  user-select: none;
  line-height: 1; 
}

.geojson-romanempire {
  border: 3px ridge purple;
  background-color:#adbc85;
  padding: 10px 20px;
  font-size: 1.0em;
  cursor: pointer;
}

.geojson-romanempire:hover { 
  background-color:#FFED29;  
}

.draggable-scale-wrapper {
  position: absolute;
  z-index: 801;
  top: 1.5%;
  left: 50%;
  max-height:100px;
  max-width:1000px;
  transform: translateX(-50%);
  cursor: grab !important; 
}

.fade-out {
  opacity: 1;
  transition: opacity 2s ease-out;
}

.fade-out.hidden {
    opacity: 0;
    display: none; 
}

.map-marker-line-controls.download-control,
.map-marker-line-controls.reset-control {
    display: none;
}

.marker-count {   
    display: none;
    position: absolute;
    z-index: 801;
    bottom: 75px; 
    right: 10px; 
    font-weight: bold;
    border: 3px ridge #ff0000;
    padding: 10px;
    color: #ff0000;
    border-radius: 5%;
    font-size: 1.0rem;
    background-color: rgba(0,0,0,0.9);
    font-family: monospace;
}

@media screen and (min-width: 768px) {
    .marker-count {
        display: block;
    }
}

.marker-count-value {
    font-size: 1.0rem;
}

.container-nextId {
    position: absolute;
    z-index: 801;
    top: 40%;
    left: 10px;
    font-size: 1.00rem; 
    font-weight: bold;    
}

.container-nextId button,
#nextId {
    line-height: 1.25rem;
    padding:10px;
}

.container-nextId button {
  border:3px ridge #ff0000; 
  border-radius:5%;
  background-color: rgba(0,0,0,0.5);  
  color:#00ffff; 
  padding: 40px 20px;
  font-family:monospace;
  font-weight: bold;
  font-size: 1.5rem;
}

.nextId-text {
  background-color:#ff0000;
  padding: 10px;
}

.nextId {
    position: relative;
    z-index: 801;
    color: #ff0000;
    font-size: 2.0rem;
    font-weight: bold;
    font-family: monospace;
    letter-spacing:0.1rem;
  }



















  .custom-sidebar {
    position: fixed;
    top: 0;
    left: -30vw;
    width: 30vw;
    height: 100vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background-color: #cccccc;
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.5);
    z-index: 1005;
    padding: 20px;
    transition: transform 0.3s ease;
}

@media (max-width: 767px) {
    .custom-sidebar {
        left: -100vw;
        width: 100vw;
        margin: 0;
        padding: 0;
    }
}

body.is-native-app .custom-sidebar {
    top: env(safe-area-inset-top);
    height: calc(100vh - env(safe-area-inset-top) - max(env(safe-area-inset-bottom), 24px));
}

.custom-sidebar.show {
    left: 0;
    transform: translateX(0);
}

.custom-sidebar.peek {
    transform: translateX(-100%);
}

.sidebar-peek-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    visibility: hidden;
    opacity: 0;
    position: fixed;
    top: 30vh;
    right: 0;
    left: auto;
    transform: translateY(-50%);
    width: 24px;
    height: 60px;
    background: #000000;
    color: #ffffff;
    border: 3px ridge #ff0000;
    border-right: none;
    border-radius: 8px 0 0 8px;
    z-index: 1003;
    cursor: pointer;
    font-size: 1.2em;
    text-align: center;
    touch-action: none;
    -webkit-tap-highlight-color: transparent;
}

.sidebar-peek-tab.show {
    visibility: visible;
    opacity: 1;
    left: auto !important;
    right: 0 !important;
}

.close-sidebar-btn {
  position: absolute;
  z-index: 1001;
  top: 30px;
  left: 30px;
  font-size: 2em;
  width: 40px;
  height: 40px;
  background: #cccccc;
  color: #ff0000;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding:0px 0px 5px 0px;
}

.sidebar-content {
  font-size:1.5rem;
  font-family:Georgia, 'Times New Roman', Times, serif; 
  line-height: 1.7;
}

.sidebar-europe {
    position: absolute;
    top: 0;
    left: 0;
    width: 33vw;
    max-height: 100%;
    overflow-y: auto;
    background-color: white;
    z-index: 1001 !important;
    display: none; 
    font-size:1.5rem;
    font-family:Georgia, 'Times New Roman', Times, serif; 
    line-height: 1.7;
}
.sidebar-europe.show {
    display: block;
}

.sidebar-markercontent-close-btn {
  position: absolute;
  top: 4%;
  right: 5.5%;
  font-size: 2.0rem;
  font-weight:bold;
  background-color: #bbbbbb;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  color: #ff0000;
  z-index: 801;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
}

@media (max-width: 767px) {
  .sidebar-markercontent-close-btn {
    position: absolute;
    top: 2%;
    right: 5.5%;
    font-size: 4.0em;
    font-weight:bold;
    background-color: #bbbbbb;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    color: #ff0000;
    z-index: 801;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
  }
}

.custom-zoom-control a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    background: white;
    color: black;
    text-decoration: none;
    font-size: 18px;
    font-weight: bold;
    border: 1px solid #ccc;
    box-sizing: border-box;
    transition: transform 0.2s ease;
    transform-origin: center center;
    user-select: none;
    outline: none;
    border-radius: 0 !important;    
}

.custom-zoom-control a:hover {
    transform: scale(1.5); 
    z-index: 1001;
}

.custom-zoom-control a:active,
.custom-zoom-control a:focus {
    outline: none;
    box-shadow: none;
    text-decoration: none;
}

.circular-video {
    width: 600px;
    height: 600px;
    object-fit: cover;
    border-radius: 50%;
    background-color: transparent;
    border: none;
    box-shadow: none;
}

@media screen and (max-width: 768px) {
  .hide-on-mobile {
    display: none !important;
  }
}

@media only screen and (min-width: 1024px) {
}

@media only screen and (min-width: 1200px) {
}

@media only screen and (min-width: 768px){   
  .right-sidebar-buttons-container button {
    position: relative;
    background-color: #000000;
    border: 2px solid #ffffff;
    border-radius:4px;
    width:3vw;
    height:3vw;
   }   

  #countryFlagHeaderText { 
    font-size:calc(var(--font16) * 1.0);
    letter-spacing: 0.3em;
  }

  .color-change-animation {
  animation: sideBarBtn 60s linear infinite; 
  }
  
  .j-circle-button-container {
  position:fixed;
  top:1%;
  text-align: right; 
  }
  
  .j-circle-button { 
  display: inline-block;
  font-size:calc(var(--font16) * 0.7);
  font-weight:bolder;
  border-radius: 50%;
  border:5px ridge #ff0000;
  width: 75px; 
  height: 75px;
  background-color: #007BFF; 
  border-radius: 50%; 
  color: #ffffff; 
  right:1.2%;
  text-align: center;
  line-height: 65px; 
  text-decoration: none; 
  margin-right: 10px; 
  animation:sideBarBtn 60s infinite;
  cursor:pointer;
  background-color:#111; 
  white-space: normal;
  }
  
  .j-circle-button-container div {
  display: inline-block; 
  }
  
  .j-centered-content {
    display: flex;
    justify-content: center; 
    align-items: center; 
    height: 100%; 
    padding-bottom:10px;
  }

  .register-title.card-title{
    display: block; 
    transform:scale(1.0);
  }

  #homeBodyWidth {
    width: 70%;
    max-width: 100%; 
    margin: 0 auto;
  } 

  #indexStatement {
    margin-top:5vh;
    margin-bottom:5vh;
    width:75vw;
    display: flex;
    justify-content: center;
    align-items: center;      
  }

  #indexStatementText {
    font-size:calc(var(--font16) * 1.25); 
  }
   
  .title-camel-css.camelRegister  {
    display: flex;
    justify-content: center;
    align-items: center;
  }  

  #registrationMainSection.container {
    width:40%;
    margin-top:100px;   
  }

  .reset-form {
    width:30%;
  }

  #registerResetBtn.reset {
    width:25%;
    border:1px ridge #ff0000;
  }

  #closeButtonUsers.large-screen {
    display:block;
    position: fixed;
    z-index:1;
    color:white;
    font-size:calc(var(--font16) * 1.25);	
    width: 100px;
    height: 100px;	
    right:1.2vw;
    font-weight:bolder;
    top: 1%;
    border-radius: 50%;	
    animation:sideBarBtn 60s infinite;
    cursor:pointer;
    background-color:#111; 
  } 

  #sidebarBTNAdminPage.j-centered-content {
    color: white;
    font-size: calc(var(--font16) *1.25);
    font-weight: bolder;
    top: 1%;
    border-radius: 50%;
    width: 100px;
    height: 100px;
    background-image: var(--main-image-url);
    background-repeat: no-repeat;
    background-size: cover; 
    animation: sideBarBtn 60s infinite;
    cursor: pointer;
    background-color: #111;
    line-height: 75px; 
    text-align: center;
    margin-left:1.5vw;
    padding: 0;
  }

  #sidebarBTNAdminPage.j-centered-content::first-letter {
  font-size: 150%;
  color: red;
  font-weight: bold;
  }

  #closeButtonAdminPage.large-screen {
  z-index:1;
  color:white;
  font-size:calc(var(--font16) * 1.25);	
  width: 100px;
  height: 100px;	
  font-weight:bolder;
  margin-right:1.5vw;
  top: 1%;
  border-radius: 50%;	
  animation:sideBarBtn 60s infinite;
  cursor:pointer;
  background-color:#111; 
  } 
          
  #trinity_video {
  width:400px;
  }

  #info-close-button-group-center-text>.info-close-button-group-center-text-htag{
    transform:scale(1.5);
  }

  #country-title.country-title-large-screen {
    transform:scale(1.5);
    letter-spacing: 0.3em;
  }

  #sideBarLinks-largeScreen.large-screen{
    display:block;
  }

  #sideBarLinks-smallScreen{
    display:none;
  }
} 

#openSidebarButton:hover,
#openSidebarButton.hover-active {
  width: 150px;
  height: 150px;
}


.text-container {
  height: 50px;
  display: flex;
  font-size: 1.5em;
  align-items: center;
  justify-content: center;
}

.otherMapsSidebar {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.hidden {
  left: -400px !important;
  transition: left 0.3s ease;
}

.show {
  left: 0 !important;
  transition: left 0.1s ease;
}

/* Desktop button - unchanged */
.nearby-markers-btn {
  position: absolute;
  bottom: 10vh;
  right: 0.5%;
  z-index: 802;
  font-size: 1.5em;
  cursor: pointer;
  border: 3px ridge #ff0000;
  padding: 10px;
  color: #ff0000;
  border-radius: 5%;
  font-weight: bold;
  background-color: rgba(0, 0, 0, 0.0);
  font-family: monospace;
}

/* Wrapper - visible on desktop, hidden on mobile until triggered */
.nearby-markers-wrapper {
  display: none;
}

@media (max-width: 767px) {
    .nearby-markers-wrapper {
        display: none;
    }
}

.nearby-markers-badge {
  display: none;
}

/* Trigger - hidden on desktop */
.nearby-markers-trigger {
  display: none;
  position: fixed;
  bottom: 5%;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: rgba(255,0,0,0.7);
  border: 25px ridge #ff0000;
  z-index: 1001;
  cursor: pointer;
}





/* .nearby-markers-trigger {
  display: none;
  position: fixed;
  bottom: 5%;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 1001;

 
  background: radial-gradient(circle, #ff4500 0%, #d32f2f 70%, #8b0000 100%);

  border: none;

  box-shadow: 0 0 15px 5px rgba(255, 0, 0, 0.5);
}

.nearby-markers-trigger.is-pulsing {
  animation: solar-pulse 3s infinite alternate ease-in-out;
}

@keyframes solar-pulse {
  0% {
    box-shadow: 0 0 10px 2px rgba(255, 0, 0, 0.6);
    filter: brightness(1);
  }
  100% {
    box-shadow: 0 0 30px 15px rgba(255, 255, 0, 0.8);
    filter: brightness(1.3);
  }
} */

















/* @media (max-width: 767px) {

  .nearby-markers-wrapper {
    display: none;
    position: fixed;
    bottom: 5%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
  }

  .nearby-markers-wrapper.visible {
    display: inline-block;
  }


  .nearby-markers-btn {
    position: relative;
    font-size: 1.0rem;
    width: 75vw;
    background-color: rgba(0, 0, 0, 1.0);
    display: block;
    transform: none;
    bottom: auto;
    left: auto;
  }


  .nearby-markers-badge {
    display: none;
    position: absolute;
    top: -10px;
    right: -10px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background-color: #ff0000;
    color: white;
    font-size: 0.8rem;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 1001;
    line-height: 1;
  }

  .nearby-markers-badge::after {
    content: '';
    position: absolute;
    inset: -35px;
    z-index: 1;
    display:none
  }

  .nearby-markers-trigger {
    display: none;
  }
} */

















.you-are-here-tooltip {
  background-color: rgba(0, 0, 0, 0.75);
  color: #fff;
  font-weight: bold;
  font-size: 3em;
  padding: 4px 8px;
  border-radius: 4px;
  box-shadow: 0 0 5px black;
}

.radius-tooltip {
  background: white;
  color: black;
  font-weight: bold;
  font-size: 2em;
  padding: 6px 10px;
  border-radius: 6px;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.3);
  text-align: center;
}

.leading-edge-tooltip {
  position: fixed !important;
  z-index: 9999 !important;
  pointer-events: none;
  white-space: nowrap;
  margin: 0 !important;
}

@media (max-width: 767px) {
  .leading-edge-tooltip {
    width: 80vw !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow: hidden;
  }
}

@media (max-width: 767px) {
    .polyline-measure-unicode-icon {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .circle-link-container {
        display: none !important;
    }
}

#btn11 {
  display: none;
}

@media (max-width: 767px) {
  #btn11 {
    display: inline-block;
    /* margin-top: 25px; */
  }
}

#mobileSearchCloseBtn {
  display: none;
}

@media (max-width: 767px) {
  #mobileSearchCloseBtn {
    display: block;
    /* margin-top: 15px; */
    border:5px ridge #999999;
  }
}

.diamond-marker div {
  width: 18px;
  height: 18px;
  background: linear-gradient(
    215deg,
    #66FF66 0%,    
    #00CC00 40%,   
    #008800 70%,   
    #006600 100%   
  );  
  border: 2px solid #002200;
  box-shadow:
      2px 2px 4px rgba(0, 0, 0, 0.7),
      inset -1px -1px 2px rgba(255, 255, 255, 0.35);
  position: relative; 
  transform: rotate(45deg); 
}

  .diamond-marker div::before,
  .diamond-marker div::after {
      content: '';
      position: absolute;
      top: 50%;
      left: 50%;
      width: 300%;   
      height: 1px;   
      background: rgba(0, 0, 0, 0.5);
      opacity:0.5
  }

  .diamond-marker div::before {
      transform: translate(-50%, -50%) rotate(45deg);
  }

  .diamond-marker div::after {
      transform: translate(-50%, -50%) rotate(-45deg);
  }

  .diamond-marker.contrast div {
  background: linear-gradient(
    215deg,
    #FF66FF 0%,
    #CC00CC 40%,
    #880088 70%,
    #660066 100%
  );
}

.diamond-marker.yellow div {
  background: linear-gradient(
    215deg,
    #FFF7A3 0%,
    #FFD84D 40%,
    #FFB800 70%,
    #E6A600 100%
  );
}

.diamond-marker.green div {
  background: linear-gradient(
    215deg,
    #A8E6A3 0%,
    #5FD36A 40%,
    #2FA84F 70%,
    #1E7F3A 100%
  );
}

.time { 
    display: inline-block;
    color: #666;
    font-size: 0.9em;
    font-family: sans-serif;
    background-color: #f3f3f3;
    padding: 3px 8px;
    border-radius: 5px;
    margin-bottom: 10px;
}

.time span.skim { color: #0073e6; font-weight: bold; }

.time span.deep { color: #e67300; font-weight: bold; }

h1, h2, h3 { margin-top: 1em; margin-bottom: 0.5em; }

hr { border: 0; border-top: 1px solid #ccc; margin: 1.5em 0; }

ul, ol { margin: 0 0 1em 1.5em; }

blockquote { border-left: 5px solid #cc0000; padding-left: 15px; color: #555; font-style: italic; margin: 1em 0; }

figure { margin: 1em 0; text-align: center; }

figcaption { font-size: 0.85em; color: #666; margin-top: 5px; }

strong { font-weight: bold; }

@media (max-width: 600px) {
    .time { font-size: 0.85em; padding: 2px 6px; }
    img { max-width: 100%; height: auto; }
}

.time time {
  font-size: 0.8em;
}
        
.travel-distance-tooltip {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3rem; 
  background: rgba(0, 0, 0, 0.8);
  color: #fff;
  padding: 20px 30px;
  border-radius: 10px;
  z-index: 9999;
  text-align: center;
}

.map-thinking {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 8px 12px;
    background-color: rgba(0,0,0,0.7);
    color: #fff;
    border-radius: 4px;
    font-size: 21px;
    z-index: 1000;
    text-align: center;
    display: none;
}

.map-toast {
        position: fixed;
        top: 80px;
        left: 50%;
        transform: translateX(-50%);
        background-color: rgba(0,0,0,0.75);
        color: #fff;
        padding: 8px 14px;
        border-radius: 8px;
        font-size: 16px;
        white-space: nowrap;
        z-index: 100006;
        opacity: 0;
        transition: opacity 200ms ease;
        
    }

.map-toast.visible {
    opacity: 1;
}

.modal { display: none; }
.modal.is-visible { display: block; }

.close-sidebar-button {
  cursor:pointer;
}

/* ── Remove line button — desktop ── */
#removeLineBtn {
    position: fixed;
    bottom: 15vh;
    left: -200px;
    top: auto;
    right: auto;
    width: 3vw;
    min-width: 60px;
    padding: 10px;
    background: #000000;
    color: white;
    border: 3px ridge #ff0000;
    border-radius: 50%;
    cursor: pointer;
    z-index: 1001;
    text-align: center;
    font-size: 1.5em;
    pointer-events: auto;
    touch-action: none;
    -webkit-tap-highlight-color: transparent;
    transition: left 0.3s ease;
}

#removeLineBtn.show {
    left: 50px !important;
    right: auto;
    transform: none;
}

#removeLineBtn::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 120%;
    left: 50%;
    transform: translateX(-50%);
    background: #333;
    color: white;
    padding: 6px 8px;
    border-radius: 4px;
    white-space: nowrap;
    font-size: 0.8rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

#removeLineBtn::before {
    content: "";
    position: absolute;
    bottom: 110%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 6px;
    border-style: solid;
    border-color: #333 transparent transparent transparent;
    opacity: 0;
    transition: opacity 0.2s ease;
}

#removeLineBtn:hover::after,
#removeLineBtn:hover::before {
    opacity: 1;
}

/* ── Remove line button — mobile ── */
@media (max-width: 767px) {
    #removeLineBtn {
        position: fixed;
        top: 40px;
        bottom: auto;
        left: 0;
        right: 0;
        display: none;
        width: 100%;
        max-width: 100vw;
        box-sizing: border-box;
        height: auto;
        padding: 10px 0;
        background-color: #4892a0;
        color: #fffdd0;
        font-size: 0;
        font-weight: bold;
        border: none;
        border-radius: 0 !important;
        min-width: unset !important;
        cursor: pointer;
        z-index: 1004;
        transform: translateY(-100%);
        transition: transform 0.3s ease;
        text-align: center;
        pointer-events: auto;
        touch-action: none;
        -webkit-tap-highlight-color: transparent;
    }


    body.is-mobile-browser #removeLineBtn {
        position: fixed;
        top: 0;
        bottom: auto;
        left: 0;
        right: 0;
        display: none;
        width: 100%;
        max-width: 100vw;
        box-sizing: border-box;
        height: auto;
        padding: 10px 0;
        background-color: #4892a0;
        color: #fffdd0;
        font-size: 0;
        font-weight: bold;
        border: none;
        border-radius: 0 !important;
        min-width: unset !important;
        cursor: pointer;
        z-index: 1004;
        transform: translateY(-100%);
        transition: transform 0.3s ease;
        text-align: center;
        pointer-events: auto;
        touch-action: none;
        -webkit-tap-highlight-color: transparent;
    }


       
    body.is-mobile-browser #removeLineBtn.show {
    display: block;
    position: fixed;
    left: 0 !important;
    right: 0;
    transform: translateY(0);
}

   #removeLineBtn.show {
    display: block;
    position: fixed;
    left: 0 !important;
    right: 0;
    transform: translateY(0);
}

    #removeLineBtn::after {
        content: 'Clear lines';
        font-size: 1rem;
        color: #fffdd0;
        opacity: 1;
        position: static;
        transform: none;
        background: none;
        padding: 0;
        border-radius: 0;
        white-space: nowrap;
        pointer-events: none;
    }

    #removeLineBtn::before {
        display: none;
    }

    #removeLineBtn:hover::after,
    #removeLineBtn:hover::before {
        opacity: 1;
    }
}

/* Styles a floating â€œClear Nearby Markersâ€ button and 'Remove Line' button*/
#clearNearbyBtn {
    position: fixed;
    bottom: 40vh;
    right: -200px;
    transform: translateY(-50%);
    z-index: 1001;
    background-color: #000;
    margin-right: 0.6vw;
    border: 3px ridge #ff0000;
    border-radius: 50%;
    color: white;
    font-size: 1.5em;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Tooltip box */
#clearNearbyBtn::after {
    content: attr(data-tooltip);
    position: absolute;
    right: 110%;
    top: 50%;
    transform: translateY(-50%);
    background: #333;
    color: white;
    padding: 6px 8px;
    border-radius: 4px;
    white-space: pre;
    font-size: 0.75rem;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

/* Arrow pointing right toward the button */
#clearNearbyBtn::before {
    content: "";
    position: absolute;
    right: 107%;
    top: 50%;
    transform: translateY(-50%);
    border-width: 6px;
    border-style: solid;
    border-color: transparent transparent transparent #333;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

#clearNearbyBtn:hover::after,
#clearNearbyBtn:hover::before {
    opacity: 1;
}

@media (max-width: 767px) {
    #clearNearbyBtn {
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100vw;
        height: auto;
        padding: 10px 0;
        background-color: #4892a0;
        color: #fffdd0;
        font-size: 0;
        font-weight: bold;
        border: none;
        border-radius: 0;
        cursor: pointer;
        z-index: 1001;
        display: none;
        align-items: center;
        justify-content: center;
        box-shadow: 0 -2px 8px rgba(0,0,0,0.3);
        transform: translateX(100vw);
        transition: transform 0.3s;
    }

    #clearNearbyBtn::after {
        content: 'Clear Markers';
        font-size: 0.9rem;
        position: static;
        transform: none;
        background: none;
        color: #fffdd0;
        padding: 0;
        opacity: 1;
        pointer-events: none;
        white-space: normal;
    }

    #clearNearbyBtn::before {
        display: none;
    }

 /* body.is-native-app #clearNearbyBtn {
        bottom: auto !important;
        top: 40px;
        box-shadow: 0 2px 8px rgba(0,0,0,0.3);
    } */

    body.is-native-app #clearNearbyBtn {
    bottom: max(env(safe-area-inset-bottom), 24px) !important;
    top: auto;
    box-shadow: 0 2px 8px rgba(0,0,0,0.3);
}

 #clearNearbyBtn.trail-active::after {
        content: 'Clear Nearby Markers';
    }
}

#clearSearchMarkersBtn {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100vw;
    height: auto;
    padding: 10px 0;
    background-color: #4892a0;
    color: #fffdd0;
    font-size: 0;
    font-weight: bold;
    border: none;
    border-radius: 0;
    cursor: pointer;
    z-index: 1001;
}

#clearSearchMarkersBtn::after {
    content: 'Clear Markers';
    font-size: 1rem;
    color: #fffdd0;
}

body.is-native-app #clearSearchMarkersBtn {
    bottom: max(env(safe-area-inset-bottom), 24px);
}
.custom-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    background-color: #000;   
    color: #000000;             
    padding-bottom: 0.25rem;  
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}

.image-wrapper {
    position: relative;
    width: 100%;
}

.image-wrapper img {
    width: 100%;
    border: 1px solid black;
    display: block; /* removes small bottom gap */
}

/* .result-card {
  font-size: 1.3rem;
} */

.result-card {
  font-size: 1.3rem;
}
.result-header {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}

.result-body {
    color: #1A4314;
    text-align: justify;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
}
.ai-fast-facts ul {
    text-align: left;
}

.result-description {
    /* width: 95%;
    margin: auto; */

    /* 1. Allows breaking ONLY at syllables/hyphens, not random characters */
    hyphens: auto;

    /* 2. Prevents the 'slicing' of words at random points */
    overflow-wrap: normal;

    /* 3. Modern engine logic to prevent orphans (single words on a line) */
    text-wrap: pretty;

    /* 4. Ensures the container doesn't overflow */
    max-width: 100% !important;
  }

.result-actions {
    width: 100%;
    text-align: center;
}

.map-embed-wrapper {
    width: 100%;
}

.map-embed-frame {
    width: 100%;
    height: 400px;
    border: 0; /* removes default iframe border */
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
    display: block; /* prevents small inline gap */
}


/* This is the css for the AI-generated content cards and related UI elements on the map. It includes styles for the last-updated row, refresh button, save button, loading state, and refreshed content banner, among others. The design focuses on a clean and modern look with clear typography and interactive elements that enhance user experience while maintaining readability and visual appeal. */

    /* ── Last-updated row ──────────────────────────────────────────── */
    .ai-last-updated {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 11.5px;
        color: #888;
        padding: 6px 14px 2px;
        letter-spacing: 0.03em;
        font-style: italic;
    }

    .ai-clock-icon { font-size: 13px; }

    .ai-modified-date {
        color: #aaa;
        font-weight: 600;
        font-style: normal;
    }

    /* ── Refresh button ────────────────────────────────────────────── */
    .ai-refresh-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin: 10px 0 6px;
        padding: 7px 18px;
        background: transparent;
        border: 1.5px solid #ff0000;
        color: #000000;
        border-radius: 20px;
        font-size: 12px;
        font-weight: bold;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        cursor: pointer;
        transition: background 0.18s, box-shadow 0.18s, transform 0.15s;
        font-family: inherit;
    }

    .ai-refresh-btn:hover:not(:disabled) {
        background: rgba(184,151,62,0.1);
        box-shadow: 0 0 12px rgba(184,151,62,0.25);
        transform: translateY(-1px);
    }

    .ai-refresh-btn:disabled {
        opacity: 0.90;
        cursor: default;
        transform: none;
    }

    .ai-refresh-btn.ai-btn-done {
        border-color: #4caf50;
        color: #4caf50;
    }

    /* Spinner inside button */
    .ai-btn-spinner {
        display: inline-block;
        width: 11px;
        height: 11px;
        border: 1.5px solid currentColor;
        border-top-color: transparent;
        border-radius: 50%;
        animation: ai-spin 0.7s linear infinite;
        vertical-align: middle;
    }

    @keyframes ai-spin { to { transform: rotate(360deg); } }

    /* ── Save button (admin only) ──────────────────────────────────── */
    .ai-save-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin: 0 0 6px 8px;
        padding: 7px 16px;
        background: transparent;
        border: 1.5px solid #5a8a5a;
        color: #5a8a5a;
        border-radius: 20px;
        font-size: 11.5px;
        font-weight: 600;
        letter-spacing: 0.07em;
        text-transform: uppercase;
        cursor: pointer;
        transition: background 0.18s, box-shadow 0.18s;
        font-family: inherit;
    }

    .ai-save-btn:hover:not(:disabled) {
        background: rgba(90,138,90,0.1);
        box-shadow: 0 0 12px rgba(90,138,90,0.25);
    }

    .ai-save-btn:disabled { opacity: 0.6; cursor: default; }

    .ai-save-btn-done {
        border-color: #4caf50 !important;
        color: #4caf50 !important;
    }

    /* ── Loading state inside description ──────────────────────────── */
    .ai-loading-state {
        display: flex;
        flex-direction: row;
        align-items: center;
        padding: 28px 10px;
        gap: 14px;
        text-align: center;
        color: #888;
        font-size: 13px;
        line-height: 1.6;
    }

  .ai-loading-dots {
      display: flex !important;
      justify-content: center !important;
      width: 100%;
      gap: 6px;
  }
    .ai-loading-dots span {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background: #b8973e;
          color: #000000 !important;;
        animation: ai-dot-bounce 1.2s ease-in-out infinite;
    }

    .ai-loading-dots span:nth-child(2) { animation-delay: 0.2s; }
    .ai-loading-dots span:nth-child(3) { animation-delay: 0.4s; }

    @keyframes ai-dot-bounce {
        0%, 80%, 100% { transform: scale(0.7); opacity: 0.4; }
        40%            { transform: scale(1);   opacity: 1;   }
    }

    /* ── Refreshed content banner ──────────────────────────────────── */
.ai-refreshed-banner {
    display: block;
    text-align: center;
    font-size: 13px;
    font-weight: bold;
    letter-spacing: 0.08em;
    color: #222222;
    background: rgba(184,151,62,0.08);
    border: 1px solid rgba(184,151,62,0.2);
    border-radius: 10px;
    padding: 3px 10px;
    margin-bottom: 12px;
    font-style: normal;
    direction: ltr;
}

  @media (max-width: 767px) {
    .ai-refreshed-banner {
        font-size: 0.55em;
        letter-spacing: 0.04em;
        padding: 3px 8px;
    }
}

    /* ── AI-generated content structure ────────────────────────────── */
    .ai-read-time {
        font-size: 11.5px;
        color: #888;
        margin-bottom: 10px;
        font-style: italic;
    }

    .ai-skim { color: #517ee7; font-weight: bold; }
    .ai-deep { color: #c25b39; font-weight: bold;}

    .ai-place-title {
        text-align: center;
        font-size: 1.2em;
        font-weight: 700;
        color: #1A4314;
        margin: 10px 0 6px;
        line-height: 1.3;
    }

    .ai-place-subtitle {
        font-size: 0.78em;
        font-weight: 400;
        color: #555;
        display: block;
        margin-top: 4px;
    }

    .ai-divider {
        border: 0;
        height: 2px;
        background-color: #1A4314;
        margin: 10px 0 14px;
    }

    #sidebar-descr p {
        font-size: 16.0px;
        color: #2a2a2a;
        line-height: 1.6;
        margin-bottom: 6px;
    }

    #sidebar-descr p strong {
        display: block;
        margin-top: 14px;
        margin-bottom: 4px;
        font-size: 16.0px;
        color: #1A4314;
    }

    #sidebar-descr ul {
        margin: 0 0 8px 18px;
        padding: 0;
    }

    #sidebar-descr ul li {
        font-size: 16.0px;
        color: #2a2a2a;
        margin-bottom: 4px;
        line-height: 1.5;
    }
  #sidebar-descr div:not(.ai-loading-dots):not(.ai-loading-state) {
    display: block !important;
    columns: unset !important;
    column-count: unset !important;
    flex: unset !important;
    grid: unset !important;
}

    /* ── Toast ─────────────────────────────────────────────────────── */
 .ai-toast {
        position: fixed;
        bottom: 50px;
        left: 50%;
        transform: translateX(-50%) translateY(12px);
        background: #1a1a2e;
        border: 1px solid #b8973e;
        color: #e0c97a;
        padding: 9px 22px;
        border-radius: 20px;
        font-size: 12px;
        letter-spacing: 0.06em;
        z-index: 100002; /* must exceed #trailPauseBtn (100001) — always topmost */
        opacity: 0;
        transition: opacity 0.3s, transform 0.3s;
        pointer-events: none;
        white-space: nowrap;
        box-shadow: 0 4px 20px rgba(0,0,0,0.4);
        max-width: calc(100vw - 32px);
        white-space: normal;
        text-align: center;
        box-sizing: border-box;
    }

    .ai-toast.visible {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    .ai-toast.ai-toast-error {
        border-color: #c0392b;
        color: #e07070;
    }

  /* This preserves all <a> tags from the original content and appends them at the bottom of the AI-generated content under a subtle divider. */
.ai-preserved-links {
    margin-top: 5px;
    margin-bottom: 20px;
    padding-top: 8px;
    /* border-top: 1px solid #ddd; */
    font-size: 0.85rem;
}

.ai-preserved-links-top {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ai-preserved-links-top a {
    font-size: 20px;
}


/* styling for disclaimer in sidebar for AI generated content */
.ai-disclaimer {
    font-size: 70%;
    font-weight: bold;
    color: #888;
    margin: 4px 0 8px;
    line-height: 1.4;
    text-align: center;
    width: 100%;
}


/* Black status bar banner — app only */
body.is-native-app #status-bar-cover {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: env(safe-area-inset-top);
    background-color: #000000;
    z-index: 99999;
}


/* Push searchModal below top black banner — app only */
body.is-native-app #searchModal .modal-dialog {
    margin-top: env(safe-area-inset-top);
}

/* Black bottom banner — app only */
body.is-native-app::after {
    content: '';
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: max(env(safe-area-inset-bottom), 24px);
    background-color: #000000;
    z-index: 99999;
}

/* marker cluster styling */
.marker-cluster span {
    color: #000000;
    font-weight: bold;
    font-size: 16px;
}

.marker-cluster-large {
    width: 55px !important;
    height: 55px !important;
    margin-left: -25px !important;
    margin-top: -25px !important;
}

.marker-cluster-large div {
    width: 45px !important;
    height: 45px !important;
    margin-left: 5px !important;
    margin-top: 5px !important;
    line-height: normal !important;
    font-size: 12px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.ai-fast-facts {
    background-color: rgba(0,0,0,0.05);
    border-left: 4px solid #1A4314;
    border-radius: 4px;
    padding: 10px 15px;
    margin: 10px 0;
    font-size: 0.9rem;
}

.ai-fast-facts-title {
    font-weight: bold;
    display: block;
    margin-bottom: 6px;
    font-size: 1.0rem;
}

.ai-fast-facts ul {
    margin: 0;
    padding-left: 20px;
}

.ai-fast-facts li {
    margin: 3px 0;
}

#sidebar-descr {
   padding-top: 0 !important;
}

/* UNESCO font sizing in sidebar */
@media (max-width: 767px) {
    .ai-preserved-links-top a {
        font-size: 1.0rem;
    }
}

/* ── Suggest a Place Modal ──────────────────────────────────────────────── */
.suggest-modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.6);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.suggest-modal-box {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    width: 90%;
    max-width: 420px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}

.suggest-modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    font-size: 1.6em;
    cursor: pointer;
    color: #333;
    line-height: 1;
}

.suggest-modal-title {
    margin: 0 0 8px 0;
    font-size: 1.2em;
    font-weight: bold;
    color: #1A4314;
}

.suggest-modal-instructions {
    font-size: 0.80em;
    color: #666;
    margin-bottom: 16px;
}

.suggest-field {
    margin-bottom: 14px;
}

.suggest-field label {
    display: block;
    font-size: 0.8em;
    font-weight: bold;
    color: #333;
    margin-bottom: 4px;
}

.suggest-field input {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 0.95em;
    box-sizing: border-box;
}

.suggest-field input[readonly] {
    background: #f5f5f5;
    color: #666;
}

.suggest-coords {
    display: flex;
    gap: 12px;
}

.suggest-coords > div {
    flex: 1;
}

.suggest-category-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}


.suggest-cat-toggle {
    grid-column: 1 / -1;
    background: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 4px 0;
    font-size: 0.8rem;
    color: #555;
    cursor: pointer;
    margin-top: 4px;
}
.suggest-cat-toggle:hover {
    background: #f5f5f5;
}








@media (max-width: 767px) {
    .suggest-category-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.suggest-cat-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 6px 4px;
    border: 2px solid #ddd;
    border-radius: 8px;
    background: #f9f9f9;
    cursor: pointer;
    font-size: 1.4em;
    line-height: 1.2;
    transition: all 0.15s ease;
}

.suggest-cat-btn span {
    font-size: 0.45em;
    color: #555;
    margin-top: 2px;
}

.suggest-cat-btn.selected {
    border-color: #1A4314;
    background: #e8f5e9;
}

.suggest-cat-btn:hover {
    border-color: #1A4314;
    transform: translateY(-2px);
}

.suggest-error {
    color: #cc0000;
    font-size: 0.85em;
    margin-bottom: 10px;
    padding: 8px;
    background: #fff0f0;
    border-radius: 6px;
}

.suggest-submit-btn {
    width: 100%;
    padding: 12px;
    background: #1A4314;
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1em;
    font-weight: bold;
    cursor: pointer;
    transition: background 0.2s ease;
}

.suggest-submit-btn:hover {
    background: #2a6020;
}

.suggest-submit-btn:disabled {
    background: #999;
    cursor: not-allowed;
}

/* ── Suggest crosshair cursor when picking location ─────────────────────── */
.map-picking-location {
    cursor: crosshair !important;
}

.suggest-location-btns {
    display: flex;
    gap: 8px;
}

.suggest-pick-btn {
    flex: 1;
    padding: 10px;
    background: #1A4314;
    color: #fff;
    border: 5px ridge #999999;
    border-radius: 8px;
    font-size: 0.9em;
    cursor: pointer;
    transition: background 0.2s ease;
}

.suggest-pick-btn:hover {
    background: #2a6020;
}

#suggest-mylocation-btn {
    background: #89cff0;
    color: #000;
    font-weight:bold;
   
}

#suggest-mylocation-btn:hover {
    background: #6db8e0;
}

.suggest-category-grid {
  font-weight: bold;
}

.suggest-footnote {
    margin-top: 12px;
    text-align: center;
}

.suggest-footnote p {
    font-size: 0.95em;
    color: #666;
    margin: 0;
    font-weight: bold;
}
/* ── Comments Feature ───────────────────────────────────────────────────────── */

/* Sidebar comments row — visit badge floats right, comments content takes left.
   Used by openPlaceSidebar() in mapConstructor_Search.js when injecting
   the visit count badge into #sidebar-comments. */
#sidebar-comments {
    padding: 0 16px 0;
    overflow: visible;
}

.sidebar-comments-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
}

.sidebar-visit-badge {
    font-size: 0.8rem;
    color: #555;
    padding: 2px 8px;
    border-radius: 12px;
    background: #f0f0f0;
    border: 1px solid #ddd;
    white-space: nowrap;
    margin-left: auto;
}

.comments-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.comments-section-title {
    font-size: 0.7em;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #888;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 4px;
    flex: 1;
}

.comment-item {
    background: #f9f9f9;
    border-left: 3px solid #1A4314;
    border-radius: 0 6px 6px 0;
    padding: 8px 10px;
    margin-bottom: 8px;
    position: relative;
}

.comment-item-text {
    font-size: 0.88em;
    color: #333;
    margin-bottom: 4px;
    line-height: 1.45;
}

.comment-item-meta {
    font-size: 0.75em;
    color: #999;
    display: flex;
    align-items: center;
    gap: 8px;
}

.comment-item-author {
    font-weight: bold;
    color: #555;
}

.comment-flag-btn {
    background: none;
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.72em;
    color: #bbb;
    padding: 2px 6px;
    margin-left: auto;
    transition: color 0.15s, border-color 0.15s;
}

.comment-flag-btn:hover {
    color: #cc3333;
    border-color: #cc3333;
}

.comment-flag-btn.flagged {
    color: #ff9900;
    border-color: #ff9900;
    cursor: default;
}

.comment-flag-form {
    display: none;
    margin-top: 6px;
    padding: 8px;
    background: #fff0f0;
    border: 1px solid #ffcccc;
    border-radius: 6px;
}

.comment-flag-form textarea {
    width: 100%;
    padding: 6px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.82em;
    font-family: inherit;
    resize: vertical;
    box-sizing: border-box;
}

.comment-flag-form .flag-submit-btn {
    background: #cc3333;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 4px 12px;
    font-size: 0.82em;
    cursor: pointer;
    margin-top: 6px;
}

.comment-flag-form .flag-submit-btn:hover {
    background: #aa2222;
}

.comment-flag-form .flag-cancel-link {
    font-size: 0.8em;
    color: #888;
    cursor: pointer;
    margin-left: 10px;
    text-decoration: underline;
}

.comment-flag-form .flag-error {
    font-size: 0.78em;
    color: #cc3333;
    margin-top: 4px;
    display: none;
}

.add-experience-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    margin-top: 0;
    padding: 8px 14px;
    background: transparent;
    border: 2px solid #1A4314;
    border-radius: 20px;
    color: #1A4314;
    font-size: 0.88em;
    font-weight: bold;
    cursor: pointer;
    text-align: center;
    transition: background 0.15s, color 0.15s;
}

.add-experience-btn:hover {
    background: #1A4314;
    color: #fff;
}

.comments-empty {
    font-size: 0.84em;
    color: #aaa;
    font-style: italic;
    margin-bottom: 6px;
}

.suggest-char-counter {
    font-size: 0.78em;
    color: #888;
    text-align: right;
    margin-top: 3px;
}

/* ── Suggest type choice ───────────────────────────────────────────────── */
.suggest-type-choice {
    display: flex;
    flex-direction: row;
    gap: 8px;
    margin-bottom: 4px;
}

.suggest-type-option {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 10px 12px;
    border: 1.5px solid #ddd;
    border-radius: 8px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    background: #f8f9fa;
}

.suggest-type-option:has(input:checked) {
    border-color: #489ca0;
    background: rgba(72,156,160,0.08);
}

.suggest-type-option input[type="radio"] {
    margin-top: 3px;
    accent-color: #489ca0;
    flex-shrink: 0;
}

.suggest-type-icon {
    font-size: 1.2em;
    flex-shrink: 0;
    margin-top: 1px;
}

.suggest-type-header {
    display: flex;
    align-items: center;
    gap: 6px;
}

.suggest-type-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.suggest-type-text strong {
    font-size: 0.95em;
    color: #2c3e50;
}

.suggest-type-text small {
    font-size: 0.8em;
    color: #666;
    line-height: 1.3;
}

@media (max-width: 480px) {
    .suggest-type-choice {
        flex-direction: column;
    }
}

.comments-toggle-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    cursor: pointer;
    font-size: 0.78em;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #888;
    padding: 4px 0;
    width: 100%;
    text-align: left;
    border-bottom: 1px solid #e0e0e0;
    margin-bottom: 0;
}

.comments-toggle-btn:hover {
    color: #555;
}

.comments-toggle-chevron {
    font-size: 0.75em;
    transition: transform 0.2s;
}

.comments-collapsible {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease;
}

.content-lock-badge {
    font-size: 0.75em;
    color: #2a7a2a;
    background: #f0f7f0;
    border: 1px solid #c3ddc3;
    border-radius: 4px;
    padding: 4px 10px;
    margin: 0 16px 8px;
    display: inline-block;
}

.content-lock-toggle-btn {
    background: none;
    border: 3px ridge #888888;
    border-radius: 5px;
    color: #ffffff;
    background-color:#000000;
    font-size: 0.8em;
    font-weight: bold;
    padding: 5px 12px;
    cursor: pointer;
    margin-top: 6px;
}

.content-lock-toggle-btn:hover {
    border-color: #00ff00;
    color: #ffffff;
    background-color:#666666;
}

.ai-btn-locked {
    opacity: 0.5;
    cursor: not-allowed;
}

.content-lock-msg {
    font-size: 0.8em;
    color: #888;
    margin: 4px 0 0;
}



.road-btn {
    display: block;
    width: 100%;
    margin-top: 8px;
    padding: 8px 12px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 1.2rem;
    font-weight:bold;
    text-align: center;
}
.road-btn:hover {
    background-color: #2a6020;
}

#countryDropdown div:hover {
    background: #f0f7ee;
}

/* ─── Route Planner ──────────────────────────────────────────────────────── */

.route-trigger-btn {
    color: #FF4dc0;
    background-color: #ff4dc8;
    /* margin-top: 20px; */
}
.route-trigger-btn.active {
    background-color: rgba(255,77,192,0.15);
}

.route-panel {
    display: none;
    position: fixed;
    top: 3vh;
    left: 0.7em;
    width: 310px;
    height: auto;
    background: linear-gradient(160deg, #111, #1a1a1a);
    border: 2px ridge #FF4dc0;
    border-radius: 12px;
    padding: 12px;
    z-index: 1005;
    font-family: monospace;
    color: #eee;
    font-weight: bold;
}
.route-panel-open {
    display: block;
}

@media (max-width: 767px) {
    .route-panel {
        top: auto;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 92vw;
        height: 275px;
        max-height: 60vh;
        overflow-y: auto;
        border-radius: 12px 12px 12px 12px;
        padding-bottom: 12px;
    }
}

body.is-mobile-browser .route-panel {
    top: calc(3vh + 40px);
}

body.is-native-app .route-panel {
    top: calc(3vh + 80px);
}
@media (max-width: 767px) {
    body.is-native-app .route-panel {
        bottom: 40px;
    }
}

.route-panel-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    cursor: grab;
}
.route-panel-header.dragging {
    cursor: grabbing;
}
.route-panel-title {
    color: #FF4dc0;
    font-weight: bold;
    font-size: 0.95em;
}
.route-panel-close {
    background: none;
    border: none;
    color: #888;
    font-size: 1.2em;
    cursor: pointer;
    line-height: 1;
}

.route-field-row {
    margin-bottom: 10px;
    position: relative;
}
.route-field-label {
    display: block;
    font-size: 0.72em;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 4px;
}
.route-input-group {
    display: flex;
    gap: 6px;
}

.route-input {
    flex: 1;
    background: rgba(255,255,255,0.06);
    border: 1px solid #444;
    border-radius: 6px;
    color: #fff;
    padding: 6px 8px;
    font-size: 0.85em;
    min-width: 0;
}
.route-input:focus {
    outline: none;
    border-color: #FF4dc0;
}

.route-pick-btn {
    background: rgba(255,255,255,0.06);
    border: 1px solid #444;
    border-radius: 6px;
    color: #FF4dc0;
    padding: 0 10px;
    cursor: pointer;
    font-size: 1em;
    flex-shrink: 0;
}
.route-pick-btn:hover {
    background: rgba(255,77,192,0.15);
    border-color: #FF4dc0;
}

.route-suggestions {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #1a1a1a;
    border: 1px solid #FF4dc0;
    border-radius: 0 0 6px 6px;
    max-height: 180px;
    overflow-y: auto;
    z-index: 1010;
}
.route-suggestion-item {
    padding: 7px 10px;
    font-size: 0.8em;
    border-bottom: 1px solid #2a2a2a;
    cursor: pointer;
}
.route-suggestion-item:hover {
    background: rgba(255,77,192,0.15);
}

.route-radius-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 0.8em;
    color: #888;
    flex-wrap: wrap;
}
.route-radius-btn {
    border: 1px solid #555;
    background: rgba(255,255,255,0.05);
    color: #aaa;
    border-radius: 20px;
    padding: 3px 10px;
    cursor: pointer;
    font-size: 0.8em;
}
.route-radius-btn.active {
    border-color: #FF4dc0;
    color: #FF4dc0;
}

.route-actions {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}
.route-search-btn {
    flex: 1;
    background: #FF4dc0;
    color: #000;
    font-weight: bold;
    border: none;
    border-radius: 6px;
    padding: 8px;
    cursor: pointer;
    font-size: 0.85em;
}
.route-search-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.route-clear-btn {
    background: transparent;
    border: 1px solid #555;
    color: #aaa;
    border-radius: 6px;
    padding: 8px 12px;
    cursor: pointer;
    font-size: 0.85em;
}
.route-clear-btn:hover {
    border-color: #ff0000;
    color: #ff0000;
}

.route-status {
    font-size: 0.78em;
    text-align: center;
    color: #888;
    min-height: 1.2em;
    word-break: break-word;
}
.route-status.route-status-error {
    color: #ff6666;
}

.route-endpoint-marker {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 14px;
    color: #fff;
    line-height: 1;
}



/* ── Route planner mic button — matches pick btn style ────────────────────── */
.route-input-group .fn-mic-btn {
    background: rgba(255,255,255,0.06);
    border: 1px solid #444;
    border-radius: 6px;
    color: #fff;
    padding: 0 8px;
    cursor: pointer;
    font-size: 0.85em;
    flex-shrink: 0;
    position: static;
    top: auto;
    right: auto;
    height: auto;
    width: auto;
}
.route-input-group .fn-mic-btn:hover {
    background: rgba(255,77,192,0.15);
    border-color: #FF4dc0;
}
.route-input-group .fn-mic-btn.fn-mic-recording {
    border-color: #FF4dc0;
    color: #FF4dc0;
}
 
/* sidebar goggle iframe */
.iframeGoogle { 
  margin: 0 auto 0 auto; 
  height: 400px; 
  width: 100%;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5)
}

@media (max-width: 767px) {
    body.is-native-app .custom-sidebar {
    top: env(safe-area-inset-top);
    height: calc(100vh - env(safe-area-inset-top) - max(env(safe-area-inset-bottom), 24px));
}
}

/* ── Onboarding Panel 
   Slides in from the right on first trigger button tap (mobile only).
   Shows once per session; permanently suppressed via localStorage if user
   checks "Don't show this again". Dismissed via close button only.
   On close: reveals map controls and nearby markers trigger as normal. */
   .onboarding-panel {
    position: fixed;
    top: 0;
    right: -100%;
    width:100%;
    /* width: 85%; */
    /* max-width: 320px; */
    height: 100%;
    background: rgba(20, 20, 20, 0.97);
    color: #fff;
    z-index: 2000;
    padding: calc(env(safe-area-inset-top) + 50px) 20px calc(max(env(safe-area-inset-bottom), 24px) + 30px) 20px;
    box-sizing: border-box;
    overflow-y: auto;
    transition: right 0.35s ease;
    box-shadow: -4px 0 20px rgba(0,0,0,0.6);
}

.onboarding-panel.open {
    right: 0;
}

.onboarding-close {
    background: none;
    border: none;
    color: #fff !important;
    font-size: 1.8rem;
    cursor: pointer;
    line-height: 1;
    z-index: 2001;
    margin-left: auto;
}

.onboarding-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
    border-bottom: 1px solid #444;
    padding-bottom: 10px;
}

.onboarding-title {
    font-size: 1.1rem;
    font-weight: bold;
    color: #FF4dc0;
    margin: 0 0 0 20px;
    padding: 0;
    border-bottom: none;
}

.onboarding-list {
    list-style: none;
    padding: 0;
    margin: 0 0 24px 0;
}

.onboarding-list li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 1.08rem;
    line-height: 1.4;
}

.onboarding-emoji {
    font-size: 1.3rem;
    min-width: 28px;
    text-align: center;
}

.onboarding-desc {
    color: #ddd;
}

.onboarding-checkbox-label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.85rem;
    color: #aaa;
    cursor: pointer;
}

.onboarding-checkbox-label input {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.onboarding-about-content {
    padding: 8px 4px;
    font-size: 13px;
    line-height: 2.0;
    color: #eee;
}

.onboarding-about-content p {
    margin: 0 0 12px 0;
    line-height: 2.0;
    text-indent: 1.5em;
}

.onboarding-about-content .footer-cities {
    text-align: center;
    font-size: 11px;
    color: #FF4dc0;
    letter-spacing: 0.05em;
    margin-top: 8px;
    padding:0px 25px;
}

.onboarding-about-content .footer-bottom {
    font-size: 12px;
    color: #aaa;
    text-align: left;
    margin: 6px 0 0 0;
}

.onboarding-about-content .footer-bottom a {
    color: #aaa;
    text-decoration: none;
}

.onboarding-about-content .footer-disclaimer {
    font-size: 11px;
    color: #888;
    margin: 6px 0 0 0;
    text-align: center;
    padding: 0 35px;
}

/* ── Onboarding explore button ───────────────────────────────── */
.onboarding-explore-btn {
    display: block;
    width: 100%;
    margin-top: 0;
    margin-bottom: 20px;
    padding: 12px;
    background: #4892a0;
    color: #fff;
    border-radius: 20px;
    font-size: 1rem;
    font-weight: bold;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    box-sizing: border-box;
    transition: background 0.15s;
}
.onboarding-explore-btn:hover {
    background: #3a7a88;
    color: #fff;
}

/* on searchdatabase.php the number of visitors */
#numberOfVisitors {
  position:fixed;
  bottom:35px;
  right:400px;
  background:#1A4314;
  color:#fff;
  padding:10px 16px;
  border-radius:8px;
  font-family:Arial,sans-serif;
  font-size:0.85rem;
  z-index:9999;
  border:1px ridge #ff0000;
}

/* location of number of visitors on place cards */
.visitedPlaceCard {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:auto;
}

.place-card {
    display: flex;
    flex-direction: column;
}





/* =====================================================
   MOST VISITED PLACE CARD
   camel_maps/index.php — below .cta-banner
   ===================================================== */

.most-visited-card {
  display: none !important;
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: linear-gradient(135deg, rgba(255,215,0,0.15), rgba(255,165,0,0.10));
  border: 1px solid rgba(255,200,0,0.35);
  border-radius: 12px;
  padding: 12px 16px;
  margin: 10px 16px 4px;
  cursor: pointer;
  transition: background 0.2s;
  align-items: center;        /* ← centers children horizontally in column flex */
  text-align: center;         /* ← centers inline text */
}

.most-visited-card:active {
  background: linear-gradient(135deg, rgba(255,215,0,0.25), rgba(255,165,0,0.18));
}
.most-visited-header {
  display: flex;
  align-items: center;
  gap: 6px;
}
.most-visited-trophy {
  font-size: 16px;
  line-height: 1;
}
.most-visited-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #b8860b;
  opacity: 0.85;
}
.most-visited-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.most-visited-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--text-primary, #222);
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.most-visited-badge {
  font-size: 12px;
  font-weight: 600;
  background: rgba(255,200,0,0.25);
  color: #7a6000;
  border-radius: 20px;
  padding: 2px 10px;
  white-space: nowrap;
  flex-shrink: 0;
}

@media (max-width: 767px) {
  .most-visited-card {
    margin: 10px auto 4px;
    width: calc(100% - 32px);
  }
}

/* Advisory open button */
.advisory-open-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: rgba(0, 0, 0, 0.08);
    color: #2c5f2e;
    border: 1px solid rgba(0, 0, 0, 0.2);
    border-radius: 24px;
    font-size: 0.95rem;
    font-weight: bold;
    cursor: pointer;
    transition: background 0.2s;
}
.advisory-open-btn:hover {
    background: rgba(0, 0, 0, 0.14);
}

/* Modal overlay */
.advisory-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    z-index: 9000;
    align-items: flex-end;
    justify-content: center;
}
.advisory-modal-overlay.advisory-modal-visible {
    display: flex;
}

/* Modal panel — bottom sheet on mobile */
.advisory-modal {
    background: #1e1e2e;
    width: 100%;
    max-width: 680px;
    max-height: 85vh;
    margin-bottom: 75px;
    border-radius: 16px 16px 16px 16px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
@media (max-width: 767px) {
    .advisory-modal {
        max-height: calc(100vh - 40px);
        margin-bottom: 0;
    }
}
/* Header */
.advisory-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    flex-shrink: 0;
}
.advisory-modal-header h2 {
    margin: 0;
    font-size: 1.05rem;
    color: #fff;
}
.advisory-modal-close {
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.6);
    font-size: 1.6rem;
    cursor: pointer;
    line-height: 1;
    padding: 0 4px;
}
.advisory-modal-close:hover {
    color: #fff;
}

/* Scrollable body */

.advisory-modal-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.82rem;
    line-height: 1.6;
    overflow-wrap: break-word !important;
    word-break: normal;
    hyphens: auto !important;
}

.advisory-modal-body p {
    margin-bottom: 1rem;
}

.advisory-modal-body ul {
    padding-left: 1.2rem;
    margin-bottom: 1rem;
}

.advisory-modal-body ul li {
    margin-bottom: 0.4rem;
    list-style: disc;
}

.advisory-modal-body hr {
    border: none;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin: 1rem 0;
}

.advisory-modal-body strong {
    color: #fff;
}

.advisory-disclaimer {
    font-size: 0.1.0rem;
    color: #45553E;
    background: #EfffE8;
    border: 1px solid #b7d9b0;
    border-radius: 8px;
    padding: 8px 12px;
    font-family: Arial, sans-serif;
    line-height: 1.5;
    margin-top: 24px;
}

.advisory-risk-pill {
    display: inline-block;
    padding: 3px 12px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-family: Arial, sans-serif;
    font-weight: bold;
    margin-bottom: 14px;
}
.advisory-risk-pill.risk-normal  { background: #d4edda; color: #155724; }
.advisory-risk-pill.risk-some    { background: #fff3cd; color: #856404; }
.advisory-risk-pill.risk-high    { background: #ffe0b2; color: #7a3d00; }
.advisory-risk-pill.risk-extreme { background: #f8d7da; color: #721c24; }
.advisory-risk-pill.risk-unknown { background: #e9e9e9; color: #555; }

/* custom Fonts */
.calligraphy {
      font-family: 'Great Vibes', cursive;
      font-size: 1.5rem; /* Makes it stand out */
      color: #aaaaaa;   
    }

.arabic-style {
  /* Applying the font */
  font-family: 'Aref Ruqaa', serif;
  
  /* Styling to enhance the calligraphic feel */
  font-size: 1.5rem;
  letter-spacing: 1px;
  color: #8B4513; /* A 'Saddle Brown' for a map feel */
  font-weight: 700;
}


/* ── Camel walk-in tooltip ───────────────────────────────────────────────── */
#triggerTooltipEl {
    position: fixed;
    background: none;
    color: #fff;
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 13px;
    width: auto;
    z-index: 9999;
    pointer-events: none;
    text-align: center;
    visibility: hidden;
    display: none;
    text-shadow: 0 1px 3px rgba(0,0,0,0.9), 0 0 6px rgba(0,0,0,0.9);
}

.camel-tooltip-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    animation: camelWalkIn 5s ease-out forwards;
}

.camel-first-line {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.camel-tooltip-text {
    display: inline-block;
}

/* Walking camel — 30px tall */
.svg-camel {
    height: 30px;
    width: auto;
    flex-shrink: 0;
    overflow: visible;
}

/* Body bobs while walking, then lowers when sitting */
.camel-body {
    animation:
        bodyBob 0.6s 8 alternate ease-in-out forwards,
        bodySit 1.5s 5.3s ease-in-out forwards;
}

/* New: Neck counter-bobs slightly to absorb shock of walking */
#camel-head-neck {
    transform-box: fill-box;
    transform-origin: bottom left; /* Pivot from the chest */
    animation: headBob 0.6s 8 alternate ease-in-out forwards;
}

/* --- LEFT SIDE LEGS (Pacing) --- */
#camel-leg-fl {
    transform-box: fill-box;
    transform-origin: top center;
    animation:
        swingLeg 0.6s 8 alternate ease-in-out forwards,
        legFoldFront 1.5s 5.5s ease-in-out forwards;
}

#camel-leg-bl {
    transform-box: fill-box;
    transform-origin: top center;
    animation:
        swingLeg 0.6s 8 alternate ease-in-out forwards,
        legFoldBack 1.5s 5.3s ease-in-out forwards;
}

/* --- RIGHT SIDE LEGS (Pacing) --- */
#camel-leg-fr {
    transform-box: fill-box;
    transform-origin: top center;
    animation:
        swingLeg 0.6s 8 alternate-reverse ease-in-out forwards,
        legFoldFront 1.5s 5.5s ease-in-out forwards;
}

#camel-leg-br {
    transform-box: fill-box;
    transform-origin: top center;
    animation:
        swingLeg 0.6s 8 alternate-reverse ease-in-out forwards,
        legFoldBack 1.5s 5.3s ease-in-out forwards;
}


/* --- UPGRADED KEYFRAMES --- */

/* Mid-stride knee bend: scaleY(0.85) makes the leg look like it lifts off the sand */
@keyframes swingLeg {
    0%   { transform: rotate(-25deg); }
    50%  { transform: rotate(0deg) scaleY(0.85); } 
    100% { transform: rotate(25deg); }
}

@keyframes bodyBob {
    0%   { transform: translateY(0px); }
    100% { transform: translateY(-2px); }
}

/* Head tilts back slightly when the body drops */
@keyframes headBob {
    0%   { transform: rotate(0deg); }
    100% { transform: rotate(-4deg); }
}

/* The Heavy Sit: Adds a tiny bounce/settle at 90% before resting completely at 100% */
@keyframes bodySit {
    0%   { transform: translateY(0px) rotate(0deg); }
    40%  { transform: translateY(4px) rotate(-5deg); }
    70%  { transform: translateY(10px) rotate(-8deg); }
    90%  { transform: translateY(23px) rotate(1deg); } /* Hits the ground slightly hard */
    100% { transform: translateY(22px) rotate(0deg); } /* Settles back up slightly */
}

/* Squishes a tiny bit more at 90% to match the heavy body drop */
@keyframes legFoldBack {
    0%   { transform: rotate(0deg); }
    50%  { transform: rotate(70deg) scaleY(0.5); }
    90%  { transform: rotate(82deg) scaleY(0.25); }
    100% { transform: rotate(80deg) scaleY(0.3); }
}

@keyframes legFoldFront {
    0%   { transform: rotate(0deg); }
    30%  { transform: rotate(0deg); }
    80%  { transform: rotate(-60deg) scaleY(0.5); }
    95%  { transform: rotate(-72deg) scaleY(0.25); }
    100% { transform: rotate(-70deg) scaleY(0.3); }
}

@keyframes camelWalkIn {
    0%   { transform: translateX(-150vw); }
    100% { transform: translateX(0); }
}

/* This uses a 5-second delay so the text only starts appearing once the camel has finished its walk across the screen. */
.camel-delayed-text {
    opacity: 0;
    animation: textFadeIn 2s ease-in-out forwards;
    animation-delay: 6s;
    margin-top: 8px;
    letter-spacing: 0.09em;
}

@keyframes textFadeIn {
    from { 
        opacity: 0; 
        transform: translateY(5px); /* Optional: slight upward move for a smoother feel */
    }
    to { 
        opacity: 1; 
        transform: translateY(0);
    }
}

/* Onboarding panel hamburger menu */
.about-hamburger {
    background: none;
    border: none;
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    padding: 0 6px 0 0;
    display: inline;
    vertical-align: middle;
    line-height: 1;
}

.about-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.7);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.about-modal {
    background: #000000;
    color: #fff;
    border-radius: 8px;
    padding: 24px;
    max-width: 340px;
    width: 90%;
    position: relative;
    font-size: 14px;
    line-height: 1.6;
    max-height: calc(100vh - 70px);
    overflow: hidden;          /* was overflow-y: auto � remove this */
    scrollbar-width: none;
    overscroll-behavior: none;
    display: flex;
    flex-direction: column;
}

.about-tab-content {
    overflow-y: auto;
    flex: 1;
}

body.is-mobile-browser .about-modal {
    background: #000000;
    color: #fff;
    border-radius: 8px;
    padding: 24px;
    max-width: 340px;
    width: 100%;
    position: relative;
    font-size: 14px;
    line-height: 1.6;
    max-height: calc(100vh - 70px);
    overflow: hidden;
    scrollbar-width: none;
    overscroll-behavior: none;
    display: flex;
    flex-direction: column;
}

.about-modal::-webkit-scrollbar {
    display: none;
}

.about-modal h3 {
    margin: 0 0 12px 0;
    font-size: 16px;
}

.about-modal p {
    margin: 0 0 12px 0;
    line-height: 2.0;
}

.about-modal-close {
    position: absolute;
    top: -8px !important;
    right: -6px !important;
    background: none;
    border: none;
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    margin-top: 10px;
}

.about-modal .footer-bottom,
.about-modal .footer-disclaimer {
    max-width: 100%;
    margin: 6px 0 0 0;
    text-align: left;
}

.about-modal .footer-cities {
    margin-top: 8px;
    text-align: center;
}

.about-tab-content {
  width:100%;  
  background:#000000;
}


.about-modal-tabs {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
    border-bottom: 1px solid #333;
    padding-bottom: 10px;
}

.about-tab {
    background: none;
    border: 1px solid #555;
    color: #aaa;
    border-radius: 4px;
    padding: 5px 12px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s;
}



.about-tab.active {
    background: #3a3a3a;
    color: #fff;
    border-color: #888;
}

.about-feature-category {
    font-weight: bold;
    color: #ccc;
    margin: 14px 0 4px 0;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.about-feature-list {
    margin: 0 0 8px 0;
    padding-left: 18px;
    color: #bbb;
}

.about-feature-list li {
    margin-bottom: 6px;
    font-size: 13px;
    line-height: 1.5;
}



















/* ── Admin quicklinks bar ─────────────────────────────────────────────────── */
.admin-quicklinks {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 4vh;
    background: #1A4314;
    border-bottom: 5px ridge #ff0000;
    z-index: 99999;
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    padding: 6px 12px;
    align-items: center;
    box-sizing: border-box;
    overflow: hidden;
}

.admin-quicklinks__label {
    color: #fff;
    font-size: 0.75rem;
    font-weight: bold;
    margin-right: 4px;
}

.admin-quicklinks__btn {
    background: #2d6a24;
    color: #fff;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.75rem;
    text-decoration: none;
    border: 1px solid #4a9a3a;
}

.admin-quicklinks__btn:hover {
    background: #3d8a34;
    color: #fff;
}

.admin-quicklinks__btn--logout {
    background: #FFFF00;
    color: #000;
    border-color: #ff0000;
    margin-left: auto;
}

.admin-quicklinks__stats {
    margin: 0 auto;
    color: #fff;
    font-size: 0.75rem;
    white-space: nowrap;
    line-height: 1;
}

.admin-quicklinks__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #c0392b;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    padding: 0 5px;
    margin-left: 4px;
    line-height: 1;
}

.admin-quicklinks__badge--notes {
    background: #4892a0;
}

/* ── Field Notes Modal ────────────────────────────────────────────────────── */

.fn-meta-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
}

@media (max-width: 767px) {
  .advisory-open-btn {
    font-size: 0.90rem;
  } 
}

.fn-open-btn { 
  background:transparent;
  border:1px solid #1A4314;
  color:#1A4314;
  border-radius:20px; padding:4px 10px;
  font-size:1em;
  font-weight:bold;
  cursor:pointer;
  margin-left:auto;
  align-self: center;
}

.fn-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    z-index: 9000;
    justify-content: center;
    align-items: center;
}

.fn-modal-overlay.fn-modal-visible {
    display: flex;
}

.fn-modal {
    background: #1e1e2e;
    color: rgba(255, 255, 255, 0.85);
    border-radius: 8px;
    width: 90%;
    max-width: 420px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
}

.fn-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    gap: 8px;
}

.fn-modal-place-title {
    font-weight: bold;
    font-size: 1em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fn-header-label {
    color: #ffffff;
    font-weight: bold;
    font-size: inherit;
    line-height: 1;
    margin-right: auto;
}

.fn-modal-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 1.2em;
    cursor: pointer;
    padding: 4px 8px;
    flex-shrink: 0;
}

.fn-modal-tabs {
    display: flex;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.fn-tab {
    flex: 1;
    padding: 10px;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: rgba(255, 255, 255, 0.6);
    cursor: pointer;
    font-size: 0.95em;
}

.fn-tab.fn-tab-active {
    color: #fff;
    border-bottom-color: #00ff00;
}

.fn-tab-panel {
    display: none;
    padding: 14px 16px;
    overflow-y: auto;
    flex: 1;
}

.fn-tab-panel.fn-panel-active {
    display: block;
}

.fn-note-card {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    padding: 10px 12px;
    margin-bottom: 10px;
}

.fn-note-type-badge {
    display: inline-block;
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 0.8em;
    font-weight: 600;
    margin-bottom: 6px;
    color: #fff;
}

.fn-note-meta {
    font-size: 0.8em;
    color: rgba(255, 255, 255, 0.5);
    margin-bottom: 4px;
}

.fn-note-text-body {
    font-size: 0.92em;
    line-height: 1.5;
}

.fn-loading,
.fn-empty {
    color: rgba(255, 255, 255, 0.5);
    font-style: italic;
}

.fn-note-types {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
    margin-bottom: 12px;
}

.fn-type-btn {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.75);
    border-radius: 5px;
    padding: 7px 4px;
    font-size: 0.82em;
    cursor: pointer;
    text-align: center;
}

.fn-type-btn.fn-type-selected {
    background: #00ff00;
    color: #000;
    border-color: #00ff00;
    font-weight: bold;
}

.fn-textarea-wrapper {
    position: relative;
}

#fn-note-text {
    width: 100%;
    min-height: 90px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    border-radius: 5px;
    padding: 8px 36px 8px 8px;
    font-size: 0.9em;
    resize: vertical;
    box-sizing: border-box;
}

.fn-mic-btn {
    position: absolute;
    right: 6px;
    bottom: 8px;
    background: none;
    border: none;
    font-size: 1.2em;
    cursor: pointer;
    opacity: 0.7;
}


@media (min-width: 768px) {
  .fn-mic-btn {
    display: none !important;
  }
}

.fn-mic-btn.fn-mic-recording {
    animation: fn-pulse 0.8s infinite alternate;
}

@keyframes fn-pulse {
    from { opacity: 0.4; }
    to   { opacity: 1; }
}

.fn-char-count {
    text-align: right;
    font-size: 0.78em;
    color: rgba(255, 255, 255, 0.45);
    margin: 3px 0 8px;
}

.fn-author-input {
    width: 100%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    border-radius: 5px;
    padding: 7px 8px;
    font-size: 0.9em;
    margin-bottom: 10px;
    box-sizing: border-box;
}

.fn-submit-btn {
    width: 100%;
    padding: 9px;
    background: #1A4314;
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 0.95em;
    cursor: pointer;
}

.fn-submit-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.fn-submit-msg {
    margin-top: 8px;
    font-size: 0.88em;
    color: rgba(255, 255, 255, 0.75);
    text-align: center;
}

/* User media modal */
.media-modal-box { position:relative; width:92vw; max-width:680px; background:#1a1a1a; border-radius:10px; overflow:hidden; display:flex; flex-direction:column; max-height:85vh; }
.media-modal-close { position:absolute; top:10px; right:14px; z-index:10; background:rgba(0,0,0,0.5); color:#fff; border:none; font-size:1.4rem; cursor:pointer; border-radius:50%; width:32px; height:32px; line-height:30px; text-align:center; }
.media-modal-title { padding:14px 44px 0 14px; color:#fff; font-size:0.95rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.media-modal-tabs { display:flex; border-bottom:1px solid #333; margin-top:10px; }
.media-modal-tab { flex:1; padding:8px; background:none; border:none; color:#aaa; cursor:pointer; font-size:0.85rem; border-bottom:2px solid transparent; }
.media-modal-tab.active { color:#4892a0; border-bottom-color:#4892a0; }
.media-modal-body { overflow-y:auto; flex:1; padding:12px; }
.media-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.media-grid-item { position:relative; border-radius:6px; overflow:hidden; background:#111; }
.media-grid-item img { width:100%; height:auto; object-fit:cover; display:block; cursor:pointer; }
.media-grid-item video { width:100%; max-height:auto; display:block; }
.media-grid-footer { padding:5px 7px 7px; background:#111; }
.media-grid-author { font-size:0.72rem; color:#ccc;}
.media-grid-caption { font-size:1.0rem; color:#888; margin-top:2px; font-weight: bold; }
.media-exif-badge { position:absolute; top:4px; left:4px; background:rgba(0,0,0,0.65); color:#4892a0; font-size:0.65rem; padding:2px 5px; border-radius:8px; }
.media-empty-msg { color:#888; font-size:0.85rem; text-align:center; padding:30px 0; }
.media-add-form { display:flex; flex-direction:column; gap:10px; }
.media-file-input { background:#2a2a2a; color:#fff; border:1px solid #444; border-radius:6px; padding:8px; font-size:0.85rem; width:100%; box-sizing:border-box; }
.media-input-row { display:flex; gap:8px; }
.media-file-label { flex:1; background:#2a2a2a; color:#ccc; border:1px solid #444; border-radius:6px; padding:8px; font-size:0.82rem; text-align:center; cursor:pointer; }
.media-file-label:hover { border-color:#4892a0; color:#fff; }

.media-file-hint { font-size:0.75rem; color:#888; }
.media-caption-input, .media-author-input { background:#2a2a2a; color:#fff; border:1px solid #444; border-radius:6px; padding:8px; font-size:0.85rem; width:100%; box-sizing:border-box; }
.media-submit-btn { background:#4892a0; color:#fff; border:none; border-radius:6px; padding:10px; font-size:0.9rem; cursor:pointer; width:100%; }
.media-submit-btn:disabled { opacity:0.5; cursor:not-allowed; }
.media-progress { height:6px; background:#333; border-radius:3px; overflow:hidden; display:none; margin-top:4px; }
.media-progress-bar { height:100%; background:#4892a0; width:0%; transition:width 0.2s; }
.media-success-msg { font-size:0.85rem; text-align:center; padding:10px 0; display:none; }
.media-success-msg.success { color:#4892a0; display:block; }
.media-success-msg.error { color:#e74c3c; display:block; }
.media-open-btn { background:none; border:none; cursor:pointer; font-size:1.1rem; padding:4px 6px; opacity:0.75; }
.media-open-btn:hover { opacity:1; }
/* Lightbox */
#media-lightbox-overlay { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.95); z-index:99999; align-items:center; justify-content:center; }
#media-lightbox-overlay.active { display:flex; }

.media-lightbox-box { position:relative; max-width:95vw; max-height:95vh; display:flex; flex-direction:column; align-items:center; }
.media-lightbox-close { position:absolute; top:-36px; right:0; background:none; border:none; color:#fff; font-size:1.8rem; cursor:pointer; line-height:1; }
.media-lightbox-img-wrap { display:flex; align-items:center; justify-content:center; }
#media-lightbox-img { max-width:92vw; max-height:80vh; object-fit:contain; border-radius:4px; }
.media-lightbox-prev, .media-lightbox-next { display:none; position:fixed; top:50%; transform:translateY(-50%); background:rgba(0,0,0,0.5); color:#fff; border:none; font-size:1.8rem; cursor:pointer; padding:10px 14px; border-radius:4px; z-index:100000; }
#media-lightbox-overlay.active .media-lightbox-prev,
#media-lightbox-overlay.active .media-lightbox-next { display:block; }
.media-lightbox-prev { left:8px; }
.media-lightbox-next { right:8px; }
.media-lightbox-caption { color:#ccc; font-size:0.82rem; margin-top:8px; text-align:center; }
.media-lightbox-author { color:#888; font-size:0.75rem; margin-top:3px; text-align:center; }


@media (min-width: 768px) {
    .media-camera-label { display: none; }

    .media-modal-box {
        width: 80vw;
        max-width: 1020px;
        max-height: 90vh;
    }
    .media-modal-title { font-size: 1.2rem; padding: 18px 56px 0 18px; }
    .media-modal-tab { font-size: 1.05rem; padding: 10px; }
    .media-modal-body { padding: 18px; }
    .media-grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .media-grid-caption { font-size: 1.2rem; }
    .media-grid-author { font-size: 0.9rem; }
    .media-exif-badge { font-size: 0.8rem; padding: 3px 7px; }
    .media-empty-msg { font-size: 1rem; padding: 40px 0; }
    .media-file-label { font-size: 1rem; padding: 12px; }
    .media-file-hint { font-size: 0.9rem; font-weight: 500;color: #aaa;}
    .media-caption-input, .media-author-input { font-size: 1rem; padding: 10px; }
    .media-submit-btn { font-size: 1.1rem; padding: 13px; }
    .media-success-msg { font-size: 1rem; }
    .media-modal-close { width: 38px; height: 38px; font-size: 1.6rem; line-height: 36px; }
    .media-modal-box * {font-weight: 500;}
    .media-caption-input::placeholder,.media-author-input::placeholder {font-weight: 500;color: #aaa;}
}

/* ═══════════════════════════════════════════
   SEARCH PANEL — #searchButtonContainerBackground
   ═══════════════════════════════════════════ */

/* ── Shared base ── */
#searchButtonContainerBackground {
  border-radius: 12px;
  overflow: hidden;
}

/* ── Desktop: absolute panel next to control strip ── */
@media (min-width: 768px) {
  #searchButtonContainerBackground {
    position: absolute;
    z-index: 801;
    bottom: 150px;
    right: 0.7em;
    width: auto;
    height: auto;
    background: rgba(20, 20, 20, 0.82);
    border: 0.5px solid rgba(255, 0, 0, 1.0);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px); 
}
  body.page-searchdatabase #searchButtonContainerBackground { 
    right: calc(495px + 0.0005em) !important; /* 495px is the width of the search database panel, plus a tiny 0.0005em to nudge it just past the border */
    bottom: 15vh;
  }
}

/* ── Mobile: hidden by default, centered overlay when active ── */
@media (max-width: 767px) {
  #searchButtonContainerBackground {
    display: none;
  }

#searchButtonContainerBackground.mobile-overlay-active {
    display: block;
    position: fixed;
    bottom: 80px;
    left: 50%;
    transform: translateX(-50%);
    top: auto;
    z-index: 1001;
    width: min(320px, 88vw);
    max-height: calc(100vh - 200px);
    overflow-y: auto;
    background: rgba(20, 20, 20, 0.93);
    border: 0.5px solid rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);
}

  #btn9,
  #btn10,
  #btnNotifications,
  #btn11 {
    display: inline-block !important;
  }
}

/* ── Header row (title + close X) ── */
.search-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px 10px;
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.1);
}

.search-modal-title {
  font-size: 13px;
  font-weight: bold;
  color: rgba(255, 255, 255, 1.0);
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* ── Close X — desktop hidden, mobile visible ── */
.search-modal-close {
  display: none;
}

@media (max-width: 767px) {
  .search-modal-close {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0.5px solid rgba(255, 255, 255, 0.2);
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.5);
    font-size: 12px;
    width: 26px;
    height: 26px;
    cursor: pointer;
    line-height: 1;
    padding: 0;
    transition: background 0.15s, color 0.15s;
  }

  .search-modal-close:hover {
    background: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.9);
  }
}

/* ── Inner container ── */
#searchButtonContainerInner {
  display: flex;
  flex-direction: column;
}

/* ── Body (Search + Clear buttons) ── */
.search-modal-body {
  padding: 12px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ── Search button (primary) ── */
.btn-search-primary {
  width: 100%;
  padding: 9px 16px;
  background: #4892a0;
  color: #fff;
  font-size: 13px;
  font-weight: bold;
  letter-spacing: 0.09em;
  font-family: inherit;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s;
}

.btn-search-primary:hover {
  background: #3a7a87;
}

/* ── Clear markers button (ghost) ── */
.btn-search-ghost {
  width: 100%;
  padding: 8px 16px;
  background: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  font-weight: 400;
  font-family: inherit;
  border: 0.5px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}

.btn-search-ghost:hover {
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.7);
}

/* ── Footer — removed, safety no-op ── */
.mobile-search-footer {
  display: none;
}

/* ── Light theme override (zoom 2.8–3.5) ── */
#searchButtonContainerBackground.search-panel--light {
  background: rgba(255, 255, 255, 0.92);
  border-color: rgba(0, 0, 0, 0.12);
}

#searchButtonContainerBackground.search-panel--light .search-modal-header {
  border-bottom-color: rgba(0, 0, 0, 0.08);
}

#searchButtonContainerBackground.search-panel--light .search-modal-title {
  color: rgba(255, 0, 0, 1.0);
  font-weight: bold;
}

#searchButtonContainerBackground.search-panel--light .search-modal-close {
  border-color: rgba(0, 0, 0, 0.15);
  color: rgba(0, 0, 0, 0.4);
}

#searchButtonContainerBackground.search-panel--light .search-modal-close:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(0, 0, 0, 0.7);
}

#searchButtonContainerBackground.search-panel--light .btn-search-ghost {
  border-color: rgba(0, 0, 0, 0.15);
  color: rgba(255, 0, 0, 1.0);
}

#searchButtonContainerBackground.search-panel--light .btn-search-ghost:hover {
  background: rgba(0, 0, 0, 0.05);
  color: rgba(255, 0, 0, 0.7);
}

/* ── Search modal mic buttons — mobile only ───────────────────────────────── */
@media (min-width: 768px) {
    #keyword-mic-btn,
    #country-mic-btn {
        display: none !important;
    }
}

/* ── Route planner mic buttons — mobile only ──────────────────────────────── */
@media (min-width: 768px) {
    #route-mic-btn-a,
    #route-mic-btn-b {
        display: none !important;
    }
}

/* ── searchdatabase split layout ──────────────────────────────────────────── */
body.page-searchdatabase {
    display: flex;
    flex-direction: column;
    height: 100vh;
    overflow: hidden;
}

.page-searchdatabase .split-row {
    display: flex;
    flex: 1;
    overflow: hidden;
    height: calc(100vh - 4vh);
    margin-top: 4vh;
    position: relative;
    z-index: 1;
}

#admin-panel {
    flex: 1;
    max-width: 500px;
    height: 100%;
    display: flex;
    flex-direction: column;
    border-left: 5px solid rgba(255,0,0,0.90);
    background: #fff;
    overflow: hidden;
}

#apTools {
    width: 100%;
    overflow: hidden;
}

#apToolsFrame {
    max-width: 100%;
    box-sizing: border-box;
}

#split-resizer {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 10px;
    cursor: col-resize;
    background: rgba(180,0,0,0.5);
    z-index: 2000;
    transform: translateX(-5px);
}

#split-resizer:hover,
#split-resizer.dragging {
    background: #4892a0;
}

.ap-header {
    padding: 12px 16px 0;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ap-title {
    font-size: 13px;
    font-weight: 500;
}

#apNewPlaceBtn {
    font-size: 14px;
    background: #000000;
    opacity: 1.0;
    color: #FF4433;
    border: none;
    border-radius: 4px;
    letter-spacing: 1.0;
    padding: 4px 10px;
    cursor: pointer;
}

.ap-tabs {
    display: flex;
    border-bottom: 0.5px solid rgba(0,0,0,0.12);
    margin-top: 10px;
    padding: 0 16px;
    flex-shrink: 0;
}

.ap-tab {
    font-size: 20px;
    font-weight:bold;
    padding: 6px 12px;
    cursor: pointer;
    color: #008080;
    border: none;
    border-bottom-color: #4892a0;
    background: transparent;
    margin-bottom: -0.5px;
    text-decoration:underline;
}

.ap-tab.active {
    color: #000000;
    /* border-bottom-color: #4892a0; */
    font-weight: bold;
    text-decoration:none;
  cursor:default;
}

.ap-body {
    flex: 1;
    overflow-y: auto;
    padding: 12px 16px;
}

/* ── Dashboard stat cards ──────────────────────────────────────────────────── */
.ap-section-label {
    font-size: 10px;
    color: #555555;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 8px;
    margin-top: 14px;
    font-weight: 500;
}

.ap-section-label:first-child {
    margin-top: 4px;
}

.ap-stat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 4px;
}

.ap-stat-card {
    background: #f5f5f5;
    border-radius: 6px;
    padding: 10px 12px;
}

.ap-stat-label {
    font-size: 10px;
    color: #555555;
    margin-bottom: 3px;
}

.ap-stat-value {
    font-size: 22px;
    font-weight: bold;
    color: #222222;
    line-height: 1;
}

.ap-stat-value--alert { color: #c0392b; }
.ap-stat-value--teal  { color: #4892a0; }

/* ── Dashboard quick links ─────────────────────────────────────────────────── */
.ap-quicklinks {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 4px;
}

.ap-ql {
    font-size: 14px;
    font-weight:bold;
    color: #000000;
    background: #f0f0f0;
    border: 0.5px solid #ddd;
    border-radius: 4px;
    padding: 4px 9px;
    text-decoration: none;
    cursor: pointer;
}

/* ── Dashboard recent list ─────────────────────────────────────────────────── */
.ap-recent-list {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.ap-recent-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    background: #f5f5f5;
    border-radius: 6px;
    cursor: pointer;
}

.ap-recent-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4892a0;
    flex-shrink: 0;
}

.ap-recent-name {
    font-size: 12px;
    color: #222;
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.ap-recent-cat {
    font-size: 10px;
    color: #666666;
    flex-shrink: 0;
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Edit form panel ───────────────────────────────────────────────────────── */
.ap-form-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 12px;
}

.ap-form-title {
    font-size: 13px;
    font-weight: 500;
    color: #222;
}

.ap-form-subtitle {
    font-size: 10px;
    color: #666666;
    font-style: italic;
    margin-top: 2px;
}

#apPlaceIdBadge {
    font-size: 10px;
    color: #666;
    background: #f0f0f0;
    border-radius: 4px;
    padding: 2px 7px;
    flex-shrink: 0;
}

.ap-field-label {
    font-size: 11px;
    color: #444444;
    display: block;
    margin-bottom: 3px;
}

.ap-field-group {
    margin-bottom: 10px;
}

.ap-lat-lng-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 10px;
}

.ap-form-actions {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    margin-bottom: 10px;
}

.ap-form-actions .save-button {
    flex: 1;
}

.ap-admin-section {
    border-top: 0.5px solid #e0e0e0;
    padding-top: 10px;
    margin-top: 6px;
}

.ap-admin-label {
    display:none;
    font-size: 10px;
    color: #777777;
    margin-bottom: 6px;
}

.ap-admin-btns {
    display: none;
    gap: 6px;
}

.ap-admin-btn {
    font-size: 11px;
    color: #555;
    background: #f0f0f0;
    border: 0.5px solid #ddd;
    border-radius: 4px;
    padding: 4px 9px;
    cursor: pointer;
}

.ap-admin-btn--danger {
    color: #c0392b;
    border-color: #f09595;
    background: #fff5f5;
}

/* ── Override placesInputMargins inside admin panel ────────────────────────── */
#apEditForm .placesInputMargins {
    margin-bottom: 10px;
}

#apEditForm .coordinateInputMargins {
    margin-bottom: 6px;
}

/* ── Zoom level readout — searchdatabase split view ───────────────────────── */
.page-searchdatabase #zoomDisplay {
    position: absolute;
    top: 100px;
    left: -4;
    bottom: auto;
    transform: none;
    background: rgba(20,20,20,0.75);
    color: #fff;
    border: 3px ridge #ff0000;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 12px;
    pointer-events: none;
    white-space: nowrap;
    margin-top: 20px;
    z-index: 1001;
}


/* Country autocomplete dropdown — searchdatabase.php admin panel */
.country-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    max-height: 200px;
    overflow-y: auto;
    z-index: 9999;
    display: none;
    color: #000;
}

.country-dropdown div:hover {
    background-color: #f0f0f0;
}

.video-modal-player {
    width: 100%;
    display: block;
    border-radius: 8px;
    margin-top: 8px;
    background: #000;
    max-height: 70vh;
    object-fit: contain;
}

.video-modal-box {
    background: #000;
    border-radius: 12px;
    padding: 12px 12px 8px 12px;
    width: 95vw;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 8px 32px rgba(0,0,0,0.8);
}

/* ── My Places ─────────────────────────────────────────────────────────────── */
.my-places-header { padding: 12px 16px 0; }
@media (max-width: 767px) {
    .my-places-header { margin-top: 50px; }
} 
.my-places-title { font-size: 1.1em; font-weight: 600; color: #4892a0; }
.my-places-tabs { display: flex; border-bottom: 2px solid #e0e0e0; margin: 10px 0 0; }
.my-places-tab {
    flex: 1;
    padding: 8px 4px;
    background: none;
    border: none;
    font-size: 0.85em;
    color: #666;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
}
.my-places-tab.active { color: #4892a0; border-bottom-color: #4892a0; font-weight: 600; }
.my-places-count { background: #e0e0e0; border-radius: 10px; padding: 1px 6px; font-size: 0.8em; margin-left: 4px; }
.my-places-tab.active .my-places-count { background: #4892a0; color: #fff; }
#myPlacesView {
    padding-top: 60px;
    padding-bottom: 40px;
    height: 100%;
    box-sizing: border-box;
    position: relative;
    background-color: #000000;
}
#myPlacesView .my-places-header {
    padding: 0 16px 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.myplaces-map-link {
    font-size: 0.95em;
    font-weight: bold;
    color: #4892a0;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}
.myplaces-map-link:hover { text-decoration: underline; }
#myPlacesView .my-places-tabs {
    display: flex;
    width: 100%;
    box-sizing: border-box;
}
#myPlacesView .my-places-tab {
    flex: 1 1 50%;
    box-sizing: border-box;
}
.my-places-body { 
  overflow-y: auto; 
  padding: 8px 16px; 
  padding-bottom: 40px;
  background-color:#000000 !important;
 }

#myPlacesView .my-places-row {
    display: flex !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: 10px 16px !important;
    gap: 8px !important;
   
}
#myPlacesView .my-places-btn {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
#sidebar-comments .my-places-row {
    display: flex !important;
    width: calc(100% + 32px) !important;
    margin-left: -16px !important;
    margin-right: -16px !important;
    padding: 10px 16px !important;
    box-sizing: border-box !important;
    gap: 8px !important;
}
#sidebar-comments .my-places-btn {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.my-places-card {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}
.my-places-card:active { background: #f5f5f5; }
.my-places-card__info { flex: 1; min-width: 0; }
.my-places-card__title { font-size: 0.9em; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.my-places-card__meta { font-size: 0.75em; color: #888; margin-top: 2px; }
.my-places-card__remove { background: none; border: none; color: #bbb; font-size: 1em; padding: 4px 8px; cursor: pointer; flex-shrink: 0; }
.my-places-empty { text-align: center; color: #aaa; font-size: 0.85em; padding: 32px 16px; }

/* My Places row in sidebar */
.my-places-row {
    display: flex;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px solid #f0f0f0;
    width: 100%;
    box-sizing: border-box;
}
@keyframes myPlacesPulse {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.08); }
    70%  { transform: scale(0.96); }
    100% { transform: scale(1); }
}

.my-places-btn {
    flex: 1 1 50%;
    min-width: 0;
    width: 50% !important;
    padding: 8px 4px;
    border-radius: 20px;
    border: 1.5px solid #ccc;
    background: #fff;
    font-size: 0.8em;
    font-weight: bold;
    cursor: pointer;
    color: #555;
    transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.15s ease;
    box-sizing: border-box;
    text-align: center;
}

.my-places-btn--want.active {
    background: #4892a0 !important;
    border-color: #4892a0 !important;
    color: #fff !important;
}

.my-places-btn--been.active {
    background: #4a9e6e !important;
    border-color: #4a9e6e !important;
    color: #fff !important;
}

.my-places-btn.animating {
    animation: myPlacesPulse 0.35s ease forwards;
}

/* Back button */
.sidebar-back-btn {
    display: block;
    width: 100%;
    padding: 8px 16px;
    background: none;
    border: none;
    border-bottom: 1px solid #e0e0e0;
    text-align: left;
    color: #4892a0;
    font-size: 0.85em;
    cursor: pointer;
}

/* ── Zoom level readout — index.php ───────────────────────── */
.page-home #zoomDisplay {
    position: absolute;
    top: 5px;
    left: 8px;
    background: rgba(20,20,20,0.75);
    color: #fff;
    font-size: 12px;
    font-weight:bold;
    padding: 4px 10px;
    border-radius: 12px;
    pointer-events: none;
    white-space: nowrap;
    z-index: 1001;
}

@media (max-width: 767px) {
    .page-home #zoomDisplay {
        display: none !important;
    }
}


/* ===== Auth Modal ===== */
#authModal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 11000;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
}
.auth-modal-box {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.2);
    width: 90%;
    max-width: 380px;
    padding: 24px 24px 16px;
    position: relative;
}
.auth-modal-close {
    position: absolute;
    top: 10px;
    right: 14px;
    background: none;
    border: none;
    font-size: 22px;
    cursor: pointer;
    color: #555;
    line-height: 1;
}
.auth-modal-footer {
    color: #888;
    font-size: 12px;
    text-align: center;
}
.auth-modal-footer a {
    color: #4892a0;
}
.auth-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #e0e0e0;
    margin-bottom: 16px;
}
.auth-tab {
    flex: 1;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    padding: 8px 0;
    font-size: 15px;
    cursor: pointer;
    color: #888;
}
.auth-tab.active {
    color: #00897b;
    border-bottom-color: #00897b;
    font-weight: 600;
}
.auth-tab-content {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.auth-input {
    width: 100%;
    box-sizing: border-box;
    padding: 9px 12px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 14px;
}
.auth-input:focus {
    outline: none;
    border-color: #4892a0;
}
.auth-password-wrapper {
    position: relative;
}
.auth-password-wrapper .auth-input {
    padding-right: 56px;
}
.auth-pw-toggle {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #4892a0;
    cursor: pointer;
    font-size: 13px;
}
.auth-forgot-link,
.auth-back-link {
    font-size: 13px;
    color: #4892a0;
    text-align: right;
    text-decoration: none;
}
.auth-forgot-link:hover,
.auth-back-link:hover {
    text-decoration: underline;
}
.auth-forgot-highlight {
    font-weight: bold;
    color: #4892a0;
}
.auth-submit-btn {
    width: 100%;
    padding: 10px;
    background: #00897b;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}
.auth-submit-btn:hover {
    background: #00796b;
}
.auth-google-btn {
    width: 100%;
    padding: 9px;
    background: #fff;
    border: 1px solid #dadce0;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.auth-google-btn:hover {
    background: #f5f5f5;
}
.auth-divider {
    text-align: center;
    color: #aaa;
    font-size: 13px;
    position: relative;
}
.auth-divider::before,
.auth-divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 40%;
    height: 1px;
    background: #e0e0e0;
}
.auth-divider::before {
    left: 0;
}
.auth-divider::after {
    right: 0;
}
.auth-error {
    color: #c0392b;
    font-size: 13px;
}
.auth-message {
    color: #2e7d32;
    font-size: 13px;
}
.auth-reset-intro {
    font-size: 14px;
    color: #555;
    margin: 0;
}
.btn-account-initials {
    width: 28px;
    height: 28px;
    /* background: #00897b; */
    color: #000000;
    border-radius: 50%;
    font-size: 14px;
    font-weight: bold;
    letter-spacing: 0.02em;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}
#accountDropdown {
    position: fixed;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.18);
    z-index: 10000;
    min-width: 140px;
    overflow: hidden;
}
#accountDropdown button {
    display: block;
    width: 100%;
    padding: 12px 16px;
    background: none;
    border: none;
    text-align: left;
    font-size: 14px;
    cursor: pointer;
}
#accountDropdown button:hover {
    background: #f5f5f5;
}

/* ============================================================
   PROFILE PAGE
   ============================================================ */

body.profile-page {
    background: #1a1a2e;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    font-family: 'Segoe UI', Arial, sans-serif;
    color: #e0e0e0;
    overflow-y: auto;
}

.profile-container {
    max-width: 520px;
    margin: 0 auto;
    padding: 32px 20px 60px;
}

.profile-back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #a0a0c0;
    text-decoration: none;
    font-size: 14px;
    margin-top: 40px;
    margin-bottom: 28px;  
    transition: color 0.15s;
}
.profile-back-link:hover { color: #e0e0e0; }

.profile-avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: #3a3a6e;
    color: #e0e0e0;
    font-size: 26px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 14px;
    letter-spacing: 1px;
}

.profile-header {
    text-align: center;
    margin-bottom: 32px;
}

.profile-name {
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 6px;
    color: #ffffff;
}

.profile-email {
    font-size: 14px;
    color: #a0a0c0;
    margin: 0 0 4px;
}

.profile-joined {
    font-size: 13px;
    color: #6a6a8a;
    margin: 0;
}

.profile-section {
    background: #22223a;
    border-radius: 12px;
    padding: 22px 20px;
    margin-bottom: 16px;
}

.profile-section-danger {
    border: 1px solid rgba(220, 80, 80, 0.25);
}

.profile-section-title {
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #a0a0c0;
    margin: 0 0 16px;
}

.profile-places-counts {
    display: flex;
    align-items: center;
    justify-content: center;
}

.profile-places-count {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.profile-places-divider {
    width: 1px;
    height: 40px;
    background: #3a3a5e;
}

.profile-places-number {
    font-size: 32px;
    font-weight: 700;
    color: #ffffff;
    line-height: 1;
}

.profile-places-label {
    font-size: 13px;
    color: #a0a0c0;
}

.profile-mymap-link {
    display: block;
    margin-top: 14px;
    padding: 10px 16px;
    text-align: center;
    border: 1.5px solid #4892a0;
    border-radius: 8px;
    color: #4892a0;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: background 0.2s;
}
.profile-mymap-link:hover { background: rgba(72, 146, 160, 0.1); }

.profile-input {
    width: 100%;
    background: #16162a;
    border: 1px solid #3a3a5e;
    border-radius: 8px;
    color: #e0e0e0;
    font-size: 14px;
    padding: 10px 12px;
    margin-bottom: 10px;
    box-sizing: border-box;
    outline: none;
    transition: border-color 0.15s;
    -webkit-appearance: none;
appearance: none;
}
.profile-input:focus { border-color: #6060b0; }
.profile-input::placeholder { color: #5a5a7a; }

.profile-form-row {
    display: flex;
    gap: 10px;
}
.profile-form-row .profile-input { margin-bottom: 10px; }

.profile-form-row-buttons {
    margin-top: 4px;
    flex-wrap: wrap;
}

.profile-btn {
    display: inline-block;
    border: none;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 18px;
    cursor: pointer;
    transition: opacity 0.15s, background 0.15s;
}
.profile-btn:disabled { opacity: 0.5; cursor: default; }

.profile-btn-primary {
    background: #4a4aaa;
    color: #fff;
    width: 100%;
    margin-top: 2px;
}
.profile-btn-primary:hover:not(:disabled) { background: #5a5aba; }

.profile-btn-secondary {
    background: #3a3a5e;
    color: #e0e0e0;
}
.profile-btn-secondary:hover:not(:disabled) { background: #4a4a6e; }

.profile-btn-outline-danger {
    background: transparent;
    color: #e06060;
    border: 1px solid rgba(220, 80, 80, 0.4);
    width: 100%;
}
.profile-btn-outline-danger:hover:not(:disabled) {
    background: rgba(220, 80, 80, 0.08);
}

.profile-btn-danger {
    background: #8b2020;
    color: #fff;
}
.profile-btn-danger:hover:not(:disabled) { background: #a02828; }

.profile-feedback {
    font-size: 13px;
    margin: 8px 0 0;
    min-height: 18px;
}
.profile-feedback-ok    { color: #60c060; }
.profile-feedback-error { color: #e06060; }

.profile-danger-note {
    font-size: 13px;
    color: #a06060;
    margin: 0 0 12px;
    line-height: 1.5;
}

.profile-toast {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    background: #2e2e4e;
    color: #e0e0e0;
    padding: 12px 22px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s, transform 0.25s;
    z-index: 9999;
    white-space: nowrap;
}
.profile-toast-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.profile-toast-ok    { border-left: 3px solid #60c060; }
.profile-toast-error { border-left: 3px solid #e06060; }

body.is-native-app .profile-container {
    padding-top: 72px;
    padding-bottom: 80px;
}

.profile-trusted-badge {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 12px;
    background: rgba(0, 137, 123, 0.15);
    border: 1px solid #00897b;
    border-radius: 20px;
    color: #00897b;
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.03em;
}

/* ── Become a Trusted Contributor badge ── */
.profile-become-trusted-badge {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 12px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 20px;
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.profile-become-trusted-badge:hover {
    background: rgba(0, 137, 123, 0.1);
    border-color: #00897b;
    color: #00897b;
}

/* ── Trusted info modal ── */
.trusted-info-box {
    position: relative;
    background: #1a1a2e;
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 14px;
    padding: 28px 24px 24px;
    max-width: 420px;
    width: 90%;
    color: #eee;
}
.trusted-info-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    color: #aaa;
    font-size: 1.4rem;
    cursor: pointer;
    line-height: 1;
}
.trusted-info-close:hover { color: #fff; }
.trusted-info-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: #fff;
}
.trusted-info-lead {
    font-size: 0.88rem;
    color: #bbb;
    margin: 0 0 16px;
    line-height: 1.5;
}
.trusted-info-subtitle {
    font-size: 0.82rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #00897b;
    margin: 0 0 8px;
}
.trusted-info-list {
    margin: 0 0 16px;
    padding-left: 18px;
    font-size: 0.88rem;
    color: #ccc;
    line-height: 1.7;
}
.trusted-info-note {
    font-size: 0.8rem;
    color: #888;
    margin: 0;
    font-style: italic;
}

.trust-btn {
    padding: 4px 12px;
    border-radius: 12px;
    border: none;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.2s;
}
.btn-grant  { background: rgba(0, 137, 123, 0.15); color: #00897b; border: 1px solid #00897b; }
.btn-revoke { background: rgba(180, 0, 0, 0.10);   color: #b71c1c; border: 1px solid #b71c1c; }
.trust-btn:hover { opacity: 0.75; }


/* ── Nearby marker proximity pulse ──────────────────────────── */
@keyframes nearbyPulse {
    0%   { box-shadow: 0 0 0 0   rgba(255, 77, 192, 0.7); }
    70%  { box-shadow: 0 0 0 12px rgba(255, 77, 192, 0);   }
    100% { box-shadow: 0 0 0 0   rgba(255, 77, 192, 0);   }
}

.nearby-pulse .leaflet-marker-icon {
    animation: nearbyPulse 1.2s ease-out infinite;
    border-radius: 50%;
}

/* ── Nearby tracking pill indicator (mobile only) ───────────── */
#nearbyTrackingPill {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    height: 40px;
    color: #fff;
    border-radius: 0;
    padding: 0 14px;
    font-size: 13px;
    font-weight: bold;
    font-family: Arial, sans-serif;
    align-items: center;
    gap: 10px;
    z-index: 100000;
    max-width: 260px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.is-mobile-browser #nearbyTrackingPill {
    bottom: 40px !important;
    color: #000000;
}

body.is-native-app #nearbyTrackingPill {
    bottom: -8px !important;
}

@keyframes trackingPillFlash {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}
#nearbyTrackingPill.visible {
    display: flex;
    animation: trackingPillFlash 1.5s ease-in-out infinite;
}
#nearbyTrackingPill.muted {
    animation: none;
}

@media (min-width: 768px) {
    #nearbyTrackingPill { display: none !important; }
}

/* ── Nearby proximity popup (mobile only) ───────────── */
#nearbyProximityPopup {
    display: none;
    position: fixed;
    top: 40px;
    left: 50%;
    transform: translateX(-50%);
    touch-action: none;
    cursor: grab;
    background: #000000;
    color: #fff;
    /* border-radius: 10px; */
    border-top: 4px ridge #4892a0;
    padding: 10px;
    max-height: 33vh;
    overflow-y: auto;
    z-index: 100000;
    min-width: 260px;
    max-width: 100vw;
    width:100vw;
    font-family: Arial, sans-serif;
    font-size: 13px;
    font-weight:bold;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

#nearbyProximityPopup::-webkit-scrollbar {
    display: none; /* Chrome/Safari/Android */
}

body.is-mobile-browser #nearbyProximityPopup {
    top: 0;
}
.npp-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 0;
    border-bottom: 1px solid rgba(255,255,255,0.33);
}
.npp-row:last-child { border-bottom: none; }
.npp-dist {
    min-width: 45px;
    color: #aaa;
    font-size: 12px;
}
.npp-name {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.npp-open {
    background: #4a4a8a;
    border: none;
    color: #fff;
    border-radius: 5px;
    padding: 3px 8px;
    font-size: 12px;
    cursor: pointer;
}
.npp-open:active { background: #6a6aaa; }
@media (min-width: 768px) {
    #nearbyProximityPopup { display: none !important; }
}

/* ── Sidebar share button ────────────────────────────────────── */
.experience-share-row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.experience-share-row .add-experience-btn {
    flex: 1;
}
.sidebar-share-btn {
    background: #2a2a4a;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 8px 12px;
    font-size: 0.85rem;
    cursor: pointer;
    white-space: nowrap;
}
.sidebar-share-btn:hover {
    background: #3a3a6a;
}

/**
 * UI COMPONENT: User Location Marker
 * ----------------------------------------------------------------------------
 * Styles for the interactive map's "Current Location" marker.
 * * DESIGN NOTES:
 * 1. Background/Border reset: Required to override Leaflet's default L.divIcon 
 * styling (prevents a white square from appearing behind the SVG).
 * 2. Static SVG: Utilized over PNG or animated SVG to minimize CPU/GPU overhead 
 * and maximize mobile battery efficiency.
 * 3. Accessibility: The tooltip and high-contrast SVG colors ensure visibility 
 * across various map tile providers (Satellite, Light, and Dark modes).
 * ----------------------------------------------------------------------------
 */

.custom-location-marker {
    background: none !important;
    border: none !important;
}

body.trail-active:not(.pip-active) .custom-location-marker { display: none !important; }
body.pip-active .trail-polyline { display: none !important; }

.you-are-here-tooltip {
    /* Optional: Add custom tooltip styling here to match your brand */
    font-weight: bold;
    border-radius: 4px;
    border: 1px solid #ccc;
}


/* ── Camel hero image — centered overlay on main map ─────────── */
#camelHeroContainer {
    position: fixed;
    top: 10vh;
    left: 0;
    width: 100vw;
    display: flex;
    justify-content: center;
    z-index: 1005;
    pointer-events: none;
}

#camelHeroImg {
    max-width: 80%;
    height: auto;
    display: block;
    opacity: 0.85;
}



/* Desktop: show legacy column, hide Base Camp panel */
@media (min-width: 768px) {
    .basecamp-desktop-controls {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--control-gap, 6px);
    }
    #basecampPanel { display: none !important; }
}


/* ── Base Camp ───────────────────────────────────────────────────────────── */

/* Mobile: hide legacy column, Base Camp panel shown via .visible */
@media (max-width: 767px) {
    .basecamp-desktop-controls {
       display:
        none !important;
       }
    #basecampPanel { 
      display: none;
      flex-direction: column;
    }
    #basecampPanel.visible {
       display: flex; 
    }
}




/* Widen, centre, and make transparent when Base Camp is active */
/* ── Base Camp ───────────────────────────────────────────────────────────── */

/* Desktop: show legacy column, hide Base Camp panel */
@media (min-width: 768px) {
    .basecamp-desktop-controls {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--control-gap, 6px);
    }
    #basecampPanel { display: none !important; }
}

/* Mobile: hide legacy column, Base Camp panel shown via .visible */
@media (max-width: 767px) {
    .basecamp-desktop-controls { display: none !important; }
    #basecampPanel { display: none; flex-direction: column; }
    #basecampPanel.visible {
        display: flex;
        flex-direction: column;
        height: 100%;
    }
}

/* Widen, centre, and make transparent when Base Camp is active */
@media (max-width: 767px) {
    #searchButtonContainerBackground_control.basecamp-mode {
        width: min(340px, 94vw);
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        height: 100vh;
        max-height: 100vh;
        overflow-y: auto;
        border-radius: 0;
        padding: 0;
        /* background: transparent !important; */
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    body.is-native-app #searchButtonContainerBackground_control.basecamp-mode {
          top: 40px;
          height: calc(100vh - 80px);
          max-height: calc(100vh - 80px);
          width: 100vw;
          left: 0;
          transform: none;
         /* background-image: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,0.1)), url('/img/jwst_ngc6440.png') !important; */
           background-image: url('/img/stars.png') !important;
          background-size: cover !important;
          background-position: center !important;
          background-repeat: no-repeat !important;
      }
    }

    body.is-mobile-browser #searchButtonContainerBackground_control.basecamp-mode {
        width: min(340px, calc(100vw - 32px));
        background: transparent !important;
    }

/* Suppress red animated border in Base Camp mode */

/* Suppress red animated border in Base Camp mode */
#searchButtonContainerBackground_control.basecamp-mode::after,
#searchButtonContainerBackground_control.basecamp-mode::before {
    content: none !important;
}

/* ── Hero ── */
.basecamp-hero {
    position: relative;
    width: 100%;
    height: auto;
    overflow: visible;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 40px 0 12px;
    margin-bottom: 50px;
}
#basecampHeroImg {
    width: 90px;
    height: 90px;
    object-fit: contain;
}
.basecamp-branding-overlay {
    position: static;
    background: none;
    padding: 0;
    margin-top: 10px;
    text-align: center;
    pointer-events: none;
}
.basecamp-branding-overlay .bc-title {
    display: block;
    color: #ffffff;
    font-size: 1.15rem;
    font-weight: bold;
    letter-spacing: 0.04em;
}
.basecamp-branding-overlay .bc-tagline {
    display: block;
    color: #4db6ac;
    font-size: 0.72rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-top: 3px;
    pointer-events: auto;
}
#basecampPanel #btnAccount {
    position: absolute;
    top: 8px;
    right: 12px;
    border-radius: 50%;
    background: #ffff00;
    color: #333;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: bold;
    z-index: 2;
    box-shadow: 0 2px 6px rgba(0,0,0,0.4);
    padding: 0;
    width: 36px !important;
    height: 36px !important;
}

/* Grid */
.basecamp-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-template-rows: 80px 80px 80px;
    gap: 6px;
    padding: 6px 10px;
    flex-shrink: 0;
    flex: 1;
    align-content: stretch;
    /* background-color:rgba(20, 20, 28, 0.05) */
}

/* Explicit grid placement */
:root {
    --bc-btn-bg: rgba(0, 0, 0, 0.25);
}



#btn9Wrapper {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    height: 80px !important;
    background: transparent;
    /* border: 1.5px solid rgba(72, 146, 160, 0.55); */
    border-radius: 12px;
    padding: 0;
    min-width: 0;
    box-sizing: border-box;
}

#btn9Wrapper button {
    flex: 1;
    width: 100% !important;
    height: auto !important;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(20, 20, 28, 0.55);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    color: #eee;
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 8px;
    padding: 5px 2px;
    font-size: 0.60rem !important;
    text-align: center;
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.3s ease-out;
    outline: none;
}

#btn9Wrapper button .bc-icon,
#btn9Wrapper button .bc-icon_ {
    font-size: 1.4rem;
    line-height: 1;
    display: block;
}

/* ===== TRAIL PiP � Task #171 ===== */

#trailPiPBtn {
    position: fixed;
    bottom: 110px; right: 16px;
    width: 44px; height: 44px;
    background: rgba(72,156,160,0.92);
    border: 2px solid #fff;
    border-radius: 50%;
    color: #fff;
    display: none;
    align-items: center; justify-content: center;
    cursor: pointer;
    z-index: 100005;
    box-shadow: 0 2px 12px rgba(0,0,0,0.45);
    -webkit-user-select: none; user-select: none;
    touch-action: manipulation;
}
body.is-mobile-browser #trailPiPBtn { bottom: 120px; }

#trailPiPPanel {
    position: fixed;
    bottom: 30px; right: 16px;
    width: 90px; height: 75px;
    border-radius: 12px;
    overflow: hidden;
    z-index: 100005;
    display: none;
    border: 2px solid #489ca0;
    box-shadow: 0 4px 24px rgba(0,0,0,0.65);
    transform-origin: bottom right;
    touch-action: none;
    cursor: pointer;
}
body.is-mobile-browser #trailPiPPanel { bottom: 35px; }

#trailPiPPanel.pip-in  { animation: pipScaleIn  0.25s ease forwards; }
#trailPiPPanel.pip-out { animation: pipScaleOut 0.22s ease forwards; }
@keyframes pipScaleIn  { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes pipScaleOut { from { transform: scale(1); opacity: 1; } to { transform: scale(0); opacity: 0; } }

#trailPiPMap { width: 100%; height: 100%; }

#trailPiPFullscreen {
    position: absolute;
    top: 6px; right: 6px; z-index: 1;
    width: 28px; height: 28px;
    background: rgba(0,0,0,0.65);
    border: 1.5px solid #489ca0;
    border-radius: 6px;
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    -webkit-user-select: none; user-select: none;
    touch-action: manipulation;
}

/* 25km Places locked while pip active */
/* body.pip-active #btnFiveK {
    opacity: 0.4;
    pointer-events: none;
    filter: grayscale(0.4);
} */

#btn9Wrapper button:active {
    background: rgba(72, 146, 160, 0.7);
    box-shadow: 0 0 0 2px rgba(72, 146, 160, 0.85);
}

#btn9Wrapper button:focus {
    outline: none;
}

#btnMyTracks .bc-icon_ {
    opacity: 0.90;
}
#btnMyTracks .grid-text_ em {
    opacity: 0.85;
}

.bc-tracking-label {
    color: #4892a0;
    font-size: 0.55rem;
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
    font-weight: 600;
    padding-bottom: 3px;
    border-bottom: 1px solid rgba(72, 146, 160, 0.22);
    flex-shrink: 0;
    pointer-events: none;
}

/* .bc-tracking-separator {
    height: 1px;
    background: rgba(72, 146, 160, 0.60);
    flex-shrink: 0;
    margin: 0 2px;
} */



#routeTriggerBtn    { grid-column: 2;      grid-row: 1; }
#btnFiveK           { grid-column: 3;      grid-row: 1; display: none !important;}
#btnMyPlaces        { grid-column: 1;      grid-row: 2; }
#btn12              { grid-column: 2;      grid-row: 2; }
#btn13              { grid-column: 3;      grid-row: 2; }
#btn-offline-maps   { grid-column: 1;      grid-row: 3; }
#btn-image-analyze  { grid-column: 3;      grid-row: 3; }

/* Standard grid buttons */
.basecamp-grid > button {
    height: 80px;
    background: rgba(20, 20, 28, 0.55);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    color: #eee;
    border: 1px solid rgba(255,255,255,0.35);
    border-radius: 8px;
    padding: 10px 4px;
    font-size: 0.60rem !important;
    text-align: center;
    cursor: pointer;
    transition: background 0.15s, box-shadow 0.3s ease-out;
    width: auto !important;
    min-height: 0;
     display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.basecamp-grid > button:active {
    background: rgba(72, 146, 160, 0.7);
    box-shadow: 0 0 0 2px rgba(72, 146, 160, 0.85);
}

/* Search — full width row 3 */
#basecampSearchBtn {
    width: 100% !important;
    background: rgba(72, 146, 160, 0.92) !important;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    box-shadow: 0 0 24px rgba(72, 146, 160, 0.75);
    border: 1px solid rgba(255, 255, 255, 0.6);
    color: #fff;
    font-size: 0.95rem !important;
    font-weight: bold;
    padding: 12px;
    border-radius: 8px;
    height: 80px;
    flex-shrink: 0;
}

/* Placeholder cell */
 #btn13 {
        background: rgba(20, 20, 28, 0.55) !important;
    }

/* not here */
.basecamp-bottom-bar {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 0 10px 20px;
    margin-bottom: 40px;
    flex-shrink: 0;
}
/* not here */    
.basecamp-bottom-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 6px;
    margin-top: 35px;
}
#nearbyMarkersBtn {
    flex: 1;
    background: transparent !important;
    color: #eee;
    border: none;
    border-radius: 8px;
    font-size: 0.78rem;
    font-weight: bold;
    cursor: pointer;
    width: auto !important;
    height: auto !important;
    min-height: 44px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
}
/* .nearby-text-inner {
    background:red;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border-radius: 8px;
    padding: 10px 16px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
} */
.basecamp-bottom-small {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex-shrink: 0;
    background: rgba(0, 0, 0, 0.0);
     /*backdrop-filter: blur(4px);
}
#basecampWelcomeBtn,
#basecampWhatBtn {
    width: 44px !important;
    flex: 1;
    height: auto !important;
    min-height: 0 !important;
    background: rgba(0, 0, 0, 0.0);
     /*backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px); */
    color: #000000;
    border: 1px solid rgba(0,0,0,0.0);
    border-radius: 8px;
    padding: 6px 4px;
    font-size: 0.82rem;
    cursor: pointer;
}

/* ── Account panel ── */
#basecampAccountPanel {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 20px;
}
#basecampAccountPanel.visible { display: flex; }
.basecamp-account-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #00897b;
    color: #fff;
    font-size: 1.4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.basecamp-account-name {
    color: #eee;
    font-size: 1rem;
    font-weight: bold;
    text-align: center;
}
#basecampAccountPanel button {
    width: 100% !important;
    height: auto !important;
    padding: 12px;
    border-radius: 8px;
    background: rgba(50,50,50,0.9);
    color: #eee;
    border: 1px solid rgba(255,255,255,0.1);
    cursor: pointer;
    font-size: 0.92rem;
    min-height: 44px;
}
#basecampAccountBackBtn {
    background: transparent !important;
    color: #aaa !important;
    font-size: 0.82rem !important;
    padding: 6px !important;
    border: none !important;
    align-self: flex-start;
    min-height: unset !important;
}

/* ── Trigger camping-icon state (map active) ── */
#nearbyMarkersTrigger.map-active {
    background-image: none;
    background-color: rgba(20, 20, 28, 0.85);
    font-size: 1.4rem;
    line-height: 1;
}

.basecamp-grid button em {
    font-style: normal;
    font-size: 0.84rem !important;
    margin-top: 3px;
    line-height: 1.2;
    display: block;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.bc-icon {
    font-size: 1.0rem;
    line-height: 1;
    display: block;
}

.bc-icon_ {
    font-size: 0.9rem !important;
    line-height: 1;
    display: block;
}
.basecamp-grid button .grid-text_ em {
    font-size: 0.68rem !important;
}

.basecamp-grid > button {
    width: auto !important;
    height: 80px !important;
    min-height: 0 !important;
}

.basecamp-grid button .bc-icon,
.basecamp-grid button .bc-icon_ {
    font-size: 1.2rem;
    filter: brightness(1.25) saturate(0.85);
}

#btn9Wrapper button .bc-icon,
#btn9Wrapper button .bc-icon_ {
    font-size: 1.6rem;
    filter: brightness(1.25) saturate(0.85);
}

/* .basecamp-split-btn {
    height: 100px !important;
} */

/* .basecamp-split-btn button {
    width: 100% !important;
    height: 100% !important;
} */

/* ============================================================
   BASE CAMP DRAGGABLE GRID — Task #39
   Allows users to drag and rearrange Base Camp grid buttons.
   Order is saved to localStorage key: camelmaps_basecamp_order
   Excludes #basecampSearchBtn (data-nodrag="true").
   Mobile only — touch events, long press (600ms) to initiate drag.
   ============================================================ */

.basecamp-grid button.dragging {
    opacity: 0.4;
    transform: scale(1.08);
    transition: none;
}

.bc-drag-placeholder {
    grid-column: span 1;
    border: 2px dashed rgba(255,255,255,0.3);
    border-radius: 12px;
    background: rgba(255,255,255,0.05);
    min-height: 80px;
}

/* ── Trail Stop Banner — mobile only, fixed above Android bottom banner ─── */
#trailStopBanner {
    display: none;
    position: fixed;
    bottom: max(env(safe-area-inset-bottom), 24px);
    left: 0;
    width: 100vw;
    height: 40px;
    z-index: 100001;
    flex-direction: row;
}

body.is-mobile-browser #trailStopBanner {
    bottom: 0;
}

@media (min-width: 768px) {
    #trailStopBanner { display: none !important; }
}

#trailCancelBtn {
    flex: 1;
    background: #E1AD9D;
    color: #fff;
    border: none;
    height: 100%;
    font-size: 1.0rem;
    letter-spacing: 0.02rem;
    font-weight: bold;
    cursor: pointer;
}

#trailSaveBtn {
    flex: 1;
    background: #4892a0;
    color: #fffdd0;
    border: none;
    height: 100%;
    font-size: 1.0rem;
    letter-spacing: 0.02rem;
    font-weight: bold;
    cursor: pointer;
}

/* ── Trail Pause Button — mobile only, floating above trail stop banner ─── */
#trailPauseBtn {
    display: none;
    position: fixed;
    bottom: 100px;
    left: 50%;
    transform: translateX(-50%);
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: rgba(20, 20, 28, 0.82);
    border: 2px solid #4db6ac;
    color: #fff;
    font-size: 1.4rem;
    line-height: 1;
    cursor: pointer;
    z-index: 100001;
    display: none;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    transition: border-color 0.2s;
}
#trailPauseBtn.paused {
    border-color: #ffaa00;
}

body.is-mobile-browser #trailPauseBtn {
    bottom: 60px;
}
@media (min-width: 768px) {
    #trailPauseBtn { display: none !important; }
}


/* ============================================================
   BASE CAMP DRAGGABLE GRID — Task #39
   translate-based drag, buttons stay in grid flow.
   Order saved to localStorage: camelmaps_basecamp_order
   Excludes #basecampSearchBtn (data-nodrag="true").
   Mobile only — touch, long press 600ms to initiate.
   ============================================================ */
.basecamp-grid button.bc-dragging {
    opacity: 0.4;
    transition: none !important;
    z-index: 10;
    position: relative;
}

/* ============================================================
   BASE CAMP DRAGGABLE GRID — touch hit detection fix
   Prevents bc-icon/em children from intercepting touchstart,
   ensuring long press always registers on the button itself.
   ============================================================ */
.basecamp-grid button .bc-icon,
.basecamp-grid button .bc-icon_,
.basecamp-grid button em {
    pointer-events: none;
}

/* ── Privacy Modal ─────────────────────────────── */
body.is-native-app #privacyModal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: #000000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 0 0 24px;
    box-sizing: border-box;
    overflow: hidden;
}

body.is-mobile-browser #privacyModal {
    position: fixed;
    inset: 0;
    top: 0;
    z-index: 99999;
    background: #000000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 0;
    box-sizing: border-box;
    overflow: hidden;
}

body.is-mobile-browser #privacyModal {
    position: fixed;
    inset: 0;
    top: -50px;
    z-index: 99999;
    background: #000000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 48px 0 24px;
    box-sizing: border-box;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}


body.is-native-app #privacyModalContent {
    background: #000000;
    color: #e8e8e8;
    border-radius: 10px;
    width: 95vw !important;
    max-width: 95vw !important;
    font-family: Arial, sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    padding: 0;
    position: relative; /* needed for absolute close button */
    height:93vh;
}

body.is-mobile-browser #privacyModalContent {
    background: #000000;
    color: #e8e8e8;
    border-radius: 10px;
    width: 95vw !important;
    max-width: 95vw !important;
    font-family: Arial, sans-serif;
    font-size: 0.9rem;
    line-height: 1.6;
    display: flex;
    flex-direction: column;
    height: 90vh;
    padding: 0;
    position: relative; /* needed for absolute close button */
    height:100vh;
}

#privacyModalContent h2 {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #aaa;
    margin: 24px 0 8px;
    font-weight: bold;
}
#privacyModalContent h2:first-child { margin-top: 0; }
#privacyModalContent p  { margin: 0 0 12px; }
#privacyModalContent ul { margin: 0 0 12px; padding-left: 20px; }
#privacyModalContent li { margin-bottom: 6px; }
#privacyModalContent a  { color: #5bc8af; }
#privacyModalContent table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    margin: 0 0 14px;
}
#privacyModalContent th {
    background: rgba(255,255,255,0.07);
    text-align: left;
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,0.12);
    font-weight: bold;
}
#privacyModalContent td {
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,0.1);
    vertical-align: top;
    color: #ccc;
}
#privacyModalClose {
    position: absolute;
    top: 12px;
    right: 12px;
    background: none;
    border: none;
    color: #fff;
    font-size: 1.6rem;
    cursor: pointer;
    z-index: 1;
    line-height: 1;
    padding: 4px 8px;
}

body.is-native-app #privacyModal {
    padding-top: env(safe-area-inset-top);
}

#privacyModal {
    z-index: 99998;
}

body.is-native-app #privacyModalClose {
    position: fixed;
    top: calc(env(safe-area-inset-top) + 12px);
    right: 12px;
}

body.is-native-app .pp-header { margin-top: 10px; }
body.is-mobile-browser #privacyModalTitle { margin-top: 50px; }


/* ── Privacy Modal — Cookie Cards ───────────────── */
.pm-cookie-cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0 0 14px;
}
.pm-cookie-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 6px;
    padding: 10px 12px;
}
.pm-cookie-name {
    font-family: monospace;
    font-size: 0.85rem;
    color: #5bc8af;
    margin-bottom: 4px;
    word-break: break-all;
}
.pm-cookie-meta {
    display: flex;
    gap: 8px;
    margin-bottom: 6px;
}
.pm-cookie-type,
.pm-cookie-duration {
    font-size: 0.75rem;
    padding: 2px 7px;
    border-radius: 10px;
    background: rgba(255,255,255,0.08);
    color: #bbb;
}
.pm-cookie-purpose {
    font-size: 0.83rem;
    color: #ccc;
    line-height: 1.5;
}

/* ── Donate button — onboarding panel ───────────── */
.onboarding-donate-row {
    text-align: center;
    padding: 10px 16px 4px;
}
.onboarding-donate-btn {
    display: inline-block;
    background: rgba(72, 146, 160, 0.88) !important;
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 0.88rem;
    font-weight: bold;
    padding: 9px 24px;
    border-radius: 20px;
    text-decoration: none;
    letter-spacing: 0.04em;
}
.onboarding-donate-btn:hover {
    background: #e04e4b;
    color: #fff;
}

/* ── Hero Lightbox - Base camp ───────────────────────────────── */
.basecamp-hero-clickable {
    cursor: pointer;
}
#heroLightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(0,0,0,0.30);
    align-items: center;
    justify-content: center;
}
#heroLightbox img {
    max-width: 92vw;
    max-height: 80vh;
    border-radius: 10px;
    object-fit: contain;
}
#heroLightboxClose {
    position: fixed !important;
    top: 10px;
    right: 16px;
    background: none;
    border: none;
    color: #fff;
    font-size: 1.6rem;
    cursor: pointer;
    z-index: 100000;
    line-height: 1;
    padding: 4px 8px;
}
body.is-native-app #heroLightboxClose {
    top: 50px;
}

/* =====================================================
   MY TRACKS PANEL  —  appended
   ===================================================== */

#myTracksPanel {
    position: fixed;
    inset: 0;
    z-index: 10500;
    background: #1a1a2e;
    color: #eee;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

body.is-native-app #myTracksPanel {
    padding-top: 40px;
}

#offlineMapsPanel {
    position: fixed;
    inset: 0;
    z-index: 10500;
    background: #1a1a2e;
    color: #eee;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

body.is-native-app #offlineMapsPanel {
    padding-top: 40px;
}

#offlineBoxOverlay {
    position: fixed;
    inset: 0;
    z-index: 200004;
    pointer-events: all;
    background: rgba(0, 0, 0, 0.15);
}

#offlineBoxInstruction {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(20, 20, 28, 0.92);
    color: #eee;
    padding: 12px 20px;
    border-radius: 8px;
    font-size: 0.95rem;
    font-weight: bold;
    pointer-events: none;
    text-align: center;
}

.mt-panel-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    flex-shrink: 0;
}

.mt-panel-title {
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: #eee;
}

.mt-panel-close {
    background: none;
    border: none;
    color: #aaa;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}
.mt-panel-close:active { color: #fff; }

.mt-panel-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    -webkit-overflow-scrolling: touch;
}

.mt-show-btn-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 200px;
}

.mt-show-tracks-btn {
    background: #4892a0;
    color: #fff;
    border: none;
    border-radius: 10px;
    padding: 14px 32px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    letter-spacing: 0.04em;
}
.mt-show-tracks-btn:active { background: #3a7a87; }
.mt-show-tracks-btn:disabled { opacity: 0.6; cursor: default; }

.mt-clear-row {
    margin-bottom: 12px;
}
.mt-clear-map-btn {
    width: 100%;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 8px;
    color: #ccc;
    padding: 8px 12px;
    font-size: 0.85rem;
    cursor: pointer;
    text-align: center;
}
.mt-clear-map-btn:active { background: rgba(255,255,255,0.14); }

.mt-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.mt-track-count {
    font-size: 0.85rem;
    color: #888;
}

.mt-sort-btn {
    background: none;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 6px;
    color: #aaa;
    font-size: 0.78rem;
    padding: 4px 10px;
    cursor: pointer;
}
.mt-sort-btn:active { background: rgba(255,255,255,0.08); }

.mt-row {
    display: flex;
    align-items: center;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.09);
    border-radius: 10px;
    padding: 11px 12px;
    margin-bottom: 8px;
    cursor: pointer;
    transition: background 0.12s;
    gap: 10px;
}
.mt-row:active { background: rgba(72,146,160,0.25); }

.mt-row-all {
    background: rgba(72,146,160,0.12);
    border-color: rgba(72,146,160,0.3);
}
.mt-row-all:active { background: rgba(72,146,160,0.3); }

.mt-row-loading {
    opacity: 0.5;
    pointer-events: none;
}

.mt-row-icon {
    font-size: 1.2rem;
    flex-shrink: 0;
}

.mt-row-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.mt-row-name {
    font-size: 0.92rem;
    font-weight: 600;
    color: #eee;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.mt-row-date {
    font-size: 0.78rem;
    color: #888;
}

.mt-row-meta {
    font-size: 0.78rem;
    color: #4892a0;
}

.mt-delete-btn {
    background: none;
    border: none;
    color: #666;
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 6px;
    flex-shrink: 0;
    border-radius: 6px;
}

.mt-delete-btn:active { color: #e74c3c; background: rgba(231,76,60,0.12); }
.mt-row-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.mt-share-btn {
    background: none;
    border: none;
    color: #666;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 6px;
    flex-shrink: 0;
    border-radius: 6px;
}
.mt-share-btn:active { color: #489ca0; background: rgba(72,156,160,0.12); }
.mt-gpx-btn, .mt-trip-gpx-btn {
    background: none;
    border: none;
    color: #666;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 6px;
    flex-shrink: 0;
    border-radius: 6px;
}
.mt-gpx-btn:active, .mt-trip-gpx-btn:active { color: #489ca0; background: rgba(72,156,160,0.12); }




.mt-empty,
.mt-error {
    text-align: center;
    color: #777;
    font-size: 0.9rem;
    line-height: 1.6;
    padding: 40px 16px;
}
.mt-error { color: #e74c3c; }

/* My Tracks — Tabs */
.mt-tabs {
    display: flex;
    border-bottom: 1px solid #2a2a4a;
    margin-bottom: 0;
}
.mt-tab-btn {
    flex: 1;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: #aaa;
    font-size: 0.9rem;
    font-weight: 500;
    padding: 10px 0;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
}
.mt-tab-btn--active {
    color: #489ca0;
    border-bottom-color: #489ca0;
}

/* My Tracks — Trips list */
.mt-trip-row {
    border-left: 3px solid #489ca0;
}
.mt-new-trip-btn {
    background: #489ca0;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 5px 10px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
    margin-top: 12px;
}
.mt-new-trip-btn:active { opacity: 0.8; }

/* My Tracks — Select mode */
.mt-select-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid #2a2a4a;
}
.mt-select-hint {
    font-size: 0.82rem;
    color: #aaa;
}
.mt-select-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    border-bottom: 1px solid #1a1a2e;
    cursor: pointer;
}
.mt-select-row:active { background: #1a1a3e; }
.mt-select-cb {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: #489ca0;
    cursor: pointer;
}
.mt-select-footer {
    padding: 12px 16px;
    border-top: 1px solid #2a2a4a;
    position: sticky;
    bottom: 0;
    background: #1a1a2e;
}
.mt-create-trip-btn {
    width: 100%;
    background: #489ca0;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 12px;
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
}
.mt-create-trip-btn:disabled {
    background: #2a2a4a;
    color: #555;
    cursor: not-allowed;
}
.mt-create-trip-btn:not(:disabled):active { opacity: 0.85; }
.mt-loading {
    color: #aaa;
    font-size: 0.85rem;
    padding: 20px 16px;
    text-align: center;
}

/* My Tracks — Elevation graph (in-app) */
.mt-elev-wrapper {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: #12122a;
    border-top: 1px solid #2a2a4a;
    z-index: 100008;
    transition: transform 0.2s ease;
    padding-bottom: env(safe-area-inset-bottom);
}
.mt-elev-handle {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 16px;
    cursor: pointer;
    user-select: none;
}
.mt-elev-label {
    font-size: 0.82rem;
    color: #aaa;
}
.mt-elev-graph {
    overflow-x: auto;
    padding: 0 8px 8px;
    display: block;
}
.mt-elev-collapsed .mt-elev-graph {
    display: none;
}

/* My Tracks — map back button */
#mtMapBackBtn {
    position: fixed;
    top: 25px;
    right: 12px;
    z-index: 10400;
    background: rgba(26,26,46,0.92);
    color: #eee;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 20px;
    padding: 7px 14px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
body.is-native-app #mtMapBackBtn {
    top: 60px;
}

/* My Tracks — guest banner */
.mt-guest-banner {
    margin: auto 16px 16px;
    padding: 10px 12px;
    background: rgba(72,146,160,0.15);
    border: 1px solid rgba(72,146,160,0.35);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    animation: mtBannerFadeOut 0.4s ease 6.6s forwards;
}

.mt-guest-msg {
    font-size: 0.82rem;
    color: #b0cdd2;
    line-height: 1.4;
}

.mt-guest-check-label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 0.8rem;
    color: #888;
    cursor: pointer;
}

.mt-guest-check-label input[type="checkbox"] {
    accent-color: #4892a0;
    width: 15px;
    height: 15px;
    cursor: pointer;
}

@keyframes mtBannerFadeOut {
    from { opacity: 1; }
    to   { opacity: 0; pointer-events: none; }
}

/* My Tracks — track name modal */
#mtNameModal {
    position: fixed;
    inset: 0;
    z-index: 20000;
    background: rgba(0,0,0,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.mt-name-box {
    background: #2a2a3e;
    border-radius: 12px;
    padding: 20px 18px 16px;
    width: 100%;
    max-width: 340px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}

.mt-name-label {
    display: block;
    font-size: 0.95rem;
    font-weight: 600;
    color: #eee;
    margin-bottom: 12px;
}

.mt-name-input-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}

.mt-name-input {
    flex: 1;
    background: #1a1a2e;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 8px;
    color: #eee;
    font-size: 0.92rem;
    padding: 9px 12px;
    outline: none;
}
.mt-name-input:focus {
    border-color: #4892a0;
}

.mt-name-btns {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.mt-name-btn {
    border: none;
    border-radius: 8px;
    padding: 9px 20px;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
}

.mt-name-btn-cancel {
    background: rgba(255,255,255,0.08);
    color: #aaa;
}
.mt-name-btn-cancel:active { background: rgba(255,255,255,0.15); }

.mt-name-btn-ok {
    background: #4892a0;
    color: #fff;
}
.mt-name-btn-ok:active { background: #3a7a87; }

#mtNameMic {
    position: static !important;
    color: #eee;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 6px;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0;
}
#mtNameMic.fn-mic-recording {
    color: #fff;
    background: rgba(231,76,60,0.4);
    border-color: #e74c3c;
}

/* ── Admin Comments page — allow vertical scroll (overrides global overflow:hidden) ── */
body.page-admin-comments,
html:has(body.page-admin-comments) {
    overflow-y: auto;
    height: auto;
}

/* ── Password Reset Confirmation State ─────────────────────────── */
#authResetConfirm {
    display: none;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 8px 0 4px;
    gap: 10px;
}

.auth-confirm-icon {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #2a9d8f;
    color: #fff;
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
}

.auth-confirm-heading {
    font-size: 1.2rem;
    font-weight: 700;
    color: #1a1a2e;
}

.auth-confirm-body {
    font-size: 0.92rem;
    color: #444;
    line-height: 1.5;
}

.auth-confirm-junk {
    font-size: 0.82rem;
    color: #888;
    font-style: italic;
}

.auth-confirm-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    margin-top: 8px;
    gap: 12px;
}

.auth-confirm-actions .auth-link {
    color: #2a9d8f;
}

body.trail-active:not(.pip-active) .leaflet-marker-icon.diamond-marker {
    display: none !important;
}

body.pip-active .leaflet-marker-icon.diamond-marker.trail-nearby-marker {
    display: none !important;
}


/* Back to top button */
.back-to-top-bar_footer {
    display: block;
    width: 100%;
    text-align: center;
}

body.is-native-app #privacyModal {
    max-height: calc(100vh - env(safe-area-inset-top));
    height: calc(100vh - env(safe-area-inset-top));
}

.back-to-top-btn_footer {
    -webkit-tap-highlight-color: transparent;
    color: inherit;
    text-decoration: none;
}
.back-to-top-btn_footer:active,
.back-to-top-btn_footer:focus {
    color: inherit;
    background: none;
    outline: none;
}
#cookie-banner a {
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    text-decoration: none;
    border: none;
    outline: none;
    background: none;
}
#cookie-banner a:active,
#cookie-banner a:focus,
#cookie-banner a:focus-visible {
    color: #1A4314;
    background: none;
    outline: none;
    border: none;
    box-shadow: none;
    text-decoration: none;
}

body.is-native-app #privacyModalTopBar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: env(safe-area-inset-top);
    background: #000000;
    z-index: 100000;
}
body.is-native-app #privacyModalContent {
    padding-top: calc(env(safe-area-inset-top) + 16px);
}

#kofiButtonWrapper {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
    transform: scale(0.75);
    transform-origin: top left;
    filter: brightness(0.85) saturate(0.88);
}

#kofiDesktopWrapper {
    position: fixed;
    bottom: 75px;
    left: 10px;
    z-index: 1000;
    transform: scale(1.25);
    transform-origin: bottom left;
}

body.is-native-app #kofiDesktopWrapper,
body.is-mobile-browser #kofiDesktopWrapper {
    display: none;
}

/* Google login buttons — hidden on native app (OAuth return bug unresolved) */
body.is-native-app .auth-google-btn {
    display: none;
}

/* AI language dropdown */
.ai-lang-select {
    display: block;
    width: 90%;
    margin: 6px auto 0 auto;
    padding: 6px 8px;
    background: #1a1a1a;
    color: #ffffff;
    border: 1px solid #4892a0;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    appearance: auto;
}
.ai-lang-select:focus {
    outline: none;
    border-color: #5ba3b0;
}

/* Change language link */
/* .ai-lang-link-row {
    display: flex;
    justify-content: center;
    margin: 15px 0 -25px 0;
    border-top: 1px dashed #404040;
    border-bottom: 1px dashed #404040;
    padding: 8px 0;
} */


.ai-lang-link-row {
    display: flex;
    justify-content: center;
    margin: 15px 0 -25px 0;
    border-top: 1px solid transparent;
    border-bottom: 1px solid transparent;
    border-image: linear-gradient(to right, transparent, #707070  20%, #707070 80%, transparent) 1;
    padding: 8px 0;
}









.ai-lang-link {
    color: #000000;
    font-weight: bold;
    font-size: 15px;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    white-space: nowrap;
}
.ai-lang-link:active,
.ai-lang-link:focus {
    color: #4892a0;
    outline: none;
    border:none;
}
.ai-lang-link span.ai-lang-arrow {
    color: #4892a0;
}
/* Language hint text */
.ai-lang-hint {
    text-align: center;
    font-size: 11px;
    color: #888888;
    font-weight:bold;
    margin: 8px 0 2px 0;
}
/* Sign in toast */
.ai-toast--signin {
    pointer-events: auto;
}
.ai-toast--signin .ai-toast-link {
    text-decoration: underline;
    cursor: pointer;
    font-weight: bold;
    white-space: nowrap;
}
#fiveKSpinner {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 52px;
    height: 52px;
   border: 5px solid rgba(255, 0, 0, 0.25);
  border-top-color: #ff0000;
    border-radius: 50%;
    animation: fiveKSpin 0.8s linear infinite;
    z-index: 200001;
    pointer-events: none;
}
@keyframes fiveKSpin {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to   { transform: translate(-50%, -50%) rotate(360deg); }
}
#fiveKOverlay {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 200001;
    pointer-events: none;
    text-align: center;
    width: 280px;
}

#fiveKMessage {
    display: none;
    color: #ffffff;
    position: relative;
    background: rgba(0, 0, 0, 0.85);
    border-top: 3px solid #4892a0;
    border-radius: 8px;
    padding: 14px 18px;
    font-size: 0.85rem;
    font-family: Arial, sans-serif;
    line-height: 1.5;
    margin-top: 16px;
    pointer-events: auto;
}

#fiveKDontShowLabel {
    display: block;
    margin-top: 12px;
    font-size: 0.82rem;
    color: #ccc;
    font-family: Arial, sans-serif;
    cursor: pointer;
    pointer-events: auto;
}

#fiveKDontShowLabel input[type="checkbox"] {
    margin-right: 6px;
    cursor: pointer;
    pointer-events: auto;
    accent-color: #489ca0;
}

#fiveKCloseBtn {
    position: fixed;
    top: 60px;
    right: 20px;
    z-index: 200002;
    width: 36px;
    height: 36px;
    background: rgba(0, 0, 0, 0.75);
    border: 2px solid #4892a0;
    border-radius: 50%;
    color: #ffffff;
    font-size: 1.1rem;
    text-align: center;
    cursor: pointer;
    pointer-events: auto;
    align-items: center;
    justify-content: center;
    display: none;
}

/* Notification permission modal */
#notifPermModal {
    display: none;
}

#notifPermBox {
    box-shadow: 0 4px 24px rgba(0,0,0,0.6);
}

#notifPermEnable:active,
#notifPermSettings:active,
#notifPermCancel:active {
    opacity: 0.8;
}

.myplaces-map-link,
#btnMyPlaces {
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}

/* -- AI Place Q&A Modal ----------------------------------------- */
#ai-qa-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(0,0,0,0.6);
    align-items: flex-start;
    justify-content: center;
    padding: 56px 16px 16px 16px;
    box-sizing: border-box;
}

#ai-qa-modal-inner {
    background: #ffffff;
    border-radius: 12px;
    width: 100%;
    max-width: 560px;
    max-height: 85vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0,0,0,0.28);
}
#ai-qa-modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    border-bottom: 1px solid #e8e8e8;
    background: #489ca0;
    color: #ffffff;
    flex-shrink: 0;
}
#ai-qa-modal-title {
    font-weight: bold;
    font-size: 15px;
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-right: 12px;
}
#ai-qa-modal-header-btns {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
#ai-qa-print-btn,
#ai-qa-close-btn {
    background: none;
    border: none;
    color: #ffffff;
    font-size: 20px;
    cursor: pointer;
    padding: 2px 6px;
    line-height: 1;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
#ai-qa-print-btn:hover,
#ai-qa-close-btn:hover {
    background: rgba(255,255,255,0.2);
}
#ai-qa-thread {
    flex: 1;
    overflow-y: auto;
    padding: 14px 14px 6px 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.ai-qa-bubble {
    max-width: 100%;
    padding: 10px 13px;
    border-radius: 14px;
    font-size: 14px;
    line-height: 1.5;
    word-break: break-word;
}
.ai-qa-bubble-user {
    align-self: flex-end;
    background: #489ca0;
    color: #ffffff;
    border-bottom-right-radius: 4px;
}
.ai-qa-bubble-ai {
    align-self: flex-start;
    background: #f0f0f0;
    color: #1a1a1a;
    border-bottom-left-radius: 4px;
}
.ai-qa-bubble-text {
    white-space: pre-wrap;
}
.ai-qa-sources {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #ddd;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.ai-qa-sources-label {
    font-size: 11px;
    font-weight: bold;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.ai-qa-source-link {
    font-size: 12px;
    color: #489ca0;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ai-qa-source-link:hover {
    text-decoration: underline;
}
/* Typing indicator */
.ai-qa-typing {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 12px 16px;
}
.ai-qa-typing span {
    width: 8px;
    height: 8px;
    background: #aaa;
    border-radius: 50%;
    animation: ai-qa-bounce 1.2s infinite ease-in-out;
}
.ai-qa-typing span:nth-child(2) { animation-delay: 0.2s; }
.ai-qa-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes ai-qa-bounce {
    0%, 80%, 100% { transform: scale(0.7); opacity: 0.5; }
    40%           { transform: scale(1.1); opacity: 1;   }
}
/* Chips */
#ai-qa-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 8px 14px 4px 14px;
    flex-shrink: 0;
}
.ai-qa-chip {
    background: #eef7f7;
    border: 1px solid #489ca0;
    color: #489ca0;
    border-radius: 16px;
    padding: 5px 12px;
    font-size: 12px;
    cursor: pointer;
    white-space: nowrap;
    transition: background 0.15s;
}
.ai-qa-chip:hover,
.ai-qa-chip:active {
    background: #489ca0;
    color: #ffffff;
}
/* Input row */
#ai-qa-input-row {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 10px 14px 14px 14px;
    border-top: 1px solid #e8e8e8;
    flex-shrink: 0;
}
.ai-qa-input-wrapper {
    flex: 1;
    position: relative;
}
#ai-qa-input {
    width: 100%;
    border: 1px solid #ccc;
    border-radius: 10px;
    padding: 8px 36px 8px 12px;
    font-size: 14px;
    resize: none;
    outline: none;
    font-family: inherit;
    line-height: 1.4;
    box-sizing: border-box;
}
#ai-qa-input:focus {
    border-color: #489ca0;
}
#ai-qa-mic-btn {
    bottom: 6px;
}
#ai-qa-send-btn {
    background: #489ca0;
    color: #ffffff;
    border: none;
    border-radius: 10px;
    padding: 9px 16px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
    flex-shrink: 0;
    transition: background 0.15s;
}
#ai-qa-send-btn:hover {
    background: #3a8286;
}
#ai-qa-send-btn:disabled {
    background: #aaa;
    cursor: not-allowed;
}
/* Print area � hidden on screen */
#ai-qa-print-area {
    display: none;
}

.ai-qa-h3 {
    font-size: 14px;
    font-weight: bold;
    margin: 16px 0 2px 0;
    color: #1a1a1a;
}
.ai-qa-h4 {
    font-size: 13px;
    font-weight: bold;
    margin: 14px 0 2px 0;
    color: #1a1a1a;
}
.ai-qa-bubble-text ul {
    margin: 4px 0;
    padding-left: 18px;
}
.ai-qa-bubble-text li {
    margin-bottom: 3px;
}

/* === CONNECTIVITY MODAL === */
#btn-image-analyze { display: none !important; }
#btn-find-place    { grid-column: 2; grid-row: 3; }
#btn-connectivity  { grid-column: 3; grid-row: 3; }

/* === FIND PLACE MODAL === */
#findPlaceModal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(0,0,0,0.72);
    align-items: center;
    justify-content: center;
    padding: 20px 24px;
}
#findPlaceModal.open { display: flex; }

#findPlaceInner {
    background: #1a1a24;
    width: 100%;
    max-width: 480px;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    max-height: 75vh;
    min-height: 0;
}
#findPlaceHeader {
    background: #489ca0;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    flex-shrink: 0;
}
#findPlaceClose {
    background: none;
    border: none;
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}
#findPlaceInputRow {
    display: flex;
    gap: 8px;
    padding: 12px 16px;
    background: #22222e;
    flex-shrink: 0;
    box-sizing: border-box;
    width: 100%;
}
#findPlaceInput {
    flex: 1;
    max-width: 66.666667%;
    background: #2e2e3e;
    border: 1px solid #444;
    border-radius: 8px;
    color: #e0e0f0;
    font-size: 13px;
    padding: 8px 10px;
    outline: none;
}
#findPlaceInput::placeholder { color: #666; }

#findPlaceSearch {
    background: #489ca0;
    border: none;
    border-radius: 8px;
    color: #fff;
    font-size: 16px;
    padding: 8px 12px;
    cursor: pointer;
    flex-shrink: 0;
}
#findPlaceInputRow .fn-mic-btn {
    background: #489ca0;
    border: none;
    border-radius: 8px;
    color: #fff;
    font-size: 16px;
    padding: 8px 10px;
    cursor: pointer;
    flex-shrink: 0;
    position: static;
    width: auto;
    height: auto;
}
#findPlaceResults {
    overflow-y: auto;
    flex: 1;
    min-height: 120px;
    padding: 8px 0 16px;
}
.fp-result {
    padding: 12px 16px;
    cursor: pointer;
    border-bottom: 1px solid #2e2e3e;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.fp-result:active, .fp-result:hover { background: #2e2e3e; }
.fp-result-name { color: #e0e0f0; font-size: 14px; font-weight: 500; }
.fp-result-sub  { color: #888; font-size: 12px; }
.fp-loading, .fp-empty { padding: 20px 16px; color: #888; font-size: 13px; text-align: center; }

#connectivity-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 99998;
    background: rgba(0,0,0,0.72);
    align-items: flex-end;
    justify-content: center;
}
#connectivity-modal.open {
    display: flex;
}
#connectivity-modal-inner {
    background: #1a1a24;
    width: 100%;
    max-width: 520px;
    height: calc(100vh - env(safe-area-inset-top) - max(env(safe-area-inset-bottom), 24px));
    border-radius: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
#connectivity-modal-header {
    background: #489ca0;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-shrink: 0;
    gap: 8px;
}
#connectivity-modal-header h2,
#conn-modal-title {
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    flex: 1;
    text-align: center;
}
#connectivity-modal-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    padding: 0 4px;
    line-height: 1;
}
.conn-tabs {
    display: flex;
    background: #12121a;
    flex-shrink: 0;
}
.conn-tab {
    flex: 1;
    padding: 11px 8px;
    font-size: 13px;
    font-weight: 600;
    color: #888;
    background: none;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s;
    letter-spacing: 0.3px;
}
.conn-tab.active {
    color: #489ca0;
    border-bottom-color: #489ca0;
}
.conn-tab-panel {
    display: none;
    overflow-y: auto;
    padding: 18px 16px 28px;
    flex: 1;
}
.conn-tab-panel.active {
    display: block;
}
.conn-112-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 16px;
    background: #c0392b;
    color: #fff;
    font-size: 20px;
    font-weight: 700;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    text-decoration: none;
    margin-bottom: 20px;
    letter-spacing: 0.5px;
}
.conn-112-btn:active {
    background: #a93226;
}
.conn-section-title {
    color: #489ca0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    margin: 0 0 10px;
    white-space: nowrap;
}
.conn-card {
    background: #22222e;
    border-radius: 10px;
    padding: 14px;
    margin-bottom: 12px;
    border-left: 3px solid #489ca0;
}
.conn-card h4 {
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 6px;
}
.conn-card p, .conn-card li {
    color: #b0b0c0;
    font-size: 13px;
    line-height: 1.55;
    margin: 0;
}
.conn-card ul {
    margin: 6px 0 0 16px;
    padding: 0;
}
.conn-card li {
    margin-bottom: 3px;
}
.conn-badge-free {
    display: inline-block;
    background: #1a4a2a;
    color: #4caf7a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 4px;
    margin-left: 7px;
    vertical-align: middle;
}
.conn-badge-paid {
    display: inline-block;
    background: #3a2a10;
    color: #e0a040;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 4px;
    margin-left: 7px;
    vertical-align: middle;
}
.conn-device-btns {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
}
.conn-device-btn {
    flex: 1;
    padding: 10px 6px;
    background: #22222e;
    border: 2px solid transparent;
    border-radius: 8px;
    color: #888;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s;
}
.conn-device-btn.active {
    border-color: #489ca0;
    color: #489ca0;
}
.conn-device-panel {
    display: none;
}
.conn-device-panel.active {
    display: block;
}
.conn-honest-msg {
    background: #1e1e2e;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 12px 14px;
    color: #888;
    font-size: 13px;
    line-height: 1.55;
    margin-bottom: 16px;
    font-style: italic;
}

/* Stay Connected � region landing */
#conn-screens-wrapper {
    position: relative;
    overflow: hidden;
    flex: 1;
    min-height: 0;
}
#conn-screen-landing,
#conn-screen-region {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    overflow-y: auto;
    padding: 12px 16px 40px;  
    box-sizing: border-box;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}
#conn-screen-landing { transform: translateX(0); }
#conn-screen-region  { transform: translateX(100%); }

.conn-landing-subtitle {
    text-align: center;
    font-size: 13px;
    color: #aaa;
    margin: 4px 0 16px;
}
.conn-region-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.conn-region-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 12px;
    padding: 16px 8px;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    color: #fff;
}
.conn-region-btn:hover,
.conn-region-btn:active {
    background: rgba(72,156,160,0.25);
    border-color: #489ca0;
}
.conn-region-flag { font-size: 32px; line-height: 1; }
.conn-region-name { font-size: 13px; font-weight: 600; text-align: center; }

#conn-back-btn {
    background: none;
    border: none;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 4px 8px 4px 0;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
}

.conn-call-btn-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}
.conn-call-btn-row .conn-112-btn {
    flex: 1;
    min-width: 120px;
}

.conn-tier-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 4px 0 10px;
}
.conn-tier-label {
    color: #489ca0;
    font-size: 13px;
    font-weight: 700;
}
.conn-tier-badge {
    background: #22222e;
    border: 1px solid #444;
    color: #888;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    letter-spacing: 0.5px;
}
.conn-tier-divider {
    height: 1px;
    background: rgba(255,255,255,0.08);
    margin: 16px 0;
}
.conn-plb-note {
    background: #2a1f10;
    border: 1px solid #5a3a10;
    border-radius: 8px;
    padding: 10px 12px;
    color: #e0a040;
    font-size: 12px;
    line-height: 1.5;
    margin-top: 10px;
}
.conn-more-coming {
    text-align: center;
    color: #666;
    font-size: 13px;
    margin-top: 4px;
}

/* -- Community tab toggle ------------------------------------------------ */
#comm-toggle {
    display: flex;
    gap: 8px;
    padding: 10px 12px 6px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    position: sticky;
    top: 0;
    background: #1a1a2e;
    z-index: 2;
    border-radius: 12px;
}

/* #comm-tab-community {
    position: relative;
    scroll-padding-top: 40px;
} */
.comm-tab-btn {
    flex: 1;
    padding: 7px 10px;
    border-radius: 20px;
    border: 1px solid rgba(72,156,160,0.4);
    background: transparent;
    color: rgba(255,255,255,0.6);
    font-size: 13px;
    cursor: pointer;
    transition: all 0.18s;
}
.comm-tab-btn--active {
    background: #489ca0;
    border-color: #489ca0;
    color: #fff;
    font-weight: 600;
}
.comm-loading {
    padding: 20px 14px;
    color: #888;
    font-size: 13px;
}
.comm-synthesis {
    margin: 12px 12px 6px;
    border-left: 3px solid #489ca0;
    padding: 8px 10px;
    background: rgba(72,156,160,0.08);
    border-radius: 0 6px 6px 0;
}
.comm-synthesis-label {
    font-size: 11px;
    font-weight: 700;
    color: #489ca0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 5px;
}
.comm-synthesis-text {
    font-size: 13px;
    color: #2a2a2a;
    line-height: 1.55;
}
.comm-synthesis-expand {
    background: none;
    border: none;
    color: #489ca0;
    font-size: 12px;
    padding: 4px 0 0;
    cursor: pointer;
}
.comm-note {
    padding: 10px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.comm-note-discoverer {
    font-size: 11px;
    font-weight: 700;
    color: #489ca0;
    margin-bottom: 4px;
}
.comm-note-text {
    font-size: 13px;
    color: #2a2a2a;
    line-height: 1.5;
    margin-bottom: 4px;
}
.comm-note-meta {
    font-size: 11px;
    color: #888;
    display: flex;
    align-items: center;
    gap: 6px;
}
.comm-note-flag {
    background: none;
    border: none;
    color: #bbb;
    font-size: 11px;
    cursor: pointer;
    padding: 0;
    margin-left: auto;
}
.comm-note-flag:hover { color: #e05; }
.comm-empty {
    padding: 24px 14px 16px;
    text-align: center;
}
.comm-empty-title {
    font-size: 15px;
    font-weight: 600;
    color: #2a2a2a;
    margin-bottom: 6px;
}
.comm-empty-body {
    font-size: 13px;
    color: #666;
    line-height: 1.5;
}
.comm-see-all {
    display: block;
    width: 100%;
    padding: 10px 12px;
    background: none;
    border: none;
    border-top: 1px solid rgba(255,255,255,0.06);
    color: #489ca0;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}
.comm-add-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-top: 1px solid rgba(255,255,255,0.08);
}
.comm-add-btn {
    flex: 1;
    padding: 9px 14px;
    background: rgba(72,156,160,0.15);
    border: 1px solid rgba(72,156,160,0.4);
    border-radius: 20px;
    color: #489ca0;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.comm-add-btn--login {
    color: #fff;
    border-color: #489ca0;
    background: #489ca0;
}
.comm-input-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
}
.comm-input-label {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}
.comm-input-close {
    background: none;
    border: none;
    font-size: 20px;
    color: #888;
    cursor: pointer;
    padding: 0;
    line-height: 1;
}
.comm-input-area {
    padding: 8px 12px 12px;
    border-top: 1px solid rgba(255,255,255,0.06);
}
.comm-input-text {
    width: 100%;
    min-height: 80px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(72,156,160,0.3);
    border-radius: 8px;
    color: #000000;
    font-size: 13px;
    padding: 10px;
    resize: none;
    box-sizing: border-box;
    font-family: inherit;
}
.comm-input-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 6px;
}
.comm-char-count {
    font-size: 11px;
    color: rgba(255,255,255,0.35);
}
.comm-submit-btn {
    padding: 7px 16px;
    background: #489ca0;
    border: none;
    border-radius: 16px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}
.comm-submit-btn:disabled { opacity: 0.5; }

.comm-submit-msg {
    font-size: 12px;
    margin-top: 6px;
    min-height: 16px;
}
/* -- Sidebar persistent place header ------------------------- */
.sidebar-place-header {
    padding: 10px 16px 8px;
    font-weight: 700;
    font-size: 1.40em;
    color: #1a1a2e;
    line-height: 1.3;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}
.sidebar-place-header .ai-place-subtitle {
    display: block;
    font-size: 0.65em;
    font-weight: 400;
    color: #666;
    margin-top: 2px;
}
/* Title + divider now in persistent header � hide inside descr */
#sidebar-descr .ai-place-title,
#sidebar-descr .ai-divider {
    display: none;
}
/* -- See more toggle ------------------------------------------ */
.comm-see-more-btn {
    display: block;
    width: 100%;
    background: none;
    border: none;
    border-bottom: 1px solid rgba(0,0,0,0.08);
    padding: 7px 16px;
    text-align: left;
    font-size: 0.85em;
    color: #489ca0;
    cursor: pointer;
    font-weight: 600;
    letter-spacing: 0.01em;
}
.comm-see-more-btn:active {
    background: rgba(72,156,160,0.08);
}
#comm-see-more {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.comm-add-mic {
    position: absolute;
    right: 6px;
    top: 8px;
    background: none;
    border: none;
    font-size: 1.2em;
    cursor: pointer;
    opacity: 0.7;
    padding: 0;
}
.comm-place-header {
    padding: 10px 16px 8px;
    border-bottom: 1px solid rgba(0,0,0,0.5);
    margin-bottom: 10px;
    font-size: 1.5em;
    font-weight: 600;
    color: #000000;
    line-height: 1.3;
    white-space: nowrap;
}
.comm-place-header .ai-place-subtitle {
    display: block;
    font-size: 0.50em;
    font-weight: 400;
    color: rgba(0,0,0,0.4);
    margin-top: 3px;
}






























