/* VisitChapada — same design tokens as Replit (Chapada-Guide) */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@500;600;700;800&display=swap');

:root {
  --font-sans: 'DM Sans', sans-serif;
  --font-display: 'Outfit', sans-serif;
  --background: 40 33% 98%;
  --foreground: 140 50% 10%;
  --primary: 142 71% 25%;
  --primary-hex: #1a5c35;
  --primary-foreground: 0 0% 100%;
  --secondary: 35 92% 33%;
  --secondary-foreground: 0 0% 100%;
  --muted: 120 20% 90%;
  --muted-foreground: 140 20% 40%;
  --accent: 45 93% 47%;
  --accent-foreground: 140 50% 10%;
  --destructive: 0 84% 60%;
  --destructive-foreground: 0 0% 100%;
  --border: 120 20% 85%;
  --ring: 142 71% 25%;
  --card: 0 0% 100%;
  --card-foreground: 140 50% 10%;
  --radius: 0.75rem;
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.025em;
}

a {
  color: var(--primary-hex);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* Layout */
.page {
  min-height: 100vh;
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
  max-width: 100%;
}
/* Auth flows: avoid horizontal scroll when form column was wider than the viewport. */
body.page--auth .page {
  overflow-x: hidden;
}

.main {
  flex: 1 1 0%;
  min-height: 0;
  /* Allow flex item to shrink below content min-width (avoids horizontal overflow on narrow viewports). */
  min-width: 0;
  overflow: auto;
  /* Sticky support bar: push .site-support-bar to the bottom when page content is short. */
  display: flex;
  flex-direction: column;
}

/* Home page — Replit landing background */
.page--home,
.page--home .main {
  background: #f9f8f5;
}

.page--guias .main {
  background: #f9f8f5;
}

.site-support-bar {
  flex: 0 0 auto;
  margin-top: auto;
  border-top: 1px solid rgba(26, 92, 53, 0.12);
  background: linear-gradient(180deg, rgba(26, 92, 53, 0.04), rgba(26, 92, 53, 0.02));
}

/* Promoter dashboard: scroll body in a nested region so the support footer is not covered by flex overflow. */
body.page--promoter-dashboard .main {
  overflow: hidden;
}
body.page--promoter-dashboard .promoter-main-scroll {
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
body.page--promoter-dashboard .site-support-bar {
  flex-shrink: 0;
  margin-top: 0;
}
.site-support-bar__inner {
  max-width: 80rem;
  margin: 0 auto;
  padding: 0.75rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.site-support-bar__copy { min-width: 0; }
.site-support-bar__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 800;
  color: hsl(var(--foreground));
}
.site-support-bar__text {
  margin: 0.15rem 0 0;
  font-size: 0.8rem;
  color: hsl(var(--muted-foreground));
}
.site-support-bar__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.site-support-bar__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(26, 92, 53, 0.15);
  background: #fff;
  color: var(--primary-hex);
  font-size: 0.8rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.site-support-bar__link:hover {
  text-decoration: none;
  background: rgba(26, 92, 53, 0.06);
}
.site-support-bar__link--whatsapp {
  background: rgba(22, 163, 74, 0.08);
  color: #166534;
  border-color: rgba(22, 163, 74, 0.2);
}
.site-support-bar__link--whatsapp:hover {
  background: rgba(22, 163, 74, 0.14);
}
@media (max-width: 640px) {
  .site-support-bar__inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-support-bar__actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* Header — matches Replit Header.tsx; fixed size so it never shrinks */
.site-header {
  flex: 0 0 4rem;
  height: 4rem;
  min-height: 4rem;
  max-height: 4rem;
  /* Solid: transparency + backdrop-filter picked up green from hero behind logo */
  background: hsl(var(--background));
  border-bottom: 1px solid hsl(var(--border));
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  position: sticky;
  top: 0;
  z-index: 1100;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.site-header__brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: inherit;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.25rem;
  letter-spacing: -0.025em;
  transition: transform 0.2s;
  background: transparent;
  border-radius: 0;
}

.site-header__brand:hover {
  text-decoration: none;
}

/* No gradient tile — raster logo uses its own circle; flat variant is transparent */
.site-header__brand .site-header__brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  border-radius: 0.75rem;
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  transition: transform 0.2s;
}
.site-header__brand .site-header__brand-icon svg {
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--primary-hex);
}
/* Fixed box + min-size reset: flex default min-height:auto uses img intrinsic px and ignores CSS height */
/* Opaque base matches header: PNG glow/semi-transparent edges blend to paper, not green from hero */
.site-header__brand .site-header__brand-icon--logo {
  position: relative;
  background-color: hsl(var(--background)) !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none;
  border-radius: 50%;
  flex-shrink: 0;
  min-width: 0;
  min-height: 0;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
}
.site-header__brand-logo-img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 138%;
  height: 138%;
  max-width: none;
  max-height: none;
  transform: translate(-50%, -50%);
  object-fit: cover;
  object-position: center;
  filter: none;
  box-shadow: none;
  background-color: transparent;
}
.site-header__brand:hover .site-header__brand-icon--logo {
  transform: translateY(-1px);
}

.site-header__brand-text {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  white-space: nowrap;
}

.site-header__brand-chapada {
  color: #1a5c35;
}

.site-header__brand-visit {
  color: #111;
}

.site-header__inner {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
@media (min-width: 768px) {
  .site-header__inner {
    gap: 0.75rem;
  }
}
.site-header__back {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: hsl(var(--muted-foreground));
  text-decoration: none;
  padding: 0.375rem 0.5rem;
  margin: -0.375rem 0 -0.375rem -0.5rem;
  border-radius: 0.5rem;
}
.site-header__back:hover {
  color: hsl(var(--foreground));
  background: hsl(var(--muted) / 0.6);
}
.site-header__back-icon { flex-shrink: 0; }
.site-header__back-text { display: none; }
@media (min-width: 640px) {
  .site-header__back-text { display: inline; }
}

.site-nav {
  display: none;
}

@media (min-width: 768px) {
  .site-header {
    padding: 0 1.5rem;
  }
  .site-header__inner { gap: 1rem; }
  .site-nav {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-left: 0.25rem;
  }
  .site-nav__link {
    position: relative;
    font-size: 0.875rem;
    font-weight: 700;
    padding: 0.375rem 0.75rem;
    border-radius: 0.5rem;
    color: hsl(var(--muted-foreground));
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
  }
  .site-nav__link:hover {
    color: hsl(var(--foreground));
    background: hsl(var(--muted) / 0.6);
    text-decoration: none;
  }
  /* No filled pill: --muted is mint-tinted and reads as “green behind the logo” next to the brand */
  .site-nav__link.active {
    background: transparent;
    color: var(--primary-hex);
    text-decoration: none;
  }
  .site-nav__link.active::after {
    content: '';
    position: absolute;
    left: 0.55rem;
    right: 0.55rem;
    bottom: 0.15rem;
    height: 2px;
    background: var(--primary-hex);
    border-radius: 999px;
  }
  .site-nav__icon {
    flex-shrink: 0;
  }
  .site-nav__link.active:hover {
    color: var(--primary-hex);
    background: hsl(var(--muted) / 0.45);
    text-decoration: none;
  }
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.site-header__lang {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.375rem 0.625rem;
  border-radius: 0.5rem;
  border: 1px solid hsl(var(--border));
  color: hsl(var(--muted-foreground));
  text-decoration: none;
}
.site-header__lang:hover {
  background: hsl(var(--muted) / 0.6);
  color: hsl(var(--foreground));
  text-decoration: none;
}
.site-header__lang-flag { font-size: 1rem; line-height: 1; }
.site-header__lang-text { display: none; }
@media (min-width: 640px) {
  .site-header__lang-text { display: inline; }
}

/* Logged-in user profile (Replit style) */
.site-header__user {
  display: none;
}
@media (min-width: 768px) {
  .site-header__user {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
}
.site-header__user-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: hsl(var(--secondary) / 0.2);
  border: 1px solid hsl(var(--secondary) / 0.3);
  color: hsl(var(--secondary-foreground));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.site-header__user-info {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.site-header__user-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: hsl(var(--foreground));
}
.site-header__user-role {
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
}
.site-header__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  border-radius: 0.5rem;
  text-decoration: none;
  border: 1px solid transparent;
}
.site-header__btn-icon { flex-shrink: 0; }
.site-header__btn--admin {
  border-color: rgba(26, 92, 53, 0.3);
  color: var(--primary-hex);
  background: transparent;
}
.site-header__btn--admin:hover {
  background: rgba(26, 92, 53, 0.1);
}
.site-header__btn--panel {
  border-color: rgba(26, 92, 53, 0.4);
  color: var(--primary-hex);
  background: rgba(26, 92, 53, 0.08);
}
.site-header__btn--panel:hover {
  background: rgba(26, 92, 53, 0.15);
  color: var(--primary-hex);
}
.site-header__btn--panel .site-header__btn-icon {
  color: var(--primary-hex);
}
.site-header__btn--outline {
  border-color: rgba(26, 92, 53, 0.4);
  color: var(--primary-hex);
}
.site-header__btn--outline:hover {
  background: rgba(26, 92, 53, 0.1);
}
.site-header__btn--primary {
  background: var(--primary-hex);
  color: white;
  border-color: var(--primary-hex);
}
.site-header__btn--primary:hover {
  background: hsl(142 71% 28%);
  color: white;
}
.site-header__logout {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  color: hsl(var(--muted-foreground));
  text-decoration: none;
}
.site-header__logout:hover {
  color: hsl(var(--destructive));
  background: hsl(var(--destructive) / 0.1);
}
.site-header__owner {
  display: none;
}
@media (min-width: 640px) {
  .site-header__owner {
    display: inline-flex;
  }
}
@media (min-width: 768px) {
  .site-header__actions {
    gap: 0.75rem;
  }
  .site-header__btn--admin,
  .site-header__btn--panel { display: inline-flex; }
}

/* Hamburger button — visible only on mobile */
.site-header__hamburger {
  display: none;
  position: relative;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: none;
  border-radius: 0.5rem;
  background: hsl(var(--muted) / 0.8);
  color: hsl(var(--foreground));
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s;
}
.site-header__hamburger:hover {
  background: hsl(var(--muted));
}
.site-header__hamburger:focus {
  outline: 2px solid var(--primary-hex);
  outline-offset: 2px;
}
.site-header__hamburger-bar {
  position: absolute;
  left: 50%;
  margin-left: -0.5625rem;
  width: 1.125rem;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  transition: transform 0.2s, opacity 0.2s;
}
.site-header__hamburger-bar:nth-child(1) { top: 50%; margin-top: -5px; }
.site-header__hamburger-bar:nth-child(2) { top: 50%; margin-top: -1px; }
.site-header__hamburger-bar:nth-child(3) { top: 50%; margin-top: 3px; }
.site-header[data-menu-open="true"] .site-header__hamburger-bar:nth-child(1) {
  top: 50%;
  margin-top: -1px;
  transform: rotate(45deg);
}
.site-header[data-menu-open="true"] .site-header__hamburger-bar:nth-child(2) {
  opacity: 0;
}
.site-header[data-menu-open="true"] .site-header__hamburger-bar:nth-child(3) {
  top: 50%;
  margin-top: -1px;
  transform: rotate(-45deg);
}
@media (max-width: 767px) {
  .site-header__hamburger {
    display: flex;
    position: relative;
  }
  .site-header__hamburger-bar {
    display: block;
  }
  .site-header__user,
  .site-header__btn--admin,
  .site-header__btn--panel,
  .site-header__logout,
  .site-header__owner,
  .site-header__btn--primary { display: none !important; }
}
@media (min-width: 768px) {
  .site-mobile-menu { display: none !important; }
}

/* Mobile menu overlay (Replit style) */
.site-mobile-menu {
  display: block;
  position: fixed;
  inset: 0;
  top: 4rem;
  z-index: 1200;
  pointer-events: none;
  visibility: hidden;
}
.site-mobile-menu[aria-hidden="false"] {
  pointer-events: auto;
  visibility: visible;
}
.site-mobile-menu__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity 0.2s;
}
.site-mobile-menu[aria-hidden="false"] .site-mobile-menu__backdrop {
  opacity: 1;
}
.site-mobile-menu__panel {
  position: relative;
  background: hsl(var(--background));
  border-bottom: 1px solid hsl(var(--border));
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  max-height: calc(100vh - 4rem);
  overflow-y: auto;
  padding: 1rem 1rem 1.5rem;
  transform: translateY(-10px);
  transition: transform 0.2s;
}
.site-mobile-menu[aria-hidden="false"] .site-mobile-menu__panel {
  transform: translateY(0);
}

/* Map page: keep header and menu above map and ensure hamburger is clickable */
body.page-mapa .site-header {
  isolation: isolate;
  background: hsl(var(--background));
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  /* Match viewport-fit=cover + status bar: banner offset can align to real header bottom */
  padding-top: env(safe-area-inset-top, 0px);
  box-sizing: border-box;
  height: calc(4rem + env(safe-area-inset-top, 0px));
  min-height: calc(4rem + env(safe-area-inset-top, 0px));
  max-height: calc(4rem + env(safe-area-inset-top, 0px));
  flex: 0 0 calc(4rem + env(safe-area-inset-top, 0px));
}
body.page-mapa .site-header__hamburger {
  position: relative;
  z-index: 2;
  pointer-events: auto;
}
body.page-mapa .site-mobile-menu {
  isolation: isolate;
}
body.page-mapa .main {
  position: relative;
  z-index: 0;
  isolation: isolate;
}

/* Mobile menu header: logo + lang + close */
.site-mobile-menu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid hsl(var(--border));
}
.site-mobile-menu__brand {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: hsl(var(--foreground));
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.125rem;
  letter-spacing: -0.025em;
}
.site-mobile-menu__brand:hover {
  text-decoration: none;
  color: hsl(var(--foreground));
}
.site-mobile-menu__brand-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border-radius: 0.75rem;
  flex-shrink: 0;
  background: transparent;
  box-shadow: none;
}
.site-mobile-menu__brand-icon svg {
  display: block;
  color: var(--primary-hex);
  width: 1.1rem;
  height: 1.1rem;
}
.site-mobile-menu__brand-icon--logo {
  position: relative;
  background-color: hsl(var(--background)) !important;
  background-image: none !important;
  box-shadow: none !important;
  filter: none;
  border-radius: 50%;
  flex-shrink: 0;
  min-width: 0;
  min-height: 0;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  isolation: isolate;
}
.site-mobile-menu__brand-logo-img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 138%;
  height: 138%;
  max-width: none;
  max-height: none;
  transform: translate(-50%, -50%);
  object-fit: cover;
  object-position: center;
  filter: none;
  box-shadow: none;
  background-color: transparent;
}
.site-mobile-menu__brand-text {
  display: inline-flex;
  align-items: baseline;
  gap: 0;
  white-space: nowrap;
}
.site-mobile-menu__brand-visit {
  color: hsl(var(--foreground));
}
.site-mobile-menu__brand-chapada {
  color: var(--primary-hex);
}
.site-mobile-menu__lang {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 999px;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--card));
  font-size: 1rem;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s;
}
.site-mobile-menu__lang:hover {
  background: hsl(var(--muted) / 0.6);
  text-decoration: none;
}
.site-mobile-menu__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: none;
  border-radius: 0.5rem;
  background: transparent;
  color: hsl(var(--muted-foreground));
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.site-mobile-menu__close:hover {
  background: hsl(var(--muted) / 0.7);
  color: hsl(var(--foreground));
}
/* Chapada para Crianças card */
.site-mobile-menu__card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  margin-bottom: 0.5rem;
  border-radius: 1rem;
  background: linear-gradient(to right, #facc15, #fb923c);
  color: white;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(251, 146, 60, 0.35);
  transition: transform 0.15s, box-shadow 0.15s;
}
.site-mobile-menu__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(251, 146, 60, 0.4);
  color: white;
  text-decoration: none;
}
.site-mobile-menu__card-icon {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
}
.site-mobile-menu__card-text {
  flex: 1;
  min-width: 0;
}
.site-mobile-menu__card-title {
  display: block;
  font-size: 1rem;
  font-weight: 800;
  color: white;
  line-height: 1.25;
}
.site-mobile-menu__card-desc {
  display: block;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.9);
  margin-top: 0.2rem;
  line-height: 1.35;
}
.site-mobile-menu__card-chevron {
  font-size: 1.25rem;
  font-weight: 700;
  flex-shrink: 0;
}
/* Nav links */
.site-mobile-menu__nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.site-mobile-menu__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.site-mobile-menu__link:hover {
  background: hsl(var(--muted) / 0.7);
  color: hsl(var(--foreground));
  text-decoration: none;
}
.site-mobile-menu__link--active {
  background: #dcfce7;
  color: #166534;
}
.site-mobile-menu__link--logout {
  color: hsl(var(--destructive));
}
.site-mobile-menu__link--logout:hover {
  background: hsl(var(--destructive) / 0.1);
  color: hsl(var(--destructive));
}
/* Mobile menu footer: two buttons */
.site-mobile-menu__footer {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid hsl(var(--border));
}
.site-mobile-menu__btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 700;
  font-family: var(--font-sans);
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.site-mobile-menu__btn:hover {
  text-decoration: none;
}
.site-mobile-menu__btn--outline {
  background: white;
  color: var(--primary-hex);
  border: 1.5px solid var(--primary-hex);
}
.site-mobile-menu__btn--outline:hover {
  background: hsl(var(--muted) / 0.5);
  color: var(--primary-hex);
}
.site-mobile-menu__btn--primary {
  background: var(--primary-hex);
  color: white;
  border: 1.5px solid var(--primary-hex);
}
.site-mobile-menu__btn--primary:hover {
  background: hsl(142 71% 22%);
  color: white;
}
body.site-mobile-menu-open {
  overflow: hidden;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 700;
  font-family: var(--font-sans);
  border-radius: 0.75rem;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, color 0.2s, box-shadow 0.2s;
}

.btn--primary {
  background: var(--primary-hex);
  color: white;
  box-shadow: 0 4px 14px rgba(26, 92, 53, 0.25);
}

.btn--primary:hover {
  background: hsl(142 71% 22%);
  text-decoration: none;
  color: white;
}

.btn--outline {
  background: transparent;
  color: var(--primary-hex);
  border: 1px solid hsl(var(--border));
}

.btn--outline:hover {
  background: hsl(142 71% 25% / 0.1);
  text-decoration: none;
  color: var(--primary-hex);
}

/* ── Para proprietários landing (Replit-style) ── */
.landing-owner-page {
  min-height: 100vh;
  background: hsl(var(--background));
}

/* Hero */
.landing-owner-hero {
  background: #0d1f14;
  padding: 4rem 1.5rem 3rem;
  position: relative;
  overflow: hidden;
}
.landing-owner-hero__pattern {
  position: absolute;
  inset: 0;
  opacity: 0.06;
  background-image: radial-gradient(circle, #4ade80 1px, transparent 1px);
  background-size: 32px 32px;
}
.landing-owner-hero__inner {
  position: relative;
  z-index: 1;
  max-width: 56rem;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}
.landing-owner-hero__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(74, 222, 128, 0.8);
  margin: 0;
}
.landing-owner-hero__title {
  font-size: clamp(2.25rem, 6vw, 3.75rem);
  font-weight: 800;
  color: white;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 0.5rem 0 0;
}
.landing-owner-hero__title-accent {
  color: #4ade80;
}
.landing-owner-hero__desc {
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.6);
  max-width: 36rem;
  line-height: 1.6;
  margin: 0;
}
.landing-owner-hero__pitch {
  font-size: 1.05rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
  max-width: 36rem;
  line-height: 1.55;
  margin: 1rem 0 0;
}
.landing-owner-hero__pitch--muted {
  font-size: 0.95rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.72);
  margin-top: 0.5rem;
}
.landing-owner-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #22c55e;
  color: white;
  font-weight: 700;
  padding: 1rem 2rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-size: 1rem;
  margin-top: 1.25rem;
  transition: background 0.2s, box-shadow 0.2s;
}
.landing-owner-hero__cta:hover {
  background: #4ade80;
  box-shadow: 0 10px 25px -5px rgba(34, 197, 94, 0.25);
  color: white;
  text-decoration: none;
}
.landing-owner-hero__login-link {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.85);
  margin: 1rem 0 0;
}
.landing-owner-hero__login-link a {
  color: #34d399;
  font-weight: 700;
  text-decoration: none;
}
.landing-owner-hero__login-link a:hover { text-decoration: underline; }
.landing-owner-hero__disclaimer {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.35);
  margin: 0;
}

/* Stats strip */
.landing-owner-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  width: 100%;
  max-width: 28rem;
  margin-top: 1.5rem;
}
.landing-owner-stats__item {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.75rem;
  padding: 0.75rem 0.5rem;
  text-align: center;
}
.landing-owner-stats__value {
  display: block;
  color: #4ade80;
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.2;
}
.landing-owner-stats__label {
  display: block;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.6875rem;
  margin-top: 0.25rem;
  line-height: 1.2;
}

/* Section generic */
.landing-owner-section {
  padding: 4rem 1.5rem;
}
.landing-owner-section--muted {
  background: hsl(var(--muted) / 0.2);
  border-top: 1px solid hsl(var(--border) / 0.5);
}
.landing-owner-section__wrap {
  max-width: 80rem;
  margin: 0 auto;
}
.landing-owner-section__wrap--narrow {
  max-width: 56rem;
}
.landing-owner-section__wrap--faq {
  max-width: 42rem;
}
.landing-owner-section__eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  text-align: center;
  margin: 0 0 0.5rem;
}
.landing-owner-section__title {
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 800;
  color: hsl(var(--foreground));
  text-align: center;
  letter-spacing: -0.025em;
  margin: 0 0 2.5rem;
}
.landing-owner-section__sub {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  text-align: center;
  margin: -2rem 0 2.5rem;
}
.landing-owner-section__cta {
  text-align: center;
  margin-top: 2.5rem;
}

/* Benefits grid */
.landing-owner-benefits {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.25rem;
}
@media (min-width: 640px) {
  .landing-owner-benefits { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
  .landing-owner-benefits { grid-template-columns: repeat(4, 1fr); }
}
.landing-owner-benefit {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.6);
  border-radius: 0.75rem;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: border-color 0.2s;
}
.landing-owner-benefit:hover {
  border-color: hsl(142 71% 45% / 0.3);
}
.landing-owner-benefit__icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  background: hsl(142 71% 45% / 0.1);
  border: 1px solid hsl(142 71% 45% / 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
}
.landing-owner-benefit__title {
  font-size: 0.875rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  margin: 0;
}
.landing-owner-benefit__text {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  line-height: 1.5;
  margin: 0;
}

/* Steps */
.landing-owner-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  position: relative;
}
@media (min-width: 768px) {
  .landing-owner-steps {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
}
.landing-owner-steps__line {
  display: none;
}
@media (min-width: 768px) {
  .landing-owner-steps__line {
    display: block;
    position: absolute;
    top: 2rem;
    left: calc(16.66% + 1rem);
    right: calc(16.66% + 1rem);
    height: 1px;
    background: hsl(var(--border));
  }
}
.landing-owner-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1rem;
  position: relative;
  z-index: 1;
}
.landing-owner-step__num {
  width: 4rem;
  height: 4rem;
  border-radius: 1rem;
  background: #22c55e;
  color: white;
  font-size: 1.5rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 25px -5px rgba(34, 197, 94, 0.2);
}
.landing-owner-step__title {
  font-size: 1rem;
  font-weight: 800;
  color: hsl(var(--foreground));
  margin: 0 0 0.25rem;
}
.landing-owner-step__text {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  line-height: 1.5;
  margin: 0;
}

/* Buttons */
.landing-owner-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid transparent;
}
.landing-owner-btn--primary {
  background: #22c55e;
  color: white;
}
.landing-owner-btn--primary:hover {
  background: #4ade80;
  color: white;
  text-decoration: none;
  box-shadow: 0 10px 25px -5px rgba(34, 197, 94, 0.25);
}
.landing-owner-btn--outline {
  background: white;
  color: hsl(var(--foreground));
  border-color: hsl(var(--border));
}
.landing-owner-btn--outline:hover {
  background: hsl(var(--muted));
  color: hsl(var(--foreground));
  text-decoration: none;
}
.landing-owner-btn--lg {
  padding: 1rem 2rem;
  font-size: 1rem;
}

/* Testimonials */
.landing-owner-testimonials {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 768px) {
  .landing-owner-testimonials { grid-template-columns: repeat(3, 1fr); }
}
.landing-owner-testimonial {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.6);
  border-radius: 0.75rem;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.landing-owner-testimonial__stars {
  color: #facc15;
  font-size: 0.875rem;
  letter-spacing: 0.1em;
}
.landing-owner-testimonial__quote {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  line-height: 1.5;
  flex: 1;
  margin: 0;
}
.landing-owner-testimonial__footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-top: 0.5rem;
  border-top: 1px solid hsl(var(--border) / 0.5);
}
.landing-owner-testimonial__avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: hsl(142 71% 45% / 0.1);
  border: 1px solid hsl(142 71% 45% / 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  flex-shrink: 0;
}
.landing-owner-testimonial__name {
  font-size: 0.875rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  margin: 0;
  line-height: 1.2;
}
.landing-owner-testimonial__business {
  font-size: 0.6875rem;
  color: hsl(var(--muted-foreground));
  margin: 0.25rem 0 0;
}
.landing-owner-testimonial__tag {
  margin-left: auto;
  font-size: 0.625rem;
  font-weight: 600;
  color: #15803d;
  background: #dcfce7;
  border: 1px solid #bbf7d0;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
}

/* Categories grid */
.landing-owner-categories {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
}
@media (min-width: 768px) {
  .landing-owner-categories { grid-template-columns: repeat(4, 1fr); }
}
.landing-owner-category {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.6);
  border-radius: 0.75rem;
  transition: border-color 0.2s;
}
.landing-owner-category:hover {
  border-color: hsl(142 71% 45% / 0.3);
}
.landing-owner-category__icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}
.landing-owner-category strong {
  display: block;
  font-size: 0.875rem;
  color: hsl(var(--foreground));
  margin-bottom: 0.25rem;
}
.landing-owner-category span {
  font-size: 0.6875rem;
  color: hsl(var(--muted-foreground));
  line-height: 1.3;
}

/* Plans (para-proprietarios) */
#planos-proprietarios .landing-owner-section__title {
  margin-bottom: 1rem;
}
#planos-proprietarios .landing-owner-section__sub {
  margin: -1.25rem 0 1.75rem;
}
/* Monthly / yearly — pill toggle (sliding white thumb, labels inside track) */
.landing-owner-billing-pill {
  display: flex;
  justify-content: center;
  margin: 0 auto 1.75rem;
}
.landing-owner-billing-pill__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.25rem;
  padding: 0.25rem;
  width: min(100%, 17.5rem);
  border-radius: 999px;
  background: hsl(var(--muted) / 0.32);
  border: 1px solid hsl(var(--border) / 0.55);
  box-shadow:
    inset 0 1px 1px rgba(255, 255, 255, 0.75),
    0 1px 3px rgba(0, 0, 0, 0.04);
  backdrop-filter: blur(10px);
}
.landing-owner-billing-pill__thumb {
  position: absolute;
  top: 0.25rem;
  left: 0.25rem;
  width: calc((100% - 0.75rem) / 2);
  height: calc(100% - 0.5rem);
  border-radius: 999px;
  background: #fff;
  box-shadow:
    0 2px 10px rgba(0, 0, 0, 0.07),
    0 1px 3px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
  pointer-events: none;
}
.landing-owner-billing-pill__inner.is-yearly .landing-owner-billing-pill__thumb {
  transform: translateX(calc(100% + 0.25rem));
}
.landing-owner-billing-pill__btn {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 0.5rem 0.65rem;
  border: none;
  border-radius: 999px;
  background: transparent !important;
  -webkit-appearance: none;
  appearance: none;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: hsl(var(--muted-foreground));
  cursor: pointer;
  transition: color 0.2s, font-weight 0.2s;
  box-shadow: none;
}
.landing-owner-billing-pill__btn:hover {
  color: hsl(var(--foreground));
}
.landing-owner-billing-pill__btn.is-active {
  color: hsl(var(--foreground));
  font-weight: 700;
}
.landing-owner-billing-pill__btn:focus-visible {
  outline: 2px solid hsl(142 71% 45%);
  outline-offset: 2px;
  z-index: 2;
}
.landing-owner-plans {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: stretch;
}
@media (min-width: 768px) {
  .landing-owner-plans--paid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  }
}
/* Plan cards — reference layout: green-trim white cards + dark “mais popular” */
#planos-proprietarios .landing-owner-plan {
  background: #fff;
  border: 2px solid hsl(142 71% 45% / 0.22);
  border-radius: 0.75rem;
  padding: 1.5rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  min-height: 100%;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-shadow: 0 2px 14px rgba(22, 101, 52, 0.07);
}
#planos-proprietarios .landing-owner-plan:hover {
  border-color: hsl(142 71% 45% / 0.38);
  box-shadow: 0 8px 24px rgba(22, 101, 52, 0.1);
}
#planos-proprietarios .landing-owner-plan--highlight {
  background: #0d1f14;
  border: 2px solid hsl(142 71% 45% / 0.35);
  box-shadow:
    0 28px 50px -14px rgba(13, 31, 20, 0.45),
    0 0 0 1px rgba(74, 222, 128, 0.12);
}
#planos-proprietarios .landing-owner-plan--highlight:hover {
  border-color: hsl(142 71% 50% / 0.45);
}
.landing-owner-plan__badge-row {
  min-height: 1.25rem;
  margin: 0;
}
.landing-owner-plan__badge {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4ade80;
  margin: 0;
}
#planos-proprietarios .landing-owner-plan__tier {
  font-size: 0.8125rem;
  font-weight: 600;
  color: hsl(var(--muted-foreground));
  margin: 0;
  letter-spacing: 0.02em;
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__tier {
  color: rgba(255, 255, 255, 0.58);
}
.landing-owner-plan__price-block {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
#planos-proprietarios .landing-owner-plan__price--free {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.35rem;
  margin: 0;
  line-height: 1.15;
}
#planos-proprietarios .landing-owner-plan__price-free-main {
  font-size: 1.875rem;
  font-weight: 800;
  color: hsl(142 71% 22%);
}
#planos-proprietarios .landing-owner-plan__price-free-suffix {
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--muted-foreground));
}
#planos-proprietarios .landing-owner-plan__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.1rem 0.25rem;
  font-size: 1.875rem;
  font-weight: 800;
  color: hsl(142 71% 22%);
  margin: 0;
  line-height: 1.15;
}
#planos-proprietarios .landing-owner-plan__price-currency {
  font-size: 1.1rem;
  font-weight: 700;
  color: hsl(142 71% 30%);
}
#planos-proprietarios .landing-owner-plan__price-amount {
  font-size: inherit;
  font-weight: inherit;
}
#planos-proprietarios .landing-owner-plan__price-suffix {
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--muted-foreground));
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__price {
  color: #fff;
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__price-suffix,
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__price-currency {
  color: rgba(255, 255, 255, 0.5);
}
#planos-proprietarios .landing-owner-plan__price-secondary {
  font-size: 0.8125rem;
  font-weight: 500;
  color: hsl(var(--muted-foreground));
  margin: 0.35rem 0 0;
  line-height: 1.45;
  max-width: 18rem;
}
#planos-proprietarios .landing-owner-plan__price-secondary span {
  font-weight: 500;
  color: hsl(var(--muted-foreground) / 0.85);
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__price-secondary {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 500;
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__price-secondary span {
  color: rgba(255, 255, 255, 0.62);
}
.landing-owner-plan__price-secondary--dynamic.is-hidden {
  display: none !important;
}
#planos-proprietarios .landing-owner-plan__trial {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  margin: 0.5rem 0 0;
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__trial {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 500;
}
.landing-owner-plans-empty {
  grid-column: 1 / -1;
  text-align: center;
  color: hsl(var(--muted-foreground));
  margin: 0;
}
.landing-owner-plan__features {
  list-style: none;
  padding: 0;
  margin: 0;
  flex: 1 1 auto;
  min-height: 0;
}
#planos-proprietarios .landing-owner-plan__features li {
  position: relative;
  padding: 0.32rem 0 0.32rem 1.85rem;
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: hsl(var(--muted-foreground));
  list-style: none;
}
#planos-proprietarios .landing-owner-plan__features li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.4rem;
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 50%;
  background: #22c55e;
}
#planos-proprietarios .landing-owner-plan__features li::after {
  content: "";
  position: absolute;
  left: 0.28rem;
  top: 0.56rem;
  width: 0.32rem;
  height: 0.18rem;
  border: 2px solid #fff;
  border-top: none;
  border-right: none;
  transform: rotate(-50deg);
}
#planos-proprietarios .landing-owner-plan__feature-text {
  display: block;
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__features li {
  color: rgba(255, 255, 255, 0.9);
}
#planos-proprietarios .landing-owner-plan--highlight .landing-owner-plan__features li::before {
  background: #4ade80;
}
#planos-proprietarios .landing-owner-btn--plan-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.25rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
  background: #fff;
  color: hsl(142 71% 22%);
  border: 2px solid hsl(142 71% 45% / 0.35);
}
#planos-proprietarios .landing-owner-btn--plan-outline:hover {
  background: hsl(142 71% 45% / 0.08);
  border-color: hsl(142 71% 45% / 0.55);
  color: hsl(142 71% 18%);
  text-decoration: none;
}
#planos-proprietarios .landing-owner-btn--plan-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1.25rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s, box-shadow 0.2s;
  background: #22c55e;
  color: #fff;
  border: 2px solid transparent;
  box-shadow: 0 4px 14px rgba(34, 197, 94, 0.3);
}
#planos-proprietarios .landing-owner-btn--plan-primary:hover {
  background: #4ade80;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 10px 28px -6px rgba(34, 197, 94, 0.4);
}
.landing-owner-plan__cta {
  margin-top: auto;
  flex-shrink: 0;
  align-self: stretch;
  text-align: center;
}
.landing-owner-plan__cta-text {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  margin: 0;
}

/* FAQ */
.landing-owner-faq {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.6);
  border-radius: 0.75rem;
  padding: 0 1.5rem;
}
.landing-owner-faq__item {
  border-bottom: 1px solid hsl(var(--border) / 0.6);
}
.landing-owner-faq__item:last-child {
  border-bottom: 0;
}
.landing-owner-faq__q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0;
  text-align: left;
  font-size: 0.875rem;
  font-weight: 600;
  color: hsl(var(--foreground));
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.2s;
}
.landing-owner-faq__q:hover {
  color: #15803d;
}
.landing-owner-faq__chevron {
  flex-shrink: 0;
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  transition: transform 0.2s;
}
.landing-owner-faq__a {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  line-height: 1.5;
  padding-bottom: 1rem;
  padding-right: 1.5rem;
}

/* Bottom CTA */
.landing-owner-cta {
  background: #0d1f14;
  padding: 4rem 1.5rem;
  position: relative;
  overflow: hidden;
}
.landing-owner-cta__pattern {
  position: absolute;
  inset: 0;
  opacity: 0.05;
  background-image: radial-gradient(circle, #4ade80 1px, transparent 1px);
  background-size: 32px 32px;
}
.landing-owner-cta__inner {
  position: relative;
  z-index: 1;
  max-width: 28rem;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.landing-owner-cta__icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  background: #22c55e;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  box-shadow: 0 10px 25px -5px rgba(34, 197, 94, 0.3);
}
.landing-owner-cta__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: white;
  margin: 0;
  letter-spacing: -0.025em;
}
.landing-owner-cta__desc {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.55);
  line-height: 1.5;
  margin: 0;
}
.landing-owner-cta__disclaimer {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.3);
  margin: 0;
}

.landing-owner__back {
  font-size: 0.9rem;
  color: hsl(var(--muted-foreground));
  text-decoration: none;
}
.landing-owner__back:hover {
  color: var(--primary-hex);
  text-decoration: underline;
}

.btn--back {
  color: hsl(var(--muted-foreground));
  background: transparent;
}

.btn--back:hover {
  color: hsl(var(--foreground));
  background: hsl(var(--muted) / 0.6);
  text-decoration: none;
}

/* Hero / Landing — Replit Landing.tsx parity (do not change without matching Replit) */
.hero {
  flex: 1;
  display: flex;
  min-height: 90vh;
  border-bottom: 1px solid #e0dfd9;
}
.hero--landing {
  background: #f9f8f5 !important;
  color: #111;
}
.hero.hero--landing .hero__content {
  padding: 4rem 2rem;
  max-width: 48rem;
}
.hero.hero--landing .hero__headline {
  font-size: clamp(56px, 9vw, 120px);
  line-height: 0.92;
  letter-spacing: -0.025em;
  color: #111;
}
.hero.hero--landing .hero__headline .accent {
  color: #1a5c35;
}

.hero__headline-block {
  margin: auto 0;
  padding: 3rem 0;
}

.hero__headline-actions {
  margin-top: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 2rem;
}

.hero__index {
  display: none;
}
@media (min-width: 1280px) {
  .hero__index {
    display: flex;
    width: 5rem;
    flex-shrink: 0;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 2.5rem 0;
    gap: 0.5rem;
  }
  .hero__index-text {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: #ccc;
    writing-mode: vertical-rl;
  }
}

.hero__stats {
  padding-top: 1.5rem;
  border-top: 1px solid #e0dfd9;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2rem;
  align-items: baseline;
}
.hero__stat {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
}
.hero__stat-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111;
}
.hero__stat-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #aaa;
}
.hero__stat-sep {
  color: #d5d3cc;
  display: none;
}
@media (min-width: 640px) {
  .hero__stat-sep {
    display: inline;
  }
}
/* Replit image 2: mobile shows only first stat (e.g. 78+ PONTOS MAPEADOS) */
@media (max-width: 639px) {
  .hero--landing .hero__stats .hero__stat:not(:first-of-type) {
    display: none !important;
  }
  .hero--landing .hero__stats .hero__stat-sep {
    display: none !important;
  }
}

.hero__watermark {
  display: none;
}

@media (min-width: 1024px) {
  .hero__watermark {
    display: flex;
    width: 6rem;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #e0dfd9;
    background: #f4f3ef;
  }
  .hero__watermark span {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    color: #bbb9b0;
  }
}

.hero__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 4rem 2rem;
  max-width: 48rem;
}

.hero__top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.hero__weather-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(17, 17, 17, 0.8);
}

.hero__weather-temp {
  font-weight: 700;
  color: #1a5c35;
}

.hero__weather-loading {
  font-size: 0.75rem;
  color: #999;
}

.hero__weather-location {
  display: none;
  color: rgba(17, 17, 17, 0.5);
  font-size: 0.75rem;
}
@media (min-width: 640px) {
  .hero__weather-location {
    display: inline;
  }
}

@media (min-width: 768px) {
  .hero__content {
    padding: 4rem 4rem;
  }
}

.hero__headline {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(56px, 9vw, 120px);
  line-height: 0.92;
  letter-spacing: -0.025em;
  color: #111;
  margin: 0;
}

.hero__headline .accent {
  color: #1a5c35;
}

.hero__tagline {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #999;
}

.hero__subtitle {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.625;
  color: #666;
  max-width: 20rem;
  margin: 0;
}

.hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1a5c35;
  text-decoration: none;
  padding: 0;
  flex-shrink: 0;
}

.hero__cta:hover {
  text-decoration: none;
  color: #1a5c35;
}

.hero__cta-circle {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: #1a5c35;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  transition: transform 0.2s;
}

.hero__cta:hover .hero__cta-circle {
  transform: scale(1.1);
}

/* Cards */
.card-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.category-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  background: white;
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius-xl);
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.category-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  border-color: var(--primary-hex);
  text-decoration: none;
  color: inherit;
}

.category-card__emoji {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.category-card__label {
  font-weight: 700;
  font-size: 0.875rem;
  text-align: center;
}

.category-card__count {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  margin-top: 0.25rem;
}

/* Replit: no-scrollbar utility, leaflet container font */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.leaflet-container {
  font-family: var(--font-sans);
}

/* Map page — sidebar filters and layout (match Replit reference) */
.mapa-page {
  position: relative;
  height: calc(100vh - 4rem);
  width: 100%;
}

/* Mobile-only map UI (Replit-style): hidden on desktop */
.mapa-mobile-wrap {
  display: none;
}

.mapa-container {
  position: relative;
}

.mapa-loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: #e8e6e1;
  z-index: 10;
}
.mapa-loading__spinner {
  width: 2.5rem;
  height: 2.5rem;
  border: 3px solid rgba(26, 92, 53, 0.2);
  border-top-color: var(--primary-hex);
  border-radius: 50%;
  animation: mapa-spin 0.8s linear infinite;
}
@keyframes mapa-spin {
  to { transform: rotate(360deg); }
}
.mapa-loading__text {
  font-size: 0.95rem;
  font-weight: 600;
  color: #374151;
}

/* Replit-style: bg-card/97 backdrop-blur rounded-2xl shadow-2xl */
.mapa-sidebar {
  width: 22rem;
  max-width: calc(100vw - 2rem);
  background: transparent;
  border-radius: 1rem;
  border: 1px solid hsl(var(--border) / 0.6);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 1000;
}

/* Left sidebar: content (filters + locais) limited to ~50vh, rest for ads */
.mapa-sidebar__content {
  flex: 0 1 auto;
  max-height: 50vh;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  background: white;
}
.mapa-sidebar__content .no-scrollbar { overflow-y: auto; }
.mapa-sidebar__ads {
  flex: 1 1 auto;
  min-height: 12rem;
  padding: 1rem;
  border-top: 1px solid hsl(var(--border) / 0.5);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  overflow-y: auto;
}
.mapa-sidebar__ads .sponsored-banner {
  flex-shrink: 0;
}

/* Map sidebar: Google AdSense (replaces native rotating cards in lower slot) */
.mapa-sidebar-ads-slot--adsense {
  width: 100%;
  min-width: 0;
}
.mapa-sidebar-ads-slot--adsense .mapa-spot-panel__ads-wrapper,
.mapa-sidebar-ads-slot--adsense .mapa-spot-panel__ads-placeholder {
  margin: 0;
  max-width: 100%;
  border-radius: 0.75rem;
  overflow: hidden;
}
.mapa-sidebar-ads-slot--adsense .mapa-spot-panel__ads-label {
  font-size: 0.65rem;
}
.mapa-sidebar-ads-slot--adsense ins.adsbygoogle {
  display: block !important;
  min-height: 90px;
  max-width: 100%;
}

/* Replit SectionLabel: text-[10px] font-extrabold uppercase tracking-widest */
.mapa-sidebar__section-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: hsl(var(--muted-foreground));
  margin-bottom: 0.5rem;
  margin-top: 0.75rem;
  display: block;
}

.mapa-sidebar__section-label:first-child {
  margin-top: 0;
}

.filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

/* Replit Pill: px-2.5 py-1.5 rounded-lg text-xs font-bold, active: shadow-sm scale-105 */
.filter-pill {
  padding: 0.375rem 0.625rem;
  border-radius: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid hsl(var(--border));
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  cursor: pointer;
  transition: all 0.15s ease;
}

.filter-pill:hover {
  background: hsl(var(--muted) / 0.8);
  color: hsl(var(--foreground));
}

.filter-pill.active {
  background: var(--primary-hex);
  color: white;
  border-color: var(--primary-hex);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transform: scale(1.02);
}

/* Difficulty pills: Replit-style colors when not active */
.filter-pill--easy { background: #22c55e; color: white; border-color: #22c55e; }
.filter-pill--moderate { background: #eab308; color: white; border-color: #eab308; }
.filter-pill--hard { background: #ef4444; color: white; border-color: #ef4444; }
.filter-pill--expert { background: #1f2937; color: white; border-color: #1f2937; }
.filter-pills--difficulty .filter-pill--easy.active,
.filter-pills--difficulty .filter-pill--moderate.active,
.filter-pills--difficulty .filter-pill--hard.active,
.filter-pills--difficulty .filter-pill--expert.active { background: var(--primary-hex); border-color: var(--primary-hex); }

/* Open now toggle — Replit-style rounded switch */
.mapa-filter-open-now {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  cursor: pointer;
  font-size: 0.9rem;
  color: hsl(var(--foreground));
}
.mapa-filter-open-now__toggle-wrap {
  position: relative;
  display: inline-block;
  width: 2.5rem;
  height: 1.25rem;
  flex-shrink: 0;
}
.mapa-filter-open-now__input {
  opacity: 0;
  width: 0;
  height: 0;
}
.mapa-filter-open-now__slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #dcfce7;
  border-radius: 9999px;
  transition: 0.2s;
}
.mapa-filter-open-now__slider::before {
  content: "";
  position: absolute;
  height: 1rem;
  width: 1rem;
  left: 2px;
  bottom: 2px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: 0.2s;
}
.mapa-filter-open-now__input:checked + .mapa-filter-open-now__slider {
  background: var(--primary-hex);
}
.mapa-filter-open-now__input:checked + .mapa-filter-open-now__slider::before {
  transform: translateX(1.25rem);
}

.mapa-search-wrap {
  position: relative;
  margin-bottom: 1rem;
}

.mapa-search-wrap__icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  width: 1.125rem;
  height: 1.125rem;
  color: var(--primary-hex);
  pointer-events: none;
}

.mapa-search-wrap__input {
  width: 100%;
  padding: 0.65rem 1rem 0.65rem 2.75rem;
  font-size: 0.95rem;
  font-family: var(--font-sans);
  color: hsl(var(--foreground));
  background: #fff;
  border: 1px solid hsl(var(--border));
  border-radius: 0.75rem;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.mapa-search-wrap__input::placeholder {
  color: #9ca3af;
}

.mapa-search-wrap__input:hover {
  border-color: #d1d5db;
}

.mapa-search-wrap__input:focus {
  border-color: var(--primary-hex);
  box-shadow: 0 0 0 2px rgba(26, 92, 53, 0.15);
}

/* Sponsored cards: Replit-style amber/gold, semi-transparent, readable */
.sponsored-card {
  background: linear-gradient(135deg, rgba(255, 251, 235, 0.88) 0%, rgba(254, 252, 232, 0.88) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #1c1917;
  border: 1px solid rgba(251, 191, 36, 0.5);
  border-radius: 1rem;
  padding: 0.9rem 1rem;
  position: relative;
  margin-bottom: 1rem;
  box-shadow: 0 2px 12px rgba(180, 83, 9, 0.08);
  min-width: 0;
}

.sponsored-card__badge {
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #b45309;
  margin-bottom: 0.2rem;
}

.sponsored-card__title {
  font-weight: 700;
  font-size: 0.95rem;
  margin: 0 0 0.25rem;
  color: #1c1917;
}

.sponsored-card__link {
  font-size: 0.8rem;
  font-weight: 600;
  color: #b45309;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.sponsored-card__link:hover {
  text-decoration: underline;
  color: #92400e;
}

.sponsored-card__close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.75rem;
  height: 1.75rem;
  border: none;
  background: rgba(180, 83, 9, 0.12);
  color: #92400e;
  border-radius: 0.5rem;
  cursor: pointer;
  font-size: 1.1rem;
  line-height: 1;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
}

.sponsored-card__close:hover {
  background: rgba(180, 83, 9, 0.2);
  color: #78350f;
}

.sponsored-card--link {
  text-decoration: none;
  color: inherit;
  display: block;
}
.sponsored-card--link:hover {
  color: inherit;
  box-shadow: 0 4px 16px rgba(180, 83, 9, 0.12);
}

/* Featured paid event: same slot as sponsored card, distinct “ticket” silhouette */
.sponsored-card--featured-event {
  clip-path: polygon(4% 0%, 96% 0%, 100% 10%, 100% 90%, 96% 100%, 4% 100%, 0% 90%, 0% 10%);
  border-radius: 0;
  border-color: rgba(234, 88, 12, 0.45);
  background: linear-gradient(145deg, rgba(255, 247, 237, 0.95) 0%, rgba(254, 252, 232, 0.92) 100%);
  box-shadow: 0 3px 14px rgba(234, 88, 12, 0.12);
  overflow: hidden;
}
.sponsored-card--featured-event:hover {
  box-shadow: 0 5px 18px rgba(234, 88, 12, 0.18);
}
.sponsored-card__badge--event {
  color: #c2410c;
  letter-spacing: 0.14em;
}
.mapa-featured-event-banner__row {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  margin-bottom: 0.35rem;
  min-width: 0;
}
.mapa-featured-event-banner__media {
  flex: 0 0 3rem;
  width: 3rem;
  height: 3rem;
  min-width: 0;
  max-width: 3rem;
  max-height: 3rem;
  border-radius: 0.45rem;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #fed7aa, #fdba74);
  border: 1px solid rgba(234, 88, 12, 0.35);
}
.mapa-featured-event-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
}
.mapa-featured-event-banner__emoji {
  font-size: 1.35rem;
  line-height: 1;
}
.mapa-featured-event-banner__body {
  min-width: 0;
  flex: 1;
}
.mapa-featured-event-banner__title {
  font-weight: 800;
  font-size: 0.88rem;
  margin: 0 0 0.15rem;
  line-height: 1.25;
  color: #1c1917;
}
.mapa-featured-event-banner__date {
  font-size: 0.72rem;
  font-weight: 700;
  color: #c2410c;
  margin: 0 0 0.2rem;
}
.mapa-featured-event-banner__desc {
  font-size: 0.72rem;
  color: #57534e;
  margin: 0;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mapa-featured-event-banner__cta {
  margin-top: 0.15rem;
}

/* Rotating paid banner at top of map sidebar */
.mapa-top-banner-wrap {
  position: relative;
  margin-bottom: 1rem;
}
.mapa-top-banner-wrap .sponsored-card__close {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  z-index: 2;
}
.mapa-top-banner-slot {
  min-height: 4rem;
  min-width: 0;
  overflow: hidden;
}
.mapa-top-banner {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  min-width: 0;
  padding: 0.9rem 1rem;
  border-radius: 1rem;
  border: 1px solid rgba(251, 191, 36, 0.5);
  background: linear-gradient(135deg, rgba(255, 251, 235, 0.88) 0%, rgba(254, 252, 232, 0.88) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  text-decoration: none;
  color: #1c1917;
  transition: box-shadow 0.2s ease;
  box-shadow: 0 2px 12px rgba(180, 83, 9, 0.08);
}
.mapa-top-banner:hover {
  box-shadow: 0 4px 16px rgba(180, 83, 9, 0.12);
  color: #1c1917;
}
.mapa-top-banner__icon {
  width: 2.75rem;
  height: 2.75rem;
  min-width: 0;
  max-width: 2.75rem;
  min-height: 2.75rem;
  max-height: 2.75rem;
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex: 0 0 2.75rem;
  overflow: hidden;
  background: rgba(254, 243, 199, 0.9);
  border: 1px solid rgba(251, 191, 36, 0.4);
}
/* When promoter uses their own image, slightly larger thumb — still bounded (flex min-size fix) */
.mapa-top-banner__icon:has(.mapa-top-banner__img) {
  width: 5.5rem;
  height: 5.5rem;
  flex-basis: 5.5rem;
  max-width: 5.5rem;
  max-height: 5.5rem;
}
.mapa-top-banner__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: inherit;
}
.mapa-top-banner__body {
  min-width: 0;
  flex: 1;
}
.mapa-top-banner__sponsor {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #92400e;
  margin: 0 0 0.15rem;
  line-height: 1.2;
}
.mapa-top-banner__badge {
  font-size: 0.55rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #b45309;
  margin-left: 0.4rem;
}
.mapa-top-banner__tagline {
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.3;
  margin: 0;
  color: #57534e;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.mapa-top-banner__cta {
  font-size: 0.75rem;
  font-weight: 700;
  color: #b45309;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  margin-top: 0.35rem;
}

.sponsored-banner {
  background: hsl(var(--muted) / 0.3);
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  padding: 0.6rem 0.75rem;
  margin-bottom: 0.5rem;
  font-size: 0.8rem;
}

.sponsored-banner__label {
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: hsl(var(--muted-foreground));
  margin-bottom: 0.2rem;
}

.sponsored-banner__title {
  font-weight: 700;
  color: hsl(var(--foreground));
}

.sponsored-banner a {
  font-size: 0.75rem;
  color: var(--primary-hex);
  text-decoration: none;
}

.sponsored-banner a:hover {
  text-decoration: underline;
}

/* Sidebar rotating ad cards — Replit-style: PATROCINADO badge, thumb, title, desc, arrow */
.mapa-sidebar-ads-slot {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mapa-sidebar-ad-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  padding: 0.7rem 0.85rem;
  background: linear-gradient(135deg, rgba(255, 251, 235, 0.88) 0%, rgba(254, 252, 232, 0.88) 100%);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(251, 191, 36, 0.5);
  border-radius: 1rem;
  text-decoration: none;
  color: #1c1917;
  transition: box-shadow 0.2s ease;
  position: relative;
  box-shadow: 0 2px 12px rgba(180, 83, 9, 0.08);
}
.mapa-sidebar-ad-card:hover {
  box-shadow: 0 4px 16px rgba(180, 83, 9, 0.12);
  color: #1c1917;
}
.mapa-sidebar-ad-card__badge {
  position: absolute;
  top: 0.4rem;
  right: 0.6rem;
  font-size: 0.55rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #b45309;
}
.mapa-sidebar-ad-card__thumb {
  width: 2.5rem;
  height: 2.5rem;
  min-width: 0;
  max-width: 2.5rem;
  min-height: 2.5rem;
  max-height: 2.5rem;
  flex: 0 0 2.5rem;
  border-radius: 0.65rem;
  overflow: hidden;
  background: rgba(254, 243, 199, 0.9);
  border: 1px solid rgba(251, 191, 36, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
}
.mapa-sidebar-ad-card__thumb:has(.mapa-sidebar-ad-card__img) {
  width: 4rem;
  height: 4rem;
  flex-basis: 4rem;
  max-width: 4rem;
  max-height: 4rem;
}
.mapa-sidebar-ad-card__thumb--icon {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
}
.mapa-sidebar-ad-card__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
}
.mapa-sidebar-ad-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding-right: 0.25rem;
}
.mapa-sidebar-ad-card__title {
  font-weight: 700;
  font-size: 0.85rem;
  line-height: 1.25;
  display: block;
  color: #1c1917;
}
.mapa-sidebar-ad-card__desc {
  font-size: 0.75rem;
  color: #57534e;
  display: block;
}
.mapa-sidebar-ad-card__arrow {
  font-size: 0.8rem;
  color: #b45309;
  flex-shrink: 0;
  transition: color 0.15s;
}
.mapa-sidebar-ad-card:hover .mapa-sidebar-ad-card__arrow {
  color: #92400e;
}

/* Bottom ad bar — Replit-style amber, matches top/sidebar sponsored cards */
.mapa-bottom-ad-wrap {
  display: flex;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: linear-gradient(135deg, rgba(255, 251, 235, 0.92) 0%, rgba(254, 252, 232, 0.92) 100%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-top: 1px solid rgba(251, 191, 36, 0.5);
  color: #1c1917;
  padding: 0.6rem 1rem 0.6rem 2.5rem;
  box-shadow: 0 -2px 20px rgba(180, 83, 9, 0.08);
  align-items: center;
  justify-content: center;
  gap: 1rem;
  min-height: 3.5rem;
}
.mapa-bottom-ad__close {
  position: absolute;
  top: 0.4rem;
  right: 0.75rem;
  background: rgba(180, 83, 9, 0.12);
  border: none;
  color: #92400e;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.2rem;
  border-radius: 0.5rem;
  transition: background 0.15s, color 0.15s;
}
.mapa-bottom-ad__close:hover {
  background: rgba(180, 83, 9, 0.2);
  color: #78350f;
}
.mapa-bottom-ad-slot {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}
.mapa-bottom-ad {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  text-decoration: none;
  color: #1c1917;
  padding: 0.25rem 0.5rem;
  border-radius: 0.5rem;
  transition: opacity 0.2s;
  max-width: 100%;
}
.mapa-bottom-ad:hover {
  color: #1c1917;
  opacity: 0.95;
}
.mapa-bottom-ad__badge {
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #b45309;
  margin-right: 0.25rem;
}
.mapa-bottom-ad__thumb {
  width: 2rem;
  height: 2rem;
  min-width: 0;
  max-width: 2rem;
  min-height: 2rem;
  max-height: 2rem;
  flex: 0 0 2rem;
  border-radius: 0.5rem;
  overflow: hidden;
  background: rgba(254, 243, 199, 0.9);
  border: 1px solid rgba(251, 191, 36, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
}
.mapa-bottom-ad__thumb:has(.mapa-bottom-ad__img) {
  width: 3.5rem;
  height: 3.5rem;
  flex-basis: 3.5rem;
  max-width: 3.5rem;
  max-height: 3.5rem;
}
.mapa-bottom-ad__thumb--icon {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
}
.mapa-bottom-ad__img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
}
.mapa-bottom-ad__title {
  font-weight: 700;
  font-size: 0.9rem;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #1c1917;
}
.mapa-bottom-ad__cta {
  flex-shrink: 0;
  background: #b45309;
  color: #fffbeb;
  font-weight: 700;
  font-size: 0.8rem;
  padding: 0.4rem 0.75rem;
  border-radius: 0.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.mapa-bottom-ad:hover .mapa-bottom-ad__cta {
  background: #92400e;
}

/* Map spot list items — Replit-style card with icon and category pill */
.spot-item-wrap {
  margin-bottom: 2px;
  border-radius: 0.75rem;
  transition: background 0.15s ease;
}

.spot-item-wrap:hover {
  background: hsl(var(--muted) / 0.3);
}

.spot-item {
  display: block;
  padding: 0.5rem 0.75rem;
  text-decoration: none;
  color: hsl(var(--foreground));
  font-weight: 700;
  font-size: 0.9rem;
}
.spot-item__closed-pill {
  font-size: 0.7rem;
  color: #b91c1c;
  font-weight: 800;
  margin-left: 0.25rem;
  vertical-align: middle;
}
.spot-item-wrap--closed-today .spot-item {
  color: hsl(var(--foreground) / 0.92);
}
.spot-item__closure-reason {
  margin: -0.15rem 0.75rem 0.35rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
  color: #7f1d1d;
  background: #fef2f2;
  border-radius: 0.35rem;
  border-left: 3px solid #ef4444;
}

.add-trip-btn {
  font-size: 0.7rem;
  color: var(--primary-hex);
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
}

.add-trip-btn:hover {
  text-decoration: none;
}

.mapa-criar-roteiro {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: white;
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  font-weight: 700;
  font-size: 0.85rem;
  color: hsl(var(--foreground));
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  cursor: pointer;
  transition: box-shadow 0.2s;
}

.mapa-criar-roteiro:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  color: hsl(var(--foreground));
  text-decoration: none;
}
.mapa-criar-roteiro--active {
  background: hsl(142 71% 28%);
  border-color: hsl(142 71% 22%);
  color: white;
}
.mapa-criar-roteiro--active:hover {
  background: hsl(142 71% 22%);
  color: white;
}

/* Right-side spot detail panel (Replit SpotPanel-style) */
.mapa-spot-panel {
  position: absolute;
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  width: 22rem;
  max-width: calc(100vw - 2rem);
  background: hsl(var(--card));
  border-radius: 1rem;
  border: 1px solid hsl(var(--border) / 0.6);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateX(120%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.2s ease;
}
.mapa-spot-panel--open {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}
.mapa-spot-panel__inner {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
}
.mapa-spot-panel__scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  position: relative;
}
.mapa-spot-panel__actions-fixed {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 1rem 1rem 0.75rem;
  border-top: 1px solid hsl(var(--border) / 0.6);
  background: hsl(var(--card) / 0.98);
  backdrop-filter: blur(8px);
}
.mapa-spot-panel__actions-slot {
  flex-shrink: 0;
  min-width: 0;
}
/* “Adicionar ao Roteiro” under spot panel: hidden by default; shown ≥768px and on mobile map via body.page-mapa rules */
.mapa-spot-panel__criar-roteiro-wrap {
  display: none;
}
@media (min-width: 768px) {
  .mapa-spot-panel__criar-roteiro-wrap {
    display: block;
    flex-shrink: 0;
    padding: 0.5rem 0 0;
    margin: 0;
    border-top: 1px solid hsl(var(--border) / 0.5);
    background: transparent;
  }
  .mapa-spot-panel__criar-roteiro-wrap .mapa-criar-roteiro {
    position: static;
    width: 100%;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  }
}
.mapa-spot-panel__actions-fixed .mapa-spot-panel__actions {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.mapa-spot-panel__actions-fixed .mapa-spot-panel__btn--close {
  flex: 1 1 100%;
  order: -1;
}
/* Close: loading/error overlay (not inside hero-actions) */
.mapa-spot-panel__close--overlay {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.4);
  color: white;
  border: none;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.mapa-spot-panel__close--overlay:hover {
  background: rgba(0, 0, 0, 0.6);
}
.mapa-spot-panel__close--overlay + .mapa-spot-panel__loading,
.mapa-spot-panel__close--overlay + .mapa-spot-panel__error {
  padding: 3rem 1rem 1.5rem;
  margin: 0;
}
.mapa-spot-panel__hero-wrap {
  position: relative;
  height: 14rem;
  overflow: hidden;
}
.mapa-spot-panel__hero {
  position: absolute;
  inset: 0;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-color: hsl(var(--muted));
}
.mapa-spot-panel__hero-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.35) 0%, transparent 30%, transparent 55%, rgba(0, 0, 0, 0.65) 100%);
  pointer-events: none;
  z-index: 1;
}
/* Share + close: one stack, same box (desktop: row, share left of ×) */
.mapa-spot-panel__hero-actions {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  z-index: 4;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  pointer-events: auto;
}
.mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share,
.mapa-spot-panel__hero-actions .mapa-spot-panel__close {
  position: static;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  color: white;
  border: none;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  overflow: hidden;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share {
  background: rgba(0, 0, 0, 0.4);
  font-size: 1rem;
}
.mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share:hover {
  background: rgba(0, 0, 0, 0.6);
}
.mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share svg,
.mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share .mapa-spot-panel__hero-share-img {
  display: block;
  width: 1.1em;
  height: 1.1em;
  object-fit: contain;
  pointer-events: none;
}
.mapa-spot-panel__hero-actions .mapa-spot-panel__close {
  background: rgba(0, 0, 0, 0.4);
  font-size: 1.25rem;
}
.mapa-spot-panel__hero-actions .mapa-spot-panel__close:hover {
  background: rgba(0, 0, 0, 0.6);
}
/* Replit: badge + title in one block at bottom, no overlap */
.mapa-spot-panel__hero-title-block {
  position: absolute;
  bottom: 1rem;
  left: 1.25rem;
  right: 4.5rem;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}
.mapa-spot-panel__hero-title-block .mapa-spot-panel__badge {
  position: static;
  margin: 0;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  color: white;
  backdrop-filter: blur(6px);
  box-shadow: none;
  display: inline-block;
}
.mapa-spot-panel__hero-title-block .mapa-spot-panel__name {
  position: static;
  margin: 0;
  padding: 0;
  font-size: 1.375rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  text-align: left;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 2px 8px rgba(0, 0, 0, 0.5);
  word-break: break-word;
}
.mapa-spot-panel__badge {
  position: absolute;
  top: 0.75rem;
  left: 1rem;
  margin: 0;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  color: white;
  z-index: 3;
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}
.mapa-spot-panel__name {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0;
  padding: 1rem 1.25rem 1rem;
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  text-align: left;
  z-index: 3;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8), 0 2px 8px rgba(0, 0, 0, 0.5);
}
.mapa-spot-panel__status-strip {
  position: relative;
  margin: 0.75rem 1rem 0;
  max-width: calc(100% - 2rem);
  padding: 0.9rem 1rem 0.95rem 1.05rem;
  border-radius: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.65);
  box-shadow: 0 1px 2px hsl(var(--foreground) / 0.04);
  overflow: hidden;
}
.mapa-spot-panel__status-strip::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
}
.mapa-spot-panel__status-strip--open {
  background: hsl(var(--muted) / 0.28);
  border-color: hsl(152 22% 86%);
  color: hsl(var(--foreground));
}
.mapa-spot-panel__status-strip--open::before {
  background: linear-gradient(180deg, hsl(152 50% 44%), hsl(160 42% 36%));
}
.mapa-spot-panel__status-strip--closed {
  background: hsl(var(--muted) / 0.32);
  border-color: hsl(0 18% 88%);
  color: hsl(var(--foreground));
}
.mapa-spot-panel__status-strip--closed::before {
  background: linear-gradient(180deg, hsl(0 58% 52%), hsl(25 55% 48%));
}
.mapa-spot-panel__status-text {
  padding-left: 0.35rem;
}
.mapa-spot-panel__status-title {
  margin: 0 0 0.35rem;
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: -0.02em;
  line-height: 1.3;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__status-strip--open .mapa-spot-panel__status-title {
  color: hsl(155 32% 22%);
}
.mapa-spot-panel__status-strip--closed .mapa-spot-panel__status-title {
  color: hsl(0 40% 28%);
}
.mapa-spot-panel__status-sub {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1.55;
  color: hsl(var(--muted-foreground));
  max-width: 36rem;
}
.mapa-spot-panel__status-reason {
  margin: 0.65rem 0 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.5rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.55);
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.45;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__status-reason-k {
  display: block;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: hsl(var(--muted-foreground));
  margin-bottom: 0.2rem;
}
.leaflet-tooltip.mapa-marker-tooltip {
  font-weight: 700;
  font-size: 0.72rem;
  max-width: 220px;
  white-space: normal;
  line-height: 1.35;
  padding: 0.4rem 0.55rem;
  border-radius: 0.35rem;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}
.mapa-spot-panel__best-time {
  margin: 0.5rem 1rem 0;
  padding: 0.6rem 0.95rem;
  max-width: calc(100% - 2rem);
  border-radius: 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: hsl(var(--foreground));
  background: linear-gradient(145deg, hsl(var(--card)) 0%, hsl(var(--muted) / 0.38) 100%);
  border: 1px solid hsl(var(--border) / 0.75);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 2px 10px rgba(15, 23, 42, 0.05);
  display: inline-flex;
  align-items: flex-start;
  gap: 0.35rem;
}
.mapa-spot-panel__best-time-icon {
  opacity: 0.75;
  flex-shrink: 0;
  margin-top: 0.12em;
}
.mapa-spot-panel__best-time--stack {
  flex-direction: column;
  align-items: stretch;
  gap: 0.45rem;
}
.mapa-spot-panel__best-season-line {
  display: block;
  font-weight: 600;
  color: hsl(var(--foreground));
  letter-spacing: 0.01em;
}
.mapa-spot-panel__best-time-line {
  display: block;
  font-weight: 500;
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__best-season-line + .mapa-spot-panel__best-time-line {
  margin-top: 0.35rem;
  padding-top: 0.45rem;
  border-top: 1px solid hsl(var(--border) / 0.55);
}
.mapa-spot-panel__panel-section {
  margin: 0 1rem 1rem;
}
.mapa-spot-panel__panel-section--elevated {
  margin: 0 1rem 0.875rem;
  padding: 1rem 1.05rem 1.05rem;
  background: linear-gradient(165deg, hsl(var(--card)) 0%, hsl(var(--muted) / 0.22) 100%);
  border: 1px solid hsl(var(--border) / 0.7);
  border-radius: 0.875rem;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.05) inset,
    0 4px 20px rgba(15, 23, 42, 0.04);
}
.mapa-spot-panel__panel-section--elevated .mapa-spot-panel__panel-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid hsl(var(--border) / 0.55);
  font-size: 0.6875rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__panel-section--elevated .mapa-spot-panel__panel-section-title::before {
  content: "";
  width: 3px;
  height: 0.9rem;
  border-radius: 999px;
  flex-shrink: 0;
  background: linear-gradient(180deg, hsl(142 58% 42%), hsl(160 42% 32%));
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12) inset;
}
.mapa-spot-panel__panel-section-title-glyph {
  font-size: 0.95rem;
  line-height: 1;
  opacity: 0.88;
  filter: grayscale(0.08);
}
.mapa-spot-panel__panel-section-title-text {
  flex: 1;
  min-width: 0;
}
.mapa-spot-panel__hours-inner .mapa-spot-panel__schedule-list:first-child {
  margin-top: 0;
}
.mapa-spot-panel__schedule-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mapa-spot-panel__schedule-item {
  display: grid;
  grid-template-columns: 2.65rem minmax(0, 1fr);
  gap: 0 0.65rem;
  align-items: baseline;
  padding: 0.42rem 0;
  border-bottom: 1px solid hsl(var(--border) / 0.4);
  font-size: 0.8125rem;
  line-height: 1.4;
}
.mapa-spot-panel__schedule-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.mapa-spot-panel__schedule-item:first-child {
  padding-top: 0;
}
.mapa-spot-panel__schedule-day {
  font-weight: 700;
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  font-variant-numeric: tabular-nums;
}
.mapa-spot-panel__schedule-hours {
  font-weight: 500;
  color: hsl(var(--foreground));
  text-align: right;
}
.mapa-spot-panel__schedule-item--closed .mapa-spot-panel__schedule-hours {
  color: hsl(var(--muted-foreground));
  font-style: italic;
  font-weight: 500;
}
.mapa-spot-panel__hours-line {
  margin: 0.65rem 0 0;
  padding-top: 0.65rem;
  border-top: 1px solid hsl(var(--border) / 0.45);
  font-size: 0.8125rem;
  line-height: 1.5;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__hours-line:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.mapa-spot-panel__hours-line strong {
  font-weight: 700;
  color: hsl(var(--foreground));
  margin-right: 0.35rem;
}
.mapa-spot-panel__hours-line--free {
  color: hsl(var(--muted-foreground));
  font-style: italic;
}
.mapa-spot-panel__hours-line--hotel {
  font-size: 0.8rem;
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__info-gerais-inner {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.mapa-spot-panel__info-row {
  display: grid;
  grid-template-columns: minmax(4.5rem, 32%) minmax(0, 1fr);
  gap: 0.5rem 0.85rem;
  align-items: baseline;
  padding: 0.5rem 0;
  border-bottom: 1px solid hsl(var(--border) / 0.35);
  font-size: 0.8125rem;
  line-height: 1.45;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__info-row:first-child {
  padding-top: 0;
}
.mapa-spot-panel__info-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.mapa-spot-panel__info-k {
  font-weight: 700;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__info-v {
  font-weight: 500;
  color: hsl(var(--foreground));
  text-align: right;
}
.mapa-spot-panel__menu-text-box {
  margin: 0;
  padding: 0.8rem 0.95rem;
  border-radius: 0.625rem;
  background: hsl(var(--muted) / 0.28);
  border: 1px solid hsl(var(--border) / 0.55);
  font-size: 0.8125rem;
  line-height: 1.55;
  white-space: pre-wrap;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__dietary-line {
  margin: 0;
  padding: 0.65rem 0.85rem;
  border-radius: 0.625rem;
  font-size: 0.8125rem;
  line-height: 1.55;
  background: hsl(var(--muted) / 0.35);
  border: 1px solid hsl(var(--border) / 0.6);
  color: hsl(var(--foreground));
}
.mapa-spot-panel__service-menu--generic {
  margin: 0 1rem 0.875rem;
  padding: 1rem 1.05rem 1.05rem;
  background: linear-gradient(158deg, rgba(240, 253, 244, 0.95) 0%, rgba(236, 253, 245, 0.72) 55%, rgba(254, 252, 232, 0.35) 100%);
  border: 1px solid rgba(34, 197, 94, 0.2);
  border-radius: 0.875rem;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.5) inset,
    0 4px 18px rgba(22, 101, 52, 0.06);
}
.mapa-spot-panel__service-menu--generic .mapa-spot-panel__service-menu-title {
  margin: 0 0 0.65rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(34, 197, 94, 0.14);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: hsl(142 32% 26%);
}
.mapa-spot-panel__service-menu--generic .mapa-spot-panel__menu-table {
  font-size: 0.8125rem;
}
.mapa-spot-panel__service-menu--generic .mapa-spot-panel__menu-cell {
  border-bottom-color: rgba(22, 101, 52, 0.08);
  padding: 0.4rem 0;
}
.mapa-spot-panel__service-menu--generic .mapa-spot-panel__menu-cell--price {
  color: hsl(142 45% 28%);
  font-weight: 700;
}
.mapa-spot-panel__service-menu--generic .mapa-spot-panel__menu-cell--desc {
  color: hsl(var(--muted-foreground));
}
@media (max-width: 360px) {
  .mapa-spot-panel__info-row {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
  .mapa-spot-panel__info-v {
    text-align: left;
  }
}
.mapa-spot-panel__body {
  padding: 1rem 1rem 1.5rem;
  background: hsl(var(--card));
  border-top: 1px solid hsl(var(--border) / 0.5);
}
/* Unpaid / unclaimed map panel: SOBRE + ad only — reserve vertical room for responsive ad */
.mapa-spot-panel__body--listing-lite {
  padding-bottom: 2rem;
}
.mapa-spot-panel__ads-wrapper--lite,
.mapa-spot-panel__ads-placeholder--lite {
  min-height: 280px;
  margin-top: 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.mapa-spot-panel__ads-placeholder {
  margin-bottom: 1rem;
  padding: 1.5rem;
  border: 1px dashed hsl(var(--border));
  border-radius: 0.5rem;
  background: hsl(var(--muted) / 0.2);
  text-align: center;
}
.mapa-spot-panel__ads-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 700;
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__ads-sub {
  font-size: 0.7rem;
  color: hsl(var(--muted-foreground) / 0.8);
}
.mapa-spot-panel__ads-wrapper {
  margin-bottom: 1rem;
}

/* Guide pages: ad placement wrapper */
.guia-ad {
  margin: 1.5rem 0;
}
.guia-ad .mapa-spot-panel__ads-wrapper,
.guia-ad .mapa-spot-panel__ads-placeholder {
  max-width: 100%;
}
.guia-ad--roteiros {
  padding: 1.5rem 1rem;
  background: #fff;
  margin: 0;
}
.guia-ad--roteiros .mapa-spot-panel__ads-wrapper,
.guia-ad--roteiros .mapa-spot-panel__ads-placeholder {
  margin-bottom: 0;
}
.mapa-spot-panel__ads-label--live {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground) / 0.7);
  margin-bottom: 0.25rem;
}
.mapa-spot-panel__address {
  margin-bottom: 1rem;
  padding: 0.5rem 0;
  font-size: 0.85rem;
  color: hsl(var(--foreground));
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
}
.mapa-spot-panel__address-icon {
  flex-shrink: 0;
}
.mapa-spot-panel__map-section {
  margin-bottom: 1rem;
}
.mapa-spot-panel__map-head {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--foreground));
  margin: 0 0 0.4rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.mapa-spot-panel__map-icon {
  font-size: 0.75rem;
}
.mapa-spot-panel__map-iframe {
  width: 100%;
  height: 10rem;
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  display: block;
  margin-bottom: 0.5rem;
}
.mapa-spot-panel__map-link {
  font-size: 0.8rem;
  color: var(--primary-hex);
  text-decoration: none;
}
.mapa-spot-panel__map-link:hover {
  text-decoration: underline;
}
.mapa-spot-panel__reviews {
  margin-bottom: 1rem;
}
.mapa-spot-panel__reviews-title {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--primary-hex);
  margin: 0 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.mapa-spot-panel__reviews-icon {
  font-size: 0.8rem;
}
.mapa-spot-panel__review-input-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.65rem;
  background: #f0fdf4;
  border: 1px solid hsl(var(--border));
  border-radius: 0.5rem;
  margin-bottom: 0.75rem;
}
.mapa-spot-panel__review-btn {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  padding: 0.75rem 1rem;
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border: 1px solid rgba(22, 163, 74, 0.35);
  border-radius: 0.75rem;
  margin-bottom: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #14532d;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(22, 163, 74, 0.12);
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}
.mapa-spot-panel__review-btn:hover {
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  border-color: rgba(22, 163, 74, 0.5);
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.2);
  transform: translateY(-1px);
  color: #14532d;
}
.mapa-spot-panel__review-btn:active {
  transform: translateY(0);
  box-shadow: 0 1px 3px rgba(22, 163, 74, 0.15);
}
.mapa-spot-panel__review-btn-text {
  flex: 1;
  color: inherit;
  letter-spacing: 0.01em;
}
.mapa-spot-panel__review-avatar {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: linear-gradient(145deg, #16a34a 0%, #15803d 100%);
  color: #fef08a;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(22, 163, 74, 0.35);
}
.mapa-spot-panel__review-input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 0.85rem;
  color: hsl(var(--foreground));
  outline: none;
}
.mapa-spot-panel__review-input::placeholder {
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__reviews-avg {
  font-size: 0.75rem;
  font-weight: 700;
  color: hsl(var(--muted-foreground));
  margin-left: 0.25rem;
}
.mapa-spot-panel__reviews-avg.hidden { display: none !important; }
.mapa-spot-panel__reviews-list {
  margin-top: 0.5rem;
}
.mapa-spot-panel__review-item {
  padding: 0.75rem 0;
  border-bottom: 1px solid hsl(var(--border));
  font-size: 0.9rem;
}
.mapa-spot-panel__review-item:last-child { border-bottom: none; }
.mapa-spot-panel__review-item-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.25rem;
}
.mapa-spot-panel__review-item-author {
  font-weight: 600;
  font-size: 0.9rem;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__review-item-stars {
  color: #eab308;
  font-size: 0.95rem;
}
.mapa-spot-panel__review-item-text {
  margin: 0 0 0.35rem;
  line-height: 1.4;
  color: hsl(var(--foreground));
}
.mapa-spot-panel__review-item-date {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
}
.mapa-spot-panel__reviews-empty {
  text-align: center;
  padding: 0.75rem;
}
.mapa-spot-panel__reviews-empty-star {
  font-size: 1.5rem;
  display: block;
  margin-bottom: 0.25rem;
}
.mapa-spot-panel__reviews-empty-text {
  font-size: 0.9rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  margin: 0 0 0.15rem;
}
.mapa-spot-panel__reviews-empty-sub {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  margin: 0;
}

/* Review modal — same stacking as .mapa-claim-modal vs mobile spot panel */
.mapa-review-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.mapa-review-modal.hidden { display: none !important; }
.mapa-review-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.mapa-review-modal__box {
  position: relative;
  background: #fff;
  border: 1px solid rgba(26, 92, 53, 0.25);
  border-radius: 1rem;
  padding: 1.5rem;
  max-width: 28rem;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.mapa-review-modal__title {
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.5rem;
}
.mapa-review-modal__disclaimer {
  font-size: 0.8rem;
  color: #555;
  line-height: 1.4;
  margin: 0 0 1rem;
  padding: 0.5rem 0.65rem;
  background: #f8fafc;
  border-radius: 0.5rem;
}
.mapa-review-modal__form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.mapa-review-modal__row {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.mapa-review-modal__label {
  font-size: 0.85rem;
  font-weight: 600;
  color: hsl(var(--foreground));
}
.mapa-review-modal__input,
.mapa-review-modal__textarea {
  width: 100%;
  padding: 0.6rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  font-family: inherit;
}
.mapa-review-modal__textarea { resize: vertical; min-height: 4rem; }
.mapa-review-modal__input:focus,
.mapa-review-modal__textarea:focus {
  outline: none;
  border-color: var(--primary-hex);
  box-shadow: 0 0 0 2px rgba(26, 92, 53, 0.2);
}
.mapa-review-modal__hint {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
}
.mapa-review-modal__error {
  font-size: 0.8rem;
  color: #b91c1c;
}
.mapa-review-modal__stars {
  display: flex;
  gap: 0.25rem;
}
.mapa-review-modal__star {
  padding: 0.35rem 0.5rem;
  background: none;
  border: 1px solid #e5e7eb;
  border-radius: 0.35rem;
  font-size: 1.25rem;
  color: #d1d5db;
  cursor: pointer;
  transition: color 0.15s, border-color 0.15s, background 0.15s;
}
.mapa-review-modal__star:hover,
.mapa-review-modal__star--on {
  color: #eab308;
  border-color: #eab308;
  background: #fefce8;
}
.mapa-review-modal__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}
.mapa-review-modal__btn {
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
}
.mapa-review-modal__btn--secondary {
  background: #fff;
  border: 1px solid #d1d5db;
  color: #374151;
}
.mapa-review-modal__btn--primary {
  background: var(--primary-hex);
  color: white;
  border: none;
}
.mapa-review-modal__btn--primary:hover:not(:disabled) { filter: brightness(1.05); }
.mapa-review-modal__btn:disabled { opacity: 0.7; cursor: not-allowed; }

.mapa-spot-panel__nearby {
  margin-bottom: 1rem;
}
.mapa-spot-panel__nearby-title {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--primary-hex);
  margin: 0 0 0.4rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: wrap;
}
.mapa-spot-panel__nearby-icon--food,
.mapa-spot-panel__nearby-icon--stay {
  font-size: 0.85rem;
}
.mapa-spot-panel__nearby-attribution {
  font-size: 0.6rem;
  font-weight: 600;
  color: hsl(var(--muted-foreground));
  margin-left: auto;
}
.mapa-spot-panel__nearby-list {
  margin-bottom: 0.75rem;
  max-height: 8rem;
  overflow-y: auto;
}
.mapa-spot-panel__nearby-loading,
.mapa-spot-panel__nearby-none {
  font-size: 0.8rem;
  color: hsl(var(--muted-foreground));
  margin: 0.25rem 0;
  padding: 0.25rem 0;
}
.mapa-spot-panel__nearby-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0.5rem;
  background: hsl(var(--muted) / 0.3);
  border-radius: 0.5rem;
  margin-bottom: 0.3rem;
  text-decoration: none;
  color: hsl(var(--foreground));
  font-size: 0.85rem;
  transition: background 0.15s;
}
.mapa-spot-panel__nearby-item:hover {
  background: hsl(var(--muted) / 0.5);
  color: hsl(var(--foreground));
}
.mapa-spot-panel__nearby-item-icon {
  flex-shrink: 0;
  font-size: 0.9rem;
}
.mapa-spot-panel__nearby-item-name {
  flex: 1;
  min-width: 0;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mapa-spot-panel__nearby-item-meta {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  flex-shrink: 0;
}
.mapa-spot-panel__nearby-item-arrow {
  font-size: 0.75rem;
  color: var(--primary-hex);
  flex-shrink: 0;
}

/* Full-page spot detail (Ver página completa) */
.spot-detail-page {
  max-width: 52rem;
  margin: 0 auto 2rem;
  padding: 0 1rem 6rem; /* extra bottom padding for fixed action bar */
}
.spot-detail-actions-fixed {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50;
  padding: 1rem 1rem max(1rem, env(safe-area-inset-bottom));
  background: hsl(var(--card) / 0.98);
  backdrop-filter: blur(8px);
  border-top: 1px solid hsl(var(--border) / 0.6);
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
}
.spot-detail-actions-fixed .mapa-spot-panel__actions {
  max-width: 52rem;
  margin: 0 auto;
  border-top: none;
  padding-top: 0;
}
.spot-detail-breadcrumb {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  margin-bottom: 1rem;
  padding: 0.5rem 0;
}
.spot-detail-breadcrumb a {
  color: var(--primary-hex);
  text-decoration: none;
}
.spot-detail-breadcrumb a:hover {
  text-decoration: underline;
}
.spot-detail-breadcrumb__sep {
  margin: 0 0.35rem;
}
.spot-detail-breadcrumb__current {
  color: hsl(var(--foreground));
  font-weight: 600;
}
.spot-detail-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0;
}
.spot-detail-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid transparent;
}
.spot-detail-pill--location {
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  border-color: hsl(var(--border));
}
.spot-detail-pill--pricing {
  background: #d1fae5;
  color: #065f46;
  border-color: #6ee7b7;
}
.spot-detail-pill--distance {
  background: #d1fae5;
  color: #065f46;
  border-color: #6ee7b7;
}
.spot-detail-pill--time {
  background: #fef3c7;
  color: #92400e;
  border-color: #fcd34d;
}
.spot-detail-pill--parking {
  background: #f1f5f9;
  color: #334155;
  border-color: #cbd5e1;
}
.spot-detail-pill--entrance {
  background: #fce7f3;
  color: #9d174d;
  border-color: #f9a8d4;
}
.spot-detail-card-block {
  margin: 0;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
}
.spot-detail-card-block--tips {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
  margin: 0;
}
.spot-detail-card-block__title {
  font-size: 0.6875rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.spot-detail-card-block--tips .spot-detail-card-block__title {
  color: #92400e;
}
.spot-detail-card-block__content {
  font-size: 0.875rem;
  color: hsl(var(--foreground));
  line-height: 1.55;
}
.spot-detail-card-block--tips .spot-detail-card-block__content {
  color: #78350f;
}
.spot-detail-cards-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin: 0;
}
.spot-detail-card-block--half {
  margin: 0;
}
.spot-detail-amenities {
  margin: 0;
  padding: 0;
}
.spot-detail-amenities .spot-detail-card-block__title {
  margin-bottom: 0.5rem;
}
.spot-detail-amenities .mapa-spot-panel__amenities-list {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
  align-content: flex-start;
}
.spot-detail-house-menu {
  background: rgba(255, 237, 213, 0.45);
  border: 1px solid rgba(234, 88, 12, 0.22);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
}
.spot-detail-house-menu__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.spot-detail-house-menu__name {
  padding: 0.4rem 0.5rem 0.4rem 0;
  vertical-align: top;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.spot-detail-house-menu__price {
  text-align: right;
  white-space: nowrap;
  font-weight: 700;
  color: #c2410c;
  padding: 0.4rem 0 0.4rem 0.5rem;
  vertical-align: top;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.spot-detail-house-menu__desc-row .spot-detail-house-menu__desc {
  font-size: 0.85rem;
  color: #64748b;
  padding: 0 0 0.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.spot-detail-coworking-menu {
  background: rgba(238, 242, 255, 0.55);
  border: 1px solid rgba(99, 102, 241, 0.22);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
}
.spot-detail-coworking-menu__price {
  color: #4f46e5;
}
.spot-detail-wellness-menu {
  background: rgba(245, 243, 255, 0.6);
  border: 1px solid rgba(124, 58, 237, 0.22);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
}
.spot-detail-wellness-menu__price {
  color: #7c3aed;
}
.spot-detail-internet-profile {
  background: rgba(219, 234, 254, 0.45);
  border: 1px solid rgba(59, 130, 246, 0.25);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
}
.spot-detail-internet-profile__body {
  font-size: 0.9rem;
  line-height: 1.55;
  color: #1e293b;
}
.spot-detail-internet-profile__row {
  margin: 0.4rem 0;
}
.spot-detail-internet-profile__row--speed {
  font-weight: 600;
  color: #1d4ed8;
}
.spot-detail-internet-profile__flags {
  margin: 0.6rem 0 0;
  padding-left: 1.2rem;
  font-size: 0.85rem;
}
.spot-detail-music-events {
  background: rgba(251, 207, 232, 0.35);
  border: 1px solid rgba(219, 39, 119, 0.28);
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
}
.spot-detail-music-events__list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
}
.spot-detail-music-events__item {
  padding: 0.65rem 0;
  border-bottom: 1px solid rgba(219, 39, 119, 0.15);
}
.spot-detail-music-events__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.spot-detail-music-events__name {
  margin: 0 0 0.35rem;
  font-weight: 700;
  font-size: 1rem;
  color: #9d174d;
}
.spot-detail-music-events__meta {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.15rem 0.65rem;
  margin: 0;
  font-size: 0.875rem;
  color: #334155;
}
.spot-detail-music-events__meta dt {
  margin: 0;
  font-weight: 600;
  color: #64748b;
}
.spot-detail-music-events__meta dd {
  margin: 0;
}
.spot-detail-music-events__desc {
  margin: 0.45rem 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #475569;
}
.spot-detail-music-events__ticket {
  margin: 0.5rem 0 0;
}
.spot-detail-music-events__ticket a {
  font-weight: 600;
  color: #be185d;
}
.spot-detail-music-events__legacy {
  margin: 0.5rem 0 0;
  font-size: 0.9rem;
  line-height: 1.55;
  color: #334155;
}
.spot-detail-music-events__legacy--sub {
  margin-top: 0.35rem;
}
.spot-detail-music-events__extra {
  margin: 0.75rem 0 0;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #9d174d;
}
.spot-detail-amenities-list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  font-size: 0.875rem;
  color: hsl(var(--foreground));
  line-height: 1.6;
  width: 100%;
}
.spot-detail-amenities-list li {
  margin-bottom: 0.35rem;
  padding: 0.2rem 0;
}
.spot-detail-amenities-list li:last-child {
  margin-bottom: 0;
}
.spot-detail-contact-card {
  margin: 0;
  padding: 1rem;
  border-radius: 0.5rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
}
.spot-detail-contact-card--whatsapp {
  background: #f0fdf4;
  border-color: #86efac;
}
.spot-detail-contact-card__title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.35rem;
}
.spot-detail-contact-card__value {
  font-size: 0.95rem;
  font-weight: 600;
  color: hsl(var(--foreground));
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.spot-detail-contact-card__link:hover {
  color: var(--primary-hex);
  text-decoration: underline;
}
.spot-detail-contact-card__icon {
  font-size: 1rem;
}
.spot-detail-contact-card__external {
  font-size: 0.8rem;
  opacity: 0.8;
}
.spot-detail-booking-btn {
  display: block;
  margin: 0 1rem 1rem;
  padding: 0.85rem 1.25rem;
  border-radius: 0.5rem;
  background: var(--primary-hex);
  color: white;
  font-weight: 700;
  font-size: 0.95rem;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s;
}
.spot-detail-booking-btn:hover {
  background: hsl(142 71% 22%);
  color: white;
  text-decoration: none;
}
.spot-detail-fotos__grid {
  grid-template-columns: repeat(3, 1fr);
}
.spot-detail-discover-card {
  margin: 0 1rem 1.5rem;
  padding: 1.5rem;
  border-radius: 0.75rem;
  background: #f0fdf4;
  border: 1px solid #86efac;
}
.spot-detail-discover-card__title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #166534;
  margin: 0 0 0.5rem;
}
.spot-detail-discover-card__desc {
  font-size: 0.9rem;
  color: hsl(var(--muted-foreground));
  margin: 0 0 1rem;
  line-height: 1.5;
}
.spot-detail-discover-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.25rem;
  border-radius: 0.5rem;
  background: var(--primary-hex);
  color: white;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  transition: background 0.2s;
}
.spot-detail-discover-card__btn:hover {
  background: hsl(142 71% 22%);
  color: white;
  text-decoration: none;
}
/* — Guides section: Replit (Chapada-Guide) template styling — */
.spot-detail-guides {
  margin: 0 1rem 1.75rem;
  padding-top: 1.5rem;
  border-top: 1px solid hsl(var(--border));
}
/* Replit: text-xs font-black uppercase tracking-widest text-muted-foreground */
.spot-detail-guides__title {
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
/* Replit: UserCircle2 w-3.5 h-3.5 — outline circle */
.spot-detail-guides__title-icon {
  width: 0.875rem;
  height: 0.875rem;
  border-radius: 50%;
  border: 1.5px solid currentColor;
  display: inline-block;
  flex-shrink: 0;
  color: hsl(var(--muted-foreground));
  box-sizing: border-box;
}
.spot-detail-guides__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.875rem;
}
/* Replit: bg-cyan-50 border-cyan-200 rounded-xl p-3 hover:bg-cyan-100 */
.spot-detail-guide-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  border: 1px solid #a5f3fc;
  border-radius: 0.75rem;
  background: #ecfeff;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease, border-color 0.2s ease;
  cursor: pointer;
}
.spot-detail-guide-card:hover {
  background: #cffafe;
  border-color: #67e8f9;
  text-decoration: none;
  color: inherit;
}
/* Replit: w-10 h-10 rounded-full */
.spot-detail-guide-card__photo-wrap {
  width: 2.5rem;
  height: 2.5rem;
  flex-shrink: 0;
  position: relative;
}

.spot-detail-guide-card__photo-wrap > .spot-detail-guide-card__photo--img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.spot-detail-guide-card__photo {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
/* Replit: bg-cyan-200 text-cyan-700 font-black text-sm */
.spot-detail-guide-card__photo--placeholder {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  background: #a5f3fc;
  color: #0e7490;
  font-size: 0.875rem;
  font-weight: 900;
  flex-shrink: 0;
  box-sizing: border-box;
}

.spot-detail-guide-card__photo--placeholder.spot-detail-guide-card__photo--placeholder-visible {
  display: flex;
}
.spot-detail-guide-card__body {
  flex: 1;
  min-width: 0;
}
/* Replit: flex gap-1.5 flex-wrap */
.spot-detail-guide-card__name-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-bottom: 0.125rem;
}
/* Replit: text-sm font-bold text-foreground truncate */
.spot-detail-guide-card__name {
  font-size: 0.875rem;
  font-weight: 700;
  margin: 0;
  color: hsl(var(--foreground));
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Replit: text-[10px] font-bold text-emerald-700 bg-emerald-100 px-1.5 py-0.5 rounded-full */
.spot-detail-guide-card__certified {
  display: inline-flex;
  align-items: center;
  gap: 0.125rem;
  font-size: 10px;
  font-weight: 700;
  color: #047857;
  background: #d1fae5;
  padding: 0.125rem 0.375rem;
  border-radius: 9999px;
  flex-shrink: 0;
}
/* Replit: text-xs text-muted-foreground truncate */
.spot-detail-guide-card__experience {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.125rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Replit: text-xs font-bold text-cyan-700 mt-0.5 */
.spot-detail-guide-card__price {
  font-size: 0.75rem;
  font-weight: 700;
  color: #0e7490;
  margin: 0;
}
/* Replit: w-3.5 h-3.5 text-muted-foreground shrink-0 */
.spot-detail-guide-card__external {
  flex-shrink: 0;
  width: 0.875rem;
  height: 0.875rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: hsl(var(--muted-foreground));
  font-size: 0.75rem;
}
.spot-detail-guide-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.spot-detail-guide-card__btn {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--primary-hex);
}
.spot-detail-guide-card__btn:hover {
  text-decoration: underline;
}
.spot-detail-guides__link {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--primary-hex);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.spot-detail-guides__link:hover {
  text-decoration: underline;
}

.spot-detail-explore {
  margin: 0 1rem 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid hsl(var(--border));
}
.spot-detail-explore__title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.75rem;
}
.spot-detail-explore__links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}
.spot-detail-explore__links a {
  font-size: 0.9rem;
  color: var(--primary-hex);
  font-weight: 600;
  text-decoration: none;
}
.spot-detail-explore__links a:hover {
  text-decoration: underline;
}
.spot-detail-sobre-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  font-size: 0.75rem;
  font-style: normal;
  font-weight: 700;
  margin-right: 0.25rem;
  vertical-align: middle;
}

/* Full-page spot detail card (Replit local card layout) */
.spot-detail-card {
  max-width: 48rem;
  margin: 0 auto 2rem;
  padding: 0 1rem 2rem;
  background: hsl(var(--card));
  border-radius: 1rem;
  border: 1px solid hsl(var(--border));
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.spot-detail-page .spot-detail-card {
  margin: 0 auto;
}
/* Replit-style: hero with category + title at bottom-left, actions top-right */
.spot-detail-card__hero-wrap {
  position: relative;
  min-height: 14rem;
  height: 24rem;
  overflow: hidden;
  isolation: isolate;
}
@media (min-width: 640px) {
  .spot-detail-card__hero-wrap {
    height: 28rem;
  }
}
.spot-detail-card__hero {
  position: absolute;
  inset: 0;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-color: hsl(var(--muted));
  z-index: 0;
}
.spot-detail-card__hero-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.2) 50%, transparent 75%);
  pointer-events: none;
  z-index: 1;
}
/* Top-right: back/close action (Replit-style overlay) */
.spot-detail-card__hero-actions {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.spot-detail-card__hero-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 9999px;
  background: rgba(0, 0, 0, 0.4);
  color: #fff;
  font-size: 1.1rem;
  text-decoration: none;
  backdrop-filter: blur(8px);
  transition: background 0.2s, transform 0.15s;
}
.spot-detail-card__hero-action:hover {
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  text-decoration: none;
  transform: scale(1.05);
}
.spot-detail-card__hero-action--share {
  border: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 9999px;
  overflow: hidden;
}
.spot-detail-card__hero-action--share svg,
.spot-detail-card__hero-action--share .mapa-spot-panel__hero-share-img {
  display: block;
  width: 1.15rem;
  height: 1.15rem;
  object-fit: contain;
  pointer-events: none;
}
/* Bottom-left: category badge + title (Replit: absolute bottom-4 left-5) */
.spot-detail-card__hero-title-block {
  position: absolute;
  bottom: 1rem;
  left: 1.25rem;
  right: 4rem;
  z-index: 3;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
}
.spot-detail-card__hero-title-block .spot-detail-card__badge {
  position: static;
  margin: 0;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #fff;
  box-shadow: none;
  backdrop-filter: blur(6px);
  border: none;
}
.spot-detail-card__name {
  margin: 0;
  font-size: clamp(1.5rem, 5vw, 2.25rem);
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
  text-align: left;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8), 0 2px 10px rgba(0, 0, 0, 0.5);
  font-family: var(--font-display);
}
.spot-detail-card__best-time {
  margin: 0.5rem 1rem 0;
  padding: 0.35rem 0.65rem;
  border-radius: 0.5rem;
  font-size: 0.85rem;
  color: hsl(var(--muted-foreground));
  background: hsl(var(--muted) / 0.5);
  border: 1px solid hsl(var(--border));
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.spot-detail-card__best-time-icon {
  opacity: 0.8;
}
/* Open / closed today (promoter closure notices) — matches map panel status */
.spot-detail-status-strip {
  position: relative;
  margin: 0;
  padding: 0.9rem 1rem 0.95rem 1.05rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  line-height: 1.45;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.65);
  box-shadow: 0 1px 2px hsl(var(--foreground) / 0.04);
  overflow: hidden;
}
.spot-detail-status-strip::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  border-radius: 3px 0 0 3px;
}
.spot-detail-status-strip--open {
  background: hsl(var(--muted) / 0.28);
  border-color: hsl(152 22% 86%);
  color: hsl(var(--foreground));
}
.spot-detail-status-strip--open::before {
  background: linear-gradient(180deg, hsl(152 50% 44%), hsl(160 42% 36%));
}
.spot-detail-status-strip--closed {
  background: hsl(var(--muted) / 0.32);
  border-color: hsl(0 18% 88%);
  color: hsl(var(--foreground));
}
.spot-detail-status-strip--closed::before {
  background: linear-gradient(180deg, hsl(0 58% 52%), hsl(25 55% 48%));
}
.spot-detail-status-strip__text {
  padding-left: 0.35rem;
}
.spot-detail-status-strip__title {
  margin: 0 0 0.35rem;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.3;
  color: hsl(var(--foreground));
}
.spot-detail-status-strip--open .spot-detail-status-strip__title {
  color: hsl(155 32% 22%);
}
.spot-detail-status-strip--closed .spot-detail-status-strip__title {
  color: hsl(0 40% 28%);
}
.spot-detail-status-strip__sub {
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.55;
  color: hsl(var(--muted-foreground));
  max-width: 36rem;
}
.spot-detail-status-strip__reason {
  margin: 0.65rem 0 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.5rem;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.55);
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.45;
  color: hsl(var(--foreground));
}
.spot-detail-status-strip__reason-k {
  display: block;
  font-size: 0.625rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: hsl(var(--muted-foreground));
  margin-bottom: 0.2rem;
}
.spot-detail-sob-reserva {
  margin: 0;
  padding: 0.85rem 1rem;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  color: #92400e;
}
.spot-detail-sob-reserva__title {
  margin: 0 0 0.35rem;
  font-weight: 800;
  font-size: 1rem;
  color: #78350f;
}
.spot-detail-sob-reserva__text {
  margin: 0 0 0.65rem;
  line-height: 1.45;
}
.spot-detail-sob-reserva__btn {
  display: inline-block;
  padding: 0.65rem 1.1rem;
  border-radius: 0.5rem;
  background: var(--primary-hex);
  color: #fff !important;
  font-weight: 700;
  font-size: 0.9rem;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s;
}
.spot-detail-sob-reserva__btn:hover {
  background: hsl(142 71% 22%);
  color: #fff !important;
  text-decoration: none;
}
.spot-detail-card__body {
  padding: 1.25rem 1rem 1.5rem;
  position: relative;
  z-index: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.spot-detail-card__body > * {
  margin: 0;
}
.spot-detail-card__map-iframe {
  height: 14rem;
}
.spot-detail-card__contact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.spot-detail-card__contact a {
  font-size: 0.9rem;
  color: var(--primary-hex);
  font-weight: 600;
  text-decoration: none;
}
.spot-detail-card__contact a:hover {
  text-decoration: underline;
}
.spot-detail-card__hours {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
  margin: 0 0 1rem;
}
.spot-detail-card__actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid hsl(var(--border));
}

.mapa-spot-panel__unclaimed {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 0.75rem;
  padding: 1rem;
  margin: 0;
}
.mapa-spot-panel__unclaimed-inner {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.mapa-spot-panel__unclaimed-icon {
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: #d97706;
  color: white;
  font-size: 0.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0.15rem;
}
.mapa-spot-panel__unclaimed-title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #92400e;
  margin: 0 0 0.2rem;
}
.mapa-spot-panel__unclaimed-desc {
  font-size: 0.75rem;
  color: #b45309;
  line-height: 1.4;
  margin: 0;
}
.mapa-spot-panel__claim-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.75rem;
  font-weight: 700;
  background: #d97706;
  color: white;
  text-decoration: none;
  transition: background 0.2s;
}
.mapa-spot-panel__claim-btn:hover {
  background: #b45309;
  color: white;
  text-decoration: none;
}
.mapa-spot-panel__claim-btn {
  cursor: pointer;
  border: none;
  font-family: inherit;
}
.mapa-spot-panel__unclaimed--sent { margin: 0; }
.mapa-spot-panel__unclaimed-sent {
  font-size: 0.875rem;
  color: #166534;
  margin: 0;
  font-weight: 600;
}
/* Claim modal (Reivindicação) — above mobile .mapa-spot-panel--open (1250) */
.mapa-claim-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: max(0.75rem, env(safe-area-inset-top, 0px)) 1rem max(0.75rem, env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
@media (min-height: 640px) {
  .mapa-claim-modal {
    align-items: center;
  }
}
.mapa-claim-modal.hidden { display: none !important; }

/* Share sheet — portaled to body; z-index above map panels + modals */
html.spot-share-sheet--open,
body.spot-share-sheet--open {
  overflow: hidden;
}
.spot-share-sheet {
  position: fixed;
  inset: 0;
  z-index: 40000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: max(0.75rem, env(safe-area-inset-top, 0px)) 1rem max(0.75rem, env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  font-family: var(--font-sans, "DM Sans", system-ui, -apple-system, sans-serif);
}
@media (min-height: 520px) {
  .spot-share-sheet {
    align-items: center;
  }
}
.spot-share-sheet.hidden {
  display: none !important;
}
.spot-share-sheet__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.52);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.spot-share-sheet__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 22rem;
  margin-top: auto;
  border-radius: 1.125rem 1.125rem 0 0;
  background: linear-gradient(180deg, #fafcf9 0%, #ffffff 32%);
  border: 1px solid #dfe8e2;
  border-bottom: none;
  padding: 1.05rem 1.15rem 1.2rem;
  box-shadow:
    0 -16px 48px rgba(15, 23, 42, 0.14),
    0 0 0 1px rgba(26, 92, 53, 0.06);
}
@media (min-height: 520px) {
  .spot-share-sheet__panel {
    margin-top: 0;
    border-radius: 1rem;
    border-bottom: 1px solid #dfe8e2;
    max-height: min(88vh, 440px);
    overflow-y: auto;
  }
}
.spot-share-sheet__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.35rem;
}
.spot-share-sheet__title {
  margin: 0;
  font-family: Outfit, system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #14261c;
  line-height: 1.25;
  padding-right: 0.25rem;
}
.spot-share-sheet__x {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  margin: -0.15rem -0.2rem 0 0;
  border: none;
  border-radius: 9999px;
  background: #eef2ef;
  color: #1e293b;
  font-size: 1.4rem;
  line-height: 1;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.spot-share-sheet__x:hover {
  background: #e2e8e4;
}
.spot-share-sheet__subtitle {
  margin: 0 0 0.9rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #3d5c48;
  line-height: 1.45;
}
.spot-share-sheet__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.spot-share-sheet__btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.7rem;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.5rem 1rem 0.5rem 0.85rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid rgba(15, 23, 42, 0.1);
  cursor: pointer;
  font-family: inherit;
  transition: background 0.15s, transform 0.12s, filter 0.12s;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
.spot-share-sheet__ico {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
}
.spot-share-sheet__ico svg {
  display: block;
  width: 22px;
  height: 22px;
  max-width: 100%;
  max-height: 100%;
}
.spot-share-sheet__btn-text {
  flex: 1 1 auto;
  text-align: left;
  line-height: 1.25;
}
.spot-share-sheet__btn:hover {
  text-decoration: none;
  transform: translateY(-1px);
}
.spot-share-sheet__btn--native {
  background: rgba(26, 92, 53, 0.1);
  color: #14532d;
  border-color: rgba(26, 92, 53, 0.22);
}
.spot-share-sheet__btn--native:hover {
  background: rgba(26, 92, 53, 0.16);
  color: #0f3d22;
}
.spot-share-sheet__btn--whatsapp {
  background: #25d366;
  color: #fff;
  border-color: #1ebe5a;
}
.spot-share-sheet__btn--whatsapp:hover {
  background: #1ebe5a;
  color: #fff;
}
.spot-share-sheet__btn--copy {
  background: #fff;
  color: #14261c;
}
.spot-share-sheet__btn--copy:hover {
  background: #f4f7f5;
  color: #14261c;
}
.spot-share-sheet__btn--twitter {
  background: #0f1419;
  color: #fff;
  border-color: #2f3336;
}
.spot-share-sheet__btn--twitter:hover {
  background: #272c30;
  color: #fff;
}
.spot-share-sheet__btn--facebook {
  background: #1877f2;
  color: #fff;
  border-color: #166fe5;
}
.spot-share-sheet__btn--facebook:hover {
  background: #166fe5;
  color: #fff;
}
.spot-share-sheet__btn--instagram {
  background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
  color: #fff;
  border-color: rgba(0, 0, 0, 0.12);
}
.spot-share-sheet__btn--instagram:hover {
  filter: brightness(1.06);
  color: #fff;
}
.spot-share-sheet__btn.hidden {
  display: none !important;
}

.mapa-claim-modal__step-panel--auth {
  padding-top: 0;
  border-top: none;
  margin-top: 0.25rem;
}
.mapa-claim-modal__step2-card {
  padding: 1.15rem 1.05rem 1.05rem;
  border-radius: 0.75rem;
  background: linear-gradient(160deg, hsl(var(--primary) / 0.06) 0%, #fafafa 42%, #ffffff 100%);
  border: 1px solid #e8ece9;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.mapa-claim-modal__step2-card .mapa-claim-modal__auth-actions--column {
  margin-top: 0.15rem;
}
.mapa-claim-modal__step-panel {
  animation: mapa-claim-step-in 0.2s ease-out;
}
@keyframes mapa-claim-step-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .mapa-claim-modal__step-panel {
    animation: none;
  }
}
.mapa-claim-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
}
.mapa-claim-modal__box {
  position: relative;
  flex-shrink: 0;
  background: linear-gradient(180deg, #fafcf9 0%, #ffffff 28%);
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius-xl);
  padding: 1rem 1.15rem 1.15rem;
  max-width: 28rem;
  width: 100%;
  max-height: min(88vh, 560px);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  box-shadow:
    0 28px 60px -18px rgba(15, 23, 42, 0.2),
    0 0 0 1px rgba(26, 92, 53, 0.04);
}
.mapa-claim-modal__step1-hero {
  position: relative;
  margin: 0 0 0.65rem;
  padding: 0.95rem 1rem 0.85rem;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: linear-gradient(155deg, #123524 0%, #0d1f14 42%, #081810 100%) !important;
  border: 1px solid rgba(74, 222, 128, 0.14);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 16px 40px -20px rgba(0, 0, 0, 0.55);
}
.mapa-claim-modal__step1-hero-pattern {
  position: absolute;
  inset: 0;
  opacity: 0.09;
  background-image: radial-gradient(circle, #4ade80 1px, transparent 1px);
  background-size: 26px 26px;
  pointer-events: none;
}
.mapa-claim-modal__step1-hero-inner {
  position: relative;
  z-index: 1;
  text-align: center;
}
.mapa-claim-modal__step1-eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(74, 222, 128, 0.9);
}
.mapa-claim-modal__step1-headline {
  margin: 0 0 0.4rem;
  font-family: var(--font-display);
  font-size: clamp(1.15rem, 4.2vw, 1.38rem);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.035em;
  color: #fff;
}
.mapa-claim-modal__step1-headline-line {
  display: inline-block;
}
.mapa-claim-modal__step1-headline-accent {
  color: #4ade80;
}
.mapa-claim-modal__step1-hero-desc {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.68);
  text-align: center;
}
.mapa-claim-modal__step1-trial {
  margin: 0;
  font-size: 0.65625rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.38);
  text-align: center;
  letter-spacing: 0.02em;
}
.mapa-claim-modal__step1-form {
  margin-top: 0;
  padding: 0.85rem 0.85rem 0.15rem;
  border-radius: var(--radius-lg);
  background: #fff;
  border: 1px solid hsl(var(--border));
  box-shadow: 0 8px 28px -14px rgba(26, 92, 53, 0.1);
}
.mapa-claim-modal__step1-form-kicker {
  margin: 0 0 0.45rem;
  font-family: var(--font-display);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--primary-hex);
}
.mapa-claim-modal__field-label {
  display: block;
  margin: 0 0 0.4rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #2d3f35;
}
.mapa-claim-modal__textarea {
  width: 100%;
  padding: 0.8rem 0.85rem;
  border: 1px solid #d8e0dc;
  border-radius: var(--radius-md);
  font-size: 0.9rem;
  font-family: inherit;
  resize: vertical;
  margin-bottom: 0.35rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.mapa-claim-modal__textarea:hover {
  border-color: #c5d1ca;
}
.mapa-claim-modal__textarea:focus {
  outline: none;
  border-color: var(--primary-hex);
  box-shadow: 0 0 0 3px hsl(var(--primary) / 0.18);
}
.mapa-claim-modal__field-hint {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.45;
  color: #5c6b62;
}
.mapa-claim-modal__field-hint--min {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--primary-hex);
  line-height: 1.4;
}
.mapa-claim-modal__textarea[aria-invalid="true"] {
  border-color: #b45309;
  box-shadow: 0 0 0 2px rgba(180, 83, 9, 0.18);
}
.mapa-claim-modal__auth {
  margin-bottom: 1rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  background: rgba(234, 88, 12, 0.06);
  border: 1px solid rgba(234, 88, 12, 0.2);
}
.mapa-claim-modal__auth-lead {
  margin: 0 0 0.65rem;
  font-size: 0.85rem;
  line-height: 1.45;
  color: #9a3412;
}
.mapa-claim-modal__auth-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.mapa-claim-modal__btn--link {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}
.mapa-claim-modal__step2-thanks {
  margin: 0 0 0.65rem;
  padding: 0 0 0.55rem;
  border-bottom: 1px solid hsl(var(--primary) / 0.12);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.4;
  text-transform: none;
  color: var(--primary-hex);
}
.mapa-claim-modal__step2-title {
  margin: 0 0 0.45rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  color: #111827;
  line-height: 1.28;
}
.mapa-claim-modal__step2-lead {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  line-height: 1.62;
  color: #4b5563;
}
.mapa-claim-modal__step2-disclaimer {
  margin: 0 0 1rem;
  padding: 0.55rem 0.65rem;
  font-size: 0.75rem;
  line-height: 1.5;
  color: #5f6b63;
  text-align: center;
  letter-spacing: 0.02em;
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid #e8ece9;
}
.mapa-claim-modal__auth-actions--column {
  flex-direction: column;
  align-items: stretch;
}
.mapa-claim-modal__auth-actions--column .mapa-claim-modal__btn--link {
  width: 100%;
  text-align: center;
}
.mapa-claim-modal__auth-actions--column .mapa-claim-modal__btn--link.mapa-claim-modal__btn--primary {
  padding: 0.65rem 1.15rem;
  font-size: 0.95rem;
  font-family: var(--font-display);
  font-weight: 700;
}
.mapa-claim-modal__have-account {
  margin: 0.85rem 0 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #4b5563;
  text-align: center;
}
.mapa-claim-modal__inline-login {
  font-weight: 700;
  color: var(--primary-hex);
  text-decoration: none;
}
.mapa-claim-modal__inline-login:hover {
  text-decoration: underline;
  color: hsl(142 71% 20%);
}
.mapa-claim-modal__back {
  margin-top: 0.95rem;
  background: none;
  border: none;
  color: #6b7280;
  font-size: 0.85rem;
  cursor: pointer;
  text-decoration: underline;
  padding: 0;
  font-family: inherit;
}
.mapa-claim-modal__back:hover {
  color: #374151;
}
.mapa-claim-modal__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.mapa-claim-modal__actions--split {
  justify-content: space-between;
  align-items: center;
  padding-top: 0.35rem;
  margin: 0 -0.15rem -0.1rem;
  position: sticky;
  bottom: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 28%);
  padding-bottom: 0.35rem;
}
.mapa-claim-modal__actions--split .mapa-claim-modal__btn--primary {
  min-width: 9.5rem;
  padding: 0.6rem 1.2rem;
  font-size: 0.9375rem;
  font-family: var(--font-display);
  font-weight: 700;
  border-radius: 0.6rem;
}
@media (max-width: 420px) {
  .mapa-claim-modal__actions--split {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .mapa-claim-modal__actions--split .mapa-claim-modal__btn {
    width: 100%;
    justify-content: center;
  }
}
.mapa-claim-modal__btn {
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mapa-claim-modal__btn--secondary {
  background: #fff;
  border: 1px solid #cfd8d2;
  color: #3d5247;
}
.mapa-claim-modal__btn--secondary:hover {
  border-color: #b8c5bd;
  background: #fafcfb;
}
.mapa-claim-modal__btn--primary {
  background: var(--primary-hex);
  color: #fff;
  border: none;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}
.mapa-claim-modal__btn--primary.mapa-claim-modal__btn--shine:hover:not(:disabled) {
  background: #14532d;
  box-shadow: 0 10px 28px -8px rgba(26, 92, 53, 0.45);
  transform: translateY(-1px);
}
.mapa-claim-modal__btn--primary:hover:not(:disabled) {
  background: #14532d;
  color: #fff;
}
.mapa-claim-modal__btn:disabled { opacity: 0.7; cursor: not-allowed; }
.mapa-spot-panel__sobre {
  margin: 0;
}
.spot-detail-card__body .mapa-spot-panel__sobre {
  padding: 0;
}
.mapa-spot-panel__sobre-title {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.mapa-spot-panel__sobre-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.125rem;
  height: 1.125rem;
  border-radius: 50%;
  background: hsl(var(--primary) / 0.15);
  color: var(--primary-hex);
  font-size: 0.7rem;
  font-style: normal;
  font-weight: 700;
}
.mapa-spot-panel__sobre-text {
  font-size: 0.875rem;
  color: hsl(var(--foreground) / 0.9);
  line-height: 1.55;
  margin: 0;
}
.mapa-spot-panel__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mapa-spot-panel__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s;
}
.mapa-spot-panel__btn--outline {
  background: white;
  color: hsl(var(--foreground));
  border: 2px solid var(--primary-hex);
}
.mapa-spot-panel__btn--outline:hover {
  background: hsl(var(--muted) / 0.3);
  color: hsl(var(--foreground));
  text-decoration: none;
}
.mapa-spot-panel__btn--primary {
  background: var(--primary-hex);
  color: white;
  border: none;
}
.mapa-spot-panel__btn--primary:hover {
  background: hsl(142 71% 22%);
  color: white;
  text-decoration: none;
}
.mapa-spot-panel__btn--close {
  width: 100%;
  background: hsl(var(--muted) / 0.5);
  border: 1px solid hsl(var(--border));
  color: hsl(var(--foreground));
  font-weight: 600;
  cursor: pointer;
  font-size: inherit;
  text-decoration: none;
}
.mapa-spot-panel__btn--close:hover {
  background: hsl(var(--muted));
}
.mapa-spot-panel__btn--whatsapp {
  background: #25d366;
  color: white;
  border: none;
}
.mapa-spot-panel__btn--whatsapp:hover {
  background: #20bd5a;
  color: white;
  text-decoration: none;
}
.mapa-spot-panel__destaque-badge {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.35rem 0.65rem;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #facc15, #eab308);
  color: white;
  font-size: 0.8rem;
  font-weight: 700;
  z-index: 2;
}
.mapa-spot-panel__quick-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 1rem 0.75rem;
}
.mapa-spot-panel__tag {
  padding: 0.35rem 0.65rem;
  border-radius: 0.5rem;
  font-size: 0.8rem;
  background: hsl(var(--muted) / 0.4);
  color: hsl(var(--foreground));
}
.mapa-spot-panel__tag--distance {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}
.mapa-spot-panel__tag--parking {
  background: #f3f4f6;
  color: #374151;
}
.mapa-spot-panel__tips {
  margin: 0 1rem 1rem;
}
.mapa-spot-panel__tips-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem;
}
.mapa-spot-panel__tips-box {
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  background: #fef9c3;
  color: #854d0e;
  font-size: 0.875rem;
  line-height: 1.5;
}
.mapa-spot-panel__amenities {
  margin: 0 1rem 1rem;
}
.mapa-spot-panel__amenities-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem;
}
.mapa-spot-panel__amenities-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.mapa-spot-panel__amenity {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid transparent;
  flex-shrink: 0;
}
.mapa-spot-panel__amenity--wifi { background: #dbeafe; color: #1e40af; border-color: #93c5fd; }
.mapa-spot-panel__amenity--pet { background: #fef9c3; color: #854d0e; border-color: #fde047; }
.mapa-spot-panel__amenity--eco { background: #dcfce7; color: #166534; border-color: #86efac; }
.mapa-spot-panel__amenity--reserve { background: #e9d5ff; color: #6b21a8; border-color: #c084fc; }
.mapa-spot-panel__amenity--duration { background: #e0e7ff; color: #3730a3; border-color: #a5b4fc; }
.mapa-spot-panel__amenity--group { background: #ffedd5; color: #9a3412; border-color: #fdba74; }
.mapa-spot-panel__amenity--cap { background: #fee2e2; color: #991b1b; border-color: #fca5a5; }
.mapa-spot-panel__amenity--room,
.mapa-spot-panel__amenity--meals { background: hsl(var(--muted) / 0.5); color: hsl(var(--foreground)); border-color: hsl(var(--border)); }
.mapa-spot-panel__amenity--kids { background: #fce7f3; color: #9d174d; border-color: #f9a8d4; }
.mapa-spot-panel__amenity--access { background: #dbeafe; color: #1e40af; border-color: #93c5fd; }
.mapa-spot-panel__contact-block {
  margin: 0 1rem 1rem;
  padding: 1rem;
  border-radius: 0.5rem;
  background: white;
  border: 1px solid hsl(var(--border));
}
.mapa-spot-panel__contact-line {
  margin: 0 0 0.5rem;
  font-size: 0.875rem;
  color: hsl(var(--foreground));
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.mapa-spot-panel__contact-line:last-child { margin-bottom: 0; }
.mapa-spot-panel__contact-icon { flex-shrink: 0; }
.mapa-spot-panel__contact-link {
  color: var(--primary-hex);
  text-decoration: none;
}
.mapa-spot-panel__contact-link:hover { text-decoration: underline; }
.mapa-spot-panel__booking-btn {
  display: block;
  margin: 0 1rem 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  background: var(--primary-hex);
  color: white;
  font-weight: 700;
  font-size: 0.875rem;
  text-align: center;
  text-decoration: none;
  transition: background 0.2s;
}
.mapa-spot-panel__booking-btn:hover {
  background: hsl(142 71% 22%);
  color: white;
  text-decoration: none;
}
.mapa-spot-panel__house-menu {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(255, 237, 213, 0.55);
  border: 1px solid rgba(234, 88, 12, 0.28);
  border-radius: 0.5rem;
}
.mapa-spot-panel__house-menu-title {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 800;
  color: #9a3412;
  letter-spacing: 0.02em;
}
.mapa-spot-panel__coworking-menu {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(238, 242, 255, 0.75);
  border: 1px solid rgba(99, 102, 241, 0.35);
  border-radius: 0.5rem;
}
.mapa-spot-panel__coworking-menu-title {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 800;
  color: #4338ca;
  letter-spacing: 0.02em;
}
.mapa-spot-panel__coworking-menu .mapa-spot-panel__menu-cell--price {
  color: #4f46e5;
}
.mapa-spot-panel__wellness-menu {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(245, 243, 255, 0.8);
  border: 1px solid rgba(124, 58, 237, 0.32);
  border-radius: 0.5rem;
}
.mapa-spot-panel__wellness-menu-title {
  margin: 0 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 800;
  color: #6d28d9;
  letter-spacing: 0.02em;
}
.mapa-spot-panel__wellness-menu .mapa-spot-panel__menu-cell--price {
  color: #7c3aed;
}
.mapa-spot-panel__internet-profile {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(219, 234, 254, 0.72);
  border: 1px solid rgba(59, 130, 246, 0.38);
  border-radius: 0.5rem;
}
.mapa-spot-panel__internet-profile-title {
  margin: 0 0 0.45rem;
  font-size: 0.8rem;
  font-weight: 800;
  color: #1d4ed8;
  letter-spacing: 0.02em;
}
.mapa-spot-panel__internet-line {
  margin: 0.3rem 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #1e293b;
}
.mapa-spot-panel__internet-line--speeds {
  font-weight: 600;
  color: #1e40af;
}
.mapa-spot-panel__internet-flags {
  margin: 0.45rem 0 0;
  padding-left: 1.15rem;
  font-size: 0.8rem;
  color: #334155;
}
.mapa-spot-panel__music-events {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(251, 207, 232, 0.45);
  border: 1px solid rgba(219, 39, 119, 0.32);
  border-radius: 0.5rem;
}
.mapa-spot-panel__music-events-title {
  margin: 0 0 0.45rem;
  font-size: 0.8rem;
  font-weight: 800;
  color: #9d174d;
  letter-spacing: 0.02em;
}
.mapa-spot-panel__music-events-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mapa-spot-panel__music-event {
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(219, 39, 119, 0.12);
}
.mapa-spot-panel__music-event:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.mapa-spot-panel__music-event-name {
  margin: 0 0 0.25rem;
  font-weight: 700;
  font-size: 0.9rem;
  color: #831843;
}
.mapa-spot-panel__music-event-meta {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.45;
  color: #475569;
}
.mapa-spot-panel__music-event-desc {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
  color: #64748b;
}
.mapa-spot-panel__music-ticket-wrap {
  margin: 0.4rem 0 0;
}
.mapa-spot-panel__music-ticket {
  font-weight: 600;
  color: #be185d;
}
.mapa-spot-panel__music-extra-label {
  margin: 0.5rem 1rem 0.2rem;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #9d174d;
}
.mapa-spot-panel__music-legacy {
  margin: 0.25rem 1rem 0.75rem;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #334155;
}
.mapa-spot-panel__music-events--legacy .mapa-spot-panel__music-legacy {
  margin: 0.35rem 0 0;
}
.mapa-spot-panel__menu-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.mapa-spot-panel__menu-cell {
  padding: 0.35rem 0;
  vertical-align: top;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.mapa-spot-panel__menu-cell--price {
  text-align: right;
  white-space: nowrap;
  font-weight: 700;
  color: #c2410c;
  padding-left: 0.5rem;
}
.mapa-spot-panel__menu-row-desc .mapa-spot-panel__menu-cell--desc {
  font-size: 0.8rem;
  color: #64748b;
  padding-top: 0;
  padding-bottom: 0.5rem;
}
.mapa-spot-panel__sob-reserva {
  margin: 0 1rem 0.75rem;
  padding: 0.75rem 1rem;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 0.5rem;
  font-size: 0.85rem;
  color: #92400e;
}
.mapa-spot-panel__sob-reserva--info {
  margin-bottom: 1rem;
}
.mapa-spot-panel__sob-reserva-title {
  margin: 0 0 0.3rem;
  font-weight: 800;
  font-size: 0.95rem;
  color: #78350f;
}
.mapa-spot-panel__sob-reserva-text {
  margin: 0 0 0.55rem;
  line-height: 1.4;
}
.mapa-spot-panel__sob-reserva-btn {
  display: inline-block;
  padding: 0.6rem 1rem;
  border-radius: 0.5rem;
  background: var(--primary-hex);
  color: #fff !important;
  font-weight: 700;
  font-size: 0.85rem;
  text-decoration: none;
  transition: background 0.2s;
}
.mapa-spot-panel__sob-reserva-btn:hover {
  background: hsl(142 71% 22%);
  color: #fff !important;
  text-decoration: none;
}
.mapa-spot-panel__pricing {
  margin: 0 1rem 1rem;
  padding: 0.75rem 1rem;
  border-radius: 0.5rem;
  background: #f0fdf4;
  border: 1px solid #86efac;
  font-size: 0.875rem;
}
.mapa-spot-panel__pricing-tier {
  font-weight: 700;
  color: #166534;
  margin-right: 0.5rem;
}
.mapa-spot-panel__pricing-desc {
  color: hsl(var(--foreground));
}
.mapa-spot-panel__proprietor-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 1rem;
  border-radius: 0.5rem;
  background: #dcfce7;
  border: 1px solid #86efac;
}
.mapa-spot-panel__proprietor-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #16a34a;
  color: white;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9rem;
}
.mapa-spot-panel__proprietor-title {
  font-weight: 700;
  color: #166534;
  margin: 0 0 0.25rem;
  font-size: 0.95rem;
}
.mapa-spot-panel__proprietor-sub {
  margin: 0;
  font-size: 0.85rem;
  color: #15803d;
}
.mapa-spot-panel__fotos {
  margin: 0 1rem 1rem;
}
.mapa-spot-panel__fotos-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem;
}
.mapa-spot-panel__fotos-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.mapa-spot-panel__foto-thumb {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  border-radius: 0.5rem;
}
.mapa-spot-panel__loading,
.mapa-spot-panel__error {
  padding: 2rem 1rem;
  text-align: center;
  color: hsl(var(--muted-foreground));
  font-size: 0.875rem;
  margin: 0;
}

/* Right-side trip/roteiro panel (Replit-style: opens when "Criar Roteiro" is clicked) */
.mapa-trip-panel {
  position: absolute;
  top: 1rem;
  right: 1rem;
  bottom: 1rem;
  width: 20rem;
  max-width: calc(100vw - 2rem);
  background: transparent;
  border-radius: 1rem;
  z-index: 1001;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateX(120%);
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.2s ease;
}
.mapa-trip-panel--open {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}
.mapa-trip-panel__backdrop {
  display: none;
  position: absolute;
  inset: 0;
  background: transparent;
  border: none;
  padding: 0;
  cursor: default;
  z-index: 0;
}
.mapa-trip-panel__inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
  z-index: 1;
  background: hsl(var(--card));
  border-radius: 1rem;
  border: 1px solid hsl(var(--border) / 0.6);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.mapa-trip-panel__header {
  flex-shrink: 0;
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid hsl(var(--border) / 0.6);
  position: relative;
  padding-right: 2.5rem;
}
.mapa-trip-panel__title {
  font-size: 1rem;
  font-weight: 800;
  margin: 0 0 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: hsl(var(--foreground));
}
.mapa-trip-panel__subtitle {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  margin: 0;
}
.mapa-trip-panel__close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2rem;
  height: 2rem;
  border-radius: 0.5rem;
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  border: none;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.mapa-trip-panel__close:hover {
  background: hsl(var(--muted) / 0.8);
  color: hsl(var(--foreground));
}
.mapa-trip-panel__list {
  flex: 1;
  overflow-y: auto;
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mapa-trip-panel__empty {
  text-align: center;
  padding: 2rem 1rem;
  color: hsl(var(--muted-foreground));
}
.mapa-trip-panel__empty-icon {
  font-size: 2.5rem;
  display: block;
  margin-bottom: 0.75rem;
}
.mapa-trip-panel__empty p {
  font-size: 0.875rem;
  margin: 0;
}
.mapa-trip-panel__item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  background: hsl(var(--muted) / 0.4);
  border-radius: 0.75rem;
}
.mapa-trip-panel__num {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: hsl(142 71% 28%);
  color: white;
  font-size: 0.6875rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.mapa-trip-panel__name {
  flex: 1;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--foreground));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mapa-trip-panel__remove {
  width: 1.5rem;
  height: 1.5rem;
  border: none;
  background: transparent;
  color: hsl(var(--muted-foreground));
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.25rem;
  flex-shrink: 0;
}
.mapa-trip-panel__remove:hover {
  color: hsl(var(--destructive));
  background: hsl(var(--destructive) / 0.1);
}
.mapa-trip-panel__footer {
  flex-shrink: 0;
  padding: 0.75rem 1rem;
  border-top: 1px solid hsl(var(--border) / 0.6);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.mapa-trip-panel__clear {
  font-size: 0.75rem;
  color: hsl(var(--muted-foreground));
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.mapa-trip-panel__clear:hover {
  color: hsl(var(--destructive));
}
.mapa-trip-panel__maps-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  font-weight: 700;
  font-size: 0.875rem;
  background: hsl(142 71% 28%);
  color: white;
  text-decoration: none;
  transition: background 0.2s;
}
.mapa-trip-panel__maps-btn:hover {
  background: hsl(142 71% 22%);
  color: white;
  text-decoration: none;
}
.mapa-trip-panel__maps-btn--disabled {
  background: hsl(var(--muted));
  color: hsl(var(--muted-foreground));
  cursor: not-allowed;
  pointer-events: none;
}

/* Map page — mobile only (Replit-style bottom sheet, filter chips, full-screen spot panel) */
@media (max-width: 767px) {
  /*
   * iOS Safari: lock the document so the map UI doesn’t rubber-band with the browser chrome.
   * Bottom dock: env(safe-area) + extra padding so taps clear the home indicator and Safari toolbar.
   */
  html:has(body.page-mapa) {
    height: 100%;
    overflow: hidden;
  }
  body.page-mapa {
    --mapa-mobile-bottom-inset: calc(env(safe-area-inset-bottom, 0px) + max(1.5rem, 26px));
    /* Top ad: directly under header (same safe-area + 4rem band as .site-header) + border + gap */
    --mapa-mobile-top-stack: calc(4rem + env(safe-area-inset-top, 0px) + 1px + 0.875rem);
    /* Spot sheet: below header + sponsored card (~4.75rem) + small gap */
    --mapa-mobile-spot-panel-top: calc(var(--mapa-mobile-top-stack) + 4.75rem + 0.35rem);
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    max-height: 100vh;
    overflow: hidden;
    overscroll-behavior: none;
    -webkit-overflow-scrolling: auto;
  }
  @supports (height: 100dvh) {
    body.page-mapa {
      max-height: 100dvh;
    }
  }
  body.page-mapa .page {
    height: 100%;
    max-height: inherit;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  body.page-mapa .site-support-bar {
    display: none !important;
  }
  body.page-mapa .main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    max-width: 100%;
    overscroll-behavior: none;
  }
  .mapa-page {
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    max-width: 100%;
    min-width: 0;
  }
  .mapa-container {
    flex: 1 1 0;
    min-height: 0 !important;
    min-width: 0;
    max-width: 100%;
  }
  .mapa-mobile-wrap {
    min-width: 0;
    max-width: 100%;
  }
  /* Fixed bottom sponsored strip — disabled on small screens */
  .mapa-bottom-ad-wrap {
    display: none !important;
    visibility: hidden;
    pointer-events: none;
  }
  /* FAB below top ad bar so it doesn’t overlap */
  .mapa-criar-roteiro {
    z-index: 1001;
    top: 3.5rem;
    right: 1rem;
    padding: 0.625rem 1rem;
    border-radius: 1rem;
    box-shadow: 0 4px 14px rgba(0,0,0,0.12);
    border: 1px solid hsl(var(--border) / 0.5);
    background: hsl(var(--card));
  }
  .mapa-criar-roteiro--float {
    top: calc(var(--mapa-mobile-top-stack) + 4.85rem);
  }
  .mapa-criar-roteiro--active {
    background: hsl(142 71% 28%);
    border-color: hsl(142 71% 22%);
    color: white;
    box-shadow: 0 10px 25px -5px rgba(22,163,74,0.3);
  }
  .mapa-sidebar {
    display: none !important;
  }
  .mapa-mobile-wrap {
    display: block;
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 1000;
    /* Collapsed: handle + header row + bottom inset (tighter than 7.15rem — less dead space, still above browser UI) */
    --mapa-sheet-collapsed-h: calc(6.2rem + var(--mapa-mobile-bottom-inset));
    /* Open peek: tall enough for chips + in-sheet ad + scrollable results (32vh clipped the list) */
    --mapa-sheet-open-h: min(52vh, calc(100vh - 5.5rem));
    /* Active open height: default peek; grows when Filtros panel is expanded (--sheet-filters on wrap) */
    --mapa-sheet-panel-h: var(--mapa-sheet-open-h);
  }
  .mapa-mobile-wrap > * {
    pointer-events: auto;
  }
  @supports (height: 100dvh) {
    .mapa-mobile-wrap {
      --mapa-sheet-open-h: min(52dvh, calc(100dvh - 5.5rem));
    }
  }
  /* Full-height sheet while advanced filters are open (chips + long panel + list need room) */
  .mapa-mobile-wrap--sheet-filters {
    --mapa-sheet-panel-h: min(62vh, calc(100vh - 4.25rem));
  }
  @supports (height: 100dvh) {
    .mapa-mobile-wrap--sheet-filters {
      --mapa-sheet-panel-h: min(62dvh, calc(100dvh - 4.25rem));
    }
  }
  /* Top ad: Replit-style card (gradient, icon, sponsor, badge, tagline, CTA, close) */
  .mapa-mobile-top {
    position: absolute;
    top: var(--mapa-mobile-top-stack, calc(4rem + env(safe-area-inset-top, 0px) + 1px + 0.875rem));
    left: 0.5rem;
    right: 0.5rem;
    margin: 0;
    /* Order within .mapa-mobile-wrap; whole overlay stays under .site-header (z-index 1100) — use top offset so the strip clears the nav */
    z-index: 1080;
  }
  .mapa-mobile-top--card .mapa-mobile-top__slot {
    display: block;
    min-width: 0;
  }
  .mapa-replit-top-banner {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 0.75rem;
    padding: 0.75rem 2.5rem 0.75rem 1rem;
    background: var(--replit-bg, linear-gradient(to right, #451a03 0%, #292524 100%));
    border-radius: 0.75rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.2);
    overflow: hidden;
  }
  .mapa-replit-top-banner--event {
    clip-path: polygon(3% 0%, 97% 0%, 100% 12%, 100% 88%, 97% 100%, 3% 100%, 0% 88%, 0% 12%);
    border-radius: 0.65rem;
    box-shadow: 0 3px 14px rgba(234, 88, 12, 0.35);
    outline: 2px solid rgba(251, 191, 36, 0.5);
    outline-offset: 1px;
  }
  .mapa-replit-top-banner__link {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: var(--replit-text);
    text-decoration: none;
  }
  .mapa-replit-top-banner__link:focus {
    outline: none;
  }
  .mapa-replit-top-banner__icon {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    min-width: 0;
    max-width: 2.5rem;
    max-height: 2.5rem;
    border-radius: 0.5rem;
    overflow: hidden;
    background: rgba(255,255,255,0.1);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mapa-replit-top-banner__img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: cover;
    object-position: center;
  }
  .mapa-replit-top-banner__emoji {
    font-size: 1.25rem;
  }
  .mapa-replit-top-banner__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
  }
  .mapa-replit-top-banner__sponsor {
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: inherit;
  }
  .mapa-replit-top-banner__badge {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.75);
  }
  .mapa-replit-top-banner__tagline {
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.25;
    color: inherit;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .mapa-replit-top-banner__cta {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--replit-accent);
  }
  .mapa-replit-top-banner__close {
    position: absolute;
    top: 0.375rem;
    right: 0.375rem;
    width: 1.25rem;
    height: 1.25rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,0.2);
    color: #fff;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mapa-mobile-top__slot {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.02em;
    line-height: 1.2;
    color: #fff;
    display: flex;
    align-items: center;
  }
  .mapa-mobile-top__slot a:focus {
    outline: none;
  }
  /* Top banner & sheet ad: moving line (ticker) */
  .mapa-ad-ticker-track {
    display: flex;
    flex-shrink: 0;
    width: max-content;
    align-items: center;
    animation: mapa-ticker 25s linear infinite;
  }
  .mapa-ad-ticker-item {
    flex-shrink: 0;
    white-space: nowrap;
    padding-right: 0.5rem;
    display: flex;
    align-items: center;
  }
  /* Clear separation between ads: bullet + gap */
  .mapa-ad-ticker-item::after {
    content: " • ";
    color: rgba(255,255,255,0.4);
    font-weight: 700;
    padding-left: 0.5rem;
    padding-right: 0.75rem;
    pointer-events: none;
  }
  .mapa-ad-ticker-item:last-child::after {
    content: none;
  }
  .mapa-ad-ticker-item a,
  .mapa-ad-ticker-item .mapa-top-banner {
    display: inline-flex !important;
    align-items: center;
    gap: 0.5rem;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
  }
  .mapa-ad-ticker-item .mapa-top-banner__icon,
  .mapa-ad-ticker-item .mapa-top-banner__body {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
  }
  .mapa-ad-ticker-item .mapa-top-banner__sponsor,
  .mapa-ad-ticker-item .mapa-top-banner__tagline,
  .mapa-ad-ticker-item .mapa-top-banner__badge,
  .mapa-ad-ticker-item .mapa-top-banner__cta {
    display: inline !important;
  }
  .mapa-ad-ticker-item .sponsored-card,
  .mapa-ad-ticker-item .sponsored-card--link {
    display: inline-flex !important;
    align-items: center;
    gap: 0.35rem;
  }
  @keyframes mapa-ticker {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
  }
  .mapa-mobile-filters {
    position: absolute;
    top: 3rem;
    left: 0.75rem;
    right: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    z-index: 1001;
    max-width: calc(100vw - 1.5rem);
  }
  .mapa-mobile-filters--in-sheet {
    position: static;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    flex-shrink: 0;
    padding: 0 1rem 0.5rem;
    z-index: auto;
  }
  .mapa-mobile-filters--in-sheet .mapa-mobile-filters__row {
    padding-left: 0;
    padding-right: 0;
    background: transparent;
    box-shadow: none;
  }
  .mapa-mobile-filters__row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    background: rgba(255,255,255,0.95);
    border-radius: 0.75rem;
    padding: 0.4rem 0.6rem;
    box-shadow: 0 2px 12px rgba(0,0,0,0.12);
  }
  .mapa-mobile-filters__row::-webkit-scrollbar {
    display: none;
  }
  .mapa-mobile-filters-panel {
    display: none;
    flex-direction: column;
    gap: 0;
    padding: 0.5rem 1rem 0.75rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.25s ease, padding 0.25s ease;
  }
  .mapa-mobile-filters--expanded .mapa-mobile-filters-panel {
    display: flex;
    max-height: none;
    overflow-y: visible;
  }
  /* In sheet: cap panel height + scroll so filters stay usable inside a finite sheet */
  .mapa-mobile-filters--in-sheet.mapa-mobile-filters--expanded .mapa-mobile-filters-panel {
    max-height: min(48vh, 28rem);
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .mapa-mobile-search {
    position: absolute;
    /* ~6rem below sponsored strip start (strip height varies; keeps search under the card) */
    top: calc(var(--mapa-mobile-top-stack, calc(4rem + env(safe-area-inset-top, 0px) + 1px + 0.875rem)) + 6rem);
    left: 0.75rem;
    right: 0.75rem;
    padding: 0 0;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease, padding 0.2s ease, opacity 0.2s ease;
    opacity: 0;
    z-index: 1001;
  }
  .mapa-mobile-search[aria-hidden="false"],
  .mapa-mobile-search.mapa-mobile-search--open {
    max-height: 3.25rem;
    padding: 0.35rem 0;
    opacity: 1;
  }
  .mapa-mobile-search__input {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    font-size: 0.9375rem;
    background: white;
    box-shadow: 0 2px 12px rgba(0,0,0,0.12);
  }
  .mapa-mobile-search__input:focus {
    outline: none;
    border-color: var(--primary-hex);
    box-shadow: 0 0 0 2px hsl(var(--primary) / 0.2);
  }
  /* Replit-style: chips (rounded-full, backdrop-blur, shadow) */
  .mapa-mobile-filter-pill {
    flex-shrink: 0;
    padding: 0.375rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid hsl(var(--border) / 0.6);
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: hsl(var(--foreground));
    cursor: pointer;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  }
  .mapa-mobile-filter-pill.active {
    background: var(--primary-hex);
    color: white;
    border-color: var(--primary-hex);
    box-shadow: 0 2px 8px rgba(22,163,74,0.35);
  }
  .mapa-mobile-filter-pill--filtros {
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(8px);
  }
  .mapa-mobile-filter-pill--filtros.active {
    background: var(--primary-hex);
    color: white;
    border-color: var(--primary-hex);
  }
  /* Bottom sheet: fixed to viewport — stable dock above Safari UI (padding uses --mapa-mobile-bottom-inset) */
  .mapa-mobile-sheet {
    --mapa-mobile-sheet-safe: var(--mapa-mobile-bottom-inset, calc(env(safe-area-inset-bottom, 0px) + 26px));
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    max-width: 100vw;
    z-index: 1100;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,0.08);
    border-radius: 1rem 1rem 0 0;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    align-content: flex-start;
    padding-bottom: var(--mapa-mobile-bottom-inset, var(--mapa-mobile-sheet-safe));
    max-height: var(--mapa-sheet-collapsed-h, calc(6.2rem + var(--mapa-mobile-bottom-inset, 26px)));
    min-height: var(--mapa-sheet-collapsed-h, calc(6.2rem + var(--mapa-mobile-bottom-inset, 26px)));
    box-sizing: border-box;
    margin: 0;
    height: auto;
    transition: max-height 0.3s ease, min-height 0.3s ease, height 0.3s ease;
    overscroll-behavior: contain;
    touch-action: pan-y;
    isolation: isolate;
  }
  .mapa-mobile-sheet__chrome {
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .mapa-mobile-sheet.mapa-mobile-sheet--open {
    height: var(--mapa-sheet-panel-h, var(--mapa-sheet-open-h, min(52vh, calc(100vh - 5.5rem))));
    min-height: var(--mapa-sheet-panel-h, var(--mapa-sheet-open-h, min(52vh, calc(100vh - 5.5rem))));
    max-height: var(--mapa-sheet-panel-h, var(--mapa-sheet-open-h, min(52vh, calc(100vh - 5.5rem))));
    overflow: hidden;
    overscroll-behavior: none;
  }
  /* Ensure open height doesn’t stick when class is removed (iOS/Safari flex quirks) */
  .mapa-mobile-sheet:not(.mapa-mobile-sheet--open) {
    height: auto;
    max-height: var(--mapa-sheet-collapsed-h, calc(6.2rem + var(--mapa-mobile-bottom-inset, 26px)));
    min-height: var(--mapa-sheet-collapsed-h, calc(6.2rem + var(--mapa-mobile-bottom-inset, 26px)));
  }
  /* When closed, hide body (chips, filters, ad, list), search and chevron so only handle + count + actions */
  .mapa-mobile-sheet:not(.mapa-mobile-sheet--open) .mapa-mobile-sheet__body,
  .mapa-mobile-sheet:not(.mapa-mobile-sheet--open) .mapa-mobile-sheet__search-wrap,
  .mapa-mobile-sheet:not(.mapa-mobile-sheet--open) .mapa-mobile-sheet__chevron {
    display: none !important;
  }
  /* Filter bar: floats above the card, over the map (Image 1 layout) */
  .mapa-mobile-filter-bar {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(var(--mapa-sheet-collapsed-h, calc(6.2rem + var(--mapa-mobile-bottom-inset, 26px))) + 0.3rem);
    padding: 0 0.75rem 0.5rem;
    z-index: 1002;
    pointer-events: auto;
    transition: bottom 0.25s ease;
  }
  .mapa-mobile-wrap--sheet-open .mapa-mobile-filter-bar {
    bottom: calc(var(--mapa-sheet-panel-h, var(--mapa-sheet-open-h, min(52vh, calc(100vh - 5.5rem)))) + 0.3rem);
  }
  .mapa-mobile-filter-bar__row {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0.4rem 0.5rem;
    background: rgba(255,255,255,0.95);
    border-radius: 9999px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.1);
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mapa-mobile-filter-bar__row::-webkit-scrollbar {
    display: none;
  }
  .mapa-mobile-filter-bar__filtros {
    flex-shrink: 0;
    padding: 0.4rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #374151;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
  }
  .mapa-mobile-filter-bar__filtros:hover {
    background: #f5f5f5;
  }
  .mapa-mobile-filter-bar__filtros.active {
    background: var(--primary-hex);
    color: #fff;
    border-color: var(--primary-hex);
  }
  .mapa-mobile-filter-bar__chip {
    flex-shrink: 0;
    padding: 0.35rem 0.7rem;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 700;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #374151;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
  }
  .mapa-mobile-filter-bar__chip:hover {
    background: #f5f5f5;
  }
  .mapa-mobile-filter-bar__chip.active {
    background: #171717;
    color: #fff;
    border-color: #171717;
  }
  .mapa-mobile-sheet__handle {
    box-sizing: border-box;
    width: 2.5rem;
    min-height: 2.75rem;
    height: auto;
    margin: 0.2rem auto 0;
    padding: 0.65rem 0 0.5rem;
    background: transparent;
    border: none;
    flex-shrink: 0;
    cursor: pointer;
    touch-action: manipulation;
    display: flex;
    align-items: flex-start;
    justify-content: center;
  }
  .mapa-mobile-sheet__handle::after {
    content: "";
    display: block;
    width: 2.5rem;
    height: 4px;
    background: #d4d4d4;
    border-radius: 9999px;
  }
  .mapa-mobile-sheet__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.4rem 1rem 0.65rem;
    flex-shrink: 0;
    cursor: pointer;
    min-height: 2rem;
    gap: 0.5rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin-top: 0;
    margin-bottom: 0;
  }
  .mapa-mobile-sheet__count {
    font-size: 0.875rem;
    font-weight: 700;
    color: #171717;
    margin: 0;
    flex: 1;
    min-width: 0;
    text-align: left;
  }
  .mapa-mobile-sheet__actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-shrink: 0;
  }
  .mapa-mobile-sheet__filtros {
    padding: 0.4rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #374151;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  }
  .mapa-mobile-sheet__filtros:hover {
    background: #f5f5f5;
    border-color: #a3a3a3;
  }
  .mapa-mobile-sheet__filtros.active {
    background: var(--primary-hex);
    color: #fff;
    border-color: var(--primary-hex);
  }
  .mapa-mobile-sheet__action {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: 0.5rem;
    background: #e5e5e5;
    font-size: 1rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
  }
  .mapa-mobile-sheet__action:hover {
    background: #d4d4d4;
  }
  .mapa-mobile-sheet__chevron {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 0.5rem;
    background: #e5e5e5;
    color: #737373;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s;
  }
  .mapa-mobile-sheet__chevron:hover {
    background: #d4d4d4;
  }
  /* Side-scroll category chips (Replit-style) */
  .mapa-mobile-sheet__chips-wrap {
    flex-shrink: 0;
    padding: 0 1rem 0.35rem;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .mapa-mobile-sheet__chips {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 0.25rem;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mapa-mobile-sheet__chips::-webkit-scrollbar {
    display: none;
  }
  .mapa-mobile-sheet__chip {
    flex-shrink: 0;
    padding: 0.35rem 0.7rem;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 700;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #374151;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  }
  .mapa-mobile-sheet__chip:hover {
    background: #f5f5f5;
    border-color: #a3a3a3;
  }
  .mapa-mobile-sheet__chip.active {
    background: #171717;
    color: #fff;
    border-color: #171717;
  }
  /* Search bar inside sheet (toggle with icon) */
  .mapa-mobile-sheet__search-wrap {
    flex-shrink: 0;
    padding: 0 1rem 0.35rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease, padding 0.2s ease;
  }
  .mapa-mobile-sheet__search-wrap.mapa-mobile-sheet__search-wrap--open {
    max-height: 3.5rem;
    padding: 0 1rem 0.5rem;
  }
  .mapa-mobile-sheet__search-input {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid hsl(var(--border));
    border-radius: 0.5rem;
    font-size: 0.9375rem;
    background: hsl(var(--background));
    color: hsl(var(--foreground));
  }
  .mapa-mobile-sheet__search-input:focus {
    outline: none;
    border-color: var(--primary-hex);
  }
  .mapa-mobile-filters-panel__title {
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: hsl(var(--muted-foreground));
    margin: 0.75rem 0 0.5rem;
    display: block;
  }
  .mapa-mobile-filters-panel__title:first-child {
    margin-top: 0;
  }
  .mapa-mobile-filters-panel__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: 0.75rem;
  }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip {
    padding: 0.375rem 0.625rem;
    border-radius: 0.5rem;
    font-size: 0.75rem;
    font-weight: 700;
    border: 1px solid hsl(var(--border));
    background: hsl(var(--muted));
    color: hsl(var(--muted-foreground));
    transition: all 0.15s ease;
  }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip:hover {
    background: hsl(var(--muted) / 0.8);
    color: hsl(var(--foreground));
  }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip.active {
    background: var(--primary-hex);
    color: white;
    border-color: var(--primary-hex);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    transform: scale(1.02);
  }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--easy { background: #22c55e; color: white; border-color: #22c55e; }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--moderate { background: #eab308; color: white; border-color: #eab308; }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--hard { background: #ef4444; color: white; border-color: #ef4444; }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--expert { background: #1f2937; color: white; border-color: #1f2937; }
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--easy:hover,
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--moderate:hover,
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--hard:hover,
  .mapa-mobile-filters-panel .mapa-mobile-sheet__chip--expert:hover {
    filter: brightness(1.05);
    color: white;
  }
  .mapa-mobile-filters-panel__pills--difficulty .mapa-mobile-sheet__chip--easy.active,
  .mapa-mobile-filters-panel__pills--difficulty .mapa-mobile-sheet__chip--moderate.active,
  .mapa-mobile-filters-panel__pills--difficulty .mapa-mobile-sheet__chip--hard.active,
  .mapa-mobile-filters-panel__pills--difficulty .mapa-mobile-sheet__chip--expert.active {
    background: var(--primary-hex);
    border-color: var(--primary-hex);
  }
  .mapa-mobile-filters-panel__toggle {
    margin-bottom: 1rem;
  }
  .mapa-mobile-filters-panel__toggle .mapa-filter-open-now__label {
    font-size: 0.9rem;
  }
  .mapa-mobile-sheet__criar-roteiro {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.4rem 0.65rem;
    border-radius: 0.5rem;
    font-size: 0.8rem;
    font-weight: 700;
    background: white;
    border: 1px solid hsl(var(--border));
    color: var(--primary-hex);
    cursor: pointer;
    white-space: nowrap;
  }
  .mapa-mobile-sheet__criar-roteiro:hover {
    background: hsl(var(--muted) / 0.4);
  }
  .mapa-mobile-sheet--open .mapa-mobile-sheet__chevron {
    transform: rotate(180deg);
  }
  .mapa-mobile-sheet.mapa-mobile-sheet--open .mapa-mobile-sheet__search-wrap:not(.mapa-mobile-sheet__search-wrap--open) {
    padding-top: 0;
    padding-bottom: 0;
  }
  .mapa-mobile-sheet.mapa-mobile-sheet--open .mapa-mobile-sheet__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    align-items: stretch;
    align-content: flex-start;
    min-height: 0;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  .mapa-mobile-sheet.mapa-mobile-sheet--open .mapa-mobile-filters {
    display: flex;
    flex-direction: column;
  }
  .mapa-mobile-sheet__ad {
    flex-shrink: 0;
    padding: 0 1rem 0.75rem;
  }
  .mapa-mobile-sheet__ad--full {
    padding: 0 1rem 0.75rem;
  }
  .mapa-mobile-sheet__google-ad {
    width: 100%;
    min-height: 100px;
  }
  .mapa-mobile-sheet__google-ad .mapa-spot-panel__ads-wrapper,
  .mapa-mobile-sheet__google-ad .mapa-spot-panel__ads-placeholder {
    width: 100%;
    max-width: none;
    margin-bottom: 0;
  }
  .mapa-mobile-sheet__google-ad .mapa-spot-panel__ads-wrapper ins.adsbygoogle {
    display: block;
    min-height: 100px;
  }
  .mapa-mobile-sheet__google-ad .mapa-spot-panel__ads-placeholder {
    min-height: 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
  }
  .mapa-mobile-sheet__google-ad .mapa-spot-panel__ads-label {
    font-size: 0.65rem;
    color: #5f6368;
    letter-spacing: 0.05em;
  }
  .mapa-mobile-sheet__ad--compact {
    padding: 0 1rem 0.4rem;
  }
  .mapa-mobile-sheet__ad--compact .mapa-mobile-sheet__ad-slot {
    overflow: hidden;
    max-height: 2.25rem;
    line-height: 1.3;
    font-size: 0.8rem;
  }
  .mapa-mobile-sheet__ad--with-image .mapa-mobile-sheet__ad-slot {
    max-height: none;
    overflow: visible;
  }
  /* Google Ads-style in-sheet card */
  .mapa-google-ad {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 1.35rem 0.75rem 0.75rem;
    border: 1px solid #dadce0;
    border-radius: 0.5rem;
    background: #fff;
    color: #202124;
    text-decoration: none;
    transition: background 0.15s ease, border-color 0.15s ease;
  }
  .mapa-google-ad:hover {
    background: #f8f9fa;
    border-color: #bdc1c6;
    color: #202124;
  }
  .mapa-google-ad__label {
    position: absolute;
    top: 0.5rem;
    left: 0.75rem;
    font-size: 0.65rem;
    font-weight: 600;
    color: #5f6368;
    text-transform: uppercase;
    letter-spacing: 0.03em;
  }
  .mapa-google-ad__img-wrap {
    flex-shrink: 0;
    width: 5rem;
    height: 5rem;
    border-radius: 0.35rem;
    overflow: hidden;
    background: #f1f3f4;
  }
  .mapa-google-ad__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .mapa-google-ad__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
  }
  .mapa-google-ad__headline {
    font-size: 0.95rem;
    font-weight: 700;
    color: #1a0dab;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .mapa-google-ad:hover .mapa-google-ad__headline {
    text-decoration: underline;
  }
  .mapa-google-ad__url {
    font-size: 0.75rem;
    color: #006621;
    line-height: 1.2;
  }
  .mapa-google-ad__description {
    font-size: 0.8rem;
    color: #4d5156;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .mapa-google-ad__cta {
    font-size: 0.8rem;
    font-weight: 600;
    color: #1a0dab;
    margin-top: 0.25rem;
  }
  .mapa-mobile-sheet__ad-slot .sponsored-card,
  .mapa-mobile-sheet__ad-slot .sponsored-card--link {
    padding: 0.5rem 0.65rem;
    border-radius: 0.5rem;
    background: hsl(var(--muted) / 0.4);
    color: hsl(var(--foreground));
    border: none;
    box-shadow: none;
  }
  .mapa-mobile-sheet__ad-slot .sponsored-card__badge {
    color: hsl(var(--muted-foreground));
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.05em;
  }
  /* Legacy promo card (kept for any other use) */
  .mapa-promo-card {
    position: relative;
    display: block;
    text-decoration: none;
    color: hsl(var(--foreground));
    border-radius: 0.75rem;
    overflow: hidden;
    border: 1px solid rgba(251, 191, 36, 0.5);
    background: linear-gradient(135deg, rgba(255, 251, 235, 0.95) 0%, rgba(254, 252, 232, 0.95) 100%);
    box-shadow: 0 2px 12px rgba(180, 83, 9, 0.08);
    transition: box-shadow 0.2s ease;
  }
  .mapa-promo-card:hover {
    box-shadow: 0 4px 16px rgba(180, 83, 9, 0.14);
    color: hsl(var(--foreground));
  }
  .mapa-promo-card__badge {
    position: absolute;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 1;
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #b45309;
    background: rgba(255, 255, 255, 0.95);
    padding: 0.2rem 0.45rem;
    border-radius: 0.35rem;
  }
  .mapa-promo-card__img-wrap {
    width: 100%;
    height: 8.5rem;
    background: rgba(254, 243, 199, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .mapa-promo-card__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }
  .mapa-promo-card__body {
    padding: 0.65rem 0.75rem 0.75rem;
  }
  .mapa-promo-card__sponsor {
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #92400e;
    margin: 0 0 0.2rem;
    line-height: 1.2;
  }
  .mapa-promo-card__tagline {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
    margin: 0;
    color: #57534e;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .mapa-promo-card__cta {
    font-size: 0.75rem;
    font-weight: 700;
    color: #b45309;
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-top: 0.35rem;
  }
  .mapa-mobile-sheet__list {
    flex: 0 0 auto;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow: visible;
    padding: 0 1rem 1rem;
    border-top: 1px solid hsl(var(--border) / 0.4);
  }
  .mapa-mobile-sheet__list .mapa-spot-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0;
    border-bottom: 1px solid hsl(var(--border) / 0.6);
    cursor: pointer;
    transition: background 0.15s;
  }
  .mapa-mobile-sheet__list .mapa-spot-item:last-child {
    border-bottom: none;
  }
  .mapa-mobile-sheet__list .mapa-spot-item:hover,
  .mapa-mobile-sheet__list .mapa-spot-item.mapa-spot-item--selected {
    background: hsl(142 71% 25% / 0.08);
    border-radius: 0.5rem;
    margin: 0 -0.25rem;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  /* Replit-style: list item icon (rounded-xl, category tint) */
  .mapa-mobile-sheet__list .mapa-spot-item__icon {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
    background: hsl(var(--primary) / 0.12);
    border: 2px solid hsl(var(--primary) / 0.35);
  }
  .mapa-mobile-sheet__list .mapa-spot-item__body {
    flex: 1;
    min-width: 0;
  }
  .mapa-mobile-sheet__list .mapa-spot-item__name-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin: 0 0 0.25rem;
  }
  .mapa-mobile-sheet__list .mapa-spot-item__name {
    font-weight: 700;
    font-size: 0.95rem;
    color: hsl(var(--foreground));
    margin: 0;
    min-width: 0;
  }
  .mapa-mobile-sheet__list .mapa-spot-item__closed-pill {
    flex-shrink: 0;
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    color: #fff;
    background: #dc2626;
    padding: 0.15rem 0.4rem;
    border-radius: 0.25rem;
  }
  .mapa-mobile-sheet__list .mapa-spot-item__closure-reason {
    margin: 0 0 0.35rem;
    padding: 0.35rem 0.45rem;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.35;
    color: #7f1d1d;
    background: #fef2f2;
    border-radius: 0.35rem;
    border-left: 3px solid #ef4444;
  }
  .mapa-mobile-sheet__list .mapa-spot-item--closed-today .mapa-spot-item__icon {
    filter: grayscale(35%);
    opacity: 0.92;
  }
  .mapa-mobile-sheet__list .mapa-spot-item__cat {
    font-size: 0.75rem;
    color: hsl(var(--muted-foreground));
  }
  /* Spot panel: start below map top ad so the sponsored strip stays visible (header is 4rem + card stack) */
  .mapa-spot-panel {
    position: fixed;
    top: var(--mapa-mobile-spot-panel-top, calc(4.5rem + 4.75rem + 0.35rem));
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    border-radius: 1rem 1rem 0 0;
    transform: translateX(100%);
    box-shadow: 0 -25px 50px -12px rgba(0,0,0,0.25);
    border: 1px solid hsl(var(--border) / 0.6);
    border-bottom: none;
  }
  .mapa-spot-panel--open {
    transform: translateX(0);
    z-index: 1250;
  }
  .mapa-spot-panel--open .mapa-spot-panel__scroll {
    padding-bottom: 0.5rem;
  }
  /* Share + ×: fixed column; SVG share icon + matching font size */
  .mapa-spot-panel__hero-actions {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.5rem;
    width: 2.75rem;
    top: 1.35rem;
    right: 0.75rem;
  }
  .mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share,
  .mapa-spot-panel__hero-actions .mapa-spot-panel__close {
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    max-width: 2.75rem;
    max-height: 2.75rem;
    flex: 0 0 2.75rem;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-size: 1.35rem;
    line-height: 1;
    border-radius: 50%;
    -webkit-appearance: none;
    appearance: none;
    overflow: hidden;
    border: none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .mapa-spot-panel__hero-actions .mapa-spot-panel__hero-share {
    background: rgba(0, 0, 0, 0.48);
  }
  .mapa-spot-panel__hero-actions .mapa-spot-panel__close {
    background: rgba(0, 0, 0, 0.48);
  }
  .mapa-spot-panel__hero-actions .mapa-spot-panel__close:focus {
    outline: 2px solid white;
    outline-offset: 2px;
  }
  .mapa-spot-panel__close--overlay {
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.35rem;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }
  .mapa-spot-panel__btn--close {
    width: 100%;
    justify-content: center;
    margin-bottom: 0.5rem;
    background: hsl(var(--muted) / 0.5);
    border: 1px solid hsl(var(--border));
    color: hsl(var(--foreground));
    font-weight: 600;
  }
  .mapa-spot-panel__btn--close:hover {
    background: hsl(var(--muted));
  }
  body.page-mapa .mapa-spot-panel__actions-fixed {
    padding-top: 1.15rem;
    padding-bottom: calc(0.85rem + var(--mapa-mobile-bottom-inset) + max(0.35rem, 8px));
  }
  /* In-panel “Adicionar ao Roteiro” hidden on small screens (FAB still opens trip builder) */
  body.page-mapa .mapa-spot-panel__criar-roteiro-wrap {
    display: none !important;
  }
  /* Trip panel: full-screen on mobile; backdrop tap to close so user can reach filters */
  .mapa-trip-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    max-height: none;
    border-radius: 0;
    transform: translateY(100%);
    opacity: 1;
    z-index: 1002;
    flex-direction: column;
    justify-content: flex-end;
  }
  .mapa-trip-panel__backdrop {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
  }
  .mapa-trip-panel--open .mapa-trip-panel__backdrop {
    pointer-events: auto;
    opacity: 1;
  }
  .mapa-trip-panel__inner {
    flex-shrink: 0;
    max-height: 40vh;
    border-radius: 1rem 1rem 0 0;
    padding-bottom: var(--mapa-mobile-bottom-inset, calc(env(safe-area-inset-bottom, 0px) + 26px));
    box-sizing: border-box;
  }
  .mapa-trip-panel--open {
    transform: translateY(0);
    z-index: 1200;
  }
  .mapa-trip-panel__close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    z-index: 10;
    font-size: 1.35rem;
  }
}

/* Agenda page — hero and event cards */
.agenda-hero {
  background: linear-gradient(135deg, #0d1f14 0%, #1a2e1f 50%, #1a5c35 100%);
  color: white;
  padding: 2.5rem 1.5rem;
  margin: 0 -1rem 2rem;
  border-radius: 0;
}

.agenda-hero__eyebrow {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
  margin-bottom: 0.5rem;
}

.agenda-hero__title {
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 800;
  margin: 0 0 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.agenda-hero__desc {
  font-size: 0.95rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.9);
  max-width: 36rem;
  margin: 0 0 1.25rem;
}

.agenda-hero__destaque {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.85rem;
  background: rgba(255,255,255,0.2);
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
  color: white;
  text-decoration: none;
}

.agenda-hero__destaque:hover {
  background: rgba(255,255,255,0.3);
  color: white;
  text-decoration: none;
}

/* Mobile-only hero block (Replit-style): hidden on desktop */
.agenda-hero__mobile {
  display: none;
}

/* Date block for Replit-style list cards: hidden on desktop */
.event-card__date-block {
  display: none;
}

.agenda-layout {
  display: grid;
  gap: 2rem;
  max-width: 56rem;
  margin: 0 auto;
}

@media (min-width: 900px) {
  .agenda-layout {
    grid-template-columns: 1fr 20rem;
  }
}

.agenda-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.event-card {
  background: white;
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  overflow: hidden;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  display: flex;
  flex-wrap: wrap;
  transition: box-shadow 0.2s;
}

.event-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.event-card__media {
  width: 100%;
  min-height: 140px;
  object-fit: cover;
}

@media (min-width: 640px) {
  .event-card__media {
    width: 200px;
    min-width: 200px;
    min-height: 140px;
  }
}

.event-card__body {
  flex: 1;
  padding: 1.25rem;
  min-width: 0;
}

.event-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.35rem;
}

.event-card__date {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 0.5rem;
}

.event-card__desc {
  font-size: 0.875rem;
  color: #555;
  line-height: 1.5;
  margin: 0;
}

.event-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}

.event-card__tag {
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
}

.event-card__tag--destaque {
  background: #fef3c7;
  color: #b45309;
}

.event-card__location {
  font-size: 0.8125rem;
  color: #6b7280;
  margin: 0 0 0.35rem;
}

.agenda-sidebar {
  height: fit-content;
}

.agenda-sidebar__card {
  background: white;
  border: 1px solid hsl(var(--border));
  border-radius: 0.75rem;
  padding: 1.25rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.agenda-sidebar__title {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  margin-bottom: 0.5rem;
}

.agenda-sidebar__destaque {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid hsl(var(--border));
  font-size: 0.85rem;
  text-decoration: none;
  color: inherit;
}

.agenda-sidebar__destaque:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.agenda-sidebar__destaque:hover {
  color: var(--primary-hex);
  text-decoration: none;
}

.agenda-sidebar__destaque-pill {
  flex-shrink: 0;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--primary-hex);
  background: hsl(var(--muted) / 0.5);
  padding: 0.2rem 0.4rem;
  border-radius: 0.25rem;
}

/* Agenda — calendar controls and pills */
.agenda-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.agenda-month-nav {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  padding: 0.25rem;
}

.agenda-nav-btn {
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  color: #374151;
  text-decoration: none;
  font-size: 1.25rem;
  font-weight: 700;
}

.agenda-nav-btn:hover {
  background: #f3f4f6;
  color: #111;
  text-decoration: none;
}

.agenda-month-label {
  font-size: 0.875rem;
  font-weight: 800;
  color: #111;
  min-width: 10rem;
  text-align: center;
}

.agenda-hoje-btn {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.375rem 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid #e5e7eb;
  background: white;
  color: #6b7280;
  text-decoration: none;
}

.agenda-hoje-btn:hover {
  background: #f9fafb;
  color: #374151;
  text-decoration: none;
}

.agenda-view-toggle {
  display: flex;
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  padding: 0.25rem;
  margin-left: auto;
}

.agenda-view-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.375rem 0.75rem;
  border-radius: 0.5rem;
  color: #6b7280;
  text-decoration: none;
}

.agenda-view-btn:hover {
  color: #111;
  text-decoration: none;
}

.agenda-view-btn.active {
  background: #111;
  color: white;
}

.agenda-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.agenda-pill {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  background: white;
  color: #6b7280;
  text-decoration: none;
}

.agenda-pill:hover {
  border-color: #d1d5db;
  color: #374151;
  text-decoration: none;
}

.agenda-pill.active {
  border-color: transparent;
}

.agenda-pill.active.kids {
  background: #fef9c3;
  color: #a16207;
  border-color: #fde047;
}

.agenda-pill--familia {
  background: linear-gradient(90deg, #facc15, #f97316);
  color: white;
  border: none;
}

.agenda-pill--familia:hover {
  opacity: 0.95;
  color: white;
  text-decoration: none;
}

.agenda-featured-strip {
  margin: 0 0 1.5rem;
  padding: 1.25rem 1rem 1.35rem;
  background: #fff;
  border: 1px solid #e8e7e4;
  border-radius: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.agenda-featured-strip__head {
  margin-bottom: 0.85rem;
}
.agenda-featured-strip__title {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--primary-hex, #1a5c35);
  margin: 0;
}
.agenda-featured-strip__scroll {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15.25rem, 1fr));
  gap: 0.85rem 1rem;
  align-items: stretch;
}
/* One featured event: avoid a single card stretching edge-to-edge */
.agenda-featured-strip__scroll:has(> .agenda-featured-strip-card:only-child) {
  grid-template-columns: minmax(0, 22rem);
  justify-content: start;
}
.agenda-featured-strip__scroll::-webkit-scrollbar {
  height: 6px;
}
.agenda-featured-strip__scroll::-webkit-scrollbar-thumb {
  background: #d6d3d1;
  border-radius: 999px;
}
.agenda-featured-strip-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  max-width: 100%;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.85rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.agenda-featured-strip-card:hover {
  box-shadow: 0 6px 20px rgba(26, 92, 53, 0.1);
  transform: translateY(-2px);
  color: inherit;
  text-decoration: none;
}
.agenda-featured-strip-card__img-wrap {
  flex: 0 0 auto;
  width: 100%;
  height: 9.25rem;
  min-height: 9.25rem;
  max-height: 9.25rem;
  background: #f4f4f2;
  overflow: hidden;
  min-width: 0;
  position: relative;
}
.agenda-featured-strip-card__img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.agenda-featured-strip-card__img--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  background: linear-gradient(135deg, #ecfdf5, #d1fae5);
}
.agenda-featured-strip-card__body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.65rem 0.75rem 0.85rem;
}
.agenda-featured-strip-card__name {
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--primary-hex, #1a5c35);
  margin: 0 0 0.35rem;
  line-height: 1.25;
}
.agenda-featured-strip-card__badge {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.58rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: #facc15;
  color: #1c1917;
  padding: 0.2rem 0.45rem;
  border-radius: 0.2rem;
  margin-bottom: 0.4rem;
}
.agenda-featured-strip-card__desc {
  font-size: 0.78rem;
  color: #6b7280;
  line-height: 1.35;
  margin: 0 0 0.45rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.agenda-featured-strip-card__date {
  font-size: 0.72rem;
  font-weight: 700;
  color: #b45309;
  margin: 0 0 0.35rem;
  letter-spacing: 0.02em;
}
.agenda-featured-strip-card__meta {
  font-size: 0.72rem;
  font-weight: 600;
  color: #9ca3af;
  margin: 0;
  margin-top: auto;
}

button.agenda-featured-strip-card {
  font: inherit;
  text-align: left;
  cursor: pointer;
  padding: 0;
  appearance: none;
}

article.agenda-featured-strip-card--inactive {
  cursor: default;
}
article.agenda-featured-strip-card--inactive:hover {
  transform: none;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.roteiro-detail-highlights--legacy .roteiro-detail-highlights__legacy-text {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.55;
  color: #4b5563;
}

/* Roteiro detail — destaques: one row, horizontal scroll inside box (no page overflow) */
.roteiro-detail-highlights.agenda-featured-strip {
  min-width: 0;
  max-width: 100%;
}
.roteiro-detail-highlights__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  flex-wrap: wrap;
}
.roteiro-detail-highlights__head .agenda-featured-strip__title {
  margin-bottom: 0;
}
.roteiro-detail-highlights__nav {
  display: inline-flex;
  gap: 0.35rem;
  flex-shrink: 0;
}
.roteiro-detail-highlights__nav-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: 1px solid rgba(26, 92, 53, 0.35);
  border-radius: 999px;
  background: #fff;
  color: var(--primary-hex, #1a5c35);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.roteiro-detail-highlights__nav-btn:hover {
  background: rgba(26, 92, 53, 0.08);
  border-color: var(--primary-hex, #1a5c35);
}
.roteiro-detail-highlights__nav-btn:focus-visible {
  outline: 2px solid var(--primary-hex, #1a5c35);
  outline-offset: 2px;
}
.roteiro-detail-highlights__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: #d6d3d1 transparent;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding-bottom: 0.35rem;
}
.roteiro-detail-highlights__viewport:focus-visible {
  outline: 2px solid rgba(26, 92, 53, 0.45);
  outline-offset: 2px;
}
.roteiro-detail-highlights__viewport::-webkit-scrollbar {
  height: 6px;
}
.roteiro-detail-highlights__viewport::-webkit-scrollbar-thumb {
  background: #d6d3d1;
  border-radius: 999px;
}
.roteiro-detail-highlights__track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 1rem;
  width: max-content;
  min-width: 100%;
  padding: 0.1rem 0;
}
.roteiro-detail-highlights .roteiro-detail-highlights__track > .agenda-featured-strip-card {
  flex: 0 0 auto;
  width: 15.25rem;
  max-width: min(15.25rem, calc(100vw - 2.5rem));
  min-width: 0;
  scroll-snap-align: start;
  scroll-snap-stop: normal;
}
.roteiro-detail-highlights__track:has(> :only-child) {
  width: 100%;
  justify-content: center;
}
.roteiro-detail-highlights__track:has(> :only-child) > .agenda-featured-strip-card {
  width: min(22rem, 100%);
  max-width: 100%;
}
@media (prefers-reduced-motion: reduce) {
  .roteiro-detail-highlights__viewport {
    scroll-behavior: auto;
  }
}

.agenda-calendar-layout {
  display: grid;
  gap: 1.5rem;
}

@media (min-width: 1024px) {
  .agenda-calendar-layout {
    grid-template-columns: minmax(0, 1fr) 20rem;
  }
}

.agenda-calendar-wrap {
  background: #fcfcfb;
  border: 1px solid #ebeae8;
  border-radius: 0.75rem;
  overflow: hidden;
  width: 100%;
  min-width: 0;
}

.agenda-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  text-align: center;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #a8a8a4;
  padding: 0.5rem 0.25rem;
  border-bottom: 1px solid #eee;
}

.agenda-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-top: none;
}

.agenda-cell {
  min-height: 4rem;
  min-width: 0;
  padding: 0.35rem 0.25rem;
  border-right: 1px solid #f0f0ee;
  border-bottom: 1px solid #f0f0ee;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: background 0.12s;
}

.agenda-cell:nth-child(7n) {
  border-right: none;
}

.agenda-cell:hover {
  background: #fafaf9;
  text-decoration: none;
  color: inherit;
}

.agenda-cell.other-month {
  opacity: 0.4;
}

.agenda-cell__num {
  font-size: 0.7rem;
  font-weight: 700;
  width: 1.35rem;
  height: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  margin-bottom: 0.2rem;
  flex-shrink: 0;
  color: #374151;
}

.agenda-cell.today .agenda-cell__num {
  background: hsl(142 35% 92%);
  color: var(--primary-hex);
}

.agenda-cell.selected .agenda-cell__num {
  background: hsl(142 35% 92%);
  color: var(--primary-hex);
}

.agenda-cell.selected {
  background: hsl(142 25% 97%);
}

.agenda-cell__events {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.agenda-cell__event {
  font-size: 0.55rem;
  font-weight: 600;
  padding: 0.15rem 0.25rem;
  border-radius: 0.2rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  opacity: 0.92;
  min-width: 0;
}

.agenda-cell__more {
  font-size: 0.5rem;
  color: #9ca3af;
  font-weight: 600;
  padding-left: 0.15rem;
}

.agenda-day-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.agenda-day-card {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.agenda-day-card__label {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9ca3af;
  margin: 0 0 0.75rem;
}

.agenda-day-card__empty {
  font-size: 0.875rem;
  color: #9ca3af;
  font-style: italic;
  margin: 0;
}

.agenda-day-events {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.agenda-day-events--cards .agenda-day-event-card {
  margin-bottom: 0;
}

.agenda-day-events--cards .event-card__media {
  width: 100%;
  min-height: 120px;
  max-height: 180px;
}

@media (min-width: 640px) {
  .agenda-day-events--cards .event-card__media {
    width: 100%;
    min-width: 100%;
  }
}

.agenda-day-event__title {
  font-size: 0.875rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.15rem;
}

.agenda-day-event__date {
  font-size: 0.75rem;
  color: #6b7280;
  margin: 0;
}

.agenda-highlights-card {
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.agenda-highlights-card__title {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #9ca3af;
  margin: 0 0 0.75rem;
}

.agenda-highlights-card__empty {
  font-size: 0.875rem;
  color: #9ca3af;
  margin: 0;
}

.agenda-highlight-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid #f3f4f6;
  text-decoration: none;
  color: inherit;
}

.agenda-highlight-item:last-child {
  border-bottom: none;
}

.agenda-highlight-item:hover {
  background: #f9fafb;
  margin: 0 -0.5rem;
  padding: 0.5rem;
  border-radius: 0.5rem;
  color: inherit;
  text-decoration: none;
}

button.agenda-highlight-item {
  width: 100%;
  border: none;
  background: transparent;
  font: inherit;
  cursor: pointer;
  text-align: left;
}

.agenda-cell__event--interactive {
  cursor: pointer;
}

.agenda-cell__event--interactive:hover {
  filter: brightness(0.97);
  box-shadow: 0 0 0 1px rgba(26, 92, 53, 0.2);
}

.event-card--agenda-clickable {
  cursor: pointer;
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.event-card--agenda-clickable:hover {
  box-shadow: 0 8px 28px rgba(26, 92, 53, 0.1);
  transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
  .event-card--agenda-clickable:hover {
    transform: none;
  }
}

.event-card--agenda-clickable:focus-visible {
  outline: 2px solid var(--primary-hex, #1a5c35);
  outline-offset: 2px;
}

/* Event detail sheet — aligned with spot-share-sheet + agenda tokens */
.agenda-event-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: max(0.5rem, env(safe-area-inset-top, 0px)) 0 max(0.5rem, env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  font-family: var(--font-sans, "DM Sans", system-ui, sans-serif);
}

.agenda-event-modal.hidden {
  display: none !important;
}

@media (min-width: 640px) {
  .agenda-event-modal {
    align-items: center;
    padding: 1.25rem 1rem;
  }
}

.agenda-event-modal__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.48);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  cursor: pointer;
  animation: agenda-event-modal-backdrop-in 0.28s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .agenda-event-modal__backdrop {
    animation: none;
  }
}

@keyframes agenda-event-modal-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.agenda-event-modal__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 26.5rem;
  max-height: min(88vh, 42rem);
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: linear-gradient(180deg, #fafcf9 0%, #ffffff 38%);
  border: 1px solid #dfe8e2;
  border-bottom: none;
  border-radius: 1.25rem 1.25rem 0 0;
  box-shadow:
    0 -20px 56px rgba(15, 23, 42, 0.16),
    0 0 0 1px rgba(26, 92, 53, 0.07);
  animation: agenda-event-modal-panel-in 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (min-width: 640px) {
  .agenda-event-modal__panel {
    border-radius: var(--radius-xl, 1rem);
    border-bottom: 1px solid #dfe8e2;
    max-height: min(86vh, 42rem);
    box-shadow:
      0 24px 64px rgba(15, 23, 42, 0.14),
      0 0 0 1px rgba(26, 92, 53, 0.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  .agenda-event-modal__panel {
    animation: none;
  }
}

@keyframes agenda-event-modal-panel-in {
  from {
    opacity: 0;
    transform: translateY(1rem) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.agenda-event-modal__handle {
  display: block;
  width: 2.25rem;
  height: 0.25rem;
  margin: 0.5rem auto 0.15rem;
  border-radius: 999px;
  background: #d6d3d1;
  flex-shrink: 0;
}

@media (min-width: 640px) {
  .agenda-event-modal__handle {
    display: none;
  }
}

.agenda-event-modal__close {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border: 1px solid rgba(26, 92, 53, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #4b5563;
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.08);
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.agenda-event-modal__close:hover {
  background: #fff;
  color: var(--primary-hex, #1a5c35);
  border-color: rgba(26, 92, 53, 0.22);
}

.agenda-event-modal__close:active {
  transform: scale(0.96);
}

.agenda-event-modal__media-wrap {
  position: relative;
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: linear-gradient(145deg, #ecfdf5 0%, #f4f4f2 100%);
  aspect-ratio: 16 / 9;
  max-height: min(40vw, 15rem);
}

@media (min-width: 640px) {
  .agenda-event-modal__media-wrap {
    max-height: 15.5rem;
    border-radius: var(--radius-xl, 1rem) var(--radius-xl, 1rem) 0 0;
  }
}

.agenda-event-modal__media-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 55%, rgba(250, 252, 249, 0.65) 100%);
}

.agenda-event-modal__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.agenda-event-modal__body {
  padding: 0.85rem 1.35rem 1.5rem;
}

@media (min-width: 640px) {
  .agenda-event-modal__body {
    padding: 1rem 1.5rem 1.65rem;
  }
}

.agenda-event-modal__panel--no-media .agenda-event-modal__body {
  padding-top: 2.85rem;
}

@media (min-width: 640px) {
  .agenda-event-modal__panel--no-media .agenda-event-modal__body {
    padding-top: 3rem;
  }
}

.agenda-event-modal__eyebrow {
  font-family: var(--font-display, "Outfit", sans-serif);
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(26, 92, 53, 0.72);
  margin: 0 0 0.65rem;
  padding-right: 3rem;
}

.agenda-event-modal__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.65rem;
}

.agenda-event-modal__tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.28rem 0.5rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.agenda-event-modal__tag--destaque {
  background: linear-gradient(135deg, #fffbeb, #fef3c7);
  color: #b45309;
  border-color: rgba(245, 158, 11, 0.25);
}

.agenda-event-modal__tag--kids {
  background: linear-gradient(135deg, #f0f9ff, #e0f2fe);
  color: #0369a1;
  border-color: rgba(14, 165, 233, 0.22);
}

.agenda-event-modal__title {
  font-family: var(--font-display, "Outfit", sans-serif);
  font-size: clamp(1.2rem, 4vw, 1.45rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--primary-hex, #1a5c35);
  margin: 0 0 0.75rem;
  line-height: 1.22;
  padding-right: 2.75rem;
}

.agenda-event-modal__meta {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(26, 92, 53, 0.1);
}

.agenda-event-modal__date {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #b45309;
  margin: 0;
  line-height: 1.4;
}

.agenda-event-modal__date::before {
  content: "";
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.1rem;
  opacity: 0.85;
  background-color: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") center / contain no-repeat;
}

.agenda-event-modal__location {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: hsl(var(--muted-foreground, 140 20% 40%));
  margin: 0;
  line-height: 1.45;
}

.agenda-event-modal__location::before {
  content: "";
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  margin-top: 0.1rem;
  background-color: var(--primary-hex, #1a5c35);
  opacity: 0.55;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.agenda-event-modal__desc {
  font-size: 0.9375rem;
  line-height: 1.62;
  color: hsl(var(--foreground, 140 50% 10%));
  opacity: 0.92;
  white-space: pre-wrap;
  margin: 0 0 1.25rem;
}

.agenda-event-modal__desc.hidden,
.agenda-event-modal__location.hidden,
.agenda-event-modal__media-wrap.hidden {
  display: none !important;
}

.agenda-event-modal__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.agenda-event-modal__actions.hidden {
  display: none !important;
}

.agenda-event-modal__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.7rem 1rem;
  font-size: 0.8125rem;
  font-weight: 700;
  font-family: var(--font-sans, "DM Sans", sans-serif);
  text-decoration: none;
  border-radius: 0.65rem;
  border: 1px solid transparent;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.15s ease, box-shadow 0.18s ease;
}

.agenda-event-modal__cta:hover {
  text-decoration: none;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(26, 92, 53, 0.12);
}

@media (prefers-reduced-motion: reduce) {
  .agenda-event-modal__cta:hover,
  .agenda-event-modal__cta:active {
    transform: none;
  }
}

.agenda-event-modal__cta:active {
  transform: translateY(0);
}

.agenda-event-modal__cta--primary {
  background: var(--primary-hex, #1a5c35);
  color: #fff;
  border-color: rgba(0, 0, 0, 0.06);
  box-shadow: 0 2px 8px rgba(26, 92, 53, 0.25);
}

.agenda-event-modal__cta--primary:hover {
  background: #164a2c;
  color: #fff;
  box-shadow: 0 8px 24px rgba(26, 92, 53, 0.28);
}

.agenda-event-modal__cta--accent {
  background: linear-gradient(135deg, #fffbeb, #fef3c7);
  color: #92400e;
  border-color: rgba(245, 158, 11, 0.35);
}

.agenda-event-modal__cta--accent:hover {
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  color: #78350f;
  box-shadow: 0 6px 20px rgba(180, 83, 9, 0.12);
}

.agenda-event-modal__cta-arrow {
  font-size: 0.95rem;
  font-weight: 600;
  opacity: 0.9;
}

.agenda-highlight-pill {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.625rem;
  font-weight: 800;
  line-height: 1.2;
}

.agenda-highlight-title {
  flex: 1;
  font-size: 0.8125rem;
  font-weight: 800;
  color: #111;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agenda-highlight-cat {
  font-size: 0.625rem;
  color: #9ca3af;
  font-weight: 700;
  flex-shrink: 0;
}

.agenda-list-section {
  margin-top: 0.5rem;
}

.agenda-list-empty {
  text-align: center;
  padding: 3rem 1rem;
  background: white;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
}

.agenda-list-empty p {
  margin: 0.5rem 0;
  color: #6b7280;
}

.agenda-list-empty p:first-child {
  font-size: 2rem;
  margin-bottom: 0.5rem;
}

.agenda-hero__destaque span:last-child {
  text-align: left;
  line-height: 1.35;
}

/* Agenda promotion panel — Divulgue seu evento */
.agenda-ad {
  margin-top: 2rem;
  margin-bottom: 0;
  max-width: 100%;
}
.agenda-ad .mapa-spot-panel__ads-label {
  font-size: 0.625rem;
  color: #94a3b8;
}
.agenda-ad .mapa-spot-panel__ads-wrapper,
.agenda-ad .mapa-spot-panel__ads-placeholder {
  margin-bottom: 0;
}

.agenda-promo {
  margin-top: 2.5rem;
  margin-bottom: 2rem;
}

.agenda-promo__inner {
  background: #0d1f14;
  color: #fff;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(5, 46, 22, 0.5);
}

.agenda-promo__head {
  padding: 2rem 1.5rem;
  text-align: center;
}

.agenda-promo__eyebrow {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: hsl(142 70% 45%);
  margin: 0 0 0.5rem;
}

.agenda-promo__title {
  font-size: 1.5rem;
  font-weight: 800;
  margin: 0 0 0.5rem;
  color: #fff;
}

.agenda-promo__desc {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.6);
  max-width: 28rem;
  margin: 0 auto;
  line-height: 1.5;
}

.agenda-promo__tiers {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(255, 255, 255, 0.1);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

@media (max-width: 639px) {
  .agenda-promo__tiers {
    grid-template-columns: 1fr;
  }
}

.agenda-promo__tier {
  background: #0d1f14;
  padding: 1.5rem;
  position: relative;
}

.agenda-promo__tier--highlight {
  background: rgba(5, 46, 22, 0.6);
}

.agenda-promo__badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: #f59e0b;
  color: #78350f;
  padding: 0.25rem 0.6rem;
  border-radius: 9999px;
}

.agenda-promo__tier-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.agenda-promo__tier-icon {
  font-size: 1.25rem;
}

.agenda-promo__tier-name {
  font-size: 1rem;
  font-weight: 800;
  margin: 0;
  color: #fff;
}

.agenda-promo__tier-desc {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.45;
  margin: 0 0 0.75rem;
}

.agenda-promo__tier-price {
  margin-bottom: 0.75rem;
}

.agenda-promo__tier-amount {
  font-size: 1.75rem;
  font-weight: 800;
  color: hsl(142 70% 55%);
}

.agenda-promo__tier-amount--destaque {
  color: #f59e0b;
}

.agenda-promo__tier-unit {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.4);
  margin-left: 0.15rem;
}

.agenda-promo__tier-features {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.6;
}

.agenda-promo__tier-features li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.agenda-promo__check {
  color: hsl(142 70% 55%);
  font-weight: 700;
}

.agenda-promo__check--destaque {
  color: #f59e0b;
}

.agenda-promo__btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 0.65rem 1.5rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s, opacity 0.2s;
}

.agenda-promo__btn--basic {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: none;
}

.agenda-promo__btn--basic:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.agenda-promo__btn--destaque {
  background: hsl(var(--primary));
  color: #fff;
  box-shadow: 0 4px 14px rgba(22, 163, 74, 0.35);
}

.agenda-promo__btn--destaque:hover {
  opacity: 0.95;
  color: #fff;
}

.agenda-promo__footer {
  padding: 1rem 1.5rem;
  text-align: center;
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.35);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin: 0;
}

.agenda-promo__footer a {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.agenda-promo__footer a:hover {
  color: #fff;
}

/* Guias (tourist guides) page — aligned with cookie bar / landing cream + green accent */
.guias-page {
  max-width: 56rem;
  margin: 0 auto;
  padding: 2.25rem 1rem 3rem;
}

.guias-page__intro {
  text-align: center;
  margin-bottom: 0.25rem;
}

.guias-page__title {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4.2vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: #14261c;
  margin: 0 0 0.65rem;
  line-height: 1.15;
}

.guias-page__lead {
  font-size: 1.02rem;
  line-height: 1.55;
  color: #3d5c48;
  max-width: 38rem;
  margin: 0 auto;
}

.guias-page__empty {
  text-align: center;
  padding: 2.5rem 1rem;
  font-size: 0.95rem;
  color: hsl(var(--muted-foreground));
  margin: 0;
}

.guias-eyebrow {
  display: inline-block;
  padding: 0.4rem 1rem;
  margin-bottom: 0.85rem;
  background: linear-gradient(180deg, hsl(142 42% 94%) 0%, hsl(142 38% 90%) 100%);
  color: var(--primary-hex);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 999px;
  border: 1px solid rgba(26, 92, 53, 0.14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

.guias-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.35rem 1.5rem;
  margin: 2rem 0 1.5rem;
  background: linear-gradient(118deg, #ea580c 0%, #c2410c 48%, #9a3412 100%);
  color: #fff;
  border-radius: var(--radius-xl);
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow:
    0 1px 2px rgba(154, 52, 18, 0.15),
    0 12px 32px rgba(194, 65, 12, 0.2);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.guias-banner:hover {
  color: #fff;
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow:
    0 4px 16px rgba(154, 52, 18, 0.2),
    0 20px 40px rgba(194, 65, 12, 0.22);
}

.guias-banner__content strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 0.3rem;
}

.guias-banner__content span {
  font-size: 0.9rem;
  line-height: 1.45;
  opacity: 0.95;
}

.guias-banner__btn {
  width: 2.85rem;
  height: 2.85rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.1rem;
  font-weight: 700;
  transition: background 0.15s ease;
}

.guias-banner:hover .guias-banner__btn {
  background: rgba(255, 255, 255, 0.3);
}

/* Shared “card” surface (search panel + ad) */
.guias-panel {
  position: relative;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(26, 92, 53, 0.12);
  background: linear-gradient(165deg, #fff 0%, #faf9f6 42%, #f6f4ef 100%);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 12px 40px rgba(26, 92, 53, 0.06);
  padding: 1.35rem 1.35rem 1.25rem 1.55rem;
  margin-bottom: 1.75rem;
  overflow: hidden;
}

@media (min-width: 640px) {
  .guias-panel {
    padding-left: 1.7rem;
  }
}

.guias-panel::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #1a5c35 0%, #14532d 55%, #0f3d22 100%);
  border-radius: var(--radius-xl) 0 0 var(--radius-xl);
  pointer-events: none;
}

.guias-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.35rem;
}

.guias-filter-pill {
  padding: 0.42rem 0.95rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  border: 1px solid rgba(26, 92, 53, 0.12);
  background: rgba(255, 255, 255, 0.72);
  color: #3d5c48;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.guias-filter-pill:hover {
  background: #fff;
  color: #14261c;
  border-color: rgba(26, 92, 53, 0.22);
  box-shadow: 0 2px 8px rgba(26, 92, 53, 0.08);
}

.guias-filter-pill.active {
  background: var(--primary-hex);
  color: #fff;
  border-color: var(--primary-hex);
  box-shadow: 0 2px 10px rgba(26, 92, 53, 0.25);
}

.guias-toggles-section {
  margin-top: 1.15rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(26, 92, 53, 0.1);
}

.guias-toggles-section__head {
  margin-bottom: 0.85rem;
}

.guias-toggles-section__title {
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #14261c;
  margin: 0 0 0.25rem;
}

.guias-toggles-section__sub {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #3d5c48;
  margin: 0;
  max-width: 48ch;
}

.guias-toggles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16.5rem, 1fr));
  gap: 0.55rem;
}

.guias-toggle {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0;
  padding: 0.55rem 0.65rem 0.55rem 0.55rem;
  border-radius: var(--radius-md);
  border: 1px solid rgba(26, 92, 53, 0.11);
  background: rgba(255, 255, 255, 0.75);
  cursor: pointer;
  transition:
    border-color 0.18s ease,
    background 0.18s ease,
    box-shadow 0.18s ease;
}

.guias-toggle:hover {
  border-color: rgba(26, 92, 53, 0.22);
  background: #fff;
  box-shadow: 0 2px 10px rgba(26, 92, 53, 0.06);
}

.guias-toggle:has(.guias-toggle__input:focus-visible) {
  outline: 2px solid var(--primary-hex);
  outline-offset: 2px;
}

.guias-toggle__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.guias-toggle__rail {
  position: relative;
  flex-shrink: 0;
  width: 2.75rem;
  height: 1.5rem;
  border-radius: 999px;
  background: hsl(120 12% 88%);
  transition: background 0.22s ease;
}

.guias-toggle__knob {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.18);
  transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.guias-toggle__input:checked + .guias-toggle__rail {
  background: linear-gradient(180deg, #1f6b3d 0%, var(--primary-hex) 100%);
}

.guias-toggle__input:checked + .guias-toggle__rail .guias-toggle__knob {
  transform: translateX(1.2rem);
}

.guias-toggle__input:focus-visible + .guias-toggle__rail {
  box-shadow: 0 0 0 3px rgba(26, 92, 53, 0.22);
}

.guias-toggle__copy {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.guias-toggle__label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #14261c;
  line-height: 1.3;
}

.guias-toggle__badge {
  flex-shrink: 0;
  min-width: 1.65rem;
  padding: 0.15rem 0.45rem;
  font-size: 0.6875rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  text-align: center;
  color: #3d5c48;
  background: rgba(26, 92, 53, 0.08);
  border: 1px solid rgba(26, 92, 53, 0.12);
  border-radius: 999px;
}

.guias-toggle__input:checked ~ .guias-toggle__copy .guias-toggle__badge {
  background: rgba(26, 92, 53, 0.14);
  color: #0f3d22;
  border-color: rgba(26, 92, 53, 0.2);
}

.guias-lang-section {
  margin-top: 1.15rem;
  padding-top: 1.05rem;
  border-top: 1px solid rgba(26, 92, 53, 0.08);
}

.guias-lang-section__title {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #3d5c48;
  margin: 0 0 0.65rem;
}

.guias-filters--chips {
  margin-bottom: 0;
}

.guias-filter-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin: 1.1rem 0 0;
  padding: 0.65rem 0.85rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #3d5c48;
  background: rgba(26, 92, 53, 0.05);
  border: 1px solid rgba(26, 92, 53, 0.1);
  border-radius: var(--radius-md);
  transition: opacity 0.2s ease;
}

.guias-filter-stats--muted {
  opacity: 0.85;
}

.guias-filter-stats__line {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem;
}

.guias-filter-stats__num {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #14261c;
}

.guias-filter-stats__visible,
.guias-filter-stats__total {
  font-weight: 500;
  color: #3d5c48;
}

.guias-filter-stats__sep {
  color: rgba(26, 92, 53, 0.35);
  font-weight: 600;
}

.guias-filter-stats-hint {
  margin: 0.5rem 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #92400e;
  line-height: 1.45;
}

.guias-filter-stats-hint.hidden {
  display: none !important;
}

.guias-filter-toolbar {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}

.guias-ad {
  margin: 1.5rem 0 1.75rem;
  padding: 1.35rem 1.25rem;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(26, 92, 53, 0.1);
  background: linear-gradient(180deg, #fff 0%, #fafaf8 100%);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 8px 28px rgba(15, 23, 42, 0.05);
}

.guias-ad .mapa-spot-panel__ads-label {
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: hsl(var(--muted-foreground));
  text-transform: uppercase;
}

.guias-ad .mapa-spot-panel__ads-wrapper,
.guias-ad .mapa-spot-panel__ads-placeholder {
  margin-bottom: 0;
}

.guias-search-wrap {
  margin-bottom: 1rem;
}

.guias-search-label {
  display: flex;
  align-items: center;
  max-width: 20rem;
  border: 1px solid rgba(26, 92, 53, 0.14);
  border-radius: var(--radius-md);
  background: #fff;
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.guias-search-label:focus-within {
  border-color: var(--primary-hex);
  box-shadow:
    0 0 0 3px rgba(26, 92, 53, 0.12),
    inset 0 1px 2px rgba(15, 23, 42, 0.03);
}

.guias-search-icon {
  padding: 0 0.85rem 0 1rem;
  font-size: 1rem;
  opacity: 0.55;
  pointer-events: none;
}

.guias-search-input {
  flex: 1;
  padding: 0.72rem 1rem 0.72rem 0;
  border: none;
  background: transparent;
  font-size: 0.9375rem;
  color: hsl(var(--foreground));
  outline: none;
}

.guias-search-input::placeholder {
  color: hsl(var(--muted-foreground));
}

.guias-no-results {
  text-align: center;
  color: hsl(var(--muted-foreground));
  padding: 2.25rem 1rem;
  font-size: 0.95rem;
  font-weight: 500;
}

.guias-no-results.hidden,
.guide-card.hidden {
  display: none !important;
}

/* Destaques strip */
.guias-destaque {
  position: relative;
  margin: 1.5rem 0 0;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(26, 92, 53, 0.12);
  background: linear-gradient(165deg, #fff 0%, #faf9f6 45%, #f4f2ec 100%);
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 12px 40px rgba(26, 92, 53, 0.07);
  overflow: hidden;
}

.guias-destaque::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, #1a5c35 0%, #14532d 55%, #0f3d22 100%);
  z-index: 1;
  pointer-events: none;
}

.guias-destaque__inner {
  position: relative;
  padding: 1.35rem 1.15rem 1.2rem 1.45rem;
}

@media (min-width: 640px) {
  .guias-destaque__inner {
    padding: 1.45rem 1.5rem 1.35rem 1.65rem;
  }
}

.guias-destaque__head {
  margin-bottom: 1.05rem;
  text-align: center;
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

.guias-destaque__title {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #14261c;
  margin: 0 0 0.35rem;
}

.guias-destaque__sub {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #3d5c48;
  margin: 0;
}

.guias-destaque__viewport {
  overflow: hidden;
  margin: 0 -0.15rem;
  mask-image: linear-gradient(
    90deg,
    transparent 0%,
    #000 5%,
    #000 95%,
    transparent 100%
  );
}

.guias-destaque__track {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.65rem;
  width: max-content;
  padding: 0.2rem 0.35rem 0.35rem;
}

/* Single featured guide: no duplicate strip; center in viewport */
.guias-destaque__track:not(.guias-destaque__track--animate) {
  margin-left: auto;
  margin-right: auto;
}

.guias-destaque__track--animate {
  animation: guias-destaque-marquee 88s linear infinite;
}

@keyframes guias-destaque-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .guias-destaque__track--animate {
    animation: none;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
    row-gap: 0.65rem;
  }
}

.guias-destaque-card {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 0.7rem;
  min-width: 11.25rem;
  max-width: 14.5rem;
  padding: 0.45rem 0.9rem 0.45rem 0.45rem;
  background: #fff;
  border: 1px solid rgba(26, 92, 53, 0.1);
  border-radius: 999px;
  text-decoration: none;
  color: #14261c;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 4px 14px rgba(26, 92, 53, 0.06);
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease;
}

.guias-destaque-card:hover {
  border-color: rgba(26, 92, 53, 0.35);
  box-shadow:
    0 2px 8px rgba(26, 92, 53, 0.12),
    0 12px 28px rgba(26, 92, 53, 0.1);
  color: #14261c;
  text-decoration: none;
  transform: translateY(-2px);
}

.guias-destaque-card__avatar-wrap {
  position: relative;
  width: 2.65rem;
  height: 2.65rem;
  flex-shrink: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.95), 0 0 0 3px rgba(26, 92, 53, 0.12);
}

.guias-destaque-card__avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.guias-destaque-card__ph {
  display: none;
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, hsl(142 42% 90%) 0%, hsl(142 36% 84%) 100%);
  color: var(--primary-hex);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  align-items: center;
  justify-content: center;
}

.guias-destaque-card__ph--on {
  display: flex;
}

.guias-destaque-card__text {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  flex: 1;
}

.guias-destaque-card__name {
  font-family: var(--font-display);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.guias-destaque-card__experience {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #3d5c48;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.guias-search-hint {
  font-size: 0.875rem;
  line-height: 1.55;
  color: #3d5c48;
  margin: 0 0 1rem;
  max-width: 52ch;
}

.guias-search-label--full {
  max-width: none;
  width: 100%;
}

.guias-search-wrap--full {
  max-width: none;
}

.guias-price-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.15rem;
  align-items: flex-end;
  margin: 0.25rem 0 1.15rem;
  padding-top: 0.15rem;
  border-top: 1px solid rgba(26, 92, 53, 0.08);
}

.guias-price-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 6.75rem;
}

.guias-price-field__label {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #3d5c48;
}

.guias-price-input {
  padding: 0.55rem 0.7rem;
  border: 1px solid rgba(26, 92, 53, 0.14);
  border-radius: var(--radius-md);
  font-size: 0.9rem;
  width: 100%;
  max-width: 9.5rem;
  background: #fff;
  color: hsl(var(--foreground));
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.guias-price-input:focus {
  outline: none;
  border-color: var(--primary-hex);
  box-shadow:
    0 0 0 3px rgba(26, 92, 53, 0.1),
    inset 0 1px 2px rgba(15, 23, 42, 0.03);
}

.guias-price-row__note {
  flex: 1 1 100%;
  font-size: 0.75rem;
  line-height: 1.45;
  color: hsl(var(--muted-foreground));
  margin: 0;
}

@media (min-width: 640px) {
  .guias-price-row__note {
    flex: 1 1 12rem;
    margin: 0 0 0.2rem;
  }
}

.guias-clear-filters {
  margin-top: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--primary-hex);
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(26, 92, 53, 0.18);
  border-radius: var(--radius-md);
  cursor: pointer;
  text-decoration: none;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.guias-clear-filters:hover {
  color: #14532d;
  background: #fff;
  border-color: rgba(26, 92, 53, 0.28);
  box-shadow: 0 2px 10px rgba(26, 92, 53, 0.1);
}

.guide-card {
  background: linear-gradient(180deg, #fff 0%, #fcfcfa 100%);
  border: 1px solid rgba(26, 92, 53, 0.1);
  border-radius: var(--radius-xl);
  padding: 1.5rem 1.45rem;
  margin-bottom: 1.15rem;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 6px 24px rgba(26, 92, 53, 0.05);
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  scroll-margin-top: 5.5rem;
  transition:
    box-shadow 0.22s ease,
    border-color 0.22s ease,
    transform 0.22s ease;
}

.guide-card:hover {
  border-color: rgba(26, 92, 53, 0.18);
  box-shadow:
    0 4px 16px rgba(15, 23, 42, 0.06),
    0 14px 36px rgba(26, 92, 53, 0.1);
  transform: translateY(-1px);
}

.guide-card__avatar-wrap {
  width: 5rem;
  height: 5rem;
  flex-shrink: 0;
  position: relative;
}

.guide-card__avatar-wrap > .guide-card__avatar {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 0 0 3px rgba(26, 92, 53, 0.1);
}

.guide-card__avatar-placeholder {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: hsl(142 40% 92%);
  display: none;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
}

.guide-card__avatar-placeholder--visible {
  display: flex;
}

.guide-card__avatar-initial {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--primary-hex);
  line-height: 1;
}

.guide-card__body {
  flex: 1;
  min-width: 0;
}

.guide-card__name {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #14261c;
  margin: 0 0 0.4rem;
  line-height: 1.2;
}

.guide-card__badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.5rem;
}

.guide-card__verified {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  background: hsl(142 40% 92%);
  color: var(--primary-hex);
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 999px;
}

.guide-card__cadastur {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  background: rgba(26, 92, 53, 0.1);
  color: #14532d;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: var(--radius-sm);
  text-decoration: none;
  border: 1px solid rgba(26, 92, 53, 0.14);
  cursor: pointer;
}

.guide-card__cadastur:hover {
  background: rgba(26, 92, 53, 0.14);
  color: #0f3d22;
  text-decoration: none;
}

.guide-card__cadastur-transparency {
  font-size: 0.78rem;
  line-height: 1.45;
  margin: 0.5rem 0 0.25rem;
  padding: 0.5rem 0.65rem;
  border-radius: 0.5rem;
  border: 1px solid transparent;
}
.guide-card__cadastur-transparency--ok {
  background: #ecfdf5;
  border-color: #a7f3d0;
  color: #065f46;
}
.guide-card__cadastur-transparency--muted {
  background: #f9fafb;
  border-color: #e5e7eb;
  color: #5b6473;
}
.guide-card__cadastur-transparency--warn {
  background: #fffbeb;
  border-color: #fde68a;
  color: #92400e;
}

.guide-card__tagline {
  font-size: 0.9rem;
  color: #3d5c48;
  margin: 0 0 0.55rem;
  line-height: 1.5;
}

.guide-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  font-size: 0.85rem;
  color: hsl(var(--muted-foreground));
  margin-bottom: 0.5rem;
}

.guide-card__meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

.guide-card__lang {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.22rem 0.55rem;
  background: hsl(142 38% 93%);
  color: #14532d;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid rgba(26, 92, 53, 0.12);
  margin-bottom: 0.5rem;
}

.guide-card__locais {
  margin-bottom: 1rem;
}

.guide-card__locais-label {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #3d5c48;
  margin-bottom: 0.4rem;
}

.guide-card__locais-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.guide-card__locais-pill {
  padding: 0.25rem 0.55rem;
  background: rgba(26, 92, 53, 0.08);
  color: #14532d;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid rgba(26, 92, 53, 0.1);
}

.guide-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.guide-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.52rem 1.05rem;
  border-radius: var(--radius-md);
  font-size: 0.85rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    opacity 0.15s ease;
}

.guide-card__btn:hover {
  opacity: 0.95;
  text-decoration: none;
  color: inherit;
  transform: translateY(-1px);
}

.guide-card__btn--whatsapp {
  background: linear-gradient(180deg, #22c55e 0%, #16a34a 100%);
  color: #fff;
  box-shadow: 0 1px 3px rgba(22, 163, 74, 0.35);
}

.guide-card__btn--instagram {
  background: linear-gradient(180deg, #d946ef 0%, #a855f7 55%, #9333ea 100%);
  color: #fff;
  box-shadow: 0 1px 3px rgba(147, 51, 234, 0.3);
}

.guias-page .guide-list {
  margin-top: 0.35rem;
}

/* Home — Categories list (Replit "Explorar por categoria") — base = desktop */
.home-categories {
  border-bottom: 1px solid #e0dfd9;
}
.home-categories__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 2rem;
  border-bottom: 1px solid #e0dfd9;
  background: #f4f3ef;
}
.home-categories__header-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #999;
}
.home-categories__header-link {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #1a5c35;
  text-decoration: none;
}
.home-categories__header-link:hover {
  opacity: 0.85;
  color: #1a5c35;
}
.home-categories__row {
  display: flex;
  align-items: center;
  width: 100%;
  text-align: left;
  text-decoration: none;
  color: inherit;
  border-bottom: 1px solid #e0dfd9;
  transition: background 0.15s;
}
.home-categories__row:hover {
  background: #fff;
}
.home-categories__num {
  width: 5rem;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 0;
  border-right: 1px solid #e0dfd9;
}
.home-categories__num span {
  font-size: 12px;
  font-weight: 700;
  color: #ccc;
  letter-spacing: 0.1em;
  font-variant-numeric: tabular-nums;
}
.home-categories__body {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
}
.home-categories__emoji {
  font-size: 1.25rem;
}
.home-categories__label {
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  letter-spacing: -0.01em;
}
.home-categories__row:hover .home-categories__label {
  opacity: 0.85;
}
.home-categories__count {
  padding: 0 2rem;
  flex-shrink: 0;
}
.home-categories__count span {
  font-size: 0.875rem;
  color: #aaa;
}
.home-categories__arrow {
  width: 4rem;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.25rem 0;
  border-left: 1px solid #e0dfd9;
  color: #1a5c35;
  font-size: 0.875rem;
  transition: transform 0.15s;
}
.home-categories__row:hover .home-categories__arrow {
  transform: translate(2px, -2px);
}

/* Home — lower sections (O destino, Em destaque, Agenda, Guias de viagem, CTA, Footer) */
.home-section {
  max-width: 72rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.home-section__eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #9ca3af;
  margin-bottom: 0.5rem;
}

.home-destino {
  padding: 4rem 0;
  border-bottom: 1px solid #e5e7eb;
}

.home-destino__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #111;
  margin: 0 0 2rem;
}

.home-destino__grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .home-destino__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.home-destino__col-num {
  font-size: 0.75rem;
  font-weight: 700;
  color: #9ca3af;
  margin-bottom: 0.35rem;
}

.home-destino__col-num::after {
  content: "";
  display: block;
  width: 2rem;
  height: 3px;
  background: var(--primary-hex);
  margin-top: 0.25rem;
}

.home-destino__col-title {
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.5rem;
}

.home-destino__col-text {
  font-size: 0.9rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0;
}

.home-destaque {
  padding: 3rem 0;
  border-bottom: 1px solid #e5e7eb;
}

.home-destaque__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding: 0 0.5rem;
}

.home-destaque__map-link {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--primary-hex);
  text-decoration: none;
}

.home-destaque__map-link:hover {
  color: var(--primary-hex);
  text-decoration: none;
  opacity: 0.85;
}

.home-destaque__scroll {
  display: flex;
  gap: 0.55rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.home-destaque__scroll::-webkit-scrollbar {
  height: 6px;
}

.home-destaque__scroll::-webkit-scrollbar-thumb {
  background: #d1d5db;
  border-radius: 3px;
}

.home-destaque-card {
  flex: 0 0 9.25rem;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: #fff;
  border: 1px solid #eceae4;
  border-radius: 1rem;
  padding: 0;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 2px rgba(26, 92, 53, 0.04);
  transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.home-destaque-card:hover {
  box-shadow: 0 6px 18px rgba(26, 92, 53, 0.1);
  border-color: rgba(26, 92, 53, 0.12);
  transform: translateY(-2px);
  color: inherit;
  text-decoration: none;
}

.home-destaque-card__media {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  background: linear-gradient(160deg, #f8faf8 0%, #f1f5f0 100%);
  overflow: hidden;
}

.home-destaque-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.home-destaque-card__body {
  padding: 0.45rem 0.55rem 0.55rem;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
}

.home-destaque-card__title {
  font-size: 0.78rem;
  font-weight: 600;
  color: #1c1917;
  margin: 0 0 0.15rem;
  line-height: 1.28;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.home-destaque-card__cat {
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #a8a29e;
  margin: 0;
  margin-top: auto;
}

@media (prefers-reduced-motion: reduce) {
  .home-destaque-card {
    transition: none;
  }
  .home-destaque-card:hover {
    transform: none;
  }
}

/* AGENDA — Eventos em breve (Replit-style: AGENDA eyebrow, title, green calendar icon, cards with date left / title+until+desc right) */
.home-agenda {
  padding: 3rem 0;
  border-bottom: 1px solid #e5e7eb;
  background: #fafaf8;
}

.home-agenda__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
  padding: 0 0.5rem;
  gap: 1rem;
}

.home-agenda__head-left {
  flex: 1;
  min-width: 0;
}

.home-agenda__eyebrow {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #6b7280;
  margin: 0 0 0.35rem;
}

.home-agenda__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #111;
  margin: 0;
  line-height: 1.2;
}

.home-agenda__icon-link {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.5rem;
  background: var(--primary-hex);
  color: white;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.2s;
}

.home-agenda__icon-link:hover {
  opacity: 0.9;
  color: white;
  transform: scale(1.05);
}

.home-agenda__icon {
  width: 1.25rem;
  height: 1.25rem;
  stroke: currentColor;
}

.home-agenda__scroll {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: 0.5rem;
  scroll-snap-type: x mandatory;
}

.home-event-card {
  flex: 0 0 280px;
  scroll-snap-align: start;
  background: white;
  border: 1px solid #e0dfd9;
  border-radius: 0.5rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, border-color 0.2s;
  display: flex;
  flex-direction: column;
}

.home-event-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  border-color: #d0cfc9;
  color: inherit;
  text-decoration: none;
}

.home-event-card__img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  background: #f3f4f6;
}

.home-event-card__img--placeholder {
  height: 0;
  min-height: 0;
  padding: 0;
  background: white;
  border: none;
}

.home-event-card__body {
  padding: 1rem 1.25rem;
  flex: 1;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.home-event-card__date {
  flex-shrink: 0;
  font-size: 0.8125rem;
  font-weight: 800;
  color: var(--primary-hex);
  margin: 0;
  line-height: 1.2;
  width: 2.75rem;
}

.home-event-card__details {
  flex: 1;
  min-width: 0;
}

.home-event-card__title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.2rem;
  line-height: 1.25;
}

.home-event-card__meta {
  font-size: 0.75rem;
  color: #9ca3af;
  margin: 0 0 0.35rem;
}

.home-event-card__desc {
  font-size: 0.8125rem;
  color: #6b7280;
  line-height: 1.45;
  margin: 0;
}

.home-agenda__empty {
  color: #6b7280;
  font-size: 0.95rem;
  margin: 0;
}

.home-agenda__empty-link {
  color: var(--primary-hex);
  font-weight: 700;
  text-decoration: none;
}

.home-agenda__empty-link:hover {
  text-decoration: underline;
}

.home-guias {
  padding: 4rem 0;
  border-bottom: 1px solid #e5e7eb;
}

.home-guias__eyebrow {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary-hex);
  margin-bottom: 0.5rem;
}

.home-guias__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #111;
  margin: 0 0 1.5rem;
}

.home-guias-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr 1fr;
}

@media (min-width: 640px) {
  .home-guias-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.home-guias-card {
  display: block;
  border-radius: 1rem;
  padding: 1.25rem;
  text-decoration: none;
  color: inherit;
  transition: transform 0.15s, box-shadow 0.15s;
  position: relative;
  z-index: 1;
  width: 100%;
  box-sizing: border-box;
}

.home-guias-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  color: inherit;
  text-decoration: none;
}

.home-guias-card--blue { background: #dbeafe; }
.home-guias-card--green { background: #dcfce7; }
.home-guias-card--purple { background: #ede9fe; }
.home-guias-card--orange { background: #ffedd5; }

.home-guias-card__icon { font-size: 1.75rem; margin-bottom: 0.5rem; }
.home-guias-card__title { font-size: 1rem; font-weight: 700; color: #111; margin: 0 0 0.25rem; }
.home-guias-card__sub { font-size: 0.85rem; color: #4b5563; margin: 0 0 0.5rem; }
.home-guias-card__link { font-size: 0.85rem; font-weight: 700; }
.home-guias-card--blue .home-guias-card__link { color: #1d4ed8; }
.home-guias-card--green .home-guias-card__link { color: var(--primary-hex); }
.home-guias-card--purple .home-guias-card__link { color: #6d28d9; }
.home-guias-card--orange .home-guias-card__link { color: #c2410c; }

/* Home FAQ — card layout, site typography and spacing */
.home-faq {
  padding: 4rem 0;
  border-top: 1px solid hsl(var(--border));
  background: hsl(var(--background));
}

.home-faq .home-section {
  max-width: 42rem;
}

.home-faq .home-section__eyebrow {
  color: #9ca3af;
}

.home-faq__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #111;
  margin: 0 0 1.5rem;
  font-family: var(--font-display);
}

.home-faq__list {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border) / 0.6);
  border-radius: var(--radius-lg);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  overflow: hidden;
}

.home-faq__item {
  border-bottom: 1px solid hsl(var(--border) / 0.5);
}

.home-faq__item:last-child {
  border-bottom: 0;
}

.home-faq__item summary {
  list-style: none;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.125rem 1.25rem;
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  text-align: left;
  transition: background 0.2s, color 0.2s;
}

.home-faq__item summary::-webkit-details-marker {
  display: none;
}

.home-faq__item summary::after {
  content: "";
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.15rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239ca3af'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E") center/contain no-repeat;
  transition: transform 0.2s;
}

.home-faq__item[open] summary::after {
  transform: rotate(180deg);
}

.home-faq__item summary:hover {
  background: hsl(var(--muted) / 0.5);
  color: var(--primary-hex);
}

.home-faq__item .home-faq__a {
  padding: 0 1.25rem 1.25rem;
  font-size: 0.9375rem;
  color: hsl(var(--muted-foreground));
  line-height: 1.6;
  margin: 0;
}

.home-cta {
  padding: 4rem 2rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.home-cta__title {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: #111;
  margin: 0 0 0.25rem;
}

.home-cta__sub {
  font-size: 0.95rem;
  color: #6b7280;
  margin: 0;
}

.home-cta__right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.home-cta__btn {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--primary-hex);
  color: white;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
  text-decoration: none;
  transition: transform 0.2s;
}

.home-cta__btn:hover {
  transform: scale(1.05);
  color: white;
  text-decoration: none;
}

.home-cta__label { font-size: 1rem; font-weight: 700; color: var(--primary-hex); }
.home-cta__brand { font-size: 0.8rem; color: #6b7280; }

/* ── Mobile only (max-width: 767px): Replit-style responsive, desktop unchanged ── */
@media (max-width: 767px) {
  .hero__content {
    padding: 3rem 1.25rem;
  }
  .hero__headline-block {
    padding: 2rem 0 !important;
  }
  .hero__top-row {
    gap: 0.5rem;
  }
  .home-categories__header {
    padding: 1.25rem 1.5rem;
  }
  .home-categories__num {
    width: 4rem;
    padding: 1rem 0;
  }
  .home-categories__num span {
    font-size: 11px;
  }
  .home-categories__body {
    gap: 0.75rem;
    padding: 1rem 1rem 1rem 1.25rem;
  }
  .home-categories__emoji {
    font-size: 1.125rem;
  }
  .home-categories__label {
    font-size: 0.9375rem;
    font-weight: 700;
  }
  .home-categories__count {
    display: none;
  }
  .home-categories__arrow {
    width: 3rem;
    padding: 1rem 0;
    font-size: 0.8rem;
    position: relative;
  }
  /* iOS draws ↗ as emoji; hide glyph and paint a thin stroke arrow (desktop keeps Unicode glyph) */
  .home-categories__arrow .home-categories__glyph {
    display: none;
  }
  .home-categories__arrow::after {
    content: "";
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    border-top: 1.5px solid #1a5c35;
    border-right: 1.5px solid #1a5c35;
    transform: rotate(45deg);
    box-sizing: border-box;
  }
  .home-categories__header-link .home-categories__glyph {
    display: none;
  }
  .home-categories__header-link::after {
    content: "";
    display: inline-block;
    width: 0.4rem;
    height: 0.4rem;
    margin-left: 0.2em;
    vertical-align: 0.05em;
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: rotate(45deg);
    box-sizing: border-box;
  }
  .home-section {
    padding: 0 1.25rem;
  }
  .home-destino {
    padding: 2.5rem 0;
  }
  .home-destino__title {
    margin-bottom: 1.5rem;
  }
  .home-faq {
    padding: 2.5rem 0;
  }
  .home-destaque,
  .home-agenda {
    padding: 2rem 0;
  }
  .home-destaque__head,
  .home-agenda__head {
    margin-bottom: 1.25rem;
    padding: 0;
  }
  .home-destaque .home-section__eyebrow {
    color: #999;
  }
  /* Horizontal strip like agenda events + JS auto-scroll (data-home-destaque-auto) */
  .home-destaque__scroll {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.55rem;
    overflow-x: auto;
    overflow-y: hidden;
    margin: 0 -1.25rem;
    padding: 0 1.25rem 0.5rem;
    scroll-padding: 0 1.25rem;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    background: transparent;
  }
  .home-destaque__scroll::-webkit-scrollbar {
    display: block;
    height: 5px;
  }
  .home-destaque__scroll::-webkit-scrollbar-thumb {
    background: #d1d5db;
    border-radius: 3px;
  }
  .home-destaque-card {
    flex: 0 0 9.25rem;
    min-width: 0;
    min-height: 0;
    border: 1px solid #eceae4;
    border-radius: 1rem;
    padding: 0;
    background: #fff;
    scroll-snap-align: start;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(26, 92, 53, 0.04);
  }
  .home-destaque-card:hover {
    box-shadow: 0 4px 14px rgba(26, 92, 53, 0.08);
    border-color: rgba(26, 92, 53, 0.12);
    transform: none;
  }
  .home-destaque-card__media {
    aspect-ratio: 1 / 1;
  }
  .home-destaque-card__body {
    padding: 0.65rem 0.75rem 0.8rem;
  }
  .home-destaque-card__title {
    font-size: 0.7rem;
    font-weight: 600;
    line-height: 1.3;
    color: #1c1917;
    margin: 0 0 0.2rem;
    -webkit-line-clamp: 3;
  }
  .home-destaque-card__cat {
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #a8a29e;
    margin: 0;
  }
  .home-destaque__map-link {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
  }
  .home-agenda__eyebrow {
    color: #999;
  }
  .home-agenda__scroll {
    padding-left: 0.125rem;
    padding-bottom: 0.75rem;
  }
  .home-event-card {
    flex: 0 0 260px;
  }
  .home-event-card__body {
    padding: 0.875rem 1rem;
  }

  /* Agenda page — Replit-style mobile: light header (AGENDA + Eventos em breve) + event cards with date left column */
  .agenda-hero__desktop {
    display: none;
  }
  .agenda-hero__mobile {
    display: block;
  }
  .agenda-hero {
    background: #f9f8f5;
    color: #111;
    padding: 1.5rem 1.25rem;
    margin: 0 0 1rem;
  }
  .agenda-hero__mobile-eyebrow {
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #999;
    margin: 0 0 0.5rem;
  }
  .agenda-hero__mobile-title {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: #111;
  }
  .agenda-hero__mobile-icon {
    flex-shrink: 0;
    color: var(--primary-hex);
    opacity: 0.9;
  }
  .agenda-main {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  .agenda-list .event-card {
    border: 1px solid #e0dfd9;
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    display: flex;
    flex-direction: column;
  }
  .agenda-list .event-card__media {
    width: 100%;
    min-height: 0;
    height: 10rem;
    object-fit: cover;
  }
  .agenda-list .event-card__body {
    display: flex;
    flex-direction: row;
    gap: 1rem;
    padding: 1.25rem;
    align-items: flex-start;
  }
  .agenda-list .event-card__date-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
    width: 2.5rem;
  }
  .agenda-list .event-card__month {
    font-size: 0.625rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--primary-hex);
    margin-bottom: 0.15rem;
  }
  .agenda-list .event-card__day {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: #111;
  }
  .agenda-list .event-card__details {
    flex: 1;
    min-width: 0;
  }
  .agenda-list .event-card__title {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 0.25rem;
  }
  .agenda-list .event-card__date {
    font-size: 0.75rem;
    color: #6b7280;
    margin: 0 0 0.15rem;
  }
  .agenda-list .event-card__until {
    font-size: 0.6875rem;
    color: #999;
    margin: 0 0 0.35rem;
  }
  .agenda-list .event-card__desc {
    font-size: 0.8125rem;
    color: #777;
    line-height: 1.45;
    margin: 0;
  }
  .home-event-card__body {
    padding: 0.875rem;
  }
  /* Guias de viagem — Replit-style: vertical stack, large rounded cards, green “Ler guia” */
  .home-guias {
    padding: 2.5rem 0;
  }
  .home-guias__eyebrow {
    font-size: 0.6875rem;
    font-weight: 800;
    letter-spacing: 0.15em;
    color: var(--primary-hex);
  }
  .home-guias__title {
    font-size: 1.5rem;
    font-weight: 800;
    color: #111;
    margin: 0 0 1.25rem;
  }
  .home-guias-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .home-guias-card {
    padding: 1.25rem 1.5rem;
    border-radius: 1.5rem;
    min-height: 5.5rem;
    -webkit-tap-highlight-color: transparent;
  }
  .home-guias-card span {
    pointer-events: none;
  }
  .home-guias-card__icon {
    font-size: 2rem;
    margin-bottom: 0.5rem;
  }
  .home-guias-card__title {
    font-size: 1rem;
    font-weight: 700;
    color: #111;
    margin: 0 0 0.25rem;
  }
  .home-guias-card__sub {
    font-size: 0.8125rem;
    color: #4b5563;
    margin: 0 0 0.5rem;
  }
  .home-guias-card__link {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--primary-hex);
  }
  .home-guias-card--blue .home-guias-card__link,
  .home-guias-card--green .home-guias-card__link,
  .home-guias-card--purple .home-guias-card__link,
  .home-guias-card--orange .home-guias-card__link {
    color: var(--primary-hex);
  }
  /* CTA — Replit-style: label black, brand gray */
  .home-cta {
    padding: 2.5rem 1.25rem;
    gap: 1.25rem;
    background: #f9f9f7;
  }
  .home-cta__label {
    color: #111;
    font-size: 0.875rem;
    font-weight: 700;
  }
  .home-cta__brand {
    color: #aaa;
    font-size: 0.75rem;
  }
  .home-cta__btn {
    width: 3.5rem;
    height: 3.5rem;
    font-size: 1.25rem;
  }
  /* Footer bar — base styles live below (after this block); mobile tweaks in max-width 767 after globals */
  /* Footer legal — Replit-style: light background, medium green text, two-column links */
  .home-footer {
    background: #f9f9f7;
    color: #374937;
  }
  .home-footer__legal {
    padding: 1rem 1.25rem 0.75rem;
    color: #4a5c4a;
    font-size: 0.75rem;
    line-height: 1.5;
  }
  .home-footer__legal strong {
    color: hsl(142 25% 32%);
  }
  .home-footer__links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 1rem;
    padding: 0 1.25rem 1.5rem;
    font-size: 0.75rem;
    color: #4a5c4a;
  }
  .home-footer__links .home-footer__link {
    color: #4a5c4a;
  }
  .home-footer__links .home-footer__link:hover {
    color: var(--primary-hex);
  }
}

.home-footer {
  background: #1f2937;
  color: white;
}

/* Sponsored strip: grid keeps message + CTA on one row (flex-wrap was stacking them in a corner). */
.home-footer__bar {
  display: flex;
  justify-content: center;
  padding: 0;
  background: #273549;
  color: #fff;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 -4px 20px rgba(15, 23, 42, 0.12);
}

.home-footer__bar-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 1.25rem;
  row-gap: 0.65rem;
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
  padding: 0.75rem 1.5rem;
  box-sizing: border-box;
}

.home-footer__sponsor {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  color: #fff;
}

.home-footer__sponsor-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

.home-footer__sponsor-dot {
  width: 0.375rem;
  height: 0.375rem;
  border-radius: 50%;
  background: #86efac;
  flex-shrink: 0;
  opacity: 0.95;
}

.home-footer__sponsor-label {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.625rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1;
  white-space: nowrap;
}

.home-footer__sponsor-text {
  margin: 0;
  padding-left: 0.875rem;
  border-left: 1px solid rgba(255, 255, 255, 0.14);
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.95);
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-footer__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.5rem 1.1rem;
  background: #ca8a04;
  color: #0c0a09;
  font-size: 0.8125rem;
  font-weight: 700;
  border-radius: 0.375rem;
  text-decoration: none;
  border: none;
  cursor: pointer;
  letter-spacing: 0.01em;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
  transition: background 0.15s ease, color 0.15s ease;
  white-space: nowrap;
}

.home-footer__cta:hover {
  background: #eab308;
  color: #0c0a09;
  text-decoration: none;
}

@media (max-width: 767px) {
  .home-footer__bar-inner {
    padding: 0.65rem 1.25rem;
    column-gap: 0.75rem;
  }
  .home-footer__sponsor {
    gap: 0.5rem;
  }
  .home-footer__sponsor-text {
    font-size: 0.8125rem;
    padding-left: 0.65rem;
  }
  .home-footer__cta {
    font-size: 0.75rem;
    padding: 0.45rem 0.85rem;
  }
}

@media (max-width: 520px) {
  .home-footer__bar-inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }
  .home-footer__sponsor {
    flex-wrap: wrap;
    row-gap: 0.35rem;
  }
  .home-footer__sponsor-text {
    flex: 1 1 100%;
    border-left: none;
    padding-left: 0;
    padding-top: 0.35rem;
    margin-top: 0.1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .home-footer__cta {
    justify-self: start;
  }
}

.home-footer__legal {
  padding: 1rem 2rem 0.5rem;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.7);
  max-width: 72rem;
  margin: 0 auto;
}

.home-footer__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
  padding: 0 2rem 1.5rem;
  max-width: 72rem;
  margin: 0 auto;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.8);
}

.home-footer__links .home-footer__link {
  color: rgba(255,255,255,0.8);
  text-decoration: none;
}

.home-footer__links .home-footer__link:hover {
  text-decoration: underline;
  color: rgba(255,255,255,0.95);
}

/* Chapada para Crianças page — font/size/style aligned with reference */
.criancas-page {
  min-height: 60vh;
  font-family: var(--font-sans);
}

.criancas-hero {
  background: linear-gradient(180deg, #e94e1b 0%, #c2410c 50%, #a63a0a 100%);
  color: white;
  padding: 2.5rem 1.25rem 3rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.criancas-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320'%3E%3Cpath fill='rgba(255,255,255,0.03)' d='M0,192L48,197.3C96,203,192,213,288,229.3C384,245,480,267,576,250.7C672,235,768,181,864,181.3C960,181,1056,235,1152,234.7C1248,235,1344,181,1392,154.7L1440,128L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z'%3E%3C/path%3E%3C/svg%3E") no-repeat bottom;
  background-size: cover;
  pointer-events: none;
}

.criancas-hero__eyebrow,
.criancas-hero__badge {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  background: rgba(255,255,255,0.2);
  color: white;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  margin: 0 0 1.25rem;
  border: 1px solid rgba(255,255,255,0.35);
}

.criancas-hero__title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  font-weight: 800;
  margin: 0 0 0.75rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

.criancas-hero__title-accent {
  color: #fef08a;
  display: block;
  margin-top: 0.15em;
}

.criancas-hero__btn-icon { font-size: 1.05em; }

.criancas-hero__desc {
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1.65;
  color: rgba(255,255,255,0.98);
  max-width: 34rem;
  margin: 0 auto 1.5rem;
}

.criancas-hero__ctas {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  align-items: stretch;
  max-width: 20rem;
  margin: 0 auto;
}

@media (min-width: 480px) {
  .criancas-hero__ctas {
    flex-direction: row;
    max-width: none;
  }
}

.criancas-hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 700;
  border-radius: 0.75rem;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.15s;
}

.criancas-hero__btn:hover {
  text-decoration: none;
  opacity: 0.95;
  transform: translateY(-1px);
}

.criancas-hero__btn--primary {
  background: var(--primary-hex);
  color: white;
  border: none;
}

.criancas-hero__btn--secondary {
  background: white;
  color: #c2410c;
  border: 1px solid rgba(194, 65, 12, 0.25);
}

.criancas-meta {
  background: #fff;
  padding: 1.25rem 1rem;
  border-bottom: 1px solid #e5e7eb;
}

.criancas-meta__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0.75rem 1rem;
  max-width: 56rem;
  margin: 0 auto;
  justify-items: center;
  text-align: center;
}

.criancas-meta__item {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 500;
  color: #334155;
}

.criancas-meta__icon {
  font-size: 1.15rem;
  flex-shrink: 0;
}

/* Guia pages (cachoeiras, o-que-fazer, restaurantes): full-page hero + body + tips + explore */
.guia-hero {
  color: white;
  padding: 2.5rem 1.25rem 3rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.guia-hero--blue { background: linear-gradient(180deg, #1d4ed8 0%, #2563eb 50%, #0d9488 100%); }
.guia-hero--green { background: linear-gradient(180deg, #047857 0%, #059669 50%, #0d9488 100%); }
.guia-hero--orange { background: linear-gradient(180deg, #ea580c 0%, #dc2626 50%, #e11d48 100%); }
.guia-hero__badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  background: rgba(255,255,255,0.2);
  color: white;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  margin: 0 0 1.25rem;
  border: 1px solid rgba(255,255,255,0.35);
}
.guia-hero__title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  font-weight: 800;
  margin: 0 0 0.75rem;
  line-height: 1.25;
  color: white;
  text-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.guia-hero__desc {
  font-size: 0.9375rem;
  line-height: 1.65;
  color: rgba(255,255,255,0.95);
  max-width: 34rem;
  margin: 0 auto 1.5rem;
}
.guia-hero__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}
.guia-hero__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  border-radius: 1rem;
  text-decoration: none;
  transition: opacity 0.2s, transform 0.15s;
}
.guia-hero__btn:hover { text-decoration: none; opacity: 0.95; transform: translateY(-1px); }
.guia-hero__btn--primary { background: white; color: #1d4ed8; border: none; }
.guia-hero--green .guia-hero__btn--primary { color: #047857; }
.guia-hero--orange .guia-hero__btn--primary { color: #c2410c; }
.guia-hero__btn--secondary { background: rgba(255,255,255,0.2); color: white; border: 1px solid rgba(255,255,255,0.4); }
.guia-facts {
  background: #fff;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e5e7eb;
}
.guia-facts__inner {
  max-width: 56rem;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
  font-size: 0.875rem;
  color: #64748b;
}
.guia-facts__inner strong { color: #111; }
.guia-facts__value { color: #166534; font-weight: 500; }
.guia-body { max-width: 56rem; margin: 0 auto; padding: 2rem 1.25rem; }
.guia-body__intro { font-size: 1.0625rem; line-height: 1.7; color: #475569; margin-bottom: 2rem; }
.guia-body__empty { color: #6b7280; margin-bottom: 2rem; }
.guia-body__cta { margin-top: 1.5rem; }

/* Destaques Patrocinados (Replit style) */
.guia-sponsored { margin-bottom: 2.5rem; }
.guia-sponsored__header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.guia-sponsored__star { color: #ea580c; font-size: 1.125rem; }
.guia-sponsored__title {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ea580c;
  margin: 0;
}
.guia-sponsored__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .guia-sponsored__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .guia-sponsored__grid { grid-template-columns: repeat(3, 1fr); } }
.guia-sponsored__card {
  display: block;
  background: #fff;
  border: 1px solid #fde68a;
  border-radius: 1rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.guia-sponsored__card:hover { box-shadow: 0 4px 14px rgba(234, 88, 12, 0.12); border-color: #fcd34d; text-decoration: none; color: inherit; }
.guia-sponsored__image {
  width: 100%;
  height: 9rem;
  background: linear-gradient(135deg, #fef9c3 0%, #fef3c7 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.guia-sponsored__image img { width: 100%; height: 100%; object-fit: contain; }
.guia-sponsored__placeholder { font-size: 2.5rem; color: #fcd34d; }
.guia-sponsored__content { padding: 1rem; }
.guia-sponsored__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.guia-sponsored__name { font-size: 1rem; font-weight: 800; color: #111; margin: 0; line-height: 1.3; }
.guia-sponsored__badge {
  flex-shrink: 0;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #ea580c;
  background: #fef3c7;
  border: 1px solid #fcd34d;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
}
.guia-sponsored__desc { font-size: 0.8125rem; color: #6b7280; margin: 0 0 0.5rem; line-height: 1.45; }
.guia-sponsored__location { font-size: 0.75rem; color: #9ca3af; margin: 0; }
.guia-sponsored__footer {
  font-size: 0.625rem;
  color: #9ca3af;
  margin: 0.75rem 0 0;
  text-align: right;
}
.guia-sponsored__footer a { color: #6b7280; text-decoration: underline; }
.guia-sponsored__footer a:hover { color: #111; }

/* O que fazer — Destaques Patrocinados (Replit list style: icon + title + CTA, then white cards) */
.guia-oqf-sponsored { margin-bottom: 2rem; }
.guia-oqf-sponsored__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}
.guia-oqf-sponsored__icon { color: #ea580c; font-size: 1.125rem; }
.guia-oqf-sponsored__title {
  font-size: 1.125rem;
  font-weight: 800;
  color: #111;
  margin: 0;
  flex: 1;
  min-width: 0;
}
.guia-oqf-sponsored__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--primary-hex);
  color: var(--primary-hex);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.guia-oqf-sponsored__cta:hover {
  background: rgba(26, 92, 53, 0.08);
  color: var(--primary-hex);
  text-decoration: none;
}
.guia-oqf-sponsored__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  margin-bottom: 0.75rem;
}
@media (min-width: 640px) { .guia-oqf-sponsored__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .guia-oqf-sponsored__grid { grid-template-columns: repeat(3, 1fr); } }
.guia-oqf-sponsored__card {
  display: block;
  background: #fff;
  border: 1px solid #fde68a;
  border-radius: 1rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 3px rgba(245, 158, 11, 0.08);
  transition: box-shadow 0.2s, border-color 0.2s;
}
.guia-oqf-sponsored__card:hover {
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.12);
  border-color: #fcd34d;
  text-decoration: none;
  color: inherit;
}
.guia-oqf-sponsored__image {
  width: 100%;
  height: 8rem;
  background: linear-gradient(135deg, #fef9c3 0%, #fef3c7 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.guia-oqf-sponsored__image img { width: 100%; height: 100%; object-fit: contain; }
.guia-oqf-sponsored__placeholder { font-size: 2rem; color: #fcd34d; }
.guia-oqf-sponsored__content { padding: 1rem; }
.guia-oqf-sponsored__row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.guia-oqf-sponsored__name { font-size: 1rem; font-weight: 800; color: #111; margin: 0; line-height: 1.3; }
.guia-oqf-sponsored__badge {
  flex-shrink: 0;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #ea580c;
  background: #fef3c7;
  border: 1px solid #fcd34d;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
}
.guia-oqf-sponsored__desc { font-size: 0.8125rem; color: #6b7280; margin: 0 0 0.5rem; line-height: 1.45; }
.guia-oqf-sponsored__location { font-size: 0.75rem; color: #9ca3af; margin: 0; }
.guia-oqf-list {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem;
}
.guia-oqf-list__item { margin-bottom: 0.75rem; }
.guia-oqf-list__link {
  display: block;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.guia-oqf-list__link:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border-color: #cbd5e1;
  text-decoration: none;
  color: inherit;
}
.guia-oqf-list__name {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  margin-bottom: 0.25rem;
  line-height: 1.3;
}
.guia-oqf-list__desc {
  font-size: 0.875rem;
  color: #64748b;
  margin: 0;
  line-height: 1.45;
}
.guia-oqf-sponsored__footer {
  font-size: 0.625rem;
  color: #94a3b8;
  margin: 0;
  text-align: right;
}
.guia-oqf-sponsored__footer a { color: #64748b; text-decoration: underline; }
.guia-oqf-sponsored__footer a:hover { color: #111; }

/* Ozen Terapias — monetization / partner banner (wellness, Alto Paraíso) */
.ozen-banner {
  display: block;
  margin: 1.25rem 0;
  padding: 0.125rem;
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 35%, #f5f3ff 100%);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: var(--radius-lg);
  box-shadow: 0 1px 3px rgba(16, 185, 129, 0.06);
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.ozen-banner:hover {
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.35);
  text-decoration: none;
  color: inherit;
}
.ozen-banner__label {
  display: block;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #059669;
  margin-bottom: 0.35rem;
  padding-left: 0.25rem;
}
.ozen-banner__inner {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: rgba(255, 255, 255, 0.85);
  border-radius: calc(var(--radius-lg) - 2px);
}
.ozen-banner__icon {
  flex-shrink: 0;
  font-size: 1.75rem;
  line-height: 1;
}
.ozen-banner__content {
  flex: 1;
  min-width: 0;
}
.ozen-banner__title {
  display: block;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 800;
  color: #0f766e;
  margin: 0 0 0.35rem;
  line-height: 1.3;
}
.ozen-banner__text {
  font-size: 0.8125rem;
  color: #475569;
  line-height: 1.5;
  margin: 0 0 0.6rem;
}
.ozen-banner__cta {
  font-size: 0.875rem;
  font-weight: 700;
  color: #059669;
}
.ozen-banner:hover .ozen-banner__cta {
  text-decoration: underline;
}
@media (min-width: 640px) {
  .ozen-banner__inner { padding: 1.25rem 1.5rem; }
  .ozen-banner__title { font-size: 1.0625rem; }
  .ozen-banner__text { font-size: 0.875rem; }
}

/* O que fazer: category sections (Replit style — icon + title + pill CTA, then 2-col card grid) */
.guia-body--oqf { max-width: 56rem; }
.guia-body__intro--oqf { font-size: 1.0625rem; line-height: 1.7; color: #475569; margin-bottom: 2.5rem; }
.oqf-section { margin-bottom: 2.5rem; }
.oqf-section__header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}
.oqf-section__icon { font-size: 1.75rem; line-height: 1; }
.oqf-section__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #111;
  margin: 0;
  flex: 1;
  min-width: 0;
}
.oqf-section__cta {
  display: inline-flex;
  align-items: center;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  border: 1px solid hsl(var(--border));
  color: var(--primary-hex);
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}
.oqf-section__cta:hover {
  background: rgba(26, 92, 53, 0.06);
  color: var(--primary-hex);
  text-decoration: none;
}
.oqf-section__grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .oqf-section__grid { grid-template-columns: repeat(2, 1fr); } }
.oqf-card {
  display: block;
  padding: 1.25rem 1.25rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  text-decoration: none;
  color: inherit;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.oqf-card:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border-color: #cbd5e1;
  text-decoration: none;
  color: inherit;
}
.oqf-card__title {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  margin-bottom: 0.35rem;
  line-height: 1.3;
}
.oqf-card__desc {
  font-size: 0.875rem;
  color: #64748b;
  margin: 0;
  line-height: 1.5;
}
.oqf-section__empty { font-size: 0.9375rem; color: #94a3b8; margin: 0; }
.guia-tips--when {
  background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
  border: 1px solid #fde68a;
  border-radius: 1.5rem;
  padding: 1.5rem 1.25rem;
  margin-bottom: 2rem;
}
.guia-explore__grid--oqf { gap: 0.75rem; }
@media (min-width: 640px) { .guia-explore__grid--oqf { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px) { .guia-explore__grid--oqf { grid-template-columns: repeat(3, 1fr); } }

/* Restaurantes page (Replit style: sponsored cards, ingredients, ranked list, dining tips, map CTA) */
.guia-body--rest { max-width: 56rem; }
.guia-body__intro--rest { font-size: 1.0625rem; line-height: 1.7; color: #166534; margin-bottom: 2rem; }
.rest-sponsored { margin-bottom: 2rem; }
.rest-sponsored__head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}
.rest-sponsored__icon { color: #ea580c; font-size: 1.125rem; }
.rest-sponsored__title { font-size: 0.6875rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: #ea580c; margin: 0; flex: 1; min-width: 0; }
.rest-sponsored__cta {
  display: inline-flex; align-items: center; padding: 0.5rem 1rem; border-radius: 999px;
  border: 1px solid var(--primary-hex); color: var(--primary-hex); font-size: 0.875rem; font-weight: 700; text-decoration: none;
}
.rest-sponsored__cta:hover { background: rgba(26, 92, 53, 0.08); color: var(--primary-hex); text-decoration: none; }
.rest-sponsored__grid {
  display: grid; gap: 1rem; grid-template-columns: 1fr;
  margin-bottom: 0.75rem;
}
@media (min-width: 640px) { .rest-sponsored__grid { grid-template-columns: repeat(2, 1fr); } }
.rest-sponsored__card {
  display: block; background: #fff; border: 1px solid #fde68a; border-radius: 1rem; overflow: hidden;
  text-decoration: none; color: inherit; box-shadow: 0 1px 3px rgba(245, 158, 11, 0.08);
}
.rest-sponsored__card:hover { box-shadow: 0 4px 14px rgba(245, 158, 11, 0.12); border-color: #fcd34d; text-decoration: none; color: inherit; }
.rest-sponsored__image {
  width: 100%; height: 8rem; background: linear-gradient(135deg, #fef9c3 0%, #fef3c7 100%);
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.rest-sponsored__image img { width: 100%; height: 100%; object-fit: contain; }
.rest-sponsored__placeholder { font-size: 2rem; color: #fcd34d; }
.rest-sponsored__content { padding: 1rem; }
.rest-sponsored__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.35rem; }
.rest-sponsored__name { font-size: 1rem; font-weight: 800; color: #111; margin: 0; line-height: 1.3; }
.rest-sponsored__badge {
  flex-shrink: 0; font-size: 0.625rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase;
  color: #ea580c; background: #fef3c7; border: 1px solid #fcd34d; padding: 0.25rem 0.5rem; border-radius: 999px;
}
.rest-sponsored__desc { font-size: 0.8125rem; color: #6b7280; margin: 0 0 0.5rem; line-height: 1.45; }
.rest-sponsored__meta { font-size: 0.75rem; color: #9ca3af; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rest-sponsored__price { color: #059669; font-weight: 700; }
.rest-sponsored__footer { font-size: 0.625rem; color: #94a3b8; margin: 0; text-align: right; }
.rest-sponsored__footer a { color: #64748b; text-decoration: underline; }
.rest-sponsored__footer a:hover { color: #111; }

.rest-ingredients {
  display: grid; gap: 1rem; grid-template-columns: 1fr; margin-bottom: 2.5rem;
}
@media (min-width: 640px) { .rest-ingredients { grid-template-columns: repeat(3, 1fr); } }
.rest-ingredients__card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 1rem; padding: 1.25rem; text-align: center;
}
.rest-ingredients__icon { font-size: 2rem; line-height: 1; display: block; margin-bottom: 0.5rem; }
.rest-ingredients__name { font-size: 0.9375rem; font-weight: 700; color: #111; margin: 0 0 0.35rem; }
.rest-ingredients__desc { font-size: 0.75rem; color: #64748b; margin: 0; line-height: 1.4; }

.rest-list { margin-bottom: 2.5rem; }
.rest-list__empty { color: #6b7280; text-align: center; padding: 2rem; margin: 0; }
.rest-card {
  border-radius: 1.5rem; border: 1px solid #e5e7eb; overflow: hidden; background: #fff; margin-bottom: 1.25rem;
}
.rest-card--highlight { border-color: #fdba74; background: rgba(255, 247, 237, 0.5); }
.rest-card__link {
  display: flex; align-items: flex-start; gap: 1rem; padding: 1.5rem; text-decoration: none; color: inherit;
}
.rest-card__link:hover { text-decoration: none; color: inherit; }
.rest-card__num {
  width: 2.5rem; height: 2.5rem; border-radius: 1rem; background: #e2e8f0; color: #64748b;
  font-size: 1.125rem; font-weight: 800; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
}
.rest-card--highlight .rest-card__num { background: #ea580c; color: white; }
.rest-card__body { flex: 1; min-width: 0; }
.rest-card__head { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.rest-card__title { font-size: 1.25rem; font-weight: 800; color: #111; margin: 0; line-height: 1.25; }
.rest-card__badge {
  font-size: 0.6875rem; font-weight: 700; color: #ea580c; background: #ffedd5; border: 1px solid #fdba74;
  padding: 0.25rem 0.5rem; border-radius: 999px;
}
.rest-card__meta {
  font-size: 0.8125rem; color: #64748b; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin-bottom: 0.5rem;
}
.rest-card__price { font-weight: 700; color: #111; }
.rest-card__desc { font-size: 0.9375rem; color: #475569; margin: 0; line-height: 1.55; }
.rest-card__actions {
  display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.75rem;
}
.rest-card__pill {
  display: inline-flex; align-items: center; font-size: 0.8125rem; padding: 0.5rem 0.75rem; border-radius: 0.75rem;
}
.rest-card__pill--try { background: #dcfce7; border: 1px solid #86efac; color: #166534; }
.rest-card__pill--loc { background: #f1f5f9; border: 1px solid #e2e8f0; color: #64748b; }

.rest-tips {
  background: linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%); border: 1px solid #fde68a;
  border-radius: 1.5rem; padding: 1.5rem 1.25rem; margin-bottom: 2rem;
}
.rest-tips__title { font-size: 1.25rem; font-weight: 800; color: #111; margin: 0 0 1rem; }
.rest-tips__grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .rest-tips__grid { grid-template-columns: 1fr 1fr; } }
.rest-tips__item h3 { font-size: 0.9375rem; font-weight: 700; color: #111; margin: 0 0 0.25rem; }
.rest-tips__item p { font-size: 0.875rem; color: #475569; margin: 0; line-height: 1.5; }

.rest-map-cta {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 1.5rem; padding: 1.5rem 1.25rem;
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-bottom: 2rem;
}
.rest-map-cta__icon { font-size: 2.5rem; line-height: 1; }
.rest-map-cta__text { flex: 1; min-width: 0; }
.rest-map-cta__title { font-size: 1.125rem; font-weight: 800; color: #111; margin: 0 0 0.25rem; }
.rest-map-cta__desc { font-size: 0.875rem; color: #64748b; margin: 0; line-height: 1.4; }
.rest-map-cta__btn {
  display: inline-flex; align-items: center; padding: 0.75rem 1.25rem; border-radius: 1rem;
  background: var(--primary-hex); color: white; font-size: 0.9375rem; font-weight: 700; text-decoration: none;
}
.rest-map-cta__btn:hover { opacity: 0.95; color: white; text-decoration: none; }

/* Ranked list (Replit style: number in circle, Top pick badge) */
.guia-ranked-list { margin-bottom: 2rem; }
.guia-ranked-card {
  border-radius: 1.5rem;
  border: 1px solid #e5e7eb;
  overflow: hidden;
  background: #fff;
  margin-bottom: 1.5rem;
}
.guia-ranked-card--highlight { border-color: #93c5fd; background: rgba(239, 246, 255, 0.5); }
.guia-ranked-card__link {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.5rem;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.guia-ranked-card__link:hover { background: rgba(248, 250, 252, 0.8); text-decoration: none; color: inherit; }
.guia-ranked-card__num {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 1rem;
  background: #e2e8f0;
  color: #64748b;
  font-size: 1.125rem;
  font-weight: 800;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.guia-ranked-card--highlight .guia-ranked-card__num { background: #2563eb; color: white; }
.guia-ranked-card__body { flex: 1; min-width: 0; }
.guia-ranked-card__head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.5rem;
}
.guia-ranked-card__title { font-size: 1.25rem; font-weight: 800; color: #111; margin: 0; line-height: 1.25; }
.guia-ranked-card__badge {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #1d4ed8;
  background: #dbeafe;
  border: 1px solid #93c5fd;
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
}
.guia-ranked-card__desc { font-size: 0.9375rem; color: #475569; margin: 0; line-height: 1.55; }
.guia-ranked-card__tip {
  margin-top: 0.75rem;
  font-size: 0.8125rem;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 0.75rem;
  padding: 0.5rem 0.75rem;
  line-height: 1.45;
}
.guia-ranked-card__cta { font-size: 0.8125rem; font-weight: 700; color: var(--primary-hex); margin-top: 0.5rem; display: inline-block; }

.guia-list { list-style: none; padding: 0; margin: 0 0 2rem; }
.guia-list__item { margin-bottom: 1rem; }
.guia-list__link {
  display: block;
  padding: 1rem 1.25rem;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  text-decoration: none;
  color: inherit;
  background: #fff;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.guia-list__link:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.06); border-color: #d1d5db; text-decoration: none; color: inherit; }
.guia-tips {
  background: linear-gradient(180deg, #f0fdf4 0%, #ecfeff 100%);
  border: 1px solid #a7f3d0;
  border-radius: 1.5rem;
  padding: 1.5rem 1.25rem;
  margin-bottom: 2rem;
}
.guia-tips__title { font-size: 1.25rem; font-weight: 800; color: #111; margin: 0 0 1rem; }
.guia-tips__grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .guia-tips__grid { grid-template-columns: 1fr 1fr; } }
.guia-tips__item h3 { font-size: 0.9375rem; font-weight: 700; color: #111; margin: 0 0 0.25rem; }
.guia-tips__item p { font-size: 0.875rem; color: #475569; margin: 0; line-height: 1.5; }
.guia-explore {
  border: 1px solid #e5e7eb;
  border-radius: 1.5rem;
  padding: 1.5rem 1.25rem;
}
.guia-explore--mint {
  border-color: #bbf7d0;
  background: #fff;
}
.guia-explore__title { font-size: 1.125rem; font-weight: 800; color: #111; margin: 0 0 1rem; }
.guia-explore__grid { display: grid; gap: 0.75rem; }
@media (min-width: 640px) { .guia-explore__grid { grid-template-columns: repeat(2, 1fr); } }
.guia-explore__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: #f8fafc;
  border-radius: 1.25rem;
  text-decoration: none;
  color: inherit;
  transition: background 0.15s;
}
.guia-explore--mint .guia-explore__link {
  background: #f0fdf4;
  border: 1px solid transparent;
}
.guia-explore--mint .guia-explore__link:hover { background: #dcfce7; }
.guia-explore__link:hover { background: #f1f5f9; text-decoration: none; color: inherit; }
.guia-explore__icon { font-size: 1.5rem; flex-shrink: 0; }
.guia-explore__text { flex: 1; min-width: 0; }
.guia-explore__label { display: block; font-weight: 700; font-size: 0.9375rem; color: #111; }
.guia-explore__sublabel { font-size: 0.75rem; color: #64748b; }
.guia-explore__chevron { font-size: 1.25rem; color: #94a3b8; font-weight: 300; }

/* Roteiros prontos page: hero + filters + cards (responsive, matches Replit/screenshot) */
.roteiros {
  display: flex;
  flex-direction: column;
  min-height: 0;
  flex: 1 1 0%;
}
.roteiros-hero {
  background: linear-gradient(135deg, #334155 0%, #475569 50%, #64748b 100%);
  color: white;
  padding: 2.5rem 1.25rem 3rem;
  text-align: center;
  flex-shrink: 0;
}
.roteiros-hero__inner {
  max-width: 56rem;
  margin: 0 auto;
}
.roteiros-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(8px);
  color: white;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  margin: 0 0 1.25rem;
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.roteiros-hero__badge-icon {
  flex-shrink: 0;
}
.roteiros-hero__title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 5vw, 2.5rem);
  font-weight: 800;
  margin: 0 0 0.75rem;
  line-height: 1.2;
  color: white;
}
.roteiros-hero__sub {
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  max-width: 34rem;
  margin: 0 auto 1.5rem;
}
.roteiros-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.5rem;
}
.roteiros-filters__btn {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.5rem 1.25rem;
  border-radius: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.3);
  background: rgba(255, 255, 255, 0.1);
  color: white;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.roteiros-filters__btn:hover {
  background: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.4);
}
.roteiros-filters__btn.is-active {
  background: white;
  color: #334155;
  border-color: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}
.roteiros-body {
  flex: 1 1 0%;
  min-height: 0;
  overflow: auto;
  background: #fff;
  padding: 1.5rem 1rem 2rem;
}

/* Roteiros index: one document scroll (no nested .roteiros-body scroller or flex “empty band” under hero)
   Base template sets body_class to include `page`, so global `.page { height: 100vh; overflow: hidden }`
   applies to <body> and clips content unless we reset it here. */
body.page--roteiros {
  height: auto;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: visible;
}
body.page--roteiros .page {
  height: auto;
  min-height: 100vh;
  overflow: visible;
}
body.page--roteiros .main {
  overflow: visible;
  flex: 1 1 auto;
  min-height: auto;
}
body.page--roteiros .roteiros {
  flex: 0 0 auto;
}
body.page--roteiros .roteiros-body {
  flex: 0 0 auto;
  min-height: auto;
  overflow: visible;
}
.roteiros-list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 56rem;
  margin-left: auto;
  margin-right: auto;
}
.roteiros-list__item {
  margin-bottom: 1rem;
}
.roteiros-card {
  display: block;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s, border-color 0.2s;
}
.roteiros-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: #d1d5db;
  text-decoration: none;
  color: inherit;
}
.roteiros-card__cover {
  position: relative;
  min-height: 140px;
  background: linear-gradient(135deg, #1e40af 0%, #0d9488 100%);
}
.roteiros-card__img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
}
.roteiros-card__placeholder {
  width: 100%;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5rem;
  background: linear-gradient(135deg, #1a5c35 0%, #22c55e 100%);
}
.roteiros-card__badges {
  position: absolute;
  top: 0.75rem;
  left: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.roteiros-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
}
.roteiros-card__badge--days {
  background: rgba(59, 130, 246, 0.95);
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.4);
}
.roteiros-card__badge-icon {
  flex-shrink: 0;
}
.roteiros-card__badge-icon--sun {
  color: #eab308;
}
.roteiros-card__badge--diff {
  background: rgba(255, 255, 255, 0.9);
  color: #475569;
  border: 1px solid rgba(255, 255, 255, 0.6);
}
.roteiros-card__content {
  padding: 1rem 1.25rem;
}
.roteiros-card__title {
  font-family: var(--font-display);
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0 0 0.35rem;
  color: #111;
}
.roteiros-card__desc {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 0.5rem;
  line-height: 1.45;
}
.roteiros-card__cta {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--primary-hex, #1a5c35);
}
.roteiros-empty {
  text-align: center;
  padding: 3rem 1rem;
  max-width: 56rem;
  margin: 0 auto;
}
.roteiros-empty__icon {
  font-size: 3rem;
  margin: 0 0 1rem;
}
.roteiros-empty__text {
  color: #6b7280;
  font-size: 1rem;
  margin: 0;
}
@media (min-width: 640px) {
  .roteiros-card {
    display: flex;
    flex-wrap: wrap;
  }
  .roteiros-card__cover {
    width: 200px;
    min-height: 120px;
    flex-shrink: 0;
  }
  .roteiros-card__img,
  .roteiros-card__placeholder {
    width: 200px;
    height: 120px;
  }
  .roteiros-card__content {
    flex: 1;
    min-width: 0;
    padding: 1.25rem;
  }
}

.criancas-body {
  background: #fff;
  padding: 2rem 1rem 3rem;
}

.criancas-body__inner {
  max-width: 48rem;
  margin: 0 auto;
}

.criancas-body__text {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.7;
  color: #334155;
  margin: 0;
}

.criancas-body__highlight { color: var(--primary-hex); }

/* Por que levar as crianças */
.criancas-why {
  background: #f9fafb;
  padding: 3rem 1rem;
}

.criancas-why__inner { max-width: 64rem; margin: 0 auto; }
.criancas-why__intro { font-family: var(--font-sans); font-size: 0.9rem; font-weight: 400; color: #6b7280; margin: 0 0 0.5rem; }
.criancas-why__title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 800; color: var(--primary-hex); margin: 0 0 1.5rem; display: flex; align-items: center; gap: 0.5rem; }
.criancas-why__leaf { font-size: 1.25rem; }
.criancas-why__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

@media (max-width: 900px) { .criancas-why__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .criancas-why__grid { grid-template-columns: 1fr; } }

.criancas-why-card {
  background: #fff;
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  border: 1px solid #e5e7eb;
}

.criancas-why-card__icon { font-size: 1.5rem; display: block; margin-bottom: 0.5rem; }
.criancas-why-card__tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  margin-bottom: 0.5rem;
}

.criancas-why-card--blue .criancas-why-card__tag { background: #dbeafe; color: #1e40af; }
.criancas-why-card--green .criancas-why-card__tag { background: #dcfce7; color: #166534; }
.criancas-why-card--orange .criancas-why-card__tag { background: #ffedd5; color: #c2410c; }
.criancas-why-card--gastronomy .criancas-why-card__tag { background: #ffedd5; color: #ea580c; }
.criancas-why-card--purple .criancas-why-card__tag { background: #f3e8ff; color: #6b21a8; }

.criancas-why-card__title { font-size: 1rem; font-weight: 700; margin: 0 0 0.35rem; color: #111; }
.criancas-why-card__desc { font-size: 0.875rem; color: #6b7280; margin: 0; line-height: 1.45; }

/* Roteiro sugerido */
.criancas-roteiro {
  background: #fff;
  padding: 3rem 1rem;
}

.criancas-roteiro__inner { max-width: 48rem; margin: 0 auto; }
.criancas-roteiro__title { font-size: 1.35rem; font-weight: 800; color: #111; margin: 0 0 0.25rem; display: flex; align-items: center; gap: 0.5rem; }
.criancas-roteiro__icon { font-size: 1.25rem; }
.criancas-roteiro__sub { font-size: 0.95rem; color: #6b7280; margin: 0 0 1.5rem; }
.criancas-roteiro__days { display: flex; flex-direction: column; gap: 1rem; }
.criancas-roteiro-day {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  border: 1px solid #e5e7eb;
}

.criancas-roteiro-day__head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: linear-gradient(90deg, #ea580c 0%, #fb923c 100%);
  color: #fff;
}

.criancas-roteiro-day__num {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: #fef08a;
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.95rem;
  flex-shrink: 0;
}

.criancas-roteiro-day__title { font-weight: 700; font-size: 1rem; }
.criancas-roteiro-day__list {
  margin: 0;
  padding: 1rem 1rem 1rem 2.5rem;
  list-style: none;
}

.criancas-roteiro-day__list li {
  position: relative;
  padding-left: 1rem;
  margin-bottom: 0.35rem;
  font-size: 0.9rem; color: #374151;
}

.criancas-roteiro-day__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ea580c;
}

/* Destaques para Famílias */
.criancas-destaques {
  background: #f9fafb;
  padding: 3rem 1rem;
}

.criancas-destaques__inner { max-width: 64rem; margin: 0 auto; }
.criancas-destaques__title { font-size: 0.85rem; font-weight: 800; color: var(--primary-hex); margin: 0 0 1rem; letter-spacing: 0.02em; }
.criancas-destaques__carousel {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.criancas-destaques-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  border: 1px solid #fde047;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s;
}

.criancas-destaques-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.1); text-decoration: none; color: inherit; }
.criancas-destaques-card__img-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  width: 100%;
  background: #fef9c3;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.criancas-destaques-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.criancas-destaques-card__placeholder {
  position: relative;
  z-index: 1;
  font-size: 2.5rem;
}
.criancas-destaques-card__body { padding: 1rem; flex: 1; }
.criancas-destaques-card__name { font-size: 1rem; font-weight: 700; margin: 0 0 0.35rem; color: var(--primary-hex); }
.criancas-destaques-card__badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 800;
  background: #fef08a;
  color: #713f12;
  padding: 0.2rem 0.45rem;
  border-radius: 4px;
  margin-bottom: 0.35rem;
}

.criancas-destaques-card__desc { font-size: 0.85rem; color: #6b7280; margin: 0 0 0.35rem; line-height: 1.4; }
.criancas-destaques-card__meta { font-size: 0.8rem; color: #9ca3af; margin: 0; }
.criancas-destaques-card--placeholder .criancas-destaques-card__body { padding: 1rem; }
.criancas-destaques-card__empty { font-size: 0.9rem; color: #6b7280; margin: 0; }
.criancas-destaques__sponsored { font-size: 0.8rem; color: #9ca3af; margin: 1rem 0 0; text-align: right; }
.criancas-destaques__sponsored a { color: var(--primary-hex); }

/* Locais adaptados para crianças */
.criancas-locais {
  background: #fff;
  padding: 3rem 1rem;
}

.criancas-locais__inner { max-width: 64rem; margin: 0 auto; }
.criancas-locais__head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1rem; }
.criancas-locais__title { font-size: 1.25rem; font-weight: 800; color: var(--primary-hex); margin: 0; }
.criancas-locais__link { font-size: 0.95rem; font-weight: 600; color: var(--primary-hex); text-decoration: none; }
.criancas-locais__link:hover { text-decoration: underline; }
.criancas-locais__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}

@media (max-width: 900px) { .criancas-locais__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .criancas-locais__grid { grid-template-columns: 1fr; } }

.criancas-locais__empty { font-size: 1rem; color: #6b7280; margin: 0; }
.criancas-locais-card {
  background: #fff;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  border: 1px solid #fef08a;
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s;
}

.criancas-locais-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.08); text-decoration: none; color: inherit; }
.criancas-locais-card__img-wrap {
  position: relative;
  aspect-ratio: 16 / 10;
  width: 100%;
  background: #fefce8;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
}

.criancas-locais-card__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.criancas-locais-card__placeholder {
  position: relative;
  z-index: 1;
  font-size: 2rem;
}
.criancas-locais-card__body { padding: 1rem; }
.criancas-locais-card__tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.5rem; }
.criancas-locais-card__tag {
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
}

.criancas-locais-card__tag--cat { background: #e9d5ff; color: #6b21a8; }
.criancas-locais-card__tag--kids { background: #fef08a; color: #713f12; }
.criancas-locais-card__name { font-size: 1rem; font-weight: 700; margin: 0 0 0.25rem; color: #111; }
.criancas-locais-card__desc { font-size: 0.85rem; color: #6b7280; margin: 0 0 0.35rem; line-height: 1.4; }
.criancas-locais-card__duration { font-size: 0.8rem; color: #9ca3af; margin: 0 0 0.25rem; }
.criancas-locais-card__detail { font-size: 0.9rem; font-weight: 600; color: var(--primary-hex); }

/* Guia prático */
.criancas-guide {
  background: #f9fafb;
  padding: 3rem 1rem;
}

.criancas-guide__inner { max-width: 56rem; margin: 0 auto; }
.criancas-guide__title { font-size: 1.35rem; font-weight: 800; color: #111; margin: 0 0 1.25rem; }
.criancas-guide__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
}

@media (max-width: 700px) { .criancas-guide__grid { grid-template-columns: 1fr; } }

.criancas-guide__subtitle { font-size: 1rem; font-weight: 700; color: #111; margin: 0 0 0.5rem; }
.criancas-guide__list { margin: 0 0 1rem; padding-left: 1.25rem; list-style: none; }
.criancas-guide__list li {
  position: relative;
  margin-bottom: 0.35rem;
  font-size: 0.9rem;
  color: #374151;
  padding-left: 0.5rem;
}

.criancas-guide__check {
  position: absolute;
  left: -1.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: var(--primary-hex);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 700;
}

.criancas-guide .criancas-guide__inner {
  background: #fffbeb;
  border: 1px solid #fde68a;
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}

/* Continue explorando */
.criancas-explore {
  background: #fff;
  padding: 3rem 1rem;
}

.criancas-explore__inner { max-width: 56rem; margin: 0 auto; }
.criancas-explore__title { font-size: 1.25rem; font-weight: 800; color: var(--primary-hex); margin: 0 0 1rem; }
.criancas-explore__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

@media (max-width: 560px) { .criancas-explore__grid { grid-template-columns: 1fr; } }

.criancas-explore-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: #f0fdf4;
  border-radius: 0.75rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid #bbf7d0;
  transition: background 0.2s, box-shadow 0.2s;
}

.criancas-explore-card:hover { background: #dcfce7; box-shadow: 0 2px 8px rgba(0,0,0,0.06); text-decoration: none; color: inherit; }
.criancas-explore-card__icon { font-size: 1.75rem; flex-shrink: 0; }
.criancas-explore-card__text { display: flex; flex-direction: column; gap: 0.15rem; min-width: 0; }
.criancas-explore-card__name { font-size: 0.95rem; font-weight: 700; color: var(--primary-hex); }
.criancas-explore-card__desc { font-size: 0.8rem; color: #6b7280; }
.criancas-explore-card__arrow { color: #9ca3af; font-weight: 700; margin-left: auto; }

/* Admin Destaques */
.admin-panel__sub { font-size: 0.9rem; color: #6b7280; margin: 0 0 1rem; }
.admin-panel__sub a { color: var(--primary-hex); }
.admin-payments-failed-banner {
  font-size: 0.9rem;
  margin: 0 0 1rem;
  padding: 0.65rem 0.85rem;
  border-radius: 8px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}
.admin-payments-failed-banner.hidden { display: none; }
.admin-destaques-list-wrap { overflow-x: auto; }
.admin-destaques-check { display: inline-flex; align-items: center; gap: 0.35rem; font-weight: 500; cursor: pointer; }

/* Dashboard (admin + promoter) */
.dashboard-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid #e5e7eb;
  padding-bottom: 0.5rem;
}
.dashboard-tab {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 0.5rem;
  cursor: pointer;
  color: #6b7280;
}
.dashboard-tab:hover {
  background: #f9fafb;
  color: #111;
}
.dashboard-tab.active {
  background: var(--primary-hex, #1a5c35);
  border-color: var(--primary-hex, #1a5c35);
  color: #fff;
}
.dashboard-panel { margin-top: 0.5rem; }
.dashboard-panel.hidden { display: none; }
.dashboard-panel__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 1rem;
  color: #111;
}
.dashboard-list { display: flex; flex-direction: column; gap: 0.75rem; }
.dashboard-empty { color: #6b7280; font-size: 0.9rem; margin: 0; }
.dashboard-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
}
.dashboard-card__main { min-width: 0; flex: 1; }
.dashboard-card__meta { font-size: 0.8rem; color: #6b7280; margin: 0.35rem 0 0; }
.dashboard-card__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.badge {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 0.25rem;
  background: #e5e7eb;
  color: #374151;
  margin-left: 0.35rem;
}
.badge--approved { background: #d1fae5; color: #065f46; }
.badge--pending { background: #fef3c7; color: #92400e; }
.badge--rejected { background: #fee2e2; color: #991b1b; }
.btn--small { padding: 0.35rem 0.75rem; font-size: 0.8rem; }
.btn--success { background: #16a34a; color: #fff; border-color: #16a34a; }
.btn--success:hover { background: #15803d; color: #fff; }
.btn--danger { background: #dc2626; color: #fff; border-color: #dc2626; }
.btn--danger:hover { background: #b91c1c; color: #fff; }
.form-row { margin-bottom: 1rem; }
.form-row label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.25rem; }
.form-row input, .form-row textarea { width: 100%; max-width: 24rem; padding: 0.5rem; border: 1px solid #d1d5db; border-radius: 0.375rem; }

/* Login page — Replit two-column layout */
/*
 * Use .main:has(> .login-page) instead of body.page--auth: Turbo Drive can leave body classes from the
 * previous page, so body.page--auth never matched and none of the layout/centering CSS applied.
 */
.main:has(> .login-page) {
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  /* Scroll on main (not .login-page) so the two-column shell can grow with a long form — green stays full height beside the form. */
  overflow-x: hidden;
  overflow-y: auto;
  justify-content: flex-start;
  padding-top: 0.75rem;
}
/* Same as :has() above — :has can fail in some contexts; body.page--auth is set on login/register/etc. */
body.page--auth > .page > .main {
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  min-height: 0;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  justify-content: flex-start;
  padding-top: 0.75rem;
}
/* Fill main below header so green + white columns share full viewport height (no short “card” + white gap). */
/*
 * Flex row + align-items: stretch: both columns share one cross size = max(left, right) content height.
 * min-height: max(100%, max-content): at least fill <main> when the form is short; grow with a long form.
 *
 * IMPORTANT: do NOT use flex: 1 1 auto here. <main> is a flex column; flex-grow caps .login-page to the
 * viewport band inside main. The right column (login + ad) then overflows past that box while the left
 * column only stretches to the capped height — short green panel. flex: 0 0 auto lets height follow
 * content so main’s overflow:auto scrolls the full two-column block.
 */
.main > .login-page {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 100%;
  min-height: max(100%, max-content);
  max-height: none;
  overflow-x: hidden;
  overflow-y: visible;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  align-content: stretch;
  align-self: stretch;
  box-sizing: border-box;
}
.main > .login-page > .login-page__left {
  flex: 0 0 42%;
  max-width: 42%;
  width: auto;
  min-width: 0;
  align-self: stretch;
  min-height: auto;
}
.main > .login-page > .login-page__right {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  min-height: auto;
  align-self: stretch;
}
/* Undo min-height:0 on the form column so row height follows the full form (not a collapsed flex item). */
.main > .login-page > .login-page__right.login-page__right--v-center {
  min-height: min-content;
  flex: 1 1 auto;
}
.main > .login-page > .login-page__right.login-page__right--v-center.login-page__right--login-with-ad {
  min-height: min-content;
}
@media (min-width: 768px) {
  .main > .login-page > .login-page__left {
    min-height: auto;
  }
}
@media (max-width: 767px) {
  /*
   * Must match desktop: flex: 0 0 auto so .login-page height follows form content.
   * flex:1 + min-height:100% on the shell pins the support bar to the viewport bottom and
   * stacks it over the middle of the form (WhatsApp / telefone) on long mobile forms.
   */
  .main > .login-page {
    flex-direction: column;
    max-height: none;
    flex: 0 0 auto;
    min-height: 0;
    align-self: stretch;
  }
  /* Room for home indicator + support bar so submit/terms are not under the thumb bar. */
  .main:has(> .login-page) {
    padding-bottom: max(3.5rem, calc(env(safe-area-inset-bottom, 0px) + 2.5rem));
  }
}
/* White column: min-height 0 so flex children can share height; flex-start + spacers for pages without .login-page__right-stack */
.login-page .login-page__right.login-page__right--v-center {
  flex: 1;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  padding: 2rem 1.5rem;
  background: #fafaf9;
  box-sizing: border-box;
}
/*
 * Login + ad: top-aligned flex — avoid grid 1fr/auto/1fr (when column height updates after fonts/AdSense,
 * the fr rows rebalance and the stack jumps down). Matches green column anchor at top.
 */
.login-page .login-page__right.login-page__right--v-center.login-page__right--login-with-ad {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  flex: 1;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  padding: 2rem 1.5rem;
  background: #fafaf9;
  box-sizing: border-box;
}
/* Form + ad: column stack; other auth pages keep flex rules below */
.login-page .login-page__right.login-page__right--v-center > .login-page__right-stack {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: 24rem;
  align-self: center;
  align-items: stretch;
  box-sizing: border-box;
}
.login-page .login-page__right.login-page__right--v-center.login-page__right--login-with-ad > .login-page__right-stack {
  flex: 0 0 auto;
  min-height: 0;
  min-width: 0;
  width: min(100%, 24rem);
  max-width: 100%;
  align-self: center;
}
.login-page .login-page__right-mid {
  flex: 1 1 0;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}
.login-page .login-page__right-mid::before,
.login-page .login-page__right-mid::after {
  content: '';
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
}
/* Login stack: no spacer pseudos — vertical centering is on the outer white column */
.login-page .login-page__right--login-with-ad .login-page__right-mid {
  flex: 0 0 auto;
}
.login-page .login-page__right--login-with-ad .login-page__right-mid::before,
.login-page .login-page__right--login-with-ad .login-page__right-mid::after {
  display: none;
  content: none;
}
.login-page .login-page__right-mid .login-page__form-wrap {
  flex: 0 0 auto;
  width: 100%;
  max-width: none;
  min-width: 0;
}
.login-page .login-page__right.login-page__right--v-center:not(:has(.login-page__right-mid))::before,
.login-page .login-page__right.login-page__right--v-center:not(:has(.login-page__right-mid))::after {
  content: '';
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
}
.login-page .login-page__right.login-page__right--v-center:not(:has(.login-page__right-mid)) .login-page__form-wrap {
  flex: 0 0 auto;
  width: 100%;
  max-width: min(24rem, 100%);
  min-width: 0;
  box-sizing: border-box;
}
.login-page .login-page__right--v-center .login-page__ad {
  flex: 0 0 auto;
  align-self: stretch;
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  /*
   * align-items:center lets the form column shrink to max-content width; long values then overflow the viewport.
   * Stretch keeps the white column and form-wrap within 100% of the screen.
   */
  .login-page .login-page__right.login-page__right--v-center {
    flex: 0 0 auto;
    min-height: min-content;
    max-height: none;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  .login-page .login-page__right.login-page__right--v-center,
  .login-page .login-page__right.login-page__right--v-center.login-page__right--login-with-ad {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }
  .login-page .login-page__right.login-page__right--v-center > .login-page__right-stack {
    max-width: 100%;
  }
  .login-page .login-page__right.login-page__right--v-center:not(:has(.login-page__right-mid)) .login-page__form-wrap {
    max-width: 100%;
  }
  .login-page__field--terms-highlight {
    margin-left: 0;
    margin-right: 0;
  }
}
.login-page {
  display: flex;
}
/* Green column: welcome + ©; dot texture on ::before (replaces .login-page__dots) */
.login-page__left {
  display: none;
  width: 42%;
  background: #0d1f14;
  flex-shrink: 0;
  padding: 2.5rem 3rem;
  position: relative;
  overflow: hidden;
  min-height: 0;
  box-sizing: border-box;
}
.login-page__left::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.06;
  background-image: radial-gradient(circle, #4ade80 1px, transparent 1px);
  background-size: 28px 28px;
  pointer-events: none;
  z-index: 0;
}
@media (min-width: 768px) {
  .login-page .login-page__left {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    align-content: flex-start;
    min-height: 0;
  }
}
/* Auth welcome block — keep this selector so DevTools / cascade shows padding on .login-page__welcome */
.login-page__welcome {
  position: relative;
  z-index: 1;
  padding: 12rem 0;
  box-sizing: border-box;
}
.login-page .login-page__left .login-page__welcome {
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
}
.login-page .login-page__left:has(.login-page__welcome) > .login-page__copy {
  margin-top: auto;
  padding-top: 1.25rem;
  position: relative;
  z-index: 1;
}
.login-page .login-page__left:not(:has(.login-page__welcome)) > .login-page__copy {
  position: relative;
  z-index: 1;
  padding: 12rem 0;
  margin-top: 0;
}
/* Auth green column: align with visitor reference — compact type, emoji bullets for masked icons */
.login-page .login-page__left .login-page__welcome-title {
  font-size: 1.375rem;
  line-height: 1.25;
  margin: 0 0 0.625rem;
}
.login-page .login-page__left .login-page__tagline {
  font-size: 0.8125rem;
  line-height: 1.5;
  max-width: 20rem;
  margin: 0 0 0.75rem;
}
.login-page .login-page__left .promoter-create-page__eyebrow {
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  margin: 0 0 0.375rem;
}
.login-page .login-page__left .promoter-create-page__benefits li {
  font-size: 0.8125rem;
  line-height: 1.45;
  margin-bottom: 0.35rem;
  color: rgba(255, 255, 255, 0.58);
}
.login-page .login-page__left .login-page__benefits--check li {
  font-size: 0.8125rem;
  line-height: 1.45;
  margin-bottom: 0.35rem;
}
.login-page .login-page__left .promoter-create-page__benefit-icon {
  background: none !important;
  mask: none !important;
  -webkit-mask: none !important;
  border-radius: 0;
  width: 1.35rem;
  min-width: 1.35rem;
  height: auto;
  min-height: 1.15em;
  align-self: flex-start;
  margin-top: 0.08em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.login-page .login-page__left .promoter-create-page__benefit-icon::before {
  font-size: 1.05rem;
  line-height: 1;
}
.login-page .login-page__left .promoter-create-page__benefit-icon--calendar::before { content: '\1F4C5'; }
.login-page .login-page__left .promoter-create-page__benefit-icon--pin::before { content: '\1F4CD'; }
.login-page .login-page__left .promoter-create-page__benefit-icon--image::before { content: '\1F4F7'; }
.login-page .login-page__left .promoter-create-page__benefit-icon--zap::before { content: '\26A1'; }
.login-page .login-page__left .promoter-create-page__benefit-icon--star::before { content: '\2B50'; }
.login-page__welcome-title {
  font-size: 1.875rem;
  font-weight: 800;
  color: white;
  line-height: 1.2;
  margin: 0 0 1rem;
}
.login-page__welcome-accent { color: #34d399; }
.login-page__tagline {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.4);
  line-height: 1.6;
  max-width: 18rem;
  margin: 0 0 1rem;
}
.login-page__benefits {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.5);
  line-height: 1.8;
}
.login-page__benefits li { padding-left: 0; }
.login-page__benefits--check { list-style: none; }
.login-page__benefits--check li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.6);
  margin-bottom: 0.5rem;
}
.login-page__benefits--check li:last-child { margin-bottom: 0; }
.login-page__check {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  border-radius: 50%;
  background: #34d399;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.login-page__check::after {
  content: '';
  width: 4px;
  height: 7px;
  margin-left: 1px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg) translateY(-1px);
}
.login-page__optional { font-weight: 400; color: #9ca3af; font-size: 0.8em; }
.login-page__required { color: #b91c1c; font-weight: 700; }
.login-page__terms {
  font-size: 0.6875rem;
  color: #6b7280;
  text-align: center;
  line-height: 1.5;
  margin: 0.75rem 0 0;
}
.login-page__field--terms-checkbox {
  margin-bottom: 0.35rem;
}
.login-page__terms-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #374151;
  cursor: pointer;
  text-align: left;
}
.login-page__terms-checkbox-input {
  margin-top: 0.15rem;
  flex-shrink: 0;
  width: 1.25rem;
  min-width: 1.25rem;
  height: 1.25rem;
  accent-color: #059669;
  cursor: pointer;
}
.login-page__field--remember {
  margin: -0.125rem 0 0;
}
.login-page__remember-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  font-weight: 500;
  color: #374151;
  cursor: pointer;
  text-align: left;
  user-select: none;
}
.login-page__remember-input {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  margin: 0;
  accent-color: #1a5c35;
  cursor: pointer;
}
.login-page__terms-link {
  color: #1a5c35;
  font-weight: 600;
  text-decoration: underline;
}
.login-page__terms-link:hover {
  text-decoration: underline;
}
.login-page__copy {
  position: relative;
  z-index: 1;
  flex-shrink: 0;
  font-size: 0.75rem;
  color: rgba(255,255,255,0.2);
  margin: 0;
}
.login-page__right {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 2rem 1.5rem;
  background: #fafaf9;
}
.login-page__form-wrap {
  width: 100%;
  max-width: 24rem;
  min-width: 0;
}
.login-page__back {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 700;
  color: #6b7280;
  text-decoration: none;
  margin-bottom: 1.5rem;
}
.login-page__back:hover { color: #111; }
.login-page__title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #111;
  letter-spacing: -0.02em;
  margin: 0 0 0.25rem;
}
.login-page__no-account {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 1.5rem;
}
.login-page__register-link {
  font-weight: 700;
  color: #059669;
  text-decoration: none;
}
.login-page__register-link:hover { text-decoration: underline; color: #047857; }
.login-page__error {
  font-size: 0.875rem;
  color: #b91c1c;
  background: rgba(185,28,28,0.1);
  border: 1px solid rgba(185,28,28,0.2);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  /* Stay visible while scrolling long forms on mobile (error was easy to miss above the fold). */
  position: sticky;
  top: 0;
  z-index: 6;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
}
.login-page__error-title {
  display: block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #991b1b;
  margin-bottom: 0.35rem;
}
.login-page__error-text {
  margin: 0;
  line-height: 1.45;
  font-weight: 500;
}
.login-page__error--repeat {
  position: static;
  margin-top: 0.25rem;
  margin-bottom: 0.5rem;
  box-shadow: none;
}
.login-page__inline-error {
  font-size: 0.8125rem;
  color: #b91c1c;
  margin: 0.35rem 0 0;
  line-height: 1.4;
  font-weight: 600;
}
.login-page__inline-error--terms {
  margin-top: 0.5rem;
  padding-left: 1.75rem;
}
.login-page__input--error {
  border-color: #dc2626 !important;
  box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.2);
}
.login-page__input--error:focus {
  border-color: #b91c1c !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15);
}
.login-page__field--terms-highlight {
  padding: 0.65rem 0.75rem;
  margin: -0.35rem -0.75rem 0.35rem;
  border-radius: 0.5rem;
  border: 1px solid transparent;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.login-page__field--terms-highlight.login-page__field--terms-error {
  border-color: rgba(185, 28, 28, 0.45);
  background: rgba(185, 28, 28, 0.06);
}
.login-page__notice {
  font-size: 0.875rem;
  color: #14532d;
  background: rgba(26,92,53,0.08);
  border: 1px solid rgba(26,92,53,0.22);
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.login-page__form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}
.login-page__field { display: flex; flex-direction: column; gap: 0.375rem; min-width: 0; }
.login-page__label {
  font-size: 0.875rem;
  font-weight: 600;
  color: #111;
  min-width: 0;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
.login-page__label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  min-width: 0;
}
.login-page__label-row .login-page__label {
  flex: 1;
  min-width: 0;
  margin: 0;
}
.login-page__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.login-page__info-tip {
  position: relative;
  flex-shrink: 0;
}
.login-page__info-tip__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 50%;
  background: hsl(152 14% 92%);
  color: hsl(152 22% 32%);
  font-size: 0.6875rem;
  font-weight: 800;
  font-style: italic;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1;
  cursor: help;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.login-page__info-tip__btn:hover,
.login-page__info-tip__btn:focus {
  background: hsl(152 22% 85%);
  color: hsl(152 28% 22%);
  outline: none;
}
.login-page__info-tip__btn:focus-visible {
  box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.45);
}
.login-page__info-tip__bubble {
  position: absolute;
  z-index: 60;
  right: 0;
  bottom: calc(100% + 10px);
  width: min(18rem, calc(100vw - 2rem));
  max-width: min(18rem, calc(100vw - 2rem));
  padding: 0.65rem 0.75rem;
  border-radius: 0.5rem;
  background: #1f2937;
  color: #f9fafb;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.45;
  text-align: left;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}
.login-page__info-tip__bubble::after {
  content: "";
  position: absolute;
  top: 100%;
  right: 0.5rem;
  border: 7px solid transparent;
  border-top-color: #1f2937;
}
.login-page__info-tip:has(.login-page__info-tip__btn:hover) .login-page__info-tip__bubble,
.login-page__info-tip:has(.login-page__info-tip__btn:focus) .login-page__info-tip__bubble {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.login-page__input {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 2.75rem;
  padding: 0 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  background: #fff;
  color: #111;
  box-sizing: border-box;
}
.login-page__input::placeholder { color: #9ca3af; }
.login-page__input:focus {
  outline: none;
  border-color: #10b981;
  box-shadow: 0 0 0 3px rgba(16,185,129,0.15);
}
.login-page__password-wrap { position: relative; min-width: 0; max-width: 100%; }
.login-page__input--password { padding-right: 2.75rem; }
.login-page__eye {
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  width: 2rem;
  height: 2rem;
  border: none;
  background: none;
  color: #6b7280;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.login-page__eye:hover { color: #111; }
.login-page__eye .hidden { display: none; }
.login-page__submit {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 2.75rem;
  background: #059669;
  color: white;
  border: none;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s;
  box-sizing: border-box;
}
.login-page__submit:hover { background: #047857; }
.login-page__ad {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e5e7eb;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
  min-width: 0;
}
.login-page__ad .mapa-spot-panel__ads-wrapper,
.login-page__ad .mapa-spot-panel__ads-placeholder {
  max-width: 100%;
  width: 100%;
  min-width: 0;
}
.login-page__ad ins.adsbygoogle {
  display: block;
  max-width: 100% !important;
}
.login-page__ad .mapa-spot-panel__ads-label {
  font-size: 0.6875rem;
  color: #9ca3af;
}
.login-page__dev {
  border-top: 1px solid #e5e7eb;
  padding-top: 1.25rem;
  margin-top: 1.5rem;
}
.login-page__dev-title {
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #6b7280;
  margin: 0 0 0.75rem;
}
.login-page__dev-btns { display: flex; flex-direction: column; gap: 0.5rem; }
.login-page__dev-btn {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
  border-radius: 0.5rem;
  cursor: pointer;
  border: 1px solid transparent;
  transition: background 0.2s, border-color 0.2s;
}
.login-page__dev-btn--user {
  background: #fef9c3;
  color: #854d0e;
  border-color: #fde047;
}
.login-page__dev-btn--user:hover { background: #fef08a; }
.login-page__dev-btn--owner {
  background: #fce7f3;
  color: #9d174d;
  border-color: #f9a8d4;
}
.login-page__dev-btn--owner:hover { background: #fbcfe8; }
.login-page__dev-btn--admin {
  background: #fecaca;
  color: #991b1b;
  border-color: #f87171;
}
.login-page__dev-btn--admin:hover { background: #fca5a5; color: #7f1d1d; }

/* Promoter create account page (negócio creation) */
.promoter-create-page__eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: rgba(52, 211, 153, 0.8);
  margin: 0 0 0.5rem;
  text-transform: uppercase;
}
.promoter-create-page__benefits { margin-top: 0.5rem; }
.promoter-create-page__benefits li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: rgba(255,255,255,0.6);
  margin-bottom: 0.5rem;
}
.promoter-create-page__benefit-icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  background-color: #34d399;
  border-radius: 50%;
}
.promoter-create-page__benefit-icon--pin {
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
}
.promoter-create-page__benefit-icon--zap {
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E") center/contain no-repeat;
}
.promoter-create-page__benefit-icon--star {
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2'/%3E%3C/svg%3E") center/contain no-repeat;
}
.promoter-create-page__benefit-icon--calendar {
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E") center/contain no-repeat;
}
.promoter-create-page__benefit-icon--image {
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E") center/contain no-repeat;
}
.promoter-create-page__form-wrap { max-width: 28rem; }
.promoter-create-page__steps {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}
.promoter-create-page__step { display: flex; align-items: center; gap: 0.375rem; }
.promoter-create-page__step-line {
  flex: 1;
  min-width: 0.5rem;
  height: 1px;
  background: #e5e7eb;
}
.promoter-create-page__step-circle {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-weight: 800;
}
.promoter-create-page__step-circle--check {
  background: #10b981;
  color: white;
}
.promoter-create-page__step--done .promoter-create-page__step-label,
.promoter-create-page__step--current .promoter-create-page__step-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #059669;
}
.promoter-create-page__step--current .promoter-create-page__step-circle--num {
  background: #059669;
  color: white;
}
.promoter-create-page__step--pending .promoter-create-page__step-circle--num {
  background: #e5e7eb;
  color: #9ca3af;
}
.promoter-create-page__step--pending .promoter-create-page__step-label {
  font-size: 0.75rem;
  font-weight: 500;
  color: #9ca3af;
}
.promoter-create-page__card {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 1rem;
  padding: 1.5rem;
  margin-bottom: 1rem;
}
.promoter-create-page__card-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.promoter-create-page__card-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 1rem;
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.2);
  color: #047857;
  font-size: 1.5rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.promoter-create-page__card-title {
  font-size: 1.125rem;
  font-weight: 800;
  color: #111;
  margin: 0 0 0.125rem;
}
.promoter-create-page__card-username {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0;
}
.promoter-create-page__card-email {
  font-size: 0.75rem;
  color: #6b7280;
  margin: 0.25rem 0 0;
}
.promoter-create-page__card-desc {
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.6;
  margin: 0;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}
.promoter-create-page__next {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  border-radius: 0.75rem;
  padding: 1rem;
  margin-bottom: 1rem;
}
.promoter-create-page__next-title {
  font-size: 0.75rem;
  font-weight: 700;
  color: #047857;
  margin: 0 0 0.25rem;
}
.promoter-create-page__next-desc {
  font-size: 0.75rem;
  color: #059669;
  line-height: 1.5;
  margin: 0;
}
.promoter-create-page__form { margin-bottom: 1rem; }
.promoter-create-page__cta {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 800;
  border-radius: 1rem;
}
.promoter-create-page__cta-arrow { font-size: 1.25rem; }
.promoter-create-page__disclaimer {
  font-size: 0.6875rem;
  color: #6b7280;
  line-height: 1.5;
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  background: rgba(0,0,0,0.03);
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
}
.promoter-create-page__terms-link {
  font-weight: 700;
  color: #059669;
  text-decoration: none;
}
.promoter-create-page__terms-link:hover { text-decoration: underline; }
.promoter-create-page__have-account {
  font-size: 0.75rem;
  color: #6b7280;
  text-align: center;
  margin: 0;
}
.promoter-create-page__have-account a { font-weight: 700; }

/* Post-registration welcome modal — portal at body level (outside .main overflow) */
body.vc-welcome-modal--open,
html.vc-welcome-modal--open {
  overflow: hidden;
}
.vc-welcome-modal {
  position: fixed;
  inset: 0;
  z-index: 45000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(1rem, env(safe-area-inset-top, 0px)) max(1rem, env(safe-area-inset-right, 0px)) max(1rem, env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-left, 0px));
  box-sizing: border-box;
  font-family: var(--font-body, 'DM Sans', system-ui, -apple-system, sans-serif);
}
.vc-welcome-modal.hidden {
  display: none !important;
}
.vc-welcome-modal__scrim {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.58);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  animation: vc-welcome-scrim-in 0.35s ease-out both;
}
@keyframes vc-welcome-scrim-in {
  from { opacity: 0; }
  to { opacity: 1; }
}
.vc-welcome-modal__card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 26.5rem;
  border-radius: 1.375rem;
  padding: 1.75rem 1.5rem 1.5rem;
  background: linear-gradient(180deg, #ffffff 0%, #fafdfb 45%, #f4fbf6 100%);
  border: 1px solid rgba(26, 92, 53, 0.14);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.9) inset,
    0 4px 24px rgba(15, 23, 42, 0.06),
    0 32px 64px -28px rgba(15, 23, 42, 0.28),
    0 0 0 1px rgba(26, 92, 53, 0.06);
  animation: vc-welcome-card-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes vc-welcome-card-in {
  from {
    opacity: 0;
    transform: translateY(1rem) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.vc-welcome-modal__hero {
  position: relative;
  width: 3.5rem;
  height: 3.5rem;
  margin: 0 auto 1rem;
}
.vc-welcome-modal__hero-ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(26, 92, 53, 0.12), rgba(34, 197, 94, 0.18));
  box-shadow: 0 8px 24px rgba(26, 92, 53, 0.15);
}
.vc-welcome-modal__hero-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  font-weight: 800;
  color: #14532d;
}
.vc-welcome-modal__close {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 2.25rem;
  height: 2.25rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0.5rem;
  background: rgba(248, 250, 252, 0.95);
  color: #64748b;
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, color 0.2s;
}
.vc-welcome-modal__close:hover {
  background: #f1f5f9;
  color: #0f172a;
}
.vc-welcome-modal__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-align: center;
  color: #1a5c35;
}
.vc-welcome-modal__title {
  font-family: var(--font-display, 'Outfit', system-ui, sans-serif);
  margin: 0 0 0.75rem;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.03em;
  text-align: center;
  color: #0f172a;
}
.vc-welcome-modal__lead {
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.55;
  text-align: center;
  color: #475569;
}
.vc-welcome-modal__list {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0.85rem 1rem;
  border-radius: 0.875rem;
  background: rgba(26, 92, 53, 0.04);
  border: 1px solid rgba(26, 92, 53, 0.08);
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}
.vc-welcome-modal__list li {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #334155;
}
.vc-welcome-modal__check {
  flex-shrink: 0;
  width: 1.125rem;
  height: 1.125rem;
  margin-top: 0.08rem;
  border-radius: 0.3rem;
  background: linear-gradient(145deg, #1a5c35, #14532d);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(26, 92, 53, 0.35);
}
.vc-welcome-modal__actions {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.vc-welcome-modal__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.8125rem 1.25rem;
  border-radius: 0.625rem;
  font-size: 0.9375rem;
  font-weight: 700;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  box-sizing: border-box;
  transition: transform 0.12s ease, box-shadow 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}
.vc-welcome-modal__btn:active {
  transform: scale(0.99);
}
.vc-welcome-modal__btn--primary {
  background: linear-gradient(180deg, #1f6b40 0%, #1a5c35 100%);
  color: #fff;
  border-color: rgba(15, 61, 34, 0.35);
  box-shadow: 0 4px 14px rgba(26, 92, 53, 0.35);
}
.vc-welcome-modal__btn--primary:hover {
  box-shadow: 0 6px 20px rgba(26, 92, 53, 0.42);
  filter: brightness(1.03);
}
.vc-welcome-modal__btn--ghost {
  background: transparent;
  color: #1a5c35;
  border-color: rgba(26, 92, 53, 0.35);
}
.vc-welcome-modal__btn--ghost:hover {
  background: rgba(26, 92, 53, 0.06);
  border-color: rgba(26, 92, 53, 0.5);
}
.vc-welcome-modal__footnote {
  margin: 1rem 0 0;
  font-size: 0.6875rem;
  line-height: 1.45;
  color: #64748b;
  text-align: center;
}
@media (max-width: 480px) {
  .vc-welcome-modal__card {
    padding: 1.5rem 1.25rem 1.35rem;
    border-radius: 1.25rem;
  }
  .vc-welcome-modal__title {
    font-size: 1.35rem;
  }
}

/* Register for claim (reivindicar) — same two-column style, gate card */
.claim-register-page__card { margin-bottom: 1.25rem; }
.claim-register-page__lead {
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.5rem;
  line-height: 1.4;
}
.claim-register-page__sub {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0;
  line-height: 1.5;
}
.claim-register-page__cta { display: inline-flex; text-decoration: none; }

/* Promoter dashboard — full 7-tab layout (Replit style) */
.promoter-dashboard-wrap {
  max-width: 72rem;
  margin: 0 auto;
  padding: 2rem 1rem;
  background: #f8f8f8;
  min-height: 60vh;
  border-radius: 0.5rem;
}
.promoter-dashboard-header {
  margin-bottom: 1.5rem;
}
.promoter-dashboard-eyebrow {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7280;
  margin: 0 0 0.25rem;
}
.promoter-dashboard-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #111;
  margin: 0;
}

/* Promoter first-visit onboarding wizard: lock page scroll (html + nested .promoter-main-scroll) */
html.promoter-onboarding-modal--open,
body.promoter-onboarding-modal--open {
  overflow: hidden;
  height: 100%;
}
body.promoter-onboarding-modal--open .promoter-main-scroll {
  overflow: hidden !important;
  overscroll-behavior: none;
}
/* Project has no global .hidden; inactive steps must not stack in the scroll area */
.promoter-onboarding-modal .promoter-onboarding-panel.hidden,
.promoter-onboarding-modal [data-onb-panel][hidden] {
  display: none !important;
}
.promoter-onboarding-modal .promoter-onboarding-modal__progress.hidden,
.promoter-onboarding-modal .promoter-onboarding-modal__progress[hidden] {
  display: none !important;
}
.promoter-onboarding-modal .promoter-onboarding-modal__sub.hidden,
.promoter-onboarding-modal #promoter-onboarding-sub.hidden {
  display: none !important;
}
/* Only the chosen fluxo (local / evento / guia) is mounted; others stay out of the scroll layout */
.promoter-onboarding-modal [data-onb-track][hidden] {
  display: none !important;
}
.promoter-onboarding-modal.admin-modal {
  z-index: 45500;
  align-items: flex-start;
  padding-top: max(1.25rem, env(safe-area-inset-top, 0px));
}
.promoter-onboarding-modal__backdrop {
  background: rgba(15, 23, 42, 0.52);
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
}
.promoter-onboarding-modal__box.admin-modal__box {
  max-width: min(44rem, calc(100vw - 1.5rem));
  /* Single scroll: only .promoter-onboarding-modal__body scrolls (not the outer .admin-modal__box). */
  display: flex;
  flex-direction: column;
  max-height: min(90vh, calc(100dvh - 2.5rem));
  overflow: hidden;
  min-height: 0;
  border-radius: 1.35rem;
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow:
    0 4px 6px -2px rgba(15, 23, 42, 0.04),
    0 32px 64px -20px rgba(15, 23, 42, 0.35),
    0 0 0 1px rgba(15, 23, 42, 0.04) inset,
    0 1px 0 rgba(255, 255, 255, 0.85) inset;
  animation: promoter-onboarding-in 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes promoter-onboarding-in {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.promoter-onboarding-modal__header.admin-modal__header {
  flex-shrink: 0;
  position: relative;
  padding: 1.65rem 1.5rem 1.35rem;
  border-radius: 1.35rem 1.35rem 0 0;
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(167, 243, 208, 0.55) 0%, transparent 55%),
    radial-gradient(90% 70% at 100% 0%, rgba(196, 181, 253, 0.22) 0%, transparent 50%),
    linear-gradient(165deg, #f8fafc 0%, #f1f5f9 42%, #ffffff 100%);
  border-bottom: 1px solid rgba(148, 163, 184, 0.2);
  /* Stack title block + progress; avoid global header flex putting the × in the middle */
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}
.promoter-onboarding-modal--track-guide .promoter-onboarding-modal__header.admin-modal__header {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(253, 230, 138, 0.45) 0%, transparent 52%),
    radial-gradient(90% 70% at 100% 0%, rgba(167, 243, 208, 0.35) 0%, transparent 48%),
    linear-gradient(165deg, #fffbeb 0%, #f8fafc 50%, #ffffff 100%);
  border-bottom-color: rgba(148, 163, 184, 0.2);
}
.promoter-onboarding-modal__header-row {
  display: block;
  width: 100%;
  max-width: 100%;
  padding-right: 2.5rem;
  box-sizing: border-box;
}
.promoter-onboarding-modal__headline {
  min-width: 0;
  padding-right: 0;
}
.promoter-onboarding-modal__header .promoter-onboarding-modal__close {
  position: absolute;
  top: 1.2rem;
  right: 1.15rem;
  flex: none;
  margin: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  color: #9ca3af;
  background: transparent;
  opacity: 1;
  z-index: 3;
  transition: color 0.15s ease, background 0.15s ease;
}
.promoter-onboarding-modal__header .promoter-onboarding-modal__close:hover {
  color: #4b5563;
  background: rgba(0, 0, 0, 0.04);
}
.promoter-onboarding-modal__eyebrow {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  font-size: 0.625rem;
  font-weight: 700;
  font-family: ui-sans-serif, system-ui, sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #0f766e;
  margin: 0 0 0.65rem;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(204, 251, 241, 0.95), rgba(167, 243, 208, 0.65));
  border: 1px solid rgba(45, 212, 191, 0.35);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}
.promoter-onboarding-modal__title {
  font-size: clamp(1.35rem, 3.5vw, 1.6rem);
  font-weight: 600;
  font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
  color: #0f172a;
  line-height: 1.22;
  letter-spacing: -0.03em;
  margin: 0;
}
.promoter-onboarding-modal__sub {
  font-size: 0.875rem;
  color: #64748b;
  margin: 0.75rem 0 0;
  line-height: 1.5;
  max-width: 38rem;
}
.promoter-onboarding-modal__progress {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  row-gap: 0.35rem;
  margin-top: 1rem;
  justify-content: flex-start;
  align-items: center;
}
.promoter-onboarding-modal__progress--compact {
  gap: 0.3rem;
  row-gap: 0.28rem;
}
.promoter-onboarding-modal__progress--compact .promoter-onboarding-modal__progress-dot {
  width: 0.4rem;
  height: 0.4rem;
}
.promoter-onboarding-modal__progress-dot {
  width: 0.5rem;
  height: 0.5rem;
  flex-shrink: 0;
  border-radius: 999px;
  background: #e2e8f0;
  transition: background 0.2s, transform 0.2s;
}
.promoter-onboarding-modal__progress-dot--active {
  background: linear-gradient(135deg, #15803d, #22c55e);
  transform: scale(1.25);
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
}
.promoter-onboarding-modal__body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0 1.5rem 1.5rem;
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  background: linear-gradient(180deg, #fafbfc 0%, #ffffff 28%);
}
.promoter-onboarding-panel {
  padding-top: 0.25rem;
}
.promoter-onboarding-panel--intro {
  padding-top: 0.5rem;
}
.promoter-onboarding-intro__lead {
  font-size: 0.875rem;
  line-height: 1.55;
  color: #64748b;
  margin: 0 0 1.1rem;
  max-width: 36rem;
  text-wrap: balance;
}
@media (min-width: 640px) {
  .promoter-onboarding-intro__lead {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.35rem;
  }
}
/* Intro: one column on small screens, three tiles side by side from ~640px */
.promoter-onboarding-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  width: 100%;
}
@media (min-width: 640px) {
  .promoter-onboarding-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
  }
}
.promoter-onboarding-type-card {
  position: relative;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.9rem;
  text-align: left;
  width: 100%;
  min-width: 0;
  padding: 1rem 1rem 1rem 1.05rem;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 1.05rem;
  background: rgba(255, 255, 255, 0.92);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 8px 24px -12px rgba(15, 23, 42, 0.12);
  cursor: pointer;
  overflow: hidden;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.2s ease, background 0.22s ease;
}
.promoter-onboarding-type-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  border-radius: 1.05rem 0 0 1.05rem;
  background: #14b8a6;
  opacity: 0.85;
  transition: width 0.2s ease, opacity 0.2s ease;
}
.promoter-onboarding-type-card--spot::before {
  background: linear-gradient(180deg, #0d9488, #5eead4);
}
.promoter-onboarding-type-card--event::before {
  background: linear-gradient(180deg, #ea580c, #fdba74);
}
.promoter-onboarding-type-card--guide::before {
  background: linear-gradient(180deg, #4f46e5, #a5b4fc);
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    padding: 1.35rem 0.85rem 1.25rem;
    min-height: 11.25rem;
    gap: 0.85rem;
  }
  .promoter-onboarding-type-card::before {
    left: 0;
    right: 0;
    top: 0;
    bottom: auto;
    width: 100%;
    height: 4px;
    border-radius: 1.05rem 1.05rem 0 0;
  }
}
.promoter-onboarding-type-card:hover {
  border-color: rgba(100, 116, 139, 0.45);
  background: #fff;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 1) inset,
    0 20px 40px -24px rgba(15, 23, 42, 0.28),
    0 0 0 1px rgba(15, 23, 42, 0.04);
  transform: translateY(-3px);
}
.promoter-onboarding-type-card:hover::before {
  opacity: 1;
}
.promoter-onboarding-type-card:active {
  transform: translateY(-1px);
}
.promoter-onboarding-type-card:focus-visible {
  outline: 2px solid #0d9488;
  outline-offset: 3px;
}
.promoter-onboarding-type-card--event:focus-visible {
  outline-color: #ea580c;
}
.promoter-onboarding-type-card--guide:focus-visible {
  outline-color: #4f46e5;
}
.promoter-onboarding-type-card__icon-wrap {
  flex: 0 0 auto;
  width: 3.35rem;
  height: 3.35rem;
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #ecfdf5 0%, #a7f3d0 100%);
  border: 1px solid rgba(45, 212, 191, 0.35);
  box-shadow:
    0 4px 12px rgba(13, 148, 136, 0.15),
    0 1px 0 rgba(255, 255, 255, 0.75) inset;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.promoter-onboarding-type-card--event .promoter-onboarding-type-card__icon-wrap {
  background: linear-gradient(145deg, #fff7ed 0%, #fed7aa 100%);
  border-color: rgba(251, 146, 60, 0.45);
  box-shadow:
    0 4px 12px rgba(234, 88, 12, 0.14),
    0 1px 0 rgba(255, 255, 255, 0.8) inset;
}
.promoter-onboarding-type-card--guide .promoter-onboarding-type-card__icon-wrap {
  background: linear-gradient(145deg, #eef2ff 0%, #c7d2fe 100%);
  border-color: rgba(129, 140, 248, 0.5);
  box-shadow:
    0 4px 12px rgba(79, 70, 229, 0.16),
    0 1px 0 rgba(255, 255, 255, 0.85) inset;
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card__icon-wrap {
    width: 3.85rem;
    height: 3.85rem;
    border-radius: 1.1rem;
  }
}
.promoter-onboarding-type-card:hover .promoter-onboarding-type-card__icon-wrap {
  transform: scale(1.04);
}
.promoter-onboarding-type-card__chev {
  margin-left: auto;
  flex: 0 0 auto;
  font-size: 1.1rem;
  font-weight: 600;
  color: #94a3b8;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 0.2s ease, transform 0.2s ease, color 0.2s ease;
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card__chev {
    display: none;
  }
}
.promoter-onboarding-type-card:hover .promoter-onboarding-type-card__chev {
  opacity: 1;
  transform: translateX(0);
  color: #64748b;
}
.promoter-onboarding-type-card__icon {
  font-size: 1.5rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card__icon {
    font-size: 1.65rem;
  }
}
.promoter-onboarding-type-card__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  min-width: 0;
  flex: 1 1 auto;
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card__text {
    align-items: center;
    flex: 0 1 auto;
    width: 100%;
  }
}
.promoter-onboarding-type-card__label {
  font-size: 0.9375rem;
  font-weight: 600;
  font-family: ui-sans-serif, system-ui, sans-serif;
  color: #0f172a;
  line-height: 1.25;
  letter-spacing: -0.025em;
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card__label {
    font-size: 0.95rem;
  }
}
.promoter-onboarding-type-card__hint {
  font-size: 0.78rem;
  color: #64748b;
  margin: 0;
  line-height: 1.4;
  max-width: 12rem;
}
@media (min-width: 640px) {
  .promoter-onboarding-type-card__hint {
    max-width: none;
  }
}
.promoter-onboarding-modal__footer {
  margin-top: 1.25rem;
  padding-top: 0.5rem;
  display: flex;
  justify-content: center;
}
.promoter-onboarding-modal__footer--intro {
  margin-top: 0.85rem;
  padding-top: 0;
}
@media (min-width: 640px) {
  .promoter-onboarding-modal__footer--intro {
    margin-top: 1.1rem;
  }
}
.promoter-onboarding-modal__skip-link {
  margin: 0;
  padding: 0.55rem 1.15rem;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: rgba(255, 255, 255, 0.7);
  font-size: 0.8125rem;
  font-weight: 600;
  font-family: ui-sans-serif, system-ui, sans-serif;
  color: #64748b;
  text-decoration: none;
  cursor: pointer;
  border-radius: 999px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
  transition: color 0.18s ease, background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.promoter-onboarding-modal__skip-link:hover {
  color: #334155;
  background: #f8fafc;
  border-color: rgba(100, 116, 139, 0.5);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}
.promoter-onboarding-modal__step-label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  font-size: 0.625rem;
  font-weight: 700;
  font-family: ui-sans-serif, system-ui, sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #0f766e;
  margin: 0 0 0.55rem;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(204, 251, 241, 0.95), rgba(236, 253, 245, 0.88));
  border: 1px solid rgba(45, 212, 191, 0.38);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}
.promoter-onboarding-track[data-onb-track="event"]:not([hidden]) .promoter-onboarding-modal__step-label {
  color: #c2410c;
  background: linear-gradient(135deg, rgba(255, 247, 237, 0.98), rgba(255, 237, 213, 0.9));
  border-color: rgba(251, 146, 60, 0.42);
}
.promoter-onboarding-modal__lead {
  font-size: 0.9375rem;
  font-weight: 500;
  font-family: ui-sans-serif, system-ui, sans-serif;
  color: #334155;
  margin: 0 0 1.15rem;
  line-height: 1.55;
  max-width: 38rem;
  text-wrap: balance;
}

/* Onboarding: spot/event steps (form shells, inputs, drop zones) */
.promoter-onboarding-modal .spot-form-replit__block--muted,
.promoter-onboarding-modal .spot-form-replit__location-box,
.promoter-onboarding-modal .spot-form-replit__main-image-zone {
  box-sizing: border-box;
}
.promoter-onboarding-modal .spot-form-replit__block--muted,
.promoter-onboarding-modal .spot-form-replit__location-box {
  border-radius: 1.05rem;
  border: 1px solid rgba(148, 163, 184, 0.38);
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.96) 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 12px 36px -22px rgba(15, 23, 42, 0.14);
  padding: 1.05rem 1.1rem;
  margin-bottom: 0.65rem;
}
.promoter-onboarding-modal .spot-form-replit__section-title,
.promoter-onboarding-modal .spot-form-replit__location-heading {
  font-size: 0.9rem;
  font-weight: 700;
  color: #0f172a;
  letter-spacing: -0.02em;
  margin: 0 0 0.85rem;
}
.promoter-onboarding-modal .spot-form-replit__label,
.promoter-onboarding-modal .spot-form-replit__label--sm {
  color: #475569;
  font-weight: 600;
}
.promoter-onboarding-modal .spot-form-replit__input,
.promoter-onboarding-modal .spot-form-replit__textarea,
.promoter-onboarding-modal .spot-form-replit__select,
.promoter-onboarding-modal select.spot-form-replit__input,
.promoter-onboarding-modal .event-form__input,
.promoter-onboarding-modal .event-form__textarea,
.promoter-onboarding-modal .event-form__select {
  border-radius: 0.75rem !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.promoter-onboarding-modal .spot-form-replit__input:focus,
.promoter-onboarding-modal .spot-form-replit__textarea:focus,
.promoter-onboarding-modal .spot-form-replit__select:focus,
.promoter-onboarding-modal select.spot-form-replit__input:focus,
.promoter-onboarding-modal .event-form__input:focus,
.promoter-onboarding-modal .event-form__textarea:focus,
.promoter-onboarding-modal .event-form__select:focus {
  border-color: #0d9488 !important;
  box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.14) !important;
  outline: none;
}
.promoter-onboarding-track[data-onb-track="event"]:not([hidden]) .promoter-onboarding-modal .event-form__input:focus,
.promoter-onboarding-track[data-onb-track="event"]:not([hidden]) .promoter-onboarding-modal .event-form__textarea:focus,
.promoter-onboarding-track[data-onb-track="event"]:not([hidden]) .promoter-onboarding-modal .event-form__select:focus {
  border-color: #ea580c !important;
  box-shadow: 0 0 0 3px rgba(234, 88, 12, 0.14) !important;
}
.promoter-onboarding-modal .spot-form-replit__map-pick-hint,
.promoter-onboarding-modal .spot-form-replit__location-warning {
  font-size: 0.8rem;
  line-height: 1.45;
  color: #64748b;
  padding: 0.65rem 0.75rem;
  border-radius: 0.75rem;
  background: rgba(241, 245, 249, 0.85);
  border: 1px solid rgba(148, 163, 184, 0.25);
  margin: 0.5rem 0;
}
.promoter-onboarding-modal .spot-form-replit__location-warning--address-hint {
  background: rgba(255, 251, 235, 0.9);
  border-color: rgba(251, 191, 36, 0.35);
  color: #713f12;
}
.promoter-onboarding-modal .spot-form-replit__apply-coords-btn,
.promoter-onboarding-modal .event-form__gps-btn {
  border-radius: 0.65rem;
  font-weight: 600;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.promoter-onboarding-modal .spot-form-replit__schedule-row {
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.15);
}
.promoter-onboarding-modal .spot-form-replit__schedule-row:last-child {
  border-bottom: none;
}
.promoter-onboarding-modal .spot-form-replit__main-image-zone {
  border-radius: 1.05rem;
  border: 2px dashed rgba(148, 163, 184, 0.5);
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.promoter-onboarding-modal .spot-form-replit__main-image-zone:hover,
.promoter-onboarding-modal .spot-form-replit__main-image-zone:focus {
  border-color: rgba(13, 148, 136, 0.45);
  background: #fff;
  box-shadow: 0 8px 28px -16px rgba(13, 148, 136, 0.2);
}
.promoter-onboarding-modal .spot-form-replit__main-image-text {
  font-weight: 600;
  color: #334155;
}
.promoter-onboarding-modal .spot-form-replit__main-image-spec {
  font-size: 0.78rem;
  color: #64748b;
}
.promoter-onboarding-modal .guide-photo-drop-zone,
.promoter-onboarding-modal .guide-journey-drop-zone {
  border-radius: 1.05rem;
  border: 2px dashed rgba(129, 140, 248, 0.45);
  background: linear-gradient(180deg, rgba(238, 242, 255, 0.5) 0%, #ffffff 100%);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.promoter-onboarding-modal .guide-photo-drop-zone:hover,
.promoter-onboarding-modal .guide-journey-drop-zone:hover {
  border-color: rgba(79, 70, 229, 0.5);
  box-shadow: 0 10px 32px -18px rgba(79, 70, 229, 0.18);
}
.promoter-onboarding-modal .guide-photo-drop-zone__text,
.promoter-onboarding-modal .guide-journey-drop-zone__text {
  font-weight: 600;
  color: #3730a3;
}
.promoter-onboarding-modal .guide-photo-drop-zone__spec,
.promoter-onboarding-modal .guide-journey-drop-zone__spec {
  color: #6366f1;
  opacity: 0.9;
}
.promoter-onboarding-modal .guide-form__price-sep {
  align-self: flex-end;
  margin-bottom: 0.65rem;
  font-weight: 700;
  color: #94a3b8;
}

/* Guia: passos mais acolhedores (hero + superfície do formulário) */
.promoter-onboarding-panel--guide {
  padding-top: 0.15rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
@media (max-width: 420px) {
  .promoter-onboarding-guide-hero {
    flex-direction: column;
    align-items: flex-start;
  }
  .promoter-onboarding-guide-hero__emoji {
    margin-bottom: 0.15rem;
  }
}
.promoter-onboarding-guide-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 1.2rem;
  padding: 1.15rem 1.2rem 1.15rem;
  border-radius: 1.15rem;
  background:
    radial-gradient(100% 80% at 0% 0%, rgba(167, 243, 208, 0.35) 0%, transparent 55%),
    radial-gradient(90% 70% at 100% 0%, rgba(196, 181, 253, 0.2) 0%, transparent 50%),
    linear-gradient(145deg, rgba(255, 255, 255, 0.97) 0%, rgba(248, 250, 252, 0.99) 100%);
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 16px 40px -22px rgba(15, 23, 42, 0.18);
}
.promoter-onboarding-guide-hero__emoji {
  flex: 0 0 auto;
  width: 3.25rem;
  height: 3.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.7rem;
  line-height: 1;
  border-radius: 1.05rem;
  background: linear-gradient(160deg, #ffffff 0%, #f1f5f9 100%);
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
.promoter-onboarding-guide-hero__copy {
  flex: 1 1 auto;
  min-width: 0;
}
.promoter-onboarding-guide-hero__step {
  display: inline-flex;
  align-items: center;
  font-size: 0.625rem;
  font-weight: 700;
  font-family: ui-sans-serif, system-ui, sans-serif;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #4338ca;
  background: linear-gradient(135deg, rgba(238, 242, 255, 0.95), rgba(224, 231, 255, 0.85));
  padding: 0.32rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(129, 140, 248, 0.4);
  margin: 0 0 0.5rem;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.85) inset;
}
.promoter-onboarding-guide-hero__title {
  font-size: 1.2rem;
  font-weight: 700;
  font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
  color: #0f172a;
  line-height: 1.25;
  letter-spacing: -0.03em;
  margin: 0 0 0.45rem;
}
.promoter-onboarding-guide-hero__blurb {
  font-size: 0.875rem;
  font-weight: 400;
  color: #475569;
  line-height: 1.58;
  margin: 0;
  text-wrap: balance;
}
.promoter-onboarding-guide-surface {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 1.2rem 1.2rem 1.25rem;
  border-radius: 1.1rem;
  background: linear-gradient(175deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.96) 100%);
  border: 1px solid rgba(148, 163, 184, 0.32);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.95) inset,
    0 10px 36px -24px rgba(15, 23, 42, 0.12);
  margin-bottom: 0.35rem;
}
.promoter-onboarding-panel--guide .promoter-onboarding-field,
.promoter-onboarding-panel--guide .promoter-onboarding-field-row {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.promoter-onboarding-panel--guide .promoter-onboarding-field-row {
  margin-bottom: 0.85rem;
}
.promoter-onboarding-panel--guide .promoter-onboarding-field-row .promoter-onboarding-field,
.promoter-onboarding-panel--guide .promoter-onboarding-field-row .promoter-onboarding-field--tight {
  margin-bottom: 0;
}
.promoter-onboarding-panel--guide .promoter-onboarding-field--tight {
  margin-bottom: 0.85rem;
}
.promoter-onboarding-panel--guide .promoter-onboarding-field--tight:last-child {
  margin-bottom: 0;
}
.promoter-onboarding-field__req {
  color: #166534;
  font-weight: 800;
}
.promoter-onboarding-field__hint {
  font-size: 0.75rem;
  color: #64748b;
  line-height: 1.45;
  margin: -0.15rem 0 0.4rem;
}
.promoter-onboarding-panel--guide .promoter-onboarding-guide-input,
.promoter-onboarding-panel--guide .promoter-onboarding-guide-textarea {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-family: inherit;
  border-radius: 0.75rem;
  border-color: rgba(15, 23, 42, 0.1);
  padding: 0.65rem 0.95rem;
  font-size: 0.9375rem;
  line-height: 1.45;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.promoter-onboarding-panel--guide .promoter-onboarding-guide-textarea {
  min-height: 7.25rem;
  resize: vertical;
}
.promoter-onboarding-panel--guide .promoter-onboarding-guide-input::placeholder,
.promoter-onboarding-panel--guide .promoter-onboarding-guide-textarea::placeholder {
  color: #94a3b8;
}
.promoter-onboarding-modal__nav--guide {
  margin-top: 1.35rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.18);
  background: #fff;
  border-radius: 0 0 0.35rem 0.35rem;
  padding-left: 0.15rem;
  padding-right: 0.15rem;
}
.promoter-onboarding-guide-spots-title {
  margin-bottom: 0.35rem;
}
.promoter-onboarding-guide-spots-hint {
  margin-top: 0;
}
.promoter-onboarding-guide-block--flush {
  margin-bottom: 0;
}
.promoter-onboarding-guide-spots.guide-spots-box {
  max-height: 10rem;
}

/* No nested scroll: categories grow here; only .promoter-onboarding-modal__body scrolls */
.promoter-onboarding-modal__cat-scroll {
  overflow-x: hidden;
  overflow-y: visible;
  padding: 0.65rem 0.6rem;
  margin: 0 0 0.65rem;
  border-radius: 1rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(148, 163, 184, 0.28);
  background: linear-gradient(175deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.94));
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
/* Modal is narrow: never use the full-spot-form 5-column grid (causes horizontal scroll). */
.promoter-onboarding-modal__cat-scroll .spot-form-replit__category-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
@media (min-width: 400px) {
  .promoter-onboarding-modal__cat-scroll .spot-form-replit__category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.promoter-onboarding-modal__cat-scroll .spot-form-replit__cat-btn {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.promoter-onboarding-modal__cat-scroll .spot-form-replit__cat-label {
  max-width: 100%;
}
.promoter-onboarding-modal__cat-scroll .spot-form-replit__cat-btn.selected,
.promoter-onboarding-modal__cat-scroll .spot-form-replit__cat-btn[aria-pressed="true"] {
  transform: none;
  border-color: rgba(13, 148, 136, 0.45) !important;
  box-shadow: 0 4px 16px rgba(13, 148, 136, 0.12);
}
.promoter-onboarding-modal .guide-form__checkbox-row,
.promoter-onboarding-modal .guide-form__cadastur-choice .guide-form__checkbox-row {
  padding: 0.55rem 0.65rem;
  border-radius: 0.75rem;
  border: 1px solid transparent;
  transition: background 0.15s ease, border-color 0.15s ease;
}
.promoter-onboarding-modal .guide-form__checkbox-row:hover {
  background: rgba(248, 250, 252, 0.95);
  border-color: rgba(148, 163, 184, 0.25);
}
.promoter-onboarding-panel--guide .promoter-onboarding-guide-input:focus,
.promoter-onboarding-panel--guide .promoter-onboarding-guide-textarea:focus {
  border-color: #6366f1 !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.18) !important;
}
.promoter-onboarding-modal__body .spot-form-replit {
  min-width: 0;
  max-width: 100%;
}
.promoter-onboarding-modal__pick-map.promoter-pick-map {
  height: min(220px, 42vh);
  min-height: 12.5rem;
  margin-bottom: 0.45rem;
  /* Keep Leaflet compositing from painting over the sticky footer while scrolling */
  position: relative;
  z-index: 0;
  isolation: isolate;
}
.promoter-onboarding-field {
  margin-bottom: 1rem;
}
.promoter-onboarding-field__label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  font-family: ui-sans-serif, system-ui, sans-serif;
  color: #334155;
  margin-bottom: 0.4rem;
  letter-spacing: -0.01em;
}
.promoter-onboarding-modal .promoter-onboarding-field .event-form__input,
.promoter-onboarding-modal .promoter-onboarding-field .event-form__textarea,
.promoter-onboarding-modal .promoter-onboarding-field .event-form__select {
  border-radius: 0.75rem;
}
.promoter-onboarding-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.promoter-onboarding-field-row .promoter-onboarding-field {
  margin-bottom: 1rem;
}
.promoter-onboarding-modal__hint {
  font-size: 0.78rem;
  color: #94a3b8;
  margin: -0.35rem 0 1rem;
  line-height: 1.4;
}
.promoter-onboarding-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: #475569;
  margin: 0 0 1rem;
  cursor: pointer;
}
.promoter-onboarding-modal__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.35rem;
  padding-top: 1.1rem;
  padding-bottom: 0.2rem;
  border-top: 1px solid rgba(148, 163, 184, 0.22);
  /* Opaque bar: a transparent sticky gradient let the map read as covering the buttons while scrolling */
  background: #fff;
  box-shadow: 0 -8px 20px rgba(255, 255, 255, 0.98);
  position: sticky;
  bottom: 0;
  z-index: 120;
}
.promoter-onboarding-modal__nav .btn {
  min-height: 2.65rem;
  padding-left: 1.2rem;
  padding-right: 1.2rem;
  border-radius: 0.8rem;
  font-weight: 600;
  font-family: ui-sans-serif, system-ui, sans-serif;
}
.promoter-onboarding-modal__nav .btn--primary {
  box-shadow: 0 4px 16px rgba(13, 148, 136, 0.22);
}
.promoter-onboarding-modal__nav .btn--outline {
  border-color: rgba(148, 163, 184, 0.55);
  background: rgba(255, 255, 255, 0.85);
}
.promoter-onboarding-modal__nav .btn--outline:hover {
  border-color: rgba(100, 116, 139, 0.65);
  background: #fff;
}
.promoter-onboarding-done {
  text-align: center;
  padding: 1.75rem 1rem 0.5rem;
}
.promoter-onboarding-done__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(204, 251, 241, 0.95), rgba(167, 243, 208, 0.75));
  border: 1px solid rgba(45, 212, 191, 0.45);
  color: #047857;
  font-size: 1.55rem;
  font-weight: 800;
  margin-bottom: 1.05rem;
  box-shadow: 0 8px 28px -12px rgba(13, 148, 136, 0.35), 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}
.promoter-onboarding-done__title {
  font-size: 1.35rem;
  font-weight: 700;
  font-family: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
  color: #0f172a;
  margin: 0 0 0.5rem;
  letter-spacing: -0.03em;
}
.promoter-onboarding-done__text {
  font-size: 0.92rem;
  color: #64748b;
  line-height: 1.55;
  margin: 0 0 1.35rem;
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
}
.promoter-onboarding-done .btn--primary {
  border-radius: 0.8rem;
  min-height: 2.65rem;
  padding-left: 1.35rem;
  padding-right: 1.35rem;
  font-weight: 600;
  box-shadow: 0 4px 16px rgba(13, 148, 136, 0.2);
}
@media (max-width: 520px) {
  .promoter-onboarding-field-row {
    grid-template-columns: 1fr;
  }
}

.promoter-dashboard-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-bottom: 1.5rem;
  padding: 0.25rem;
  background: #fff;
  border-radius: 0.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.promoter-tab {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #4b5563;
  background: transparent;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  position: relative;
}
.promoter-tab:hover {
  color: #111;
  background: #f3f4f6;
}
.promoter-tab.active {
  background: #34A853;
  color: white;
}
.promoter-tab__icon { font-size: 1rem; }
.promoter-tab__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  background: #FF7F00;
  color: white;
  border-radius: 9999px;
  margin-left: 0.25rem;
}
.promoter-tab__badge.hidden { display: none !important; }
.promoter-tab.active .promoter-tab__badge {
  background: rgba(255,255,255,0.95);
  color: #FF7F00;
}
.promoter-panel { display: block; }
.promoter-panel.hidden { display: none !important; }
.promoter-panel__heading {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.25rem;
}
.promoter-panel__sub {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 1rem;
}
.promoter-panel__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.promoter-panel__count {
  font-size: 0.875rem;
  color: #6b7280;
}
.promoter-empty {
  padding: 2rem;
  text-align: center;
  color: #6b7280;
  font-size: 0.9rem;
}

/* Desempenho panel — Replit design */
.promoter-panel--desempenho { padding-top: 0; }
.promoter-desempenho-header { margin-bottom: 1.25rem; }
.promoter-desempenho__title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #1f2937;
  margin: 0 0 0.25rem;
  letter-spacing: -0.02em;
}
.promoter-desempenho__sub {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0;
}

/* Empty state — Replit: card with icon, title, subtitle */
.promoter-analytics-empty {
  background: #fff;
  border: 1px solid rgba(229, 231, 235, 0.8);
  border-radius: 1rem;
  padding: 2.5rem 2rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.promoter-analytics-empty__icon { font-size: 2.5rem; }
.promoter-analytics-empty__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
}
.promoter-analytics-empty__sub {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0;
  max-width: 28rem;
}

/* Analytics cards — Replit: white card, 3 colored metric boxes, progress bar */
.promoter-analytics-list { display: flex; flex-direction: column; gap: 1rem; }
.promoter-analytics-card {
  background: #fff;
  border: 1px solid rgba(229, 231, 235, 0.8);
  border-radius: 1rem;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.promoter-analytics-card__name {
  font-size: 1rem;
  font-weight: 800;
  color: #1f2937;
  margin: 0;
}
.promoter-analytics-card__metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
}
.promoter-metric {
  padding: 0.75rem;
  border-radius: 0.75rem;
  text-align: center;
  border: 1px solid transparent;
}
.promoter-metric--views {
  background: rgba(219, 234, 254, 0.6);
  border-color: rgba(191, 219, 254, 0.8);
}
.promoter-metric--views .promoter-metric__num { color: #2563eb; }
.promoter-metric--whatsapp {
  background: rgba(220, 252, 231, 0.6);
  border-color: rgba(187, 247, 208, 0.8);
}
.promoter-metric--whatsapp .promoter-metric__num { color: #16a34a; }
.promoter-metric--site {
  background: rgba(237, 233, 254, 0.6);
  border-color: rgba(221, 214, 254, 0.8);
}
.promoter-metric--site .promoter-metric__num { color: #7c3aed; }
.promoter-metric__num {
  display: block;
  font-size: 1.5rem;
  font-weight: 800;
  margin: 0 0 0.2rem;
  line-height: 1.2;
}
.promoter-metric__label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #6b7280;
  margin: 0;
}
.promoter-analytics-card__rate-wrap { margin-top: 0.25rem; }
.promoter-analytics-card__rate-label {
  font-size: 0.75rem;
  font-weight: 700;
  color: #6b7280;
  margin: 0 0 0.35rem;
}
.promoter-analytics-card__rate-bar {
  height: 0.5rem;
  background: #f3f4f6;
  border-radius: 9999px;
  overflow: hidden;
  margin-bottom: 0.35rem;
}
.promoter-analytics-card__rate-fill {
  height: 100%;
  background: #22c55e;
  border-radius: 9999px;
  transition: width 0.2s ease;
}
.promoter-analytics-card__rate-pct {
  font-size: 0.75rem;
  color: #6b7280;
  margin: 0;
}

/* Spots grid — 2x2 layout (reference) */
.promoter-spots-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
@media (max-width: 640px) {
  .promoter-spots-grid { grid-template-columns: 1fr; }
}
/* Painel do promotor — cards de locais (estilo destaque com foto) */
.promoter-spot-card.promoter-spot-card--destaque {
  position: relative;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(15, 23, 42, 0.04),
    0 10px 28px -8px rgba(15, 23, 42, 0.1);
  transition: box-shadow 0.22s ease, transform 0.2s ease, border-color 0.2s ease;
}
.promoter-spot-card.promoter-spot-card--destaque:hover {
  border-color: rgba(234, 179, 8, 0.45);
  box-shadow:
    0 4px 12px -2px rgba(234, 179, 8, 0.15),
    0 16px 40px -12px rgba(15, 23, 42, 0.12);
}
.promoter-spot-card.promoter-spot-card--destaque::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #eab308 0%, #f59e0b 100%);
  z-index: 5;
  pointer-events: none;
  border-radius: 1rem 0 0 1rem;
}
.promoter-spot-card__media {
  position: relative;
  width: 100%;
  height: 11.5rem;
  min-height: 11.5rem;
  max-height: 11.5rem;
  overflow: hidden;
  background: #f1f5f9;
  border-radius: 1rem 1rem 0 0;
  isolation: isolate;
}
.promoter-spot-card__media-crop {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}
.promoter-spot-card__cover {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
  z-index: 1;
}
.promoter-spot-card__media-fallback {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 0;
  background: linear-gradient(160deg, #fef9c3 0%, #fde047 55%, #facc15 100%);
}
.promoter-spot-card__media--waterfall .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #dbeafe 0%, #93c5fd 50%, #3b82f6 100%);
}
.promoter-spot-card__media--restaurant .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #fef3c7 0%, #fcd34d 50%, #f59e0b 100%);
}
.promoter-spot-card__media--guesthouse .promoter-spot-card__media-fallback,
.promoter-spot-card__media--pousada .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #ccfbf1 0%, #5eead4 50%, #14b8a6 100%);
}
.promoter-spot-card__media--wellness .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #fae8ff 0%, #e9d5ff 50%, #d946ef 100%);
}
.promoter-spot-card__media--activity .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #ede9fe 0%, #c4b5fd 50%, #8b5cf6 100%);
}
.promoter-spot-card__media--mirante .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #e0f2fe 0%, #7dd3fc 50%, #0ea5e9 100%);
}
.promoter-spot-card__media--trail .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #d1fae5 0%, #6ee7b7 50%, #059669 100%);
}
.promoter-spot-card__media--default .promoter-spot-card__media-fallback {
  background: linear-gradient(160deg, #f3f4f6 0%, #e5e7eb 50%, #9ca3af 100%);
}
.promoter-spot-card__media-emoji {
  font-size: 3.25rem;
  line-height: 1;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.12));
}
.promoter-spot-card__media--noimg .promoter-spot-card__media-crop {
  display: none !important;
}
.promoter-spot-card__media--noimg .promoter-spot-card__cover {
  display: none !important;
}
.promoter-spot-card__media--noimg .promoter-spot-card__media-fallback {
  z-index: 1;
}
.promoter-spot-card__media-gradient {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.08) 45%, transparent 72%);
}
.promoter-spot-card__media--noimg .promoter-spot-card__media-gradient {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.35) 0%, transparent 55%);
}
.promoter-spot-card__media-badges {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: flex-end;
  max-width: 70%;
}
.promoter-spot-card__status-pill {
  display: inline-block;
  padding: 0.28rem 0.55rem;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  border-radius: 9999px;
  border: 1px solid transparent;
  backdrop-filter: blur(6px);
}
.promoter-spot-card__status-pill--approved {
  background: rgba(22, 163, 74, 0.92);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.35);
}
.promoter-spot-card__status-pill--pending {
  background: rgba(254, 243, 199, 0.95);
  color: #9a3412;
  border-color: rgba(251, 191, 36, 0.8);
}
.promoter-spot-card__status-pill--rejected {
  background: rgba(254, 202, 202, 0.95);
  color: #991b1b;
  border-color: rgba(248, 113, 113, 0.65);
}
.promoter-spot-card__destaque-pill {
  display: inline-block;
  padding: 0.28rem 0.55rem;
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 9999px;
  color: #c2410c;
  background: rgba(255, 251, 235, 0.95);
  border: 1px solid #fbbf24;
  box-shadow: 0 1px 2px rgba(234, 179, 8, 0.25);
}
.promoter-spot-card__media-footer {
  position: absolute;
  left: 0.65rem;
  bottom: 0.55rem;
  z-index: 3;
  pointer-events: none;
}
.promoter-spot-card__cat-pill {
  display: inline-block;
  padding: 0.25rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  background: rgba(15, 23, 42, 0.45);
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  backdrop-filter: blur(6px);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
.promoter-spot-card__body {
  padding: 1.2rem 1.25rem 1.3rem;
  background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.promoter-spot-card__name {
  font-family: var(--font-display, 'Outfit', sans-serif);
  font-size: 1.0625rem;
  font-weight: 800;
  margin: 0 0 0.5rem;
  color: #0f172a;
  line-height: 1.28;
  letter-spacing: -0.02em;
}
.promoter-spot-card__desc {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #64748b;
  margin: 0 0 0.55rem;
}
.promoter-spot-card__desc--empty {
  color: #94a3b8;
  font-size: 0.78rem;
}
.promoter-spot-card__desc--empty strong {
  color: #64748b;
  font-weight: 700;
}
.promoter-spot-card__loc {
  display: flex;
  align-items: flex-start;
  gap: 0.35rem;
  font-size: 0.8125rem;
  color: #475569;
  margin: 0 0 0.35rem;
  line-height: 1.4;
}
.promoter-spot-card__loc-icon {
  flex-shrink: 0;
}

/* Saved fields summary (Meus Locais) — trial / active subscription */
.promoter-spot-card__details {
  margin: 0.65rem 0 0;
  padding: 0.65rem 0.75rem 0.7rem;
  border-radius: 0.65rem;
  background: rgba(26, 92, 53, 0.05);
  border: 1px solid rgba(26, 92, 53, 0.1);
}
.promoter-spot-card__details-title {
  margin: 0 0 0.45rem;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #1a5c35;
}
.promoter-spot-card__details-subtitle {
  margin: 0.55rem 0 0.15rem;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  font-size: 0.68rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: 0.02em;
}
.promoter-spot-card__detail-multiline {
  display: block;
  white-space: normal;
}
.promoter-spot-card__detail-row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 32%) 1fr;
  gap: 0.35rem 0.65rem;
  align-items: start;
  font-size: 0.75rem;
  line-height: 1.4;
  padding: 0.28rem 0;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
}
.promoter-spot-card__detail-row:first-of-type {
  border-top: none;
  padding-top: 0;
}
.promoter-spot-card__detail-k {
  font-weight: 700;
  color: #475569;
}
.promoter-spot-card__detail-v {
  color: #334155;
  word-break: break-word;
}
.promoter-spot-card__detail-link {
  color: #1a5c35;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.promoter-spot-card__detail-link:hover {
  color: #14532d;
}
@media (max-width: 520px) {
  .promoter-spot-card__detail-row {
    grid-template-columns: 1fr;
    gap: 0.12rem;
  }
  .promoter-spot-card__detail-k {
    font-size: 0.68rem;
    color: #64748b;
  }
}

/* Comprovação de propriedade (pending spots) */
.promoter-spot-card__proof {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0,0,0,0.08);
}
.promoter-spot-card__proof-title {
  font-size: 0.75rem;
  font-weight: 700;
  color: #9a3412;
  margin: 0 0 0.35rem 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.promoter-spot-card__proof-hint {
  font-size: 0.7rem;
  color: #6b7280;
  margin: 0 0 0.5rem 0;
  line-height: 1.35;
}
.promoter-spot-card__proof-hint--subtle {
  margin: 0.35rem 0 0 0;
  font-size: 0.65rem;
  color: #64748b;
}
.promoter-spot-card__proof-sent {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 0.5rem;
  padding: 0.5rem 0.6rem;
  margin-bottom: 0.5rem;
}
.promoter-spot-card__proof-sent-label {
  font-size: 0.7rem;
  font-weight: 600;
  color: #166534;
  margin: 0 0 0.25rem 0;
}
.promoter-spot-card__proof-sent-text {
  font-size: 0.7rem;
  color: #374151;
  margin: 0 0 0.35rem 0;
  white-space: pre-wrap;
  word-break: break-word;
}
.promoter-spot-card__proof-edit,
.btn-link-small {
  font-size: 0.65rem;
  color: var(--primary-hex, #16a34a);
  text-decoration: underline;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}
.promoter-spot-card__proof-form {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.promoter-spot-card__proof-form.hidden { display: none; }
.promoter-spot-card__proof-sent.hidden { display: none; }
.promoter-spot-card__proof-input {
  width: 100%;
  font-size: 0.75rem;
  padding: 0.5rem 0.6rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.375rem;
  resize: vertical;
  min-height: 4rem;
  box-sizing: border-box;
}
.promoter-spot-card__btn-send-proof {
  background: #ea580c;
  color: #fff;
  border: none;
  align-self: flex-start;
}
.promoter-spot-card__btn-send-proof:hover:not(:disabled) { background: #c2410c; }
.promoter-spot-card__btn-send-proof:disabled { opacity: 0.7; cursor: not-allowed; }

.promoter-spot-card__rejection-callout {
  margin: 0.65rem 0 0.35rem;
  padding: 0.75rem 0.85rem;
  border-radius: 0.5rem;
  border: 1px solid rgba(220, 38, 38, 0.35);
  background: rgba(254, 242, 242, 0.95);
  color: #7f1d1d;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.promoter-spot-card__rejection-title {
  margin: 0 0 0.4rem;
  font-weight: 700;
  font-size: 0.8125rem;
  color: #991b1b;
}
.promoter-spot-card__rejection-text {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
}
.promoter-spot-card__rejection-empty {
  margin: 0;
  color: #9ca3af;
  font-size: 0.8rem;
}
.promoter-spot-card__rejection-hint {
  margin: 0.55rem 0 0;
  font-size: 0.75rem;
  color: #b91c1c;
  opacity: 0.95;
}

.promoter-spot-card__actions {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(15, 23, 42, 0.06);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.promoter-spot-card__actions-row {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.promoter-spot-card__btn-close {
  background: #fff;
  color: #dc2626;
  border: 1px solid #fecaca;
}
.promoter-spot-card__btn-close .promoter-spot-card__btn-x {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.1rem;
  height: 1.1rem;
  background: #dc2626;
  color: #fff;
  border-radius: 50%;
  font-size: 0.7rem;
  margin-right: 0.25rem;
}
.promoter-spot-card__btn-schedule {
  background: #fff;
  color: #374151;
  border: 1px solid #ea580c;
  flex: 1;
}
.promoter-spot-card__btn-edit {
  flex: 1;
  background: #fff;
  color: #374151;
  border: 1px solid #d1d5db;
}
.promoter-spot-card__btn-delete {
  background: #fff;
  color: #6b7280;
  border: 1px solid #e5e7eb;
  padding: 0.5rem;
  min-width: 2.5rem;
}
.promoter-spot-card__btn-delete:hover { color: #dc2626; border-color: #fecaca; }

/* Modals — Replit-style (darker backdrop, rounded-2xl, shadow-2xl) */
.promoter-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.promoter-modal.hidden { display: none !important; }
.promoter-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}
.promoter-modal__box {
  position: relative;
  background: #fff;
  border-radius: 1.25rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  max-width: 24rem;
  width: 100%;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  max-height: 90vh;
  overflow-y: auto;
}
.promoter-modal__title { font-size: 1rem; font-weight: 700; margin: 0 0 1rem; padding-right: 2rem; }
.promoter-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  line-height: 1;
  background: none;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  color: #6b7280;
  opacity: 0.7;
  transition: opacity 0.15s;
}
.promoter-modal__close:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.05);
}
.promoter-modal__alert {
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  margin-bottom: 1rem;
  font-size: 0.875rem;
}
.promoter-modal__alert--warning { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.promoter-modal__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 1rem;
}
.promoter-modal__actions .btn { border-radius: 0.75rem; }

/* Events */
.promoter-events-promo {
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  border: 1px solid #a7f3d0;
  border-radius: 1rem;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.promoter-events-promo__title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--primary-hex);
  margin: 0 0 0.25rem;
}
.promoter-events-promo__lead { font-size: 1.125rem; font-weight: 700; margin: 0 0 0.25rem; }
.promoter-events-promo__sub { font-size: 0.875rem; color: #374151; margin: 0 0 1rem; }
.promoter-events-promo__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1rem;
}
.btn--outline-green {
  background: transparent;
  color: var(--primary-hex);
  border: 2px solid var(--primary-hex);
}
.btn--outline-green:hover { background: rgba(26, 92, 53, 0.08); }
.promoter-events-empty {
  text-align: center;
  padding: 3rem 1.5rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 1rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.promoter-events-empty__icon { font-size: 3rem; display: block; margin-bottom: 0.5rem; }
.promoter-events-empty__title { font-size: 1.125rem; font-weight: 700; margin: 0 0 0.25rem; }
.promoter-events-empty__sub { font-size: 0.9rem; color: #6b7280; margin: 0 0 1rem; }
.promoter-events-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; }
.promoter-event-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.promoter-event-card__img-wrap { width: 100%; height: 8rem; background: #f3f4f6; overflow: hidden; }
.promoter-event-card__img { width: 100%; height: 100%; object-fit: cover; }
.promoter-event-card__body { padding: 1rem; }
.promoter-event-card__title { font-size: 1rem; font-weight: 700; margin: 0 0 0.25rem; }
.promoter-event-card__date { font-size: 0.8rem; color: #6b7280; margin: 0 0 0.25rem; }
.promoter-event-card__desc { font-size: 0.875rem; color: #6b7280; margin: 0 0 0.5rem; line-height: 1.35; }
.promoter-event-card__actions { display: flex; gap: 0.5rem; margin-top: 0.75rem; }

/* Buy event modal — Replit style */
.event-plan-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 1.5rem; }
@media (max-width: 640px) { .event-plan-cards { grid-template-columns: 1fr; } }
.event-plan-card {
  position: relative;
  text-align: left;
  padding: 1.25rem;
  border-radius: 1rem;
  border: 2px solid #e5e7eb;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}
.event-plan-card:hover { border-color: #a7f3d0; }
.event-plan-card.active { border-color: var(--primary-hex); background: #f0fdf4; }
.event-plan-card--featured.active { border-color: #d97706; background: #fffbeb; }
.event-plan-card.event-plan-card--disabled {
  opacity: 0.48;
  pointer-events: none;
  filter: grayscale(0.15);
}
.promoter-event-card__listing { margin-left: 0.35rem; vertical-align: middle; }
.event-plan-card__badge {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: #fbbf24;
  color: #78350f;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
}
.event-plan-card__icon { font-size: 1.25rem; display: block; margin-bottom: 0.25rem; }
.event-plan-card__title { font-size: 0.9375rem; font-weight: 800; margin: 0 0 0.35rem; }
.event-plan-card__desc { font-size: 0.8125rem; color: #6b7280; margin: 0 0 0.5rem; line-height: 1.35; }
.event-plan-card__price { font-size: 1.5rem; font-weight: 800; margin: 0 0 0.5rem; }
.event-plan-card__price span { font-size: 0.75rem; font-weight: 600; color: #6b7280; }
.event-plan-card__price--green { color: #047857; }
.event-plan-card__price--amber { color: #b45309; }
.event-plan-card__features { list-style: none; padding: 0; margin: 0 0 0.5rem; font-size: 0.8125rem; color: #6b7280; }
.event-plan-card__features li { margin-bottom: 0.25rem; }
.check--green { color: #047857; font-weight: 700; margin-right: 0.35rem; }
.check--amber { color: #b45309; font-weight: 700; margin-right: 0.35rem; }
.event-plan-card__selected { font-size: 0.65rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: #047857; }
.event-plan-card--featured.active .event-plan-card__selected { color: #b45309; }
.event-plan-card .event-plan-card__selected { display: none; }
.event-plan-card.active .event-plan-card__selected { display: block; }
.event-buy-select-row { margin-bottom: 1rem; }
.event-buy-select { width: 100%; padding: 0.6rem 0.85rem; border: 1px solid #86efac; border-radius: 0.75rem; font-size: 0.9rem; background: #fff; }
.event-buy-no-events { font-size: 0.9rem; color: #6b7280; padding: 0.75rem; background: #f9fafb; border-radius: 0.75rem; }
.link-button { background: none; border: none; color: var(--primary-hex); font-weight: 700; cursor: pointer; text-decoration: underline; }
.event-pix-box {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  border-radius: 1rem;
  padding: 1rem;
  margin-bottom: 1rem;
}
.event-pix-box__title { font-size: 0.9375rem; font-weight: 800; margin: 0 0 0.35rem; color: #065f46; }
.event-pix-box__text { font-size: 0.875rem; color: #374151; margin: 0 0 0.5rem; }
.event-pix-box__key { font-family: ui-monospace, monospace; font-size: 0.9rem; font-weight: 700; padding: 0.5rem 0.75rem; background: #fff; border-radius: 0.5rem; border: 1px solid #a7f3d0; margin: 0.5rem 0; }
.event-pix-box__hint { font-size: 0.75rem; color: #6b7280; margin: 0; }

/* Event form modal — Replit-accurate: flat fields, single location box, card styling */
.event-form--replit {
  padding: 1rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.event-form--replit .event-form__fields {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.event-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.event-form__label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}
.event-form__label-optional {
  font-weight: 400;
  color: #6b7280;
}
.event-form__label--sm {
  font-size: 0.75rem;
  font-weight: 700;
  color: #374151;
}
.event-form__input,
.event-form__select,
.event-form__textarea {
  width: 100%;
  font-size: 0.875rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.event-form__input:focus,
.event-form__select:focus,
.event-form__textarea:focus {
  outline: none;
  border-color: var(--primary-hex, #166534);
  box-shadow: 0 0 0 2px rgba(22, 101, 52, 0.2);
}
.event-form__input--mono {
  font-family: ui-monospace, monospace;
  font-size: 0.75rem;
  height: 2.25rem;
}
.event-form__textarea {
  min-height: 5rem;
  resize: vertical;
}
.event-form__row-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.event-form__row-2--gap-sm { gap: 0.5rem; }

/* Only the location block has muted background (Replit style) */
.event-form__location-box {
  background: rgba(243, 244, 246, 0.6);
  border: 1px solid rgba(229, 231, 235, 0.8);
  border-radius: 0.75rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.event-form__location-heading {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6b7280;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.event-form__location-icon {
  font-size: 0.875rem;
}
.event-form__location-warning,
.spot-form-replit__location-warning {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 0.5rem;
  padding: 0.6rem 0.75rem;
}
.event-form__map-pick-hint,
.spot-form-replit__map-pick-hint {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: #4b5563;
}
.promoter-pick-map {
  width: 100%;
  height: 14rem;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  background: #e5e7eb;
}
.promoter-pick-map .leaflet-container {
  font-family: inherit;
  z-index: 1;
}
.event-form__map-link-wrap,
.spot-form-replit__map-link-wrap {
  margin-top: 0.35rem;
}
.event-form__gps-btn {
  width: 100%;
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
  color: #374151;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.event-form__gps-btn:hover {
  background: #f9fafb;
  border-color: #d1d5db;
}
.event-form__field--paste-coords { margin-bottom: 0.75rem; }
.event-form__paste-coords-row {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}
.event-form__paste-coords-row .event-form__input { flex: 1; }
.event-form__apply-coords-btn {
  flex-shrink: 0;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #fff;
  background: #16a34a;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  white-space: nowrap;
}
.event-form__apply-coords-btn:hover:not(:disabled) { background: #15803d; }
.event-form__apply-coords-btn:disabled { opacity: 0.7; cursor: not-allowed; }
.event-form__map-preview { margin-top: 0.25rem; }
.event-form__map-preview.hidden { display: none; }
.event-form__map-iframe-wrap {
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #e5e7eb;
  height: 9rem;
  margin-bottom: 0.35rem;
}
.event-form__map-iframe-wrap iframe { width: 100%; height: 100%; border: 0; }
.event-form__map-link {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--primary-hex, #166534);
  text-decoration: none;
}
.event-form__map-link:hover { text-decoration: underline; }

.event-form--replit .event-image-preview-wrap {
  position: relative;
  margin-top: 0.5rem;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}
.event-form--replit .event-image-preview-wrap img {
  display: block;
  width: 100%;
  max-height: 8rem;
  object-fit: cover;
}
.event-form--replit .event-image-preview-remove {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.75rem;
  height: 1.75rem;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 0.875rem;
  cursor: pointer;
  line-height: 1;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.event-form--replit .event-image-preview-remove:hover {
  background: rgba(0, 0, 0, 0.8);
}

.event-form__actions {
  display: flex;
  gap: 0.5rem;
  padding-top: 0.25rem;
  margin-top: 0.5rem;
}
.event-form__actions .admin-btn--primary { flex: 1; }

.event-form__toggle-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
  font-size: 0.875rem;
  color: #374151;
  cursor: pointer;
  user-select: none;
}
.event-form__toggle-wrap input { position: absolute; opacity: 0; width: 0; height: 0; }
.event-form__toggle-wrap .event-form__toggle-slider {
  display: inline-block;
  width: 2.5rem;
  height: 1.25rem;
  background: #e5e7eb;
  border-radius: 9999px;
  transition: background 0.2s;
  flex-shrink: 0;
  position: relative;
}
.event-form__toggle-wrap .event-form__toggle-slider::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0.15rem;
  width: 1rem;
  height: 1rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transform: translateY(-50%);
  transition: transform 0.2s;
}
.event-form__toggle-wrap input:checked + .event-form__toggle-slider {
  background: #facc15;
}
.event-form__toggle-wrap input:checked + .event-form__toggle-slider::after {
  transform: translate(1.35rem, -50%);
}
.event-form__toggle-label { font-weight: 700; }

/* Modal box width for event form (Replit: max-w-lg) */
.admin-modal__box--event {
  max-width: 32rem;
  width: calc(100vw - 2rem);
}

/* Guide panel — Replit-style: single white card, neutral inputs */
.guide-panel-card {
  background: #fff;
  border: 1px solid rgba(229, 231, 235, 0.9);
  border-radius: 1rem;
  padding: 1.5rem;
  max-width: 42rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.guide-panel-card__header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.5rem;
}
.guide-panel-card__icon-wrap {
  width: 3rem;
  height: 3rem;
  background: rgba(167, 243, 208, 0.5);
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.guide-panel-card__icon { font-size: 1.5rem; }
.guide-panel-card__head-text { min-width: 0; }
.guide-panel-card__title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #14532d;
  margin: 0 0 0.25rem;
}
.guide-panel-card__sub {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0;
  line-height: 1.4;
}
.guide-draft-hint {
  margin: 0 0 1.25rem;
  padding: 1rem 1.15rem;
  border-radius: 0.85rem;
  border: 1px solid #c7d2fe;
  background: #f8fafc;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.guide-draft-hint.hidden { display: none !important; }
.guide-draft-hint__lead {
  margin: 0 0 0.35rem 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.35;
}
.guide-draft-hint__sub {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #64748b;
}

.guide-status-panel {
  margin: 0 0 1.35rem;
  padding: 0;
  border-radius: 0.85rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}
.guide-status-panel.hidden { display: none !important; }
.guide-status-panel__hero {
  padding: 1rem 1.15rem 0.85rem;
  border-bottom: 1px solid #f1f5f9;
  background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}
.guide-status-panel--pending .guide-status-panel__hero {
  border-bottom-color: #fef3c7;
  background: linear-gradient(180deg, #fffbeb 0%, #fff 100%);
}
.guide-status-panel--rejected .guide-status-panel__hero {
  border-bottom-color: #fecaca;
  background: linear-gradient(180deg, #fef2f2 0%, #fff 100%);
}
.guide-status-panel--approved .guide-status-panel__hero {
  border-bottom-color: #d1fae5;
  background: linear-gradient(180deg, #ecfdf5 0%, #fff 100%);
}
.guide-status-panel__headline {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.02em;
  line-height: 1.3;
}
.guide-status-panel__lead {
  margin: 0.45rem 0 0 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #64748b;
}
.guide-status-panel__lead.hidden { display: none !important; }
.guide-status-panel__metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  padding: 0.85rem 1.15rem;
  border-bottom: 1px solid #f1f5f9;
}
@media (max-width: 520px) {
  .guide-status-panel__metrics { grid-template-columns: 1fr; }
}
.guide-status-panel__metric {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45rem;
  padding: 0.35rem 0;
}
@media (min-width: 521px) {
  .guide-status-panel__metric:first-child {
    padding-right: 1rem;
    border-right: 1px solid #f1f5f9;
  }
}
@media (max-width: 520px) {
  .guide-status-panel__metric:first-child {
    padding-bottom: 0.65rem;
    border-bottom: 1px solid #f1f5f9;
  }
}
.guide-status-panel__label {
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #94a3b8;
}
.guide-status-panel__summary {
  margin: 0;
  padding: 0.85rem 1.15rem;
  font-size: 0.8125rem;
  line-height: 1.55;
  color: #64748b;
  background: #f8fafc;
  border-top: 1px solid #f1f5f9;
}
.guide-status-panel__resubmit {
  padding: 0 1.15rem 1rem;
  border-top: 1px solid #f1f5f9;
  background: #fafafa;
}
.guide-status-panel__resubmit.hidden { display: none !important; }
.guide-resubmit-bar__inner {
  padding: 1rem 1.1rem;
  border-radius: 0.65rem;
  border: 1px solid #fecdd3;
  background: #fff;
  box-shadow: 0 1px 2px rgba(190, 18, 60, 0.06);
}
.guide-resubmit-bar__title {
  margin: 0 0 0.35rem 0;
  font-size: 0.8rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #9f1239;
}
.guide-resubmit-bar__text {
  margin: 0 0 0.85rem 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #57534e;
}
.guide-resubmit-bar__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 20rem;
  padding: 0.65rem 1.1rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #fff;
  background: #15803d;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.1s ease;
}
.guide-resubmit-bar__btn:hover {
  background: #166534;
}
.guide-resubmit-bar__btn:active {
  transform: scale(0.99);
}
.guide-resubmit-bar__btn:focus-visible {
  outline: 2px solid #22c55e;
  outline-offset: 2px;
}
.guide-status-badge {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid transparent;
}
.guide-status-badge--approved { background: #d1fae5; color: #065f46; border-color: #6ee7b7; }
.guide-status-badge--rejected { background: #fee2e2; color: #b91c1c; border-color: #fca5a5; }
.guide-status-badge--pending { background: #fef3c7; color: #92400e; border-color: #fcd34d; }

.guide-visibility-badge {
  display: inline-block;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.72rem;
  font-weight: 700;
  border: 1px solid transparent;
  line-height: 1.3;
}
.guide-visibility-badge--yes {
  background: #ecfdf5;
  color: #047857;
  border-color: #6ee7b7;
}
.guide-visibility-badge--no {
  background: #f1f5f9;
  color: #475569;
  border-color: #cbd5e1;
}
.guide-visibility-badge--paused {
  background: #fff7ed;
  color: #c2410c;
  border-color: #fdba74;
}

.guide-status-note {
  margin: 0;
  padding: 0.85rem 1.15rem 1rem;
  border-top: 1px solid #f1f5f9;
  border-left: none;
  border-inline-start: 4px solid #e11d48;
  background: #fffafb;
}
.guide-status-note.hidden { display: none !important; }
.guide-status-note__label {
  display: block;
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #be123c;
  margin-bottom: 0.4rem;
}
.guide-status-note__text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.55;
  color: #44403c;
  white-space: pre-wrap;
}

.guide-form--replit { margin-top: 0; }
.guide-form__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}
.guide-form__field--full { grid-column: 1 / -1; }
.guide-form__field { display: flex; flex-direction: column; gap: 0.375rem; }
.guide-form__label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}
.guide-form__label--sm { font-size: 0.8125rem; font-weight: 600; color: #6b7280; }
.guide-form__input,
.guide-form__textarea {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  color: #1f2937;
}
.guide-form__input:focus,
.guide-form__textarea:focus {
  outline: none;
  border-color: #16a34a;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.15);
}
.guide-form__textarea { min-height: 5.625rem; resize: vertical; }
.guide-form__input--flex { flex: 1; min-width: 0; }
.guide-form__hint {
  font-size: 0.75rem;
  color: #6b7280;
  margin: 0 0 0.5rem;
  line-height: 1.4;
}
.guide-form__photo-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.guide-form__upload-btn {
  flex-shrink: 0;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #374151;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  cursor: pointer;
}
.guide-form__upload-btn:hover { background: #f9fafb; border-color: #9ca3af; }
.guide-form__block { margin-bottom: 1.25rem; }
.guide-form__block--border {
  border-top: 1px solid #e5e7eb;
  padding-top: 1.25rem;
  margin-top: 1.25rem;
}
.guide-form__block-title {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7280;
  margin: 0 0 0.75rem;
}
.guide-form__cadastur-choice {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin-bottom: 0.35rem;
}
.guide-cadastur-fields { margin-top: 0.5rem; }
.guide-form__checkbox-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  margin-bottom: 0.75rem;
}
.guide-form__checkbox { width: 1rem; height: 1rem; accent-color: #16a34a; cursor: pointer; }
.guide-form__checkbox-label { font-size: 0.875rem; font-weight: 700; color: #1f2937; }
.guide-form__price-row {
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  margin: 0.5rem 0 0.75rem;
}
.guide-form__price-row .guide-form__field { flex: 1; min-width: 0; }
.guide-form__price-sep { color: #9ca3af; font-size: 0.875rem; margin-bottom: 0.5rem; }
.guide-form__other-spot { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid #e5e7eb; }
.guide-form__other-spot-label { font-size: 0.875rem; font-weight: 600; color: #6b7280; display: block; margin-bottom: 0.35rem; }
.guide-form__submit {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  background: #16a34a;
  border: none;
  border-radius: 0.75rem;
  cursor: pointer;
  margin-top: 0.5rem;
}
.guide-form__submit:hover { background: #15803d; }

.guide-remove-zone {
  margin: 0 0 1.15rem;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
}
.guide-remove-zone.hidden { display: none !important; }
.guide-remove-zone__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.guide-remove-zone__copy {
  flex: 1 1 12rem;
  min-width: 0;
}
.guide-remove-zone__title {
  display: block;
  margin: 0 0 0.2rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #374151;
  letter-spacing: 0.01em;
}
.guide-remove-zone__text {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: #6b7280;
}
.guide-remove-zone__btn {
  flex-shrink: 0;
  padding: 0.45rem 0.9rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #4b5563;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.guide-remove-zone__btn:hover {
  border-color: #fca5a5;
  color: #b91c1c;
  background: #fff;
}
.guide-remove-zone__btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

/* Guide delete confirm — small centered card (no green admin header strip) */
#modal-guide-remove .guide-remove-modal__backdrop {
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
#modal-guide-remove .guide-remove-modal__card {
  position: relative;
  max-width: 21rem;
  width: 100%;
  padding: 2rem 1.5rem 1.5rem;
  border-radius: 1.25rem;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow:
    0 24px 48px -12px rgba(15, 23, 42, 0.2),
    0 0 0 1px rgba(255, 255, 255, 0.6) inset;
}
.guide-remove-modal__x {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 2.25rem;
  height: 2.25rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  font-size: 1.35rem;
  line-height: 1;
  color: #9ca3af;
  background: transparent;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}
.guide-remove-modal__x:hover {
  color: #4b5563;
  background: rgba(0, 0, 0, 0.04);
}
.guide-remove-modal__inner {
  text-align: center;
}
.guide-remove-modal__mark {
  width: 3.5rem;
  height: 3.5rem;
  margin: 0 auto 1.125rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  line-height: 1;
  background: linear-gradient(160deg, #ecfdf5 0%, #d1fae5 55%, #a7f3d0 100%);
  box-shadow: 0 6px 20px rgba(20, 83, 45, 0.12);
}
.guide-remove-modal__question {
  margin: 0 0 1.5rem;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: -0.02em;
  color: #111827;
}
.guide-remove-modal__cta {
  display: flex;
  gap: 0.625rem;
  align-items: stretch;
}
.guide-remove-modal__btn {
  flex: 1;
  min-height: 2.75rem;
  padding: 0.5rem 0.75rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease, opacity 0.15s ease;
}
.guide-remove-modal__btn:active:not(:disabled) {
  transform: scale(0.98);
}
.guide-remove-modal__btn--muted {
  background: #f3f4f6;
  color: #4b5563;
}
.guide-remove-modal__btn--muted:hover {
  background: #e5e7eb;
  color: #1f2937;
}
.guide-remove-modal__btn--go {
  background: linear-gradient(180deg, #3f3f46 0%, #27272a 100%);
  color: #fafafa;
  box-shadow: 0 2px 10px rgba(24, 24, 27, 0.28);
}
.guide-remove-modal__btn--go:hover:not(:disabled) {
  background: linear-gradient(180deg, #52525b 0%, #3f3f46 100%);
  box-shadow: 0 4px 14px rgba(24, 24, 27, 0.32);
}
.guide-remove-modal__btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  transform: none;
}

.guide-form__outline-btn {
  padding: 0.5rem 1rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: 0.75rem;
  cursor: pointer;
}
.guide-form__outline-btn:hover { background: #f9fafb; }

.guide-car-fields.hidden,
.guide-cert-fields.hidden { display: none !important; }
.guide-car-fields,
.guide-cert-fields { padding-left: 1.75rem; margin-top: 0.5rem; }
.guide-spots-box {
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  padding: 0.75rem;
  background: #fff;
  max-height: 12rem;
  overflow-y: auto;
  margin-bottom: 0.5rem;
}
.guide-spots-checkboxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
}
.guide-spot-check { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; cursor: pointer; padding: 0.375rem 0.5rem; border-radius: 0.5rem; }
.guide-spot-check:hover { background: rgba(243, 244, 246, 0.6); }
.guide-spot-emoji { font-size: 1rem; flex-shrink: 0; }
.guide-journey-actions { margin-bottom: 0.5rem; }
.guide-journey-zone { margin-top: 0.5rem; }
.guide-journey-empty {
  padding: 1.5rem;
  border: 2px dashed #e5e7eb;
  border-radius: 0.75rem;
  text-align: center;
  font-size: 0.875rem;
  color: #6b7280;
  background: #fafafa;
}
.guide-journey-photos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
}
.guide-journey-photo {
  position: relative;
  aspect-ratio: 1;
  border-radius: 0.5rem;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}
.guide-journey-photo img { width: 100%; height: 100%; object-fit: cover; }
.guide-journey-photo-remove {
  position: absolute;
  top: 0.25rem;
  right: 0.25rem;
  width: 1.25rem;
  height: 1.25rem;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 0.7rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.guide-journey-photo-remove:hover { background: #b91c1c; }

/* Guide: Sua Foto drop zone (single photo) */
.guide-photo-drop-zone {
  position: relative;
  border: 2px dashed #d1d5db;
  border-radius: 0.75rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  background: #f9fafb;
  transition: border-color 0.2s, background 0.2s;
  margin-bottom: 0.5rem;
}
.guide-photo-file-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.guide-photo-drop-zone:hover { border-color: var(--primary-hex, #166534); background: #f0fdf4; }
.guide-photo-drop-zone--drag { border-color: var(--primary-hex, #166534); background: #dcfce7; border-style: solid; }
.guide-photo-drop-zone--uploading { pointer-events: none; opacity: 0.85; }
.guide-photo-drop-zone__text { font-weight: 600; color: #1f2937; margin: 0 0 0.2rem; font-size: 0.9rem; }
.guide-photo-drop-zone__spec { font-size: 0.8rem; color: #6b7280; margin: 0; }
.guide-photo-preview {
  position: relative;
  display: inline-block;
  margin-top: 0.5rem;
}
/* `.guide-photo-preview` sets display; project has no global `.hidden` — must hide when empty */
.guide-photo-preview.hidden,
.guide-photo-preview[hidden] {
  display: none !important;
}
.guide-photo-preview img {
  width: 5rem;
  height: 5rem;
  object-fit: cover;
  border-radius: 50%;
  border: 2px solid rgba(22, 163, 74, 0.3);
}
.guide-photo-preview-remove {
  position: absolute;
  top: 0;
  right: 0;
  width: 1.25rem;
  height: 1.25rem;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 0.7rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.guide-photo-preview-remove:hover { background: #b91c1c; }

/* Guide: Fotos trilhas/passeios drop zone (max 5) */
.guide-journey-drop-zone {
  position: relative;
  border: 2px dashed #d1d5db;
  border-radius: 0.75rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  background: #f9fafb;
  transition: border-color 0.2s, background 0.2s;
  margin-bottom: 0.75rem;
}
.guide-journey-file-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.guide-journey-drop-zone:hover { border-color: var(--primary-hex, #166534); background: #f0fdf4; }
.guide-journey-drop-zone--drag { border-color: var(--primary-hex, #166534); background: #dcfce7; border-style: solid; }
.guide-journey-drop-zone--uploading { pointer-events: none; opacity: 0.85; }
.guide-journey-drop-zone__text { font-weight: 600; color: #1f2937; margin: 0 0 0.2rem; font-size: 0.9rem; }
.guide-journey-drop-zone__spec { font-size: 0.8rem; color: #6b7280; margin: 0; }
.guide-journey-zone { margin-top: 0.5rem; }

@media (max-width: 640px) {
  .guide-form__grid { grid-template-columns: 1fr; }
  .guide-spots-checkboxes { grid-template-columns: 1fr; }
}

/* Ads */
.promoter-ads-hero {
  background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
  border: 1px solid #c4b5fd;
  border-radius: 1rem;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
}
.promoter-ads-hero__title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b21a8;
  margin: 0 0 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.promoter-ads-hero__icon { font-size: 1rem; opacity: 0.9; }
.promoter-ads-hero__lead { font-size: 1.125rem; font-weight: 700; margin: 0 0 0.25rem; }
.promoter-ads-hero__sub { font-size: 0.875rem; color: #374151; margin: 0 0 1rem; }
.promoter-ads-hero__btn { margin-top: 0.5rem; }
.promoter-ads-list { display: flex; flex-direction: column; gap: 1rem; }
.promoter-ad-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  transition: box-shadow 0.2s, border-color 0.2s;
  position: relative;
}
.promoter-ad-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
  border-color: #d1d5db;
}
.promoter-ad-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.promoter-ad-card__header-left {
  flex: 1;
  min-width: 0;
}
.promoter-ad-card__order-id {
  font-size: 0.6875rem;
  font-weight: 800;
  color: #7c3aed;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
}
.promoter-ad-card__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111;
  margin: 0;
  line-height: 1.3;
}
.promoter-ad-card__delete {
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
  border: none;
  background: transparent;
  color: #9ca3af;
  font-size: 1.125rem;
  line-height: 1;
  cursor: pointer;
  border-radius: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, color 0.2s;
}
.promoter-ad-card__delete:hover {
  background: #f3f4f6;
  color: #dc2626;
}
.promoter-ad-card__type {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #6b21a8;
  background: #ede9fe;
  padding: 0.35rem 0.75rem;
  border-radius: 9999px;
  margin-bottom: 0.5rem;
}
.promoter-ad-card__type-icon {
  font-size: 0.875rem;
}
.promoter-ad-card__meta {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 0.75rem;
  line-height: 1.5;
}
.promoter-ad-card__footer {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #f3f4f6;
}
.promoter-ad-card__footer .badge {
  margin: 0;
}
.promoter-ad-card__duration {
  font-size: 0.875rem;
  color: #6b7280;
}
.promoter-ad-card__price {
  font-weight: 800;
  font-size: 1.125rem;
  color: #7c3aed;
  margin-left: auto;
}
.promoter-ad-card__stats {
  flex-basis: 100%;
  font-size: 0.8125rem;
  color: #64748b;
  font-weight: 500;
}
.promoter-ad-card__actions {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #f3f4f6;
}
.promoter-ad-card__whatsapp-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #fff;
  background: #25d366;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.2s;
}
.promoter-ad-card__whatsapp-btn:hover {
  background: #20ba5a;
}
.promoter-ad-card__actions--renew {
  border-top: 1px dashed #e2e8f0;
}
.promoter-ad-card__renew-stripe {
  font-size: 0.875rem;
}

/* Buy Ad modal — Replit style */
.promoter-ad-modal .admin-modal__box { 
  max-width: 42rem; 
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.promoter-ad-modal .admin-modal__body--pad {
  padding: 1.5rem;
  max-height: 70vh;
  overflow-y: auto;
}
.promoter-ad-modal__header {
  background: linear-gradient(to right, #6d28d9 0%, #a21caf 100%);
  color: #fff;
  padding: 1.25rem 1.5rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  position: relative;
}
.promoter-ad-modal__header .admin-modal__close {
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.1);
  border-radius: 0.5rem;
  transition: all 0.2s ease;
  position: relative;
  top: auto;
  right: auto;
}
.promoter-ad-modal__header .admin-modal__close:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  transform: scale(1.1);
}
.promoter-ad-modal__title { 
  font-size: 1.125rem; 
  font-weight: 800; 
  margin: 0; 
  color: inherit; 
  letter-spacing: -0.01em;
}
.promoter-ad-modal__step { 
  font-size: 0.75rem; 
  color: rgba(255,255,255,0.6); 
  font-weight: 700; 
}
.promoter-ad-modal__progress {
  display: flex;
  gap: 0.5rem;
  padding: 0 1.5rem 1rem;
  background: linear-gradient(to right, #6d28d9 0%, #a21caf 100%);
}
.promoter-ad-modal__progress-bar {
  flex: 1;
  height: 6px;
  border-radius: 9999px;
  background: rgba(255,255,255,0.3);
  transition: background 0.3s ease;
}
.promoter-ad-modal__progress-bar--active { 
  background: #fff; 
}
.ad-wizard-step__hint { 
  font-size: 0.875rem; 
  color: #6b7280; 
  margin: 0 0 1rem; 
  font-weight: 400;
  line-height: 1.5;
}
.ad-wizard-step.hidden { display: none !important; }
.ad-package-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
@media (max-width: 640px) { .ad-package-grid { grid-template-columns: 1fr; } }
.ad-package-card {
  position: relative;
  text-align: left;
  padding: 1rem;
  border: 2px solid #e5e7eb;
  border-radius: 1rem;
  background: #fff;
  cursor: pointer;
  transition: all 0.2s ease;
  overflow: hidden;
}
.ad-package-card::before,
.ad-package-card::after {
  display: none !important;
}
.ad-package-card:hover { 
  border-color: #c4b5fd; 
  background: #faf5ff; 
}
.ad-package-card--selected {
  border-color: #7c3aed;
  background: #f5f3ff;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  transform: scale(1.02);
}
.ad-package-card--selected::before,
.ad-package-card--selected::after {
  display: none !important;
  content: none !important;
}
.ad-package-card input[type="checkbox"],
.ad-package-card input[type="radio"] {
  display: none !important;
}
.ad-package-card__badge {
  position: absolute;
  top: 0.625rem;
  right: 0.625rem;
  font-size: 0.625rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: #7c3aed;
  color: #fff;
  padding: 0.125rem 0.5rem;
  border-radius: 9999px;
}
.ad-package-card__icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #059669 0%, #0d9488 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  margin-bottom: 0.75rem;
  border: none !important;
  box-shadow: none;
  transition: none;
}
.ad-package-card:hover .ad-package-card__icon {
  transform: none;
}
.ad-package-card__icon::before,
.ad-package-card__icon::after {
  display: none !important;
  content: none !important;
}
.ad-package-card[data-type="banner_horizontal"] .ad-package-card__icon { background: linear-gradient(135deg, #7c3aed 0%, #a21caf 100%); }
.ad-package-card[data-type="banner_square"] .ad-package-card__icon { background: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%); }
.ad-package-card[data-type="banner_bottom"] .ad-package-card__icon { background: linear-gradient(135deg, #ea580c 0%, #dc2626 100%); }
.ad-package-card--event {
  border: 2px dashed #6ee7b7;
  border-color: #6ee7b7;
}
.ad-package-card--event:hover {
  border-color: #10b981;
  background: #ecfdf5;
}
.ad-package-card--event .ad-package-card__icon {
  background: linear-gradient(135deg, #10b981 0%, #14b8a6 100%);
}
.ad-package-card__place--event {
  color: #059669;
}
.ad-package-card__link {
  font-size: 0.75rem;
  font-weight: 700;
  color: #059669;
  margin: 0.5rem 0 0;
  display: flex;
  align-items: center;
  gap: 0.25rem;
}
.ad-package-card__name { 
  font-size: 0.875rem; 
  font-weight: 800; 
  margin: 0 0 0.25rem; 
  color: #111;
  line-height: 1.3;
}
.ad-package-card__desc { 
  font-size: 0.75rem; 
  color: #6b7280; 
  margin: 0 0 0.5rem; 
  line-height: 1.35; 
}
.ad-package-card__place { 
  font-size: 0.6875rem; 
  color: #7c3aed; 
  font-weight: 700; 
  margin: 0 0 0.5rem; 
}
.ad-package-card__price { 
  font-size: 1.125rem; 
  font-weight: 800; 
  margin: 0.5rem 0 0; 
  color: #111;
  line-height: 1.2;
}
.ad-package-card__price span { 
  font-size: 0.75rem; 
  font-weight: 400; 
  color: #6b7280; 
}
.ad-duration-wrap { margin-bottom: 1rem; }
.ad-duration-label { font-size: 0.875rem; font-weight: 700; margin: 0 0 0.5rem; }
.ad-duration-btns { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.ad-duration-btn {
  position: relative;
  padding: 0.5rem 1rem;
  border: 2px solid #e5e7eb;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #374151;
  background: #fff;
  cursor: pointer;
  transition: all 0.2s ease;
}
.ad-duration-btn:hover { 
  border-color: #c4b5fd; 
}
.ad-duration-btn--active { 
  border-color: #7c3aed; 
  background: #7c3aed; 
  color: #fff; 
}
.ad-duration-tag {
  position: absolute;
  top: -0.4rem;
  right: -0.25rem;
  font-size: 0.5625rem;
  font-weight: 800;
  background: #fbbf24;
  color: #78350f;
  padding: 0.125rem 0.375rem;
  border-radius: 9999px;
}
.ad-duration-btn--best .ad-duration-tag { background: #fbbf24; color: #78350f; }
.ad-summary-box {
  background: #f5f3ff;
  border: 1px solid #c4b5fd;
  border-radius: 0.75rem;
  padding: 1rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.ad-summary-box--banner {
  margin-top: 1rem;
}
.ad-done-no-pix {
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  padding: 1rem;
  margin: 0 0 1rem;
  text-align: center;
}
.ad-done-no-pix__text { font-size: 0.875rem; color: #6b7280; margin: 0; }
.ad-summary-box__inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: space-between;
}
.ad-summary-box__check {
  width: 1.125rem;
  height: 1.125rem;
  border: 2px solid #7c3aed;
  border-radius: 0.25rem;
  flex-shrink: 0;
  background: #fff;
}
.ad-summary-box__info { 
  min-width: 0; 
  flex: 1;
}
.ad-summary-box__name { 
  font-weight: 700; 
  font-size: 0.875rem; 
  margin: 0 0 0.25rem; 
  color: #111;
  line-height: 1.3;
}
.ad-summary-box__note { 
  font-size: 0.75rem; 
  color: #6b7280; 
  margin: 0; 
  line-height: 1.4;
}
.ad-summary-box__price { 
  font-size: 1.25rem; 
  font-weight: 800; 
  color: #7c3aed; 
  margin: 0; 
  flex-shrink: 0;
  line-height: 1.2;
}
.ad-wizard-actions { 
  display: flex; 
  gap: 0.5rem; 
  margin-top: 1rem; 
  padding-top: 0.5rem;
}
.ad-wizard-actions .admin-btn {
  flex: 1;
  padding: 0.5rem 1rem;
  font-weight: 700;
  border-radius: 0.75rem;
  transition: all 0.2s ease;
}
.ad-wizard-actions .admin-btn--primary {
  background: #7c3aed;
  border-color: #7c3aed;
  color: #fff;
}
.ad-wizard-actions .admin-btn--primary:hover {
  background: #6d28d9;
  border-color: #6d28d9;
}
.ad-wizard-actions .admin-btn--primary { flex: 1; }
.ad-step2-summary {
  background: #f5f3ff;
  border: 1px solid #c4b5fd;
  border-radius: 0.75rem;
  padding: 0.75rem;
  margin-bottom: 1rem;
}
.ad-step2-summary__inner { display: flex; align-items: center; gap: 0.75rem; }
.ad-step2-summary__icon {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #7c3aed 0%, #c026d3 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.ad-step2-summary__name { font-weight: 700; font-size: 0.875rem; margin: 0 0 0.1rem; }
.ad-step2-summary__place { font-size: 0.75rem; color: #6b7280; margin: 0; }
.ad-step2-summary__price { font-weight: 800; color: #7c3aed; margin-left: auto; }
.ad-promote-toggle {
  display: flex;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  overflow: hidden;
  margin-bottom: 0.75rem;
}
.ad-promote-toggle__btn {
  flex: 1;
  padding: 0.5rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 700;
  background: #fff;
  color: #6b7280;
  border: none;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.ad-promote-toggle__btn:hover { background: #f3f4f6; }
.ad-promote-toggle__btn--active { background: #7c3aed; color: #fff; }
.ad-link-wrap { margin-top: 0.5rem; }
.ad-link-wrap.hidden { display: none !important; }
.ad-link-wrap label { display: block; font-size: 0.875rem; margin-bottom: 0.25rem; color: #6b7280; }
.ad-link-wrap select { width: 100%; padding: 0.5rem; border-radius: 0.5rem; border: 1px solid #e5e7eb; }
.ad-image-zone {
  border: 2px dashed #e5e7eb;
  border-radius: 0.75rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  margin-bottom: 0.5rem;
}
.ad-image-zone:hover { border-color: #a78bfa; background: #f5f3ff; }
.ad-image-zone--uploading { opacity: 0.7; pointer-events: none; }
.ad-image-zone--drag { border-color: #7c3aed; background: #ede9fe; }
.ad-image-zone__text { font-size: 0.9375rem; font-weight: 600; margin: 0 0 0.25rem; color: #374151; }
.ad-image-zone__hint { font-size: 0.75rem; color: #6b7280; margin: 0; }
.ad-image-file-input { position: absolute; width: 0; height: 0; opacity: 0; pointer-events: none; }
.ad-image-preview-wrap {
  position: relative;
  margin-bottom: 0.5rem;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #e5e7eb;
}
.ad-image-preview__img { display: block; width: 100%; max-height: 8rem; object-fit: cover; }
.ad-image-preview-remove {
  position: absolute;
  top: 0.5rem;
  right: 0.5rem;
  width: 1.75rem;
  height: 1.75rem;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 0.875rem;
  cursor: pointer;
  line-height: 1;
  padding: 0;
}
.ad-image-preview-remove:hover { background: rgba(0,0,0,0.8); }
.ad-wizard-step--center { 
  text-align: center; 
  padding: 2rem 1.5rem; 
  max-width: 32rem;
  margin: 0 auto;
}
.ad-done-icon { 
  font-size: 4rem; 
  margin: 0 0 1rem; 
  line-height: 1;
  display: block;
}
.ad-done-title { 
  font-size: 1.5rem; 
  font-weight: 800; 
  color: #111; 
  margin: 0 0 0.75rem; 
  letter-spacing: -0.02em;
  line-height: 1.3;
}
.ad-done-text { 
  margin: 0 0 2rem; 
  font-size: 0.9375rem; 
  color: #6b7280; 
  line-height: 1.6;
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}
.ad-done-option-card {
  text-align: left;
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  margin: 0 0 1rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.ad-done-option-card--stripe {
  border-color: rgba(99, 91, 255, 0.35);
  background: linear-gradient(180deg, #f8f7ff 0%, #fff 100%);
}
.ad-done-option-card--whatsapp {
  border-color: rgba(34, 197, 94, 0.35);
  background: #f0fdf4;
}
.ad-done-option-card__title {
  font-size: 0.9375rem;
  font-weight: 800;
  color: #111827;
  margin: 0 0 0.35rem;
}
.ad-done-option-card__sub {
  font-size: 0.8125rem;
  color: #6b7280;
  margin: 0 0 1rem;
  line-height: 1.45;
}
.ad-done-option-card__btn {
  width: 100%;
  justify-content: center;
}
.ad-done-option-card__btn-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  text-decoration: none;
  box-sizing: border-box;
}
.ad-done-pix-receipt-wrap {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e5e7eb;
}
.ad-done-pix-receipt-wrap__hint {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 1rem;
  line-height: 1.55;
}
.ad-done-whatsapp-btn--compact {
  padding: 0.55rem 1rem;
  font-size: 0.875rem;
}
.ad-done-next-steps {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
  margin: 0 0 1rem;
  text-align: left;
}
.ad-done-next-steps__title { font-size: 0.875rem; font-weight: 700; color: #065f46; margin: 0 0 0.5rem; }
.ad-done-next-steps__list { margin: 0; padding-left: 1.25rem; font-size: 0.875rem; color: #047857; line-height: 1.6; }
.ad-done-pix-box {
  background: #fafafa;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1.75rem 1.75rem 1.875rem;
  margin: 0.5rem 0 1.75rem;
  text-align: left;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.ad-done-pix-box__label { 
  font-size: 0.75rem; 
  color: #9ca3af; 
  margin: 0 0 1rem; 
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.ad-done-pix-box__row { 
  display: flex; 
  align-items: center; 
  gap: 1rem; 
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.ad-done-pix-box__key { 
  font-family: ui-monospace, monospace;
  font-size: 0.9375rem; 
  font-weight: 600; 
  color: #7c3aed; 
  word-break: break-all;
  flex: 1;
  min-width: 0;
  padding: 0.35rem 0;
}
.ad-done-pix-box__copy {
  padding: 0.55rem 1.15rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #fff;
  background: #7c3aed;
  border: none;
  border-radius: 0.625rem;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.2s ease;
  box-shadow: 0 1px 2px rgba(124, 58, 237, 0.2);
}
.ad-done-pix-box__copy:hover { 
  background: #6d28d9; 
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(124, 58, 237, 0.3);
}
.ad-done-pix-box__details { 
  font-size: 0.875rem; 
  color: #6b7280; 
  margin: 0.25rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid #e8eaef;
  line-height: 1.55;
}
.ad-done-pix-receipt-wrap .ad-done-whatsapp-btn {
  margin-top: 0.125rem;
  padding: 0.85rem 1.35rem;
}
.ad-done-whatsapp-box {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  margin: 0 0 1.5rem;
  text-align: left;
  box-shadow: 0 1px 3px rgba(16, 185, 129, 0.1);
}
.ad-done-whatsapp-box__label { 
  font-size: 0.75rem; 
  color: #059669; 
  font-weight: 700; 
  margin: 0 0 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ad-done-whatsapp-box__text { 
  font-size: 0.875rem; 
  color: #047857; 
  margin: 0 0 1rem; 
  line-height: 1.6; 
}
.ad-done-whatsapp-box__text strong { 
  color: #065f46; 
  font-weight: 700;
}
.ad-done-whatsapp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.75rem 1.5rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #fff;
  background: #25d366;
  border: none;
  border-radius: 0.75rem;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(37, 211, 102, 0.3);
}
.ad-done-whatsapp-btn:hover { 
  background: #20ba5a; 
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(37, 211, 102, 0.4);
}
.ad-done-whatsapp-btn__icon { 
  font-size: 1.125rem; 
  line-height: 1;
}
.ad-done-close { 
  margin-top: 0;
  width: 100%;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  border-radius: 0.75rem;
  transition: all 0.2s ease;
}
.ad-done-close:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Claims — reference design: beige banner, white cards, pill status */
.promoter-claims-info {
  background: #FFF3ED;
  border-radius: 8px;
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.promoter-claims-info__title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #B0653B;
  margin: 0 0 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.promoter-claims-info__lead {
  font-size: 1.25rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.35rem;
}
.promoter-claims-info__sub {
  font-size: 0.875rem;
  color: #374151;
  margin: 0;
  line-height: 1.5;
}
.promoter-claims-info__sub a {
  color: #B0653B;
  font-weight: 600;
  text-decoration: none;
}
.promoter-claims-info__sub a:hover { text-decoration: underline; }
.promoter-claims-list { display: flex; flex-direction: column; gap: 1rem; }
.promoter-claim-card {
  background: #fff;
  border-radius: 8px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.promoter-claim-card__main {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 0.75rem;
}
.promoter-claim-card__icon {
  font-size: 1.5rem;
  line-height: 1;
  color: #4285F4;
}
.promoter-claim-card__main h4 {
  font-size: 1rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.25rem;
}
.promoter-claim-card__date { font-size: 0.8125rem; color: #6b7280; margin: 0; }
.promoter-claim-card__status { margin-left: auto; flex-shrink: 0; }
.promoter-claim-card .badge--pending {
  background: #FFF8E1;
  color: #B38600;
  border: 1px solid #FFB300;
  border-radius: 9999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: none;
}
.promoter-claim-card .badge--approved {
  background: #E8F5E9;
  color: #2E7D32;
  border-radius: 9999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: none;
}
.promoter-claim-card .badge--rejected {
  background: #FFEBEE;
  color: #C62828;
  border-radius: 9999px;
  padding: 0.35rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: none;
}
.promoter-claim-card__tip {
  font-size: 0.875rem;
  margin: 0;
  padding: 0.75rem 1rem;
  background: #F9FBE7;
  border-radius: 0.5rem;
  color: #374151;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  line-height: 1.45;
}
.promoter-claim-card__tip .promoter-claim-card__tip-icon { flex-shrink: 0; font-size: 1rem; }
.promoter-claim-card[data-status="approved"] .promoter-claim-card__tip {
  background: #E8F5E9;
  color: #2E7D32;
}
.promoter-claim-card[data-status="rejected"] .promoter-claim-card__tip {
  background: #FFEBEE;
  color: #C62828;
}
.promoter-claim-card__message {
  font-size: 0.85rem;
  margin: 0.5rem 0 0.75rem;
  padding: 0.5rem 0.75rem;
  background: #f8fafc;
  border-radius: 0.5rem;
  color: #475569;
}
.promoter-claim-card__message strong { color: #334155; }
.promoter-claim-card__message--appeal {
  background: #fffbeb;
  border: 1px solid #fcd34d;
}
.promoter-claim-card[data-status="appeal_pending"] .promoter-claim-card__tip {
  background: #FFF8E1;
  color: #92400e;
}
.promoter-claim-appeal {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid #e2e8f0;
}
.promoter-claim-appeal__label {
  display: block;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #334155;
  margin-bottom: 0.35rem;
}
.promoter-claim-appeal__input {
  width: 100%;
  min-height: 5.5rem;
  padding: 0.6rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.45;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  resize: vertical;
  box-sizing: border-box;
  margin-bottom: 0.5rem;
}
.promoter-claim-appeal__input:focus {
  outline: none;
  border-color: #B0653B;
  box-shadow: 0 0 0 2px rgba(176, 101, 59, 0.15);
}
.promoter-claim-appeal__submit { margin-top: 0.25rem; }
.promoter-claim-appeal__hint {
  font-size: 0.75rem;
  color: #64748b;
  margin: 0.35rem 0 0;
}

/* Account — Replit template style */
.promoter-account-wrap {
  max-width: 42rem;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.promoter-account-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.promoter-account-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  border-bottom: 1px solid hsl(var(--border) / 0.5);
  gap: 0.75rem;
}
.promoter-account-card__avatar-wrap {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: hsl(var(--primary) / 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.promoter-account-card__avatar { font-size: 1.25rem; }
.promoter-account-card__head-text { flex: 1; min-width: 0; }
.promoter-account-card__role { font-size: 1rem; font-weight: 800; margin: 0; color: hsl(var(--foreground)); line-height: 1.25; }
.promoter-account-card__type { font-size: 0.75rem; color: hsl(var(--muted-foreground)); margin: 0.25rem 0 0; text-transform: capitalize; }
.promoter-account-card__edit {
  padding: 0.375rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 700;
  border: 1px solid hsl(var(--border));
  border-radius: 0.75rem;
  background: #fff;
  color: hsl(var(--foreground));
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  transition: background 0.2s, border-color 0.2s;
}
.promoter-account-card__edit:hover { background: hsl(var(--muted)); border-color: hsl(var(--border)); }
.promoter-account-card__list { margin: 0; }
.promoter-account-card__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.875rem 1.5rem;
  border-bottom: 1px solid hsl(var(--border) / 0.4);
  gap: 1rem;
}
.promoter-account-card__row:last-child { border-bottom: none; }
.promoter-account-card__label {
  font-size: 0.75rem;
  font-weight: 700;
  color: hsl(var(--muted-foreground));
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.promoter-account-card__value {
  font-size: 0.875rem;
  font-weight: 600;
  color: hsl(var(--foreground));
  text-align: right;
  max-width: 60%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Voucher / partner codes — standalone card (Conta tab) */
.promoter-voucher-card {
  position: relative;
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.promoter-voucher-card__accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: linear-gradient(180deg, hsl(var(--primary)) 0%, hsl(152 45% 32%) 100%);
  border-radius: 1rem 0 0 1rem;
}
.promoter-voucher-card__inner {
  padding: 1.25rem 1.5rem 1.35rem 1.65rem;
}
.promoter-voucher-card__head {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.1rem;
}
.promoter-voucher-card__icon-wrap {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.85rem;
  background: linear-gradient(145deg, hsl(var(--primary) / 0.14) 0%, hsl(var(--primary) / 0.06) 100%);
  border: 1px solid hsl(var(--primary) / 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.promoter-voucher-card__icon {
  font-size: 1.35rem;
  line-height: 1;
}
.promoter-voucher-card__head-text {
  flex: 1;
  min-width: 0;
}
.promoter-voucher-card__title {
  font-size: 1rem;
  font-weight: 800;
  margin: 0 0 0.35rem;
  color: hsl(var(--foreground));
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.promoter-voucher-card__lead {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: hsl(var(--muted-foreground));
}
.promoter-voucher-card__body {
  padding-top: 0.15rem;
}
.promoter-voucher-card__label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem;
}
.promoter-voucher-card__field-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.65rem;
}
.promoter-voucher-card__input {
  flex: 1 1 12rem;
  min-width: 0;
  min-height: 2.75rem;
  padding: 0.65rem 1rem;
  font-size: 0.9375rem;
  font-weight: 500;
  color: hsl(var(--foreground));
  background: hsl(var(--background));
  border: 1px solid hsl(var(--border));
  border-radius: 0.75rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.promoter-voucher-card__input::placeholder {
  color: hsl(var(--muted-foreground) / 0.75);
  font-weight: 450;
}
.promoter-voucher-card__input:hover {
  border-color: hsl(var(--border) / 0.9);
}
.promoter-voucher-card__input:focus {
  outline: none;
  border-color: hsl(var(--primary));
  box-shadow: 0 0 0 3px hsl(var(--primary) / 0.18);
}
.promoter-voucher-card__submit {
  flex-shrink: 0;
  min-height: 2.75rem;
  padding: 0 1.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  border: none;
  border-radius: 0.75rem;
  background: linear-gradient(145deg, #1a5c35 0%, #154a2c 100%);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
  transition: filter 0.2s, transform 0.15s;
}
.promoter-voucher-card__submit:hover:not(:disabled) {
  filter: brightness(1.06);
}
.promoter-voucher-card__submit:active:not(:disabled) {
  transform: translateY(1px);
}
.promoter-voucher-card__submit:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}
.promoter-voucher-card__hint {
  margin: 0.65rem 0 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: hsl(var(--muted-foreground));
}
.promoter-voucher-card__msg {
  margin: 0.65rem 0 0;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.35;
  color: #b91c1c;
}
.promoter-voucher-card__msg.hidden {
  display: none !important;
}
.promoter-voucher-card__pill {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 1rem 1.1rem;
  border-radius: 0.85rem;
  background: linear-gradient(135deg, hsl(152 40% 96%) 0%, hsl(152 35% 94%) 100%);
  border: 1px solid hsl(152 35% 78%);
}
.promoter-voucher-card__pill-icon {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 999px;
  background: hsl(152 45% 36%);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.promoter-voucher-card__pill-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.promoter-voucher-card__pill-title {
  font-size: 0.875rem;
  font-weight: 800;
  color: hsl(152 30% 22%);
}
.promoter-voucher-card__pill-desc {
  font-size: 0.8125rem;
  line-height: 1.4;
  color: hsl(152 20% 32%);
}

/* ── Proprietário: programa de indicações ── */
.promoter-panel--referrals {
  max-width: 920px;
  margin: 0 auto;
}
.promoter-referral-layout {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.promoter-referral-page-head {
  padding: 0 0.15rem;
}
.promoter-referral-page-head__title {
  margin: 0 0 0.4rem;
  font-size: 1.25rem;
  font-weight: 800;
  color: hsl(152 32% 18%);
  line-height: 1.3;
}
.promoter-referral-page-head__sub {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: hsl(152 16% 30%);
  max-width: 40rem;
}
.promoter-referral-rules {
  border-radius: 0.9rem;
  border: 1px solid hsl(152 28% 85%);
  background: #fff;
  padding: 1.25rem 1.35rem 1.35rem;
  box-shadow: 0 6px 24px -16px rgba(15, 80, 50, 0.12);
}
.promoter-referral-rules__title {
  margin: 0 0 1.1rem;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(152 26% 28%);
}
.promoter-referral-rules-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem 1rem;
  align-items: start;
}
.promoter-referral-rules-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.45rem;
  margin: 0;
  padding: 0 0.35rem;
}
.promoter-referral-rules-step__glyph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: hsl(152 38% 96%);
  border: 1px solid hsl(152 24% 88%);
  color: hsl(152 28% 32%);
  flex-shrink: 0;
}
.promoter-referral-rules-step__glyph svg {
  display: block;
}
.promoter-referral-rules-step__label {
  font-size: 0.9375rem;
  font-weight: 800;
  color: hsl(152 22% 20%);
  line-height: 1.25;
}
.promoter-referral-rules-step__detail {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: hsl(152 12% 36%);
  max-width: 15rem;
}
.promoter-referral-rules-step__detail strong {
  color: hsl(152 18% 24%);
  font-weight: 700;
}
.promoter-referral-rules-step__once {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: hsl(152 10% 48%);
}
.promoter-referral-rules__footnote {
  margin: 1.15rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid hsl(152 18% 92%);
  font-size: 0.75rem;
  line-height: 1.4;
  text-align: center;
  color: hsl(152 10% 44%);
}
.promoter-referral-rules__footnote strong {
  color: hsl(152 16% 30%);
  font-weight: 700;
}
@media (max-width: 700px) {
  .promoter-referral-rules-steps {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
  .promoter-referral-rules-step {
    display: grid;
    grid-template-columns: 3rem 1fr;
    column-gap: 0.85rem;
    row-gap: 0.25rem;
    align-items: start;
    text-align: left;
    padding: 0;
  }
  .promoter-referral-rules-step__glyph {
    grid-column: 1;
    grid-row: 1 / span 2;
  }
  .promoter-referral-rules-step__label {
    grid-column: 2;
    grid-row: 1;
  }
  .promoter-referral-rules-step__detail {
    grid-column: 2;
    grid-row: 2;
    max-width: none;
  }
  .promoter-referral-rules-step__once {
    display: inline;
    margin-top: 0;
    margin-left: 0.25rem;
  }
}
.promoter-referral-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
@media (max-width: 768px) {
  .promoter-referral-grid {
    grid-template-columns: 1fr;
  }
}
.promoter-referral-card {
  border-radius: 0.9rem;
  border: 1px solid hsl(152 28% 85%);
  background: #fff;
  padding: 1.15rem 1.25rem;
  box-shadow: 0 8px 28px -18px rgba(15, 80, 50, 0.2);
}
.promoter-referral-card--qr {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.promoter-referral-card__title {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(152 26% 28%);
}
.promoter-referral-card__code {
  margin: 0 0 1rem;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  color: hsl(152 35% 22%);
  word-break: break-all;
}
.promoter-referral-card__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  color: hsl(152 20% 36%);
  margin-bottom: 0.35rem;
  text-align: left;
  width: 100%;
}
.promoter-referral-card__field-row {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  width: 100%;
}
.promoter-referral-card__input {
  flex: 1;
  min-width: 0;
  padding: 0.55rem 0.65rem;
  border-radius: 0.5rem;
  border: 1px solid hsl(152 22% 82%);
  font-size: 0.8125rem;
  background: hsl(152 20% 98%);
  color: hsl(152 30% 18%);
}
.promoter-referral-card__btn {
  flex-shrink: 0;
  padding: 0.55rem 1rem;
  border-radius: 0.5rem;
  border: 1px solid hsl(152 40% 34%);
  background: linear-gradient(180deg, hsl(152 42% 40%) 0%, hsl(152 48% 32%) 100%);
  color: #fff;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  transition: filter 0.15s, box-shadow 0.15s;
}
.promoter-referral-card__btn:hover {
  filter: brightness(1.06);
  box-shadow: 0 4px 14px -4px rgba(5, 96, 58, 0.45);
}
.promoter-referral-card__hint {
  margin: 0.65rem 0 0;
  font-size: 0.75rem;
  line-height: 1.45;
  color: hsl(152 16% 38%);
  text-align: left;
  width: 100%;
}
.promoter-referral-card__hint--tight {
  margin-top: 0;
  margin-bottom: 0.75rem;
}
.promoter-referral-card__muted {
  margin: 0;
  font-size: 0.875rem;
  color: hsl(152 12% 45%);
}
.promoter-referral-qr-wrap--fixed {
  /* Keep width when canvas/img are position:absolute (otherwise wrap collapses and max-width:100% squishes the QR). */
  box-sizing: border-box;
  width: 100%;
  min-width: 200px;
  max-width: 220px;
  margin-left: auto;
  margin-right: auto;
  min-height: 212px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.promoter-referral-qr-wrap[data-promoter-referral-qr] {
  position: relative;
}
.promoter-referral-qr-wrap--js-ok .promoter-referral-qr-canvas:not([hidden]) {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
  max-width: none;
  width: 200px;
  height: 200px;
}
.promoter-referral-qr-wrap--js-ok .promoter-referral-qr-server-fallback {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.promoter-referral-qr-wrap {
  padding: 0.5rem;
  border-radius: 0.65rem;
  background: #fff;
  border: 1px dashed hsl(152 25% 82%);
}
.promoter-referral-qr-img {
  display: block;
  border-radius: 0.35rem;
  max-width: 100%;
  height: auto;
}
canvas.promoter-referral-qr-canvas {
  max-width: none;
  width: 200px;
  height: 200px;
}
.promoter-referral-stats {
  border-radius: 0.9rem;
  border: 1px solid hsl(152 28% 85%);
  background: #fff;
  padding: 1.15rem 1.25rem;
}
.promoter-referral-stats__title {
  margin: 0 0 1rem;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(152 26% 28%);
}
.promoter-referral-stats__row {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: flex-start;
}
.promoter-referral-stat {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 5rem;
}
.promoter-referral-stat--wide {
  flex: 1;
  min-width: min(100%, 240px);
}
.promoter-referral-stat__value {
  font-size: 2rem;
  font-weight: 800;
  line-height: 1;
  color: hsl(152 38% 28%);
  font-variant-numeric: tabular-nums;
}
.promoter-referral-stat__label {
  font-size: 0.75rem;
  font-weight: 600;
  color: hsl(152 14% 40%);
}
.promoter-referral-milestone {
  margin: 0 0 0.65rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: hsl(152 22% 28%);
}
.promoter-referral-milestone--done {
  margin: 0;
  font-weight: 700;
  color: hsl(152 45% 30%);
}
.promoter-referral-milestone--scheduled {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(152 24% 28%);
}
.promoter-referral-list__item--stack {
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  padding: 0.75rem 0;
}
.promoter-referral-list__row1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.promoter-referral-list__row2 {
  padding-left: 0;
}
.promoter-referral-list__detail {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: hsl(152 14% 38%);
}
.promoter-referral-list__badge {
  flex-shrink: 0;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: hsl(152 18% 90%);
  color: hsl(152 22% 32%);
}
.promoter-referral-list__badge--ok {
  background: hsl(152 40% 90%);
  color: hsl(152 45% 28%);
}
.promoter-referral-progress {
  height: 0.45rem;
  border-radius: 999px;
  background: hsl(152 22% 92%);
  overflow: hidden;
}
.promoter-referral-progress__bar {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, hsl(152 48% 42%) 0%, hsl(168 42% 40%) 100%);
  transition: width 0.35s ease;
}
.promoter-referral-list-section {
  border-radius: 0.9rem;
  border: 1px solid hsl(152 28% 85%);
  background: #fff;
  padding: 1.15rem 1.25rem;
}
.promoter-referral-list-section__title {
  margin: 0 0 0.85rem;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: hsl(152 26% 28%);
}
.promoter-referral-list-section__empty {
  margin: 0;
  font-size: 0.875rem;
  color: hsl(152 14% 42%);
}
.promoter-referral-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.promoter-referral-list__item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.65rem 0;
  border-bottom: 1px solid hsl(152 20% 92%);
  font-size: 0.875rem;
}
.promoter-referral-list__item:last-child {
  border-bottom: none;
}
.promoter-referral-list__name {
  font-weight: 600;
  color: hsl(152 28% 20%);
  min-width: 0;
  word-break: break-word;
}
.promoter-referral-list__date {
  flex-shrink: 0;
  font-size: 0.8125rem;
  color: hsl(152 12% 42%);
  font-variant-numeric: tabular-nums;
}
.page--auth .login-page__input--referral {
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.promoter-trial-active-banner {
  margin: 0 0 1rem;
}
.promoter-trial-active-banner.hidden {
  display: none !important;
}
.promoter-trial-active-banner__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  border: 1px solid #6ee7b7;
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 55%, #a7f3d0 160%);
  box-shadow: 0 8px 24px -12px rgba(16, 185, 129, 0.35);
}
.promoter-trial-active-banner__icon {
  font-size: 1.5rem;
  line-height: 1;
  flex-shrink: 0;
}
.promoter-trial-active-banner__copy {
  flex: 1;
  min-width: min(100%, 220px);
}
.promoter-trial-active-banner__title {
  display: block;
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #065f46;
  margin: 0 0 0.25rem;
}
.promoter-trial-active-banner__body {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: #047857;
}
.promoter-trial-active-banner__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  background: linear-gradient(180deg, #34d399 0%, #059669 100%);
  border: 1px solid rgba(5, 150, 105, 0.35);
  flex-shrink: 0;
  transition: filter 0.2s, box-shadow 0.2s;
}
.promoter-trial-active-banner__cta:hover {
  color: #fff;
  text-decoration: none;
  filter: brightness(1.05);
  box-shadow: 0 6px 16px -4px rgba(5, 150, 105, 0.45);
}
.promoter-trial-ending-banner {
  margin-bottom: 1rem;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  border: 1px solid #f59e0b;
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}
.promoter-trial-ending-banner.hidden {
  display: none !important;
}
.promoter-trial-ending-banner__text {
  margin: 0;
  flex: 1;
  min-width: 200px;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #78350f;
}
.promoter-trial-ending-banner__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(145deg, #1a5c35 0%, #154a2c 100%);
  text-decoration: none;
  white-space: nowrap;
}
.promoter-trial-ending-banner__btn:hover {
  filter: brightness(1.05);
  color: #fff;
}
.promoter-account-plan-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: 1rem;
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.promoter-account-plan__title {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.75rem;
}
.promoter-account-plan__current {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  background: #fef9c3;
  border: 1px solid #fde047;
  border-radius: 0.75rem;
  margin-bottom: 1rem;
}
.promoter-account-plan__icon { font-size: 1.25rem; flex-shrink: 0; }
.promoter-account-plan__current-text { flex: 1; min-width: 0; }
.promoter-account-plan__name { font-size: 0.875rem; font-weight: 700; margin: 0; color: hsl(var(--foreground)); }
.promoter-account-plan__desc { font-size: 0.75rem; color: #78716c; margin: 0.25rem 0 0; }
.promoter-account-plan__end-date { font-size: 0.75rem; color: #78716c; margin: 0.25rem 0 0; font-weight: 500; }
.promoter-account-plan__badge {
  padding: 0.25rem 0.6rem;
  background: #f59e0b;
  color: #fff;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
}
.promoter-account-plan__upgrade-title {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.75rem;
  padding-top: 0.25rem;
}
.promoter-account-upgrade-item__head-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.4rem;
  flex-shrink: 0;
  text-align: right;
}
.promoter-plan-billing-switch {
  position: relative;
  display: inline-flex;
  align-items: stretch;
  padding: 3px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid hsl(var(--border) / 0.85);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.promoter-plan-billing-switch::before {
  content: "";
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 3px;
  width: calc((100% - 6px) / 2);
  border-radius: 999px;
  background: var(--primary-hex);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
  z-index: 0;
  pointer-events: none;
  transition: left 0.22s ease;
}
.promoter-plan-billing-switch[data-active="annual"]::before {
  left: calc(3px + (100% - 6px) / 2);
}
.promoter-plan-billing-switch__opt {
  position: relative;
  z-index: 1;
  flex: 1 1 50%;
  min-width: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.4rem 0.85rem;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: hsl(var(--foreground));
  transition: color 0.2s ease;
  white-space: nowrap;
}
.promoter-plan-billing-switch__opt:hover:not(:disabled):not(.is-active) {
  color: hsl(var(--foreground));
}
.promoter-plan-billing-switch__opt.is-active {
  color: #fff;
}
.promoter-plan-billing-switch__opt:focus-visible {
  outline: 2px solid var(--primary-hex);
  outline-offset: 2px;
}
.promoter-plan-billing-switch__opt:disabled {
  cursor: not-allowed;
  opacity: 0.42;
}
.promoter-account-upgrade-item__pricing {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  text-align: right;
}
.promoter-account-upgrade-list { display: flex; flex-direction: column; gap: 0.75rem; }
.promoter-account-upgrade-item {
  border: 1px solid hsl(var(--border) / 0.6);
  border-radius: 0.75rem;
  padding: 1rem;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.promoter-account-upgrade-item__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.promoter-account-upgrade-item__name { font-size: 0.875rem; font-weight: 700; margin: 0; color: hsl(var(--foreground)); }
.promoter-account-upgrade-item__price { font-size: 0.875rem; font-weight: 700; color: hsl(var(--primary)); flex-shrink: 0; }
.promoter-account-upgrade-item__features {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.8125rem;
  color: hsl(var(--muted-foreground));
}
.promoter-account-upgrade-item__features li {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-bottom: 0.2rem;
}
.promoter-account-upgrade-item__features li:last-child { margin-bottom: 0; }
.promoter-account-upgrade-item__check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: var(--primary-hex);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 700;
  flex-shrink: 0;
}
.promoter-account-upgrade-item__actions {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.35rem;
}
/* WhatsApp + Stripe: one row; share width (avoid wrap + tiny-viewport stack) */
.promoter-account-upgrade-item__actions:has(.promoter-account-upgrade-item__btn--stripe) {
  flex-wrap: nowrap;
}
.promoter-account-upgrade-item__actions:has(.promoter-account-upgrade-item__btn--stripe) .promoter-account-upgrade-item__btn {
  flex: 1 1 0;
  min-width: 0;
}
.promoter-account-upgrade-item__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 calc(50% - 0.25rem);
  min-width: min(100%, 9.5rem);
  padding: 0.55rem 0.65rem;
  margin-top: 0;
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  background: var(--primary-hex);
  color: #fff;
  border: none;
  border-radius: 0.5rem;
  text-decoration: none;
  transition: background 0.2s, filter 0.2s, box-shadow 0.2s, color 0.2s;
  box-sizing: border-box;
}
button.promoter-account-upgrade-item__btn {
  cursor: pointer;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
}
.promoter-account-upgrade-item__btn--whatsapp {
  background: var(--primary-hex);
  color: #fff;
}
.promoter-account-upgrade-item__btn--whatsapp:hover {
  filter: brightness(1.06);
  background: var(--primary-hex);
  color: #fff;
}
.promoter-account-upgrade-item__btn--stripe {
  background: #ffe600;
  color: #0a0a0a;
  border: 1px solid rgba(0, 0, 0, 0.12);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}
.promoter-account-upgrade-item__btn--stripe:hover {
  filter: none;
  background: #f5dc00;
  color: #0a0a0a;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
}
.promoter-account-upgrade-item__actions--single .promoter-account-upgrade-item__btn {
  flex: 1 1 100%;
}

.promoter-account-danger {
  margin-top: 1.5rem;
  padding: 1rem 1.1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(185, 28, 28, 0.35);
  background: rgba(254, 242, 242, 0.85);
}
.promoter-account-danger__title {
  margin: 0 0 0.35rem;
  font-size: 0.9375rem;
  font-weight: 800;
  color: #991b1b;
}
.promoter-account-danger__text {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: hsl(var(--muted-foreground));
}
.promoter-account-danger__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.85rem;
  font-size: 0.8125rem;
  font-weight: 700;
  font-family: inherit;
  line-height: 1.2;
  color: #fff;
  background: #b91c1c;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: filter 0.15s, background 0.15s;
}
.promoter-account-danger__btn:hover {
  filter: brightness(1.05);
  background: #991b1b;
}
.promoter-account-delete-modal__body {
  padding: 0 1rem 1rem;
}
.promoter-account-delete-modal__lead {
  margin: 0 0 0.75rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: hsl(var(--foreground));
}
.promoter-account-delete-modal__list {
  margin: 0 0 1rem;
  padding-left: 1.15rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
}
.promoter-account-delete-modal__list li { margin-bottom: 0.35rem; }
.promoter-account-delete-modal__check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.8125rem;
  line-height: 1.4;
  cursor: pointer;
  margin-bottom: 0.75rem;
}
.promoter-account-delete-modal__check input {
  margin-top: 0.2rem;
  flex-shrink: 0;
}
.promoter-account-delete-modal__err {
  font-size: 0.8125rem;
  color: #b91c1c;
  margin: 0 0 0.5rem;
}
.promoter-account-delete-modal__confirm {
  background: #b91c1c;
  color: #fff;
  border: none;
}
.promoter-account-delete-modal__confirm:hover:not(:disabled) {
  filter: brightness(1.05);
  background: #991b1b;
}
.promoter-account-delete-modal__confirm:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* Form wrap */
.promoter-form-wrap {
  margin-top: 1.5rem;
  padding: 1.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  background: #f9fafb;
}
.promoter-form-wrap.hidden { display: none !important; }
.promoter-form-wrap.spot-form-wrap {
  background: linear-gradient(180deg, #f0fdf4 0%, #fafbfa 100%);
  border-radius: 1rem;
  border: 1px solid rgba(26, 92, 53, 0.25);
  padding: 1.5rem 1.75rem;
  box-shadow: 0 2px 12px rgba(26, 92, 53, 0.06);
}
.spot-form-wrap .promoter-form-title {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0 0 1.25rem;
  color: #14532d;
}
.promoter-form-title { font-size: 1rem; font-weight: 700; margin: 0 0 1rem; }
.promoter-form-wrap .form-row { margin-bottom: 1rem; }
.promoter-form-wrap .form-row label { display: block; font-size: 0.85rem; font-weight: 600; margin-bottom: 0.25rem; }
.promoter-form-wrap .form-row input,
.promoter-form-wrap .form-row select,
.promoter-form-wrap .form-row textarea {
  width: 100%;
  max-width: 24rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.9rem;
}

/* Adaptive vertical center (same as auth columns): flex column + ::before/::after flex-grow. Wrap content in __mid. */
.admin-vstack-adapt {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  min-height: 0;
}
.admin-vstack-adapt::before,
.admin-vstack-adapt::after {
  content: '';
  flex: 1 1 0;
  min-height: 0;
  width: 100%;
}
.admin-vstack-adapt__mid {
  flex: 0 0 auto;
  position: relative;
  z-index: 1;
  min-width: 0;
  width: 100%;
}

/* Admin dashboard — Replit-style: centered, fun, card-based */
.admin-dashboard-wrap {
  max-width: 80rem;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  min-height: 100vh;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  background: linear-gradient(180deg, #f5f5f4 0%, #fafaf9 8%, #fff 20%);
}
.admin-dashboard-header {
  margin-bottom: 2rem;
  text-align: center;
}
.admin-dashboard-title {
  font-size: 1.875rem;
  font-weight: 800;
  color: #111;
  margin: 0 0 0.35rem;
  letter-spacing: -0.025em;
  line-height: 1.2;
}
.admin-dashboard-subtitle {
  font-size: 0.9375rem;
  color: #6b7280;
  margin: 0;
}

/* Admin: stat / activity cards that link to a moderation queue */
.admin-stat-card--pending-review {
  border: 2px solid #dc2626;
  box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.12), 0 4px 14px rgba(220, 38, 38, 0.1);
  cursor: pointer;
}
.admin-stat-card--pending-review:hover {
  border-color: #b91c1c;
  box-shadow: 0 0 0 1px rgba(185, 28, 28, 0.18), 0 6px 18px rgba(220, 38, 38, 0.16);
  transform: translateY(-1px);
}
.admin-stat-card--pending-review:focus {
  outline: none;
}
.admin-stat-card--pending-review:focus-visible {
  outline: 2px solid #dc2626;
  outline-offset: 3px;
}

.admin-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
@media (max-width: 768px) {
  .admin-stats { grid-template-columns: repeat(2, 1fr); }
}
.admin-stat-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 1rem;
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.2s, transform 0.2s;
}
.admin-stat-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  transform: translateY(-1px);
}
.admin-stat-card__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}
.admin-stat-card--orange .admin-stat-card__icon { background: #fef3c7; color: #b45309; }
.admin-stat-card--blue .admin-stat-card__icon { background: #dbeafe; color: #1d4ed8; }
.admin-stat-card--green .admin-stat-card__icon { background: #d1fae5; color: #047857; }
.admin-stat-card--purple .admin-stat-card__icon { background: #f3e8ff; color: #7c3aed; }
.admin-stat-card--teal .admin-stat-card__icon { background: #ccfbf1; color: #0f766e; }
.admin-stat-card--rose .admin-stat-card__icon { background: #fce7f3; color: #be185d; }
.admin-stat-card--indigo .admin-stat-card__icon { background: #e0e7ff; color: #4338ca; }
.admin-stat-card--slate .admin-stat-card__icon { background: #e2e8f0; color: #334155; }
.admin-activity-block {
  margin-bottom: 2rem;
}
.admin-activity-block__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 1rem;
}
.admin-activity-block__titles { min-width: 0; }
.admin-activity-block__title {
  font-size: 1.125rem;
  font-weight: 800;
  color: #111;
  margin: 0 0 0.25rem;
  letter-spacing: -0.02em;
}
.admin-activity-block__subtitle {
  font-size: 0.8125rem;
  color: #6b7280;
  margin: 0;
  max-width: 42rem;
  line-height: 1.45;
}
.admin-activity-block__baseline-btn { flex-shrink: 0; }
.admin-stats--activity {
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 0;
}
@media (max-width: 900px) {
  .admin-stats--activity { grid-template-columns: repeat(2, 1fr); }
}
.admin-stat-card__value {
  display: block;
  font-size: 1.5rem;
  font-weight: 800;
  color: #111;
  line-height: 1.2;
}
.admin-stat-card__label {
  font-size: 0.8125rem;
  color: #6b7280;
  font-weight: 500;
  margin-top: 0.15rem;
}
/* Admin nav tabs: same components as promoter dashboard (.promoter-dashboard-tabs + .promoter-tab + .admin-tab for JS) */
.admin-dashboard-wrap .promoter-dashboard-tabs {
  margin-bottom: 2rem;
}
.admin-dashboard-wrap .promoter-tab.admin-tab--needs-attention:not(.active) {
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.35);
  border-radius: 0.5rem;
}
.admin-panel { display: block; }
.admin-panel.hidden { display: none !important; }
.admin-panel__card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 1rem;
  padding: 1.5rem;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  overflow: hidden;
}
.admin-panel__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.admin-panel__heading {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111;
  margin: 0;
}
.admin-panel__sub {
  font-size: 0.875rem;
  color: #6b7280;
  margin: 0 0 1rem;
}
.admin-panel__empty {
  text-align: center;
  padding: 3rem 1rem;
  display: none;
}
.admin-panel__empty-icon {
  display: block;
  font-size: 3rem;
  color: var(--primary-hex);
  margin-bottom: 0.5rem;
}
.admin-panel__empty-title { font-size: 1.125rem; font-weight: 700; margin: 0 0 0.25rem; }
.admin-panel__empty-sub { font-size: 0.9rem; color: #6b7280; margin: 0; }
.admin-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  border-radius: 0.5rem;
  border: 1px solid transparent;
  cursor: pointer;
}
.admin-btn--primary {
  background: var(--primary-hex);
  color: white;
  border-color: var(--primary-hex);
  border-radius: 0.5rem;
  box-shadow: 0 2px 4px rgba(22, 101, 52, 0.25);
}
.admin-btn--primary:hover {
  opacity: 0.95;
  box-shadow: 0 3px 8px rgba(22, 101, 52, 0.3);
}
.admin-btn--secondary {
  background: #fff;
  color: #374151;
  border-color: #d1d5db;
}
.admin-btn--small { padding: 0.35rem 0.65rem; font-size: 0.8rem; }
.admin-btn--success { background: #16a34a; color: white; border-color: #16a34a; }
.admin-btn--danger { background: #dc2626; color: white; border-color: #dc2626; }
.admin-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  font-size: 1rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.375rem;
  cursor: pointer;
  margin: 0 0.15rem;
}
.admin-btn-icon:hover { background: #f3f4f6; }
.admin-btn-icon--danger { color: #dc2626; border-color: #fecaca; }
/* Paused local: play icon = reativar */
.admin-btn-icon.btn-pause-spot--inactive {
  color: var(--primary-hex, #1a5c35);
  border-color: rgba(26, 92, 53, 0.35);
}
.admin-btn-icon.btn-pause-spot--inactive:hover {
  background: rgba(26, 92, 53, 0.08);
}
.admin-badge {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 9999px;
  background: #e5e7eb;
  color: #374151;
}
.admin-badge--approved { background: #dcfce7; color: #166534; }
.admin-badge--cat { background: #fed7aa; color: #9a3412; }
.admin-list { display: flex; flex-direction: column; gap: 0.75rem; }
.admin-card {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
}
.admin-card__main { flex: 1; min-width: 0; }
.admin-card__meta { font-size: 0.8rem; color: #6b7280; margin: 0.25rem 0 0; }
.admin-card__actions { display: flex; gap: 0.5rem; flex-shrink: 0; }

/* Panel Pendentes — card with yellow border, thumb, tags, actions */
.admin-pending-card {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.25rem;
  border: 2px solid #eab308;
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.admin-pending-card__thumb {
  width: 6.75rem;
  height: 6.75rem;
  flex-shrink: 0;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #dcfce7;
  display: flex;
  align-items: center;
  justify-content: center;
}
.admin-pending-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.admin-pending-card__placeholder-icon {
  font-size: 1.75rem;
  opacity: 0.6;
}
.admin-pending-card__body {
  flex: 1;
  min-width: 0;
}
.admin-pending-card__name {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 0.35rem 0;
  color: #111827;
  line-height: 1.3;
}
.admin-pending-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 0.35rem;
}
.admin-pending-card__tag {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 600;
  border-radius: 9999px;
}
.admin-pending-card__tag--cat {
  background: #ea580c;
  color: #fff;
  text-transform: lowercase;
}
.admin-pending-card__tag--duplicate {
  background: #fef08a;
  color: #1f2937;
}
.admin-pending-card__tag--status {
  background: #fef3c7;
  color: #92400e;
  text-transform: none;
}
.admin-pending-card__tag--proof {
  background: #fff7ed;
  color: #9a3412;
  text-transform: none;
}
.admin-pending-card__btn-proof {
  min-width: 11rem;
  text-align: center;
}
.admin-pending-card__proof-done {
  font-size: 0.78rem;
  color: #64748b;
  text-align: right;
  line-height: 1.35;
  max-width: 11rem;
}
.admin-pending-card__meta-line {
  font-size: 0.8rem;
  color: #4b5563;
  margin: 0.2rem 0 0 0;
  line-height: 1.45;
}
.admin-pending-card__meta-line--owner {
  color: #374151;
  font-weight: 500;
}
.admin-pending-card__desc {
  font-size: 0.8125rem;
  color: #1f2937;
  margin: 0.45rem 0 0 0;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.admin-pending-card__date {
  font-size: 0.8rem;
  color: #6b7280;
  margin: 0.5rem 0 0 0;
}
.admin-pending-card__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}
.admin-pending-card__btn-approve,
.admin-pending-card__btn-reject {
  min-width: 7rem;
  padding: 0.4rem 0.75rem;
  font-size: 0.85rem;
  border-radius: 0.5rem;
  border: none;
}
.admin-pending-card__link {
  font-size: 0.8rem;
  color: #6b7280;
  text-decoration: none;
}
.admin-pending-card__link:hover { color: #111827; text-decoration: underline; }

/* Admin Reivindicações — header and total */
.admin-claims-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.admin-claims-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.25rem;
}
.admin-claims-subtitle {
  font-size: 0.9375rem;
  color: #6b7280;
  margin: 0;
  line-height: 1.45;
}
.admin-claims-total {
  font-size: 0.9rem;
  color: #6b7280;
  margin: 0;
  flex-shrink: 0;
}
.admin-claims-filters {
  margin: -0.5rem 0 1rem;
  font-size: 0.875rem;
  color: #4b5563;
}
.admin-claims-filter-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  user-select: none;
}
.admin-claims-filter-label input {
  width: 1rem;
  height: 1rem;
  accent-color: var(--primary-hex, #1a5c35);
}
.admin-claims-list { display: flex; flex-direction: column; gap: 1rem; }

/* Admin claim card — block layout, yellow (pending) / green (approved) / red (rejected) */
.admin-claim-card {
  padding: 1.25rem 1.5rem;
  border-radius: 0.75rem;
  border: 1px solid transparent;
}
.admin-claim-card--pending {
  background: #fffbeb;
  border-color: #fcd34d;
}
.admin-claim-card--approved {
  background: #f0fdf4;
  border-color: #86efac;
}
.admin-claim-card--rejected {
  background: #fef2f2;
  border-color: #fecaca;
}
.admin-claim-card--moderation-blocked {
  border-color: #fdba74;
  box-shadow: inset 0 0 0 1px rgba(234, 88, 12, 0.12);
}
.admin-claim-card__moderation-blocked {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 0.5rem;
  background: #fff7ed;
  border: 1px solid #fdba74;
  color: #7c2d12;
  font-size: 0.875rem;
  line-height: 1.45;
}
.admin-claim-card__moderation-blocked strong {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #9a3412;
}
.admin-claim-card__moderation-blocked p {
  margin: 0;
}
.admin-claim-card__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}
.admin-claim-card__top-actions {
  margin-left: auto;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.admin-claim-card__collapse-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  background: #fff;
  color: #374151;
  font-size: 0.65rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.admin-claim-card__collapse-btn:hover {
  background: #f9fafb;
  border-color: #d1d5db;
}
.admin-claim-card__hidden-pill {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: #e5e7eb;
  color: #4b5563;
}
.admin-claim-card--dashboard-hidden {
  opacity: 0.92;
}
.admin-claim-card--collapsed .admin-claim-card__details {
  display: none;
}
.admin-claim-card__status-badge {
  font-size: 0.875rem;
  font-weight: 700;
  color: #111;
}
.admin-claim-card__status-badge--approved { color: #166534; }
.admin-claim-card__status-badge--rejected { color: #991b1b; }
.admin-claim-card__status-badge--appeal-pending { color: #92400e; }
.admin-claim-card__id-date {
  font-size: 0.875rem;
  font-weight: 600;
  color: #374151;
}
.admin-claim-card__spot {
  font-size: 1.125rem;
  font-weight: 700;
  color: #111;
  margin: 0 0 0.5rem;
}
.admin-claim-card__user {
  font-size: 0.9375rem;
  color: #374151;
  margin: 0 0 0.25rem;
}
.admin-claim-card__promoter,
.admin-claim-card__cpf {
  font-size: 0.9375rem;
  color: #374151;
  margin: 0 0 0.25rem;
}
.admin-claim-card__label {
  font-weight: 600;
  color: #64748b;
  margin-right: 0.25rem;
}
.admin-claim-card__email {
  font-size: 0.9rem;
  color: #6b7280;
  margin: 0 0 0.25rem;
}
.admin-claim-card__message {
  margin-top: 0.75rem;
  padding: 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 0.5rem;
}
.admin-claim-card__message strong { font-size: 0.8rem; text-transform: uppercase; color: #64748b; }
.admin-claim-card__message-text { margin: 0.35rem 0 0; font-size: 0.9rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.admin-claim-card__admin-note {
  margin-top: 0.75rem;
  padding: 0.75rem;
  background: #fff;
  border: 1px solid #fecaca;
  border-radius: 0.5rem;
}
.admin-claim-card__admin-note strong { font-size: 0.8rem; text-transform: uppercase; color: #991b1b; }
.admin-claim-card__message--appeal {
  background: #fffbeb;
  border-color: #fcd34d;
}
.admin-claim-card__message--appeal strong { color: #92400e; }
.admin-claim-card__note {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(0,0,0,0.08);
}
.admin-claim-card__note label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: #374151;
}
.admin-claim-note-input {
  width: 100%;
  max-width: 32rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.9rem;
}
.admin-claim-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}
.admin-btn--outline {
  background: transparent;
  border: 2px solid #dc2626;
  color: #dc2626;
}
.admin-btn--outline:hover {
  background: #fef2f2;
  border-color: #b91c1c;
  color: #b91c1c;
}
.admin-badge--warning { background: #fed7aa; color: #9a3412; }
.admin-badge--purple { background: #ede9fe; color: #5b21b6; }

/* Monetization summary cards (Replit template: icon box + value + label) */
.admin-monetization-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .admin-monetization-cards { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 1024px) {
  .admin-monetization-cards { grid-template-columns: repeat(5, 1fr); }
}
.admin-mono-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 1rem;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.admin-mono-card__icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  flex-shrink: 0;
}
.admin-mono-card:nth-child(1) .admin-mono-card__icon { background: #fef3c7; color: #b45309; }
.admin-mono-card:nth-child(2) .admin-mono-card__icon { background: #dbeafe; color: #1d4ed8; }
.admin-mono-card:nth-child(3) .admin-mono-card__icon { background: #e9d5ff; color: #7c3aed; }
.admin-mono-card:nth-child(4) .admin-mono-card__icon { background: #d1fae5; color: #059669; }
.admin-mono-card:nth-child(5) .admin-mono-card__icon { background: #ccfbf1; color: #0d9488; }
.admin-mono-card__value { font-size: 1.5rem; font-weight: 800; color: #111; line-height: 1.2; }
.admin-mono-card__label { font-size: 0.75rem; color: #6b7280; display: block; margin-top: 0.125rem; }
.admin-mono-section-title { font-size: 1.125rem; font-weight: 700; color: #111; margin: 0 0 1rem; display: flex; align-items: center; gap: 0.5rem; }
.admin-mono-section-title__icon { font-size: 1.25rem; }

/* Monetization ad cards — Replit design: grey card, thumb, badges, owner/price row, Pausar/Rejeitar */
.admin-ads-list { display: flex; flex-direction: column; gap: 0.75rem; }
.admin-ad-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.admin-ad-card__thumb {
  flex-shrink: 0;
  width: 5rem;
  height: 5rem;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
}
.admin-ad-card__img { width: 100%; height: 100%; object-fit: contain; }
.admin-ad-card__img--placeholder { display: flex; align-items: center; justify-content: center; font-size: 1.75rem; }
.admin-ad-card__body { flex: 1; min-width: 0; }
.admin-ad-card__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.admin-ad-card__title { margin: 0; font-size: 1rem; font-weight: 700; color: #111; }
.admin-ad-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
}
.admin-ad-badge--purple { background: #ede9fe; color: #5b21b6; }
.admin-ad-badge--pink { background: #fce7f3; color: #be185d; }
.admin-ad-badge--blue { background: #dbeafe; color: #1d4ed8; }
.admin-ad-badge--default { background: #e5e7eb; color: #374151; }
.admin-ad-badge--active { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.admin-ad-card__desc { font-size: 0.8125rem; color: #6b7280; margin: 0 0 0.5rem; line-height: 1.4; }
.admin-ad-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: #6b7280;
  margin-bottom: 0.35rem;
}
.admin-ad-card__owner { color: #374151; }
.admin-ad-card__price { font-size: 0.8125rem; font-weight: 700; color: #059669; }
.admin-ad-card__period-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.75rem;
}
.admin-ad-card__period { color: #6b7280; margin: 0; }
.admin-ad-card__period--pending { color: #b45309; font-weight: 500; }
.admin-ad-card__link {
  font-size: 0.8125rem;
  color: var(--primary-hex, #16a34a);
  text-decoration: none;
}
.admin-ad-card__link:hover { text-decoration: underline; }
.admin-ad-card__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex-shrink: 0;
  align-items: flex-end;
}
.admin-btn--pause {
  border: 2px solid #ea580c;
  color: #ea580c;
  background: transparent;
  padding: 0.4rem 0.75rem;
  font-size: 0.8125rem;
  font-weight: 600;
  border-radius: 0.5rem;
  cursor: pointer;
}
.admin-btn--pause:hover { background: #fff7ed; color: #c2410c; border-color: #c2410c; }
.admin-ad-card__reject {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #dc2626;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.admin-ad-card__reject:hover { color: #b91c1c; text-decoration: underline; }
.admin-badge--pending { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.promoter-tab__badge.admin-tab__badge.hidden { display: none !important; }

/* Admin search field above tables */
.admin-search-wrap { margin-bottom: 1rem; }

.admin-spots-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 1.25rem;
  margin-bottom: 1rem;
}
.admin-spots-filters__search {
  flex: 1 1 12rem;
  margin-bottom: 0;
  min-width: 0;
}
.admin-spots-filters__category {
  flex: 0 0 auto;
  margin-bottom: 0;
}
.admin-spots-filters__category label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #374151;
}
.admin-spots-category-select {
  min-width: 14rem;
  max-width: 100%;
  padding: 0.5rem 0.65rem;
  font-size: 0.9rem;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
  background: #fff;
  color: #111827;
}
.admin-spots-category-select:focus {
  outline: 2px solid rgba(22, 101, 52, 0.35);
  outline-offset: 1px;
  border-color: #166534;
}
.admin-search-label {
  display: flex;
  align-items: center;
  max-width: 22rem;
  background: #f9fafb;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  padding: 0 0.875rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.admin-search-label:focus-within {
  border-color: var(--primary-hex, #166534);
  box-shadow: 0 0 0 2px rgba(22, 101, 52, 0.15);
}
.admin-search-icon {
  flex-shrink: 0;
  margin-right: 0.5rem;
  font-size: 1rem;
  opacity: 0.7;
}
.admin-search-input {
  flex: 1;
  min-width: 0;
  padding: 0.625rem 0;
  font-size: 0.9rem;
  color: #111827;
  background: transparent;
  border: none;
  outline: none;
}
.admin-search-input::placeholder { color: #6b7280; }

.admin-table-wrap { overflow-x: auto; }
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.admin-table th,
.admin-table td {
  padding: 0.75rem;
  text-align: left;
  border-bottom: 1px solid #e5e7eb;
}
.admin-table th { font-weight: 600; color: #374151; }
.admin-table--header-green th { background: rgba(26, 92, 53, 0.1); color: #166534; }
.admin-empty, .admin-empty-msg { color: #6b7280; padding: 1rem; margin: 0; }
.admin-spot-owner { cursor: help; }
.admin-spot-owner[title]:hover { text-decoration: underline; text-decoration-style: dotted; }
.admin-table th.admin-table__num,
.admin-table td.admin-table__num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Locais table — métricas editáveis (cores alinhadas ao painel do proprietário) */
.admin-spot-metric-th {
  vertical-align: bottom;
}
.admin-spot-metric-th__stack {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.2rem;
}
.admin-spot-metric-th__icon {
  font-size: 1.05rem;
  line-height: 1;
  opacity: 0.92;
}
.admin-spot-metric-th__text {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.055em;
  text-transform: uppercase;
  line-height: 1.2;
  max-width: 6rem;
  text-align: right;
}
.admin-spot-metric-th--views .admin-spot-metric-th__text { color: #1d4ed8; }
.admin-spot-metric-th--whatsapp .admin-spot-metric-th__text { color: #15803d; }
.admin-spot-metric-th--site .admin-spot-metric-th__text { color: #6d28d9; }

.admin-spot-metric-td {
  vertical-align: middle;
}

.admin-spot-metric-field {
  --admin-metric: #166534;
  --admin-metric-bg: #f3f4f6;
  --admin-metric-border: #e5e7eb;
  --admin-metric-ring: rgba(22, 101, 52, 0.22);
  --admin-metric-input: #0f172a;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
  min-width: 5rem;
  padding: 0.38rem 0.55rem 0.38rem 0.45rem;
  border-radius: 0.6rem;
  border: 1px solid var(--admin-metric-border);
  background: var(--admin-metric-bg);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.admin-spot-metric-field--views {
  --admin-metric: #2563eb;
  --admin-metric-bg: rgba(37, 99, 235, 0.08);
  --admin-metric-border: rgba(37, 99, 235, 0.22);
  --admin-metric-ring: rgba(37, 99, 235, 0.28);
  --admin-metric-input: #1e3a8a;
}
.admin-spot-metric-field--whatsapp {
  --admin-metric: #16a34a;
  --admin-metric-bg: rgba(22, 163, 74, 0.09);
  --admin-metric-border: rgba(22, 163, 74, 0.24);
  --admin-metric-ring: rgba(22, 163, 74, 0.28);
  --admin-metric-input: #14532d;
}
.admin-spot-metric-field--site {
  --admin-metric: #7c3aed;
  --admin-metric-bg: rgba(124, 58, 237, 0.08);
  --admin-metric-border: rgba(124, 58, 237, 0.22);
  --admin-metric-ring: rgba(124, 58, 237, 0.28);
  --admin-metric-input: #4c1d95;
}
.admin-spot-metric-field:focus-within {
  border-color: var(--admin-metric);
  background: #fff;
  box-shadow: 0 0 0 3px var(--admin-metric-ring), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.admin-table tbody tr:hover .admin-spot-metric-field--views:not(:focus-within) {
  background: rgba(37, 99, 235, 0.11);
}
.admin-table tbody tr:hover .admin-spot-metric-field--whatsapp:not(:focus-within) {
  background: rgba(22, 163, 74, 0.12);
}
.admin-table tbody tr:hover .admin-spot-metric-field--site:not(:focus-within) {
  background: rgba(124, 58, 237, 0.11);
}

.admin-spot-metric-field__icon {
  font-size: 0.92rem;
  line-height: 1;
  opacity: 0.88;
  flex-shrink: 0;
  user-select: none;
}

.admin-spot-metric-input {
  width: 3.6rem;
  min-width: 2.25rem;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 0.12rem 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font-size: 0.9375rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  text-align: right;
  line-height: 1.35;
  color: var(--admin-metric-input);
  -webkit-appearance: none;
  appearance: none;
}
.admin-spot-metric-input:focus {
  outline: none;
}
.admin-spot-metric-input::placeholder {
  color: #94a3b8;
}
.admin-spot-metric-input::-webkit-outer-spin-button,
.admin-spot-metric-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.admin-spot-metric-input[type='number'] {
  -moz-appearance: textfield;
  appearance: textfield;
}

/* Promotores table: Promovendo tags */
.admin-promo-cell { white-space: normal; }
.admin-promo-cell-inner.admin-promo-cell--clickable { cursor: pointer; text-decoration: underline; text-decoration-style: dotted; }
.admin-promo-cell-inner.admin-promo-cell--clickable:hover { text-decoration-style: solid; }
/* Promoting modal: section cards + item cards */
#modal-promoter-promoting .admin-modal__box--promoting { max-width: 56rem; }
#modal-promoter-promoting .admin-modal__body--promoting { padding: 1.5rem; }
.admin-promoting-sections { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; margin-bottom: 1rem; }
@media (max-width: 900px) { .admin-promoting-sections { grid-template-columns: 1fr; } }
.admin-promoting-section-card {
  background: hsl(var(--card));
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.admin-promoting-section-card__header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  background: linear-gradient(to bottom, hsl(var(--muted)), transparent);
  border-bottom: 1px solid hsl(var(--border));
}
.admin-promoting-section-card__icon { font-size: 1.1rem; }
.admin-promoting-section-card__title {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 700;
  color: hsl(var(--foreground));
  margin: 0;
  letter-spacing: -0.02em;
}
.admin-promoting-cards {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.75rem;
  max-height: 14rem;
  overflow-y: auto;
}
.admin-promoting-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  background: #fff;
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.admin-promoting-card:hover { border-color: rgba(26, 92, 53, 0.25); box-shadow: 0 1px 4px rgba(26, 92, 53, 0.08); }
.admin-promoting-card__main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.admin-promoting-card__title {
  font-weight: 600;
  color: hsl(var(--foreground));
  font-size: 0.9rem;
  line-height: 1.3;
}
.admin-promoting-card__meta {
  font-size: 0.8rem;
  color: hsl(var(--muted-foreground));
}
.admin-promoting-card__badge {
  display: inline-block;
  align-self: flex-start;
  padding: 0.2rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 600;
  border-radius: 9999px;
  background: #e5e7eb;
  color: #4b5563;
}
.admin-promoting-card__badge--active { background: #dcfce7; color: #166534; }
.admin-promoting-card__actions { flex-shrink: 0; }
.admin-promoting-card__btn { white-space: nowrap; }
.admin-promoting-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.5rem 1rem;
  color: hsl(var(--muted-foreground));
  font-size: 0.9rem;
  text-align: center;
  min-height: 6rem;
}
.admin-promoting-empty__icon { font-size: 1.5rem; opacity: 0.6; }
.admin-promoting-empty p { margin: 0; }
.admin-modal__actions { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; }
.admin-promo-tag {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 0.375rem;
  margin: 0.1rem 0.15rem 0.1rem 0;
}
.admin-promo-tag--locais { background: #dcfce7; color: #166534; }
.admin-promo-tag--eventos { background: #dbeafe; color: #1e40af; }
.admin-promo-tag--anuncios { background: #ede9fe; color: #5b21b6; }
.admin-promo-tag--pendente { background: #ffedd5; color: #c2410c; }
.admin-promoter-subtitle { font-size: 0.8rem; color: #6b7280; margin-top: 0.15rem; font-weight: normal; }
.admin-promoter-phone { font-size: 0.85rem; color: #6b7280; }
.admin-promoter-plan-select {
  display: block;
  width: 100%;
  min-width: 10rem;
  padding: 0.35rem 0.5rem;
  font-size: 0.85rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.375rem;
  background: #fff;
}
.admin-promoter-plan-expiry { font-size: 0.75rem; color: #6b7280; margin-top: 0.2rem; }

/* Promotores: cadastro (outra coluna) vs último acesso — uma linha, sem quebrar no meio das palavras */
.admin-promoter-access {
  vertical-align: middle;
  min-width: 11.5rem;
  max-width: 14rem;
}
.admin-promoter-access__stack {
  display: block;
  line-height: 1.35;
  word-break: normal;
  overflow-wrap: normal;
}
.admin-promoter-access__primary {
  display: block;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #14261c;
}
.admin-promoter-access--compact .admin-promoter-access__primary {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.admin-promoter-access__secondary {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  color: #6b7280;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  margin-top: 0.25rem;
}

/* Promotores: interruptor + lixeira (excluir só inativo) */
.admin-promoter-switch-row {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  flex-wrap: nowrap;
}
.admin-promoter-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0.15rem 0.25rem;
  border: none;
  border-radius: 0.35rem;
  background: transparent;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  opacity: 0.4;
  transition: opacity 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.admin-promoter-delete:hover,
.admin-promoter-delete:focus-visible {
  opacity: 1;
  color: #b91c1c;
  background: rgba(185, 28, 28, 0.08);
  outline: none;
}
.admin-promoter-delete:focus-visible {
  box-shadow: 0 0 0 2px rgba(185, 28, 28, 0.35);
}

/* Promotores: célula do interruptor (usa .admin-form__toggle--promoter-active na tabela) */
.admin-promoter-switch-cell {
  vertical-align: middle;
  white-space: nowrap;
}
.admin-form__toggle--promoter-active:has(input:disabled) {
  cursor: not-allowed;
  opacity: 0.5;
}

/* Roteiros: stats + list */
.admin-panel__actions { display: flex; gap: 0.5rem; align-items: center; flex-shrink: 0; }
.admin-itineraries-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.admin-itineraries-stat {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1rem;
  text-align: center;
}
.admin-itineraries-stat__count { display: block; font-size: 1.5rem; font-weight: 800; color: #111; }
.admin-itineraries-stat__label { font-size: 0.85rem; color: #6b7280; }
.admin-itineraries-stat__pub { display: block; font-size: 0.7rem; color: var(--primary-hex); margin-top: 0.25rem; }
.admin-itineraries-list { display: flex; flex-direction: column; gap: 0.75rem; }
.admin-itinerary-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  transition: box-shadow 0.15s;
}
.admin-itinerary-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.admin-itinerary-card__cover { flex-shrink: 0; }
.admin-itinerary-card__thumb,
.admin-itinerary-card__thumb-placeholder {
  width: 4rem;
  height: 4rem;
  border-radius: 0.75rem;
  object-fit: cover;
}
.admin-itinerary-card__thumb-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(26, 92, 53, 0.15), rgba(26, 92, 53, 0.05));
  font-size: 1.5rem;
}
.admin-itinerary-card__main { flex: 1; min-width: 0; }
.admin-itinerary-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.25rem; }
.admin-itinerary-card__title { margin: 0; font-size: 1rem; }
.admin-itinerary-card__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 700;
}
.admin-itinerary-card__badge.admin-badge--days { background: #dbeafe; color: #1e40af; border: 1px solid #93c5fd; }
.admin-itinerary-card__badge.admin-badge--diff { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.admin-itinerary-card__badge.admin-badge--success { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.admin-itinerary-card__badge.admin-badge--muted { background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb; }
.admin-itinerary-card__desc,
.admin-itinerary-card__spots { font-size: 0.8rem; color: #6b7280; margin: 0.25rem 0 0; line-height: 1.35; }
.admin-itinerary-card__spots { font-size: 0.75rem; }
.admin-itinerary-card__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.5rem;
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid #e5e7eb;
}
.admin-itinerary-stat-pill {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  padding: 0.2rem 0.5rem 0.22rem;
  border-radius: 0.45rem;
  font-size: 0.72rem;
  line-height: 1.2;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #374151;
}
.admin-itinerary-stat-pill__k {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.62rem;
  color: #6b7280;
}
.admin-itinerary-stat-pill__v {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #111827;
}
.admin-itinerary-stat-pill--accent {
  background: rgba(26, 92, 53, 0.1);
  border-color: rgba(26, 92, 53, 0.28);
}
.admin-itinerary-stat-pill--accent .admin-itinerary-stat-pill__v { color: #14532d; }
.admin-itinerary-stat-pill--muted {
  background: #fafafa;
  border-style: dashed;
}
.admin-itinerary-stat-pill--muted .admin-itinerary-stat-pill__v { color: #6b7280; font-weight: 600; }
.admin-itinerary-stat-pill--leader {
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.18), rgba(245, 158, 11, 0.12));
  border-color: rgba(217, 119, 6, 0.45);
  gap: 0.3rem;
}
.admin-itinerary-stat-pill--leader .admin-itinerary-stat-pill__v { color: #92400e; }
.admin-itinerary-stat-pill__mark {
  font-size: 0.7rem;
  line-height: 1;
  color: #b45309;
}
.admin-itineraries-filters {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  background: #fafafa;
  border: 1px solid rgba(26, 92, 53, 0.18);
  border-radius: 0.65rem;
}
.admin-itineraries-filters__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 1rem;
}
.admin-itineraries-filters__row + .admin-itineraries-filters__row {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.admin-itineraries-filters__field {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.admin-itineraries-filters__field--grow {
  flex: 1 1 12rem;
}
.admin-itineraries-filters__label {
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: #6b7280;
}
.admin-itineraries-filters__input,
.admin-itineraries-filters__select {
  font-size: 0.8125rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid #d1d5db;
  border-radius: 0.4rem;
  background: #fff;
  color: #111827;
  min-width: 0;
}
.admin-itineraries-filters__input--num {
  width: 5.5rem;
}
.admin-itineraries-filters__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-left: auto;
}
.admin-itineraries-filters__count {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
  white-space: nowrap;
}
.admin-itineraries-list--reorder-disabled .admin-itinerary-card__drag {
  opacity: 0.35;
  cursor: not-allowed;
}
.admin-itinerary-highlights__hint-icon {
  display: inline-block;
  font-weight: 700;
  color: #6b7280;
}
.admin-itinerary-highlights--panel {
  padding: 1rem 1.1rem 1.15rem;
  margin-top: 0.15rem;
  background: linear-gradient(165deg, #f8fafc 0%, #f1f5f9 52%, #f0fdf4 155%);
  border: 1px solid rgba(26, 92, 53, 0.14);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.admin-itinerary-highlights__title {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #14532d;
  margin: 0 0 0.35rem;
}
.admin-itinerary-highlights--panel .admin-itinerary-highlights__hint {
  margin-top: 0;
  margin-bottom: 0.65rem;
  line-height: 1.45;
}
.admin-itinerary-highlights__list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 0.75rem;
  min-height: 2rem;
}
.admin-itinerary-highlights__empty {
  margin: 0;
  font-size: 0.8125rem;
  color: #64748b;
  font-style: normal;
  padding: 0.65rem 0.75rem;
  background: rgba(255, 255, 255, 0.65);
  border: 1px dashed #cbd5e1;
  border-radius: 0.5rem;
  text-align: center;
}
.admin-itinerary-highlights__row {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.75rem 0.85rem;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.4);
  border-radius: 0.65rem;
  box-shadow: 0 1px 1px rgba(15, 23, 42, 0.03);
}
.admin-itinerary-highlights__row--dragging {
  opacity: 0.72;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.1);
  border-color: rgba(26, 92, 53, 0.35);
}
.admin-itinerary-highlights__drag {
  flex-shrink: 0;
  cursor: grab;
  user-select: none;
  width: 1.85rem;
  min-height: 1.85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0.12rem;
  border: 1px dashed #cbd5e1;
  border-radius: 0.45rem;
  background: #f8fafc;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.12em;
}
.admin-itinerary-highlights__drag:active { cursor: grabbing; }
.admin-itinerary-highlights__main {
  flex: 1;
  min-width: 0;
}
.admin-itinerary-highlights__headline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem 0.75rem;
  margin-bottom: 0.5rem;
}
.admin-itinerary-highlights__name {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.35;
  flex: 1;
  min-width: 0;
}
.admin-itinerary-highlights__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.2rem;
  flex-shrink: 0;
}
.admin-itinerary-highlights__tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  margin: 0;
  border: 1px solid #e2e8f0;
  border-radius: 0.4rem;
  background: #fff;
  color: #475569;
  font-size: 0.9rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.admin-itinerary-highlights__tool:hover:not(:disabled) {
  background: #f1f5f9;
  border-color: rgba(26, 92, 53, 0.35);
  color: var(--primary-hex, #166534);
}
.admin-itinerary-highlights__tool:disabled {
  opacity: 0.32;
  cursor: not-allowed;
}
.admin-itinerary-highlights__remove {
  margin-left: 0.2rem;
  padding: 0.3rem 0.5rem;
  border: none;
  border-radius: 0.35rem;
  background: transparent;
  color: #94a3b8;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}
.admin-itinerary-highlights__remove:hover {
  color: #b91c1c;
  background: rgba(254, 226, 226, 0.5);
}
.admin-itinerary-highlights__cap-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  color: #64748b;
  margin-bottom: 0.25rem;
}
.admin-itinerary-highlights__cap {
  width: 100%;
  font-size: 0.8125rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.45rem;
  resize: vertical;
  min-height: 2.5rem;
  box-sizing: border-box;
  color: #334155;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-itinerary-highlights__cap:focus {
  outline: none;
  border-color: rgba(26, 92, 53, 0.45);
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.1);
}
.admin-itinerary-highlights__add-row {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding-top: 0.15rem;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
  margin-top: 0.1rem;
}
.admin-itinerary-highlights__add-label {
  font-size: 0.8125rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  color: #475569;
  margin: 0;
}
.admin-itinerary-highlights__add-select {
  max-width: 100%;
  width: 100%;
  font-size: 0.875rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  background: #fff;
  color: #334155;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.admin-itinerary-highlights__add-select:focus {
  outline: none;
  border-color: rgba(26, 92, 53, 0.45);
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.1);
}
.admin-itinerary-form-spots__days {
  margin-bottom: 0.5rem;
}
.admin-itinerary-form-spots__picker {
  padding-top: 0.35rem;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
  margin-top: 0.35rem;
}
.admin-itinerary-form-spots__add-bar {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-top: 0.25rem;
}
.admin-itinerary-form-spots__day-select {
  max-width: 14rem;
  font-size: 0.875rem;
  padding: 0.5rem 0.6rem;
  border-radius: 0.5rem;
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #334155;
}
.admin-itinerary-form-spots__row-day {
  max-width: 14rem;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  padding: 0.4rem 0.5rem;
  border-radius: 0.4rem;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #334155;
}
.admin-spot-row__editor-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-start;
  gap: 0.25rem;
  flex-shrink: 0;
  padding-top: 0.15rem;
}
@media (max-width: 520px) {
  .admin-itinerary-highlights__headline {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-itinerary-highlights__toolbar {
    justify-content: flex-start;
  }
}

.admin-itinerary-family-cta {
  margin-bottom: 1rem;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1px solid rgba(26, 92, 53, 0.22);
  border-radius: 0.75rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.admin-itinerary-family-cta__title {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
  color: #14532d;
}
.admin-itinerary-family-cta__desc {
  margin: 0 0 0.75rem;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #4b5563;
}
.admin-itinerary-family-cta__desc a { color: #166534; font-weight: 600; }
.admin-itinerary-family-cta__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
.admin-itinerary-family-cta__label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
}
.admin-itinerary-family-cta__select {
  flex: 1;
  min-width: 12rem;
  max-width: 28rem;
  padding: 0.45rem 0.6rem;
  font-size: 0.875rem;
  border: 1px solid #d1d5db;
  border-radius: 0.45rem;
  background: #fff;
}
.admin-itinerary-family-cta + .admin-itineraries-stats { margin-top: 0; }

.admin-itinerary-card__actions { display: flex; align-items: center; gap: 0.35rem; flex-shrink: 0; }
.admin-itinerary-card__eye--draft { opacity: 0.7; }
.admin-itineraries-order-hint {
  font-size: 0.85rem;
  color: #6b7280;
  margin: 0 0 0.75rem 0;
  padding: 0.5rem 0.0;
}
.admin-itineraries-order-hint__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  background: #e5e7eb;
  border-radius: 0.25rem;
  font-size: 1rem;
  font-weight: 700;
  color: #374151;
}
.admin-itinerary-card__drag {
  flex-shrink: 0;
  cursor: grab;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  background: #e5e7eb;
  color: #374151;
  border-radius: 0.5rem;
  user-select: none;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1;
}
.admin-itinerary-card__drag:hover { background: #d1d5db; color: #111; }
.admin-itinerary-card__drag:active { cursor: grabbing; }
.admin-itinerary-card--dragging { opacity: 0.6; }

@media (max-width: 768px) {
  .admin-itineraries-stats {
    gap: 0.5rem;
    margin-bottom: 1rem;
  }
  .admin-itineraries-stat {
    padding: 0.65rem;
  }
  .admin-itineraries-stat__count { font-size: 1.25rem; }
  .admin-itineraries-stat__label { font-size: 0.8rem; }
  .admin-itineraries-stat__pub { font-size: 0.65rem; }
  .admin-itineraries-order-hint {
    font-size: 0.8rem;
    margin-bottom: 0.5rem;
    padding: 0.4rem 0;
  }
  .admin-itineraries-order-hint__icon {
    width: 1.1rem;
    height: 1.1rem;
    font-size: 0.9rem;
  }
  .admin-itineraries-list { gap: 0.5rem; }
  .admin-itinerary-card {
    flex-wrap: wrap;
    padding: 0.75rem;
    gap: 0.5rem;
  }
  .admin-itinerary-card__drag {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 1rem;
  }
  .admin-itinerary-card__main {
    flex: 1 1 min(100%, 12rem);
    min-width: 0;
  }
  .admin-itinerary-card__head {
    gap: 0.35rem;
  }
  .admin-itinerary-card__title { font-size: 0.9375rem; }
  .admin-itinerary-card__actions {
    flex: 1 1 100%;
    justify-content: flex-end;
    flex-wrap: wrap;
    margin-top: 0.15rem;
    padding-top: 0.35rem;
    border-top: 1px solid #f3f4f6;
  }
}

@media (max-width: 480px) {
  .admin-itineraries-order-hint {
    font-size: 0.75rem;
    line-height: 1.4;
  }
  .admin-itinerary-card {
    padding: 0.6rem;
    gap: 0.5rem;
  }
  .admin-itinerary-card__drag {
    width: 1.5rem;
    height: 1.5rem;
    font-size: 0.9rem;
  }
  .admin-itinerary-card__thumb,
  .admin-itinerary-card__thumb-placeholder {
    width: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
  }
  .admin-itinerary-card__badge {
    font-size: 0.65rem;
    padding: 0.15rem 0.35rem;
  }
  .admin-itinerary-card__desc,
  .admin-itinerary-card__spots { font-size: 0.75rem; }
  .admin-itinerary-card__actions {
    gap: 0.25rem;
    padding-top: 0.25rem;
  }
  .admin-itinerary-card__actions .admin-btn--small {
    padding: 0.3rem 0.5rem;
    font-size: 0.75rem;
  }
}

/* Admin dashboard — responsive (Pendentes, Promotores, Locais, Categorias, Reivindicações, Monetização, Guias) */
@media (max-width: 768px) {
  .admin-dashboard-wrap { padding: 1.25rem 1rem; }
  .admin-dashboard-title { font-size: 1.5rem; }
  .admin-stats { margin-bottom: 1.5rem; gap: 0.75rem; }
  .admin-stats--activity { margin-bottom: 0; }
  .admin-activity-block { margin-bottom: 1.5rem; }
  .admin-activity-block__head { align-items: flex-start; flex-direction: column; }
  .admin-activity-block__baseline-btn { width: 100%; }
  .admin-stat-card { padding: 1rem 1.25rem; gap: 0.75rem; }
  .admin-stat-card__icon { width: 2.25rem; height: 2.25rem; font-size: 1.1rem; }
  .admin-stat-card__value { font-size: 1.25rem; }
  .admin-stat-card__label { font-size: 0.75rem; }
  .admin-dashboard-wrap .promoter-dashboard-tabs { margin-bottom: 1.5rem; padding: 0.2rem; }
  .admin-dashboard-wrap .promoter-tab { padding: 0.4rem 0.65rem; font-size: 0.8125rem; }
  .admin-panel__card { padding: 1rem; margin-bottom: 1rem; }
  .admin-panel__row { margin-bottom: 1rem; gap: 0.75rem; }
  .admin-panel__heading { font-size: 1rem; }
  .admin-search-label { max-width: 100%; }
  .admin-table th,
  .admin-table td { padding: 0.5rem 0.6rem; font-size: 0.8125rem; }
  .admin-spot-metric-field {
    min-width: 4.5rem;
    padding: 0.3rem 0.45rem 0.3rem 0.35rem;
    gap: 0.3rem;
  }
  .admin-spot-metric-input { width: 3.1rem; font-size: 0.8125rem; }
  .admin-spot-metric-th__text { font-size: 0.6rem; max-width: 4.5rem; }
  .admin-pending-card {
    flex-wrap: wrap;
    padding: 1rem;
    gap: 0.75rem;
  }
  .admin-pending-card__thumb { width: 5.25rem; height: 5.25rem; }
  .admin-pending-card__actions {
    flex-direction: row;
    flex: 1 1 100%;
    justify-content: flex-end;
    margin-top: 0.25rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(234, 179, 8, 0.3);
  }
  .admin-pending-card__btn-approve,
  .admin-pending-card__btn-reject { min-width: auto; }
  .admin-claims-header { flex-direction: column; align-items: flex-start; margin-bottom: 1rem; }
  .admin-claims-title { font-size: 1.25rem; }
  .admin-claims-subtitle { font-size: 0.875rem; }
  .admin-claim-card { padding: 1rem 1.25rem; }
  .admin-claim-card__top { flex-wrap: wrap; }
  .admin-claim-card__actions { margin-top: 0.75rem; gap: 0.4rem; }
  .admin-mono-card { padding: 1rem; gap: 0.75rem; }
  .admin-mono-card__value { font-size: 1.25rem; }
  .admin-mono-card__label { font-size: 0.7rem; }
  .admin-ad-card {
    flex-wrap: wrap;
    padding: 0.875rem 1rem;
    gap: 0.75rem;
  }
  .admin-ad-card__thumb { width: 4rem; height: 4rem; }
  .admin-ad-card__actions {
    flex-direction: row;
    flex: 1 1 100%;
    justify-content: flex-end;
    align-items: center;
  }
  .admin-form--inline .admin-form__row--inline { flex-direction: column; align-items: stretch; gap: 0.75rem; }
  .admin-form--inline .admin-form__row--grow { min-width: 0; }
  .admin-form--inline .admin-form__row--action { align-self: flex-start; }
  .admin-guide-card {
    flex-wrap: wrap;
    padding: 1rem;
    gap: 0.75rem;
  }
  .admin-guide-card__photo-wrap { width: 3.75rem; height: 3.75rem; }
  .admin-guide-card__name { font-size: 1rem; }
  .admin-guide-card__actions {
    flex: 1 1 100%;
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(26, 92, 53, 0.2);
    flex-wrap: wrap;
    gap: 0.4rem;
  }
  .admin-guides-boost-info { padding: 1rem; margin-bottom: 1rem; }
  .admin-guides-boost-info__text { font-size: 0.85rem; }
  .admin-guides-boost-block__head {
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.875rem 1rem;
  }
  .admin-guides-boost-block__title { font-size: 0.9375rem; }
  .admin-guides-boost-block__link { font-size: 0.75rem; }
  .admin-guides-boost-table th,
  .admin-guides-boost-table td { padding: 0.5rem 0.6rem; font-size: 0.8rem; }
  .admin-guides-boost-table__boost-col { min-width: 8rem; }
  .admin-guides-boost-cell { flex-wrap: wrap; gap: 0.5rem; }
  .admin-guides-boost-input { width: 3.5rem; font-size: 0.8rem; }
}

@media (max-width: 480px) {
  .admin-dashboard-wrap { padding: 1rem 0.75rem; }
  .admin-stats { grid-template-columns: 1fr; margin-bottom: 1.25rem; }
  .admin-stats--activity { grid-template-columns: repeat(2, 1fr); }
  .admin-stat-card { padding: 0.875rem 1rem; }
  .admin-dashboard-wrap .promoter-tab { padding: 0.35rem 0.5rem; font-size: 0.75rem; }
  .admin-dashboard-wrap .promoter-tab__icon { display: none; }
  .admin-panel__card { padding: 0.75rem; }
  .admin-table th,
  .admin-table td { padding: 0.4rem 0.5rem; font-size: 0.75rem; }
  .admin-pending-card__name { font-size: 1rem; }
  .admin-pending-card__tags { gap: 0.3rem; }
  .admin-pending-card__tag { font-size: 0.65rem; padding: 0.15rem 0.4rem; }
  .admin-claim-card { padding: 0.875rem 1rem; }
  .admin-claim-card__spot { font-size: 1rem; }
  .admin-claim-note-input { max-width: 100%; }
  .admin-monetization-cards { grid-template-columns: 1fr; gap: 0.75rem; }
  .admin-mono-card { flex-direction: row; padding: 0.875rem 1rem; }
  .admin-mono-card__icon { width: 2.25rem; height: 2.25rem; font-size: 1.1rem; }
  .admin-mono-card__value { font-size: 1.125rem; }
  .admin-ad-card__body { min-width: 0; }
  .admin-ad-card__title { font-size: 0.9375rem; }
  .admin-guide-card__details { font-size: 0.8rem; gap: 0.5rem; }
  .admin-guide-card__pills { gap: 0.25rem; }
  .admin-guide-pill { font-size: 0.7rem; padding: 0.15rem 0.4rem; }
  .admin-guides-boost-block { margin-bottom: 1rem; }
  .admin-guides-boost-table th,
  .admin-guides-boost-table td { padding: 0.4rem 0.5rem; font-size: 0.75rem; }
  .admin-guides-boost-table__boost-col { min-width: 7rem; }
}

.admin-btn--icon { width: 2rem; height: 2rem; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: none; background: transparent; border-radius: 0.5rem; cursor: pointer; color: #6b7280; }
.admin-btn--icon:hover { background: rgba(0,0,0,0.06); color: #111; }
.admin-btn--danger:hover { color: #dc2626; background: rgba(220, 38, 38, 0.1); }

/* Itinerary form: duration buttons + draft toggle */
.admin-form__duration-btns { display: flex; gap: 0.5rem; margin-top: 0.25rem; }
.admin-form__duration-btn {
  flex: 1;
  height: 2.25rem;
  border-radius: 0.75rem;
  border: 1px solid #e5e7eb;
  background: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.admin-form__duration-btn:hover { background: #f9fafb; }
.admin-form__duration-btn.active { background: var(--primary-hex); color: #fff; border-color: var(--primary-hex); }
.admin-form__row--toggle { margin-top: 0.5rem; }
.admin-form__draft-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  color: #6b7280;
  font-size: 0.875rem;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.admin-form__draft-toggle[aria-pressed="false"] { border-color: #6ee7b7; background: #d1fae5; color: #065f46; }

/* Roteiro: Destaques multi-select + capa drop zone */
.admin-form__select-multi {
  width: 100%;
  min-height: 6rem;
  padding: 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  background: #fff;
}
.admin-form__select-multi option { padding: 0.25rem 0; }
.admin-itinerary-cover-zone {
  border: 2px dashed #d1d5db;
  border-radius: 0.75rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  background: #f9fafb;
  transition: border-color 0.2s, background 0.2s;
  margin-top: 0.35rem;
}
.admin-itinerary-cover-zone:hover { border-color: var(--primary-hex, #166534); background: #f0fdf4; }
.admin-itinerary-cover-zone--drag { border-color: var(--primary-hex, #166534); background: #dcfce7; border-style: solid; }
.admin-itinerary-cover-zone--uploading { pointer-events: none; opacity: 0.85; }
.admin-itinerary-cover-zone__icon { font-size: 1.5rem; display: block; margin-bottom: 0.35rem; }
.admin-itinerary-cover-zone__text { font-weight: 600; color: #1f2937; margin: 0 0 0.2rem; font-size: 0.9rem; }
.admin-itinerary-cover-zone__spec { font-size: 0.8rem; color: #6b7280; margin: 0; }
.admin-itinerary-cover-preview { margin-top: 0.5rem; border-radius: 0.5rem; overflow: hidden; max-height: 12rem; }
.admin-itinerary-cover-preview img { width: 100%; height: auto; display: block; object-fit: cover; max-height: 12rem; }

/* Admin — novo anúncio: busca local / evento */
.admin-ad-entity-picker__list {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  max-height: 11rem;
  overflow-y: auto;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  z-index: 1;
  position: relative;
}
.admin-ad-entity-picker__list li {
  padding: 0.5rem 0.75rem;
  cursor: pointer;
  font-size: 0.875rem;
  line-height: 1.35;
  color: #1f2937;
  border-bottom: 1px solid #f3f4f6;
}
.admin-ad-entity-picker__list li:last-child { border-bottom: none; }
.admin-ad-entity-picker__list li:hover,
.admin-ad-entity-picker__list li:focus { background: #f0fdf4; outline: none; }
.admin-ad-entity-picker__chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.4rem;
  padding: 0.35rem 0.6rem;
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #065f46;
  max-width: 100%;
  position: relative;
  z-index: 4;
}
.admin-ad-entity-picker__chip span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.admin-ad-entity-picker__chip-clear {
  flex-shrink: 0;
  position: relative;
  z-index: 5;
  border: none;
  background: transparent;
  color: #047857;
  font-size: 1.1rem;
  line-height: 1;
  padding: 0.2rem 0.35rem;
  min-width: 1.75rem;
  min-height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: 0.25rem;
  -webkit-tap-highlight-color: transparent;
}
.admin-ad-entity-picker__chip-clear:hover { background: rgba(5, 150, 105, 0.15); }
.admin-ad-entity-picker__list.hidden,
.admin-ad-entity-picker__chip.hidden {
  display: none !important;
}

/* Locais modal: spots by day */
.admin-modal__header { display: flex; align-items: flex-start; justify-content: space-between; padding: 1rem 1.5rem; border-bottom: 1px solid #e5e7eb; }
.admin-modal__body { padding: 1.5rem; overflow-y: auto; max-height: 50vh; }
.admin-modal__footer { padding: 1rem 1.5rem; border-top: 1px solid #e5e7eb; }
.admin-modal__sub { font-size: 0.8rem; color: #6b7280; margin: 0.25rem 0 0; }
.admin-modal__sub--muted { font-size: 0.75rem; color: #9ca3af; margin-top: 0.15rem; }
.admin-form--compact .admin-form__section-title { margin-bottom: 0.5rem; }
.admin-form__row--inline { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.admin-form__row--inline label { margin: 0; }
.admin-form__row--inline select { width: auto; min-width: 8rem; flex: 1; }
.admin-spots-day { margin-bottom: 1.25rem; }
.admin-spots-day__head { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; font-weight: 700; font-size: 0.9rem; }
.admin-spots-day__num {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 50%;
  background: var(--primary-hex);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
}
.admin-spots-day__count { font-weight: 400; font-size: 0.8rem; color: #6b7280; }
.admin-spots-day__empty {
  margin-left: 2.25rem;
  padding: 0.75rem;
  border: 1px dashed #e5e7eb;
  border-radius: 0.75rem;
  text-align: center;
  font-size: 0.8rem;
  color: #6b7280;
}
.admin-spots-day__list { margin-left: 2.25rem; display: flex; flex-direction: column; gap: 0.5rem; }
.admin-spot-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
}
.admin-spot-row__thumb,
.admin-spot-row__thumb-placeholder { width: 2.25rem; height: 2.25rem; border-radius: 0.5rem; object-fit: cover; flex-shrink: 0; }
.admin-spot-row__thumb-placeholder { background: #f3f4f6; display: flex; align-items: center; justify-content: center; font-size: 0.75rem; }
.admin-spot-row__main { flex: 1; min-width: 0; }
.admin-spot-row__name { margin: 0; font-size: 0.85rem; font-weight: 600; }
.admin-spot-row__note { margin: 0.25rem 0 0; font-size: 0.75rem; color: #6b7280; }
.admin-spot-row__remove { flex-shrink: 0; color: #6b7280; }
.admin-spot-row__remove:hover { color: #dc2626; background: rgba(220, 38, 38, 0.08); }

.admin-spot-row--itinerary { align-items: flex-start; }
.admin-spot-row__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
}
.admin-spot-row__featured-badge {
  font-size: 0.62rem;
  font-weight: 700;
  padding: 0.1rem 0.35rem;
  border-radius: 0.35rem;
  background: rgba(251, 191, 36, 0.22);
  color: #92400e;
  border: 1px solid rgba(217, 119, 6, 0.35);
  white-space: nowrap;
}
.admin-spot-row__desc {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  line-height: 1.4;
  color: #6b7280;
}
.admin-spot-row__note-label {
  display: block;
  margin: 0.5rem 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
}
.admin-spot-row__note-input {
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 0.4rem 0.5rem;
  font-size: 0.8rem;
  line-height: 1.35;
  border: 1px solid #d1d5db;
  border-radius: 0.45rem;
  resize: vertical;
  min-height: 3.75rem;
  font-family: inherit;
  background: #fafafa;
}
.admin-spot-row__note-input:focus {
  outline: 2px solid rgba(26, 92, 53, 0.35);
  outline-offset: 1px;
  border-color: #166534;
  background: #fff;
}

.admin-itinerary-picker { margin-bottom: 0.5rem; }
.admin-itinerary-picker__hint { margin: 0 0 0.45rem; font-size: 0.78rem; color: #6b7280; line-height: 1.45; }
.admin-itinerary-picker__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.6rem;
  max-height: 9rem;
  overflow-y: auto;
  padding: 0.15rem 0;
}
.admin-itinerary-picker__chips-empty { font-size: 0.78rem; color: #9ca3af; font-style: italic; }
.admin-itinerary-picker__chip {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.2;
  border-radius: 2rem;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  color: #374151;
  cursor: pointer;
  max-width: 100%;
  text-align: left;
}
.admin-itinerary-picker__chip:hover {
  border-color: #166534;
  background: rgba(26, 92, 53, 0.06);
  color: #14532d;
}
.admin-itinerary-picker__chip--featured {
  border-color: rgba(217, 119, 6, 0.45);
  background: rgba(251, 191, 36, 0.12);
}
.admin-itinerary-picker__search-wrap { position: relative; margin-top: 0.35rem; }
.admin-itinerary-picker__search {
  width: 100%;
  box-sizing: border-box;
  padding: 0.45rem 0.6rem;
  font-size: 0.875rem;
  border: 1px solid #d1d5db;
  border-radius: 0.5rem;
}
.admin-itinerary-picker__search:focus {
  outline: 2px solid rgba(26, 92, 53, 0.3);
  border-color: #166534;
}
.admin-itinerary-picker__results {
  position: absolute;
  z-index: 50;
  left: 0;
  right: 0;
  top: 100%;
  margin-top: 0.2rem;
  max-height: 14rem;
  overflow-y: auto;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}
.admin-itinerary-picker__results.hidden { display: none !important; }
.admin-itinerary-picker__result {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.4rem;
  width: 100%;
  text-align: left;
  padding: 0.45rem 0.65rem;
  font-size: 0.82rem;
  border: none;
  border-bottom: 1px solid #f3f4f6;
  background: #fff;
  cursor: pointer;
  color: #111827;
}
.admin-itinerary-picker__result:last-child { border-bottom: none; }
.admin-itinerary-picker__result:hover { background: #f0fdf4; }
.admin-itinerary-picker__result-name { font-weight: 600; }
.admin-itinerary-picker__result-cat { font-size: 0.72rem; color: #6b7280; }
.admin-itinerary-picker__result-star { font-size: 0.75rem; }
.admin-itinerary-picker__noresult { padding: 0.6rem 0.75rem; font-size: 0.8rem; color: #6b7280; }
.admin-itinerary-picker__selection { margin-top: 0.35rem; min-height: 1.25rem; }

/* Guias Turísticos — full card */
.admin-guide-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem;
  background: #fff;
  border: 1px solid rgba(26, 92, 53, 0.35);
  border-radius: 1rem;
  margin-bottom: 0.75rem;
}
.admin-guide-card__photo-wrap {
  position: relative;
  flex-shrink: 0;
  width: 4.5rem;
  height: 4.5rem;
  border-radius: 0.75rem;
  overflow: hidden;
  background: rgba(26, 92, 53, 0.12);
}
.admin-guide-card__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.admin-guide-card__photo-placeholder {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  background: rgba(26, 92, 53, 0.12);
}
.admin-guide-card__photo-placeholder--visible { display: flex; }
.admin-guide-card__photo-wrap.admin-guide-card__photo-placeholder .admin-guide-card__photo-placeholder { display: flex; }
.admin-guide-card__main { flex: 1; min-width: 0; }
.admin-guide-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.admin-guide-card__name { margin: 0; font-size: 1.05rem; }
.admin-guide-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.7rem;
  font-weight: 700;
}
.admin-guide-badge--approved { background: var(--primary-hex); color: #fff; }
.admin-guide-badge--rejected { background: #fecaca; color: #b91c1c; border: 1px solid #f87171; }
.admin-guide-badge--pending { background: #f3f4f6; color: #6b7280; border: 1px solid #e5e7eb; }
.admin-guide-badge--cert { background: #2563eb; color: #fff; }
.admin-guide-badge--warning { background: #fef3c7; color: #92400e; border: 1px solid #fcd34d; }
.admin-guide-badge--muted { background: #f3f4f6; color: #4b5563; border: 1px solid #e5e7eb; }
.admin-guide-badge--site-on {
  background: #d1fae5;
  color: #065f46;
  border: 1px solid #6ee7b7;
}
.admin-guide-badge--site-paused {
  background: #fff7ed;
  color: #c2410c;
  border: 1px solid #fdba74;
}
.admin-guide-badge--site-pending {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fcd34d;
}
.admin-guide-badge--site-off {
  background: #f3f4f6;
  color: #4b5563;
  border: 1px solid #e5e7eb;
}
.admin-guide-badge--promoter-on {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}
.admin-guide-badge--promoter-off {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}
.admin-guide-card__promoter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.4rem 0;
  padding: 0.5rem 0.65rem;
  border-radius: 0.5rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  font-size: 0.8125rem;
  line-height: 1.4;
}
.admin-guide-card__promoter-row--missing {
  background: #fffbeb;
  border-color: #fcd34d;
}
.admin-guide-card__promoter-kicker {
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #64748b;
}
.admin-guide-card__promoter-title { font-weight: 700; color: #0f172a; }
.admin-guide-card__promoter-sub {
  font-size: 0.75rem;
  color: #64748b;
}
.admin-guide-card__promoter-hint {
  font-size: 0.75rem;
  color: #78716c;
}
.admin-guide-card__site-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin: 0 0 0.5rem 0;
}
.admin-guide-card__meta { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.5rem; }
.admin-guide-card__bio { margin: 0 0 0.5rem; font-size: 0.9rem; color: #374151; line-height: 1.4; }
.admin-guide-card__details {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
  font-size: 0.85rem;
  color: #6b7280;
}
.admin-guide-detail { display: inline-flex; align-items: center; gap: 0.25rem; }
.admin-guide-card__pills { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 0.5rem; }
.admin-guide-pill {
  display: inline-flex;
  padding: 0.2rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
}
.admin-guide-pill--lang { background: #d6d3d1; color: #44403c; }
.admin-guide-pill--spot { background: #2563eb; color: #fff; }
.admin-guide-card__date { margin: 0; font-size: 0.8rem; color: #6b7280; }
.admin-guide-card__cadastur {
  margin: 0 0 0.5rem;
  padding: 0.45rem 0.6rem;
  font-size: 0.78rem;
  line-height: 1.4;
  border-radius: 0.45rem;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  color: #374151;
}
.admin-guide-card__cadastur--ok { border-color: #a7f3d0; background: #ecfdf5; color: #065f46; }
.admin-guide-card__cadastur--warn { border-color: #fcd34d; background: #fffbeb; color: #92400e; }
.admin-guide-card__cadastur--err { border-color: #fecaca; background: #fef2f2; color: #991b1b; }
.admin-guide-card__cadastur--skip { border-color: #e5e7eb; background: #f3f4f6; color: #6b7280; }
.admin-guide-card__actions { flex-shrink: 0; }
.admin-btn--reject {
  padding: 0.4rem 0.75rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: #dc2626;
  border: 1px solid #dc2626;
  background: #fff;
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.admin-btn--reject:hover { background: #fef2f2; color: #b91c1c; }

/* Guias — Boost por categoria (páginas de guias) */
.admin-guides-boost-info {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  padding: 1.25rem;
  margin-bottom: 1.5rem;
}
.admin-guides-boost-info__text {
  margin: 0;
  font-size: 0.9rem;
  color: #4b5563;
  line-height: 1.5;
}
.admin-guides-boost-info__text strong { color: #111; }

/* Admin — Configurações (contato, PIX, Asaas) */
.admin-settings__intro {
  margin: 0 0 1.25rem;
  font-size: 0.95rem;
  color: #4b5563;
  line-height: 1.55;
  max-width: 40rem;
}
.admin-settings {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  max-width: 42rem;
}
.admin-settings__section {
  border: 1px solid rgba(22, 101, 52, 0.14);
  border-radius: 1rem;
  padding: 1.25rem 1.35rem;
  background: linear-gradient(165deg, #f8faf8 0%, #fff 42%);
  box-shadow: 0 1px 2px rgba(22, 101, 52, 0.04);
}
.admin-settings__section--mp {
  background: linear-gradient(165deg, #fffbeb 0%, #fff 50%);
  border-color: rgba(202, 138, 4, 0.2);
}
.admin-settings__section-title {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: #14532d;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  letter-spacing: -0.01em;
}
.admin-settings__section--mp .admin-settings__section-title {
  color: #92400e;
}
.admin-settings__section-emoji {
  font-size: 1.15rem;
  line-height: 1;
  filter: saturate(0.95);
}
.admin-settings__section-sub {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  color: #6b7280;
  line-height: 1.5;
}
.admin-settings .admin-form__row {
  margin-bottom: 1rem;
}
.admin-settings .admin-form__row:last-child {
  margin-bottom: 0;
}
.admin-settings .admin-form__row input {
  max-width: 26rem;
}
.admin-settings__mp-toggle {
  margin-bottom: 0.75rem;
}
.admin-settings__toggle-label {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 600;
  color: #1f2937;
  margin: 0;
  padding: 0.85rem 1rem;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.admin-settings__toggle-label:hover {
  border-color: rgba(22, 101, 52, 0.35);
  box-shadow: 0 2px 8px rgba(22, 101, 52, 0.06);
}
.admin-settings__section--mp .admin-settings__toggle-label:hover {
  border-color: rgba(202, 138, 4, 0.35);
  box-shadow: 0 2px 8px rgba(202, 138, 4, 0.08);
}
.admin-settings__toggle-input {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.15rem;
  flex-shrink: 0;
  accent-color: var(--primary-hex, #166534);
  cursor: pointer;
}
.admin-settings__toggle-text {
  line-height: 1.45;
}
.admin-settings__callout {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  padding: 0.9rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.85rem;
  line-height: 1.55;
  margin: 0;
}
.admin-settings__callout--tip {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}
.admin-settings__callout--tip strong {
  color: #14532d;
}
.admin-settings__callout--warn {
  background: #fffbeb;
  border: 1px solid #fde68a;
  color: #92400e;
  margin-top: 0.75rem;
}
.admin-settings__callout--warn strong {
  color: #78350f;
}
.admin-settings__callout.hidden {
  display: none !important;
}
.admin-settings__callout-icon {
  flex-shrink: 0;
  font-size: 1.1rem;
  line-height: 1.35;
}
.admin-settings__tech {
  margin: 0.85rem 0 0;
  padding: 0.65rem 0.85rem;
  background: rgba(249, 250, 251, 0.9);
  border-radius: 0.5rem;
  font-size: 0.72rem;
  color: #6b7280;
  line-height: 1.55;
  border: 1px dashed #e5e7eb;
}
.admin-settings__tech code {
  font-size: 0.68rem;
  background: #fff;
  padding: 0.12rem 0.35rem;
  border-radius: 0.25rem;
  border: 1px solid #e5e7eb;
  color: #374151;
}
.admin-settings__actions {
  margin-top: 0.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid #e5e7eb;
}

.admin-guides-boost-block {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1rem;
  overflow: hidden;
  margin-bottom: 1.5rem;
}
.admin-guides-boost-block__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #e5e7eb;
  background: rgba(26, 92, 53, 0.08);
}
.admin-guides-boost-block__title { font-weight: 800; font-size: 1rem; }
.admin-guides-boost-block__link {
  font-size: 0.8rem;
  color: var(--primary-hex);
  text-decoration: none;
}
.admin-guides-boost-block__link:hover { text-decoration: underline; }
.admin-guides-boost-table {
  width: 100%;
  border-collapse: collapse;
}
.admin-guides-boost-table thead { background: rgba(26, 92, 53, 0.1); }
.admin-guides-boost-table th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-weight: 700;
  font-size: 0.85rem;
  color: #166534;
}
.admin-guides-boost-table__boost-col { min-width: 10rem; }
.admin-guides-boost-table td { padding: 0.75rem 1rem; border-bottom: 1px solid #f3f4f6; }
.admin-guides-boost-table__empty { text-align: center; color: #6b7280; padding: 2rem !important; }
.admin-guides-boost-table__local { font-weight: 600; }
.admin-guides-boost-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.admin-guides-boost-input {
  width: 4.5rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.85rem;
  font-weight: 700;
  text-align: center;
}
.admin-guides-boost-toggle {
  position: relative;
  display: inline-block;
  width: 2.75rem;
  height: 1.5rem;
  flex-shrink: 0;
}
.admin-guides-boost-toggle__input {
  opacity: 0;
  width: 0;
  height: 0;
}
.admin-guides-boost-toggle__slider {
  position: absolute;
  cursor: pointer;
  inset: 0;
  background: #e5e7eb;
  border-radius: 9999px;
  transition: 0.2s;
}
.admin-guides-boost-toggle__slider::before {
  content: '';
  position: absolute;
  height: 1.1rem;
  width: 1.1rem;
  left: 0.2rem;
  bottom: 0.2rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transition: 0.2s;
}
.admin-guides-boost-toggle__input:checked + .admin-guides-boost-toggle__slider { background: var(--primary-hex); }
.admin-guides-boost-toggle__input:checked + .admin-guides-boost-toggle__slider::before { transform: translateX(1.25rem); }
.admin-guide-cat {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  border-radius: 0.375rem;
  font-size: 0.75rem;
  font-weight: 700;
}
.admin-guide-cat--waterfall { background: #93c5fd; color: #1e40af; }
.admin-guide-cat--trail { background: #a78bfa; color: #4c1d95; }
.admin-guide-cat--default { background: #d6d3d1; color: #44403c; }

/* Planos de Assinatura — card grid + modal */
.admin-plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 1rem;
}
.admin-plans-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 3rem 1rem;
  color: #6b7280;
  background: #fff;
  border: 1px dashed #e5e7eb;
  border-radius: 1.25rem;
}
.admin-plan-card {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 1.25rem;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}
.admin-plan-card--active { border-color: rgba(26, 92, 53, 0.28); }
.admin-plan-card__head { position: relative; padding-right: 4.25rem; }
.admin-plan-card__badge {
  position: absolute;
  top: 0;
  right: 0;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
}
.admin-plan-card__badge--active { background: #d1fae5; color: #166534; }
.admin-plan-card__badge--inactive { background: #f3f4f6; color: #6b7280; }
.admin-plan-card__title { margin: 0 0 0.1rem; font-size: 1rem; font-weight: 800; }
.admin-plan-card__slug { margin: 0; font-size: 0.75rem; color: #94a3b8; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', monospace; background: #f8faf8; display: inline-block; padding: 0.1rem 0.35rem; border-radius: 0.3rem; border: 1px solid #edf2ed; }
.admin-plan-card__price { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--primary-hex); background: linear-gradient(90deg, rgba(26, 92, 53, 0.08), rgba(26, 92, 53, 0.03)); border-radius: 0.95rem; padding: 0.7rem 0.85rem; }
.admin-plan-card__trial { margin: -0.35rem 0 0; font-size: 0.78rem; color: #6b7280; }
.admin-plan-card__desc { margin: 0.15rem 0 0; font-size: 0.85rem; color: #4b5563; line-height: 1.4; }
.admin-plan-card__limits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.admin-plan-card__limit {
  background: linear-gradient(180deg, rgba(26, 92, 53, 0.06), rgba(26, 92, 53, 0.03));
  border: 1px solid rgba(26, 92, 53, 0.08);
  border-radius: 0.9rem;
  padding: 0.55rem 0.65rem;
}
.admin-plan-card__limit-value { margin: 0; font-size: 0.95rem; font-weight: 800; color: #111827; line-height: 1.05; }
.admin-plan-card__limit-label { margin: 0.1rem 0 0; font-size: 0.68rem; color: #6b7280; }
.admin-plan-card__features { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.admin-plan-card__feature {
  font-size: 0.73rem;
  padding: 0.22rem 0.5rem;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  color: #374151;
}
.admin-plan-card__custom-features { list-style: none; padding: 0; margin: 0.1rem 0 0; display: flex; flex-direction: column; gap: 0.35rem; }
.admin-plan-card__custom-feature { display: flex; align-items: flex-start; gap: 0.4rem; font-size: 0.82rem; color: #4b5563; line-height: 1.35; }
.admin-plan-card__custom-feature-check { color: #16a34a; font-weight: 800; margin-top: 0.05rem; }
.admin-plan-card__spots { margin: 0; font-size: 0.8rem; color: #6b7280; }
.admin-plan-card__actions { display: flex; gap: 0.5rem; margin-top: auto; padding-top: 0.65rem; border-top: 1px solid rgba(148, 163, 184, 0.18); }
.admin-plan-card__actions .admin-btn { height: 2.35rem; }
.admin-plan-card__actions .btn-plan-edit { flex: 1; }
.admin-form__hint { font-size: 0.75rem; color: #6b7280; margin: 0.25rem 0 0; display: block; }
.admin-form__section-title--sm { font-size: 0.8rem; margin-bottom: 0.25rem; }
.admin-form__row--checkboxes { display: flex; flex-direction: column; gap: 0.35rem; }
/* Wrap checkbox + text in one row (.admin-form__row label { display:block } would stack them otherwise) */
.admin-form__row label.admin-form__checkbox-label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0;
  font-weight: 500;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #334155;
  cursor: pointer;
}
.admin-form__row label.admin-form__checkbox-label input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  min-width: 1.1rem;
  margin: 0.2rem 0 0;
  padding: 0;
  flex-shrink: 0;
  accent-color: var(--primary-hex, #166534);
  cursor: pointer;
}
.admin-form__checkbox-label__text { flex: 1; min-width: 0; }
.admin-form__checkbox-label__hint {
  display: inline;
  font-weight: 400;
  color: #64748b;
  font-size: 0.82rem;
}
.admin-form__checkbox-label { display: flex; align-items: center; gap: 0.5rem; font-weight: 500; cursor: pointer; }

/* Event modal — compact group for listing / featured / status */
#modal-admin-event .admin-form__event-publish {
  margin-bottom: 1rem;
  padding: 1rem 1.1rem;
  background: linear-gradient(165deg, #f8fafc 0%, #f1f5f9 55%, #ecfdf5 160%);
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
#modal-admin-event .admin-form__event-publish__title {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
  margin: 0 0 0.1rem;
}
#modal-admin-event .admin-form__event-publish .admin-form__checkbox-label {
  padding: 0.4rem 0.5rem;
  margin: 0;
  border-radius: 0.5rem;
  transition: background 0.15s ease;
}
#modal-admin-event .admin-form__event-publish .admin-form__checkbox-label:hover {
  background: rgba(255, 255, 255, 0.65);
}
#modal-admin-event .admin-form__event-publish__status {
  margin: 0.35rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(203, 213, 225, 0.85);
}
#modal-admin-event .admin-form__event-publish__status label {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  color: #475569;
  margin-bottom: 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
#modal-admin-event .admin-form__event-publish__status select {
  width: 100%;
  max-width: 16rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  font-size: 0.9rem;
  background: #fff;
  color: #1e293b;
}
#modal-admin-event .admin-form__event-publish__status select:focus {
  outline: none;
  border-color: var(--primary-hex, #166534);
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.12);
}

/* Admin event modal — structured layout */
#modal-admin-event .admin-event-modal.admin-modal__box {
  border-color: rgba(26, 92, 53, 0.22);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.22), 0 0 0 1px rgba(26, 92, 53, 0.06);
  max-width: 38rem;
}
#modal-admin-event .admin-event-modal__header {
  padding: 1.15rem 1.35rem 1rem;
  background: linear-gradient(115deg, rgba(236, 253, 245, 0.95) 0%, rgba(240, 253, 244, 0.75) 42%, rgba(255, 255, 255, 0.9) 100%);
  border-bottom: 1px solid rgba(22, 101, 52, 0.12);
  border-radius: 1.25rem 1.25rem 0 0;
}
#modal-admin-event .admin-event-modal__header .admin-modal__title {
  margin: 0;
  padding-right: 2.75rem;
  font-size: 1.2rem;
  font-weight: 800;
  color: #14532d;
  letter-spacing: -0.02em;
}
#modal-admin-event .admin-event-modal__header .admin-modal__close {
  top: 1rem;
  right: 1.1rem;
}
#modal-admin-event .admin-event-modal__form {
  padding: 1.1rem 1.35rem 1.35rem;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 8%, #fafafa 100%);
}
#modal-admin-event .admin-event-modal__form > .admin-form__row {
  margin-bottom: 0;
}
#modal-admin-event .admin-event-modal__section {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 0.85rem;
  padding: 1rem 1.1rem 1.05rem;
  margin-bottom: 0.85rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}
#modal-admin-event .admin-event-modal__section--media {
  background: linear-gradient(165deg, #fff 0%, #fafafa 100%);
}
#modal-admin-event .admin-event-modal__section-title {
  margin: 0 0 0.85rem;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #475569;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
#modal-admin-event .admin-event-modal__section-icon {
  font-size: 1rem;
  line-height: 1;
  opacity: 0.92;
}
#modal-admin-event .admin-event-modal__req {
  color: #b45309;
  font-weight: 800;
}
#modal-admin-event .admin-event-modal__hint {
  margin-top: 0.15rem;
  margin-bottom: 0.45rem;
  line-height: 1.4;
}
#modal-admin-event .admin-event-modal__row--flush label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.3rem;
}
#modal-admin-event .admin-event-modal__control,
#modal-admin-event .admin-event-modal__form .admin-search-input {
  border: 1px solid #cbd5e1;
  border-radius: 0.55rem;
  padding: 0.55rem 0.7rem;
  font-size: 0.9rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#modal-admin-event .admin-event-modal__control:focus,
#modal-admin-event .admin-event-modal__form .admin-search-input:focus {
  outline: none;
  border-color: var(--primary-hex, #166534);
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.12);
}
#modal-admin-event .admin-event-modal__grid-dates {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
  margin-bottom: 0.65rem;
}
#modal-admin-event .admin-event-modal__grid-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
}
@media (max-width: 520px) {
  #modal-admin-event .admin-event-modal__grid-dates,
  #modal-admin-event .admin-event-modal__grid-links {
    grid-template-columns: 1fr;
  }
}
#modal-admin-event .admin-event-modal__dropzone {
  border-color: rgba(22, 101, 52, 0.28);
  background: linear-gradient(160deg, #f0fdf4 0%, #fff 55%);
  border-radius: 0.75rem;
}
#modal-admin-event .admin-event-modal__dropzone:hover {
  border-color: rgba(22, 101, 52, 0.45);
}
#modal-admin-event .admin-event-modal__publish {
  margin-bottom: 0.85rem;
  border-radius: 0.85rem;
}
#modal-admin-event .admin-event-modal__actions {
  position: sticky;
  bottom: 0;
  margin: 0 -1.35rem -1.35rem;
  margin-top: 0.25rem;
  padding: 1rem 1.35rem 1.25rem;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0) 0%, rgba(248, 250, 252, 0.92) 28%, #f1f5f9 100%);
  border-top: 1px solid rgba(203, 213, 225, 0.65);
  gap: 0.65rem;
}
#modal-admin-event .admin-event-modal__actions .admin-btn--primary {
  min-width: 8.5rem;
}

/* Admin ad modal — same visual language as event modal */
#modal-admin-ad .admin-ad-modal.admin-modal__box {
  border-color: rgba(26, 92, 53, 0.22);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.22), 0 0 0 1px rgba(26, 92, 53, 0.06);
  max-width: 38rem;
}
#modal-admin-ad .admin-ad-modal__header {
  padding: 1.15rem 1.35rem 1rem;
  background: linear-gradient(115deg, rgba(236, 253, 245, 0.95) 0%, rgba(240, 253, 244, 0.75) 42%, rgba(255, 255, 255, 0.9) 100%);
  border-bottom: 1px solid rgba(22, 101, 52, 0.12);
  border-radius: 1.25rem 1.25rem 0 0;
}
#modal-admin-ad .admin-ad-modal__header .admin-modal__title {
  margin: 0;
  padding-right: 2.75rem;
  font-size: 1.2rem;
  font-weight: 800;
  color: #14532d;
  letter-spacing: -0.02em;
}
#modal-admin-ad .admin-ad-modal__header .admin-modal__close {
  top: 1rem;
  right: 1.1rem;
}
#modal-admin-ad .admin-ad-modal__form {
  padding: 1.1rem 1.35rem 1.35rem;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 8%, #fafafa 100%);
}
#modal-admin-ad .admin-ad-modal__form > .admin-form__row {
  margin-bottom: 0;
}
#modal-admin-ad .admin-ad-modal__section {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 0.85rem;
  padding: 1rem 1.1rem 1.05rem;
  margin-bottom: 0.85rem;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
}
#modal-admin-ad .admin-ad-modal__section--media {
  background: linear-gradient(165deg, #fff 0%, #fafafa 100%);
}
#modal-admin-ad .admin-ad-modal__section-title {
  margin: 0 0 0.85rem;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #475569;
  display: flex;
  align-items: center;
  gap: 0.45rem;
}
#modal-admin-ad .admin-ad-modal__section-icon {
  font-size: 1rem;
  line-height: 1;
  opacity: 0.92;
}
#modal-admin-ad .admin-ad-modal__req {
  color: #b45309;
  font-weight: 800;
}
#modal-admin-ad .admin-ad-modal__hint {
  margin-top: 0.15rem;
  margin-bottom: 0.45rem;
  line-height: 1.4;
}
#modal-admin-ad .admin-ad-modal__row--flush label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #334155;
  margin-bottom: 0.3rem;
}
#modal-admin-ad .admin-ad-modal__control,
#modal-admin-ad .admin-ad-modal__form .admin-search-input {
  border: 1px solid #cbd5e1;
  border-radius: 0.55rem;
  padding: 0.55rem 0.7rem;
  font-size: 0.9rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
#modal-admin-ad .admin-ad-modal__control:focus,
#modal-admin-ad .admin-ad-modal__form .admin-search-input:focus {
  outline: none;
  border-color: var(--primary-hex, #166534);
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.12);
}
#modal-admin-ad .admin-ad-modal__grid-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
}
@media (max-width: 520px) {
  #modal-admin-ad .admin-ad-modal__grid-pair {
    grid-template-columns: 1fr;
  }
}
#modal-admin-ad .admin-ad-modal__dropzone {
  border-color: rgba(22, 101, 52, 0.28);
  background: linear-gradient(160deg, #f0fdf4 0%, #fff 55%);
  border-radius: 0.75rem;
}
#modal-admin-ad .admin-ad-modal__dropzone:hover {
  border-color: rgba(22, 101, 52, 0.45);
}
#modal-admin-ad .admin-ad-modal__payment {
  margin-bottom: 0.85rem;
  padding: 1rem 1.1rem;
  background: linear-gradient(165deg, #f8fafc 0%, #f1f5f9 50%, #ecfdf5 140%);
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.85rem;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
#modal-admin-ad .admin-ad-modal__payment-title {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
  margin: 0 0 0.5rem;
}
#modal-admin-ad .admin-ad-modal__payment .admin-form__checkbox-label {
  padding: 0.35rem 0.25rem;
  border-radius: 0.45rem;
  margin: 0;
}
#modal-admin-ad .admin-ad-modal__payment .admin-form__checkbox-label:hover {
  background: rgba(255, 255, 255, 0.7);
}
#modal-admin-ad .admin-ad-modal__actions {
  position: sticky;
  bottom: 0;
  margin: 0 -1.35rem -1.35rem;
  margin-top: 0.25rem;
  padding: 1rem 1.35rem 1.25rem;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0) 0%, rgba(248, 250, 252, 0.92) 28%, #f1f5f9 100%);
  border-top: 1px solid rgba(203, 213, 225, 0.65);
  gap: 0.65rem;
}
#modal-admin-ad .admin-ad-modal__actions .admin-btn--primary {
  min-width: 9rem;
}

.admin-form__features-list { list-style: none; padding: 0; margin: 0.5rem 0 0; }
.admin-form__feature-item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.35rem 0.5rem; background: #f9fafb; border-radius: 0.375rem; margin-bottom: 0.35rem;
}
.admin-form__feature-remove {
  background: none; border: none; color: #6b7280; cursor: pointer; padding: 0.2rem;
}
.admin-form__feature-remove:hover { color: #dc2626; }

/* Plan modal — Replit-style (Editar Plano) */
#modal-plan .admin-modal__box--plan { border-color: rgba(26, 92, 53, 0.2); }
#modal-plan .admin-form--plan .admin-form__section-title { color: #14532d; font-weight: 800; letter-spacing: 0.05em; }
#modal-plan .admin-form--plan .admin-form__row input,
#modal-plan .admin-form--plan .admin-form__row select,
#modal-plan .admin-form--plan .admin-form__row textarea {
  border-radius: 0.75rem;
  background: #fff;
  border-color: #e5e7eb;
}
#modal-plan .admin-form--plan .admin-form__row input:focus,
#modal-plan .admin-form--plan .admin-form__row select:focus,
#modal-plan .admin-form--plan .admin-form__row textarea:focus {
  outline: none;
  border-color: var(--primary-hex, #1a5c35);
  box-shadow: 0 0 0 3px rgba(26, 92, 53, 0.15);
}
#modal-plan .admin-form--plan .admin-form__section--price {
  background: rgba(249, 250, 251, 0.9);
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
}
#modal-plan .admin-form--plan .admin-form__row--triple {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
#modal-plan .admin-form--plan .admin-form__row--triple .admin-form__row { margin-bottom: 0; }
#modal-plan .admin-form--plan .admin-form__row--max-w { max-width: 20rem; }
#modal-plan .admin-form--plan .admin-form__hint--block { display: block; margin-bottom: 0.5rem; }
#modal-plan .admin-form--plan .admin-form__row--feature-add {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.5rem;
}
#modal-plan .admin-form--plan .admin-form__row--feature-add input { flex: 1; margin-bottom: 0; }
#modal-plan .admin-form--plan .admin-form__row--feature-add .admin-btn--icon {
  width: 2.5rem;
  min-width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
  border-radius: 0.75rem;
}
#modal-plan .admin-form--plan .admin-form__section--compact { margin-bottom: 1rem; }
#modal-plan .admin-form--plan .admin-form__section--compact .admin-form__section-title { display: none; }
#modal-plan .admin-form--plan .admin-form__row.hidden { display: none !important; }
#modal-plan .admin-form--plan .admin-form__actions { border-top: 1px solid #e5e7eb; padding-top: 1rem; margin-top: 1rem; }
@media (max-width: 640px) {
  #modal-plan .admin-form--plan .admin-form__row--triple { grid-template-columns: 1fr; }
  #modal-plan .admin-form--plan .admin-form__row--max-w { max-width: none; }
  .admin-plan-card__limits { grid-template-columns: 1fr; }
}

.admin-categories-list { display: flex; flex-direction: column; gap: 0.5rem; }
.admin-category-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
}
.admin-category-emoji { font-size: 1.25rem; }
.admin-category-name { font-weight: 600; }
.admin-category-key { font-size: 0.8rem; color: #6b7280; background: #f3f4f6; padding: 0.15rem 0.35rem; border-radius: 0.25rem; }
.admin-modal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.admin-modal.hidden { display: none !important; }
.admin-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.8);
}
.admin-modal__box {
  position: relative;
  background: #fff;
  border-radius: 1.25rem;
  border: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  max-width: 28rem;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}
.admin-modal__box--wide { max-width: 36rem; }
.admin-modal__box--narrow { max-width: 24rem; }
.admin-modal__box--category-edit { max-width: 46rem; }
.admin-category-template-block { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #e5e7eb; }
.admin-category-template-cards { display: flex; flex-direction: column; gap: 0.75rem; margin: 0.75rem 0; max-height: 46vh; overflow: auto; }
.admin-category-template-summary { margin: 0 0 0.25rem; padding: 0.5rem 0.65rem; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 0.5rem; font-size: 0.875rem; color: #065f46; }
.admin-category-template-card { border: 1px solid #e5e7eb; border-radius: 0.5rem; padding: 0.75rem; background: #fafafa; }
.admin-category-template-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.admin-category-template-card__title { font-weight: 600; font-size: 0.9rem; flex: 1 1 auto; }
.admin-category-template-toolbar { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; margin-top: 0.5rem; }
.admin-form__select-inline { min-width: 12rem; padding: 0.35rem 0.5rem; border-radius: 0.35rem; border: 1px solid #d1d5db; font-size: 0.875rem; }
.admin-category-template-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.35rem; margin-bottom: 0.35rem; align-items: end; }
.admin-category-template-empty {
  border: 2px dashed #cbd5e1;
  border-radius: 0.75rem;
  padding: 1rem 1.1rem;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  margin-bottom: 0.25rem;
}
.admin-category-template-empty__title { margin: 0 0 0.5rem; font-size: 0.95rem; color: #0f172a; }
.admin-category-template-empty__text { margin: 0 0 0.5rem; font-size: 0.875rem; line-height: 1.45; color: #475569; }
.admin-category-template-empty__hint { margin: 0; font-size: 0.8125rem; line-height: 1.45; color: #64748b; }
.admin-category-template-empty__code { font-size: 0.8rem; background: #e2e8f0; padding: 0.1rem 0.35rem; border-radius: 0.25rem; }
@media (max-width: 640px) {
  .admin-category-template-field-row { grid-template-columns: 1fr; }
}
.admin-modal__title {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 0 0 1rem;
  padding-right: 2.5rem;
}
.admin-modal__close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  line-height: 1;
  background: none;
  border: none;
  border-radius: 0.25rem;
  cursor: pointer;
  color: #6b7280;
  opacity: 0.7;
  transition: opacity 0.15s;
}
.admin-modal__close:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.05);
}
.admin-modal__box--with-header { padding: 0; }
.admin-modal__box--with-header .admin-modal__header {
  padding: 1.5rem 1.5rem 1rem;
  background: linear-gradient(to right, rgba(26, 92, 53, 0.1), transparent);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  margin: 0;
}
/* Onboarding: match guide-remove modal family (soft mint wash, not stripy green bar) */
#modal-promoter-onboarding .admin-modal__box--with-header .admin-modal__header {
  padding: 1.5rem 1.5rem 1.2rem;
  background: linear-gradient(180deg, #ecfdf5 0%, #f0fdf4 38%, #fafafa 72%, #ffffff 100%);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 1.25rem 1.25rem 0 0;
}
#modal-promoter-onboarding.promoter-onboarding-modal--track-guide .admin-modal__header {
  background: linear-gradient(180deg, #fffbeb 0%, #f0fdf4 45%, #fafafa 78%, #ffffff 100%);
}
.admin-modal__box--with-header .admin-modal__title { margin: 0; padding-right: 2.5rem; }
.admin-modal__box--with-header .admin-form { padding: 1.5rem; }
.admin-modal__box--scroll { max-height: 90vh; overflow: hidden; display: flex; flex-direction: column; }
.admin-modal__box--scroll .admin-form { overflow-y: auto; flex: 1; min-height: 0; }

/* Spot modal (Novo Local / Adicionar Serviço): same Replit-style for admin and promoter */
#modal-spot .admin-modal__box,
#modal-spot-promoter .admin-modal__box,
#modal-event-form .admin-modal__box,
#modal-buy-event .admin-modal__box { border-color: rgba(26, 92, 53, 0.2); }
#modal-spot .admin-modal__header,
#modal-spot-promoter .admin-modal__header,
#modal-event-form .admin-modal__header,
#modal-buy-event .admin-modal__header {
  background: linear-gradient(to right, rgba(26, 92, 53, 0.12), rgba(236, 253, 245, 0.8));
  border-bottom-color: rgba(26, 92, 53, 0.15);
}
#modal-spot .admin-modal__title,
#modal-spot-promoter .admin-modal__title,
#modal-event-form .admin-modal__title,
#modal-buy-event .admin-modal__title { color: #14532d; padding-right: 0; }
/* Buy-event wizard: project has no global `.hidden`; form step lacked a scoped rule, so both steps stacked in the scroll area. */
#modal-buy-event #buy-event-step-form.hidden,
#modal-buy-event #buy-event-step-success.hidden {
  display: none !important;
}
.admin-modal__body--pad { padding: 1.5rem; }

.admin-form__section { margin-bottom: 1.5rem; }
.admin-form__section-title {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #4b5563;
  margin: 0 0 0.75rem 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.admin-form__section-icon { font-size: 0.9rem; }
.admin-form__label-with-icon { display: flex; align-items: center; gap: 0.25rem; }
.admin-form__row {
  margin-bottom: 1rem;
}
.admin-form__row label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}
.admin-form__row input,
.admin-form__row select,
.admin-form__row textarea {
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.9rem;
}
.admin-form__row--inline { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.admin-form__toggles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.5rem 1rem;
  margin-bottom: 1rem;
}
.admin-form__toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
}
.admin-form__toggle input[type="checkbox"] { width: auto; margin: 0; accent-color: var(--primary-hex, #166534); }

/* ── Spot form (Novo Local): Replit-style — same for admin and proprietários ── */
.spot-form .admin-form__section {
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 50%, #d1fae5 100%);
  border: 1px solid rgba(22, 101, 52, 0.35);
  border-radius: 1rem;
  padding: 1.5rem 1.75rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 2px 12px rgba(26, 92, 53, 0.08), 0 1px 3px rgba(0,0,0,0.04);
}
.spot-form .admin-form__section-title {
  color: #14532d;
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-shadow: 0 0 0 transparent;
}
.spot-form .admin-form__section-icon {
  opacity: 1;
  font-size: 1.1rem;
  filter: none;
}
.spot-form .admin-form__row label {
  color: #1f2937;
  font-weight: 600;
  font-size: 0.875rem;
}
.spot-form .admin-form__row input,
.spot-form .admin-form__row select,
.spot-form .admin-form__row textarea {
  background: #fff;
  border: 1px solid #86efac;
  border-radius: 0.75rem;
  padding: 0.6rem 0.85rem;
  font-size: 0.9rem;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
.spot-form .admin-form__row input:hover,
.spot-form .admin-form__row select:hover,
.spot-form .admin-form__row textarea:hover {
  border-color: #4ade80;
}
.spot-form .admin-form__row input:focus,
.spot-form .admin-form__row select:focus,
.spot-form .admin-form__row textarea:focus {
  outline: none;
  border-color: var(--primary-hex);
  box-shadow: 0 0 0 3px rgba(26, 92, 53, 0.2);
  background: #fff;
}
.spot-form .admin-form__upload-zone {
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  border: 2px dashed rgba(22, 101, 52, 0.5);
  border-radius: 1rem;
  padding: 1.5rem;
  text-align: center;
  transition: border-color 0.2s, background 0.2s;
}
.spot-form .admin-form__upload-zone:hover {
  border-color: var(--primary-hex);
  background: #d1fae5;
}
.spot-form .admin-form__upload-url {
  background: #fff;
  border: 1px solid #86efac;
  border-radius: 0.75rem;
  padding: 0.6rem 0.85rem;
}
.spot-form .admin-form__upload-hint {
  color: #166534;
  font-size: 0.8rem;
  margin-top: 0.5rem;
}
/* Toggles: green when ON (Replit-style) */
.spot-form .admin-form__toggles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
}
.spot-form .admin-form__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  color: #374151;
  cursor: pointer;
}
.spot-form .admin-form__toggle input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.spot-form .admin-form__toggle .admin-form__toggle-slider {
  display: inline-block;
  width: 2.75rem;
  height: 1.4rem;
  background: #d1d5db;
  border-radius: 9999px;
  transition: background 0.2s;
  flex-shrink: 0;
  position: relative;
}
.spot-form .admin-form__toggle .admin-form__toggle-slider::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0.2rem;
  width: 1.1rem;
  height: 1.1rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  transform: translateY(-50%);
  transition: transform 0.2s;
}
.spot-form .admin-form__toggle input[type="checkbox"]:checked + .admin-form__toggle-slider {
  background: var(--primary-hex);
}
.spot-form .admin-form__toggle input[type="checkbox"]:checked + .admin-form__toggle-slider::after {
  transform: translate(1.25rem, -50%);
}
.spot-form .admin-form__row--pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.spot-form .admin-form__row--pair .admin-form__row { margin-bottom: 0; }
.spot-form .admin-form__row--triple {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.75rem;
}
.spot-form .admin-form__row--triple .admin-form__row { margin-bottom: 0; }
.spot-form .admin-form__actions {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(26, 92, 53, 0.12);
}
@media (max-width: 640px) {
  .spot-form .admin-form__row--pair,
  .spot-form .admin-form__row--triple { grid-template-columns: 1fr; }
}

/* ── Spot form Replit template: card layout, category grid, single muted location box (no green sections) ── */
.spot-form .spot-form-replit {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  background: #fff;
  min-width: 0;
  max-width: 100%;
}
.spot-form-replit__block {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
  max-width: 100%;
}
.spot-form-replit__block--muted {
  background: hsl(var(--muted) / 0.4);
  padding: 1rem;
  border-radius: 0.75rem;
  border: 1px solid hsl(var(--border) / 0.5);
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.spot-form-replit__block--wellness {
  background: rgba(216, 180, 254, 0.25);
  border-color: rgba(147, 51, 234, 0.3);
}
.spot-form-replit__block--wellness .spot-form-replit__section-title { color: #6b21a8; }
.spot-form-replit__block--trail {
  background: rgba(147, 197, 253, 0.2);
  border-color: rgba(59, 130, 246, 0.35);
}
.spot-form-replit__block--trail .spot-form-replit__section-title { color: #1e40af; }
.spot-form-replit__trail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem 1rem;
}
.spot-form-replit__trail-grid .spot-form-replit__field--full { grid-column: 1 / -1; }
@media (min-width: 640px) { .spot-form-replit__trail-grid { grid-template-columns: repeat(3, 1fr); } }
.spot-form-replit__block--menu {
  background: rgba(254, 215, 170, 0.35);
  border-color: rgba(249, 115, 22, 0.4);
  --menu-item-accent: rgba(249, 115, 22, 0.5);
  --menu-item-focus: rgba(249, 115, 22, 0.22);
}
.spot-form-replit__block--menu .spot-form-replit__section-title {
  color: #c2410c;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-wrap: break-word;
}
.spot-form-replit__menu-hint {
  font-size: 0.8rem;
  color: #b91c1c;
  margin: 0 0 0.5rem 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-wrap: break-word;
}
.spot-form-replit__menu-actions { margin-bottom: 0.85rem; }
.spot-form-replit__block--menu .spot-form-replit__menu-add-btn {
  padding: 0.5rem 1.05rem;
  font-size: 0.875rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  color: #c2410c;
  background: linear-gradient(180deg, #fffdfb 0%, #fff7ed 100%);
  border: 1px solid rgba(249, 115, 22, 0.42);
  border-radius: 9999px;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(249, 115, 22, 0.12);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}
.spot-form-replit__block--menu .spot-form-replit__menu-add-btn:hover {
  background: linear-gradient(180deg, #fff 0%, #ffedd5 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(249, 115, 22, 0.18);
}
.spot-form-replit__block--menu-bakery .spot-form-replit__menu-add-btn {
  color: #9d174d;
  background: linear-gradient(180deg, #fff 0%, #fdf2f8 100%);
  border-color: rgba(236, 72, 153, 0.38);
  box-shadow: 0 2px 10px rgba(219, 39, 119, 0.1);
}
.spot-form-replit__block--menu-bakery .spot-form-replit__menu-add-btn:hover {
  background: linear-gradient(180deg, #fff 0%, #fce7f3 100%);
  box-shadow: 0 6px 20px rgba(219, 39, 119, 0.15);
}
.spot-form-replit__menu-items {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
  width: 100%;
}
/* Cardápio / serviços: editorial card — accent stripe, header strip, description well */
.spot-form-replit__menu-item-row {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  max-width: 100%;
  width: 100%;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
  background: #fff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 0.85rem;
  box-shadow:
    inset 3px 0 0 0 var(--menu-item-accent, rgba(249, 115, 22, 0.5)),
    0 4px 6px -1px rgba(15, 23, 42, 0.05),
    0 16px 40px -12px rgba(15, 23, 42, 0.1);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.spot-form-replit__menu-item-row:hover {
  border-color: rgba(15, 23, 42, 0.11);
  box-shadow:
    inset 3px 0 0 0 var(--menu-item-accent, rgba(249, 115, 22, 0.5)),
    0 6px 14px -2px rgba(15, 23, 42, 0.07),
    0 20px 44px -14px rgba(15, 23, 42, 0.12);
}
.spot-form-replit__menu-item-head {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  min-width: 0;
  padding: 0.7rem 0.8rem 0.72rem;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border-bottom: 1px solid rgba(15, 23, 42, 0.07);
}
.spot-form-replit__menu-item-head .spot-form-replit__menu-item-main {
  flex: 1 1 auto;
  min-width: 0;
}
.spot-form-replit__menu-item-main {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0.6rem;
  min-width: 0;
  flex: 1 1 auto;
}
.spot-form-replit__menu-item-main .spot-form-replit__menu-item-name {
  flex: 2 1 0;
  min-width: 0;
}
.spot-form-replit__menu-item-main .spot-form-replit__menu-item-price {
  flex: 1 1 0;
  min-width: 4.5rem;
  max-width: 36%;
}
.spot-form-replit__menu-item-row .spot-form-replit__menu-item-desc {
  grid-column: unset;
  grid-row: unset;
  margin: 0;
  padding: 0.65rem 0.75rem 0.75rem;
  background: rgba(241, 245, 249, 0.65);
  border: 1px solid rgba(15, 23, 42, 0.07);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.spot-form-replit__block--menu-laundry {
  background: rgba(226, 232, 240, 0.45);
  border-color: rgba(100, 116, 139, 0.4);
  --menu-item-accent: rgba(71, 85, 105, 0.48);
  --menu-item-focus: rgba(71, 85, 105, 0.2);
}
.spot-form-replit__block--menu-laundry .spot-form-replit__section-title { color: #475569; }
.spot-form-replit__block--menu-bakery {
  background: rgba(252, 231, 243, 0.45);
  border-color: rgba(236, 72, 153, 0.4);
  --menu-item-accent: rgba(219, 39, 119, 0.42);
  --menu-item-focus: rgba(219, 39, 119, 0.2);
}
.spot-form-replit__block--menu-bakery .spot-form-replit__section-title { color: #9d174d; }
.spot-form-replit__block--menu-bakery .spot-form-replit__menu-item-head {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(253, 242, 248, 0.72) 100%);
  border-bottom-color: rgba(219, 39, 119, 0.1);
}
.spot-form-replit__block--menu-bakery .spot-form-replit__menu-item-row .spot-form-replit__menu-item-desc {
  background: rgba(253, 242, 248, 0.55);
  border-color: rgba(219, 39, 119, 0.12);
}
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-car {
  background: rgba(219, 234, 254, 0.45);
  border-color: rgba(59, 130, 246, 0.4);
  --menu-item-accent: rgba(59, 130, 246, 0.48);
  --menu-item-focus: rgba(59, 130, 246, 0.28);
}
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-car .spot-form-replit__section-title { color: #1d4ed8; }
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-bike {
  background: rgba(220, 252, 231, 0.5);
  border-color: rgba(34, 197, 94, 0.4);
  --menu-item-accent: rgba(34, 197, 94, 0.48);
  --menu-item-focus: rgba(34, 197, 94, 0.26);
}
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-bike .spot-form-replit__section-title { color: #15803d; }
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-bike .spot-form-replit__menu-item-desc {
  display: none;
}
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-house {
  background: rgba(255, 237, 213, 0.5);
  border-color: rgba(234, 88, 12, 0.4);
  --menu-item-accent: rgba(234, 88, 12, 0.5);
  --menu-item-focus: rgba(234, 88, 12, 0.24);
}
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-house .spot-form-replit__section-title { color: #c2410c; }
.spot-form-replit__block--menu-rental.spot-form-replit__block--menu-rental-house .spot-form-replit__menu-hint { color: #9a3412; }
.spot-form-replit__block--menu-coworking {
  background: rgba(238, 242, 255, 0.55);
  border-color: rgba(99, 102, 241, 0.38);
  --menu-item-accent: rgba(99, 102, 241, 0.45);
  --menu-item-focus: rgba(99, 102, 241, 0.26);
}
.spot-form-replit__block--menu-coworking .spot-form-replit__section-title { color: #4338ca; }
.spot-form-replit__block--menu-coworking .spot-form-replit__menu-hint { color: #3730a3; }
.spot-form-replit__block--menu-wellness {
  background: rgba(245, 243, 255, 0.55);
  border-color: rgba(124, 58, 237, 0.35);
  --menu-item-accent: rgba(124, 58, 237, 0.42);
  --menu-item-focus: rgba(124, 58, 237, 0.24);
}
.spot-form-replit__block--menu-wellness .spot-form-replit__section-title { color: #6d28d9; }
.spot-form-replit__block--menu-wellness .spot-form-replit__menu-hint { color: #5b21b6; }
.spot-form-replit__block--internet-profile {
  background: rgba(219, 234, 254, 0.35);
  border-color: rgba(59, 130, 246, 0.38);
}
.spot-form-replit__block--internet-profile .spot-form-replit__section-title {
  color: #1d4ed8;
}
.spot-form-replit__block--internet-profile .spot-form-replit__internet-profile-hint {
  color: #1e40af;
}
.spot-form-replit__block--internet-shop .spot-form-replit__section-title {
  color: #1d4ed8;
}
.spot-form-replit__block--menu-gas {
  background: rgba(254, 226, 226, 0.45);
  border-color: rgba(220, 38, 38, 0.4);
  --menu-item-accent: rgba(220, 38, 38, 0.45);
  --menu-item-focus: rgba(220, 38, 38, 0.22);
}
.spot-form-replit__block--menu-gas .spot-form-replit__section-title { color: #b91c1c; }
.spot-form-replit__block--menu-gas .spot-form-replit__menu-hint { color: #991b1b; }
.spot-form-replit__block--menu-atm-bank {
  background: rgba(224, 242, 254, 0.5);
  border-color: rgba(3, 105, 161, 0.4);
  --menu-item-accent: rgba(3, 105, 161, 0.45);
  --menu-item-focus: rgba(3, 105, 161, 0.24);
}
.spot-form-replit__block--menu-atm-bank .spot-form-replit__section-title { color: #0369a1; }
.spot-form-replit__block--menu-atm-bank .spot-form-replit__menu-hint { color: #0c4a6e; }
.spot-form-replit__block--menu-atm-bank .spot-form-replit__menu-item-desc {
  display: none;
}
.spot-form-replit__block--menu-clinic-health {
  background: rgba(204, 251, 241, 0.45);
  border-color: rgba(13, 148, 136, 0.4);
  --menu-item-accent: rgba(13, 148, 136, 0.45);
  --menu-item-focus: rgba(13, 148, 136, 0.24);
}
.spot-form-replit__block--menu-clinic-health .spot-form-replit__section-title { color: #0f766e; }
.spot-form-replit__block--menu-clinic-health .spot-form-replit__menu-hint { color: #115e59; }
.spot-form-replit__block--menu-pet-care {
  background: rgba(243, 232, 255, 0.5);
  border-color: rgba(192, 132, 252, 0.45);
  --menu-item-accent: rgba(168, 85, 247, 0.42);
  --menu-item-focus: rgba(168, 85, 247, 0.24);
}
.spot-form-replit__block--menu-pet-care .spot-form-replit__section-title { color: #7e22ce; }
.spot-form-replit__block--menu-pet-care .spot-form-replit__menu-hint { color: #6b21a8; }
.spot-form-replit__block--menu-beauty-salon {
  background: rgba(252, 231, 243, 0.55);
  border-color: rgba(244, 114, 182, 0.45);
  --menu-item-accent: rgba(236, 72, 153, 0.38);
  --menu-item-focus: rgba(236, 72, 153, 0.22);
}
.spot-form-replit__block--menu-beauty-salon .spot-form-replit__section-title { color: #be185d; }
.spot-form-replit__block--menu-beauty-salon .spot-form-replit__menu-hint { color: #9d174d; }
.spot-form-replit__block--menu-gas .spot-form-replit__menu-item-desc {
  display: none;
}
.spot-form-replit__block--taxi {
  background: rgba(254, 243, 199, 0.4);
  border-color: rgba(234, 179, 8, 0.45);
}
.spot-form-replit__block--taxi .spot-form-replit__section-title { color: #a16207; }
.spot-form-replit__block--taxi .spot-form-replit__taxi-hint { color: #92400e; }
.spot-form-replit__taxi-routes { display: flex; flex-direction: column; gap: 0.5rem; }
.spot-form-replit__taxi-route-row {
  display: grid;
  grid-template-columns: 1.15fr 1.15fr 1fr auto;
  gap: 0.5rem;
  align-items: center;
}
.spot-form-replit__taxi-route-row .spot-form-replit__taxi-pickup,
.spot-form-replit__taxi-route-row .spot-form-replit__taxi-destination,
.spot-form-replit__taxi-route-row .spot-form-replit__taxi-distance {
  padding: 0.4rem 0.5rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.875rem;
}
@media (max-width: 640px) {
  .spot-form-replit__taxi-route-row {
    grid-template-columns: 1fr;
  }
}
.spot-form-replit__menu-item-row .spot-form-replit__menu-item-name,
.spot-form-replit__menu-item-row .spot-form-replit__menu-item-price {
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.spot-form-replit__menu-item-row .spot-form-replit__menu-item-name:focus-visible,
.spot-form-replit__menu-item-row .spot-form-replit__menu-item-price:focus-visible,
.spot-form-replit__menu-item-row .spot-form-replit__menu-item-desc:focus-visible {
  outline: 2px solid var(--menu-item-focus, rgba(249, 115, 22, 0.28));
  outline-offset: 2px;
  border-color: rgba(15, 23, 42, 0.16);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--menu-item-focus, rgba(249, 115, 22, 0.28)) 35%, transparent);
}
.spot-form-replit__menu-item-main .spot-form-replit__menu-item-name,
.spot-form-replit__menu-item-main .spot-form-replit__menu-item-price {
  width: auto;
}
.spot-form-replit__menu-item-remove {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(15, 23, 42, 0.1);
  color: #94a3b8;
  border-radius: 50%;
  cursor: pointer;
  font-size: 0.8rem;
  line-height: 1;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}
.spot-form-replit__menu-item-remove:hover {
  background: rgba(254, 242, 242, 0.98);
  border-color: rgba(185, 28, 28, 0.35);
  color: #b91c1c;
  transform: scale(1.05);
}
.spot-form-replit__menu-item-remove:focus-visible {
  outline: 2px solid var(--menu-item-focus, rgba(249, 115, 22, 0.28));
  outline-offset: 2px;
}

/* Spot modal: contain wide form; per-row card styling on menu block */
.admin-modal.admin-modal--spot-replit .spot-form {
  min-width: 0;
  max-width: 100%;
}
.admin-modal.admin-modal--spot-replit .spot-form-replit__block--menu {
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
}
.admin-modal.admin-modal--spot-replit .spot-form-replit__menu-items {
  min-width: 0;
  max-width: 100%;
}
.admin-modal--spot-replit .spot-form-replit__taxi-route-row {
  grid-template-columns: 1fr;
  gap: 0.45rem;
}

.spot-form-replit__menu-tags { margin-top: 1rem; }
.spot-form-replit__tag-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.25rem;
}
.spot-form-replit__tag {
  padding: 0.35rem 0.6rem;
  font-size: 0.8rem;
  border-radius: 9999px;
  border: 1px solid #d1d5db;
  background: #fff;
  color: #374151;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.spot-form-replit__tag:hover { border-color: var(--primary-hex); background: #f0fdf4; color: var(--primary-hex); }
.spot-form-replit__tag.active {
  background: var(--primary-hex, #166534);
  border-color: var(--primary-hex, #166534);
  color: #fff;
}
.spot-form-replit__tag--meals.active { background: #eab308; border-color: #ca8a04; color: #422006; }
.spot-form-replit__block--pousada {
  background: rgba(167, 243, 208, 0.25);
  border-color: rgba(22, 163, 74, 0.35);
}
.spot-form-replit__block--pousada .spot-form-replit__section-title { color: #166534; }
.spot-form-replit__block--loja {
  background: rgba(254, 240, 138, 0.35);
  border-color: rgba(202, 138, 4, 0.4);
}
.spot-form-replit__block--loja .spot-form-replit__section-title { color: #854d0e; }
.spot-form-replit__block--music-events {
  background: rgba(251, 207, 232, 0.35);
  border-color: rgba(219, 39, 119, 0.35);
}
.spot-form-replit__block--music-events .spot-form-replit__section-title { color: #9d174d; }
.spot-form-replit__block--music-events .spot-form-replit__music-hint {
  color: #9d174d;
  font-size: 0.8125rem;
  margin: 0 0 0.5rem;
  opacity: 0.92;
}
.spot-form-replit__music-events {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.spot-form-replit__music-event-card {
  position: relative;
  padding: 0.65rem 2.25rem 0.65rem 0.65rem;
  border: 1px solid rgba(219, 39, 119, 0.28);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.65);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.spot-form-replit__music-ev-remove {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
}
.spot-form-replit__music-ev-meta {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.45rem;
}
.spot-form-replit__music-ev-extra {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 0.45rem;
}
@media (max-width: 640px) {
  .spot-form-replit__music-ev-meta,
  .spot-form-replit__music-ev-extra {
    grid-template-columns: 1fr;
  }
}
.spot-form-replit__block--mirante {
  background: rgba(233, 213, 255, 0.3);
  border-color: rgba(139, 92, 246, 0.4);
}
.spot-form-replit__block--mirante .spot-form-replit__section-title { color: #6b21a8; }
.spot-form-replit__block--activity {
  background: rgba(254, 243, 199, 0.4);
  border-color: rgba(245, 158, 11, 0.45);
}
.spot-form-replit__block--activity .spot-form-replit__section-title { color: #b45309; }
.spot-form-replit__activity-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem 1rem;
}
.spot-form-replit__activity-grid .spot-form-replit__field--activity-other { grid-column: 1 / -1; }
@media (min-width: 640px) { .spot-form-replit__activity-grid { grid-template-columns: repeat(3, 1fr); } }
.spot-form-replit__main-image-zone {
  position: relative;
  border: 2px dashed #d1d5db;
  border-radius: 0.75rem;
  padding: 1.5rem;
  text-align: center;
  cursor: pointer;
  background: #f9fafb;
  transition: border-color 0.2s, background 0.2s;
}
.spot-form-replit__main-image-zone:hover {
  border-color: var(--primary-hex, #166534);
  background: #f0fdf4;
}
.spot-form-replit__main-image-zone--drag {
  border-color: var(--primary-hex, #166534);
  background: #dcfce7;
  border-style: solid;
}
.spot-form-replit__main-image-zone--uploading {
  pointer-events: none;
  opacity: 0.85;
}
.spot-form-replit__photos-drop-zone {
  position: relative;
  border: 2px dashed #d1d5db;
  border-radius: 0.75rem;
  padding: 1.25rem;
  text-align: center;
  cursor: pointer;
  background: #f9fafb;
  transition: border-color 0.2s, background 0.2s;
  margin-bottom: 0.75rem;
}
.spot-form-replit__photos-drop-zone:hover {
  border-color: var(--primary-hex, #166534);
  background: #f0fdf4;
}
.spot-form-replit__photos-drop-zone--drag {
  border-color: var(--primary-hex, #166534);
  background: #dcfce7;
  border-style: solid;
}
.spot-form-replit__photos-drop-zone--uploading {
  pointer-events: none;
  opacity: 0.85;
}
.spot-form-replit__photos-drop-icon { font-size: 1.5rem; display: block; margin-bottom: 0.35rem; }
.spot-form-replit__photos-drop-text { font-weight: 600; color: #1f2937; margin: 0 0 0.2rem; font-size: 0.9rem; }
.spot-form-replit__photos-drop-spec { font-size: 0.8rem; color: #6b7280; margin: 0; }
.spot-form-replit__photos-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  min-height: 0;
}
.spot-form-replit__photos-thumb {
  position: relative;
  width: 4rem;
  height: 4rem;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #e5e7eb;
  flex-shrink: 0;
}
.spot-form-replit__photos-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.spot-form-replit__photos-thumb-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 1.25rem;
  height: 1.25rem;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.6);
  color: #fff;
  font-size: 0.75rem;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}
.spot-form-replit__photos-thumb-remove:hover { background: #b91c1c; }
.spot-form-replit__photos-thumb--broken img { opacity: 0.3; }
.spot-form-replit__photos-thumb--broken::before {
  content: '?';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  color: #6b7280;
  pointer-events: none;
}
.spot-form-replit__file-input {
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.spot-form-replit__main-image-icon { font-size: 2rem; display: block; margin-bottom: 0.5rem; }
.spot-form-replit__main-image-text { font-weight: 600; color: #1f2937; margin: 0 0 0.25rem; font-size: 0.95rem; }
.spot-form-replit__main-image-spec { font-size: 0.8rem; color: #6b7280; margin: 0; }

.spot-main-image-preview {
  margin-top: 0.75rem;
}
.spot-main-image-preview.hidden {
  display: none !important;
}
.spot-main-image-preview__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  max-width: 100%;
}
.spot-main-image-preview__thumb {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0.65rem;
  background: transparent;
  cursor: pointer;
  line-height: 0;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
  transition: box-shadow 0.15s ease, transform 0.1s ease;
}
.spot-main-image-preview__thumb:hover {
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}
.spot-main-image-preview__thumb:focus-visible {
  outline: 2px solid var(--primary-hex, #166534);
  outline-offset: 3px;
}
.spot-main-image-preview__thumb img {
  display: block;
  max-width: 100%;
  max-height: 220px;
  width: auto;
  height: auto;
  border-radius: 0.65rem;
  object-fit: cover;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  vertical-align: middle;
}
.spot-main-image-preview__remove-link {
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #64748b;
  background: none;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 0.2em;
  align-self: flex-start;
}
.spot-main-image-preview__remove-link:hover {
  color: #b91c1c;
}
.spot-main-image-preview__remove-link:focus-visible {
  outline: 2px solid #94a3b8;
  outline-offset: 2px;
  border-radius: 0.25rem;
}
.spot-form-replit__schedule-rows { display: flex; flex-direction: column; gap: 0.5rem; }
.spot-form-replit__schedule-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 0.75rem;
  row-gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: #fff;
  border-radius: 0.5rem;
  border: 1px solid #e5e7eb;
  min-width: 0;
}
.spot-form-replit__schedule-day {
  grid-column: 1;
  grid-row: 1;
  font-weight: 600;
  color: #374151;
  font-size: 0.875rem;
  min-width: 0;
}
.spot-form-replit__schedule-closed {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
  color: #6b7280;
  cursor: pointer;
  margin: 0;
  white-space: nowrap;
}
.spot-form-replit__schedule-times {
  grid-column: 1 / -1;
  grid-row: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.35rem 0.5rem;
  min-width: 0;
  width: 100%;
}
.spot-form-replit__schedule-open,
.spot-form-replit__schedule-close {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding: 0.35rem 0.4rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.875rem;
}
.spot-form-replit__schedule-sep {
  color: #9ca3af;
  font-weight: 600;
  flex-shrink: 0;
  text-align: center;
  padding: 0 0.1rem;
}
.spot-form-replit__schedule-row.closed .spot-form-replit__schedule-times { opacity: 0.5; pointer-events: none; }
@media (min-width: 640px) {
  .spot-form-replit__schedule-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.75rem 1rem;
  }
  .spot-form-replit__schedule-day {
    flex: 0 0 auto;
    min-width: 2.5rem;
  }
  .spot-form-replit__schedule-closed {
    flex: 0 0 auto;
    justify-self: unset;
  }
  .spot-form-replit__schedule-times {
    display: flex;
    flex: 0 1 auto;
    align-items: center;
    gap: 0.35rem;
    min-width: 0;
    width: auto;
  }
  .spot-form-replit__schedule-open,
  .spot-form-replit__schedule-close {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: 9rem;
  }
}
.spot-form-replit__structure-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem 1.5rem;
}
@media (max-width: 640px) { .spot-form-replit__structure-grid { grid-template-columns: 1fr; } }
.spot-form-replit__structure-col { display: flex; flex-direction: column; gap: 0.75rem; }
.spot-form-replit__block--structure .spot-form-replit__section-title { color: #1e40af; }
.spot-form-replit__toggle--inline { margin-top: 0.25rem; }
.spot-form-replit__add-photos-btn {
  margin-top: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--primary-hex, #166534);
  background: #f0fdf4;
  border: 1px solid rgba(22, 101, 52, 0.4);
  border-radius: 0.5rem;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.spot-form-replit__add-photos-btn:hover {
  background: #dcfce7;
  border-color: var(--primary-hex, #166534);
}
.spot-form-replit__section-title {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: hsl(var(--muted-foreground));
  margin: 0 0 0.5rem 0;
}
.spot-form-replit__label {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
}
.spot-form-replit__label--sm {
  font-size: 0.75rem;
  font-weight: 700;
  color: #374151;
}
.spot-form-replit__category-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
@media (min-width: 640px) {
  .spot-form-replit__category-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 768px) {
  .spot-form-replit__category-grid { grid-template-columns: repeat(5, 1fr); }
}
.spot-form-replit__cat-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.75rem 0.5rem;
  border: 2px solid #e5e7eb;
  border-radius: 0.75rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #6b7280;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s, transform 0.15s;
}
.spot-form-replit__cat-btn:hover {
  border-color: rgba(22, 101, 52, 0.5);
  color: #374151;
  background: #f9fafb;
}
.spot-form-replit__cat-btn.selected,
.spot-form-replit__cat-btn[aria-pressed="true"] {
  border-color: var(--primary-hex, #166534);
  background: rgba(22, 101, 52, 0.08);
  color: var(--primary-hex, #166534);
  transform: scale(1.02);
}
.spot-form-replit__cat-emoji { font-size: 1.25rem; }
.spot-form-replit__cat-label { line-height: 1.2; text-align: center; }
.spot-form-replit__input,
.spot-form-replit__textarea {
  width: 100%;
  font-size: 0.875rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 0.75rem;
  background: #fff;
  color: #1f2937;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.spot-form-replit__input:focus,
.spot-form-replit__textarea:focus {
  outline: none;
  border-color: var(--primary-hex, #166534);
  box-shadow: 0 0 0 2px rgba(22, 101, 52, 0.2);
}
.spot-form-replit__input--mono {
  font-family: ui-monospace, monospace;
  font-size: 0.8125rem;
}
.spot-form-replit__textarea { min-height: 5rem; resize: vertical; }
.spot-form-replit__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.spot-form-replit__field--full { grid-column: 1 / -1; }
.spot-form-replit__field {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.spot-form-replit__row-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.75rem;
}
.spot-form-replit__row-3--wrap {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 640px) {
  .spot-form-replit__grid,
  .spot-form-replit__row-3,
  .spot-form-replit__row-3--wrap { grid-template-columns: 1fr; }
}
/* Only the location block has muted background (Replit) */
.spot-form-replit__location-box {
  background: rgba(243, 244, 246, 0.6);
  border: 1px solid rgba(229, 231, 235, 0.8);
  border-radius: 0.75rem;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.spot-form-replit__location-heading {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0 0 0.15rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.spot-form-replit__location-icon { font-size: 1rem; }
.spot-form-replit__location-warning--address-hint {
  font-size: 0.78125rem;
  line-height: 1.45;
  padding: 0.5rem 0.7rem;
}
.spot-form-replit__map-link-wrap .event-form__map-link { font-size: 0.8125rem; }
.spot-form-replit__field--paste-coords { margin-bottom: 0.5rem; }
.spot-form-replit__paste-coords-row {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}
.spot-form-replit__paste-coords-row .spot-form-replit__input { flex: 1; }
.spot-form-replit__apply-coords-btn {
  flex-shrink: 0;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #fff;
  background: #16a34a;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  white-space: nowrap;
}
.spot-form-replit__apply-coords-btn:hover:not(:disabled) { background: #15803d; }
.spot-form-replit__apply-coords-btn:disabled { opacity: 0.7; cursor: not-allowed; }
.spot-form-replit__location-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.spot-form-replit__location-grid .spot-form-replit__field--full { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .spot-form-replit__location-grid { grid-template-columns: 1fr; }
}
.spot-form-replit__upload {
  border: 2px dashed #e5e7eb;
  border-radius: 0.75rem;
  padding: 1rem;
  background: #fafafa;
}
.spot-form-replit__upload:hover {
  border-color: #d1d5db;
  background: #f9fafb;
}
.spot-form-replit__upload-hint {
  font-size: 0.8125rem;
  color: #6b7280;
  margin: 0.35rem 0 0;
}
.spot-form-replit__toggles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.5rem;
}
.spot-form-replit__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: #374151;
  cursor: pointer;
  user-select: none;
}
.spot-form-replit__toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.spot-form-replit__toggle-slider {
  display: inline-block;
  width: 2.5rem;
  height: 1.25rem;
  background: #e5e7eb;
  border-radius: 9999px;
  transition: background 0.2s;
  flex-shrink: 0;
  position: relative;
}
.spot-form-replit__toggle-slider::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0.15rem;
  width: 1rem;
  height: 1rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transform: translateY(-50%);
  transition: transform 0.2s;
}
.spot-form-replit__toggle input:checked + .spot-form-replit__toggle-slider {
  background: var(--primary-hex, #166534);
}
.spot-form-replit__toggle input:checked + .spot-form-replit__toggle-slider::after {
  transform: translate(1.35rem, -50%);
}
/* Spot modal: card-style header (Replit) */
.admin-modal--spot-replit .admin-modal__box {
  background: #fff;
  border: 1px solid #e5e7eb;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  min-width: 0;
}
.admin-modal__header--card {
  background: linear-gradient(to right, rgba(22, 101, 52, 0.08), transparent);
  border-bottom: 1px solid rgba(229, 231, 235, 0.8);
  padding: 1.5rem 1.5rem;
}
.admin-modal__header--card .admin-modal__title {
  color: #1f2937;
  font-size: 1.25rem;
  font-weight: 700;
}
.spot-form .admin-form__actions {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}

/* Inline add form (e.g. categories) */
.admin-form--inline .admin-form__row--inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem 1rem; margin-bottom: 0; }
.admin-form--inline .admin-form__row--inline .admin-form__row { margin-bottom: 0; }
.admin-form--inline .admin-form__row--grow { flex: 1; min-width: 12rem; }
.admin-form--inline .admin-form__row--action { flex-shrink: 0; }
.admin-form__emoji { width: 3.5rem; text-align: center; }

/* Toggle switch (Ativo) - Replit-style green pill */
.admin-form__toggle--switch {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  position: relative;
}
.admin-form__toggle--switch input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.admin-form__toggle-slider {
  display: inline-block;
  width: 2.5rem;
  height: 1.25rem;
  background: #d1d5db;
  border-radius: 9999px;
  transition: background 0.2s;
  flex-shrink: 0;
}
.admin-form__toggle-slider::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 0.15rem;
  width: 1rem;
  height: 1rem;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  transform: translateY(-50%);
  transition: transform 0.2s;
}
.admin-form__toggle--switch input:checked + .admin-form__toggle-slider {
  background: var(--primary-hex, #16a34a);
}
.admin-form__toggle--switch input:checked + .admin-form__toggle-slider::after {
  transform: translate(1.15rem, -50%);
}
.admin-form__toggle--switch .admin-form__toggle-slider { position: relative; }
.admin-form__toggle--switch { position: relative; }

/* Promotores (tabela): mesmo interruptor da plataforma — inativo vermelho, ativo verde primário */
.admin-form__toggle--promoter-active .admin-form__toggle-slider {
  width: 2.85rem;
  height: 1.4rem;
  background: #ef4444;
}
.admin-form__toggle--promoter-active input:checked + .admin-form__toggle-slider {
  background: var(--primary-hex, #1a5c35);
}
.admin-form__toggle--promoter-active input:checked + .admin-form__toggle-slider::after {
  transform: translate(1.35rem, -50%);
}
.admin-form__toggle--promoter-active .admin-form__toggle-slider::after {
  width: 1.05rem;
  height: 1.05rem;
  left: 0.2rem;
}

.admin-form__upload-zone {
  border: 2px dashed #d1d5db;
  border-radius: 0.5rem;
  padding: 1rem;
  background: #f9fafb;
}
.admin-form__upload-url { margin-bottom: 0.5rem; }
.admin-form__upload-hint { font-size: 0.8rem; color: #6b7280; margin: 0; }
.admin-form__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 1.25rem;
}
.admin-ad-card .admin-card__main { flex: 1; }

/* Global toast notifications — above promoter onboarding (45500) and welcome modal (45000) */
.toast-root {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 46000;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
  max-width: min(90vw, 24rem);
}
.toast {
  pointer-events: auto;
  padding: 0.875rem 1.25rem;
  border-radius: var(--radius);
  font-size: 0.9rem;
  font-weight: 500;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  animation: toast-in 0.25s ease-out;
}
@keyframes toast-in {
  from { opacity: 0; transform: translateY(0.5rem); }
  to { opacity: 1; transform: translateY(0); }
}
.toast--success {
  background: var(--primary-hex);
  color: #fff;
}
.toast--error {
  background: #dc2626;
  color: #fff;
}
.toast--info {
  background: #1e293b;
  color: #f1f5f9;
}

/* Global confirm modal */
.confirm-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.confirm-modal.hidden {
  display: none;
}
.confirm-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
}
.confirm-modal__box {
  position: relative;
  background: hsl(var(--card));
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  max-width: 22rem;
  width: 100%;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}
.confirm-modal__text {
  margin: 0 0 1.25rem;
  font-size: 0.95rem;
  color: hsl(var(--foreground));
  line-height: 1.5;
}
.confirm-modal__actions {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
}
.confirm-modal__btn {
  padding: 0.5rem 1rem;
  border-radius: var(--radius-sm);
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  border: none;
  font-family: inherit;
}
.confirm-modal__btn--secondary {
  background: hsl(var(--muted));
  color: hsl(var(--foreground));
}
.confirm-modal__btn--secondary:hover {
  background: hsl(var(--muted) / 0.8);
}
.confirm-modal__btn--primary {
  background: var(--primary-hex);
  color: #fff;
}
.confirm-modal__btn--primary:hover {
  background: #14532d;
}
.confirm-modal__btn--danger {
  background: #dc2626;
  color: #fff;
}
.confirm-modal__btn--danger:hover {
  background: #b91c1c;
}

/* Cookie consent: styles live in base.html.twig <head> (sync) — app.css loads via deferred module and CSS variables are undefined until then */

/* Stripe checkout success (promoter) */
.stripe-success-wrap {
  max-width: 36rem;
  margin: 2.5rem auto 3rem;
  padding: 0 1.25rem;
}
.stripe-success-card {
  background: #fff;
  border-radius: 1rem;
  border: 1px solid rgba(26, 92, 53, 0.15);
  box-shadow: 0 12px 40px rgba(15, 23, 42, 0.08);
  padding: 2rem 1.75rem;
  text-align: center;
}
.stripe-success-icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  font-size: 1.75rem;
  font-weight: 800;
}
.stripe-success-icon--ok {
  background: rgba(34, 197, 94, 0.2);
  color: #15803d;
}
.stripe-success-icon--wait {
  background: rgba(251, 191, 36, 0.25);
  color: #b45309;
}
.stripe-success-title {
  font-size: 1.5rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
  line-height: 1.25;
}
.stripe-success-lead {
  color: #475569;
  margin: 0 0 1.5rem;
  font-size: 1rem;
  line-height: 1.5;
}
.stripe-success-details {
  margin: 0 0 1.5rem;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  background: #f8fafc;
  text-align: left;
}
.stripe-success-row {
  display: grid;
  grid-template-columns: 6rem 1fr;
  gap: 0.5rem 1rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid #e2e8f0;
  font-size: 0.9375rem;
}
.stripe-success-row:last-child {
  border-bottom: 0;
}
.stripe-success-row dt {
  margin: 0;
  font-weight: 700;
  color: #64748b;
}
.stripe-success-row dd {
  margin: 0;
  color: #0f172a;
}
.stripe-success-notice {
  text-align: left;
  padding: 1rem 1.1rem;
  border-radius: 0.75rem;
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(59, 130, 246, 0.25);
  color: #1e3a5f;
  font-size: 0.9375rem;
  line-height: 1.45;
  margin: 0 0 1.5rem;
}
.stripe-success-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.stripe-success-btn {
  min-width: 14rem;
}
.stripe-success-link-secondary {
  font-size: 0.875rem;
  color: #64748b;
  text-decoration: underline;
}
.stripe-success-link-secondary:hover {
  color: #1a5c35;
}

/* Stripe return — inside promoter modals (event / ad purchase) */
.promoter-modal-stripe-return {
  text-align: center;
  padding: 0.25rem 0 0.5rem;
  max-width: 26rem;
  margin: 0 auto;
}
.promoter-modal-stripe-return__icon {
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  font-size: 1.5rem;
  font-weight: 800;
}
.promoter-modal-stripe-return__icon--ok {
  background: rgba(34, 197, 94, 0.2);
  color: #15803d;
}
.promoter-modal-stripe-return__icon--wait {
  background: rgba(251, 191, 36, 0.25);
  color: #b45309;
}
.promoter-modal-stripe-return__title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 0.5rem;
  line-height: 1.25;
}
.promoter-modal-stripe-return__lead {
  color: #475569;
  margin: 0 0 1.25rem;
  font-size: 0.9375rem;
  line-height: 1.5;
}
.promoter-modal-stripe-return__dl {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  text-align: left;
}
.promoter-modal-stripe-return__row {
  display: grid;
  grid-template-columns: 5.5rem 1fr;
  gap: 0.35rem 0.75rem;
  padding: 0.3rem 0;
  border-bottom: 1px solid #e2e8f0;
  font-size: 0.875rem;
}
.promoter-modal-stripe-return__row:last-child {
  border-bottom: 0;
}
.promoter-modal-stripe-return__row dt {
  margin: 0;
  font-weight: 700;
  color: #64748b;
}
.promoter-modal-stripe-return__row dd {
  margin: 0;
  color: #0f172a;
}
.promoter-modal-stripe-return__notice {
  text-align: left;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(59, 130, 246, 0.25);
  color: #1e3a5f;
  font-size: 0.875rem;
  line-height: 1.45;
  margin: 0 0 1rem;
}

/* Promoter dashboard: flash + plan badge */
.promoter-flash {
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.9375rem;
  line-height: 1.4;
}
.promoter-flash--success {
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.35);
  color: #14532d;
}
.promoter-flash--error {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #991b1b;
}
.promoter-flash--warning {
  background: rgba(251, 191, 36, 0.15);
  border: 1px solid rgba(245, 158, 11, 0.4);
  color: #92400e;
}
.promoter-account-plan__badge--paid {
  background: rgba(34, 197, 94, 0.2);
  color: #166534;
  border: 1px solid rgba(34, 197, 94, 0.45);
}
