:root {
  --bg: #06131d;
  --bg-soft: #0a1c29;
  --surface: #0d2432;
  --surface-2: #123244;
  --text: #f4fbff;
  --muted: #9bb2c1;
  --line: rgba(255,255,255,.10);
  --blue: #17b8da;
  --blue-2: #57d6ed;
  --orange: #ff8b42;
  --green: #6ee7b7;
  --shadow: 0 24px 70px rgba(0,0,0,.30);
  --radius: 26px;
  --max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at 90% 4%, rgba(23,184,218,.13), transparent 24rem),
    radial-gradient(circle at 0% 35%, rgba(255,139,66,.08), transparent 22rem),
    var(--bg);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }

.skip-link { position: fixed; top: -80px; left: 12px; z-index: 9999; background: white; color: #06131d; padding: 10px 14px; border-radius: 10px; }
.skip-link:focus { top: 12px; }
.section-anchor { scroll-margin-top: 86px; }

.topbar {
  position: fixed; inset: 0 0 auto 0; z-index: 1000;
  height: 72px; padding: 0 max(18px, env(safe-area-inset-left));
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: rgba(6,19,29,.72); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: 0; }
.brand > span:last-child { display: grid; line-height: 1.05; }
.brand strong { font-size: 1rem; letter-spacing: -.02em; }
.brand small { color: var(--muted); font-size: .68rem; margin-top: 4px; text-transform: uppercase; letter-spacing: .12em; }
.brand-badge { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: linear-gradient(135deg,var(--blue),#087fa5); box-shadow: 0 10px 24px rgba(23,184,218,.24); }
.brand-badge svg { width: 27px; height: 27px; fill: none; stroke: white; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.desktop-nav { display: none; align-items: center; gap: 26px; color: #d8e5ec; font-weight: 700; font-size: .92rem; }
.desktop-nav a { position: relative; padding: 8px 0; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; background: var(--blue); transition: right .25s ease; }
.desktop-nav a:hover::after { right: 0; }
.header-cta { display: none; padding: 10px 16px; border-radius: 999px; background: white; color: #081b27; font-weight: 800; font-size: .84rem; }

.hero { position: relative; min-height: 760px; padding: 110px 18px 34px; display: flex; flex-direction: column; justify-content: flex-end; isolation: isolate; }
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 42% center; z-index: -3; }
.hero-overlay { position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(3,13,20,.15) 0%, rgba(3,13,20,.30) 34%, rgba(3,13,20,.95) 80%, var(--bg) 100%), linear-gradient(90deg, rgba(3,13,20,.58), transparent 68%); }
.hero-content { width: 100%; max-width: var(--max); margin: 0 auto; }
.eyebrow { margin: 0 0 10px; color: var(--blue-2); text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 900; }
.hero h1 { max-width: 850px; margin: 0; font-size: clamp(2.55rem, 10vw, 6.4rem); line-height: .92; letter-spacing: -.065em; text-wrap: balance; }
.hero h1 span { color: var(--blue-2); }
.hero-content > p:not(.eyebrow) { max-width: 680px; margin: 20px 0 0; color: #d9e6ed; font-size: clamp(1rem, 2vw, 1.18rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.btn { min-height: 48px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; font-weight: 900; font-size: .9rem; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: linear-gradient(135deg,var(--blue-2),var(--blue)); color: #05202b; box-shadow: 0 14px 34px rgba(23,184,218,.25); }
.btn-glass { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); backdrop-filter: blur(10px); }
.hero-stats { width: 100%; max-width: var(--max); margin: 34px auto 0; display: grid; grid-template-columns: repeat(3,1fr); background: rgba(7,24,35,.72); border: 1px solid rgba(255,255,255,.10); border-radius: 20px; backdrop-filter: blur(16px); overflow: hidden; }
.hero-stats article { padding: 18px 10px; text-align: center; }
.hero-stats article + article { border-left: 1px solid var(--line); }
.hero-stats strong { display: block; font-size: clamp(1.25rem,5vw,2rem); line-height: 1; }
.hero-stats span { display: block; color: var(--muted); font-size: .68rem; margin-top: 6px; }

.section { width: min(var(--max), calc(100% - 36px)); margin: 0 auto; padding: 76px 0; }
.section-heading { display: flex; flex-direction: column; gap: 18px; margin-bottom: 28px; }
.section-heading h2 { margin: 0; font-size: clamp(2rem, 7vw, 4.4rem); line-height: 1; letter-spacing: -.045em; max-width: 900px; }
.section-heading h2 span { color: var(--blue-2); }
.section-heading p:not(.eyebrow) { margin: 14px 0 0; color: var(--muted); max-width: 760px; }
.compact-heading { flex-direction: row; align-items: end; justify-content: space-between; }
.text-link { color: var(--blue-2); font-weight: 900; white-space: nowrap; font-size: .88rem; }

.latest-video { padding-top: 42px; }
.video-card { display: block; border-radius: var(--radius); overflow: hidden; background: linear-gradient(145deg,rgba(18,50,68,.98),rgba(8,27,39,.98)); border: 1px solid var(--line); box-shadow: var(--shadow); }
.video-thumb-wrap { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #102330; }
.video-thumb-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.video-card:hover img { transform: scale(1.025); }
.play-button { position: absolute; inset: 50% auto auto 50%; translate: -50% -50%; width: 68px; height: 68px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.94); box-shadow: 0 16px 35px rgba(0,0,0,.35); }
.play-button svg { width: 34px; height: 34px; fill: #e92535; }
.video-badge { position: absolute; top: 14px; left: 14px; padding: 7px 11px; border-radius: 999px; background: #e92535; color: white; font-size: .66rem; font-weight: 950; letter-spacing: .12em; }
.video-info { padding: 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.video-info p { margin: 0 0 5px; color: var(--blue-2); font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.video-info h3 { margin: 0; font-size: clamp(1.08rem,4vw,1.7rem); line-height: 1.2; }
.round-arrow { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.09); border: 1px solid var(--line); font-size: 1.1rem; }

.map-section { padding-top: 90px; }
.live-pill { align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(110,231,183,.24); color: var(--green); background: rgba(110,231,183,.08); border-radius: 999px; padding: 9px 13px; font-weight: 800; font-size: .78rem; }
.live-pill span { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 6px rgba(110,231,183,.12); }
.map-shell { position: relative; height: min(72vh, 650px); min-height: 520px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow); }
#map { width: 100%; height: 100%; background: #0d2432; touch-action: none; cursor: grab; }
#map:active { cursor: grabbing; }
.map-progress-card { position: absolute; z-index: 510; top: 12px; left: 58px; right: 12px; max-width: 310px; margin-left: auto; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 10px; padding: 12px 13px; border-radius: 16px; color: #fff; background: rgba(5,20,29,.90); border: 1px solid rgba(255,255,255,.13); box-shadow: 0 10px 30px rgba(0,0,0,.25); backdrop-filter: blur(15px); pointer-events: none; }
.map-progress-card small { grid-column: 1; color: var(--blue-2); font-size: .62rem; line-height: 1.1; text-transform: uppercase; letter-spacing: .08em; font-weight: 900; }
.map-progress-card strong { grid-column: 1; font-size: .78rem; line-height: 1.25; }
.map-progress-card img { grid-column: 2; grid-row: 1 / span 2; width: 42px; height: 27px; object-fit: cover; border-radius: 5px; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
.map-legend { position: absolute; z-index: 505; top: 94px; right: 12px; display: grid; gap: 7px; padding: 10px 11px; border-radius: 14px; background: rgba(5,20,29,.86); border: 1px solid rgba(255,255,255,.11); backdrop-filter: blur(12px); color: #dceaf0; font-size: .62rem; font-weight: 800; pointer-events: none; }
.map-legend span { display: flex; align-items: center; gap: 7px; white-space: nowrap; }
.legend-flag { position: relative; width: 18px; height: 12px; border-radius: 2px; display: inline-block; box-shadow: 0 2px 5px rgba(0,0,0,.25); }
.legend-flag::before { content: ""; position: absolute; left: -3px; top: -2px; width: 2px; height: 17px; border-radius: 2px; background: white; }
.legend-flag.visited { background: #27d17f; }
.legend-flag.unvisited { background: #ff4d5f; }
.legend-current { width: 11px; height: 11px; border-radius: 50%; background: var(--blue-2); border: 2px solid white; box-shadow: 0 0 0 4px rgba(87,214,237,.18); }
.map-float-card { position: absolute; z-index: 500; left: 12px; right: 12px; bottom: 12px; display: flex; align-items: center; gap: 11px; padding: 13px 14px; border-radius: 17px; background: rgba(5,20,29,.90); backdrop-filter: blur(15px); border: 1px solid rgba(255,255,255,.13); pointer-events: none; }
.map-float-card small { display: block; color: var(--muted); font-size: .68rem; }
.map-float-card strong { display: block; font-size: .82rem; line-height: 1.3; }
.location-dot { width: 14px; height: 14px; flex: 0 0 auto; border-radius: 50%; background: var(--blue-2); box-shadow: 0 0 0 8px rgba(87,214,237,.18); }
.current-marker { width: 22px; height: 22px; background: var(--blue-2); border: 4px solid white; border-radius: 50%; box-shadow: 0 0 0 10px rgba(23,184,218,.22),0 8px 25px rgba(0,0,0,.35); animation: currentPulse 2s ease-in-out infinite; }
@keyframes currentPulse { 50% { box-shadow: 0 0 0 15px rgba(23,184,218,.08),0 8px 25px rgba(0,0,0,.35); } }
.country-marker-wrapper { background: transparent !important; border: 0 !important; }
.map-country-marker { position: relative; width: 90px; height: 54px; display: flex; align-items: center; justify-content: center; pointer-events: auto; transform-origin: center; }
.marker-flag { position: relative; width: 27px; height: 18px; border-radius: 2px 3px 3px 2px; border: 1px solid rgba(255,255,255,.75); box-shadow: 0 4px 9px rgba(0,0,0,.36); }
.marker-flag::before { content: ""; position: absolute; left: -4px; top: -4px; width: 3px; height: 28px; border-radius: 3px; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); }
.map-country-marker.visited .marker-flag { background: linear-gradient(135deg,#2ee38d,#17a965); }
.map-country-marker.unvisited .marker-flag { background: linear-gradient(135deg,#ff6371,#dc2741); }
.marker-status, .marker-country-name { position: absolute; left: 50%; translate: -50% 0; max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 999px; text-shadow: 0 2px 5px rgba(0,0,0,.65); transition: opacity .18s ease, transform .18s ease; }
.marker-status { top: -1px; padding: 2px 5px; color: white; background: rgba(5,16,24,.84); border: 1px solid rgba(255,255,255,.22); font-size: .43rem; line-height: 1; font-weight: 950; text-transform: uppercase; letter-spacing: .035em; }
.map-country-marker.visited .marker-status { color: #8ff0c0; }
.map-country-marker.unvisited .marker-status { color: #ff9aa5; }
.marker-country-name { bottom: -1px; color: white; font-size: .49rem; line-height: 1; font-weight: 950; }
#map.map-zoomed-out .marker-status, #map.map-zoomed-out .marker-country-name { opacity: 0; transform: scale(.8); }
#map.map-zoomed-out .map-country-marker { transform: scale(.66); }
.europe-adventure-marker { width: 150px; display: flex; align-items: center; gap: 5px; padding: 5px 7px; border-radius: 13px; background: rgba(5,20,29,.88); border: 1px solid rgba(255,255,255,.15); box-shadow: 0 7px 18px rgba(0,0,0,.30); color: white; }
.europe-star { flex: 0 0 auto; font-size: 25px; filter: drop-shadow(0 4px 8px rgba(0,0,0,.45)); }
.europe-adventure-marker strong { font-size: .55rem; line-height: 1.15; text-transform: uppercase; letter-spacing: .03em; }

/* =========================================================
   MAPA AO VIVO — ACESSO PARA MEMBROS DO YOUTUBE
   ========================================================= */
.member-map-shell { isolation: isolate; }
.member-map-visual {
  position: absolute;
  inset: 0;
  transition: filter .45s ease, transform .45s ease, opacity .45s ease;
  transform-origin: center;
}
.member-map-visual.is-locked {
  filter: blur(8px) brightness(.52) saturate(.72);
  transform: scale(1.035);
  pointer-events: none;
  user-select: none;
}
.member-map-visual.is-unlocked {
  filter: none;
  transform: none;
  pointer-events: auto;
}
.member-map-gate {
  position: absolute;
  z-index: 800;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  background: radial-gradient(circle at center, rgba(5,20,29,.18), rgba(5,20,29,.50));
  transition: background .35s ease, place-items .35s ease;
}
.member-gate-card {
  width: min(430px, 100%);
  padding: 23px 20px 20px;
  border-radius: 22px;
  text-align: center;
  color: #fff;
  background: rgba(5,20,29,.92);
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 24px 65px rgba(0,0,0,.44);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.member-lock {
  width: 48px;
  height: 48px;
  margin: 0 auto 12px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(87,214,237,.18), rgba(23,184,218,.06));
  border: 1px solid rgba(87,214,237,.22);
  font-size: 1.35rem;
}
.member-kicker {
  margin: 0 0 7px;
  color: var(--blue-2);
  font-size: .63rem;
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: .13em;
}
.member-gate-card h3 {
  margin: 0;
  font-size: clamp(1.35rem, 6vw, 2rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}
.member-gate-text {
  margin: 11px auto 0;
  max-width: 340px;
  color: #b8cbd6;
  font-size: .82rem;
  line-height: 1.45;
}
.member-gate-actions {
  display: grid;
  gap: 8px;
  margin-top: 17px;
}
.youtube-login-btn,
.member-live-btn,
.member-join-btn,
.member-secondary-btn {
  min-height: 46px;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 16px;
  border: 0;
  border-radius: 14px;
  cursor: pointer;
  font-weight: 950;
  font-size: .82rem;
  text-align: center;
}
.youtube-login-btn {
  color: #fff;
  background: linear-gradient(135deg, #ff0033, #dc1736);
  box-shadow: 0 13px 30px rgba(255,0,51,.22);
}
.youtube-login-icon {
  width: 24px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  color: #ff0033;
  background: white;
  font-size: .62rem;
  padding-left: 2px;
}
.member-live-btn {
  color: #041c25;
  background: linear-gradient(135deg, var(--blue-2), var(--blue));
  box-shadow: 0 13px 30px rgba(23,184,218,.23);
}
.member-join-btn {
  color: white;
  background: linear-gradient(135deg, #ff0033, #d51232);
}
.member-secondary-btn {
  color: #e7f5fb;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.12);
}
.member-gate-note {
  display: block;
  margin-top: 12px;
  color: #7793a3;
  font-size: .62rem;
  line-height: 1.35;
}
.member-legal-links {
  margin: 10px auto 0;
  max-width: 350px;
  color: #8ba5b4;
  font-size: .60rem;
  line-height: 1.45;
}
.member-legal-links a {
  color: #d9f7ff;
  font-weight: 850;
  text-decoration: underline;
  text-decoration-color: rgba(87,214,237,.55);
  text-underline-offset: 2px;
}
.member-legal-links a:hover {
  color: #fff;
}
.member-map-gate.is-unlocked {
  inset: 12px 12px auto auto;
  place-items: start end;
  padding: 0;
  background: transparent;
  pointer-events: none;
}
.member-map-gate.is-unlocked .member-gate-card {
  width: min(340px, calc(100vw - 56px));
  padding: 13px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  align-items: center;
  gap: 4px 10px;
  text-align: left;
  border-radius: 16px;
  pointer-events: auto;
}
.member-map-gate.is-unlocked .member-lock {
  grid-row: 1 / span 3;
  width: 38px;
  height: 38px;
  margin: 0;
  border-radius: 12px;
  font-size: 1rem;
}
.member-map-gate.is-unlocked .member-kicker {
  margin: 0;
  font-size: .52rem;
}
.member-map-gate.is-unlocked h3 {
  font-size: .86rem;
  line-height: 1.12;
}
.member-map-gate.is-unlocked .member-gate-text,
.member-map-gate.is-unlocked .member-gate-note {
  display: none;
}
.member-map-gate.is-unlocked .member-gate-actions {
  grid-column: 1 / -1;
  grid-template-columns: 1fr auto;
  margin-top: 7px;
}
.member-map-gate.is-unlocked .member-live-btn,
.member-map-gate.is-unlocked .member-secondary-btn {
  min-height: 38px;
  border-radius: 11px;
  font-size: .69rem;
}
.member-user-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 11px;
  color: #d8e8ef;
  font-size: .68rem;
  font-weight: 800;
}
.member-user-row img {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.2);
}
.member-status-error { color: #ffd08f !important; }


.polarsteps-preview {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 72%, rgba(48, 120, 84, .95) 0 11%, transparent 12%),
    radial-gradient(circle at 26% 66%, rgba(61, 149, 102, .88) 0 9%, transparent 10%),
    radial-gradient(circle at 33% 77%, rgba(92, 175, 120, .75) 0 6%, transparent 7%),
    radial-gradient(circle at 57% 42%, rgba(177, 154, 111, .80) 0 14%, transparent 15%),
    radial-gradient(circle at 72% 32%, rgba(109, 123, 98, .55) 0 10%, transparent 11%),
    linear-gradient(180deg, #0a394e 0%, #063145 52%, #042536 100%);
}
.polarsteps-preview::before {
  content: "";
  position: absolute;
  inset: -6%;
  background:
    radial-gradient(circle at 18% 72%, rgba(48, 120, 84, .90) 0 12%, transparent 13%),
    radial-gradient(circle at 26% 66%, rgba(61, 149, 102, .82) 0 10%, transparent 11%),
    radial-gradient(circle at 33% 77%, rgba(92, 175, 120, .70) 0 7%, transparent 8%),
    radial-gradient(circle at 57% 42%, rgba(177, 154, 111, .70) 0 16%, transparent 17%),
    radial-gradient(circle at 72% 32%, rgba(109, 123, 98, .48) 0 12%, transparent 13%),
    linear-gradient(180deg, #0a394e 0%, #063145 52%, #042536 100%);
  filter: blur(18px) saturate(.95);
  transform: scale(1.08);
}
.polarsteps-preview::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(2,12,20,.12), rgba(2,12,20,.42));
}
.polarsteps-preview-art,
.polarsteps-preview-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
}
.preview-route {
  position: absolute;
  border: 2px dashed rgba(255,255,255,.38);
  border-radius: 999px;
  filter: blur(.2px);
}
.preview-route-1 { left: 18%; top: 46%; width: 26%; height: 18%; border-left: 0; border-bottom: 0; transform: rotate(-8deg); }
.preview-route-2 { left: 37%; top: 36%; width: 20%; height: 16%; border-right: 0; border-top: 0; transform: rotate(6deg); }
.preview-route-3 { left: 25%; top: 58%; width: 18%; height: 12%; border-right: 0; border-bottom: 0; transform: rotate(12deg); }
.preview-pin {
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #ff4d6d;
  box-shadow: 0 0 0 5px rgba(255,77,109,.18);
}
.preview-pin::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -6px;
  width: 8px;
  height: 8px;
  background: inherit;
  transform: translateX(-50%) rotate(45deg);
  border-radius: 2px;
}
.preview-pin-1 { left: 28%; top: 61%; }
.preview-pin-2 { left: 36%; top: 54%; }
.preview-pin-3 { left: 44%; top: 48%; }
.preview-pin-4 { left: 32%; top: 72%; background: #59e2ff; box-shadow: 0 0 0 5px rgba(89,226,255,.18); }
.polarsteps-preview-overlay {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 20px;
  pointer-events: none;
}
.polarsteps-preview-overlay > span,
.polarsteps-preview-overlay > strong {
  display: block;
}
.preview-badge {
  margin-bottom: 14px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(5,20,29,.65);
  color: #8fe6ff;
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .14em;
}
.polarsteps-preview-overlay strong {
  max-width: 530px;
  color: #fff;
  font-size: clamp(1.3rem, 3vw, 2.05rem);
  line-height: 1.05;
  letter-spacing: -.03em;
}
.polarsteps-preview-overlay span:last-child {
  max-width: 510px;
  margin-top: 12px;
  color: rgba(231,245,251,.82);
  font-size: .95rem;
  line-height: 1.45;
}
.member-live-btn--polarsteps {
  position: relative;
  font-size: .92rem;
  line-height: 1.3;
  padding: 14px 18px;
  min-height: 58px;
  box-shadow: 0 14px 34px rgba(23,184,218,.28);
}
.member-live-pointer {
  display: inline-block;
  font-size: 1rem;
  animation: pointerPulse 1.5s ease-in-out infinite;
}
@keyframes pointerPulse {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.08); }
}

.countries-block { margin-top: 26px; padding: 18px; border: 1px solid var(--line); background: rgba(13,36,50,.72); border-radius: 22px; }
.countries-title { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 22px; }
.countries-title .eyebrow { margin-bottom: 2px; }
.countries-title strong { font-size: 1rem; }
.countries-note { color: var(--muted); font-size: .72rem; }
.country-region + .country-region { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.country-region h3 { margin: 0 0 11px; font-size: .86rem; letter-spacing: .02em; }
.country-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.country-card { min-width: 0; display: grid; grid-template-columns: 38px minmax(0,1fr); align-items: center; gap: 9px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.07); border-radius: 14px; padding: 9px; transition: opacity .2s ease, border-color .2s ease, background .2s ease; }
.country-card img { width: 38px; height: 25px; object-fit: cover; border-radius: 5px; box-shadow: 0 3px 10px rgba(0,0,0,.28); }
.country-copy { min-width: 0; display: grid; gap: 2px; }
.country-copy strong { overflow: hidden; color: white; font-size: .72rem; line-height: 1.12; text-overflow: ellipsis; }
.country-copy span { color: var(--muted); font-size: .56rem; line-height: 1.15; }
.country-card.visited { background: rgba(46,227,141,.08); border-color: rgba(46,227,141,.24); }
.country-card.visited .country-copy span { color: #83eab8; font-weight: 850; }
.country-card.unvisited { opacity: .55; }
.country-card.unvisited img { filter: grayscale(1) saturate(0); }
.country-card.unvisited .country-copy span { color: #93a3ad; }

.store-section { padding-top: 90px; }
.product-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0 0;
  padding: 0;
  overflow: visible;
}
.product-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 17px;
  background: linear-gradient(145deg,rgba(18,50,68,.98),rgba(8,27,39,.98));
  border: 1px solid var(--line);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  transition: transform .22s ease, border-color .22s ease;
}
.product-card:active { transform: scale(.975); }
.product-media {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #102330;
}
.product-media::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 28%;
  background: linear-gradient(transparent,rgba(5,18,27,.34));
  pointer-events: none;
}
.product-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .3s ease;
}
.product-card:hover .product-media img { transform: scale(1.035); }
.product-badge {
  position: absolute;
  z-index: 1;
  top: 8px;
  left: 8px;
  max-width: calc(100% - 16px);
  padding: 5px 7px;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(135deg,var(--orange),#ff5f4a);
  color: #fff;
  font-size: .52rem;
  font-weight: 950;
  letter-spacing: .06em;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: 0 6px 16px rgba(0,0,0,.22);
}
.product-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 11px;
}
.product-category {
  overflow: hidden;
  color: var(--blue-2);
  font-size: .54rem;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1.15;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.product-content h3 {
  display: -webkit-box;
  margin: 6px 0 5px;
  overflow: hidden;
  font-size: .86rem;
  line-height: 1.15;
  letter-spacing: -.02em;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.product-content p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: .65rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.product-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  margin-top: auto;
  padding-top: 10px;
}
.product-footer strong {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-arrow {
  width: 29px;
  height: 29px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(87,214,237,.12);
  border: 1px solid rgba(87,214,237,.20);
  color: var(--blue-2);
  font-size: .72rem;
  font-weight: 900;
}
.product-empty {
  grid-column: 1 / -1;
  padding: 24px 18px;
  border: 1px dashed rgba(255,255,255,.12);
  border-radius: 17px;
  background: rgba(255,255,255,.035);
  color: var(--muted);
  text-align: center;
  font-size: .78rem;
}

.about-section { padding-top: 90px; }
.about-grid { display: grid; gap: 14px; }
.about-copy-card, .motorhome-card { padding: 26px; background: linear-gradient(145deg,rgba(18,50,68,.93),rgba(8,27,39,.97)); border: 1px solid var(--line); border-radius: var(--radius); }
.mini-label { display: inline-block; color: var(--blue-2); font-size: .68rem; letter-spacing: .14em; font-weight: 900; text-transform: uppercase; }
.about-grid h3 { margin: 12px 0 14px; font-size: clamp(1.65rem,6vw,3.1rem); line-height: 1; letter-spacing: -.04em; }
.about-grid p { color: var(--muted); margin: 0 0 14px; }
.about-grid .about-lead { color: #edf7fb; font-size: 1.08rem; }
.dog-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.dog-tags span { padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.07); border: 1px solid var(--line); font-weight: 800; font-size: .78rem; }
.photo-card { margin: 0; position: relative; min-height: 430px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); }
.photo-card img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.family-photo img { object-position: 47% center; }
.motorhome-photo img { object-position: center 62%; }
.photo-card::after { content: ""; position: absolute; inset: auto 0 0; height: 38%; background: linear-gradient(transparent,rgba(2,13,20,.88)); }
.photo-card figcaption { position: absolute; z-index: 1; left: 18px; bottom: 16px; font-weight: 900; }
.motorhome-facts { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 24px; border-top: 1px solid var(--line); }
.motorhome-facts div { padding: 18px 6px 0; }
.motorhome-facts div + div { border-left: 1px solid var(--line); padding-left: 14px; }
.motorhome-facts strong { display: block; font-size: 1.15rem; }
.motorhome-facts span { color: var(--muted); font-size: .68rem; }

.social-section { padding-bottom: 110px; }
.social-grid { display: grid; gap: 12px; }
.social-card { display: flex; align-items: center; gap: 13px; padding: 16px; border-radius: 20px; border: 1px solid var(--line); background: rgba(13,36,50,.84); }
.social-card > div { flex: 1; }
.social-card strong { display: block; font-size: 1rem; }
.social-card div span { color: var(--muted); font-size: .78rem; }
.social-logo { width: 50px; height: 50px; border-radius: 16px; display: grid; place-items: center; }
.social-logo svg { width: 28px; height: 28px; fill: none; stroke: white; stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.social-logo .fill-dot { fill: white; stroke: none; }
.instagram .social-logo { background: linear-gradient(135deg,#f9ce34,#ee2a7b 52%,#6228d7); }
.youtube .social-logo { background: #ff0033; }
.tiktok .social-logo { background: #111; box-shadow: inset 3px 0 0 #25f4ee, inset -3px 0 0 #fe2c55; }

.footer { border-top: 1px solid var(--line); padding: 34px 18px calc(98px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 22px; color: var(--muted); font-size: .78rem; }
.footer-brand { display: flex; align-items: center; gap: 12px; }
.footer-brand div { display: grid; }
.footer-brand strong { color: white; font-size: 1rem; }
.footer-brand span { font-size: .74rem; }
.footer p { margin: 0; }
.footer-right { display: grid; gap: 8px; }
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 9px;
}
.footer-legal a {
  color: #a8c2cf;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-color: rgba(168,194,207,.42);
  text-underline-offset: 3px;
}
.footer-legal a:hover { color: #fff; }
.footer-legal span { color: #526d7b; }

.mobile-nav { position: fixed; z-index: 1200; left: 10px; right: 10px; bottom: max(10px, env(safe-area-inset-bottom)); height: 68px; display: grid; grid-template-columns: repeat(4,1fr); background: rgba(6,19,29,.88); border: 1px solid rgba(255,255,255,.11); border-radius: 23px; box-shadow: 0 18px 48px rgba(0,0,0,.42); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.mobile-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: #8da5b4; font-size: .62rem; font-weight: 800; }
.mobile-nav a span { font-size: 1.2rem; line-height: 1; }
.mobile-nav a.active { color: var(--blue-2); }

.leaflet-control-attribution { font-size: 8px !important; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #0b2230; color: white; }
.leaflet-popup-content { margin: 12px 14px; font-family: inherit; }
.leaflet-popup-content strong { display: block; margin-bottom: 3px; }
.leaflet-popup-content span { color: #9bb2c1; font-size: .78rem; }

@media (max-width: 719px) {
  .map-shell {
    height: min(74vh, 680px);
    min-height: 530px;
  }

  .map-progress-card {
    top: 10px;
    left: 62px;
    right: 10px;
    max-width: none;
    margin: 0;
    padding: 10px 11px;
    grid-template-columns: minmax(0, 1fr) 36px;
    border-radius: 14px;
  }

  .map-progress-card small {
    font-size: .55rem;
  }

  .map-progress-card strong {
    font-size: .70rem;
    line-height: 1.18;
  }

  .map-progress-card img {
    width: 36px;
    height: 24px;
  }


  .member-map-gate { padding: 14px; }
  .member-gate-card {
    width: min(370px, 100%);
    padding: 20px 16px 17px;
    border-radius: 19px;
  }
  .member-lock { width: 44px; height: 44px; margin-bottom: 10px; }
  .member-gate-card h3 { font-size: 1.4rem; }
  .member-gate-text { font-size: .76rem; }
  .member-legal-links { font-size: .57rem; line-height: 1.4; }
  .youtube-login-btn,
  .member-live-btn,
  .member-join-btn,
  .member-secondary-btn { min-height: 44px; font-size: .76rem; }
  .member-map-gate.is-unlocked {
    top: 8px;
    right: 8px;
    left: 54px;
  }
  .member-map-gate.is-unlocked .member-gate-card {
    width: 100%;
    max-width: none;
  }

  .map-legend {
    top: auto;
    left: 10px;
    right: 10px;
    bottom: 82px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    padding: 8px 7px;
    font-size: .51rem;
    border-radius: 12px;
  }

  .map-legend span {
    justify-content: center;
    gap: 5px;
    min-width: 0;
  }

  .legend-flag {
    width: 15px;
    height: 10px;
  }

  .legend-current {
    width: 9px;
    height: 9px;
  }

  .map-float-card {
    left: 10px;
    right: 10px;
    bottom: 10px;
    min-height: 62px;
    padding: 11px 13px;
  }

  .map-float-card strong {
    font-size: .76rem;
  }

  .map-country-marker {
    width: 76px;
    height: 48px;
  }

  .marker-flag {
    width: 23px;
    height: 15px;
  }

  .marker-flag::before {
    height: 24px;
  }

  .europe-adventure-marker {
    width: 132px;
  }

  .europe-adventure-marker strong {
    font-size: .50rem;
  }

  .leaflet-control-layers {
    margin-top: 8px !important;
  }
}

@media (min-width: 720px) {
  .topbar { padding-inline: 28px; }
  .desktop-nav { display: flex; }
  .header-cta { display: inline-flex; }
  .hero { padding-inline: 30px; min-height: 820px; }
  .hero-stats { max-width: 700px; margin-left: 0; }
  .hero-content { margin-left: 0; }
  .section-heading { flex-direction: row; align-items: end; justify-content: space-between; }
  .section-heading > div { flex: 1; }
  .video-card { display: grid; grid-template-columns: 1.55fr 1fr; align-items: stretch; }
  .video-thumb-wrap { aspect-ratio: 16/10; }
  .video-info { padding: 28px; }
  .countries-title { flex-direction: row; align-items: end; justify-content: space-between; }
  .country-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .product-grid {
    grid-auto-flow: initial;
    grid-auto-columns: initial;
    grid-template-columns: repeat(3,1fr);
    grid-template-rows: auto;
    margin-inline: 0;
    padding-inline: 0;
    overflow: visible;
    scroll-snap-type: none;
  }
  .about-grid { grid-template-columns: repeat(2,1fr); }
  .photo-card { min-height: 560px; }
  .social-grid { grid-template-columns: repeat(3,1fr); }
  .footer { padding-bottom: 38px; flex-direction: row; justify-content: space-between; align-items: center; }
  .footer-right { justify-items: end; text-align: right; }
  .footer-legal { justify-content: flex-end; }
  .mobile-nav { display: none; }
}

@media (min-width: 1040px) {
  .product-grid { grid-template-columns: repeat(4,1fr); }
  .topbar { padding-inline: max(32px,calc((100vw - var(--max))/2)); }
  .hero { padding-inline: max(32px,calc((100vw - var(--max))/2)); }
  .hero-content, .hero-stats { margin-left: 0; }
  .hero-stats { max-width: 740px; }
  .section { padding-block: 105px; }
  .map-shell { min-height: 570px; }
  .map-float-card { left: auto; right: 18px; bottom: 18px; width: 380px; }
  .map-progress-card { top: 18px; right: 18px; max-width: 360px; }
  .map-legend { top: 104px; right: 18px; }
  .about-grid { grid-template-columns: 1.05fr .95fr; grid-template-areas: "copy family" "motorphoto motorcopy"; }
  .about-copy-card { grid-area: copy; min-height: 590px; display: flex; flex-direction: column; justify-content: center; }
  .family-photo { grid-area: family; }
  .motorhome-photo { grid-area: motorphoto; }
  .motorhome-card { grid-area: motorcopy; min-height: 590px; display: flex; flex-direction: column; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}


/* =========================================================
   Fluxo YouTube para confirmação de membros
   ========================================================= */

.member-gate-card-v2 {
  width: min(100%, 640px);
  text-align: left;
}

.member-gate-heading {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 10px;
}

.member-gate-heading .member-lock {
  flex: 0 0 auto;
  margin: 0;
}

.member-gate-heading .member-kicker,
.member-gate-heading h3 {
  text-align: left;
}

.member-gate-heading h3 {
  margin-top: 3px;
}

.access-steps {
  display: grid;
  gap: 0;
  margin: 22px 0 18px;
}

.access-step {
  position: relative;
  display: grid;
  grid-template-columns: 34px 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 82px;
  padding: 13px 14px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 17px;
  background: rgba(6,22,31,.78);
  transition: border-color .2s ease, background .2s ease, opacity .2s ease;
}

.access-step.is-active {
  border-color: rgba(87,214,237,.55);
  background: rgba(10,39,51,.88);
}

.access-step.is-done {
  border-color: rgba(68,214,137,.42);
  background: rgba(8,41,35,.82);
}

.access-step.is-error {
  border-color: rgba(255,176,72,.50);
  background: rgba(55,37,12,.74);
}

.access-step.is-disabled {
  opacity: .48;
}

.access-step-number {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  color: #d9e9ef;
  font-size: .78rem;
  font-weight: 950;
}

.access-step.is-active .access-step-number {
  background: #57d6ed;
  color: #04202a;
}

.access-step.is-done .access-step-number {
  background: #36d080;
  color: #032719;
}

.access-step.is-error .access-step-number {
  background: #ffb047;
  color: #311900;
}

.access-platform-logo {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
}

.access-platform-logo svg {
  width: 27px;
  height: 27px;
  fill: currentColor;
}

.youtube-platform {
  color: #fff;
  background: #e71939;
}


.access-step-copy {
  min-width: 0;
}

.access-step-copy > strong {
  display: block;
  color: #f7fbfd;
  font-size: .82rem;
  line-height: 1.25;
}

.access-step-copy > span {
  display: block;
  margin-top: 3px;
  color: #88a3b2;
  font-size: .65rem;
  line-height: 1.35;
}

.access-step-status {
  justify-self: end;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  color: #8da7b5;
  font-size: .54rem;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.access-step.is-done .access-step-status {
  color: #75e9aa;
  background: rgba(54,208,128,.10);
}

.access-step.is-active .access-step-status {
  color: #8feaff;
  background: rgba(87,214,237,.10);
}

.access-step.is-error .access-step-status {
  color: #ffd08e;
  background: rgba(255,176,71,.10);
}

.access-step-line {
  width: 2px;
  height: 10px;
  margin-left: 29px;
  background: rgba(255,255,255,.12);
}

.access-account {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 7px;
}

.access-account:empty {
  display: none;
}

.access-account img,
.access-account-placeholder {
  width: 21px;
  height: 21px;
  border-radius: 999px;
  object-fit: cover;
}

.access-account-placeholder {
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: .55rem;
  font-weight: 950;
}

.access-account span {
  color: #c8d9e2;
  font-size: .61rem;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-join-youtube-btn {
  width: 100%;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 0;
  border-radius: 14px;
  padding: 11px 16px;
  text-decoration: none;
  font: inherit;
  font-size: .77rem;
  font-weight: 950;
  cursor: pointer;
}





.member-join-youtube-btn {
  color: #fff;
  background: #5865f2;
}

.member-help-link {
  display: block;
  margin: 13px auto 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #a7eafa;
  font: inherit;
  font-size: .65rem;
  font-weight: 900;
  text-decoration: underline;
  text-decoration-color: rgba(167,234,250,.45);
  text-underline-offset: 3px;
  cursor: pointer;
}

.member-help-link:hover {
  color: #fff;
}

.membership-result {
  display: flex;
  align-items: flex-start;
  gap: 4px;
  flex-direction: column;
  margin-top: 12px;
  padding: 11px 13px;
  border-radius: 13px;
  font-size: .65rem;
  line-height: 1.35;
}

.membership-result[hidden] {
  display: none;
}

.membership-result strong {
  color: #fff;
  font-size: .68rem;
}

.membership-result span {
  color: #b7cad3;
}

.membership-result.is-success {
  border: 1px solid rgba(54,208,128,.34);
  background: rgba(23,111,73,.18);
}

.membership-result.is-warning {
  border: 1px solid rgba(255,176,71,.34);
  background: rgba(110,67,15,.18);
}

.member-help-modal[hidden] {
  display: none;
}

.member-help-modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: 20px;
}

.member-help-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(1,8,12,.82);
  backdrop-filter: blur(8px);
}

.member-help-dialog {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  max-height: min(850px, calc(100vh - 34px));
  overflow: auto;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 26px;
  background:
    radial-gradient(circle at 15% 0%, rgba(88,101,242,.16), transparent 300px),
    linear-gradient(180deg,#0d2634 0%,#081a24 100%);
  box-shadow: 0 30px 100px rgba(0,0,0,.55);
  padding: 30px;
}

.member-help-close {
  position: sticky;
  float: right;
  top: 0;
  z-index: 2;
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(5,20,28,.88);
  color: #fff;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
}

.member-help-header {
  padding-right: 46px;
}

.member-help-badge {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(87,214,237,.10);
  color: #70def2;
  font-size: .58rem;
  font-weight: 950;
  letter-spacing: .09em;
}

.member-help-header h2 {
  margin: 10px 0 8px;
  color: #fff;
  font-size: clamp(1.45rem, 4vw, 2rem);
  line-height: 1.1;
  letter-spacing: -.025em;
}

.member-help-header p {
  margin: 0;
  color: #93adba;
  font-size: .78rem;
  line-height: 1.55;
}

.member-help-steps {
  display: grid;
  gap: 12px;
  margin-top: 24px;
}

.member-help-step {
  position: relative;
  display: grid;
  grid-template-columns: 34px 180px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 15px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  background: rgba(4,19,27,.62);
}

.help-step-num {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  align-self: start;
  border-radius: 999px;
  background: #57d6ed;
  color: #05202a;
  font-size: .74rem;
  font-weight: 950;
}

.member-help-step h3 {
  margin: 0;
  color: #fff;
  font-size: .85rem;
}

.member-help-step p {
  margin: 5px 0 0;
  color: #8fa9b7;
  font-size: .68rem;
  line-height: 1.45;
}

.member-help-step p strong {
  color: #dcebf1;
}

.help-illustration {
  min-height: 86px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 15px;
  background: linear-gradient(145deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px;
}

.help-platform-icon {
  width: 39px;
  height: 39px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #fff;
  background: #e71939;
}

.help-platform-icon svg {
  width: 28px;
  height: 28px;
  fill: currentColor;
}


.help-youtube > div,
.help-server > div {
  min-width: 0;
}

.help-youtube strong,
.help-server strong,
.help-final strong {
  display: block;
  color: #fff;
  font-size: .66rem;
}

.help-youtube small,
.help-server small {
  display: block;
  margin-top: 2px;
  color: #8fa8b5;
  font-size: .51rem;
}

.help-check {
  margin-left: auto;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: #35cf7f;
  color: #052317;
  font-size: .75rem;
  font-weight: 950;
}

.help-check.big {
  margin: 0;
  width: 37px;
  height: 37px;
  font-size: 1rem;
}

.help-gear {
  font-size: 1.6rem;
}

.help-menu-mock {
  width: 88px;
  display: grid;
  gap: 6px;
}

.help-menu-mock i {
  display: block;
  height: 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
}

.help-menu-mock i.selected {
  width: 72%;
  background: #5865f2;
}

.help-link-arrow {
  color: #7b96a5;
  font-size: 1.2rem;
  font-weight: 950;
}

.youtube-help-logo {
  background: #e71939;
}

.server-bubble {
  width: 41px;
  height: 41px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #5865f2;
  color: #fff;
  font-size: .7rem;
  font-weight: 950;
}

.help-final {
  flex-direction: column;
}

.help-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  min-height: 34px;
  border: 0;
  border-radius: 10px;
  padding: 7px 10px;
  color: #fff;
  text-decoration: none;
  font: inherit;
  font-size: .61rem;
  font-weight: 950;
  cursor: pointer;
}

.youtube-help-action {
  background: #e71939;
}


.verify-help-action {
  background: #1f95ae;
}

.help-action.is-disabled {
  opacity: .55;
}

.member-help-tip {
  display: grid;
  gap: 4px;
  margin-top: 16px;
  padding: 13px 15px;
  border-left: 3px solid #57d6ed;
  border-radius: 8px 14px 14px 8px;
  background: rgba(87,214,237,.07);
}

.member-help-tip strong {
  color: #fff;
  font-size: .68rem;
}

.member-help-tip span {
  color: #91aab7;
  font-size: .64rem;
  line-height: 1.45;
}

body.modal-open {
  overflow: hidden;
}

@media (max-width: 680px) {
  .member-gate-card-v2 {
    padding: 18px 15px;
  }

  .member-gate-heading {
    align-items: flex-start;
  }

  .access-step {
    grid-template-columns: 30px 36px minmax(0, 1fr);
    gap: 9px;
    padding: 12px 11px;
  }

  .access-platform-logo {
    width: 34px;
    height: 34px;
  }

  .access-step-status {
    grid-column: 3;
    justify-self: start;
    margin-top: 5px;
  }

  .access-step-line {
    margin-left: 25px;
  }

  .member-help-modal {
    padding: 8px;
  }

  .member-help-dialog {
    max-height: calc(100vh - 16px);
    border-radius: 22px;
    padding: 21px 15px 24px;
  }

  .member-help-header {
    padding-right: 35px;
  }

  .member-help-step {
    grid-template-columns: 30px minmax(0,1fr);
    gap: 10px;
    padding: 12px;
  }

  .help-illustration {
    grid-column: 2;
    min-height: 78px;
    width: 100%;
  }

  .member-help-step > div:last-child {
    grid-column: 2;
  }
}


/* =========================================================
   V11 — Cabeçalho do Mapa ao Vivo
   ========================================================= */
.map-live-intro {
  max-width: 980px;
  margin-bottom: 28px;
}

.map-live-intro .eyebrow {
  margin-bottom: 10px;
}

.map-live-intro h2 {
  margin: 0;
  max-width: 950px;
  color: #f7fbfd;
  font-size: clamp(2rem, 6vw, 4.2rem);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.map-members-only {
  margin: 14px 0 0;
  color: var(--blue-2);
  font-size: clamp(.78rem, 2vw, .98rem);
  font-weight: 900;
}

@media (max-width: 719px) {
  .map-live-intro {
    margin-bottom: 20px;
  }

  .map-live-intro h2 {
    font-size: clamp(1.9rem, 9vw, 3rem);
    line-height: 1.06;
  }

  .map-members-only {
    margin-top: 10px;
  }
}


/* =========================================================
   V12 — Mapa ao vivo / acesso membros
   ========================================================= */

.map-live-intro {
  width: min(100%, 980px);
  margin: 0 auto 34px;
  text-align: center;
}

.map-live-title {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  margin: 0 auto 13px;
  color: #f7fbfd;
  font-size: clamp(1.15rem, 2.8vw, 1.55rem);
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.map-live-dot {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border-radius: 999px;
  background: #ff244d;
  box-shadow: 0 0 0 0 rgba(255,36,77,.62);
  animation: bora-live-pulse 1.55s ease-out infinite;
}

@keyframes bora-live-pulse {
  0% {
    transform: scale(.92);
    box-shadow: 0 0 0 0 rgba(255,36,77,.64);
  }
  55% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(255,36,77,0);
  }
  100% {
    transform: scale(.92);
    box-shadow: 0 0 0 0 rgba(255,36,77,0);
  }
}

.map-live-intro h2 {
  margin: 0 auto;
  max-width: 920px;
  color: #eaf3f7;
  font-size: clamp(1.45rem, 4vw, 2.45rem);
  font-weight: 430;
  line-height: 1.24;
  letter-spacing: -.025em;
}

.map-members-only {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 17px;
  color: #e6bd63;
  font-size: clamp(.78rem, 1.8vw, .93rem);
  font-weight: 850;
  text-decoration: none;
  text-underline-offset: 4px;
  transition: color .18s ease, transform .18s ease;
}

.map-members-only:hover {
  color: #ffd979;
  text-decoration: underline;
  transform: translateY(-1px);
}

/* Card centralizado */
.member-gate-card-v2 {
  text-align: center;
}

.member-gate-heading {
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  align-items: center !important;
  gap: 9px !important;
  text-align: center;
}

.member-gate-heading .member-lock {
  margin: 0 auto !important;
}

.member-gate-heading > div {
  width: 100%;
}

.member-gate-heading .member-kicker,
.member-gate-heading h3,
.member-gate-text {
  text-align: center !important;
}

.member-gate-heading h3 {
  margin-left: auto !important;
  margin-right: auto !important;
}

.member-gate-text {
  max-width: 560px;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Continua deixando os passos legíveis à esquerda */
.access-step {
  text-align: left;
}

.membership-result {
  text-align: left;
}

.member-gate-actions {
  width: 100%;
}

/* Quando o endpoint estiver temporariamente indisponível,
   ainda mostramos o login principal normalmente. */
.member-status-fallback {
  margin: 10px auto 0;
  max-width: 520px;
  color: #7f9baa;
  font-size: .61rem;
  line-height: 1.4;
  text-align: center;
}

@media (max-width: 719px) {
  .map-live-intro {
    margin-bottom: 22px;
    padding: 0 6px;
  }

  .map-live-title {
    gap: 9px;
    margin-bottom: 10px;
    font-size: 1rem;
  }

  .map-live-dot {
    width: 10px;
    height: 10px;
    flex-basis: 10px;
  }

  .map-live-intro h2 {
    max-width: 560px;
    font-size: clamp(1.2rem, 6.4vw, 1.8rem);
    font-weight: 420;
    line-height: 1.3;
  }

  .map-members-only {
    margin-top: 13px;
    font-size: .78rem;
  }
}


/* =========================================================
   V14 — Ajustes visuais gerais
   ========================================================= */

/* Redes sociais no topo com PNGs */
.header-socials {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}
.header-socials a {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.10);
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.header-socials a:hover {
  transform: translateY(-2px);
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.18);
}
.header-socials img {
  width: 23px;
  height: 23px;
  object-fit: contain;
}

/* CTA principal do hero em vermelho YouTube */
.hero .btn-primary {
  background: linear-gradient(135deg, #ff1748, #dc1039);
  color: #fff;
  box-shadow: 0 14px 34px rgba(255,23,72,.28);
}
.hero .btn-primary:hover {
  background: linear-gradient(135deg, #ff315c, #ed1645);
}

/* Agora são somente dois indicadores no hero */
.hero-stats {
  grid-template-columns: repeat(2, 1fr);
  max-width: 500px;
}

/* Último vídeo */
.latest-video-heading {
  display: block !important;
  margin-bottom: 30px;
  text-align: center;
}
.latest-video-heading > div {
  width: 100%;
}
.latest-video-heading h2 {
  max-width: none;
  margin-inline: auto;
}
.all-videos-link {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 20px auto 0;
  color: #e7bd62;
  font-size: .94rem;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  text-underline-offset: 4px;
}
.all-videos-link:hover {
  color: #ffdb82;
  text-decoration: underline;
}

/* Mapa ao vivo como título principal */
.map-live-intro {
  max-width: 1080px !important;
  margin-bottom: 38px !important;
}
.map-live-title {
  gap: 14px !important;
  margin-bottom: 16px !important;
  font-size: clamp(2.35rem, 6.2vw, 4.8rem) !important;
  font-weight: 1000 !important;
  line-height: .95;
  letter-spacing: -.035em !important;
}
.map-live-dot {
  width: 17px !important;
  height: 17px !important;
  flex-basis: 17px !important;
}
.map-live-intro h2 {
  max-width: 900px !important;
  font-size: clamp(1.18rem, 2.5vw, 1.72rem) !important;
  font-weight: 390 !important;
  line-height: 1.42 !important;
  letter-spacing: -.015em !important;
  color: #b9ccd6 !important;
}
.map-members-only {
  margin-top: 17px !important;
  color: #e7bd62 !important;
  font-size: clamp(.82rem, 1.7vw, .98rem) !important;
}
.map-members-only:hover {
  color: #ffdc82 !important;
}

/* Link do tutorial mais chamativo */
.member-help-link {
  margin-top: 18px !important;
  font-size: .82rem !important;
  line-height: 1.3;
  color: #b6effb !important;
}
.member-help-link:hover {
  color: #fff !important;
}

/* Centralização garantida de mensagens de acesso/erro */
.member-gate-card-v2,
.member-gate-heading,
.member-gate-heading > div,
.member-gate-heading h3,
.member-gate-heading .member-kicker,
.member-gate-text {
  text-align: center !important;
}
.member-gate-heading {
  align-items: center !important;
}

/* Loja */
.store-heading-centered {
  display: block !important;
  text-align: center;
}
.store-heading-centered > div {
  width: 100%;
}
.store-heading-centered h2 {
  max-width: none;
  margin-inline: auto;
}
.store-heading-centered p {
  max-width: 820px !important;
  margin: 16px auto 0 !important;
  text-align: center;
}

/* A mensagem técnica do fallback foi removida do JS */
.member-status-fallback {
  display: none !important;
}

@media (max-width: 719px) {
  .topbar {
    gap: 10px;
  }
  .brand small {
    display: none;
  }
  .header-socials {
    gap: 5px;
  }
  .header-socials a {
    width: 31px;
    height: 31px;
    border-radius: 10px;
  }
  .header-socials img {
    width: 20px;
    height: 20px;
  }
  .map-live-title {
    gap: 10px !important;
    font-size: clamp(2rem, 11vw, 3.15rem) !important;
  }
  .map-live-dot {
    width: 13px !important;
    height: 13px !important;
    flex-basis: 13px !important;
  }
  .map-live-intro h2 {
    font-size: 1.08rem !important;
    line-height: 1.45 !important;
  }
  .member-help-link {
    font-size: .76rem !important;
  }
}


/* =========================================================
   V16 — Hero sem cards + vídeo sem fallback antigo
   ========================================================= */

.hero-no-stats .hero-layout-spacer {
  width: 100%;
  height: 116px;
  flex: 0 0 116px;
}

.video-card[aria-disabled="true"] {
  cursor: default;
}

.video-card.is-loading,
.video-card.is-error {
  pointer-events: none;
}

.video-thumb-wrap {
  background:
    radial-gradient(circle at 35% 35%, rgba(64,179,210,.10), transparent 38%),
    #0a1d28;
}

.video-loading-placeholder {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  padding: 24px;
  color: #c8dbe5;
  text-align: center;
  background:
    linear-gradient(135deg, rgba(6,22,31,.96), rgba(10,36,48,.96));
}

.video-loading-placeholder[hidden] {
  display: none;
}

.video-loading-placeholder strong {
  font-size: .9rem;
  color: #eef7fb;
}

.video-loading-placeholder span {
  font-size: .68rem;
  color: #88a5b4;
}

.video-loading-spinner {
  width: 32px;
  height: 32px;
  border: 3px solid rgba(255,255,255,.14);
  border-top-color: #55d9f2;
  border-radius: 999px;
  animation: video-spinner .8s linear infinite;
}

@keyframes video-spinner {
  to { transform: rotate(360deg); }
}

.video-card.is-loading .play-button,
.video-card.is-error .play-button,
.video-card.is-loading .video-badge,
.video-card.is-error .video-badge {
  opacity: 0;
}

.video-card.is-loaded .play-button,
.video-card.is-loaded .video-badge {
  opacity: 1;
}

@media (max-width: 719px) {
  .hero-no-stats .hero-layout-spacer {
    height: 92px;
    flex-basis: 92px;
  }
}


/* =========================================================
   V17 — Vídeo mais recente simplificado
   ========================================================= */

.video-card-simple {
  display: block;
  width: min(100%, 1120px);
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 24px;
  background: #0a1f2b;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 24px 60px rgba(0,0,0,.18);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.video-card-simple.is-loaded:hover {
  transform: translateY(-3px);
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 28px 70px rgba(0,0,0,.25);
}

.video-card-simple[aria-disabled="true"] {
  pointer-events: none;
}

.video-thumb-simple {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #071923;
}

.video-thumb-simple img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.video-simple-copy {
  display: grid;
  gap: 10px;
  padding: 22px 26px 25px;
  text-align: center;
}

.video-simple-copy h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.15rem, 2.5vw, 1.8rem);
  line-height: 1.18;
  letter-spacing: -.02em;
}

.video-watch-cta {
  color: #e7bd62;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.video-card-simple.is-error .video-watch-cta {
  opacity: .45;
}

.video-card-simple .video-loading-placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 50% 35%, rgba(64,179,210,.10), transparent 38%),
    #071923;
}

.video-card-simple .video-loading-placeholder[hidden] {
  display: none;
}

@media (max-width: 719px) {
  .video-card-simple {
    border-radius: 18px;
  }

  .video-simple-copy {
    padding: 17px 16px 20px;
  }

  .video-simple-copy h3 {
    font-size: 1.1rem;
  }

  .video-watch-cta {
    font-size: .7rem;
  }
}


/* V18 — link Ver todos os vídeos mantido abaixo do card */
.all-videos-link {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 20px auto 0;
  color: #e7bd62;
  font-size: .94rem;
  font-weight: 900;
  text-align: center;
  text-decoration: none;
  text-underline-offset: 4px;
}

.all-videos-link:hover {
  color: #ffdb82;
  text-decoration: underline;
}

/* =========================================================
   V22 — Sucesso de membro sobre a prévia desfocada
   O mapa do site NUNCA vira o mapa ao vivo. Após a validação,
   mostramos apenas uma confirmação central e o link PolarSteps.
   ========================================================= */
.member-map-gate.is-success-view {
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  padding: 24px !important;
  background: rgba(4, 18, 27, .18) !important;
  pointer-events: auto !important;
}

.member-map-gate.is-success-view .member-gate-card,
.member-map-gate.is-success-view .member-gate-card-v2 {
  width: min(760px, 94%) !important;
  max-width: 760px !important;
  min-height: 0 !important;
  padding: 34px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px !important;
  text-align: center !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: auto !important;
}

.member-map-gate.is-success-view .member-gate-heading {
  display: block !important;
  width: 100% !important;
}

.member-map-gate.is-success-view .member-lock,
.member-map-gate.is-success-view .member-kicker,
.member-map-gate.is-success-view .member-gate-text,
.member-map-gate.is-success-view .access-steps,
.member-map-gate.is-success-view .membership-result,
.member-map-gate.is-success-view .member-help-link,
.member-map-gate.is-success-view .member-legal-links,
.member-map-gate.is-success-view .member-gate-note {
  display: none !important;
}

.member-map-gate.is-success-view #memberGateTitle {
  display: block !important;
  margin: 0 !important;
  color: #45df8f !important;
  font-size: clamp(1.7rem, 4vw, 3rem) !important;
  font-weight: 1000 !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
  text-align: center !important;
  text-shadow: 0 3px 24px rgba(0, 0, 0, .38) !important;
}

.member-map-gate.is-success-view .member-gate-actions {
  width: auto !important;
  margin: 2px 0 0 !important;
  display: block !important;
}

.member-success-live-link {
  display: inline-block;
  padding: 6px 4px;
  color: #fff !important;
  font-size: clamp(1rem, 2vw, 1.35rem);
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  text-shadow: 0 2px 18px rgba(0, 0, 0, .55);
  transition: opacity .18s ease, transform .18s ease;
}

.member-success-live-link:hover {
  opacity: .82;
  transform: translateY(-1px);
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media (max-width: 719px) {
  .member-map-gate.is-success-view {
    padding: 18px !important;
  }

  .member-map-gate.is-success-view .member-gate-card,
  .member-map-gate.is-success-view .member-gate-card-v2 {
    width: 100% !important;
    padding: 24px 12px !important;
  }

  .member-map-gate.is-success-view #memberGateTitle {
    font-size: clamp(1.45rem, 8vw, 2.2rem) !important;
  }

  .member-success-live-link {
    font-size: .96rem;
  }
}


/* V24 — clareza para OAuth/Google e saída da conta */
.app-purpose-section { padding-top: 18px; padding-bottom: 18px; }
.app-purpose-card {
  max-width: 1050px; margin: 0 auto; padding: 28px 32px;
  border: 1px solid rgba(133, 205, 230, .16); border-radius: 24px;
  background: rgba(8, 29, 40, .72); text-align: center;
}
.app-purpose-card h2 { margin: 7px 0 10px; font-size: clamp(1.45rem, 3vw, 2.25rem); }
.app-purpose-card > p:not(.eyebrow) { max-width: 850px; margin: 0 auto; color: #c7d5dc; line-height: 1.65; }
.app-purpose-card .app-purpose-note { margin-top: 10px !important; font-size: .9rem; color: #91a8b4 !important; }
.app-purpose-card a { color: #bfeeff; font-weight: 700; }
.member-map-gate.is-success-view .member-gate-actions { display: flex !important; flex-direction: column; align-items: center; gap: 8px; }
.member-success-logout { color: #b8c8cf !important; font-size: .88rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; opacity: .9; }
.member-success-logout:hover { color: #fff !important; opacity: 1; }
@media (max-width: 719px) { .app-purpose-card { padding: 22px 18px; border-radius: 20px; } }

/* V27 — Google OAuth: finalidade e identidade do app visíveis junto à área de membros */
.oauth-purpose-inline {
  max-width: 920px; margin: 18px auto 16px; padding: 16px 18px;
  border: 1px solid rgba(81,211,238,.22); border-radius: 18px;
  background: rgba(8,27,36,.58); text-align: center;
}
.oauth-purpose-inline strong { display:block; color:#f4fbff; font-size:1.08rem; margin-bottom:7px; }
.oauth-purpose-inline p { margin:0 auto 7px; max-width:850px; color:#c7d5dc; line-height:1.55; font-size:.94rem; }
.oauth-purpose-inline span { color:#91a8b4; font-size:.82rem; }
.oauth-purpose-inline a { color:#bfeeff; font-weight:700; }
@media (max-width:719px) { .oauth-purpose-inline { padding:14px; } .oauth-purpose-inline p { font-size:.9rem; } }


/* V28 — identidade pública do aplicativo para Google OAuth */
.oauth-brand-identity {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0 0 .55rem;
  font-size: .82rem;
  line-height: 1.2;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: rgba(255,255,255,.92);
}
.oauth-brand-identity strong { font-size: 1rem; letter-spacing: .02em; color: #fff; }
.oauth-brand-identity span { color: #55d9ef; font-weight: 800; }
@media (max-width: 640px) {
  .oauth-brand-identity { flex-wrap: wrap; gap: .25rem .45rem; font-size: .68rem; }
  .oauth-brand-identity strong { font-size: .82rem; }
}


/* V33 — Polarsteps incorporado dentro do Bora Juntos para membros verificados */
.polarsteps-member-embed {
  position: absolute;
  inset: 0;
  z-index: 900;
  background: #07151e;
}
.polarsteps-member-embed[hidden] { display: none !important; }
.polarsteps-member-embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #07151e;
}
.polarsteps-logout {
  position: absolute;
  z-index: 910;
  top: 14px;
  right: 14px;
  padding: 9px 13px;
  border-radius: 12px;
  color: #fff !important;
  background: rgba(5,20,29,.88);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
}
.polarsteps-logout:hover { background: rgba(10,36,50,.96); }
@media (max-width: 719px) {
  .polarsteps-logout { top: 10px; right: 10px; padding: 8px 11px; font-size: .76rem; }
}

/* V41: iframe Polarsteps nunca aparece antes da verificacao positiva */
#polarstepsMemberEmbed[hidden]{display:none !important;}

/* V42 - fail closed: Polarsteps só é exibido após resposta member=true */
#polarstepsMemberEmbed[hidden],
#polarstepsMemberEmbed.is-gate-locked {
  display: none !important;
}


/* V46 — fallback temporário de verificação via Discord */
.discord-platform { background:#5865f2 !important; color:#fff; }
.discord-platform svg { width:27px; height:27px; fill:currentColor; }
.discord-login-btn, .member-join-discord-btn {
  min-height:54px; display:flex; align-items:center; justify-content:center; gap:10px;
  width:100%; border-radius:14px; text-decoration:none; font-weight:800;
  background:#5865f2; color:#fff; border:1px solid rgba(255,255,255,.08);
  box-shadow:0 12px 30px rgba(88,101,242,.2);
}
.discord-login-btn:hover, .member-join-discord-btn:hover { filter:brightness(1.08); transform:translateY(-1px); }
.discord-login-icon { font-size:20px; line-height:1; }
.member-join-discord-btn { background:#4450c7; }
.access-step.is-disabled { opacity:.45; }
.access-step.is-error { border-color:rgba(255,111,128,.4); }

.is-disabled-login {
  opacity: .52;
  cursor: not-allowed;
  filter: grayscale(.15);
  box-shadow: none !important;
}
.member-help-open { overflow: hidden; }


/* =========================================================
   V48 — mapa próprio Bora Juntos via Traccar GPS
   ========================================================= */
.member-map-visual.is-unlocked {
  filter: none !important;
  transform: none !important;
  pointer-events: auto !important;
  user-select: auto !important;
}
.member-map-visual.is-unlocked #map {
  pointer-events: auto !important;
}
#map.is-live-map .map-country-marker,
#map.is-live-map .europe-adventure-marker,
#map.is-live-map .current-marker {
  display: none !important;
}
#map.is-live-map + .map-progress-card,
.member-map-visual.is-unlocked .map-progress-card,
.member-map-visual.is-unlocked .map-legend {
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
}
.map-progress-card,
.map-legend { transition: opacity .25s ease, transform .25s ease; }

.live-map-topbar {
  position: absolute;
  z-index: 850;
  top: 14px;
  right: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.live-map-topbar[hidden] { display: none !important; }
.live-map-status,
.live-map-logout {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,.17);
  background: rgba(5,20,29,.88);
  color: #fff !important;
  box-shadow: 0 8px 28px rgba(0,0,0,.24);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  font-size: .78rem;
  font-weight: 850;
  text-decoration: none;
}
.live-map-status i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #35e58c;
  box-shadow: 0 0 0 5px rgba(53,229,140,.12);
}
.live-map-logout:hover { background: rgba(10,36,50,.97); }

.member-map-visual.is-unlocked .map-float-card {
  z-index: 840;
  min-width: min(390px, calc(100% - 32px));
  background: rgba(5,20,29,.91);
  border-color: rgba(255,255,255,.17);
  box-shadow: 0 16px 40px rgba(0,0,0,.28);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.map-float-card > div { display: grid; gap: 2px; }
.live-map-updated { color: #91a8b4; font-size: .68rem; font-weight: 650; }

.live-motorhome-wrapper,
.live-start-wrapper { background: transparent !important; border: 0 !important; }
.live-motorhome-marker {
  position: relative;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ff3b55;
  border: 4px solid #fff;
  box-shadow: 0 5px 20px rgba(0,0,0,.35), 0 0 0 6px rgba(255,59,85,.17);
  font-size: 21px;
  transform: translateY(-4px);
}
.live-motorhome-marker i {
  position: absolute;
  bottom: -8px;
  width: 11px;
  height: 11px;
  background: #ff3b55;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  transform: rotate(45deg);
  z-index: -1;
}
.live-start-marker {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 4px solid #ff3b55;
  box-shadow: 0 3px 12px rgba(0,0,0,.3);
}

.member-map-visual.is-unlocked .leaflet-control-zoom,
.member-map-visual.is-unlocked .leaflet-control-layers {
  border: 0 !important;
  box-shadow: 0 8px 25px rgba(0,0,0,.2) !important;
}
.member-map-visual.is-unlocked .leaflet-bar a,
.member-map-visual.is-unlocked .leaflet-control-layers-toggle {
  background-color: rgba(255,255,255,.94) !important;
}

@media (max-width: 719px) {
  .live-map-topbar { top: 10px; right: 10px; }
  .live-map-status { display: none; }
  .live-map-logout { min-height: 36px; padding: 7px 10px; font-size: .72rem; }
  .member-map-visual.is-unlocked .map-float-card {
    left: 12px;
    right: 12px;
    bottom: 12px;
    min-width: 0;
    width: auto;
  }
}


/* =========================================================
   V49 — correções do mapa próprio
   ========================================================= */
#memberMapGate[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.member-map-shell {
  position: relative !important;
  overflow: hidden !important;
}

.member-map-visual.is-unlocked {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 20 !important;
}

.member-map-visual.is-unlocked #map {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
}

.member-map-visual.is-unlocked .map-float-card {
  z-index: 700 !important;
}

.member-map-visual.is-unlocked .live-map-topbar {
  z-index: 720 !important;
}

.member-map-visual.is-unlocked .leaflet-control-container {
  position: relative;
  z-index: 650 !important;
}

.member-map-visual.is-unlocked .leaflet-pane {
  z-index: auto;
}

/* Não deixa estilos antigos da tela de sucesso vazarem para o mapa aberto */
.member-map-shell:has(.member-map-visual.is-unlocked) .member-map-gate {
  display: none !important;
  pointer-events: none !important;
}

/* Cartão do GPS não ocupa metade da tela */
.member-map-visual.is-unlocked .map-float-card {
  left: 18px !important;
  right: auto !important;
  bottom: 18px !important;
  width: min(430px, calc(100% - 36px)) !important;
  min-width: 0 !important;
}

@media (max-width: 719px) {
  .member-map-visual.is-unlocked .map-float-card {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    width: auto !important;
  }
}


/* =========================================================
   V50 — rota histórica + nomes + 24h de delay
   ========================================================= */
.live-current-place {
  position: absolute;
  z-index: 715;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  min-width: 250px;
  max-width: calc(100% - 390px);
  padding: 10px 18px 11px;
  text-align: center;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.17);
  background: rgba(5,20,29,.91);
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  pointer-events: none;
}
.live-current-place small {
  display: block;
  color: #ffc54d;
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .13em;
}
.live-current-place strong {
  display: block;
  margin-top: 2px;
  color: #fff;
  font-size: 1rem;
  line-height: 1.2;
}
.live-current-place span {
  display: block;
  margin-top: 2px;
  color: #9db1bb;
  font-size: .65rem;
  font-weight: 650;
}

.historical-city-wrapper {
  background: transparent !important;
  border: 0 !important;
  overflow: visible !important;
}
.historical-city-marker {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.9));
  pointer-events: auto;
}
.historical-city-marker i {
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(4,18,27,.8);
  box-shadow: 0 0 0 2px rgba(255,255,255,.16);
}
.historical-city-marker span {
  padding: 2px 5px;
  border-radius: 6px;
  background: rgba(4,18,27,.68);
  color: rgba(255,255,255,.92);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.15;
}
.historical-city-marker.is-major i {
  width: 9px;
  height: 9px;
  flex-basis: 9px;
  background: #fff;
  border: 2px solid #ff4f68;
}
.historical-city-marker.is-major span {
  font-size: 11px;
  color: #fff;
  background: rgba(4,18,27,.84);
}

/* No mapa liberado, os marcadores antigos de países do site ficam escondidos.
   Os nomes/fronteiras agora vêm da camada de referência do mapa. */
#map.is-live-map .country-marker-wrapper {
  display: none !important;
}

.member-map-visual.is-unlocked .map-float-card {
  width: min(480px, calc(100% - 36px)) !important;
}
.member-map-visual.is-unlocked .map-float-card strong {
  font-size: .88rem;
}
.member-map-visual.is-unlocked .live-map-updated {
  margin-top: 2px;
}

@media (max-width: 900px) {
  .live-current-place {
    top: 12px;
    left: 86px;
    right: 125px;
    transform: none;
    min-width: 0;
    max-width: none;
  }
}
@media (max-width: 719px) {
  .live-current-place {
    top: 8px;
    left: 64px;
    right: 74px;
    padding: 7px 8px 8px;
    border-radius: 12px;
  }
  .live-current-place small { font-size: .55rem; }
  .live-current-place strong { font-size: .78rem; }
  .live-current-place span { display: none; }

  .historical-city-marker span {
    display: none;
  }
  .historical-city-marker.is-major span {
    display: inline-block;
    font-size: 9px;
  }
}


/* =========================================================
   V51 — experiência de viagem estilo Polarsteps, responsiva
   ========================================================= */
.member-map-visual.is-unlocked .map-progress-card,
.member-map-visual.is-unlocked .map-legend { display:none !important; }

.live-current-place {
  top: 12px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(370px, calc(100% - 430px));
  max-width: 370px !important;
  min-width: 245px;
  pointer-events: none;
}
.live-current-place > span { display:flex !important; justify-content:center; align-items:center; gap:7px; margin-top:4px; }
.live-pulse-row i { width:8px; height:8px; border-radius:50%; background:#ff405b; box-shadow:0 0 0 0 rgba(255,64,91,.55); animation:livePulse 1.5s infinite; }
.live-pulse-row b { color:#ff667b; font-size:.66rem; letter-spacing:.08em; }
.live-pulse-row em { color:#91a8b4; font-style:normal; font-size:.62rem; font-weight:700; }
@keyframes livePulse { 0%{box-shadow:0 0 0 0 rgba(255,64,91,.55)} 70%{box-shadow:0 0 0 8px rgba(255,64,91,0)} 100%{box-shadow:0 0 0 0 rgba(255,64,91,0)} }

.trip-stat-pill {
  position:absolute; z-index:710; top:78px; left:50%; transform:translateX(-50%);
  display:flex; align-items:stretch; border-radius:17px; overflow:hidden;
  background:rgba(4,18,27,.91); border:1px solid rgba(255,255,255,.15); box-shadow:0 12px 34px rgba(0,0,0,.26);
  backdrop-filter:blur(15px); -webkit-backdrop-filter:blur(15px);
}
.trip-stat-pill > div { min-width:112px; padding:10px 13px; display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; column-gap:7px; align-items:center; }
.trip-stat-pill > div + div { border-left:1px solid rgba(255,255,255,.09); }
.trip-stat-pill .stat-icon { grid-row:1 / 3; color:#51d5f2; font-size:1rem; }
.trip-stat-pill strong { color:#fff; font-size:.94rem; line-height:1; }
.trip-stat-pill small { color:#9eb0ba; font-size:.59rem; margin-top:3px; white-space:nowrap; }

.route-legend-mini { position:absolute; z-index:720; left:12px; top:120px; }
.route-legend-toggle { width:44px; height:44px; border:1px solid rgba(255,255,255,.18); border-radius:13px; background:rgba(4,18,27,.9); color:#fff; font-size:.68rem; font-weight:900; cursor:pointer; box-shadow:0 8px 25px rgba(0,0,0,.2); }
.route-legend-popover { position:absolute; top:51px; left:0; width:190px; padding:11px; border-radius:14px; background:rgba(4,18,27,.94); border:1px solid rgba(255,255,255,.14); display:none; gap:7px; box-shadow:0 12px 30px rgba(0,0,0,.28); }
.route-legend-mini.is-open .route-legend-popover { display:grid; }
.route-legend-popover span { display:flex; align-items:center; gap:8px; color:#dce7ec; font-size:.66rem; font-weight:750; }
.route-legend-popover i { width:25px; height:4px; border-radius:4px; background:repeating-linear-gradient(90deg,var(--c) 0 4px,transparent 4px 8px); }

.major-map-label-wrapper { background:transparent!important; border:0!important; overflow:visible!important; pointer-events:none!important; }
.major-map-label-wrapper span { display:block; width:max-content; transform:translateX(-50%); color:#fff; font-size:13px; line-height:1; font-weight:900; text-shadow:0 1px 2px #06151e,0 0 4px #06151e,0 0 9px #06151e; }

.polar-step-wrapper { background:transparent!important; border:0!important; overflow:visible!important; }
.polar-step-dot,.polar-step-photo { position:relative; display:grid; place-items:center; padding:0; cursor:pointer; border-radius:50%; border:3px solid #fff; box-shadow:0 4px 13px rgba(0,0,0,.4); background:#0a2432; color:#fff; }
.polar-step-dot { width:20px;height:20px; }
.polar-step-dot span { font-size:7px;font-weight:950; }
.polar-step-photo { width:44px;height:44px;background-size:cover;background-position:center; }
.polar-step-photo span { position:absolute; right:-5px; bottom:-5px; min-width:16px; height:16px; padding:0 3px; display:grid; place-items:center; border-radius:999px; background:#ff405b; border:2px solid #fff; font-size:7px; font-weight:950; }

.steps-rail { position:absolute; z-index:705; left:50%; bottom:10px; transform:translateX(-50%); width:min(760px,calc(100% - 500px)); display:flex; gap:8px; padding:7px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; border-radius:18px; background:rgba(4,18,27,.78); border:1px solid rgba(255,255,255,.1); backdrop-filter:blur(13px); -webkit-backdrop-filter:blur(13px); }
.steps-rail::-webkit-scrollbar{display:none}
.steps-rail-item { flex:0 0 92px; min-width:0; padding:0 3px 4px; border:0; background:transparent; color:#fff; cursor:pointer; text-align:center; scroll-snap-align:center; }
.steps-rail-thumb { width:48px;height:48px;margin:0 auto 4px;display:grid;place-items:center;border-radius:50%;background:#0a2735 center/cover no-repeat;border:2px solid #fff;box-shadow:0 3px 9px rgba(0,0,0,.3);font-size:17px; }
.steps-rail-item b { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.62rem; }
.steps-rail-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#91a8b4; font-size:.52rem; margin-top:1px; }

.step-drawer { position:absolute; z-index:850; right:14px; bottom:94px; width:265px; min-height:88px; display:grid; grid-template-columns:90px 1fr; overflow:hidden; border-radius:17px; background:rgba(4,18,27,.95); border:1px solid rgba(255,255,255,.15); box-shadow:0 16px 38px rgba(0,0,0,.35); }
.step-drawer[hidden]{display:none!important}.step-drawer-close{position:absolute;right:7px;top:5px;z-index:2;width:26px;height:26px;border:0;border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:18px;cursor:pointer}.step-drawer-media{min-height:88px;background:#0a2635;display:grid;place-items:center;font-size:28px}.step-drawer-media img{width:100%;height:100%;min-height:88px;object-fit:cover}.step-drawer-copy{padding:15px 12px;display:grid;align-content:center;min-width:0}.step-drawer-copy small{color:#51d5f2;font-size:.55rem;font-weight:950;letter-spacing:.09em}.step-drawer-copy strong{margin-top:3px;font-size:.84rem;white-space:normal}.step-drawer-copy span{margin-top:2px;color:#93a8b3;font-size:.64rem}

/* Remove city-name clutter from historical steps: map labels are now the map layer + major city labels. */
.historical-city-wrapper { display:none!important; }

/* Bottom GPS card becomes compact, like a status chip. */
.member-map-visual.is-unlocked .map-float-card { left:14px!important; right:auto!important; bottom:12px!important; width:270px!important; padding:10px 12px!important; border-radius:14px!important; }
.member-map-visual.is-unlocked .map-float-card strong{font-size:.72rem!important}.member-map-visual.is-unlocked .live-map-updated{font-size:.56rem!important}

/* MOBILE — every control adapts to available width, no clipping. */
@media (max-width: 719px) {
  .member-map-shell { min-height: 74svh !important; height: 74svh !important; max-height: 760px; overflow:hidden!important; }
  .member-map-visual.is-unlocked { inset:0!important; }
  .live-map-topbar { top:8px!important; right:8px!important; left:auto!important; gap:5px!important; max-width:42%; }
  .live-map-logout { min-width:0!important; max-width:100%; height:34px!important; min-height:34px!important; padding:6px 9px!important; border-radius:10px!important; font-size:.6rem!important; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .live-current-place { top:8px!important; left:50%!important; right:auto!important; transform:translateX(-50%)!important; width:45%!important; min-width:0!important; max-width:45%!important; padding:6px 7px!important; border-radius:11px!important; }
  .live-current-place small{font-size:.47rem!important}.live-current-place strong{font-size:.66rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-pulse-row{margin-top:2px!important;gap:4px!important}.live-pulse-row i{width:6px;height:6px}.live-pulse-row b{font-size:.48rem}.live-pulse-row em{display:none}
  .trip-stat-pill { top:51px; left:50%; transform:translateX(-50%); width:calc(100% - 86px); max-width:390px; border-radius:12px; }
  .trip-stat-pill > div { flex:1 1 0; min-width:0; padding:7px 5px; grid-template-columns:auto; grid-template-rows:auto auto; text-align:center; column-gap:0; }
  .trip-stat-pill .stat-icon { display:none; }
  .trip-stat-pill strong { font-size:.7rem; }
  .trip-stat-pill small { font-size:.46rem; overflow:hidden; text-overflow:ellipsis; }
  .route-legend-mini { top:96px; left:8px; }.route-legend-toggle{width:36px;height:36px;border-radius:10px;font-size:.56rem}.route-legend-popover{width:165px;top:42px}
  .member-map-visual.is-unlocked .leaflet-top.leaflet-left { top:89px!important; left:0!important; }
  .member-map-visual.is-unlocked .leaflet-control-zoom a{width:34px!important;height:34px!important;line-height:34px!important}.member-map-visual.is-unlocked .leaflet-control-layers{display:none!important}
  .steps-rail { left:7px; right:7px; bottom:7px; transform:none; width:auto; gap:4px; padding:5px; border-radius:13px; }
  .steps-rail-item { flex-basis:70px; }.steps-rail-thumb{width:36px;height:36px}.steps-rail-item b{font-size:.52rem}.steps-rail-item small{display:none}
  .member-map-visual.is-unlocked .map-float-card { display:none!important; }
  .step-drawer { left:8px; right:8px; bottom:73px; width:auto; grid-template-columns:76px 1fr; min-height:76px; }.step-drawer-media,.step-drawer-media img{min-height:76px}
  .major-map-label-wrapper span{font-size:10px}
  .polar-step-photo{width:36px;height:36px}.polar-step-photo span{right:-4px;bottom:-4px}.polar-step-dot{width:18px;height:18px}

  /* Membership cards/buttons: prevent old fixed widths from clipping offscreen. */
  .member-map-gate, .member-map-gate * { box-sizing:border-box; min-width:0; }
  .member-map-gate { width:calc(100% - 14px)!important; max-width:none!important; left:7px!important; right:7px!important; transform:none!important; padding:10px!important; overflow-y:auto!important; overflow-x:hidden!important; }
  .member-access-card,.member-access-actions,.member-access-step,.member-access-success { width:100%!important; max-width:100%!important; min-width:0!important; }
  .member-access-actions { display:grid!important; grid-template-columns:1fr!important; gap:7px!important; }
  .member-live-btn,.member-secondary-btn,.member-access-btn,.member-access-actions button,.member-access-actions a { width:100%!important; max-width:100%!important; min-width:0!important; white-space:normal!important; overflow-wrap:anywhere!important; padding-left:10px!important; padding-right:10px!important; }
}


/* =========================================================
   V52 — correções do mapa: layout, rota branca, fotos e pin
   ========================================================= */

/* Remove o botão/legenda antigo de cores: agora a rota é toda branca. */
.route-legend-mini { display: none !important; }

/* Camadas do topo sem colisão. */
.live-map-topbar {
  top: 12px !important;
  right: 12px !important;
  left: auto !important;
  max-width: 310px !important;
  z-index: 760 !important;
}
.live-current-place {
  top: 12px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(300px, calc(100% - 650px)) !important;
  min-width: 230px !important;
  max-width: 300px !important;
  z-index: 750 !important;
}
.trip-stat-pill {
  top: 88px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 745 !important;
}

/* O cartão inferior esquerdo fica compacto e não parece um erro gigante. */
.member-map-visual.is-unlocked .map-float-card {
  left: 14px !important;
  right: auto !important;
  bottom: 14px !important;
  width: min(310px, calc(100% - 28px)) !important;
  min-width: 0 !important;
  z-index: 735 !important;
}

/* Pin vermelho do motorhome. */
.live-motorhome-wrapper {
  background: transparent !important;
  border: 0 !important;
  overflow: visible !important;
}
.live-motorhome-marker {
  position: relative;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 50% 50% 50% 8px;
  transform: rotate(-45deg);
  background: #ff405b;
  border: 4px solid #fff;
  box-shadow: 0 7px 22px rgba(0,0,0,.38), 0 0 0 6px rgba(255,64,91,.16);
}
.live-motorhome-marker > span {
  transform: rotate(45deg);
  font-size: 21px;
  line-height: 1;
}
.live-motorhome-marker > i { display: none; }

/* Fotos dos steps ficam mais visíveis e crescem suavemente ao aproximar. */
.polar-step-photo,
.polar-step-dot {
  transition: transform .18s ease, box-shadow .18s ease !important;
  will-change: transform;
}
.polar-step-photo {
  width: 50px !important;
  height: 50px !important;
  border-width: 3px !important;
}
.polar-step-photo:hover {
  transform: scale(1.5) !important;
  z-index: 20;
  box-shadow: 0 8px 25px rgba(0,0,0,.55);
}

/* Rota: pontos brancos com contorno escuro. */
.leaflet-overlay-pane path {
  vector-effect: non-scaling-stroke;
}

/* Desktop: deixa espaço entre controles do Leaflet e cartões do topo. */
@media (min-width: 720px) {
  .member-map-visual.is-unlocked .leaflet-top.leaflet-left {
    top: 0 !important;
  }
}

/* Tablet */
@media (max-width: 980px) and (min-width: 720px) {
  .live-current-place {
    width: 260px !important;
    min-width: 220px !important;
  }
  .live-map-topbar {
    max-width: 250px !important;
  }
  .trip-stat-pill > div {
    min-width: 96px !important;
    padding: 9px 10px !important;
  }
}

/* Mobile: cartões empilhados sem cortar botões/conteúdo. */
@media (max-width: 719px) {
  .live-map-topbar {
    top: 8px !important;
    right: 8px !important;
    max-width: 36% !important;
  }
  .live-map-status { display: none !important; }
  .live-map-logout {
    width: auto !important;
    max-width: 100% !important;
  }

  .live-current-place {
    top: 8px !important;
    left: 8px !important;
    right: 39% !important;
    transform: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .trip-stat-pill {
    top: 58px !important;
    left: 8px !important;
    right: 8px !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
  }

  .member-map-visual.is-unlocked .leaflet-top.leaflet-left {
    top: 104px !important;
  }

  .polar-step-photo {
    width: 40px !important;
    height: 40px !important;
  }
}


/* =========================================================
   V53 — POLARSTEPS MOBILE POLISH
   ========================================================= */

/* Esconde somente + / -; o controle de camadas continua. */
.member-map-visual.is-unlocked .leaflet-control-zoom {
  display: none !important;
}

/* Drawer de local: só nome e país. */
#stepDrawerIndex,
.step-drawer-copy small {
  display: none !important;
}
.step-drawer-copy strong {
  margin-top: 0 !important;
  font-size: .9rem !important;
}
.step-drawer-copy span {
  margin-top: 3px !important;
  font-size: .68rem !important;
}
.step-drawer-close {
  z-index: 50 !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}

/* Timeline inferior no estilo Polarsteps. */
.steps-timeline-shell {
  position: absolute;
  z-index: 706;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  width: min(760px, calc(100% - 390px));
  min-width: 390px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 19px;
  background: rgba(4,18,27,.92);
  box-shadow: 0 14px 35px rgba(0,0,0,.32);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
}

.steps-timeline-header {
  height: 34px;
  display: grid;
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.steps-time-copy {
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 8px;
}
.steps-time-copy strong {
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}
.steps-time-copy small {
  color: #79909c;
  font-size: .57rem;
  font-weight: 750;
}

.steps-nav-btn {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  touch-action: manipulation;
}
.steps-nav-btn:hover {
  background: rgba(255,255,255,.07);
}
.steps-nav-prev {
  border-right: 1px solid rgba(255,255,255,.07);
}
.steps-nav-next {
  border-left: 1px solid rgba(255,255,255,.07);
}

.steps-timeline-shell .steps-rail {
  position: static !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 80px;
  padding: 7px 44%;
  display: flex;
  align-items: center;
  gap: 14px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  cursor: grab;
  touch-action: pan-x;
}
.steps-timeline-shell .steps-rail::-webkit-scrollbar {
  display: none;
}
.steps-timeline-shell .steps-rail.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto;
}

.steps-timeline-shell .steps-rail-item {
  flex: 0 0 72px !important;
  width: 72px !important;
  min-width: 72px !important;
  scroll-snap-align: center;
  opacity: .62;
  transform: scale(.92);
  transition: opacity .18s ease, transform .18s ease;
}
.steps-timeline-shell .steps-rail-item.is-active {
  opacity: 1;
  transform: scale(1.06);
}
.steps-timeline-shell .steps-rail-item.is-active .steps-rail-thumb {
  box-shadow:
    0 0 0 3px rgba(81,213,242,.25),
    0 4px 15px rgba(0,0,0,.4);
}

/* Drawer fica acima da timeline. */
.step-drawer {
  bottom: 132px !important;
}

/* MOBILE */
@media (max-width: 719px) {
  /* "Estamos em" centralizado de verdade no viewport do mapa. */
  .live-current-place {
    top: 8px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: min(58%, 250px) !important;
    min-width: 190px !important;
    max-width: 250px !important;
  }

  .live-map-topbar {
    top: 8px !important;
    right: 8px !important;
    left: auto !important;
    max-width: 30% !important;
  }

  .trip-stat-pill {
    top: 62px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 24px) !important;
    max-width: 430px !important;
  }

  /* Só o botão Camadas fica à esquerda, abaixo do resumo. */
  .member-map-visual.is-unlocked .leaflet-top.leaflet-left {
    top: 112px !important;
  }

  .steps-timeline-shell {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    transform: none !important;
    width: auto !important;
    min-width: 0 !important;
    border-radius: 16px;
  }

  .steps-timeline-header {
    height: 38px;
    grid-template-columns: 48px 1fr 48px;
  }

  .steps-timeline-shell .steps-rail {
    height: 86px;
    padding-left: calc(50% - 36px) !important;
    padding-right: calc(50% - 36px) !important;
    gap: 18px;
  }

  .step-drawer {
    left: 10px !important;
    right: 10px !important;
    bottom: 145px !important;
    width: auto !important;
    max-width: none !important;
  }

  /* O status inferior esquerdo não disputa espaço com a timeline no celular. */
  .member-map-visual.is-unlocked .map-float-card {
    display: none !important;
  }
}


/* =========================================================
   V54 — correções finais do mini mapa
   ========================================================= */

/* Logout vermelho, uma linha só. */
.live-map-logout {
  background: #e84155 !important;
  border-color: rgba(255,255,255,.22) !important;
  color: #fff !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  line-height: 1 !important;
  padding: 11px 14px !important;
}
.live-map-logout:hover {
  background: #f04c61 !important;
}

/* Botão de tela cheia compacto ao lado de sair. */
.live-map-fullscreen {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,.17);
  background: rgba(5,20,29,.91);
  color: #fff;
  box-shadow: 0 8px 28px rgba(0,0,0,.22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  font-size: 1.05rem;
  line-height: 1;
}
.live-map-fullscreen:hover,
.live-map-fullscreen.is-active {
  background: rgba(12,48,64,.98);
}

/* "Estamos em" é interativo para voltar ao pin atual. */
.live-current-place {
  cursor: pointer;
  pointer-events: auto !important;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}
.live-current-place:hover {
  border-color: rgba(81,213,242,.45);
  background: rgba(5,25,36,.96);
}
.live-current-place:focus-visible {
  outline: 2px solid #51d5f2;
  outline-offset: 2px;
}

/* Timeline: título em cima, tempo embaixo. */
.steps-timeline-header {
  height: 44px !important;
}
.steps-time-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1px !important;
}
.steps-past-title {
  color: #51d5f2;
  font-size: .58rem;
  line-height: 1.1;
  font-weight: 950;
  letter-spacing: .09em;
  white-space: nowrap;
}
.steps-time-meta {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
}
.steps-time-meta strong {
  color: #fff;
  font-size: .66rem;
  font-weight: 850;
}
.steps-time-meta small {
  color: #79909c;
  font-size: .53rem;
  font-weight: 750;
}

/* Fullscreen: mapa ocupa viewport inteiro. */
.member-map-shell:fullscreen,
.member-map-shell:-webkit-full-screen {
  width: 100vw !important;
  height: 100vh !important;
  max-width: none !important;
  border-radius: 0 !important;
  background: #06151e;
}
.member-map-shell:fullscreen .member-map-visual,
.member-map-shell:-webkit-full-screen .member-map-visual {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.member-map-shell:fullscreen #map,
.member-map-shell:-webkit-full-screen #map {
  width: 100% !important;
  height: 100% !important;
}

/* No mobile evita quebra do logout e organiza topo. */
@media (max-width: 719px) {
  .live-map-topbar {
    max-width: none !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
  }

  .live-map-fullscreen {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    border-radius: 11px;
  }

  .live-map-logout {
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 11px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: .68rem !important;
  }

  .steps-timeline-header {
    height: 46px !important;
  }

  .steps-past-title {
    font-size: .55rem;
  }

  .steps-time-meta strong {
    font-size: .64rem;
  }
}

/* O status só aparece como indisponível se houver erro real; em telas pequenas ele some. */
@media (max-width: 719px) {
  .live-map-status {
    display: none !important;
  }
}


/* =========================================================
   V55 — mobile/fullscreen/layout fixes
   ========================================================= */

/* Evita a faixa/borda escura causada por controles extrapolando a largura do mapa. */
.member-map-shell,
.member-map-visual,
.member-map-visual.is-unlocked {
  overflow: hidden !important;
}
.live-map-topbar {
  max-width: calc(100% - 24px) !important;
  box-sizing: border-box !important;
}
.live-map-logout,
.live-map-fullscreen {
  box-sizing: border-box !important;
}

/* Botão fullscreen sai do topo e vai para o canto inferior direito. */
.live-map-fullscreen {
  position: absolute !important;
  right: 14px !important;
  bottom: 14px !important;
  top: auto !important;
  left: auto !important;
  z-index: 790 !important;
  width: 44px !important;
  height: 44px !important;
  flex: none !important;
}

/* Topbar passa a conter apenas status + logout. */
.live-map-topbar {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
}

/* Centraliza visualmente conteúdo dos três cards. */
.trip-stat-pill {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  align-items: stretch !important;
}
.trip-stat-pill > div {
  display: grid !important;
  grid-template-columns: 20px auto !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  justify-content: center !important;
  column-gap: 7px !important;
  text-align: center !important;
  padding: 10px 12px !important;
}
.trip-stat-pill .stat-icon {
  grid-row: 1 / span 2 !important;
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
}
.trip-stat-pill strong {
  justify-self: start !important;
  align-self: end !important;
  line-height: 1 !important;
}
.trip-stat-pill small {
  justify-self: start !important;
  align-self: start !important;
  margin-top: 3px !important;
  line-height: 1.05 !important;
}

/* Fullscreen: aumenta a interface inteira para não ficar minúscula. */
.member-map-shell:fullscreen .live-current-place,
.member-map-shell:-webkit-full-screen .live-current-place {
  top: 24px !important;
  min-width: 330px !important;
  max-width: 380px !important;
  padding: 15px 22px 16px !important;
  border-radius: 20px !important;
}
.member-map-shell:fullscreen .live-current-place small,
.member-map-shell:-webkit-full-screen .live-current-place small {
  font-size: .75rem !important;
}
.member-map-shell:fullscreen .live-current-place strong,
.member-map-shell:-webkit-full-screen .live-current-place strong {
  font-size: 1.25rem !important;
}
.member-map-shell:fullscreen .live-pulse-row,
.member-map-shell:-webkit-full-screen .live-pulse-row {
  margin-top: 5px !important;
  font-size: .72rem !important;
}

.member-map-shell:fullscreen .trip-stat-pill,
.member-map-shell:-webkit-full-screen .trip-stat-pill {
  top: 112px !important;
  min-width: 430px !important;
}
.member-map-shell:fullscreen .trip-stat-pill > div,
.member-map-shell:-webkit-full-screen .trip-stat-pill > div {
  padding: 14px 18px !important;
}
.member-map-shell:fullscreen .trip-stat-pill strong,
.member-map-shell:-webkit-full-screen .trip-stat-pill strong {
  font-size: 1.15rem !important;
}
.member-map-shell:fullscreen .trip-stat-pill small,
.member-map-shell:-webkit-full-screen .trip-stat-pill small {
  font-size: .68rem !important;
}

.member-map-shell:fullscreen .live-map-topbar,
.member-map-shell:-webkit-full-screen .live-map-topbar {
  top: 22px !important;
  right: 22px !important;
}
.member-map-shell:fullscreen .live-map-logout,
.member-map-shell:-webkit-full-screen .live-map-logout {
  height: 46px !important;
  padding: 0 18px !important;
  font-size: .78rem !important;
}
.member-map-shell:fullscreen .live-map-status,
.member-map-shell:-webkit-full-screen .live-map-status {
  min-height: 46px !important;
  padding: 10px 14px !important;
  font-size: .76rem !important;
}
.member-map-shell:fullscreen .live-map-fullscreen,
.member-map-shell:-webkit-full-screen .live-map-fullscreen {
  right: 22px !important;
  bottom: 22px !important;
  width: 52px !important;
  height: 52px !important;
  font-size: 1.25rem !important;
}

.member-map-shell:fullscreen .steps-timeline-shell,
.member-map-shell:-webkit-full-screen .steps-timeline-shell {
  width: min(980px, calc(100% - 520px)) !important;
  bottom: 22px !important;
}
.member-map-shell:fullscreen .steps-timeline-header,
.member-map-shell:-webkit-full-screen .steps-timeline-header {
  height: 54px !important;
}
.member-map-shell:fullscreen .steps-timeline-shell .steps-rail,
.member-map-shell:-webkit-full-screen .steps-timeline-shell .steps-rail {
  height: 108px !important;
}
.member-map-shell:fullscreen .steps-timeline-shell .steps-rail-item,
.member-map-shell:-webkit-full-screen .steps-timeline-shell .steps-rail-item {
  flex-basis: 92px !important;
  width: 92px !important;
  min-width: 92px !important;
}
.member-map-shell:fullscreen .steps-rail-thumb,
.member-map-shell:-webkit-full-screen .steps-rail-thumb {
  width: 58px !important;
  height: 58px !important;
}
.member-map-shell:fullscreen .steps-rail-item b,
.member-map-shell:-webkit-full-screen .steps-rail-item b {
  font-size: .72rem !important;
}
.member-map-shell:fullscreen .steps-rail-item small,
.member-map-shell:-webkit-full-screen .steps-rail-item small {
  font-size: .6rem !important;
}
.member-map-shell:fullscreen .step-drawer,
.member-map-shell:-webkit-full-screen .step-drawer {
  bottom: 192px !important;
  right: 22px !important;
  max-width: 360px !important;
}

/* Fullscreen também aumenta pins/fotos/labels um pouco. */
.member-map-shell:fullscreen .polar-step-photo,
.member-map-shell:-webkit-full-screen .polar-step-photo {
  width: 64px !important;
  height: 64px !important;
}
.member-map-shell:fullscreen .live-motorhome-marker,
.member-map-shell:-webkit-full-screen .live-motorhome-marker {
  width: 54px !important;
  height: 54px !important;
}
.member-map-shell:fullscreen .live-motorhome-marker > span,
.member-map-shell:-webkit-full-screen .live-motorhome-marker > span {
  font-size: 24px !important;
}

/* Mobile */
@media (max-width: 719px) {
  /* Logout ocupa só o necessário e não força largura extra no mapa. */
  .live-map-topbar {
    right: 8px !important;
    max-width: 34% !important;
    overflow: visible !important;
  }
  .live-map-logout {
    max-width: 118px !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    font-size: .64rem !important;
    padding: 0 10px !important;
  }

  /* Fullscreen fica sozinho embaixo à direita. */
  .live-map-fullscreen {
    right: 10px !important;
    bottom: 138px !important;
    width: 42px !important;
    height: 42px !important;
    border-radius: 12px !important;
  }

  /* Reforça centralização dos números/textos. */
  .trip-stat-pill > div {
    grid-template-columns: 18px auto !important;
    padding: 9px 8px !important;
    column-gap: 5px !important;
  }
  .trip-stat-pill strong {
    font-size: .88rem !important;
  }
  .trip-stat-pill small {
    font-size: .5rem !important;
  }

  /* Fullscreen mobile: interface continua legível, mas sem exagero. */
  .member-map-shell:fullscreen .live-current-place,
  .member-map-shell:-webkit-full-screen .live-current-place {
    top: 12px !important;
    min-width: 210px !important;
    width: min(56%, 270px) !important;
    padding: 10px 12px !important;
  }
  .member-map-shell:fullscreen .trip-stat-pill,
  .member-map-shell:-webkit-full-screen .trip-stat-pill {
    top: 76px !important;
    width: calc(100% - 28px) !important;
    min-width: 0 !important;
  }
  .member-map-shell:fullscreen .steps-timeline-shell,
  .member-map-shell:-webkit-full-screen .steps-timeline-shell {
    left: 10px !important;
    right: 10px !important;
    bottom: 10px !important;
    width: auto !important;
  }
  .member-map-shell:fullscreen .live-map-fullscreen,
  .member-map-shell:-webkit-full-screen .live-map-fullscreen {
    right: 12px !important;
    bottom: 156px !important;
    width: 46px !important;
    height: 46px !important;
  }
}

/* Quando o erro some, o status não cria cartão exagerado. */
.live-map-status {
  white-space: nowrap !important;
}


/* =========================================================
   V56 — aprovação manual temporária, sem Discord
   ========================================================= */
#discordAccessStep,
.member-help-link,
.member-help-modal {
  display: none !important;
}

.access-steps {
  grid-template-columns: 1fr !important;
}

.membership-result.is-warning {
  border-color: rgba(255,190,80,.45) !important;
  background: rgba(113,75,12,.20) !important;
}


/* =========================================================
   V57 — aprovação manual: aviso de membros + pendente
   ========================================================= */
.members-only-warning {
  display: block;
  margin: 14px auto 0;
  padding: 15px 18px;
  max-width: 620px;
  text-align: center;
  border: 1px solid rgba(255,196,76,.55);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(120,82,12,.26), rgba(65,46,10,.18));
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
}
.members-only-warning strong {
  display: block;
  color: #ffc54d;
  font-size: .86rem;
  font-weight: 950;
  letter-spacing: .04em;
}
.members-only-warning small {
  display: block;
  margin-top: 6px;
  color: #c7d3d8;
  font-size: .72rem;
}
.members-only-warning a {
  color: #ffd978;
  font-weight: 900;
  text-decoration: underline;
}

.membership-result.is-warning {
  max-width: 620px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding: 18px 20px !important;
  text-align: center !important;
  border-width: 1px !important;
}
.membership-result.is-warning strong {
  display: block;
  color: #ffc54d !important;
  font-size: .88rem !important;
  letter-spacing: .04em;
}
.membership-result.is-warning span {
  display: block;
  margin-top: 7px;
  color: #e6edf0 !important;
  font-size: .78rem !important;
  line-height: 1.45;
}


/* =========================================================
   V59 — responsive map polish / fullscreen / smart controls
   ========================================================= */

/* All overlay sizing follows viewport/container instead of fixed desktop pixels. */
.member-map-shell,
.member-map-visual,
.member-map-visual.is-unlocked {
  min-width: 0 !important;
  max-width: 100% !important;
}

.live-current-place {
  width: clamp(205px, 25vw, 330px) !important;
  min-width: 0 !important;
  max-width: calc(100% - 210px) !important;
  padding: clamp(8px, .9vw, 13px) clamp(11px, 1.4vw, 18px) !important;
  border-radius: clamp(13px, 1.2vw, 18px) !important;
}
.live-current-place small { font-size: clamp(.52rem, .62vw, .68rem) !important; }
.live-current-place strong { font-size: clamp(.86rem, 1.05vw, 1.08rem) !important; }
.live-pulse-row { font-size: clamp(.5rem, .6vw, .66rem) !important; }

.trip-stat-pill {
  width: clamp(310px, 31vw, 430px) !important;
  min-width: 0 !important;
  max-width: calc(100% - 28px) !important;
}
.trip-stat-pill > div { min-width: 0 !important; }
.trip-stat-pill strong { font-size: clamp(.78rem, .9vw, 1rem) !important; }
.trip-stat-pill small { font-size: clamp(.46rem, .55vw, .62rem) !important; }
.trip-stat-pill .stat-icon { font-size: clamp(.68rem, .8vw, .9rem) !important; }

.live-map-topbar {
  right: clamp(8px, 1vw, 16px) !important;
  top: clamp(8px, 1vw, 16px) !important;
  gap: clamp(5px, .6vw, 9px) !important;
  max-width: min(46%, 390px) !important;
}
.live-map-status,
.live-map-logout {
  min-height: clamp(34px, 3vw, 43px) !important;
  font-size: clamp(.58rem, .68vw, .75rem) !important;
  border-radius: clamp(10px, 1vw, 14px) !important;
}
.live-map-logout { padding-inline: clamp(10px, 1vw, 15px) !important; }

/* Fullscreen control: always lower-right, with a touch-safe but not oversized hit target. */
.live-map-fullscreen {
  right: clamp(10px, 1.2vw, 20px) !important;
  bottom: clamp(12px, 1.3vw, 22px) !important;
  width: clamp(42px, 3.5vw, 52px) !important;
  height: clamp(42px, 3.5vw, 52px) !important;
  border-radius: clamp(11px, 1vw, 15px) !important;
  font-size: clamp(.95rem, 1.1vw, 1.2rem) !important;
}

.steps-timeline-shell {
  width: clamp(430px, 58vw, 820px) !important;
  min-width: 0 !important;
  max-width: calc(100% - 170px) !important;
  bottom: clamp(9px, 1vw, 16px) !important;
}
.steps-timeline-header { height: clamp(38px, 3.3vw, 47px) !important; }
.steps-past-title { font-size: clamp(.48rem, .55vw, .61rem) !important; }
.steps-time-meta strong { font-size: clamp(.56rem, .62vw, .69rem) !important; }
.steps-time-meta small { font-size: clamp(.46rem, .52vw, .57rem) !important; }
.steps-timeline-shell .steps-rail { height: clamp(72px, 6.6vw, 88px) !important; }
.steps-timeline-shell .steps-rail-item {
  flex-basis: clamp(62px, 5.3vw, 76px) !important;
  width: clamp(62px, 5.3vw, 76px) !important;
  min-width: clamp(62px, 5.3vw, 76px) !important;
}
.steps-rail-thumb {
  width: clamp(34px, 3.4vw, 46px) !important;
  height: clamp(34px, 3.4vw, 46px) !important;
}
.steps-rail-item b { font-size: clamp(.5rem, .55vw, .62rem) !important; }
.steps-rail-item small { font-size: clamp(.43rem, .48vw, .53rem) !important; }

/* Do not hard-enlarge photo markers in fullscreen; JS zoom scaling controls them. */
.member-map-shell:fullscreen .polar-step-photo,
.member-map-shell:-webkit-full-screen .polar-step-photo {
  width: 50px !important;
  height: 50px !important;
}

/* Fullscreen should look like a native app, not a desktop page stretched to the viewport. */
.member-map-shell:fullscreen,
.member-map-shell:-webkit-full-screen {
  width: 100vw !important;
  height: 100dvh !important;
  overflow: hidden !important;
}
.member-map-shell:fullscreen .member-map-visual,
.member-map-shell:-webkit-full-screen .member-map-visual,
.member-map-shell:fullscreen #map,
.member-map-shell:-webkit-full-screen #map {
  width: 100% !important;
  height: 100% !important;
}
.member-map-shell:fullscreen .live-current-place,
.member-map-shell:-webkit-full-screen .live-current-place {
  top: clamp(12px, 1.5vw, 24px) !important;
  width: clamp(240px, 24vw, 360px) !important;
  min-width: 0 !important;
  max-width: 38vw !important;
  padding: clamp(10px, 1vw, 15px) clamp(13px, 1.3vw, 21px) !important;
}
.member-map-shell:fullscreen .trip-stat-pill,
.member-map-shell:-webkit-full-screen .trip-stat-pill {
  top: clamp(79px, 8.2vw, 112px) !important;
  width: clamp(330px, 30vw, 455px) !important;
  min-width: 0 !important;
}
.member-map-shell:fullscreen .live-map-topbar,
.member-map-shell:-webkit-full-screen .live-map-topbar {
  top: clamp(12px, 1.4vw, 22px) !important;
  right: clamp(12px, 1.4vw, 22px) !important;
}
.member-map-shell:fullscreen .steps-timeline-shell,
.member-map-shell:-webkit-full-screen .steps-timeline-shell {
  width: clamp(520px, 58vw, 980px) !important;
  max-width: calc(100% - 190px) !important;
  bottom: clamp(12px, 1.4vw, 22px) !important;
}
.member-map-shell:fullscreen .steps-timeline-shell .steps-rail,
.member-map-shell:-webkit-full-screen .steps-timeline-shell .steps-rail {
  height: clamp(82px, 7vw, 106px) !important;
}
.member-map-shell:fullscreen .steps-timeline-shell .steps-rail-item,
.member-map-shell:-webkit-full-screen .steps-timeline-shell .steps-rail-item {
  flex-basis: clamp(70px, 5.3vw, 90px) !important;
  width: clamp(70px, 5.3vw, 90px) !important;
  min-width: clamp(70px, 5.3vw, 90px) !important;
}
.member-map-shell:fullscreen .steps-rail-thumb,
.member-map-shell:-webkit-full-screen .steps-rail-thumb {
  width: clamp(40px, 3.6vw, 56px) !important;
  height: clamp(40px, 3.6vw, 56px) !important;
}
.member-map-shell:fullscreen .live-map-fullscreen,
.member-map-shell:-webkit-full-screen .live-map-fullscreen {
  right: clamp(12px, 1.4vw, 22px) !important;
  bottom: clamp(12px, 1.4vw, 22px) !important;
  width: clamp(46px, 3.4vw, 54px) !important;
  height: clamp(46px, 3.4vw, 54px) !important;
}

/* Tablet: preserve breathing room between cards. */
@media (min-width: 720px) and (max-width: 1050px) {
  .live-current-place { max-width: 34% !important; }
  .trip-stat-pill { width: min(390px, 48%) !important; }
  .live-map-topbar { max-width: 38% !important; }
  .steps-timeline-shell { width: min(620px, 66%) !important; max-width: calc(100% - 150px) !important; }
}

/* Phones: intelligent hit targets, no clipping, overlays don't collide. */
@media (max-width: 719px) {
  .member-map-visual.is-unlocked { min-height: 560px !important; }

  .live-current-place {
    top: 8px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: clamp(180px, 54vw, 235px) !important;
    max-width: 58vw !important;
    padding: 8px 10px !important;
  }
  .live-current-place strong { font-size: clamp(.78rem, 3.2vw, .92rem) !important; }
  .live-current-place small { font-size: clamp(.48rem, 2vw, .58rem) !important; }
  .live-pulse-row { font-size: clamp(.46rem, 1.9vw, .55rem) !important; }

  .live-map-topbar {
    top: 8px !important;
    right: 8px !important;
    max-width: 34vw !important;
  }
  .live-map-status { display: none !important; }
  .live-map-logout {
    width: auto !important;
    max-width: 34vw !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 10px !important;
    font-size: clamp(.56rem, 2.4vw, .66rem) !important;
    white-space: nowrap !important;
  }

  .trip-stat-pill {
    top: 62px !important;
    left: 12px !important;
    right: 12px !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    border-radius: 14px !important;
  }
  .trip-stat-pill > div {
    grid-template-columns: 14px 1fr !important;
    column-gap: 4px !important;
    padding: 8px 5px !important;
  }
  .trip-stat-pill strong {
    justify-self: center !important;
    font-size: clamp(.78rem, 3vw, .9rem) !important;
  }
  .trip-stat-pill small {
    justify-self: center !important;
    font-size: clamp(.43rem, 1.8vw, .51rem) !important;
  }
  .trip-stat-pill .stat-icon { font-size: .62rem !important; }

  .steps-timeline-shell {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    border-radius: 15px !important;
  }
  .steps-timeline-header { height: 42px !important; }
  .steps-timeline-shell .steps-rail { height: 80px !important; gap: 13px !important; }
  .steps-timeline-shell .steps-rail-item {
    flex-basis: 64px !important;
    width: 64px !important;
    min-width: 64px !important;
  }
  .steps-rail-thumb { width: 36px !important; height: 36px !important; }

  /* Bottom-right but above timeline so it remains tappable. */
  .live-map-fullscreen {
    right: 12px !important;
    bottom: 137px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 12px !important;
  }

  .step-drawer {
    left: 9px !important;
    right: 9px !important;
    bottom: 137px !important;
    width: auto !important;
    max-width: none !important;
  }

  .member-map-shell:fullscreen .live-current-place,
  .member-map-shell:-webkit-full-screen .live-current-place {
    top: 10px !important;
    width: clamp(185px, 52vw, 245px) !important;
    max-width: 58vw !important;
  }
  .member-map-shell:fullscreen .trip-stat-pill,
  .member-map-shell:-webkit-full-screen .trip-stat-pill {
    top: 64px !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: none !important;
  }
  .member-map-shell:fullscreen .steps-timeline-shell,
  .member-map-shell:-webkit-full-screen .steps-timeline-shell {
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    max-width: none !important;
    bottom: 8px !important;
  }
  .member-map-shell:fullscreen .live-map-fullscreen,
  .member-map-shell:-webkit-full-screen .live-map-fullscreen {
    right: 12px !important;
    bottom: 139px !important;
    width: 46px !important;
    height: 46px !important;
  }
}

/* Very narrow phones. */
@media (max-width: 390px) {
  .live-current-place { max-width: 56vw !important; }
  .live-map-topbar { max-width: 32vw !important; }
  .live-map-logout { max-width: 32vw !important; padding-inline: 8px !important; }
  .trip-stat-pill > div { padding-inline: 3px !important; }
  .steps-past-title { letter-spacing: .045em !important; }
}


/* =========================================================
   V60 — refinamento final pedido no mapa
   ========================================================= */

/* O resumo inferior esquerdo repetia km / dias / países do topo. */
#liveMapFloatCard,
.member-map-visual.is-unlocked .map-float-card {
  display: none !important;
}

/* Resumo da viagem: ícone + número como um grupo central e legenda abaixo. */
.trip-stat-pill > div {
  display: grid !important;
  grid-template-columns: auto auto !important;
  grid-template-rows: auto auto !important;
  justify-content: center !important;
  justify-items: center !important;
  align-content: center !important;
  align-items: center !important;
  column-gap: 6px !important;
  row-gap: 3px !important;
  text-align: center !important;
  min-width: 0 !important;
}
.trip-stat-pill .stat-icon {
  display: inline-block !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: end !important;
  margin: 0 !important;
}
.trip-stat-pill strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: start !important;
  margin: 0 !important;
  text-align: center !important;
}
.trip-stat-pill small {
  grid-column: 1 / 3 !important;
  grid-row: 2 !important;
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
  width: 100% !important;
  text-align: center !important;
}

/* Fullscreen fica junto dos controles do mapa, logo abaixo de Camadas. */
.live-map-fullscreen {
  position: absolute !important;
  z-index: 810 !important;
  top: 66px !important;
  left: 10px !important;
  right: auto !important;
  bottom: auto !important;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  border-radius: 2px !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.96) !important;
  color: #18242b !important;
  border: 0 !important;
  box-shadow: 0 1px 5px rgba(0,0,0,.28) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.live-map-fullscreen:hover,
.live-map-fullscreen.is-active {
  background: #f1f4f5 !important;
  color: #0a151b !important;
}
.live-map-fullscreen > span {
  display: grid !important;
  place-items: center !important;
  font-size: 1.02rem !important;
  line-height: 1 !important;
}

/* Fullscreen mantém o botão no mesmo lugar relativo aos controles Leaflet. */
.member-map-shell:fullscreen .live-map-fullscreen,
.member-map-shell:-webkit-full-screen .live-map-fullscreen {
  top: 66px !important;
  left: 10px !important;
  right: auto !important;
  bottom: auto !important;
  width: 44px !important;
  height: 44px !important;
}

@media (max-width: 719px) {
  /* Mesmo padrão no celular: Camadas em cima e fullscreen logo abaixo. */
  .live-map-fullscreen,
  .member-map-shell:fullscreen .live-map-fullscreen,
  .member-map-shell:-webkit-full-screen .live-map-fullscreen {
    top: 66px !important;
    left: 10px !important;
    right: auto !important;
    bottom: auto !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }

  .trip-stat-pill > div {
    grid-template-columns: auto auto !important;
    grid-template-rows: auto auto !important;
    justify-content: center !important;
    justify-items: center !important;
    column-gap: 4px !important;
    padding: 8px 4px !important;
  }
  .trip-stat-pill .stat-icon {
    display: inline-block !important;
    font-size: .58rem !important;
  }
  .trip-stat-pill strong {
    justify-self: start !important;
    font-size: clamp(.78rem, 3vw, .9rem) !important;
  }
  .trip-stat-pill small {
    justify-self: center !important;
    font-size: clamp(.43rem, 1.8vw, .51rem) !important;
  }
}


/* =========================================================
   V62 — mobile clean layout + smart controls
   ========================================================= */
@media (max-width: 719px) {
  /* Top card occupies its own row. */
  .live-current-place {
    top: 8px !important;
    left: 10px !important;
    right: 10px !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 54px !important;
    padding: 7px 78px 7px 10px !important;
    border-radius: 14px !important;
    text-align: left !important;
  }
  .live-current-place small {
    font-size: .46rem !important;
    letter-spacing: .11em !important;
  }
  .live-current-place strong {
    font-size: .78rem !important;
    line-height: 1.05 !important;
  }
  .live-current-place > span,
  .live-pulse-row {
    justify-content: flex-start !important;
  }

  /* Logout sits inside the right side of the location row, not over stats. */
  .live-map-topbar {
    top: 17px !important;
    right: 18px !important;
    left: auto !important;
    width: auto !important;
    max-width: 118px !important;
    z-index: 796 !important;
  }
  .live-map-status {
    display: none !important;
  }
  .live-map-logout {
    height: 34px !important;
    min-height: 34px !important;
    max-width: 110px !important;
    padding: 0 9px !important;
    font-size: .56rem !important;
    border-radius: 10px !important;
  }

  /* Stats get their own row, centered, with equal columns. */
  .trip-stat-pill {
    top: 68px !important;
    left: 10px !important;
    right: 10px !important;
    transform: none !important;
    width: auto !important;
    max-width: none !important;
    height: 47px !important;
    border-radius: 13px !important;
  }
  .trip-stat-pill > div {
    min-height: 47px !important;
    padding: 7px 3px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    gap: 2px !important;
  }
  .trip-stat-pill .stat-icon { display: none !important; }
  .trip-stat-pill strong {
    font-size: .72rem !important;
    line-height: 1 !important;
  }
  .trip-stat-pill small {
    font-size: .43rem !important;
    line-height: 1 !important;
    max-width: 100% !important;
  }

  /* Leaflet layers + fullscreen form a clean vertical tool stack. */
  .member-map-visual.is-unlocked .leaflet-top.leaflet-left {
    top: 124px !important;
    left: 8px !important;
  }
  .member-map-visual.is-unlocked .leaflet-control-layers {
    margin: 0 !important;
  }
  .live-map-fullscreen {
    top: 171px !important;
    left: 8px !important;
    right: auto !important;
    bottom: auto !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
    font-size: .9rem !important;
  }

  /* Compact Polarsteps-like timeline, no giant bottom panel. */
  .steps-timeline-shell {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    min-width: 0 !important;
    height: 96px !important;
    border-radius: 14px !important;
  }
  .steps-timeline-header {
    height: 32px !important;
    grid-template-columns: 36px 1fr 36px !important;
  }
  .steps-past-title {
    font-size: .42rem !important;
    letter-spacing: .08em !important;
  }
  .steps-time-meta strong { font-size: .5rem !important; }
  .steps-time-meta small { font-size: .42rem !important; }
  .steps-nav-btn {
    font-size: 1.1rem !important;
  }
  .steps-timeline-shell .steps-rail {
    height: 64px !important;
    padding-left: calc(50% - 27px) !important;
    padding-right: calc(50% - 27px) !important;
    gap: 10px !important;
  }
  .steps-timeline-shell .steps-rail-item {
    flex: 0 0 54px !important;
    width: 54px !important;
    min-width: 54px !important;
  }
  .steps-rail-thumb {
    width: 34px !important;
    height: 34px !important;
  }
  .steps-rail-item b {
    font-size: .46rem !important;
    max-width: 54px !important;
  }
  .steps-rail-item small {
    display: none !important;
  }

  .step-drawer {
    left: 8px !important;
    right: 8px !important;
    bottom: 112px !important;
    width: auto !important;
  }
}

/* Fullscreen on narrow screens keeps exactly the same smart mobile scale. */
@media (max-width: 719px) {
  .member-map-shell:fullscreen .live-current-place,
  .member-map-shell:-webkit-full-screen .live-current-place {
    top: 8px !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px 78px 7px 10px !important;
  }
  .member-map-shell:fullscreen .trip-stat-pill,
  .member-map-shell:-webkit-full-screen .trip-stat-pill {
    top: 68px !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .member-map-shell:fullscreen .steps-timeline-shell,
  .member-map-shell:-webkit-full-screen .steps-timeline-shell {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    width: auto !important;
    height: 96px !important;
  }
  .member-map-shell:fullscreen .live-map-fullscreen,
  .member-map-shell:-webkit-full-screen .live-map-fullscreen {
    top: 171px !important;
    left: 8px !important;
    right: auto !important;
    bottom: auto !important;
    width: 38px !important;
    height: 38px !important;
  }
}


/* =========================================================
   V65 — Steps automáticos
   ========================================================= */
.step-photo-source {
  margin-left: 6px;
  color: #55d5ed;
  font-size: .62em;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.step-photo-source:hover {
  text-decoration: underline;
}

/* =========================================================
   V67 — mobile-first map layout (desktop intentionally untouched)
   ========================================================= */
@media (max-width: 719px) {
  .member-map-shell,
  .member-map-visual { min-height: 620px; }
  .member-map-visual { overflow: hidden; }

  /* Location gets a clean full-width row; no text can sit under logout. */
  .live-current-place,
  .member-map-shell:fullscreen .live-current-place,
  .member-map-shell:-webkit-full-screen .live-current-place {
    top: max(8px, env(safe-area-inset-top)) !important;
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    height: 58px !important;
    min-height: 58px !important;
    padding: 7px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: hidden !important;
    z-index: 800 !important;
  }
  .live-current-place small { font-size: .48rem !important; line-height: 1 !important; }
  .live-current-place strong {
    width: 100% !important; font-size: .82rem !important; line-height: 1.12 !important;
    white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important;
  }
  .live-current-place > span,
  .live-pulse-row { justify-content: center !important; font-size: .48rem !important; }

  /* Logout becomes its own row, visible and touch-friendly. */
  .live-map-topbar,
  .member-map-shell:fullscreen .live-map-topbar,
  .member-map-shell:-webkit-full-screen .live-map-topbar {
    display: flex !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 64px) !important;
    right: 8px !important;
    left: auto !important;
    width: auto !important;
    max-width: none !important;
    z-index: 802 !important;
  }
  .live-map-status { display: none !important; }
  .live-map-logout {
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
    width: auto !important; max-width: none !important; height: 34px !important; min-height: 34px !important;
    padding: 0 12px !important; border-radius: 10px !important; font-size: .57rem !important;
    line-height: 1 !important; white-space: nowrap !important;
  }

  /* Stats occupy the row beside logout, never overlap it. */
  .trip-stat-pill,
  .member-map-shell:fullscreen .trip-stat-pill,
  .member-map-shell:-webkit-full-screen .trip-stat-pill {
    top: calc(max(8px, env(safe-area-inset-top)) + 64px) !important;
    left: 8px !important;
    right: 116px !important;
    width: auto !important; height: 42px !important; min-width: 0 !important;
    transform: none !important; border-radius: 11px !important; z-index: 799 !important;
  }
  .trip-stat-pill > div { min-width: 0 !important; min-height: 42px !important; padding: 5px 1px !important; gap: 1px !important; }
  .trip-stat-pill strong { font-size: .64rem !important; }
  .trip-stat-pill small { font-size: .37rem !important; white-space: nowrap !important; }

  /* Map tools: layers first, fullscreen directly below it. */
  .member-map-visual.is-unlocked .leaflet-top.leaflet-left {
    top: calc(max(8px, env(safe-area-inset-top)) + 118px) !important;
    left: 8px !important;
  }
  .member-map-visual.is-unlocked .leaflet-control-layers { margin: 0 !important; }
  .live-map-fullscreen,
  .member-map-shell:fullscreen .live-map-fullscreen,
  .member-map-shell:-webkit-full-screen .live-map-fullscreen {
    top: calc(max(8px, env(safe-area-inset-top)) + 164px) !important;
    left: 8px !important; right: auto !important; bottom: auto !important;
    width: 34px !important; height: 34px !important; min-width: 34px !important; min-height: 34px !important;
    padding: 0 !important; border-radius: 9px !important; font-size: .78rem !important; z-index: 805 !important;
  }

  /* Compact timeline; leaves most of the phone to the actual map. */
  .steps-timeline-shell,
  .member-map-shell:fullscreen .steps-timeline-shell,
  .member-map-shell:-webkit-full-screen .steps-timeline-shell {
    left: 8px !important; right: 8px !important;
    bottom: max(8px, env(safe-area-inset-bottom)) !important;
    width: auto !important; height: 88px !important; min-width: 0 !important;
    border-radius: 13px !important; z-index: 790 !important;
  }
  .steps-timeline-header { height: 29px !important; grid-template-columns: 32px 1fr 32px !important; }
  .steps-timeline-shell .steps-rail { height: 59px !important; gap: 8px !important; padding-left: calc(50% - 24px) !important; padding-right: calc(50% - 24px) !important; }
  .steps-timeline-shell .steps-rail-item { flex: 0 0 48px !important; width: 48px !important; min-width: 48px !important; }
  .steps-rail-thumb { width: 30px !important; height: 30px !important; }
  .steps-rail-item b { max-width: 48px !important; font-size: .41rem !important; }
  .steps-past-title { font-size: .39rem !important; }
  .steps-time-meta strong,.steps-time-meta small { font-size: .4rem !important; }

  .step-drawer { left: 8px !important; right: 8px !important; bottom: 104px !important; width: auto !important; max-height: 105px !important; }

  /* Hide the redundant lower-left GPS diagnostic card on the public map. */
  .map-float-card { display: none !important; }
}

@media (max-width: 390px) {
  .trip-stat-pill { right: 104px !important; }
  .live-map-logout { padding: 0 9px !important; font-size: .52rem !important; }
  .trip-stat-pill strong { font-size: .59rem !important; }
  .trip-stat-pill small { font-size: .34rem !important; }
}

/* V67 mobile-only final overrides */
@media (max-width:719px){
.member-map-shell,.member-map-visual{min-height:620px}.member-map-visual{overflow:hidden}
.live-current-place,.member-map-shell:fullscreen .live-current-place,.member-map-shell:-webkit-full-screen .live-current-place{top:max(8px,env(safe-area-inset-top))!important;left:8px!important;right:8px!important;width:auto!important;height:58px!important;min-height:58px!important;padding:7px 10px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;text-align:center!important;overflow:hidden!important;z-index:800!important}
.live-current-place small{font-size:.48rem!important;line-height:1!important}.live-current-place strong{width:100%!important;font-size:.82rem!important;line-height:1.12!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.live-current-place>span,.live-pulse-row{justify-content:center!important;font-size:.48rem!important}
.live-map-topbar,.member-map-shell:fullscreen .live-map-topbar,.member-map-shell:-webkit-full-screen .live-map-topbar{display:flex!important;top:calc(max(8px,env(safe-area-inset-top)) + 64px)!important;right:8px!important;left:auto!important;width:auto!important;max-width:none!important;z-index:802!important}.live-map-status{display:none!important}.live-map-logout{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;max-width:none!important;height:34px!important;min-height:34px!important;padding:0 12px!important;border-radius:10px!important;font-size:.57rem!important;line-height:1!important;white-space:nowrap!important}
.trip-stat-pill,.member-map-shell:fullscreen .trip-stat-pill,.member-map-shell:-webkit-full-screen .trip-stat-pill{top:calc(max(8px,env(safe-area-inset-top)) + 64px)!important;left:8px!important;right:116px!important;width:auto!important;height:42px!important;min-width:0!important;transform:none!important;border-radius:11px!important;z-index:799!important}.trip-stat-pill>div{min-width:0!important;min-height:42px!important;padding:5px 1px!important;gap:1px!important}.trip-stat-pill strong{font-size:.64rem!important}.trip-stat-pill small{font-size:.37rem!important;white-space:nowrap!important}
.member-map-visual.is-unlocked .leaflet-top.leaflet-left{top:calc(max(8px,env(safe-area-inset-top)) + 118px)!important;left:8px!important}.member-map-visual.is-unlocked .leaflet-control-layers{margin:0!important}.live-map-fullscreen,.member-map-shell:fullscreen .live-map-fullscreen,.member-map-shell:-webkit-full-screen .live-map-fullscreen{top:calc(max(8px,env(safe-area-inset-top)) + 164px)!important;left:8px!important;right:auto!important;bottom:auto!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;padding:0!important;border-radius:9px!important;font-size:.78rem!important;z-index:805!important}
.steps-timeline-shell,.member-map-shell:fullscreen .steps-timeline-shell,.member-map-shell:-webkit-full-screen .steps-timeline-shell{left:8px!important;right:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;width:auto!important;height:88px!important;min-width:0!important;border-radius:13px!important;z-index:790!important}.steps-timeline-header{height:29px!important;grid-template-columns:32px 1fr 32px!important}.steps-timeline-shell .steps-rail{height:59px!important;gap:8px!important;padding-left:calc(50% - 24px)!important;padding-right:calc(50% - 24px)!important}.steps-timeline-shell .steps-rail-item{flex:0 0 48px!important;width:48px!important;min-width:48px!important}.steps-rail-thumb{width:30px!important;height:30px!important}.steps-rail-item b{max-width:48px!important;font-size:.41rem!important}.steps-past-title{font-size:.39rem!important}.steps-time-meta strong,.steps-time-meta small{font-size:.4rem!important}.step-drawer{left:8px!important;right:8px!important;bottom:104px!important;width:auto!important;max-height:105px!important}.map-float-card{display:none!important}
}
@media(max-width:390px){.trip-stat-pill{right:104px!important}.live-map-logout{padding:0 9px!important;font-size:.52rem!important}.trip-stat-pill strong{font-size:.59rem!important}.trip-stat-pill small{font-size:.34rem!important}}


/* =========================================================
   V68 — iPhone/mobile hard override
   Desktop >= 821px permanece intocado.
   ========================================================= */
@media (max-width: 820px) {
  .member-map-shell,
  .member-map-visual {
    position: relative !important;
    min-height: 680px !important;
    height: min(78dvh, 760px) !important;
    overflow: hidden !important;
    border-radius: 22px !important;
  }

  .live-current-place,
  .member-map-shell:fullscreen .live-current-place,
  .member-map-shell:-webkit-full-screen .live-current-place {
    box-sizing: border-box !important;
    position: absolute !important;
    top: max(8px, env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: none !important;
    height: 58px !important;
    min-height: 58px !important;
    padding: 7px 12px !important;
    margin: 0 !important;
    transform: none !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: visible !important;
    z-index: 900 !important;
  }
  .live-current-place small {
    margin: 0 0 3px !important;
    font-size: 9px !important;
    line-height: 1 !important;
    letter-spacing: .12em !important;
  }
  .live-current-place strong {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .live-current-place > span,
  .live-pulse-row {
    margin-top: 3px !important;
    justify-content: center !important;
    font-size: 9px !important;
    line-height: 1 !important;
  }

  .trip-stat-pill,
  .member-map-shell:fullscreen .trip-stat-pill,
  .member-map-shell:-webkit-full-screen .trip-stat-pill {
    box-sizing: border-box !important;
    position: absolute !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 66px) !important;
    left: 10px !important;
    right: 10px !important;
    width: auto !important;
    max-width: none !important;
    height: 48px !important;
    min-height: 48px !important;
    margin: 0 !important;
    transform: none !important;
    border-radius: 14px !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    z-index: 895 !important;
  }
  .trip-stat-pill > div {
    min-width: 0 !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 6px 2px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 2px !important;
    text-align: center !important;
  }
  .trip-stat-pill .stat-icon { display: none !important; }
  .trip-stat-pill strong {
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1 !important;
  }
  .trip-stat-pill small {
    margin: 0 !important;
    font-size: 8px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .live-map-topbar,
  .member-map-shell:fullscreen .live-map-topbar,
  .member-map-shell:-webkit-full-screen .live-map-topbar {
    position: absolute !important;
    display: flex !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 122px) !important;
    right: 10px !important;
    left: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 910 !important;
    pointer-events: auto !important;
  }
  .live-map-status { display: none !important; }
  .live-map-logout {
    box-sizing: border-box !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 92px !important;
    max-width: 130px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 12px !important;
    margin: 0 !important;
    border-radius: 11px !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
    pointer-events: auto !important;
  }

  .member-map-visual.is-unlocked .leaflet-top.leaflet-left {
    top: calc(max(8px, env(safe-area-inset-top)) + 122px) !important;
    left: 10px !important;
    margin: 0 !important;
    z-index: 905 !important;
  }
  .member-map-visual.is-unlocked .leaflet-control-layers {
    margin: 0 !important;
  }

  .live-map-fullscreen,
  .member-map-shell:fullscreen .live-map-fullscreen,
  .member-map-shell:-webkit-full-screen .live-map-fullscreen {
    box-sizing: border-box !important;
    position: absolute !important;
    top: calc(max(8px, env(safe-area-inset-top)) + 166px) !important;
    left: 10px !important;
    right: auto !important;
    bottom: auto !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    transform: none !important;
    z-index: 910 !important;
  }

  .steps-timeline-shell,
  .member-map-shell:fullscreen .steps-timeline-shell,
  .member-map-shell:-webkit-full-screen .steps-timeline-shell {
    box-sizing: border-box !important;
    position: absolute !important;
    left: 10px !important;
    right: 10px !important;
    bottom: max(10px, env(safe-area-inset-bottom)) !important;
    width: auto !important;
    max-width: none !important;
    height: 100px !important;
    min-height: 100px !important;
    margin: 0 !important;
    transform: none !important;
    border-radius: 15px !important;
    overflow: hidden !important;
    z-index: 880 !important;
  }
  .steps-timeline-header {
    height: 34px !important;
    min-height: 34px !important;
    grid-template-columns: 36px 1fr 36px !important;
  }
  .steps-past-title {
    font-size: 8px !important;
    letter-spacing: .08em !important;
  }
  .steps-time-meta strong,
  .steps-time-meta small {
    font-size: 8px !important;
  }
  .steps-nav-btn {
    min-width: 36px !important;
    width: 36px !important;
    height: 34px !important;
    font-size: 18px !important;
  }
  .steps-timeline-shell .steps-rail {
    box-sizing: border-box !important;
    height: 66px !important;
    min-height: 66px !important;
    padding-left: calc(50% - 29px) !important;
    padding-right: calc(50% - 29px) !important;
    gap: 11px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
  }
  .steps-timeline-shell .steps-rail-item {
    flex: 0 0 58px !important;
    width: 58px !important;
    min-width: 58px !important;
    scroll-snap-align: center !important;
  }
  .steps-rail-thumb {
    width: 36px !important;
    height: 36px !important;
  }
  .steps-rail-item b {
    display: block !important;
    width: 58px !important;
    max-width: 58px !important;
    font-size: 8px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .steps-rail-item small {
    display: none !important;
  }

  .step-drawer {
    box-sizing: border-box !important;
    left: 10px !important;
    right: 10px !important;
    bottom: calc(max(10px, env(safe-area-inset-bottom)) + 110px) !important;
    width: auto !important;
    max-width: none !important;
    max-height: 118px !important;
    margin: 0 !important;
    z-index: 890 !important;
  }

  .map-float-card { display: none !important; }
}

@media (max-width: 390px) {
  .live-current-place strong { font-size: 15px !important; }
  .trip-stat-pill strong { font-size: 14px !important; }
  .trip-stat-pill small { font-size: 7px !important; }
  .live-map-logout { min-width: 86px !important; padding-inline: 9px !important; font-size: 9px !important; }
}


/* =========================================================
   V89 — Official YouTube branding
   Source: official Google Developers YouTube icon sheet:
   https://developers.google.com/static/youtube/images/youtube-icons-2x.png
   The icon is not redrawn, recolored or distorted.
   ========================================================= */

.yt-official-icon {
  display: inline-block;
  flex: 0 0 auto;
  width: 38px;
  height: 27px;
  background-image: url("https://developers.google.com/static/youtube/images/youtube-icons-2x.png");
  background-repeat: no-repeat;
  /* Official sheet is 410x560. Scale it to 40% and crop the top red icon. */
  background-size: 164px 224px;
  background-position: -63px -22px;
  border-radius: 0;
}

.header-socials .youtube-official-link {
  min-width: 42px;
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 11px;
  background: #ffffff;
  border: 1px solid rgba(255,255,255,.18);
}
.header-socials .youtube-official-link .yt-official-icon {
  transform: scale(.74);
  transform-origin: center;
}

/* Social card uses official icon on a single solid white background. */
.social-card.youtube .yt-official-icon {
  width: 50px;
  height: 36px;
  background-size: 216px 295px;
  background-position: -83px -29px;
  background-color: #fff;
}

/* OAuth entry is a YouTube-integrated component. Keep a single solid background,
   and use the official, unmodified red YouTube icon. */
.youtube-login-btn {
  min-height: 48px;
  background: #ffffff !important;
  background-image: none !important;
  color: #111111 !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.18) !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  gap: 10px;
}
.youtube-login-btn:hover {
  background: #f4f4f4 !important;
}
.youtube-login-btn .yt-official-icon {
  width: 38px;
  height: 27px;
}

/* Disable all old homemade YouTube glyph/logo presentations. */
.youtube-login-icon,
.youtube-platform svg,
.youtube-help-logo svg,
.help-platform-icon.youtube-platform svg {
  display: none !important;
}

@media (max-width: 680px) {
  .yt-official-icon {
    width: 34px;
    height: 24px;
    background-size: 147px 201px;
    background-position: -57px -20px;
  }
  .youtube-login-btn {
    min-height: 46px;
  }
}

/* =========================================================
   V90 — YouTube branding layout fix
   - Restore the 3-column access step after removing the old custom logo column.
   - Keep the official YouTube asset visually contained and undistorted.
   ========================================================= */
.access-step {
  grid-template-columns: 34px minmax(0, 1fr) auto !important;
  column-gap: 14px !important;
}
.access-step-copy {
  min-width: 0 !important;
  width: auto !important;
}
.access-step-copy > strong,
.access-step-copy > span {
  width: auto !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
.access-step-status {
  justify-self: end !important;
  white-space: nowrap !important;
}

/* Official YouTube icon: keep its intrinsic crop ratio and never stretch it. */
.yt-official-icon {
  width: 38px !important;
  height: 27px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  flex: 0 0 38px !important;
  background-size: 164px 224px !important;
  background-position: -63px -22px !important;
  background-color: transparent !important;
}

/* Social panel: put the official icon inside the same neutral 50x50 holder used by the other networks. */
.social-card.youtube > .yt-official-icon {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  max-width: 50px !important;
  flex-basis: 50px !important;
  border-radius: 16px !important;
  background-color: #fff !important;
  background-size: 164px 224px !important;
  background-position: -57px -10px !important;
  box-shadow: none !important;
}

.youtube-login-btn .yt-official-icon {
  width: 38px !important;
  height: 27px !important;
  min-width: 38px !important;
  flex-basis: 38px !important;
}

@media (max-width: 680px) {
  .access-step {
    grid-template-columns: 32px minmax(0, 1fr) auto !important;
    gap: 10px !important;
  }
  .access-step-copy > strong { font-size: .80rem !important; }
  .access-step-copy > span { font-size: .64rem !important; }
}


/* =========================================================
   V93 — Member access gate visual fix
   Restores a true 4-column layout:
   [step] [official YouTube icon] [copy/account] [status]
   ========================================================= */

.access-step {
  grid-template-columns: 34px 46px minmax(0, 1fr) auto !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 0 !important;
}

.access-step-number {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: center !important;
}

.access-platform-logo.youtube-platform {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 46px !important;
  height: 42px !important;
  min-width: 46px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 12px !important;
  background: #ffffff !important;
  color: inherit !important;
  overflow: hidden !important;
}

.access-platform-logo.youtube-platform .yt-official-icon {
  display: block !important;
  width: 34px !important;
  height: 24px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  flex: 0 0 34px !important;
  background-size: 147px 201px !important;
  background-position: -57px -20px !important;
  background-color: transparent !important;
  transform: none !important;
}

.access-step-copy {
  grid-column: 3 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  width: 100% !important;
  text-align: left !important;
}

.access-step-copy > strong,
.access-step-copy > span {
  width: auto !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.access-step-status {
  grid-column: 4 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: end !important;
  white-space: nowrap !important;
  margin: 0 !important;
}

.access-account {
  min-width: 0 !important;
  flex-wrap: nowrap !important;
}

.access-account img,
.access-account-placeholder {
  flex: 0 0 auto !important;
}

/* Gate cards must size naturally when the pending/connected content grows. */
.member-map-gate {
  overflow-y: auto !important;
  overscroll-behavior: contain;
}

.member-gate-card-v2 {
  max-height: none !important;
}

@media (max-width: 680px) {
  .access-step {
    grid-template-columns: 32px 40px minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 9px 10px !important;
    padding: 12px !important;
  }

  .access-step-number {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
  }

  .access-platform-logo.youtube-platform {
    grid-column: 2 !important;
    grid-row: 1 / span 2 !important;
    width: 40px !important;
    height: 38px !important;
    min-width: 40px !important;
  }

  .access-platform-logo.youtube-platform .yt-official-icon {
    width: 30px !important;
    height: 21px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    flex-basis: 30px !important;
    background-size: 130px 177px !important;
    background-position: -50px -18px !important;
  }

  .access-step-copy {
    grid-column: 3 !important;
    grid-row: 1 !important;
  }

  .access-step-status {
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    margin-top: 2px !important;
  }
}


/* =========================================================
   V99 — carregamento central da localização
   ========================================================= */
.map-location-loading[hidden] {
  display: none !important;
}

.map-location-loading {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 6200;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: max-content;
  padding: 15px 20px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 16px;
  background: rgba(5, 22, 31, .92);
  color: #ffffff;
  box-shadow: 0 16px 46px rgba(0,0,0,.34);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: none;
}

.map-location-loading strong {
  font-size: .92rem;
  font-weight: 900;
  letter-spacing: -.01em;
}

.map-location-loading-spinner {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  border: 3px solid rgba(255,255,255,.24);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: mapLocationSpin .8s linear infinite;
}

@keyframes mapLocationSpin {
  to { transform: rotate(360deg); }
}

@media (max-width: 680px) {
  .map-location-loading {
    padding: 13px 16px;
    border-radius: 14px;
  }
  .map-location-loading strong {
    font-size: .82rem;
  }
}
\n\n/* =========================================================\n   V102 — current-city card + stable timeline dates\n   ========================================================= */\n@media (min-width: 821px) {\n  .live-current-place,\n  .member-map-shell:fullscreen .live-current-place,\n  .member-map-shell:-webkit-full-screen .live-current-place {\n    box-sizing: border-box !important;\n    top: 12px !important;\n    width: min(390px, calc(100% - 430px)) !important;\n    min-width: 280px !important;\n    max-width: 390px !important;\n    height: 62px !important;\n    min-height: 62px !important;\n    max-height: 62px !important;\n    padding: 7px 15px !important;\n    overflow: hidden !important;\n    display: flex !important;\n    flex-direction: column !important;\n    align-items: center !important;\n    justify-content: center !important;\n  }\n  .live-current-place small {\n    margin: 0 0 2px !important;\n    line-height: 1 !important;\n  }\n  .live-current-place strong {\n    display: block !important;\n    width: 100% !important;\n    margin: 0 !important;\n    font-size: clamp(.84rem, 1.1vw, 1.02rem) !important;\n    line-height: 1.08 !important;\n    white-space: nowrap !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n  }\n  .live-current-place > span,\n  .live-current-place .live-pulse-row {\n    margin-top: 3px !important;\n    line-height: 1 !important;\n  }\n  .trip-stat-pill {\n    top: 80px !important;\n  }\n}\n\n@media (max-width: 820px) {\n  .live-current-place strong {\n    white-space: nowrap !important;\n    overflow: hidden !important;\n    text-overflow: ellipsis !important;\n  }\n}\n
.automatic-not-member{display:grid;gap:12px;width:100%;padding:18px;border:1px solid rgba(255,190,55,.55);border-radius:16px;background:rgba(90,57,0,.23);text-align:center}
.automatic-not-member strong{color:#fff;font-size:1.02rem;line-height:1.35}
.automatic-not-member>a{display:inline-flex;justify-self:center;padding:11px 15px;border-radius:12px;background:#ffbe37;color:#171000;font-weight:950;text-decoration:none}
.automatic-not-member small{color:#c9d7de;line-height:1.55}
.automatic-not-member small a{color:#68dcff;font-weight:850}

.membership-diag-code{display:inline-block;padding:3px 7px;border-radius:7px;background:rgba(0,0,0,.28);color:#ffe49a;font-size:.78rem;word-break:break-all}


/* =========================================================
   V105 — visual refresh inspired by travel-journal apps
   ========================================================= */

body {
  padding-bottom: 72px;
}

main {
  position: relative;
}
main::before {
  content: "";
  position: absolute;
  inset: 720px 0 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 12% 10%, rgba(42, 183, 214, .07), transparent 28rem),
    radial-gradient(circle at 86% 42%, rgba(70, 220, 177, .05), transparent 26rem);
  z-index: -1;
}

/* Less "separate pages", more one continuous travel journal. */
.section {
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}
.section + .section {
  border-top: 1px solid rgba(255,255,255,.055);
}
.latest-video {
  padding-top: 22px !important;
}
.map-section,
.store-section,
.about-section {
  padding-top: 54px !important;
}
.section-heading {
  margin-bottom: 22px;
}
.section-heading h2 {
  font-size: clamp(1.9rem, 5.5vw, 3.8rem);
}

/* Header social buttons all use the same clean container. */
.header-socials-unified {
  gap: 7px !important;
}
.header-socials-unified .social-header-button,
.header-socials-unified .youtube-official-link {
  width: 38px !important;
  height: 34px !important;
  min-width: 38px !important;
  min-height: 34px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 11px !important;
  background: #fff !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow: 0 8px 20px rgba(0,0,0,.14) !important;
}
.header-socials-unified .social-header-button img {
  width: 22px !important;
  height: 22px !important;
  object-fit: contain !important;
}
.header-socials-unified .youtube-official-link .yt-official-icon {
  transform: scale(.68) !important;
}

/* Map hero */
.map-live-intro-v105 {
  position: relative;
  padding: 24px 24px 22px !important;
  margin-bottom: 16px !important;
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.09);
  background:
    radial-gradient(circle at 100% 0, rgba(87,214,237,.13), transparent 18rem),
    linear-gradient(145deg, rgba(14,42,57,.94), rgba(7,25,36,.95));
  overflow: hidden;
}
.map-live-intro-v105::after {
  content: "";
  position: absolute;
  right: -70px;
  top: -90px;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(87,214,237,.10);
  border-radius: 50%;
  box-shadow: 0 0 0 34px rgba(87,214,237,.025), 0 0 0 70px rgba(87,214,237,.018);
  pointer-events: none;
}
.map-live-intro-v105 .map-live-title {
  position: relative;
  z-index: 1;
}
.map-live-intro-v105 h2 {
  position: relative;
  z-index: 1;
  max-width: 760px !important;
  margin: 8px 0 8px !important;
  font-size: clamp(2rem, 6vw, 4.3rem) !important;
  line-height: .97 !important;
  letter-spacing: -.055em !important;
}
.map-live-lead {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin: 0 !important;
  color: #cfe0e8;
  font-size: clamp(.96rem, 1.7vw, 1.12rem);
  line-height: 1.55;
}
.map-members-callout {
  position: relative;
  z-index: 1;
  margin-top: 18px;
  display: grid;
  grid-template-columns: 40px minmax(0,1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 11px 12px;
  border-radius: 16px;
  border: 1px solid rgba(255,190,55,.20);
  background: rgba(5,18,26,.66);
}
.map-members-lock {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #071824;
  background: linear-gradient(135deg,#ffe79a,#ffbe37);
  box-shadow: 0 8px 20px rgba(255,190,55,.16);
  font-size: .68rem;
}
.map-members-callout div {
  display: grid;
  min-width: 0;
}
.map-members-callout strong {
  font-size: .83rem;
}
.map-members-callout small {
  margin-top: 2px;
  color: #8ea9b6;
  font-size: .68rem;
}
.map-members-callout > a {
  padding: 9px 12px;
  border-radius: 11px;
  color: #071824;
  background: #fff;
  font-size: .68rem;
  font-weight: 950;
  white-space: nowrap;
}

/* Step bubbles: clean photo bubbles, no sequence number. */
.polar-step-photo,
.polar-step-dot {
  overflow: hidden !important;
}
.polar-step-photo > span,
.polar-step-dot > span {
  display: none !important;
}
.polar-step-photo {
  border: 3px solid #fff !important;
  box-shadow:
    0 0 0 2px rgba(6,19,29,.65),
    0 9px 20px rgba(0,0,0,.30) !important;
}
.polar-step-photo:hover {
  box-shadow:
    0 0 0 3px rgba(87,214,237,.55),
    0 11px 24px rgba(0,0,0,.34) !important;
}

/* Three independent Polarsteps-like metric cards. */
.trip-stat-pill.trip-stat-v105,
.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
  display: flex !important;
  gap: 7px !important;
  height: auto !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  overflow: visible !important;
}
.trip-stat-v105 .trip-stat-card {
  min-width: 110px !important;
  min-height: 58px !important;
  padding: 9px 11px !important;
  display: grid !important;
  grid-template-columns: 30px 1fr !important;
  grid-template-rows: auto auto !important;
  column-gap: 8px !important;
  align-items: center !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: 15px !important;
  background: rgba(5,20,29,.90) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.20) !important;
  backdrop-filter: blur(14px) !important;
}
.trip-stat-v105 .trip-stat-card + .trip-stat-card {
  border-left: 1px solid rgba(255,255,255,.13) !important;
}
.trip-stat-v105 .stat-icon {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  width: 30px !important;
  height: 30px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 10px !important;
  color: #77def0 !important;
  background: rgba(87,214,237,.10) !important;
}
.trip-stat-v105 .stat-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.trip-stat-v105 strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
  font-size: .90rem !important;
  line-height: 1 !important;
}
.trip-stat-v105 small {
  grid-column: 2 !important;
  grid-row: 2 !important;
  font-size: .54rem !important;
  line-height: 1.1 !important;
  color: #91aab7 !important;
}

/* Social network cards use a single neutral icon system. */
.social-grid-v105 {
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 10px;
}
.social-grid-v105 .social-card {
  padding: 14px !important;
  border-radius: 18px !important;
  background: rgba(11,34,47,.80) !important;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.social-grid-v105 .social-card:hover {
  transform: translateY(-2px);
  border-color: rgba(87,214,237,.30);
  background: rgba(14,43,58,.94) !important;
}
.social-platform-tile {
  width: 48px;
  height: 42px;
  flex: 0 0 48px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #fff;
  overflow: hidden;
}
.social-platform-tile > img {
  width: 27px;
  height: 27px;
  object-fit: contain;
}
.social-platform-tile > .yt-official-icon {
  transform: scale(.82);
}

/* Fixed travel dock */
.trip-dock-v105 {
  position: fixed;
  z-index: 1180;
  left: 50%;
  bottom: max(10px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(760px, calc(100% - 28px));
  min-height: 52px;
  padding: 7px 9px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 18px;
  background: rgba(5,18,27,.88);
  box-shadow: 0 16px 42px rgba(0,0,0,.38);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.trip-dock-v105 > a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 11px;
  border-radius: 11px;
  color: #aec2cc;
  font-size: .70rem;
  font-weight: 850;
  white-space: nowrap;
}
.trip-dock-v105 > a:hover {
  color: #fff;
  background: rgba(255,255,255,.07);
}
.trip-dock-brand {
  gap: 8px;
  margin-right: auto;
  color: #fff !important;
  justify-content: flex-start !important;
}
.trip-dock-brand > span:last-child {
  display: grid;
  line-height: 1.05;
}
.trip-dock-brand strong {
  font-size: .72rem;
}
.trip-dock-brand small {
  margin-top: 3px;
  color: #7f9ca9;
  font-size: .52rem;
}
.trip-dock-pulse {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #55e8aa;
  box-shadow: 0 0 0 5px rgba(85,232,170,.10);
}
.trip-dock-separator {
  width: 1px;
  height: 26px;
  background: rgba(255,255,255,.10);
}
.trip-dock-member {
  color: #fff !important;
  background: rgba(87,214,237,.10);
  border: 1px solid rgba(87,214,237,.13);
}

/* Mobile refinements */
@media (max-width: 820px) {
  body {
    padding-bottom: 72px;
  }
  .section {
    width: min(100% - 24px, var(--max));
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }
  .map-live-intro-v105 {
    padding: 19px 17px 17px !important;
    border-radius: 20px;
  }
  .map-live-intro-v105 h2 {
    font-size: clamp(2rem, 10vw, 3rem) !important;
  }
  .map-members-callout {
    grid-template-columns: 36px minmax(0,1fr);
  }
  .map-members-callout > a {
    grid-column: 1 / -1;
    text-align: center;
    justify-content: center;
  }

  /* Stats become three small cards instead of one squeezed ribbon. */
  .trip-stat-pill.trip-stat-v105,
  .member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
  .member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
    top: calc(max(8px, env(safe-area-inset-top)) + 62px) !important;
    left: 8px !important;
    right: 98px !important;
    width: auto !important;
    display: grid !important;
    grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    gap: 5px !important;
  }
  .trip-stat-v105 .trip-stat-card {
    min-width: 0 !important;
    min-height: 46px !important;
    padding: 6px 4px !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto !important;
    text-align: center !important;
    border-radius: 11px !important;
  }
  .trip-stat-v105 .stat-icon {
    display: none !important;
  }
  .trip-stat-v105 strong {
    grid-column: 1 !important;
    grid-row: 1 !important;
    font-size: .68rem !important;
  }
  .trip-stat-v105 small {
    grid-column: 1 !important;
    grid-row: 2 !important;
    font-size: .38rem !important;
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .social-grid-v105 {
    grid-template-columns: 1fr;
  }

  .trip-dock-v105 {
    min-height: 54px;
    width: calc(100% - 18px);
    gap: 3px;
    padding: 6px;
    border-radius: 17px;
  }
  .trip-dock-brand,
  .trip-dock-separator {
    display: none !important;
  }
  .trip-dock-v105 > a {
    flex: 1 1 0;
    padding: 0 5px;
    font-size: .60rem;
  }
  .trip-dock-member {
    flex: 1.35 1 0 !important;
  }
}

@media (max-width: 390px) {
  .trip-dock-v105 > a {
    font-size: .55rem;
  }
}


/* =========================================================
   V106 — header + centering + smaller map bubbles
   ========================================================= */

.topbar.topbar-v106 {
  position: sticky;
  top: 0;
  z-index: 1300;
  min-height: 76px;
  display: grid;
  grid-template-columns: minmax(155px, .75fr) minmax(430px, 1.7fr) minmax(260px, .9fr);
  align-items: center;
  gap: 18px;
  padding: 0 max(24px, calc((100vw - var(--max))/2));
  border-bottom: 1px solid rgba(255,255,255,.10);
  background: rgba(4,18,28,.94);
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.brand-v106 {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  justify-self: start;
  color: #fff;
  text-decoration: none;
}

.brand-globe-v106 {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #fff;
}
.brand-globe-v106 svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.brand-copy-v106 strong {
  display: block;
  color: #fff;
  font-size: .92rem;
  line-height: .82;
  letter-spacing: -.035em;
}

.desktop-nav-v106 {
  height: 76px;
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 28px;
}
.desktop-nav-v106 a {
  position: relative;
  min-width: max-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 5px;
  color: #a8b6c1;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .015em;
  text-decoration: none;
  transition: color .18s ease;
}
.desktop-nav-v106 a svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.desktop-nav-v106 a:hover,
.desktop-nav-v106 a.active {
  color: #55d9f2;
}
.desktop-nav-v106 a.active::after,
.desktop-nav-v106 a:hover::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: #55d9f2;
}

.topbar-actions-v106 {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.header-members-pill-v106 {
  height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  color: #e7eff3;
  background: rgba(255,255,255,.035);
  font-size: .61rem;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}
.header-members-pill-v106 svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}
.header-socials-v106 {
  display: flex;
  align-items: center;
  gap: 5px;
}
.header-socials-v106 a {
  width: 32px !important;
  height: 32px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,.04) !important;
}
.header-socials-v106 img {
  width: 19px !important;
  height: 19px !important;
  object-fit: contain;
}
.header-socials-v106 .yt-official-icon {
  transform: scale(.54) !important;
}

/* True centering for the map presentation. */
.map-live-intro-v105 {
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  justify-content: center;
  text-align: center !important;
}
.map-live-intro-v105 .map-live-title {
  width: auto !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px !important;
  margin: 0 auto 12px !important;
  padding: 7px 11px;
  border-radius: 999px;
  color: #d9e7ed;
  background: rgba(3,16,24,.40);
  border: 1px solid rgba(255,255,255,.08);
  font-size: .70rem !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  font-weight: 900;
}
.map-live-intro-v105 .map-live-dot {
  width: 8px !important;
  height: 8px !important;
  flex: 0 0 8px !important;
}
.map-live-intro-v105 h2 {
  width: 100%;
  max-width: 820px !important;
  margin: 0 auto 10px !important;
  text-align: center !important;
  font-size: clamp(2.15rem, 5.3vw, 4rem) !important;
  line-height: 1 !important;
}
.map-live-intro-v105 .map-live-lead {
  width: 100%;
  max-width: 800px !important;
  margin: 0 auto !important;
  text-align: center !important;
}
.map-members-callout {
  width: min(760px, 100%);
  margin: 18px auto 0 !important;
}

/* Current city and metrics share the same center line. */
.live-current-place {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(390px, calc(100% - 36px)) !important;
  text-align: center !important;
}

.trip-stat-pill.trip-stat-v105,
.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(620px, calc(100% - 44px)) !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}
.trip-stat-v105 .trip-stat-card {
  width: 100% !important;
  min-width: 0 !important;
}

/* Markers have a calmer outline after shrinking. */
.polar-step-photo {
  border-width: 2px !important;
  box-shadow: 0 0 0 1px rgba(4,18,28,.72), 0 6px 14px rgba(0,0,0,.25) !important;
}

/* Tablet: keep header balanced. */
@media (max-width: 1060px) {
  .topbar.topbar-v106 {
    grid-template-columns: auto 1fr auto;
    padding-inline: 18px;
  }
  .desktop-nav-v106 {
    gap: 13px;
  }
  .desktop-nav-v106 a {
    font-size: .61rem;
  }
  .desktop-nav-v106 a svg {
    width: 18px;
    height: 18px;
  }
  .header-members-pill-v106 span {
    display: none;
  }
  .header-members-pill-v106 {
    width: 38px;
    padding: 0;
    justify-content: center;
  }
}

/* Mobile: compact top bar; bottom dock remains the main nav. */
@media (max-width: 760px) {
  .topbar.topbar-v106 {
    min-height: 62px;
    grid-template-columns: 1fr auto;
    padding: 0 12px;
  }
  .desktop-nav-v106 {
    display: none !important;
  }
  .brand-globe-v106 {
    width: 32px;
    height: 32px;
  }
  .brand-globe-v106 svg {
    width: 29px;
    height: 29px;
  }
  .brand-copy-v106 strong {
    font-size: .78rem;
  }
  .header-members-pill-v106 {
    display: none;
  }
  .header-socials-v106 a {
    width: 30px !important;
    height: 30px !important;
  }

  .map-live-intro-v105 h2 {
    font-size: clamp(2rem, 10vw, 3rem) !important;
  }
  .map-live-intro-v105 .map-live-title {
    font-size: .60rem !important;
  }

  .live-current-place {
    width: min(320px, calc(100% - 30px)) !important;
  }

  .trip-stat-pill.trip-stat-v105,
  .member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
  .member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: min(430px, calc(100% - 24px)) !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}


/* =========================================================
   V107 — reference-matched visual refresh
   ========================================================= */

:root{
  --v107-bg:#061722;
  --v107-panel:#0a2130;
  --v107-panel2:#0b2635;
  --v107-line:rgba(255,255,255,.11);
  --v107-text:#f7fbfd;
  --v107-muted:#b4c2ca;
  --v107-cyan:#4ed6ff;
  --v107-gold:#f7bf44;
  --v107-red:#ff3155;
}

.topbar.topbar-v107{
  min-height:82px !important;
  grid-template-columns:minmax(150px,.78fr) minmax(480px,1.7fr) auto !important;
  border-bottom:1px solid rgba(255,255,255,.09) !important;
  background:rgba(3,16,25,.97) !important;
  box-shadow:none !important;
}

.brand-v107{gap:10px !important;}
.brand-globe-v107{width:40px !important;height:40px !important;}
.brand-globe-v107 svg{width:38px !important;height:38px !important;}
.brand-copy-v107 strong{
  font-size:.96rem !important;
  line-height:.80 !important;
  letter-spacing:-.045em !important;
}

.desktop-nav-v107{
  height:82px !important;
  gap:34px !important;
}
.desktop-nav-v107 a{
  font-size:.74rem !important;
  color:#aebbc3 !important;
}
.desktop-nav-v107 a.active{
  color:var(--v107-cyan) !important;
}
.desktop-nav-v107 a.active::after{
  height:3px !important;
  background:var(--v107-cyan) !important;
}

.topbar-actions-v107{
  justify-content:flex-end !important;
}
.header-socials-v107{
  gap:7px !important;
}
.header-socials-v107 a{
  width:34px !important;
  height:34px !important;
  border-radius:10px !important;
  background:rgba(255,255,255,.045) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:none !important;
}
.header-socials-v107 img{
  width:19px !important;
  height:19px !important;
}
.header-socials-v107 .yt-official-icon{
  transform:scale(.56) !important;
}

/* Hero */
.map-live-intro-v107{
  width:min(960px,calc(100% - 36px));
  margin:26px auto 24px;
  padding:6px 20px 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.map-live-title-v107{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 auto 14px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(3,16,24,.52);
  color:#e6eef2;
  font-size:.69rem;
  font-weight:900;
  letter-spacing:.10em;
}
.map-live-dot-v107{
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--v107-red);
  box-shadow:0 0 0 6px rgba(255,49,85,.10);
}

.map-main-title-v107{
  margin:0;
  color:#fff;
  font-size:clamp(2.9rem,7vw,5.4rem);
  line-height:.95;
  letter-spacing:-.055em;
  font-weight:950;
}

.map-subtitle-v107{
  margin:10px 0 5px;
  color:var(--v107-gold);
  font-size:clamp(1.35rem,3vw,2.05rem);
  line-height:1.1;
  font-weight:900;
  letter-spacing:-.025em;
}

.map-live-lead-v107{
  max-width:740px;
  margin:4px auto 0;
  color:#d0d9de;
  font-size:clamp(.96rem,1.7vw,1.12rem);
  line-height:1.55;
}

.map-members-callout-v107{
  width:min(740px,100%);
  margin:20px auto 0;
  min-height:64px;
  padding:10px 12px 10px 14px;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  border:1px solid rgba(247,191,68,.52);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(62,44,8,.40),rgba(7,24,34,.90));
  box-shadow:0 0 26px rgba(247,191,68,.08);
}
.map-members-star-v107{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  color:#111;
  background:linear-gradient(135deg,#ffe598,#f7b93e);
  box-shadow:0 8px 20px rgba(247,191,68,.18);
}
.map-members-callout-v107 strong{
  justify-self:start;
  color:#fff;
  font-size:.88rem;
  text-align:left;
}
.map-members-callout-v107 a{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 16px;
  border-radius:12px;
  color:#111;
  background:linear-gradient(135deg,#ffe79a,#f7b83b);
  box-shadow:0 8px 20px rgba(247,191,68,.18);
  font-size:.72rem;
  font-weight:950;
  text-decoration:none;
}

/* map shell composition */
.member-map-shell{
  overflow:hidden;
  border-radius:24px !important;
  border:1px solid rgba(255,255,255,.10) !important;
  background:#061722 !important;
}

.live-current-place{
  top:18px !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(420px,calc(100% - 40px)) !important;
  min-height:104px !important;
  display:flex !important;
  flex-direction:column;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  border-radius:20px !important;
  background:rgba(5,22,31,.94) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  box-shadow:0 14px 30px rgba(0,0,0,.22) !important;
}
.live-current-place .eyebrow,
.live-current-place .live-location-kicker{
  text-align:center !important;
}
.live-current-place h3,
.live-current-place strong,
.live-current-place .live-location-city{
  width:100%;
  text-align:center !important;
}

.trip-stat-pill.trip-stat-v105,
.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105{
  top:132px !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(760px,calc(100% - 54px)) !important;
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px !important;
}

.trip-stat-v105 .trip-stat-card{
  min-height:112px !important;
  padding:18px 18px 16px !important;
  grid-template-columns:58px 1fr !important;
  grid-template-rows:auto auto 1fr !important;
  border-radius:18px !important;
  background:rgba(6,28,39,.91) !important;
  border:1px solid rgba(255,255,255,.11) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.18) !important;
}
.trip-stat-v105 .stat-icon{
  width:48px !important;
  height:48px !important;
  border-radius:14px !important;
}
.trip-stat-v105 .stat-icon svg{
  width:28px !important;
  height:28px !important;
}
.trip-stat-v105 strong{
  font-size:1.55rem !important;
  line-height:1 !important;
  align-self:end !important;
}
.trip-stat-v105 small{
  margin-top:6px !important;
  font-size:.72rem !important;
  color:#c7d2d8 !important;
  text-align:left !important;
}

/* timeline */
.steps-panel,
.steps-dock,
.steps-rail-wrap{
  background:rgba(5,22,31,.95) !important;
}
.steps-section-title,
.steps-heading,
.steps-label{
  color:var(--v107-cyan) !important;
}
.step-card,
.step-item{
  text-align:center !important;
}
.step-card img,
.step-item img,
.step-thumb{
  border:2px solid #fff !important;
  box-shadow:0 0 0 2px rgba(78,214,255,.05) !important;
}

/* Social strip */
.social-strip-heading-v107{
  margin:24px auto 10px;
  text-align:center;
  color:var(--v107-cyan);
  font-size:.74rem;
  font-weight:950;
  letter-spacing:.12em;
}
.social-grid-v107{
  width:min(640px,calc(100% - 28px));
  margin:0 auto 24px;
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:0 !important;
  overflow:hidden;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.11);
  background:rgba(7,27,38,.88);
}
.social-grid-v107 .social-card{
  min-height:62px;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  justify-content:center !important;
}
.social-grid-v107 .social-card + .social-card{
  border-left:1px solid rgba(255,255,255,.08) !important;
}
.social-grid-v107 .round-arrow{
  display:none !important;
}

/* bottom dock */
.trip-dock-v105{
  border-radius:0 !important;
  width:100% !important;
  max-width:none !important;
  left:0 !important;
  bottom:0 !important;
  transform:none !important;
  justify-content:center !important;
  border-left:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  background:rgba(3,16,25,.97) !important;
}
.trip-dock-v105 > a{
  min-width:140px;
}
.trip-dock-brand,
.trip-dock-separator{
  display:none !important;
}
.trip-dock-member{
  background:transparent !important;
  border:0 !important;
}

/* Mobile */
@media(max-width:760px){
  .topbar.topbar-v107{
    min-height:62px !important;
    grid-template-columns:1fr auto !important;
  }
  .desktop-nav-v107{display:none !important;}
  .map-main-title-v107{
    font-size:clamp(2.45rem,12vw,3.65rem) !important;
  }
  .map-subtitle-v107{
    font-size:clamp(1.1rem,5.2vw,1.55rem) !important;
  }
  .map-live-lead-v107{
    font-size:.93rem !important;
  }
  .map-members-callout-v107{
    grid-template-columns:40px 1fr !important;
  }
  .map-members-callout-v107 a{
    grid-column:1/-1;
  }

  .live-current-place{
    top:12px !important;
    min-height:94px !important;
    width:min(340px,calc(100% - 28px)) !important;
  }

  .trip-stat-pill.trip-stat-v105,
  .member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
  .member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105{
    top:116px !important;
    width:calc(100% - 22px) !important;
    gap:7px !important;
  }

  .trip-stat-v105 .trip-stat-card{
    min-height:72px !important;
    padding:10px 7px !important;
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    text-align:center !important;
  }
  .trip-stat-v105 .stat-icon{
    display:none !important;
  }
  .trip-stat-v105 strong,
  .trip-stat-v105 small{
    grid-column:1 !important;
    text-align:center !important;
  }
  .trip-stat-v105 strong{
    font-size:.90rem !important;
  }
  .trip-stat-v105 small{
    font-size:.54rem !important;
    white-space:normal !important;
  }

  .social-grid-v107{
    width:calc(100% - 20px);
  }
  .social-platform-tile{
    width:38px !important;
    height:36px !important;
    flex-basis:38px !important;
  }

  .trip-dock-v105 > a{
    min-width:0 !important;
  }
}


/* =========================================================
   V108 — clean header, hero and metrics
   ========================================================= */
.topbar.topbar-v108 {
  position: sticky !important;
  top: 0 !important;
  z-index: 1500 !important;
  height: 76px !important;
  min-height: 76px !important;
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 190px 1fr 190px !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 0 max(24px, calc((100vw - var(--max))/2)) !important;
  overflow: visible !important;
  background: rgba(3,16,25,.98) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: none !important;
}

.brand-v108 {
  justify-self: start !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: #fff !important;
  text-decoration: none !important;
}
.brand-mark-v108 {
  position: relative !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  border: 2px solid #fff !important;
  border-radius: 50% !important;
}
.brand-mark-v108::before {
  content: "" !important;
  position: absolute !important;
  inset: 6px 10px !important;
  border-left: 1px solid rgba(255,255,255,.86) !important;
  border-right: 1px solid rgba(255,255,255,.86) !important;
  border-radius: 50% !important;
}
.brand-mark-v108::after {
  content: "" !important;
  position: absolute !important;
  left: 4px !important;
  right: 4px !important;
  top: 15px !important;
  border-top: 1px solid rgba(255,255,255,.86) !important;
}
.brand-text-v108 {
  color: #fff !important;
  font-size: .92rem !important;
  font-weight: 950 !important;
  line-height: .82 !important;
  letter-spacing: -.045em !important;
}

.desktop-nav-v108 {
  justify-self: center !important;
  align-self: stretch !important;
  height: 76px !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: center !important;
  gap: 34px !important;
}
.desktop-nav-v108 a {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 2px !important;
  margin: 0 !important;
  min-width: 0 !important;
  color: #aebbc3 !important;
  background: transparent !important;
  border: 0 !important;
  font-size: .73rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  transform: none !important;
}
.desktop-nav-v108 a::before { display:none !important; }
.desktop-nav-v108 a.active,
.desktop-nav-v108 a:hover { color:#4ed6ff !important; }
.desktop-nav-v108 a.active::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 3px !important;
  border-radius: 3px 3px 0 0 !important;
  background: #4ed6ff !important;
}

.header-socials-v108 {
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
}
.header-socials-v108 .social-top-v108 {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 11px !important;
  background: rgba(255,255,255,.045) !important;
  box-shadow: none !important;
  overflow: hidden !important;
  transform: none !important;
}
.header-socials-v108 .social-top-v108 img {
  width: 21px !important;
  height: 21px !important;
  max-width: 21px !important;
  max-height: 21px !important;
  object-fit: contain !important;
  transform: none !important;
}

/* Hero */
.map-live-intro-v108 {
  width: min(980px, calc(100% - 32px)) !important;
  margin: 34px auto 26px !important;
  padding: 0 18px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
.map-main-title-v108 {
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  color: #fff !important;
  font-size: clamp(3rem,7vw,5.35rem) !important;
  line-height: .96 !important;
  font-weight: 950 !important;
  letter-spacing: -.055em !important;
  text-align: center !important;
}
.map-title-pulse-v108 {
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  border-radius: 50% !important;
  background: #ff3155 !important;
  animation: v108MapPulse 1.6s ease-out infinite !important;
}
@keyframes v108MapPulse {
  0%   { box-shadow:0 0 0 0 rgba(255,49,85,.55); transform:scale(1); }
  65%  { box-shadow:0 0 0 12px rgba(255,49,85,0); transform:scale(1.08); }
  100% { box-shadow:0 0 0 0 rgba(255,49,85,0); transform:scale(1); }
}
.map-subtitle-v108 {
  margin: 12px 0 6px !important;
  color: #f7bf44 !important;
  font-size: clamp(1.7rem,3.3vw,2.45rem) !important;
  line-height: 1.08 !important;
  font-weight: 950 !important;
  letter-spacing: -.03em !important;
  text-align: center !important;
}
.map-live-lead-v108 {
  max-width: 760px !important;
  margin: 0 auto !important;
  color: #d2dbe0 !important;
  font-size: clamp(.98rem,1.7vw,1.10rem) !important;
  line-height: 1.55 !important;
  text-align: center !important;
}
.map-members-callout-v108 {
  width: min(760px,100%) !important;
  min-height: 68px !important;
  margin: 22px auto 0 !important;
  padding: 11px 12px 11px 14px !important;
  display: grid !important;
  grid-template-columns: 46px minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: 13px !important;
  border: 1px solid rgba(247,191,68,.58) !important;
  border-radius: 18px !important;
  background: linear-gradient(145deg,rgba(74,51,7,.42),rgba(7,24,34,.92)) !important;
  box-shadow: 0 0 28px rgba(247,191,68,.10) !important;
}
.map-members-star-v108 {
  width: 44px !important;
  height: 44px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 12px !important;
  color: #111 !important;
  background: linear-gradient(135deg,#ffe79a,#f7b83b) !important;
  font-size: 1rem !important;
}
.map-members-callout-v108 strong {
  justify-self: start !important;
  color: #fff !important;
  font-size: .92rem !important;
  text-align: left !important;
}
.map-members-callout-v108 a {
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 0 18px !important;
  border-radius: 12px !important;
  color: #111 !important;
  background: linear-gradient(135deg,#ffe79a,#f7b83b) !important;
  box-shadow: 0 8px 22px rgba(247,191,68,.18) !important;
  font-size: .74rem !important;
  font-weight: 950 !important;
  text-decoration: none !important;
}

/* Current location + stat cards */
.live-current-place {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  text-align: center !important;
}
.trip-stat-pill.trip-stat-v105,
.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: min(760px,calc(100% - 54px)) !important;
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 16px !important;
}
.trip-stat-v105 .trip-stat-card {
  min-height: 112px !important;
  display: grid !important;
  grid-template-columns: 56px minmax(0,1fr) !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  column-gap: 14px !important;
  padding: 17px 18px !important;
  border-radius: 18px !important;
  background: rgba(6,28,39,.92) !important;
  border: 1px solid rgba(255,255,255,.11) !important;
  text-align: left !important;
}
.trip-stat-v105 .trip-stat-card .stat-icon {
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  justify-self: center !important;
  align-self: center !important;
  width: 50px !important;
  height: 50px !important;
  border-radius: 14px !important;
}
.trip-stat-v105 .trip-stat-card strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  align-self: end !important;
  margin: 0 !important;
  font-size: 1.55rem !important;
  line-height: 1 !important;
  text-align: left !important;
}
.trip-stat-v105 .trip-stat-card small {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: start !important;
  align-self: start !important;
  margin: 5px 0 0 !important;
  font-size: .72rem !important;
  line-height: 1.2 !important;
  text-align: left !important;
  color: #c7d2d8 !important;
}
.stat-distance-v108 .stat-icon {
  color:#39c5ff !important;
  background:rgba(57,197,255,.11) !important;
}
.stat-countries-v108 .stat-icon {
  color:#45e57f !important;
  background:rgba(69,229,127,.12) !important;
}
.stat-days-v108 .stat-icon {
  color:#f7bf44 !important;
  background:rgba(247,191,68,.12) !important;
}

/* Reuse the three metric colors in the map controls */
.member-map-shell .leaflet-control a {
  border-color: rgba(57,197,255,.16) !important;
}
.member-map-shell .leaflet-control a:hover {
  color: #39c5ff !important;
}
.gps-status, .map-gps-status {
  border-color: rgba(69,229,127,.22) !important;
}
.current-position-pin, .current-location-marker {
  filter: drop-shadow(0 0 10px rgba(247,191,68,.20));
}

/* Social tiles: same neutral frame, untouched official artwork inside */
.social-grid-v108 .social-platform-tile {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}
.social-grid-v108 .social-platform-tile img {
  width: 25px !important;
  height: 25px !important;
  object-fit: contain !important;
}

/* Mobile */
@media(max-width:760px) {
  .topbar.topbar-v108 {
    height: 62px !important;
    min-height: 62px !important;
    grid-template-columns: 1fr auto !important;
    padding: 0 12px !important;
  }
  .desktop-nav-v108 { display:none !important; }
  .brand-text-v108 { font-size:.78rem !important; }
  .brand-mark-v108 { width:30px !important; height:30px !important; flex-basis:30px !important; }
  .header-socials-v108 .social-top-v108 {
    width:31px !important; height:31px !important;
    min-width:31px !important; min-height:31px !important;
  }
  .header-socials-v108 .social-top-v108 img {
    width:18px !important; height:18px !important;
  }

  .map-main-title-v108 {
    gap:10px !important;
    font-size:clamp(2.4rem,11vw,3.65rem) !important;
  }
  .map-title-pulse-v108 {
    width:13px !important; height:13px !important; flex-basis:13px !important;
  }
  .map-subtitle-v108 {
    font-size:clamp(1.35rem,6vw,1.75rem) !important;
  }
  .map-members-callout-v108 {
    grid-template-columns:40px 1fr !important;
  }
  .map-members-callout-v108 a {
    grid-column:1/-1 !important;
  }

  .trip-stat-pill.trip-stat-v105,
  .member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
  .member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
    width:calc(100% - 22px) !important;
    gap:7px !important;
  }
  .trip-stat-v105 .trip-stat-card {
    min-height:72px !important;
    padding:9px 6px !important;
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    text-align:center !important;
  }
  .trip-stat-v105 .trip-stat-card .stat-icon { display:none !important; }
  .trip-stat-v105 .trip-stat-card strong,
  .trip-stat-v105 .trip-stat-card small {
    grid-column:1 !important;
    justify-self:center !important;
    text-align:center !important;
  }
  .trip-stat-v105 .trip-stat-card strong { font-size:.90rem !important; }
  .trip-stat-v105 .trip-stat-card small { font-size:.54rem !important; }
}


/* =========================================================
   V109 — final gold subtitle + monochrome social marks
   ========================================================= */

/* Force gold regardless of legacy heading rules. */
body #mapa .map-live-intro-v108 .map-subtitle-v108,
body .map-live-intro-v108 h2.map-subtitle-v108,
body h2.map-subtitle-v108 {
  color: #f7bf44 !important;
  -webkit-text-fill-color: #f7bf44 !important;
  opacity: 1 !important;
  text-shadow: 0 4px 18px rgba(247,191,68,.08) !important;
}

/* Top social icons: white artwork, no recoloring/filtering. */
.header-socials-v108 .social-top-v108 img,
.header-socials-v108 .youtube-white-icon-v109 {
  width: 21px !important;
  height: 21px !important;
  max-width: 21px !important;
  max-height: 21px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Main social section: all three white and visually equal. */
.social-grid-v108 .social-platform-tile {
  width: 46px !important;
  height: 40px !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.035) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 12px !important;
}
.social-grid-v108 .social-platform-tile img,
.social-grid-v108 .youtube-white-icon-v109 {
  width: 26px !important;
  height: 26px !important;
  max-width: 26px !important;
  max-height: 26px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Any remaining footer/dock/social references should remain white. */
footer img[src*="social/"],
.social-card img[src*="social/"],
.header-socials img[src*="social/"] {
  filter: none !important;
}

@media(max-width:760px) {
  .header-socials-v108 .social-top-v108 img,
  .header-socials-v108 .youtube-white-icon-v109 {
    width: 18px !important;
    height: 18px !important;
  }
}


/* =========================================================
   V110 — restore EXACT V104 YouTube branding implementation
   V104 source:
   https://developers.google.com/static/youtube/images/youtube-icons-2x.png
   Official asset is not redrawn, recolored or distorted.
   ========================================================= */

.yt-official-icon {
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: 38px !important;
  height: 27px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  background-image: url("https://developers.google.com/static/youtube/images/youtube-icons-2x.png") !important;
  background-repeat: no-repeat !important;
  background-size: 164px 224px !important;
  background-position: -63px -22px !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  transform: none !important;
  filter: none !important;
}

/* Header: same V104 white holder around the official YouTube mark. */
.header-socials-v108 .youtube-official-link {
  width: 42px !important;
  height: 36px !important;
  min-width: 42px !important;
  min-height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border-radius: 11px !important;
  background: #ffffff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  overflow: hidden !important;
}
.header-socials-v108 .youtube-official-link .yt-official-icon {
  transform: scale(.74) !important;
  transform-origin: center !important;
}

/* Instagram and TikTok keep their V104 files, visually contained. */
.header-socials-v108 .social-top-v108:not(.youtube-official-link) {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  background: rgba(255,255,255,.045) !important;
}
.header-socials-v108 .social-top-v108:not(.youtube-official-link) img {
  width: 20px !important;
  height: 20px !important;
  max-width: 20px !important;
  max-height: 20px !important;
  object-fit: contain !important;
  filter: none !important;
}

/* Main social panel: V104 official YouTube mark inside neutral white holder. */
.social-grid-v108 .youtube-tile-v110 {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  border: 0 !important;
  overflow: hidden !important;
}
.social-grid-v108 .youtube-tile-v110 .yt-official-icon {
  width: 38px !important;
  height: 27px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  background-size: 164px 224px !important;
  background-position: -63px -22px !important;
  transform: scale(.78) !important;
  transform-origin: center !important;
}

/* OAuth/login buttons retain the V104 official YouTube icon behavior. */
.youtube-login-btn .yt-official-icon {
  width: 38px !important;
  height: 27px !important;
  min-width: 38px !important;
  flex-basis: 38px !important;
}

/* Prevent V109 homemade white assets from affecting YouTube presentation. */
img[src*="youtube-white.svg"] {
  display: none !important;
}

/* Keep requested gold subtitle. */
body #mapa .map-live-intro-v108 .map-subtitle-v108,
body .map-live-intro-v108 h2.map-subtitle-v108,
body h2.map-subtitle-v108 {
  color: #f7bf44 !important;
  -webkit-text-fill-color: #f7bf44 !important;
  opacity: 1 !important;
}

@media (max-width: 680px) {
  .yt-official-icon {
    width: 34px !important;
    height: 24px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    background-size: 147px 201px !important;
    background-position: -57px -20px !important;
  }
  .header-socials-v108 .youtube-official-link {
    width: 34px !important;
    height: 32px !important;
    min-width: 34px !important;
    min-height: 32px !important;
  }
}


/* =========================================================
   V111 — social network buttons harmonized with V104 YouTube
   YouTube implementation remains EXACTLY the V104 official one.
   Instagram/TikTok keep their original artwork inside white holders.
   ========================================================= */

/* TOP: all three networks use the same white holder */
.header-socials-v108 .youtube-official-link,
.header-socials-v108 .social-top-v108:not(.youtube-official-link) {
  width: 42px !important;
  height: 36px !important;
  min-width: 42px !important;
  min-height: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border-radius: 11px !important;
  background: #ffffff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 5px 16px rgba(0,0,0,.16) !important;
  overflow: hidden !important;
}

/* Leave V104 YouTube sprite untouched */
.header-socials-v108 .youtube-official-link .yt-official-icon {
  transform: scale(.74) !important;
  transform-origin: center !important;
  filter: none !important;
}

/* Original Instagram/TikTok artwork, no fake recoloring */
.header-socials-v108 .social-top-v108:not(.youtube-official-link) img {
  width: 23px !important;
  height: 23px !important;
  max-width: 23px !important;
  max-height: 23px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

/* "SIGA A GENTE": equal white icon holders */
.social-grid-v108 .social-platform-tile,
.social-grid-v108 .youtube-tile-v110 {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  min-height: 50px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 16px !important;
  background: #ffffff !important;
  border: 0 !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.14) !important;
  overflow: hidden !important;
}

.social-grid-v108 .social-platform-tile img {
  width: 29px !important;
  height: 29px !important;
  max-width: 29px !important;
  max-height: 29px !important;
  object-fit: contain !important;
  filter: none !important;
  opacity: 1 !important;
}

/* V104 official YouTube sprite inside the same holder */
.social-grid-v108 .youtube-tile-v110 .yt-official-icon {
  width: 38px !important;
  height: 27px !important;
  min-width: 38px !important;
  max-width: 38px !important;
  background-size: 164px 224px !important;
  background-position: -63px -22px !important;
  transform: scale(.78) !important;
  transform-origin: center !important;
  filter: none !important;
}

/* Keep the requested gold map subtitle */
body #mapa .map-live-intro-v108 .map-subtitle-v108,
body .map-live-intro-v108 h2.map-subtitle-v108,
body h2.map-subtitle-v108 {
  color: #f7bf44 !important;
  -webkit-text-fill-color: #f7bf44 !important;
}

/* Mobile remains balanced */
@media (max-width: 680px) {
  .header-socials-v108 .youtube-official-link,
  .header-socials-v108 .social-top-v108:not(.youtube-official-link) {
    width: 34px !important;
    height: 32px !important;
    min-width: 34px !important;
    min-height: 32px !important;
    border-radius: 9px !important;
  }

  .header-socials-v108 .social-top-v108:not(.youtube-official-link) img {
    width: 19px !important;
    height: 19px !important;
    max-width: 19px !important;
    max-height: 19px !important;
  }
}


/* V112 — compacta SOMENTE os 3 painéis de métricas do mapa.
   Mantém o conteúdo perfeitamente centralizado. */
#mapa .map-stats-v108 {
  width: min(760px, calc(100% - 32px)) !important;
  gap: 12px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#mapa .map-stat-card-v108 {
  min-height: 112px !important;
  padding: 18px 22px !important;
  border-radius: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

#mapa .map-stat-inner-v108 {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
}

#mapa .map-stat-icon-v108 {
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  flex: 0 0 58px !important;
}

#mapa .map-stat-value-v108 {
  font-size: 34px !important;
  line-height: 1 !important;
}

#mapa .map-stat-label-v108 {
  font-size: 15px !important;
  line-height: 1.2 !important;
  margin-top: 8px !important;
}

@media (max-width: 760px) {
  #mapa .map-stats-v108 {
    width: calc(100% - 20px) !important;
    gap: 7px !important;
  }
  #mapa .map-stat-card-v108 {
    min-height: 82px !important;
    padding: 11px 9px !important;
    border-radius: 18px !important;
  }
  #mapa .map-stat-inner-v108 {
    gap: 8px !important;
  }
  #mapa .map-stat-icon-v108 {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    flex-basis: 42px !important;
  }
  #mapa .map-stat-value-v108 {
    font-size: 24px !important;
  }
  #mapa .map-stat-label-v108 {
    font-size: 11px !important;
    margin-top: 4px !important;
  }
}


/* =========================================================
   V113 — REAL compact sizing for current map overlay classes
   ========================================================= */

/* 1) "ESTAMOS EM" */
#mapa .live-current-place {
  top: 14px !important;
  width: min(420px, calc(100% - 40px)) !important;
  min-height: 84px !important;
  padding: 13px 20px !important;
  border-radius: 18px !important;
}

#mapa .live-current-place .eyebrow,
#mapa .live-current-place .live-location-kicker {
  margin-bottom: 4px !important;
  font-size: .64rem !important;
  letter-spacing: .12em !important;
}

#mapa .live-current-place h3,
#mapa .live-current-place .live-location-city,
#mapa .live-current-place strong {
  font-size: 1.32rem !important;
  line-height: 1.06 !important;
}

#mapa .live-current-place .live-row,
#mapa .live-current-place .live-status-row {
  margin-top: 7px !important;
  gap: 7px !important;
  font-size: .70rem !important;
}


/* 2) THREE INFO CARDS — actual .trip-stat-pill / .trip-stat-card */
#mapa .trip-stat-pill.trip-stat-v105 {
  top: 108px !important;
  width: min(650px, calc(100% - 44px)) !important;
  gap: 10px !important;
}

#mapa .trip-stat-v105 .trip-stat-card {
  min-height: 78px !important;
  height: 78px !important;
  padding: 10px 13px !important;
  grid-template-columns: 38px minmax(0,1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  border-radius: 15px !important;
}

#mapa .trip-stat-v105 .trip-stat-card .stat-icon {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  border-radius: 11px !important;
}

#mapa .trip-stat-v105 .trip-stat-card .stat-icon svg {
  width: 21px !important;
  height: 21px !important;
}

#mapa .trip-stat-v105 .trip-stat-card strong {
  font-size: 1.12rem !important;
  line-height: 1 !important;
}

#mapa .trip-stat-v105 .trip-stat-card small {
  margin-top: 3px !important;
  font-size: .60rem !important;
  line-height: 1.05 !important;
}


/* 3) "POR ONDE JÁ PASSAMOS" panel */
#mapa .steps-dock,
#mapa .steps-panel {
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: min(820px, calc(100% - 36px)) !important;
  border-radius: 17px !important;
}

#mapa .steps-dock {
  bottom: 12px !important;
}

#mapa .steps-header,
#mapa .steps-dock-header {
  min-height: 42px !important;
  padding: 6px 48px !important;
}

#mapa .steps-title,
#mapa .steps-section-title,
#mapa .steps-heading {
  font-size: .62rem !important;
  letter-spacing: .12em !important;
}

#mapa .steps-relative-date,
#mapa .steps-date,
#mapa .steps-current-date {
  font-size: .66rem !important;
}

#mapa .steps-rail,
#mapa .steps-track {
  min-height: 94px !important;
  padding: 8px 38px 9px !important;
  gap: 13px !important;
}


/* 4) timeline bubbles/photos */
#mapa .step-item,
#mapa .step-card {
  min-width: 78px !important;
  width: 78px !important;
  padding: 0 2px !important;
}

#mapa .step-thumb,
#mapa .step-photo,
#mapa .step-card img,
#mapa .step-item img {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  border-width: 2px !important;
}

#mapa .step-name,
#mapa .step-card strong,
#mapa .step-item strong {
  margin-top: 5px !important;
  max-width: 76px !important;
  font-size: .60rem !important;
  line-height: 1.05 !important;
}

#mapa .step-country,
#mapa .step-card small,
#mapa .step-item small {
  margin-top: 2px !important;
  font-size: .50rem !important;
  line-height: 1 !important;
}


/* Map loading badge also smaller */
#mapa .route-loading-center,
#mapa .map-loading-center,
#mapa .location-loading {
  min-height: 52px !important;
  padding: 10px 18px !important;
  border-radius: 14px !important;
  font-size: .82rem !important;
}


/* FULLSCREEN must use the same compact values */
.member-map-shell:fullscreen .live-current-place,
.member-map-shell:-webkit-full-screen .live-current-place {
  width: min(420px, calc(100% - 40px)) !important;
  min-height: 84px !important;
  padding: 13px 20px !important;
}

.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
  top: 108px !important;
  width: min(650px, calc(100% - 44px)) !important;
  gap: 10px !important;
}

.member-map-shell:fullscreen .trip-stat-v105 .trip-stat-card,
.member-map-shell:-webkit-full-screen .trip-stat-v105 .trip-stat-card {
  min-height: 78px !important;
  height: 78px !important;
  padding: 10px 13px !important;
}


/* Desktop wide screens: don't grow beyond compact target */
@media (min-width: 1100px) {
  #mapa .live-current-place {
    width: 420px !important;
  }

  #mapa .trip-stat-pill.trip-stat-v105 {
    width: 650px !important;
  }

  #mapa .steps-dock,
  #mapa .steps-panel {
    width: 820px !important;
  }
}


/* Mobile */
@media (max-width: 760px) {
  #mapa .live-current-place {
    top: 8px !important;
    width: min(300px, calc(100% - 24px)) !important;
    min-height: 72px !important;
    padding: 10px 14px !important;
    border-radius: 15px !important;
  }

  #mapa .live-current-place h3,
  #mapa .live-current-place .live-location-city,
  #mapa .live-current-place strong {
    font-size: 1.05rem !important;
  }

  #mapa .trip-stat-pill.trip-stat-v105 {
    top: 88px !important;
    width: calc(100% - 16px) !important;
    gap: 5px !important;
  }

  #mapa .trip-stat-v105 .trip-stat-card {
    min-height: 55px !important;
    height: 55px !important;
    padding: 7px 4px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #mapa .trip-stat-v105 .trip-stat-card .stat-icon {
    display: none !important;
  }

  #mapa .trip-stat-v105 .trip-stat-card strong {
    font-size: .80rem !important;
  }

  #mapa .trip-stat-v105 .trip-stat-card small {
    font-size: .45rem !important;
    text-align: center !important;
  }

  #mapa .steps-dock,
  #mapa .steps-panel {
    width: calc(100% - 14px) !important;
    border-radius: 14px !important;
  }

  #mapa .steps-header,
  #mapa .steps-dock-header {
    min-height: 36px !important;
    padding: 4px 34px !important;
  }

  #mapa .steps-rail,
  #mapa .steps-track {
    min-height: 78px !important;
    padding: 7px 28px 7px !important;
    gap: 8px !important;
  }

  #mapa .step-item,
  #mapa .step-card {
    width: 64px !important;
    min-width: 64px !important;
  }

  #mapa .step-thumb,
  #mapa .step-photo,
  #mapa .step-card img,
  #mapa .step-item img {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
  }
}


/* V114 — compactação real dos overlays do mapa + cache bust */

#mapa .live-current-place,
.member-map-shell:fullscreen .live-current-place,
.member-map-shell:-webkit-full-screen .live-current-place {
  top: 12px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: 350px !important;
  min-width: 350px !important;
  max-width: 350px !important;
  height: 68px !important;
  min-height: 68px !important;
  max-height: 68px !important;
  padding: 8px 14px !important;
  border-radius: 16px !important;
  box-sizing: border-box !important;
}

#mapa .live-current-place small,
.member-map-shell:fullscreen .live-current-place small,
.member-map-shell:-webkit-full-screen .live-current-place small {
  font-size: 9px !important;
  line-height: 1 !important;
  margin: 0 0 3px !important;
}

#mapa .live-current-place strong,
.member-map-shell:fullscreen .live-current-place strong,
.member-map-shell:-webkit-full-screen .live-current-place strong {
  font-size: 18px !important;
  line-height: 1 !important;
  margin: 0 !important;
}

#mapa .live-current-place > span,
.member-map-shell:fullscreen .live-current-place > span,
.member-map-shell:-webkit-full-screen .live-current-place > span {
  margin-top: 5px !important;
  font-size: 10px !important;
  line-height: 1 !important;
}

/* 3 cards */
#mapa .trip-stat-pill.trip-stat-v105,
.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
  top: 88px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: 540px !important;
  min-width: 540px !important;
  max-width: 540px !important;
  height: 64px !important;
  gap: 8px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

#mapa .trip-stat-pill.trip-stat-v105 > .trip-stat-card,
.member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105 > .trip-stat-card,
.member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 > .trip-stat-card {
  min-width: 0 !important;
  height: 64px !important;
  min-height: 64px !important;
  max-height: 64px !important;
  padding: 8px 11px !important;
  display: grid !important;
  grid-template-columns: 34px minmax(0,1fr) !important;
  grid-template-rows: 1fr 1fr !important;
  column-gap: 9px !important;
  align-items: center !important;
  border-radius: 14px !important;
  box-sizing: border-box !important;
}

#mapa .trip-stat-v105 .trip-stat-card .stat-icon,
.member-map-shell:fullscreen .trip-stat-v105 .trip-stat-card .stat-icon,
.member-map-shell:-webkit-full-screen .trip-stat-v105 .trip-stat-card .stat-icon {
  display: grid !important;
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  border-radius: 10px !important;
}

#mapa .trip-stat-v105 .trip-stat-card .stat-icon svg,
.member-map-shell:fullscreen .trip-stat-v105 .trip-stat-card .stat-icon svg,
.member-map-shell:-webkit-full-screen .trip-stat-v105 .trip-stat-card .stat-icon svg {
  width: 19px !important;
  height: 19px !important;
}

#mapa .trip-stat-v105 .trip-stat-card strong,
.member-map-shell:fullscreen .trip-stat-v105 .trip-stat-card strong,
.member-map-shell:-webkit-full-screen .trip-stat-v105 .trip-stat-card strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: end !important;
  justify-self: start !important;
  font-size: 18px !important;
  line-height: 1 !important;
}

#mapa .trip-stat-v105 .trip-stat-card small,
.member-map-shell:fullscreen .trip-stat-v105 .trip-stat-card small,
.member-map-shell:-webkit-full-screen .trip-stat-v105 .trip-stat-card small {
  grid-column: 2 !important;
  grid-row: 2 !important;
  align-self: start !important;
  justify-self: start !important;
  font-size: 8px !important;
  line-height: 1 !important;
  margin-top: 3px !important;
}

/* Timeline */
#mapa .steps-timeline-shell,
.member-map-shell:fullscreen .steps-timeline-shell,
.member-map-shell:-webkit-full-screen .steps-timeline-shell {
  left: 50% !important;
  right: auto !important;
  bottom: 10px !important;
  transform: translateX(-50%) !important;
  width: 660px !important;
  min-width: 660px !important;
  max-width: 660px !important;
  height: 104px !important;
  min-height: 104px !important;
  max-height: 104px !important;
  border-radius: 15px !important;
  overflow: hidden !important;
}

#mapa .steps-timeline-header,
.member-map-shell:fullscreen .steps-timeline-header,
.member-map-shell:-webkit-full-screen .steps-timeline-header {
  height: 36px !important;
  min-height: 36px !important;
  padding: 3px 38px !important;
}

#mapa .steps-past-title,
.member-map-shell:fullscreen .steps-past-title,
.member-map-shell:-webkit-full-screen .steps-past-title {
  font-size: 8px !important;
  line-height: 1 !important;
}

#mapa .steps-time-meta strong,
#mapa .steps-time-meta small,
.member-map-shell:fullscreen .steps-time-meta strong,
.member-map-shell:fullscreen .steps-time-meta small,
.member-map-shell:-webkit-full-screen .steps-time-meta strong,
.member-map-shell:-webkit-full-screen .steps-time-meta small {
  font-size: 8px !important;
  line-height: 1 !important;
}

#mapa .steps-timeline-shell .steps-rail,
.member-map-shell:fullscreen .steps-timeline-shell .steps-rail,
.member-map-shell:-webkit-full-screen .steps-timeline-shell .steps-rail {
  height: 68px !important;
  min-height: 68px !important;
  padding: 7px 32px !important;
  gap: 10px !important;
}

#mapa .steps-timeline-shell .steps-rail-item,
.member-map-shell:fullscreen .steps-timeline-shell .steps-rail-item,
.member-map-shell:-webkit-full-screen .steps-timeline-shell .steps-rail-item {
  flex: 0 0 68px !important;
  width: 68px !important;
  min-width: 68px !important;
}

#mapa .steps-rail-thumb,
.member-map-shell:fullscreen .steps-rail-thumb,
.member-map-shell:-webkit-full-screen .steps-rail-thumb {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  margin-bottom: 3px !important;
}

#mapa .steps-rail-item b,
.member-map-shell:fullscreen .steps-rail-item b,
.member-map-shell:-webkit-full-screen .steps-rail-item b {
  max-width: 68px !important;
  font-size: 8px !important;
  line-height: 1 !important;
}

#mapa .steps-rail-item small,
.member-map-shell:fullscreen .steps-rail-item small,
.member-map-shell:-webkit-full-screen .steps-rail-item small {
  max-width: 68px !important;
  font-size: 7px !important;
  line-height: 1 !important;
}

@media (max-width: 760px) {
  #mapa .live-current-place,
  .member-map-shell:fullscreen .live-current-place,
  .member-map-shell:-webkit-full-screen .live-current-place {
    width: 270px !important;
    min-width: 270px !important;
    max-width: 270px !important;
    height: 60px !important;
    min-height: 60px !important;
    max-height: 60px !important;
  }

  #mapa .live-current-place strong { font-size: 15px !important; }

  #mapa .trip-stat-pill.trip-stat-v105,
  .member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105,
  .member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 {
    top: 78px !important;
    width: calc(100% - 18px) !important;
    min-width: 0 !important;
    max-width: 420px !important;
    height: 52px !important;
    gap: 5px !important;
  }

  #mapa .trip-stat-pill.trip-stat-v105 > .trip-stat-card,
  .member-map-shell:fullscreen .trip-stat-pill.trip-stat-v105 > .trip-stat-card,
  .member-map-shell:-webkit-full-screen .trip-stat-pill.trip-stat-v105 > .trip-stat-card {
    height: 52px !important;
    min-height: 52px !important;
    padding: 6px 4px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    text-align: center !important;
  }

  #mapa .trip-stat-v105 .trip-stat-card .stat-icon,
  .member-map-shell:fullscreen .trip-stat-v105 .trip-stat-card .stat-icon,
  .member-map-shell:-webkit-full-screen .trip-stat-v105 .trip-stat-card .stat-icon {
    display: none !important;
  }

  #mapa .trip-stat-v105 .trip-stat-card strong { font-size: 13px !important; }
  #mapa .trip-stat-v105 .trip-stat-card small { font-size: 7px !important; text-align:center !important; }

  #mapa .steps-timeline-shell,
  .member-map-shell:fullscreen .steps-timeline-shell,
  .member-map-shell:-webkit-full-screen .steps-timeline-shell {
    width: calc(100% - 14px) !important;
    min-width: 0 !important;
    max-width: 620px !important;
    height: 88px !important;
    min-height: 88px !important;
    max-height: 88px !important;
  }

  #mapa .steps-timeline-header { height: 31px !important; min-height:31px !important; }
  #mapa .steps-timeline-shell .steps-rail { height:57px !important; min-height:57px !important; }
  #mapa .steps-rail-thumb { width:31px !important; height:31px !important; min-width:31px !important; min-height:31px !important; }
}
