/* Travel Map Pro – Frontend */
.tmpro-app *, .tmpro-location-view *, .tmpro-my *,
.tmpro-app *::before, .tmpro-location-view *::before, .tmpro-my *::before,
.tmpro-app *::after, .tmpro-location-view *::after, .tmpro-my *::after{
  box-sizing: border-box;
}

.tmpro-app, .tmpro-location-view, .tmpro-my {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #0f172a;
}

:root{
  --tmpro-bottom-offset: 0px;
}

/* On many Reisekasse/Olympus setups a fixed bottom nav overlaps content on mobile.
   We detect that height in JS and compensate here so the last buttons remain reachable. */
.tmpro-location-view{
  padding-bottom: calc(24px + var(--tmpro-bottom-offset, 0px) + env(safe-area-inset-bottom));
}

.tmpro-topbar{
  display:flex; gap:12px; align-items:center; flex-wrap: wrap;
  padding:10px 12px;
  border:1px solid rgba(15,23,42,0.12);
  border-radius:16px;
  background: linear-gradient(135deg, rgba(255,255,255,0.95), rgba(248,250,252,0.95));
  box-shadow: 0 12px 30px rgba(15,23,42,0.08);
  margin-bottom: 12px;
  overflow: visible;
}

.tmpro-brand{
  font-weight:800;
  letter-spacing:0.2px;
  white-space:nowrap;
}

.tmpro-search{ flex:1; min-width: 220px; }

.tmpro-iconbtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  border:1px solid rgba(15,23,42,0.12);
  background:#fff;
  cursor:pointer;
  font-weight:900;
}
.tmpro-iconbtn:hover{ box-shadow: 0 8px 22px rgba(15,23,42,0.10); }

.tmpro-iconbtn svg{
  width: 22px;
  height: 22px;
  display: block;
}
.tmpro-ico-wa{ fill: #25D366; }

.tmpro-filterbar{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  justify-content:flex-start;
}
.tmpro-input{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,0.12);
  outline:none;
}

/* alias: used by newer UI blocks */
.tmpro-inp{
  width: 100%;
  padding: 10px 12px;
  border: 1px solid rgba(148,163,184,.35);
  border-radius: 12px;
  background: rgba(15,23,42,0.06);
  color: inherit;
  outline: none;
}
.tmpro-inp:focus{
  border-color: rgba(37,99,235,0.45);
  box-shadow: 0 0 0 4px rgba(37,99,235,0.10);
}
.tmpro-app input,
.tmpro-app textarea,
.tmpro-app select,
.tmpro-location-view input,
.tmpro-location-view textarea,
.tmpro-location-view select,
.tmpro-my input,
.tmpro-my textarea,
.tmpro-my select{
  max-width: 100%;
  min-width: 0;
}
.tmpro-app input[type=file],
.tmpro-location-view input[type=file],
.tmpro-my input[type=file]{
  max-width: 100%;
}
.tmpro-input:focus{ border-color: rgba(37,99,235,0.45); box-shadow: 0 0 0 4px rgba(37,99,235,0.10); }

.tmpro-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-start; }

.tmpro-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  border:1px solid rgba(148,163,184,.25);
  border-radius:999px;
  background: rgba(2,6,23,0.04);
  font-size:12px;
  line-height:1;
  white-space:nowrap;
}

@media (max-width: 720px){
  .tmpro-brand{ display:none; }
  .tmpro-filterbar{ display:none; }
  .tmpro-actions{ display:none; }
  .tmpro-search{ min-width: 0; }
}
.tmpro-btn{
  border:1px solid rgba(15,23,42,0.12);
  background:#fff;
  padding:9px 12px;
  border-radius:12px;
  cursor:pointer;
  font-weight:600;
}
.tmpro-btn:hover{ box-shadow: 0 8px 22px rgba(15,23,42,0.10); }
.tmpro-btn-primary{
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  border-color: rgba(29,78,216,0.45);
  color:#fff;
}
.tmpro-btn-danger{
  background: linear-gradient(135deg, #ef4444, #dc2626);
  border-color: rgba(220,38,38,0.45);
  color:#fff;
}


.tmpro-hint{
  margin-top:10px;
  font-size: 13px;
  color: rgba(15,23,42,0.70);
}

.tmpro-map{
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,0.12);
  overflow:hidden;
  box-shadow: 0 18px 44px rgba(15,23,42,0.10);
  position: relative;
}

/*
  Leaflet compatibility fixes
  Many themes set img{max-width:100%} which breaks Leaflet tiles.
*/
.tmpro-map .leaflet-container{
  width: 100%;
  height: 100%;
  background: #e2e8f0;
}
.tmpro-map .leaflet-container img,
.tmpro-map .leaflet-container .leaflet-tile,
.tmpro-location-view .leaflet-container img,
.tmpro-location-view .leaflet-container .leaflet-tile,
.tmpro-sheet .leaflet-container img,
.tmpro-sheet .leaflet-container .leaflet-tile{
  max-width: none !important;
  max-height: none !important;
}

/* Ensure Leaflet containers outside .tmpro-map still fill their box */
.tmpro-location-view .leaflet-container,
.tmpro-sheet .leaflet-container{
  width: 100%;
  height: 100%;
  background: #e2e8f0;
}

/* Tile error overlay (shows when tiles are blocked by CSP/Blocker) */
.tmpro-tile-overlay{
  position:absolute;
  inset: 12px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(15,23,42,0.18);
  background: rgba(255,255,255,0.92);
  box-shadow: 0 18px 44px rgba(15,23,42,0.18);
  z-index: 50;
  pointer-events: auto;
}
.tmpro-tile-overlay > div{ max-width: 520px; }

/* Prevent theme rules from collapsing Leaflet panes */
.tmpro-map .leaflet-pane,
.tmpro-map .leaflet-tile-pane,
.tmpro-map .leaflet-map-pane{
  z-index: 1;
}

.tmpro-sheet[hidden]{ display:none; }
.tmpro-sheet{
  position:fixed; inset:0; z-index: 9999;
}
.tmpro-sheet-backdrop{
  position:absolute; inset:0;
  background: rgba(15,23,42,0.55);
  backdrop-filter: blur(4px);
}
.tmpro-sheet-panel{
  position:absolute;
  right: 14px;
  bottom: 14px;
  /* Avoid 100vw-based horizontal overflow on some mobile browsers */
  width: min(560px, calc(100% - 28px));
  max-height: min(84vh, 760px);
  border-radius: 20px;
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(255,255,255,0.65);
  box-shadow: 0 24px 70px rgba(15,23,42,0.35);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.tmpro-sheet-header{ position: relative; }
.tmpro-sheet-header-actions{ display:flex; gap:8px; align-items:center; }
.tmpro-sheet-grab{
  position:absolute;
  left: 50%;
  top: 6px;
  transform: translateX(-50%);
  width: 52px;
  height: 5px;
  border-radius: 999px;
  background: rgba(15,23,42,0.15);
}
.tmpro-sheet[data-mode="peek"] .tmpro-sheet-grab,
.tmpro-sheet[data-mode="half"] .tmpro-sheet-grab,
.tmpro-sheet[data-mode="full"] .tmpro-sheet-grab{ background: rgba(15,23,42,0.22); }

/* Full-height sheet (used for location details so users can read comfortably) */
.tmpro-sheet[data-mode="full"] .tmpro-sheet-panel{
  left: 10px;
  right: 10px;
  top: 10px;
  bottom: 10px;
  width: auto;
  max-height: none;
  height: calc(100dvh - 20px);
}
.tmpro-sheet-header{
  display:flex; align-items:center; justify-content:space-between;
  padding: 12px 14px;
  border-bottom: 1px solid rgba(15,23,42,0.10);
}
.tmpro-sheet-title{ font-weight:800; }
.tmpro-icon-btn{
  border:1px solid rgba(15,23,42,0.12);
  background:#fff;
  border-radius: 12px;
  width: 36px; height: 36px;
  cursor:pointer;
}

.tmpro-sheet-body{
  padding: 12px 14px;
  padding-bottom: calc(14px + var(--tmpro-bottom-offset, 0px) + env(safe-area-inset-bottom));
  overflow:auto;
}

.tmpro-card{
  border: 1px solid rgba(15,23,42,0.12);
  border-radius: 16px;
  background: #fff;
  padding: 12px;
  box-shadow: 0 12px 30px rgba(15,23,42,0.06);
}

.tmpro-row{ display:flex; gap:10px; flex-wrap:wrap; }
/* Critical mobile fix: allow flex children to shrink (prevents horizontal overflow) */
.tmpro-row > * { flex: 1 1 160px; min-width: 0; }

/* Very narrow phones: stack multi-column rows to avoid any viewport overflow */
@media (max-width: 420px){
  .tmpro-row{ flex-direction: column; }
  .tmpro-row > *{ width: 100%; }
}

.tmpro-label{ font-size: 12px; color: rgba(15,23,42,0.65); margin: 10px 0 6px; display:block; }
.tmpro-textarea{ width:100%; min-height: 90px; padding:10px 12px; border-radius: 12px; border:1px solid rgba(15,23,42,0.12); }
.tmpro-select{ width:100%; padding:10px 12px; border-radius: 12px; border:1px solid rgba(15,23,42,0.12); background:#fff; }
.tmpro-small{ font-size: 12px; color: rgba(15,23,42,0.65); }

/* Details editor (Smart Facts) */
.tmpro-fields{ display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
.tmpro-field{ min-width: 0; }
.tmpro-field .tmpro-label{ margin-top: 8px; }
.tmpro-fields .tmpro-label{ margin-top: 0; }
.tmpro-chiplist{ display:flex; flex-wrap:wrap; gap:6px; }
.tmpro-chip2{
  display:inline-flex; align-items:center;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(15,23,42,0.04);
  font-weight: 800;
  font-size: 12px;
}
@media (max-width: 700px){
  .tmpro-fields{ grid-template-columns: 1fr; }
}

.tmpro-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin: 8px 0 12px; }
.tmpro-tab{ padding:8px 10px; border-radius: 999px; border:1px solid rgba(15,23,42,0.12); background:#fff; cursor:pointer; font-weight:700; font-size:12px; }
.tmpro-tab[aria-selected="true"]{ background:#0f172a; color:#fff; border-color:#0f172a; }

.tmpro-gallery{ display:grid; grid-template-columns: repeat(3, 1fr); gap:8px; }
.tmpro-gallery img{ width:100%; height: 100px; object-fit: cover; border-radius: 12px; border: 1px solid rgba(15,23,42,0.10); }

.tmpro-review-item{ border-top: 1px solid rgba(15,23,42,0.10); padding-top: 10px; margin-top: 10px; }
.tmpro-badge{ display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; background: rgba(37,99,235,0.10); color:#1d4ed8; font-weight:800; font-size:12px; }

.tmpro-chat{ display:flex; flex-direction:column; gap:8px; }
.tmpro-msg{ padding:10px 12px; border-radius: 14px; border:1px solid rgba(15,23,42,0.10); background:#fff; }
.tmpro-msg.mine{ background: rgba(37,99,235,0.08); border-color: rgba(37,99,235,0.18); }
.tmpro-msghead{ display:flex; justify-content:space-between; font-size: 12px; color: rgba(15,23,42,0.65); margin-bottom: 6px; }
.tmpro-msgtext{ white-space: pre-wrap; }

/* WhatsApp-like Chat (Ort-Chat) */
.tmpro-wa-chat{
  border:1px solid rgba(15,23,42,0.10);
  border-radius: 16px;
  padding: 10px;
  background:
    radial-gradient(circle at 12% 18%, rgba(16,185,129,0.10), transparent 45%),
    radial-gradient(circle at 92% 8%, rgba(59,130,246,0.08), transparent 50%),
    linear-gradient(180deg, rgba(241,245,249,0.92), rgba(255,255,255,0.92));
  max-height: 420px;
  overflow:auto;
}
.tmpro-wa-msg{
  display:flex;
  gap:8px;
  align-items:flex-end;
}
.tmpro-wa-msg.mine{ justify-content:flex-end; }
.tmpro-wa-ava{
  width:30px; height:30px;
  border-radius:999px;
  overflow:hidden;
  flex:0 0 30px;
  border:1px solid rgba(15,23,42,0.12);
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
}
.tmpro-wa-ava img{ width:100%; height:100%; object-fit:cover; display:block; }
.tmpro-wa-ava-spacer{ border:none; background:transparent; }
.tmpro-wa-bubble{
  max-width: 78%;
  padding:10px 12px;
  border-radius: 16px;
  border:1px solid rgba(15,23,42,0.10);
  background:#fff;
  box-shadow: 0 10px 22px rgba(15,23,42,0.06);
}
.tmpro-wa-bubble.mine{
  background: rgba(16,185,129,0.16);
  border-color: rgba(16,185,129,0.24);
}
.tmpro-wa-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:12px;
  color: rgba(15,23,42,0.70);
  margin-bottom:6px;
}
.tmpro-wa-name{ font-weight:800; color: inherit; text-decoration:none; }
.tmpro-wa-name:hover{ text-decoration:underline; }
.tmpro-wa-time{ white-space:nowrap; opacity:0.88; }
.tmpro-wa-text{ white-space:pre-wrap; line-height:1.35; }
@media (max-width: 700px){
  .tmpro-wa-bubble{ max-width: 86%; }
}

.tmpro-skel{
  padding: 12px;
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(15,23,42,0.06), rgba(15,23,42,0.03), rgba(15,23,42,0.06));
  animation: tmproShimmer 1.4s infinite;
}
@keyframes tmproShimmer{ 0%{filter:brightness(1);} 50%{filter:brightness(1.2);} 100%{filter:brightness(1);} }

.tmpro-location-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:12px;
  margin-bottom: 12px;
}

/* ==========================
   Location (Großansicht)
   ========================== */

.tmpro-loc-hero{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,0.12);
  box-shadow: 0 22px 60px rgba(15,23,42,0.12);
  margin-bottom: 14px;
  background:
    radial-gradient(circle at 15% 20%, rgba(56,189,248,0.22), rgba(99,102,241,0.10) 45%, rgba(15,23,42,0.02) 70%),
    linear-gradient(135deg, rgba(255,255,255,0.94), rgba(248,250,252,0.94));
}

.tmpro-loc-hero[style*="--tmpro-hero"]{
  background:
    linear-gradient(180deg, rgba(2,6,23,0.55), rgba(2,6,23,0.20)),
    var(--tmpro-hero) center/cover no-repeat;
}

.tmpro-loc-hero-overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 18%, rgba(56,189,248,0.18), rgba(99,102,241,0.10) 45%, rgba(2,6,23,0.05) 70%);
  pointer-events:none;
}

.tmpro-loc-hero-inner{
  position:relative;
  padding: 18px 18px 16px;
  color: #0f172a;
}

.tmpro-loc-hero[style*="--tmpro-hero"] .tmpro-loc-hero-inner{
  color: #fff;
}

.tmpro-loc-kicker{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  opacity: 0.9;
}

.tmpro-loc-title{
  font-size: 26px;
  font-weight: 900;
  margin-top: 8px;
  line-height: 1.12;
}

.tmpro-loc-sub{
  margin-top: 8px;
  opacity: 0.92;
}

.tmpro-loc-chips{
  margin-top: 12px;
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
}

.tmpro-chip{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.35);
  background: rgba(255,255,255,0.18);
  font-weight: 800;
  font-size: 12px;
}

.tmpro-loc-hero:not([style*="--tmpro-hero"]) .tmpro-chip{
  border-color: rgba(15,23,42,0.12);
  background: rgba(255,255,255,0.75);
}

.tmpro-chip.is-muted{
  font-weight: 700;
  opacity: 0.92;
}

.tmpro-loc-actions{
  margin-top: 14px;
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* Hero action icons (compact, mobile-first) */
.tmpro-loc-actions.tmpro-actions-icons{ flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tmpro-loc-actions.tmpro-actions-icons .tmpro-iconbtn{
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: rgba(255,255,255,0.92);
  border-color: rgba(15,23,42,0.12);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.tmpro-loc-actions.tmpro-actions-icons a.tmpro-iconbtn{ text-decoration:none; }
.tmpro-loc-actions.tmpro-actions-icons .tmpro-iconbtn:active{ transform: scale(0.98); }

.tmpro-loc-grid{
  display:grid;
  grid-template-columns: 1.55fr 0.85fr;
  gap: 14px;
  align-items:start;
}

.tmpro-loc-side .tmpro-card{ position: sticky; top: calc(var(--tmpro-adminbar, 0px) + var(--tmpro-sticky-offset, 0px) + 14px); }

.tmpro-mini-map{
  width: 100%;
  height: 260px;
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid rgba(15,23,42,0.12);
}

.tmpro-mini-map .leaflet-container img,
.tmpro-mini-map .leaflet-container .leaflet-tile{
  max-width: none !important;
  max-height: none !important;
}

@media (max-width: 920px) {
  .tmpro-loc-grid{ grid-template-columns: 1fr; }
  .tmpro-loc-side .tmpro-card{ position: static; }
  .tmpro-mini-map{ height: 220px; }
}

/* Type filter buttons (map) */
.tmpro-typebtn{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,0.35);
  background: rgba(15,23,42,0.65);
  color: #e5e7eb;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
  font-size: 13px;
}
.tmpro-typebtn:hover{ transform: translateY(-1px); border-color: rgba(56,189,248,0.55); }
.tmpro-typebtn.is-active{ border-color: rgba(56,189,248,0.75); background: rgba(56,189,248,0.16); }
.tmpro-type-ico{ font-size: 16px; line-height: 1; }
.tmpro-type-txt{ font-weight: 800; }
.tmpro-kicker{ font-size:12px; text-transform:uppercase; letter-spacing:0.12em; color: rgba(15,23,42,0.55); }
.tmpro-title{ margin:6px 0 4px; }
.tmpro-sub{ color: rgba(15,23,42,0.65); }
.tmpro-head-actions{ display:flex; gap:8px; flex-wrap:wrap; }

@media (max-width: 720px) {
  .tmpro-topbar{ flex-direction:column; align-items:stretch; }
  .tmpro-actions{ justify-content:space-between; }
  /* On mobile: bottom-sheet with snap modes (peek/half/full) */
  .tmpro-sheet-panel{
    left: 0;
    right: 0;
    top: auto;
    bottom: 0;
    width: auto;
    max-height: none;
    height: 60dvh; /* default = half */
    border-radius: 18px 18px 0 0;
  }
  .tmpro-sheet[data-mode="peek"] .tmpro-sheet-panel{ height: 28dvh; }
  .tmpro-sheet[data-mode="half"] .tmpro-sheet-panel{ height: 60dvh; }
  .tmpro-sheet[data-mode="full"] .tmpro-sheet-panel{
    left: 10px;
    right: 10px;
    top: 10px;
    bottom: 10px;
    height: calc(100dvh - 20px);
    border-radius: 20px;
  }
  .tmpro-gallery{ grid-template-columns: repeat(2, 1fr); }
}

/* Nearby map style (reuses .tmpro-map Leaflet fixes) */
.tmpro-nearby-map{
  box-shadow: 0 14px 32px rgba(2,6,23,0.10);
  border-radius: 14px;
}


/* ==========================
   Filterbar (icons)
   ========================== */

.tmpro-filterbar {
  margin-top: 8px;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 6px;
  -webkit-overflow-scrolling: touch;
}
.tmpro-filterbar::-webkit-scrollbar { height: 6px; }
.tmpro-filter-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,0.35);
  background: rgba(15,23,42,0.65);
  color: #e5e7eb;
  cursor: pointer;
  white-space: nowrap;
  transition: transform .12s ease, border-color .12s ease, background .12s ease;
  font-size: 13px;
}
.tmpro-filter-btn:hover { transform: translateY(-1px); border-color: rgba(56,189,248,0.55); }
.tmpro-filter-btn.is-active {
  border-color: rgba(56,189,248,0.75);
  background: rgba(56,189,248,0.16);
}
.tmpro-filter-ico { font-size: 16px; line-height: 1; }
.tmpro-filter-txt { font-weight: 700; }

/* Create sheet type chips */
.tmpro-typegrid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tmpro-typechip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(148,163,184,0.30);
  background: rgba(15,23,42,0.55);
  color: #e5e7eb;
  cursor: pointer;
  font-size: 13px;
}
.tmpro-typechip:hover { border-color: rgba(56,189,248,0.55); }
.tmpro-typechip.is-active { border-color: rgba(56,189,248,0.90); background: rgba(56,189,248,0.18); }
.tmpro-typechip-ico { font-size: 16px; }

/* Marker div icon */
.tmpro-divicon { background: transparent; border: none; }
.tmpro-marker {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  background: rgba(15,23,42,0.95);
  border: 1px solid rgba(148,163,184,0.35);
  box-shadow: 0 8px 18px rgba(0,0,0,0.35);
}


/* Media grid items (image/video) */
.tmpro-gallery{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap:10px;
}
.tmpro-media-item{
  position:relative;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(148,163,184,.22);
  background: rgba(15,23,42,.35);
}
.tmpro-media-item img,
.tmpro-media-item video{
  display:block;
  width:100%;
  height:140px;
  object-fit:cover;
}
.tmpro-media-item video{
  background:#000;
}
.tmpro-media-del{
  position:absolute;
  top:6px;
  right:6px;
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid rgba(148,163,184,.35);
  background: rgba(2,6,23,.55);
  color:#fff;
  cursor:pointer;
  z-index:5;
  line-height:26px;
  font-weight:700;
}
.tmpro-media-del:hover{
  background: rgba(2,6,23,.75);
}


.tmpro-media-meta{
  padding:8px 10px 10px;
  background: rgba(2,6,23,.25);
}
.tmpro-media-cat{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 8px;
  border-radius:999px;
  font-size:12px;
  border:1px solid rgba(148,163,184,.30);
  background: rgba(2,6,23,.35);
  color:#fff;
}
.tmpro-media-cap{
  margin-top:6px;
  font-size:12px;
  color: rgba(226,232,240,.92);
  line-height:1.3;
}

.tmpro-upload-wrap{
  border:1px solid rgba(148,163,184,.20);
  background: rgba(2,6,23,.22);
  border-radius: 16px;
  padding: 12px;
}
.tmpro-upload-row{
  display:grid;
  grid-template-columns: 1fr;
  gap:10px;
  margin-bottom:10px;
}
@media (min-width: 680px){
  .tmpro-upload-row{ grid-template-columns: 1fr 1fr; }
}
.tmpro-upload-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

/* High-end, mobile-safe file picker (prevents native file input from forcing horizontal overflow) */
.tmpro-fileinput{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}
.tmpro-filepick{
  display:flex;
  gap:10px;
  align-items:center;
  width:100%;
}
.tmpro-filepick .tmpro-btn{
  flex:0 0 auto;
}
.tmpro-filelabel{
  flex:1;
  min-width:0;
  font-size:12px;
  opacity:.85;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Ensure upload controls never create horizontal scroll on mobile */
@media (max-width: 560px){
  .tmpro-upload-actions{
    flex-direction: column;
    align-items: stretch;
  }
  .tmpro-upload-actions > *{
    width:100%;
    min-width:0 !important;
  }
  .tmpro-filepick{ width:100%; }
  .tmpro-filepick .tmpro-btn{ width:100%; }
  .tmpro-filelabel{ white-space:normal; overflow:visible; text-overflow:clip; }
}
.tmpro-label{
  display:block;
  font-size:12px;
  opacity:.85;
  margin-bottom:6px;
}


/* ==========================
   Floating Intent Bar (Ortseite)
   ========================== */
.tmpro-floatbar{
  position: sticky;
  top: calc(var(--tmpro-adminbar, 0px) + var(--tmpro-sticky-offset, 0px) + 10px);
  z-index: 40;
  margin-top: 12px;
  padding: 10px 10px;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,0.12);
  background: rgba(255,255,255,0.90);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 18px 40px rgba(2,6,23,0.12);
}


/* ==========================
   Top Gallery (Check24-like)
   ========================== */
.tmpro-top-gallery{
  margin-top: 14px;
}

.tmpro-gal-tabs{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items:center;
  margin-bottom: 12px;
}
.tmpro-gal-tab{
  border: 1px solid rgba(148,163,184,0.45);
  background: rgba(255,255,255,0.92);
  padding: 8px 12px;
  border-radius: 999px;
  font-weight: 900;
  cursor:pointer;
  display:inline-flex;
  gap: 8px;
  align-items:center;
}
.tmpro-gal-tab[aria-selected="true"]{
  border-color: rgba(56,189,248,0.55);
  box-shadow: 0 10px 22px rgba(56,189,248,0.18);
}
.tmpro-gal-count{
  font-size: 12px;
  opacity: .8;
}

.tmpro-gal-grid{
  column-gap: 12px;
  column-count: 3;
}
@media (min-width: 1200px){
  .tmpro-gal-grid{ column-count: 4; }
}
@media (max-width: 900px){
  .tmpro-gal-grid{ column-count: 2; }
}
@media (max-width: 520px){
  .tmpro-gal-grid{ column-count: 1; }
}

.tmpro-gal-item{
  break-inside: avoid;
  -webkit-column-break-inside: avoid;
  margin: 0 0 12px;
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(255,255,255,0.92);
  box-shadow: 0 14px 40px rgba(2,6,23,0.10);
}
.tmpro-gal-item img{
  width: 100%;
  height: auto;
  display:block;
}
.tmpro-gal-cap{
  padding: 10px 12px;
  font-size: 13px;
  opacity: .92;
}

/* Lightbox */
.tmpro-lightbox{
  position: fixed;
  inset: 0;
  z-index: 999999;
  background: rgba(2,6,23,0.78);
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 18px;
}
.tmpro-lightbox[hidden]{ display:none; }
.tmpro-lightbox-inner{
  width: min(1080px, 100%);
  background: rgba(255,255,255,0.96);
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(148,163,184,0.40);
  box-shadow: 0 30px 120px rgba(0,0,0,0.35);
}
.tmpro-lightbox-media{
  background: rgba(15,23,42,0.06);
}
.tmpro-lightbox-media img{
  width: 100%;
  height: auto;
  display:block;
}
.tmpro-lightbox-bar{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  align-items:center;
  padding: 10px 12px;
}
.tmpro-lightbox-bar .tmpro-small{ opacity: .85; }
.tmpro-lightbox-actions{ display:flex; gap:8px; align-items:center; }

.tmpro-floatbar-inner{
  display:flex;
  gap: 10px;
  align-items:center;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  scroll-snap-type: x proximity;
}
.tmpro-floatbar-inner::-webkit-scrollbar{ display:none; }

.tmpro-floatbtn{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,0.40);
  background: rgba(255,255,255,0.98);
  font-weight: 900;
  cursor:pointer;
  white-space: nowrap;
  scroll-snap-align: start;
}
.tmpro-floatbtn.is-icon{
  width: 44px;
  height: 44px;
  padding: 0;
  justify-content:center;
  gap: 0;
  font-size: 18px;
}
.tmpro-floatbtn:active{ transform: translateY(1px); }

.tmpro-floatbtn.is-primary{
  border-color: rgba(56,189,248,0.55);
  box-shadow: 0 10px 22px rgba(56,189,248,0.18);
}

.tmpro-floatbtn.is-active{
  background: rgba(34,197,94,0.12);
  border-color: rgba(34,197,94,0.50);
}

.tmpro-floatbtn.is-want.is-active{
  background: rgba(168,85,247,0.12);
  border-color: rgba(168,85,247,0.50);
}

.tmpro-floatmeta{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap: 8px;
  font-size: 12px;
  font-weight: 800;
  opacity: 0.9;
  white-space: nowrap;
}

.tmpro-metricchip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,0.40);
  background: rgba(255,255,255,0.96);
  font-weight: 900;
  box-shadow: 0 10px 22px rgba(2,6,23,0.08);
}
.tmpro-metricico{ font-size: 14px; line-height: 1; }
.tmpro-metricnum{ font-size: 12px; line-height: 1; }

/* Compact intent buttons inside sheet (mobile first) */
.tmpro-intentbtn{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,0.40);
  background: rgba(255,255,255,0.98);
  font-weight: 900;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size: 18px;
}
.tmpro-intentbtn.is-active{
  border-color: rgba(56,189,248,0.55);
  box-shadow: 0 10px 22px rgba(56,189,248,0.18);
}

@media (max-width: 680px){
  .tmpro-floatbar-inner{ overflow-x: visible; scroll-snap-type:none; }
  .tmpro-floatbtn{ padding: 11px 13px; }
  .tmpro-floatmeta{ font-size: 11px; }
}



/* ==========================
   Nearby (Ortseite)
   ========================== */
.tmpro-nearby{
  margin-top: 12px;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(255,255,255,0.86);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 14px 32px rgba(2,6,23,0.08);
  overflow: hidden;
}
.tmpro-nearby > summary{
  list-style: none;
  cursor: pointer;
  padding: 12px 14px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  font-weight: 900;
}
.tmpro-nearby > summary::-webkit-details-marker{ display:none; }
.tmpro-nearby-meta{
  font-size: 12px;
  font-weight: 800;
  opacity: 0.8;
  white-space: nowrap;
  max-width: 70%;
  text-align: right;
}
.tmpro-nearby-body{ padding: 12px 12px 14px; }

/* Mobile: allow summary/meta to wrap instead of forcing the page wider */
@media (max-width: 520px){
  .tmpro-nearby > summary{ flex-wrap: wrap; align-items:flex-start; }
  .tmpro-nearby-meta{ white-space: normal; max-width: 100%; width: 100%; text-align: left; }
}

/* ==========================
   Sticky Tabs (Mobile)
   ========================== */
@media (max-width: 980px){
  .tmpro-location-view .tmpro-tabs{
    position: sticky;
    top: calc(var(--tmpro-adminbar, 0px) + var(--tmpro-sticky-offset, 0px) + 8px);
    z-index: 30;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding: 8px;
    border-radius: 16px;
    box-shadow: 0 10px 26px rgba(2,6,23,0.08);
  }
}

/* Hide side column on mobile (reduces scroll) */
@media (max-width: 980px){
  .tmpro-loc-grid{ grid-template-columns: 1fr !important; }
  .tmpro-loc-side{ display:none !important; }
}
.tmpro-nudge{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 16px;
  z-index: 80;
}
.tmpro-nudge-card{
  max-width: 640px;
  margin: 0 auto;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,0.12);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 22px 60px rgba(2,6,23,0.18);
  padding: 12px 12px;
}
.tmpro-nudge-row{ display:flex; gap:10px; align-items:center; justify-content:space-between; }
.tmpro-nudge-title{ font-weight: 900; }




/* Produktansicht (Ortseite) */
.tmpro-product-nav{
  position: sticky;
  top: var(--tmpro-adminbar, 0px);
  z-index: 5;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  padding:10px 0;
  margin: 4px 0 14px 0;
  background: linear-gradient(180deg, rgba(248,250,252,0.96), rgba(248,250,252,0.80));
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(15,23,42,0.10);
}

/* High-end Tabsbar (Ortseite) – kompakt, 1 Zeile, horizontal scroll */
.tmpro-tabsbar{
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 12px;
}
.tmpro-tabsbar::-webkit-scrollbar{ display:none; }

.tmpro-tabbtn{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}
.tmpro-tabico{ font-size: 14px; line-height: 1; }
.tmpro-tabcount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 11px;
  background: rgba(15,23,42,0.10);
  border: 1px solid rgba(15,23,42,0.14);
}
.tmpro-chipbtn.is-active .tmpro-tabcount{
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.22);
}

/* Pane transition (keine Scroll-Orgie, fühlt sich wie App-Tabs an) */
[data-pane]:not([hidden]){
  animation: tmproPaneIn .18s ease-out;
}
@keyframes tmproPaneIn{
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0px); }
}
@media (prefers-reduced-motion: reduce){
  [data-pane]:not([hidden]){ animation: none; }
}

.tmpro-chipbtn{
  border:1px solid rgba(15,23,42,0.12);
  background:#fff;
  padding:8px 10px;
  border-radius:999px;
  cursor:pointer;
  font-weight:700;
  font-size: 13px;
}
.tmpro-chipbtn:hover{ box-shadow: 0 10px 26px rgba(15,23,42,0.10); }
.tmpro-chipbtn.is-active{ background:#0f172a; color:#fff; border-color: rgba(15,23,42,0.28); }

.tmpro-section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin: 10px 0 10px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(15,23,42,0.10);
}
.tmpro-section-head h3{
  margin:0;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .2px;
}

.tmpro-pro-badgerow{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  margin: 10px 0 12px 0;
}
.tmpro-pricebadge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 900;
  border: 1px solid rgba(15,23,42,0.12);
  background: linear-gradient(135deg, rgba(16,185,129,0.14), rgba(34,197,94,0.10));
}

.tmpro-details-card .tmpro-spec{
  width:100%;
  border-collapse: collapse;
  font-size: 14px;
}
.tmpro-details-card .tmpro-spec th{
  text-align:left;
  width: 170px;
  padding: 8px 10px;
  color: rgba(15,23,42,0.78);
  border-top: 1px solid rgba(15,23,42,0.10);
}
.tmpro-details-card .tmpro-spec td{
  padding: 8px 10px;
  border-top: 1px solid rgba(15,23,42,0.10);
}

/* Responsive Data Sheet (no horizontal overflow) */
.tmpro-details-card{max-width:100%; overflow:hidden;}
.tmpro-details-card .tmpro-spec{table-layout:fixed;}
.tmpro-details-card .tmpro-spec th,
.tmpro-details-card .tmpro-spec td{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
  hyphens:auto;
}

/* On phones: stack rows (label + value) so the table never pushes wider than viewport */
@media (max-width: 640px){
  .tmpro-section-head{flex-direction:column; align-items:flex-start;}
  .tmpro-section-head .tmpro-small{width:100%;}

  .tmpro-details-card .tmpro-spec,
  .tmpro-details-card .tmpro-spec tbody,
  .tmpro-details-card .tmpro-spec tr,
  .tmpro-details-card .tmpro-spec th,
  .tmpro-details-card .tmpro-spec td{ display:block !important; width:100% !important; }

  .tmpro-details-card .tmpro-spec tr{
    padding: 10px 12px;
    border-top: 1px solid rgba(15,23,42,0.10);
  }
  .tmpro-details-card .tmpro-spec th{
    width:auto;
    padding: 0;
    border-top: none;
    font-weight: 900;
    color: rgba(15,23,42,0.82);
  }
  .tmpro-details-card .tmpro-spec td{
    padding: 6px 0 0 0;
    border-top: none;
  }
}

.tmpro-badge-soft{
  background: rgba(15,23,42,0.06);
  border: 1px solid rgba(15,23,42,0.10);
  color: rgba(15,23,42,0.85);
}

.tmpro-media-top{
  display:flex;
  justify-content:flex-start;
  gap:8px;
  margin-bottom: 6px;
}
.tmpro-media-cap{
  margin-top: 6px;
  line-height: 1.35;
  opacity: .9;
}

/* Make long pages feel like shop products */
.tmpro-location-view .tmpro-card{
  border-radius: 18px;
}

/* ==========================
   Top Gallery (Check24-like)
   ========================== */
.tmpro-top-gallery{
  margin-top: 12px;
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  overflow: hidden;
}

.tmpro-top-gallery-head{
  padding: 12px 12px 0 12px;
  display:flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px;
}

.tmpro-btn-sm{
  padding: 8px 10px !important;
  font-size: 13px !important;
  border-radius: 12px !important;
}

/* Compact preview (hero + thumbs) */
.tmpro-gpreview{
  padding: 12px;
  display:grid;
  grid-template-columns: 1.65fr 1fr;
  gap: 12px;
}
.tmpro-ghero{
  position: relative;
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 16px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  cursor: pointer;
  aspect-ratio: 16 / 9;
  box-shadow: 0 18px 40px rgba(2,6,23,0.10);
}
.tmpro-ghero::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(2,6,23,0.00) 40%, rgba(2,6,23,0.42) 100%);
}
.tmpro-gbadge{
  position:absolute;
  left: 10px;
  bottom: 10px;
  z-index: 1;
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  font-weight: 1000;
  font-size: 13px;
  color: #fff;
  background: rgba(2,6,23,0.55);
  border: 1px solid rgba(255,255,255,0.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.tmpro-gthumbs{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.tmpro-gthumb{
  border: 1px solid rgba(15,23,42,0.10);
  border-radius: 16px;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  cursor: pointer;
  aspect-ratio: 1 / 1;
  box-shadow: 0 14px 34px rgba(2,6,23,0.08);
}
@media (max-width: 820px){
  .tmpro-gpreview{ grid-template-columns: 1fr; }
  .tmpro-gthumbs{ grid-template-columns: repeat(4, 1fr); }
  .tmpro-gthumb{ border-radius: 14px; }
}

/* Gallery modal */
.tmpro-gallerymodal{
  position: fixed;
  inset: 0;
  z-index: 99998;
  background: rgba(2,6,23,0.72);
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 16px;
}
.tmpro-gallerymodal[hidden]{ display:none; }
.tmpro-gallerymodal-inner{
  width: min(1160px, 100%);
  max-height: 92vh;
  border-radius: 20px;
  background: rgba(255,255,255,0.96);
  border: 1px solid rgba(148,163,184,0.35);
  box-shadow: 0 22px 80px rgba(0,0,0,0.35);
  overflow: hidden;
  display:grid;
  grid-template-rows: auto auto 1fr;
}
.tmpro-gallerymodal-top{
  padding: 14px 14px 10px 14px;
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
.tmpro-gallerymodal-title{
  font-weight: 1000;
  font-size: 16px;
}
.tmpro-gallerymodal-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 40px;
  height: 40px;
  border-radius: 14px;
  border: 1px solid rgba(148,163,184,0.35);
  background: rgba(255,255,255,0.8);
  cursor:pointer;
  font-weight: 1000;
}
.tmpro-gallerymodal-tabs{
  padding: 12px 14px;
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}
.tmpro-gallerymodal-grid{
  overflow:auto;
  padding: 14px;
}

.tmpro-top-gallery-tabs{
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items:center;
  padding: 10px 12px 12px 12px;
  border-bottom: 1px solid rgba(15,23,42,0.08);
}

.tmpro-gtab{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,0.35);
  background: rgba(255,255,255,0.9);
  cursor:pointer;
  font-weight: 900;
  font-size: 13px;
}
.tmpro-gtab.is-active{
  border-color: rgba(56,189,248,0.55);
  box-shadow: 0 10px 22px rgba(56,189,248,0.16);
}
.tmpro-gtab .tmpro-gcount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width: 22px;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  background: rgba(15,23,42,0.06);
}

.tmpro-top-gallery-grid{
  padding: 12px;
}

/* Masonry via CSS columns (fast + responsive) */
.tmpro-masonry{
  column-gap: 12px;
  column-count: 2;
}
@media (min-width: 820px){
  .tmpro-masonry{ column-count: 3; }
}
@media (min-width: 1180px){
  .tmpro-masonry{ column-count: 4; }
}

.tmpro-mitem{
  break-inside: avoid;
  margin: 0 0 12px 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(15,23,42,0.08);
  background: rgba(255,255,255,0.98);
  box-shadow: 0 10px 25px rgba(2,6,23,0.08);
}
.tmpro-mitem img{
  display:block;
  width: 100%;
  height: auto;
}
.tmpro-mcap{
  padding: 10px 10px 10px 10px;
}
.tmpro-mcap .tmpro-small{ opacity: .95; }

/* Lightbox */
.tmpro-lightbox{
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(2,6,23,0.84);
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 16px;
}
.tmpro-lightbox[hidden]{ display:none; }
.tmpro-lightbox-inner{
  width: min(1100px, 100%);
  max-height: 92vh;
  display:grid;
  grid-template-rows: auto 1fr auto;
  gap: 10px;
}
.tmpro-lightbox-top{
  display:flex;
  justify-content: space-between;
  align-items:center;
  gap: 10px;
  color: #fff;
}
.tmpro-lightbox-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(255,255,255,0.08);
  color: #fff;
  cursor:pointer;
  font-weight: 900;
}
.tmpro-lightbox-figure{
  margin: 0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.tmpro-lightbox-figure img{
  max-width: 100%;
  max-height: 78vh;
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.45);
}
.tmpro-lightbox-caption{
  color: rgba(255,255,255,0.92);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

/* =====================
   Shareable list page
===================== */
.tmpro-list-view{max-width:1100px;margin:16px auto;padding:0 12px;}
.tmpro-list-header{margin:6px 0 12px;}
.tmpro-list-header-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;}
.tmpro-list-title{margin:0;font-size:26px;letter-spacing:-.2px;}
.tmpro-list-sub{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;}
.tmpro-list-actions{display:flex;gap:10px;align-items:center;}
.tmpro-list-desc{margin-top:10px;color:rgba(0,0,0,.72);}
.tmpro-dark .tmpro-list-desc{color:rgba(255,255,255,.78);}

.tmpro-list-mapwrap{margin:12px 0;overflow:hidden;}
.tmpro-list-map{width:100%;height:280px;}

/* Day planning */
.tmpro-list-days{display:flex;flex-direction:column;gap:14px;margin:12px 0 22px;}
.tmpro-day{position:relative;}
.tmpro-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px 0;}
.tmpro-day-title{font-weight:950;letter-spacing:-.15px;}
.tmpro-day-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.tmpro-day-items{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.tmpro-day-items:empty{min-height:64px;border:1px dashed rgba(0,0,0,.14);border-radius:18px;background:rgba(0,0,0,.02);}
.tmpro-dark .tmpro-day-items:empty{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.04);} 
@media (max-width: 980px){.tmpro-day-items{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 620px){.tmpro-day-items{grid-template-columns:1fr;} }

.tmpro-list-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0 22px;}
@media (max-width: 980px){.tmpro-list-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width: 620px){.tmpro-list-grid{grid-template-columns:1fr;} }

.tmpro-list-card{display:flex;gap:12px;align-items:stretch;text-decoration:none;color:inherit;background:rgba(255,255,255,.78);border:1px solid rgba(0,0,0,.06);border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.06);transition:transform .12s ease, box-shadow .12s ease;}
.tmpro-list-card{cursor:pointer;}
.tmpro-dark .tmpro-list-card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);box-shadow:0 10px 30px rgba(0,0,0,.35);}
.tmpro-list-card:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(0,0,0,.09);} 

.tmpro-list-thumb{width:120px;min-width:120px;object-fit:cover;display:block;}
.tmpro-thumb-fallback{display:flex;align-items:center;justify-content:center;font-size:34px;background:linear-gradient(135deg,rgba(0,0,0,.08),rgba(0,0,0,.02));}
.tmpro-dark .tmpro-thumb-fallback{background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.02));}

.tmpro-list-card-body{padding:12px 10px 12px 0;display:flex;flex-direction:column;justify-content:center;min-height:86px;}
.tmpro-list-card-title{font-weight:900;letter-spacing:-.1px;line-height:1.2;}
.tmpro-list-card-meta{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap;}

.tmpro-list-collage{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin:10px 0 12px;}
@media (max-width: 760px){.tmpro-list-collage{grid-template-columns:1fr;}}
.tmpro-list-collage-main{border-radius:18px;overflow:hidden;min-height:260px;background:rgba(0,0,0,.06);}
.tmpro-list-collage-main img{width:100%;height:100%;object-fit:cover;display:block;}
.tmpro-list-collage-side{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.tmpro-list-collage-tile{border-radius:18px;overflow:hidden;background:rgba(0,0,0,.06);min-height:125px;}
.tmpro-list-collage-tile img{width:100%;height:100%;object-fit:cover;display:block;}




/* List editing */
.tmpro-list-toolbar{margin-top:10px;padding:10px 12px;border-radius:16px;background:rgba(0,0,0,.04);border:1px dashed rgba(0,0,0,.10);}
.tmpro-dark .tmpro-list-toolbar{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);}

.tmpro-list-card-edit{cursor:grab;user-select:none;}
.tmpro-list-card-edit.is-dragging{opacity:.55;transform:scale(.985);}
.tmpro-list-card-tools{margin-top:10px;display:flex;gap:8px;align-items:center;}
.tmpro-iconbtn{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:12px;
  border:1px solid rgba(0,0,0,.10);
  background:rgba(255,255,255,.70);
  box-shadow:0 8px 24px rgba(0,0,0,.08);
  font-weight:900;cursor:pointer;
}
.tmpro-dark .tmpro-iconbtn{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.08);box-shadow:0 8px 24px rgba(0,0,0,.35);color:#fff;}
.tmpro-iconbtn:hover{transform:translateY(-1px);}
.tmpro-iconbtn.is-active{border-color:rgba(16,185,129,.55);box-shadow:0 10px 30px rgba(16,185,129,.15);}
.tmpro-iconbtn-danger{border-color:rgba(220,38,38,.55);color:#dc2626;}
.tmpro-dark .tmpro-iconbtn-danger{border-color:rgba(220,38,38,.55);color:#fecaca;}

.tmpro-iconbtn.tmpro-handle{cursor:grab;}
.tmpro-pill-success{background:rgba(16,185,129,.16)!important;border-color:rgba(16,185,129,.30)!important;}
.tmpro-pill-warn{background:rgba(245,158,11,.16)!important;border-color:rgba(245,158,11,.30)!important;}

/* =====================
   Toast + Hintbar (global)
===================== */
.tmpro-toast-host{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom: calc(14px + var(--tmpro-bottom-offset, 0px) + env(safe-area-inset-bottom));
  z-index:999999;
  pointer-events:none;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:center;
  /* Avoid 100vw-based horizontal overflow on some mobile browsers */
  width:min(560px, calc(100% - 24px));
}
.tmpro-toast{
  pointer-events:auto;
  background:rgba(0,0,0,.82);
  color:#fff;
  padding:12px 14px;
  border-radius:999px;
  font-weight:900;
  letter-spacing:-.1px;
  box-shadow:0 18px 60px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
}
.tmpro-hintbar{
  pointer-events:auto;
  width:100%;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(0,0,0,.08);
  border-radius:18px;
  padding:12px;
  box-shadow:0 18px 60px rgba(0,0,0,.18);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.tmpro-hintbar-title{font-weight:900;letter-spacing:-.1px;}
.tmpro-hintbar-sub{margin-top:2px;font-size:13px;opacity:.78;line-height:1.35;}
.tmpro-hintbar-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.tmpro-hintbar .tmpro-btn{white-space:nowrap;}
.tmpro-dark .tmpro-hintbar{
  background:rgba(17,17,20,.92);
  border-color:rgba(255,255,255,.14);
  box-shadow:0 18px 60px rgba(0,0,0,.55);
}
@media (max-width: 520px){
  .tmpro-toast-host{width:calc(100vw - 20px);} 
  .tmpro-hintbar{flex-direction:column;align-items:stretch;} 
  .tmpro-hintbar-actions{justify-content:stretch;} 
  .tmpro-hintbar-actions .tmpro-btn{flex:1;} 
}


/* =====================
   Öffnungszeiten (Wochenplan) + Multi-Picker
===================== */
.tmpro-hours-widget{border-top:1px dashed rgba(0,0,0,.12);padding-top:10px;margin-top:10px;}
.tmpro-dark .tmpro-hours-widget{border-top-color:rgba(255,255,255,.14);}
.tmpro-hours-editor{margin-top:10px;border:1px solid rgba(0,0,0,.10);border-radius:16px;padding:10px;background:rgba(255,255,255,.70);backdrop-filter: blur(10px);}
.tmpro-dark .tmpro-hours-editor{border-color:rgba(255,255,255,.14);background:rgba(17,17,20,.60);}
.tmpro-hours-top{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;}
.tmpro-hours-presets{display:flex;gap:8px;flex-wrap:wrap;}
.tmpro-hours-grid{display:flex;flex-direction:column;gap:10px;}
.tmpro-hours-row{display:grid;grid-template-columns:46px 1fr auto;gap:10px;align-items:start;}
.tmpro-hours-day{font-weight:900;opacity:.9;padding-top:7px;}
.tmpro-hours-slots{display:flex;flex-direction:column;gap:6px;}
.tmpro-hours-slot{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.tmpro-hours-time{min-width:92px;}
.tmpro-hours-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.tmpro-hours-closed{padding:8px 10px;border-radius:12px;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.08);}
.tmpro-dark .tmpro-hours-closed{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);}

.tmpro-badge-open{background:rgba(46, 204, 113, .16);border-color:rgba(46, 204, 113, .22);}

.tmpro-multi-list{display:flex;flex-direction:column;gap:8px;}
.tmpro-multi-item{
  width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:16px;
  border:1px solid rgba(0,0,0,.10);
  background:rgba(255,255,255,.70);
  cursor:pointer;
  text-align:left;
}
.tmpro-dark .tmpro-multi-item{border-color:rgba(255,255,255,.14);background:rgba(17,17,20,.60);}
.tmpro-multi-item:hover{transform:translateY(-1px);box-shadow:0 12px 36px rgba(0,0,0,.12);}
.tmpro-multi-ico{font-size:22px;min-width:28px;display:flex;align-items:center;justify-content:center;}
.tmpro-multi-title{font-weight:900;letter-spacing:-.1px;}
.tmpro-multi-go{margin-left:auto;font-weight:900;opacity:.6;font-size:18px;}
@media (max-width: 520px){
  .tmpro-hours-row{grid-template-columns:40px 1fr;grid-template-rows:auto auto;gap:8px;}
  .tmpro-hours-actions{grid-column:1 / -1;justify-content:flex-start;}
}



/* ==========================
   Mobile Layout Fixes (Portrait reachable)
   ========================== */
.tmpro-app, .tmpro-location-view, .tmpro-my{ max-width:100%; overflow-x:hidden; }
.tmpro-app *, .tmpro-location-view *, .tmpro-my *{ box-sizing:border-box; }

/* Absolute safety net: if anything still tries to widen the document, lock horizontal scroll on the page */
html.tmpro-lock-x, body.tmpro-lock-x{ overflow-x:hidden !important; }

/* Grid/flex shrink safety: without min-width:0, long tab rows can widen the entire page on mobile */
.tmpro-loc-grid{ min-width: 0; }
.tmpro-loc-grid > *{ min-width: 0; }
.tmpro-loc-main, .tmpro-loc-side, .tmpro-card{ min-width: 0; }
.tmpro-product-nav{ min-width: 0; max-width: 100%; width: 100%; }

/* Hard clamp: the mid tabs row must NEVER push the page wider than the viewport */
.tmpro-product-nav.tmpro-tabsbar{
  max-width: 100%;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  contain: layout paint;
}
.tmpro-product-nav.tmpro-tabsbar > *{ flex: 0 0 auto; scroll-snap-align: start; }

/* Phones: show icon-only tabs (labels hidden) so everything stays within portrait */
@media (max-width: 620px){
  .tmpro-tablabel{ display:none !important; }
  .tmpro-product-nav.tmpro-tabsbar{ gap:10px; padding-left:6px; padding-right:6px; }
  .tmpro-chipbtn.tmpro-tabbtn{ padding:10px 12px; gap:6px; }
  .tmpro-chipbtn.tmpro-tabbtn .tmpro-tabico{ font-size: 18px; }
}

.tmpro-loc-hero, .tmpro-loc-grid, .tmpro-loc-main, .tmpro-loc-side, .tmpro-card, .tmpro-top-gallery{ max-width:100%; }

/* Prevent any long unbroken content from forcing horizontal scroll */
.tmpro-loc-title, .tmpro-loc-sub, .tmpro-small, .tmpro-card, .tmpro-section-title, .tmpro-tab, .tmpro-chip{ overflow-wrap:anywhere; word-break:break-word; }

/* Stack primary hero actions on narrow screens so nothing overflows */
@media (max-width: 520px){
  .tmpro-loc-actions:not(.tmpro-actions-icons){ flex-direction: column; align-items: stretch; }
  .tmpro-loc-actions.tmpro-actions-icons{ flex-direction: row; align-items: center; justify-content: flex-start; gap:10px; }
  .tmpro-loc-actions:not(.tmpro-actions-icons) .tmpro-btn{ width: 100%; }
}

/* Gallery header should wrap on mobile (avoid "sprengt Rahmen") */
@media (max-width: 560px){
  .tmpro-top-gallery-head{ flex-wrap: wrap; align-items: flex-start; }
  .tmpro-top-gallery-head .tmpro-small{ width: 100%; text-align:left; }
}

/* Make tabs horizontally scrollable on mobile to keep everything reachable without rotation */
@media (max-width: 720px){
  .tmpro-tabs, .tmpro-gal-tabs{
    flex-wrap: nowrap !important;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    padding-bottom: 4px;
  }
  .tmpro-tabs::-webkit-scrollbar,
  .tmpro-gal-tabs::-webkit-scrollbar{ display:none; }
  .tmpro-tab, .tmpro-gal-tab{ flex: 0 0 auto; scroll-snap-align: start; }
}

/* Data tables / key-value blocks: allow sideways scroll instead of forcing page overflow */
.tmpro-kv, .tmpro-tablewrap, .tmpro-facts, .tmpro-smartfacts, table{
  max-width: 100%;
}
.tmpro-kv, .tmpro-tablewrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}



/* --- TravelMap: lightweight modal (add-to-list fallback) --- */
.tmpro-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:1000000;display:flex;align-items:flex-end;justify-content:center;padding:16px;}
.tmpro-modal{background:rgba(255,255,255,.96);width:min(760px, 100%);border-radius:22px;box-shadow:0 22px 80px rgba(0,0,0,.28);border:1px solid rgba(0,0,0,.08);backdrop-filter: blur(10px);max-height: calc(100vh - 32px);overflow:auto;}
.tmpro-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid rgba(0,0,0,.08);position:sticky;top:0;background:rgba(255,255,255,.96);z-index:1;}
.tmpro-modal-title{font-weight:900;font-size:16px;}
.tmpro-modal-body{padding:14px;}
@media (min-width: 720px){.tmpro-modal-overlay{align-items:center;}}


/* =====================
   Lists: Summary + Mode + Story
===================== */
.tmpro-list-summary{padding:12px 12px 0 12px}
.tmpro-sum-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-bottom:10px}
.tmpro-sum-title{font-weight:900;font-size:15px}
.tmpro-sum-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.tmpro-pill{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);font-size:12px;line-height:1}
.tmpro-sum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding-bottom:12px}
.tmpro-sum-chip{padding:10px;border-radius:14px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.10)}
.tmpro-sum-chip-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.tmpro-sum-dot{display:inline-block;width:10px;height:10px;border-radius:99px}
.tmpro-mode{display:inline-flex;gap:6px;padding:4px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}
.tmpro-mode-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.20);cursor:pointer;transition:transform .08s ease, background .15s ease}
.tmpro-mode-btn:hover{transform:translateY(-1px)}
.tmpro-mode-btn.is-active{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.26)}

.tmpro-noscroll{overflow:hidden}
.tmpro-story{position:fixed;inset:0;z-index:999999;background:linear-gradient(180deg,rgba(10,12,16,.92),rgba(10,12,16,.98))}
.tmpro-story-top{position:absolute;left:0;right:0;top:0;padding:14px 14px 10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2;background:linear-gradient(180deg,rgba(10,12,16,.92),rgba(10,12,16,.3))}
.tmpro-story-title b{font-size:16px}
.tmpro-story-map{position:absolute;inset:0}
.tmpro-story-hud{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:12px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,rgba(10,12,16,0),rgba(10,12,16,.95))}
.tmpro-story-card{max-width:520px;width:100%;padding:12px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(0,0,0,.35);backdrop-filter:blur(10px)}
.tmpro-story-card-top{display:flex;align-items:center;gap:8px}
.tmpro-story-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tmpro-story-progress{flex:1;min-width:160px;height:10px;border-radius:999px;background:rgba(255,255,255,.10);overflow:hidden;border:1px solid rgba(255,255,255,.12)}
.tmpro-story-progress-in{height:100%;width:0%;background:rgba(255,255,255,.55)}
.tmpro-traveler .tmpro-traveler-pin{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:rgba(0,0,0,.45);border:1px solid rgba(255,255,255,.22);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.tmpro-stop .tmpro-stop-dot{width:12px;height:12px;border-radius:999px;border:2px solid rgba(0,0,0,.5)}

@media (max-width:720px){
  .tmpro-story-card{max-width:100%}
}


/* Mobile: actions row + travel-mode buttons must fit without breaking layout */
@media (max-width: 520px){
  .tmpro-list-header-top{gap:10px;}
  .tmpro-list-title{font-size:22px;}
  .tmpro-list-actions{
    width:100%;
    flex-wrap:wrap;
    gap:8px;
    justify-content:flex-start;
  }
  .tmpro-list-actions .tmpro-btn{
    padding:10px 12px;
    border-radius:16px;
    font-size:14px;
  }
  .tmpro-list-actions .tmpro-btn.tmpro-btn-primary{
    padding:10px 12px;
  }
  .tmpro-mode{
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    flex:1 1 auto;
  }
  .tmpro-mode::-webkit-scrollbar{display:none;}
  .tmpro-mode{scrollbar-width:none;}
  .tmpro-mode-btn{
    min-width:42px;
    height:42px;
    border-radius:16px;
  }
  /* Keep +Tag from pushing everything off-screen */
  [data-tmpro-list-add-day]{
    white-space:nowrap;
  }
}


/* --- ULTRA Story POIs + Mover --- */
.tmpro-story-poi-wrap{background:transparent;border:none}
.tmpro-story-poi{position:relative;width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);box-shadow:0 10px 24px rgba(0,0,0,.25);backdrop-filter:blur(6px)}
.tmpro-story-poi-icon{font-size:18px;line-height:1}
.tmpro-story-poi-badge{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;border-radius:999px;background:rgba(10,12,16,.92);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;box-shadow:0 6px 14px rgba(0,0,0,.28)}
.tmpro-story-mover{background:transparent;border:none}
.tmpro-story-mover-badge{width:34px;height:34px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.95);box-shadow:0 12px 26px rgba(0,0,0,.28);font-size:18px;line-height:1}


/* 3D marker icon images */
.tmpro-marker-shell{ width:34px; height:34px; display:flex; align-items:center; justify-content:center; }
.tmpro-marker-img img{ width:28px; height:28px; display:block; }
.tmpro-type-ico img{ vertical-align: middle; width:20px; height:20px; }
.tmpro-multi-ico img{ width:22px; height:22px; vertical-align: middle; }


/* RK Transparent icon background */
.tmpro-marker-wrap,
.tmpro-marker-wrap *{
  background: transparent !important;
}
.tmpro-marker-wrap{
  border: none !important;
  box-shadow: none !important;
}
.tmpro-marker-shell{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tmpro-marker{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tmpro-marker-img{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
.tmpro-marker-img img{
  background: transparent !important;
}

/* If marker HTML uses inner <div>, keep it transparent too */
.tmpro-marker-wrap .tmpro-marker,
.tmpro-marker-wrap .tmpro-marker-shell{
  background: transparent !important;
}


/* RK: place category filter bar inside map (top-right) */
.tmpro-map-wrap{ position: relative; }
.tmpro-filterbar--map{
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 600;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  max-width: min(520px, calc(100% - 24px));
  pointer-events: auto;
}
.tmpro-filterbar--map .tmpro-typebtn{
  border-radius: 999px;
  background: rgba(15,23,42,0.45);
  backdrop-filter: blur(10px);
}
@media (max-width: 720px){
  .tmpro-filterbar--map{
    top: 10px;
    right: 10px;
    max-width: calc(100% - 20px);
  }
}


/* RK: map corner controls (fullscreen + menu) */
.tmpro-map-corner{
  position:absolute;
  top:12px;
  left:auto;
  right:12px;
  z-index: 650;
  display:flex;
  gap:10px;
  align-items:center;
}
.tmpro-mapbtn{
  width:44px;
  height:44px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(15,23,42,0.45);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.16);
}
.tmpro-mapbtn:hover{ background: rgba(15,23,42,0.55); }
.tmpro-mapbtn:active{ transform: translateY(1px); }

/* Keep filterbar below corner buttons */
.tmpro-filterbar--map{ top: 64px; }

/* Fullscreen mode */
body.tmpro-no-scroll{ overflow:hidden !important; }
.tmpro-map-wrap.tmpro-is-fullscreen{
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  border-radius: 0 !important;
  margin: 0 !important;
}
.tmpro-map-wrap.tmpro-is-fullscreen .tmpro-map{
  height: 100vh !important;
}
.tmpro-map-wrap.tmpro-is-fullscreen .tmpro-map-corner{
  top: 14px;
  right: 14px;
}
.tmpro-map-wrap.tmpro-is-fullscreen .tmpro-filterbar--map{
  top: 66px;
  right: 14px;
}
@media (max-width: 720px){
  .tmpro-map-corner{ top:10px; right:10px; }
  .tmpro-filterbar--map{ top: 60px; right: 10px; }
  .tmpro-mapbtn{ width:42px; height:42px; }
}


/* RK: force filterbar to stick top-right (compact, scrollable) */
.tmpro-filterbar--map{
  position:absolute !important;
  top:64px !important;
  right:12px !important;
  left:auto !important;
  z-index: 600 !important;
  display:flex !important;
  flex-wrap: nowrap !important;
  gap:8px !important;
  justify-content:flex-end !important;
  max-width: calc(100% - 120px) !important; /* keep space for controls/edge */
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 2px 2px !important;
  scrollbar-width: none;
}
.tmpro-filterbar--map::-webkit-scrollbar{ display:none; }
.tmpro-filterbar--map .tmpro-typebtn{ flex: 0 0 auto; }





/* RK: hide map filterbar pills (use Menu Sheet instead) */
.tmpro-filterbar--map{ display:none !important; }


/* RK: fullscreen overlay layering + menu visibility */
.tmpro-sheet{ z-index: 1000002 !important; }
.tmpro-gallerymodal{ z-index: 1000003 !important; }

/* Show map menu button ONLY in fullscreen */
.tmpro-map-corner [data-tmpro-menu-map]{ display:none !important; }
.tmpro-map-wrap.tmpro-is-fullscreen .tmpro-map-corner [data-tmpro-menu-map]{ display:flex !important; }


/* RK: toast host on body (fullscreen-safe) */
.tmpro-toast-host{
  position: fixed !important;
  z-index: 1000005 !important; /* above fullscreen layer (99999) */
}
.tmpro-sheet{
  z-index: 1000004 !important;
}
.tmpro-gallerymodal{
  z-index: 1000006 !important;
}
