.price-marker {
  background: #004b9b; /* schönes Blau, nicht zu dunkel */
  color: #fcfdff;
  font-size: 14px;
  font-weight: bold;
  padding: 3px 4px;
  border: 2px solid #fcfdff;
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
  cursor: pointer;
  white-space: nowrap;
  display: inline-block;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Preislabel Favorit */
.price-marker.fav-marker {
  background: #004b9b; /* schönes Blau, nicht zu dunkel */
border-color: red;          /* roter Rand statt schwarz */
  border-width: 3px;   /* dicker Rand */
font-weight: bold;
}


.mapboxgl-ctrl {
z-index: 9999 !important;
}

.hotel-popup {
  font-family: sans-serif;
  width: 220px;
}
.hotel-popup h4 {
  margin: 8px 0 4px;
  font-size: 16px;
}
.hotel-popup p {
  margin: 0 0 6px;
  font-size: 14px;
  color: #555;
}
.hotel-popup .popup-btn {
  display: inline-block;
  padding: 6px 10px;
  background: #0085CD;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
}
.hotel-popup .popup-btn:hover {
  background: #006aa1;
}

/* Container: Mehr Info + Herz nebeneinander */
.fav-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 28px;
  line-height: 1;
}

.fav-btn .heart {
  color: #aaa; /* grau standard */
  transition: color 0.2s ease, transform 0.2s ease;
}

.fav-btn.active .heart {
  color: red; /* rot, wenn Favorit */
}

.fav-btn:hover .heart {
  transform: scale(1.2);
}



.favourites-panel h3 {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: bold;
  color: #333;
}

.favourites-panel .fav-item {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  cursor: pointer;
  transition: background 0.2s;
  border-radius: 6px;
  padding: 4px;
}

.favourites-panel .fav-item:hover {
  background: #f1f1f1;
}

.fav-item img {
  width: 50px;
  height: 40px;
  object-fit: cover;
  border-radius: 4px;
  margin-right: 8px;
}

.fav-item .fav-info {
  flex: 1;
}

.fav-item .fav-info a {
  display: block;
  font-size: 14px;
  font-weight: bold;
  color: #0066cc;
  text-decoration: none;
}

.fav-item .fav-info a:hover {
  text-decoration: underline;
}

.fav-item {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
  cursor: pointer;
  transition: background 0.2s;
  border-radius: 6px;
  padding: 4px;
  justify-content: space-between; /* Info links, Icon rechts */
}


.fav-info {
  flex: 1;
}

.fav-remove {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  color: red;
  margin-left: 8px;
  transition: color 0.2s ease;
}

.favourites-panel {
display: flex;
flex-direction: column;  /* alles untereinander */
height: 100%;
}

.favourites-panel .wp-block-site-logo {
margin-top: auto;        /* Logo ganz nach unten */
text-align: center;
}


/* Tourismusregionen */
.region-marker {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  image-rendering: -webkit-optimize-contrast; /* Sharpens edges on WebKit */
  image-rendering: crisp-edges; /* For non-WebKit browsers */
  transform: translateZ(0); /* Forces GPU rendering */
}

.region-popup {
  font-size: 13px;
  line-height: 1.4;
  max-width: 260px;
}

.region-popup h3 {
  margin: 0 0 4px;
  font-size: 15px;
}

.region-popup .slogan {
  font-style: italic;
  margin: 0 0 6px;
  color: #555;
}

.region-seitenspruenge {
  margin: 6px 0;
  padding-left: 16px;
}

.region-seitenspruenge li {
  margin-bottom: 3px;
}

.region-link {
  display: inline-block;
  margin-top: 6px;
  padding: 6px 10px;
  background: #0085CD;
  color: #fff;
  text-decoration: none;
  border-radius: 4px;
}


/* Buttons */
.icon-marker {
display: flex;
align-items: center;
justify-content: center;
width: 30px;       /* gleiche Breite/Höhe */
height: 30px;
border-radius: 6px;
background: #004b9b; /* Hintergrund */
border: 2px solid #fcfdff;
font-size: 18px;   /* Icon-Größe */
font-weight: bold;
cursor: pointer;
box-shadow: 0 0 3px rgba(0,0,0,0.3);
}

/* Icon-Favorit: roter Rahmen */
.icon-marker.fav-marker {
border-color: red;          /* roter Rand statt schwarz */
  border-width: 3px;   /* dicker Rand */
font-weight: bold;
}

.popup-actions {
display: flex;
justify-content: space-between; /* Links: Button + Icons, Rechts: Herz */
align-items: center;
gap: 8px;
}

.popup-left {
display: flex;
align-items: center;
gap: 8px; /* Abstand zwischen Button und Icons */
}

.cats {
display: flex;
gap: 2px; /* Abstand zwischen Icons */
}

.cat-icon {
position: relative;
margin-left: 4px;
font-size: 1.5em;
cursor: default;
z-index: 9999; /* wichtig */
}

.cat-icon::after {
content: attr(title);
position: absolute;
bottom: -28px;
left: 50%;
transform: translateX(-50%);
background: #333;
color: #fff;
padding: 3px 6px;
border-radius: 4px;
font-size: 12px;
white-space: nowrap;
opacity: 0;
pointer-events: none;
transition: opacity 0.2s;
  z-index: 99999; /* noch höher */
}

.cat-icon:hover::after {
opacity: 1;
}

.route-popup {
position: relative;
max-width: 300px;
}

.route-popup h4 {
margin-bottom: 6px;
}

.route-popup .popup-actions {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 8px;
}

.popup-btn {
background-color: #0085CD;
color: white;
padding: 5px 10px;
border-radius: 6px;
text-decoration: none;
font-size: 13px;
line-height: 1.4;
transition: background-color 0.2s ease;
}

.popup-btn:hover {
background-color: #147a8a;
}

.mapboxgl-ctrl.filter-ctrl button {
border: 2px solid #eee;
background: #eee;
border-radius: 10%;
cursor: pointer;
font-size: 18px;
line-height: 1;
width: 31px;
height: 30px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s ease;
color: #666;
}

/* Hover effect */
.mapboxgl-ctrl.filter-ctrl button:hover {
background: #ddd;
transform: scale(1.1);
}

/* Active state */
.mapboxgl-ctrl.filter-ctrl button.active {
background: #0085CD;   /* your theme blue */
color: white;
box-shadow: 0 0 4px rgba(0,0,0,0.2);
border: 2px #0085CD;
}


/* make sure active is stronger */
.mapboxgl-ctrl.filter-ctrl button.active,
.mapboxgl-ctrl.filter-ctrl button.active:hover {
background: #0085CD;  /* your active blue */
color: white;
}



/* 💾 Clean download button (icon only) */
.download-btn {
border: none;
color: #1995AD;
padding: 0;
margin-left: auto;  /* pushes it to the right side */
font-size: 25px;
line-height: 1;
text-decoration: none;
cursor: pointer;
transition: color 0.2s ease;
}

.download-btn:hover {
color: #147a8a;
transform: scale(1.3);
}


.x-marker {
font-size: 15px;
color: red;
text-shadow: 1px 1px 2px white;
}

.warn-marker {
font-size: 24px;
color: orange;
text-shadow: 1px 1px 2px white;
}

.sperre-popup h4 {
margin: 0 0 4px;
font-size: 16px;
font-weight: bold;
}

.sperre-popup p {
margin: 0;
font-size: 14px;
color: #333;
}

.check-marker {
font-size: 15px;
color: #007A2F;
text-shadow: 1px 1px 2px white;
}


/* Base styling for both refresh buttons */
#refresh-water-btn,
#refresh-parking-btn {
position: absolute;
z-index: 9999;
display: none;              /* hidden by default */
opacity: 0;
transition: opacity 0.25s ease;
padding: 8px 14px;
border-radius: 20px;
color: #fff;
font-weight: 600;
border: none;
cursor: pointer;
}

/* Fade-in class */
#refresh-water-btn.visible,
#refresh-parking-btn.visible {
display: block;
opacity: 1;
}

/* Distinct colors */
#refresh-water-btn {
background: green;
}
#refresh-parking-btn {
background: #0078A8;
}

/* 🖥️ Wide screens (desktop) */
@media (min-width: 769px) {
#refresh-water-btn {
  top: 75px;
  right: 75px;
}
#refresh-parking-btn {
  top: calc(75px + 8px + 40px); /* adjust +40px if buttons are taller/shorter */
  right: 75px;
}
}

/* 📱 Small screens (mobile) */
@media (max-width: 768px) {
#refresh-water-btn {
  top: 65px;
  left: 50%;
  transform: translateX(-50%);
}
#refresh-parking-btn {
  top: calc(65px + 8px + 40px); /* 8px gap below water button */
  left: 50%;
  transform: translateX(-50%);
}
}

/* ================================
   🔧 BIKE REPAIR MARKER
================================ */
.bikerepair-marker {
display: inline-flex;
align-items: center;
justify-content: center;
width: 16px;
height: 16px;
font-size: 13px;
line-height: 16px;
background: #092e6d;
border-radius: 4px;
cursor: pointer;
transform: translateY(-1px) translateX(-1px); /* slight optical centering */
}


/* ================================
 🔧 BIKE REPAIR POPUP
================================ */
.repair-popup {
  font-family: system-ui, sans-serif;
  font-size: 13px;
  color: #222;
  line-height: 1.3;
  max-width: 240px;
}

.repair-popup strong {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #FF9800; /* orange repair theme */
  margin-bottom: 6px;
  border-bottom: 2px solid #FF9800;
  padding-bottom: 3px;
}


/* ================================
 🔧 BIKE REPAIR TABLE
================================ */
.repair-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  border: 1px solid #e0e0e0;
}

/* Remove Mapbox default border */
.repair-table,
.repair-table tr,
.repair-table td {
  border: none !important;
}

/* Row dividers */
.repair-table tr:not(:last-child) td {
  border-bottom: 1px solid #eee !important;
}

.repair-table {
  table-layout: fixed;        /* zwingt Zellen zum Umbrechen */
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.repair-table td:first-child {
  font-weight: 600;
  color: #555;
  width: 45%;
  white-space: nowrap;
}

.repair-table td:last-child {
  text-align: right;
  color: #111;
}

.mapboxgl-popup {
  max-width: 320px !important;    /* mehr Platz für Tabellen */
}

/* 🔧 Popup darf wachsen und scrollen, falls sehr hoch */
.mapboxgl-popup-content {
  max-height: 60vh;                /* max. 60% Bildschirmhöhe */
  overflow-y: auto !important;     /* vertikales Scrollen */
  overflow-x: hidden !important;   /* nie horizontal scrollen */
}


.osm-hotel-marker {
display: inline-flex;
align-items: center;
justify-content: center;
width: 17px;
height: 17px;
font-size: 13px;
line-height: 17px;
background: #fff;
border-radius: 4px;
cursor: pointer;
}


/* ================================
   🏨 OSM HOTEL POPUP
================================ */
.osm-hotel-popup {
  font-family: system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.3;
  color: #222;
  max-width: 260px;
}

/* Header */
.osm-hotel-popup strong {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #0085CD;
  border-bottom: 2px solid #0085CD;
  margin-bottom: 6px;
  padding-bottom: 3px;
}

/* ================================
 🏨 OSM HOTEL TABLE
================================ */
.osm-hotel-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: rgba(255,255,255,0.95);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  border: 1px solid #e0e0e0;
}

/* Remove any inherited Mapbox border */
.osm-hotel-table,
.osm-hotel-table tr,
.osm-hotel-table td {
  border: none !important;
}

.osm-hotel-table td {
  padding: 6px 8px;
  vertical-align: top;
  word-wrap: break-word;
}

/* soft grey lines between rows */
.osm-hotel-table tr:not(:last-child) td {
  border-bottom: 1px solid #eee !important;
}

.osm-hotel-table td:first-child {
  font-weight: 600;
  width: 40%;
  color: #444;
}

.osm-hotel-table td:last-child {
  text-align: right;
  color: #111;
}

/* ================================
 🌐 ICON BAR (clickable)
================================ */
.osm-hotel-icons {
  margin: 10px 10px 10px 10px;
  display: flex;
  justify-content: space-evenly;
  gap: 16px;
  font-size: 20px;
}

.osm-hotel-icons a {
  text-decoration: none;
  color: #0085CD;
  font-size: 20px;
  cursor: pointer;
  transition: transform 0.15s ease;
}

.osm-hotel-icons a:hover {
  transform: scale(1.2);
}

.claim-hotel-btn {
  font-size: 10px;
  text-align: center;
}


/* Popup overflow fix */
.mapboxgl-popup-content {
  max-height: 60vh;
  overflow-y: auto;
}


.water-marker {
display: inline-flex;
align-items: center;
justify-content: center;
width: 15px;
height: 15px;
font-size: 12px;
line-height: 15px;  /* key fix */
background: #fff;
border-radius: 4px;
cursor: pointer;
}

.parking-marker {
font-size: 14px;
cursor: pointer !important;
}

.parking-popup {
font-family: system-ui, sans-serif;
font-size: 13px;
color: #222;
line-height: 1.3;
max-width: 240px;
}

.parking-popup strong {
display: block;
font-size: 12px;
font-weight: 600;
color: #0078A8;
margin-bottom: 6px;
border-bottom: 2px solid #0078A8;
padding-bottom: 3px;
}

.parking-table {
width: 100%;
border-collapse: separate;
border-spacing: 0;
background: rgba(255, 255, 255, 0.95);  /* subtle transparency */
border-radius: 8px;
overflow: hidden;
box-shadow: 0 2px 6px rgba(0,0,0,0.1);
border: 1px solid #e0e0e0;
}

/* Remove any inherited Mapbox border */
.parking-table,
.parking-table tr,
.parking-table td {
border: none !important;
}

/* Soft row divider */
.parking-table tr:not(:last-child) td {
border-bottom: 1px solid #eee !important;
}

.parking-table td {
padding: 5px 8px;
vertical-align: top;
}

.parking-table td:first-child {
font-weight: 600;
color: #444;
width: 45%;
white-space: nowrap;
}

.parking-table td:last-child {
text-align: right;
color: #111;
}

/* Optional: give popup itself some air */
.mapboxgl-popup-content {
border-radius: 8px !important;
padding: 6px 8px !important;
}





/* 🌀 Map loading overlay */
#map-loading {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255,255,255,0.8);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 999999;
font-family: sans-serif;
font-size: 14px;
color: #0085CD;
}

/* Hide once loaded */
#map-loading.hidden {
display: none;
}

/* Spinner styling */
.spinner {
width: 38px;
height: 38px;
border: 4px solid #0085CD;
border-top: 4px solid transparent;
border-radius: 50%;
animation: spin 1s linear infinite;
margin-bottom: 10px;
}

@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}


/* ➕ Neuer Layer-Button – gleich wie deine anderen */
.map-layer-btn {
border: 2px solid #eee;
background: #eee;
border-radius: 10%;
cursor: pointer;
width: 50px;
height: 500px;
display: flex;
align-items: center;
justify-content: center;
transition: all 0.2s ease;
color: #666;
margin-right: 8px; /* Abstand zu den anderen Buttons */  
margin-left: 1px; /* Abstand zu den anderen Buttons */
}

.map-layer-btn:hover {
background: #ddd;
transform: scale(1.1);
}

.map-layer-btn.active {
background: #0085CD;      /* blue when active */
color: #fff;
}

.section-content.open {
display: block;
}

.section-content button {
display: block;
width: 100%;
background: #f5f5f5;
border: 1px solid #ddd;
border-radius: 4px;
padding: 4px 6px;
margin-bottom: 4px;
cursor: pointer;
text-align: left;
transition: background 0.2s ease;
}

.section-content button:hover {
background: #eaeaea;
}

.section-content button.active {
background: #0085CD;
color: white;
border-color: #0085CD;
}



/* 💻 Desktop layout: favourites left + filter 10px right of it */
@media (min-width: 769px) {
#favourites-panel {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 350px;
  background: rgba(255,255,255,0.97);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.25);
  z-index: 9998;
  padding: 10px;
  max-height: 87vh;
  overflow-y: auto;
}

/* move filter container right of favourites */
.mapboxgl-ctrl.filter-ctrl {
  position: absolute;
  top: 0px;
  left: calc(350px + 10px); /* left edge + width + spacing */
  background: white;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  display: flex;
  gap: 6px;
  padding: 6px;
  z-index: 9999;
}

#map-layer-panel {
position: absolute;
top: 60px; /* directly below the filter buttons */
left: 370px;
transform: none;
transition: opacity 0.3s ease, visibility 0.3s ease;
opacity: 0;
visibility: hidden;
background: rgba(255,255,255,0.97);
border-radius: 4px;
box-shadow: 0 2px 6px rgba(0,0,0,0.2);
font-size: 12.5px;
width: 312px;
z-index: 9999;
padding: 8px 0;
}

.layer-header-mobile {
  display: none !important;
}	

}

/* 📱 Mobile layout: favourites drawer below, filter goes to top-left */
@media (max-width: 768px) {

/* === 🧩 FAVOURITES PANEL (Bottom Drawer) === */
#favourites-panel {
  position: fixed; /* 👈 makes it float above everything */
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  max-height: 80vh;
  background: rgba(255,255,255,0.97);
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.25);
  padding: 10px;
  transform: translateY(75%);
  transition: transform 0.3s ease;
  z-index: 9999;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#favourites-panel.open {
  transform: translateY(0);
}

#favourites-panel::before {
  content: "";
  display: block;
  width: 40px;
  height: 5px;
  background: #ccc;
  border-radius: 3px;
  margin: 0 auto 8px;
}

/* === 🧭 FILTER CONTROL === */
.mapboxgl-ctrl.filter-ctrl {
  position: absolute;
  top: 0px;
  left: 0px;
  background: white;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  display: flex;
  gap: 6px;
  padding: 6px;
  z-index: 10000;
}

/* === 📚 MAP LAYER PANEL (bottom screen above fav-panel) === */
#map-layer-panel {
  position: fixed;
  left: 0;
  bottom: 0;
  top: auto;
  width: 100%;
  height: auto;
  max-height: 55%;
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -3px 10px rgba(0,0,0,0.3);
  transform: translateY(100%);
  transition: transform 0.35s ease, opacity 0.35s ease;
z-index: 10000;
}

#map-layer-panel.active {
  transform: translateY(0);
  opacity: 1;
  visibility: visible;
}

.layer-header-mobile {
background-color: white;
  border-radius: 12px 12px 0 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 14px;
  font-weight: 600;
font-size: 16px;
  border-bottom: 1px solid #ddd;
}

.close-layer-btn {
  background: none;
  border: none;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  color: #333;
}
}

/* 🎯 Position the layer panel relative to the filter control */
.mapboxgl-ctrl.filter-ctrl {
position: relative; /* anchor point */
}



/* When opened */
#map-layer-panel.open {
opacity: 1;
visibility: visible;
}

.layer-section {
border-bottom: 1px solid #eee;
}

.section-header {
background: #0085CD;
color: white;
padding: 6px 10px;
cursor: pointer;
font-weight: 600;
user-select: none;
}

.section-content {
display: none;
padding: 6px 10px;
background: white;
}

.section-content.open {
display: block;
}

.section-content button {
display: block;
width: 100%;
background: #f5f5f5;
border: 1px solid #ddd;
border-radius: 4px;
padding: 4px 6px;
margin-bottom: 4px;
cursor: pointer;
text-align: left;
transition: background 0.2s ease;
}

.section-content button:hover {
background: #eaeaea;
}

.section-content button.active {
background: #0085CD;
color: white;
border-color: #0085CD;
}

#map-layer-panel .section-content {
max-height: 33vh;
overflow-y: auto;
padding-right: 4px;
margin-bottom: 8px;
}

#map-layer-panel .section-content::-webkit-scrollbar {
width: 6px;
}

#map-layer-panel .section-content::-webkit-scrollbar-thumb {
background: #bbb;
border-radius: 3px;
}

#map-layer-panel .section-content::-webkit-scrollbar-thumb:hover {
background: #888;
}


#map-layer-panel,
.mapboxgl-ctrl.filter-ctrl {
z-index: 10000 !important;
}

#map-layer-panel {
pointer-events: auto !important;
}

#map-layer-panel.open {
pointer-events: auto !important;
z-index: 10001 !important;
}



/* === 🚉 Train Station Icons === */
.pt-icon-marker {
  pointer-events: auto;
cursor: pointer;
z-index: 0;
background: #E2001A;         /* ÖBB red background */
border-radius: 6px;
padding: 0px 0px 0px 0px;
box-shadow: 0 1px 4px rgba(0,0,0,0.1);
cursor: pointer;
transform-origin: center;
height: 19px;
width: 16px;
}

/* Train SVG inside marker */
.pt-icon-marker svg {
fill: #ffffff;                /* white icon */
transform-origin: center;
position: relative;
top: 2px;
right: 1px;
height: 13px;
}




#map, .mapboxgl-canvas-container {
overflow: visible !important;
}

.mapboxgl-popup {
  max-width: 400px !important;
}

.mapboxgl-popup-content iframe {
width: 100%;
height: 320px;
border: none;
} 

/* === 🚉 Elegant ÖBB Bahnhof Popup Style === */

/* Target popups that contain the ÖBB iframe */
.mapboxgl-popup:has(iframe[src*="fahrplan.oebb.at"]) {
background: transparent !important;
box-shadow: none !important;
}

.mapboxgl-popup-content:has(iframe[src*="fahrplan.oebb.at"]) {
padding: 0 !important;
border-radius: 10px;
overflow: hidden;
background: white;
box-shadow: 0 4px 15px rgba(0,0,0,0.2);
border: 1px solid rgba(0,0,0,0.05);
}

/* Iframe itself */
.mapboxgl-popup-content iframe[src*="fahrplan.oebb.at"] {
display: block;
width: 100%;
height: 240px;
border: none;
border-radius: 0;
}

/* Arrow cleanup */
.mapboxgl-popup:has(iframe[src*="fahrplan.oebb.at"]) .mapboxgl-popup-tip {
display: none !important;
}

/* 📱 Responsive scaling */
@media (max-width: 768px) {
.mapboxgl-popup-content iframe[src*="fahrplan.oebb.at"] {
  height: 260px;
}
}

@media (max-width: 480px) {
.mapboxgl-popup-content iframe[src*="fahrplan.oebb.at"] {
  height: 190px;
}
}

/* === 🧭 Map Layer Switches (Routes / Sperren) === */
.layer-row {
display: grid;
grid-template-columns: 1fr auto; /* label left, switch right */
align-items: center;
gap: 8px;
padding: 4px 2px;
border-bottom: 1px solid #f0f0f0;
font-size: 11px;          /* smaller text, fits your panel */
color: #222;
}

.layer-row:last-child {
border-bottom: none;
}

.layer-label {
cursor: pointer;
user-select: none;
line-height: 1.3;
padding-right: 6px;
transition: color 0.2s;
}

.layer-label:hover {
color: #0085CD; /* matches your theme blue */
}

/* --- Small toggle --- */
.switch {
width: 32px;
height: 16px;
background-color: #bbb;
border-radius: 10px;
position: relative;
cursor: pointer;
flex-shrink: 0;
transition: background-color 0.2s;
}

.switch::after {
content: "";
position: absolute;
top: 2px;
left: 2px;
width: 12px;
height: 12px;
background: #fff;
border-radius: 50%;
transition: left 0.2s;
}

.switch.on {
background-color: #2ecc71;
}

.switch.on::after {
left: 18px;
}

.mapboxgl-ctrl-top-right .mapboxgl-ctrl-group button {
font-size: 18px;
line-height: 1;
}

.stk-block-heading h2 {
color: #1995AD;
animation: fadeInUp 0.8s ease-out;
}

@keyframes fadeInUp {
from {opacity:0; transform:translateY(10px);}
to {opacity:1; transform:translateY(0);}
}


#map-poi-refresh-btn.map-refresh-btn-unified {
  position: fixed !important;     /* FIX: über allen Layern */
  top: 120px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999999;                /* FIX: über ALLEM, auch über Canvas */
  pointer-events: auto !important;
  padding: 10px 14px;
  background: #1ea200;
  color: white;
  border: none;
  border-radius: 50px;
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

#map-poi-refresh-btn.map-refresh-btn-unified.hidden {
  display: none;
}

#map-zoom-warning {
  position: fixed !important;     /* FIX: auch herausziehen */
  top: 120px;                     /* etwas tiefer unter knopf */
  left: 50%;
  transform: translateX(-50%);
  z-index: 999999;
  text-align: center;
  background: rgba(0, 0, 0, 0.75);
  color: white;
  padding: 8px 14px;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 500;
  display: none;
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}


/* 📱 Mobile: Button & Warning perfekt zentrieren */
@media (max-width: 769px) {
  #map-poi-refresh-btn.map-refresh-btn-unified,
  #map-zoom-warning {
    left: 50%;
    transform: translateX(-50%);
    padding: 5px 10px;
  }
}

@media (max-width: 769px) {
  #map-poi-refresh-btn.map-refresh-btn-unified {
    background: #ffffff;
    color: black;
  }
}


.gpx-hover-marker {
  width: 14px;
  height: 14px;
  background: white;
  border: 2px solid #333;
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  pointer-events: none;
  z-index: 99999 !important;
}

/* Hide the default mapbox popup arrow */
.mapboxgl-popup.gpx-hover .mapboxgl-popup-tip {
  display: none !important;
}

/* Popup container */
.mapboxgl-popup.gpx-hover .mapboxgl-popup-content {
  background: rgba(255, 255, 255, 0.30);
  padding: 1px 5px;
  border-radius: 4px;
  border: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.10);
  font-size: 11px;
  font-weight: 600;
  color: #222;
  text-align: center;

  /* Ensure it sits perfectly above the dot */
  transform: translateY(-4px);
}

#facilities button {
	display: inline-flex;
  margin: 2px 2px 2px 0px;
  width: auto;         /* nicht mehr volle Breite */
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  white-space: nowrap; /* verhindert Umbruch im Text */
  border-radius: 20px; 
  background: lightgrey; 
  color: black;
  font-size: 11px;
  border: 1px solid rgba(255,255,255,0.3);
  cursor: pointer;
}

#facilities button.active {
  background: #009c42; /* oder deine aktive Farbe */
}

/* Tooltip Container */
.bm-tooltip,
.status-icon {
  position: relative !important;
  display: inline-block !important;
  cursor: help;
}

/* Tooltip Text */
.bm-tooltip .bm-tooltip-text {
  visibility: hidden;
  opacity: 0;
  width: 220px;
  background: #333;
  color: #fff;
  text-align: left;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.4;
  position: absolute;
  z-index: 9999;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  transition: opacity 0.2s ease-in-out;
  white-space: normal; /* prevents inline-block weirdness in tables */
}

/* Arrow */
.bm-tooltip .bm-tooltip-text::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: #333 transparent transparent transparent;
}

/* Show Tooltip on Hover */
.bm-tooltip:hover .bm-tooltip-text {
  visibility: visible;
  opacity: 1;
}
