/* =========================================================
   DESIGN TOKENS — GO Parauapebas v2
   Roxo = identidade da marca | Navy = base de confiança
   ========================================================= */
:root {
  /* Cores — marca */
  --color-brand: #6C2BD9;
  --color-brand-dark: #4C1D95;
  --color-brand-50: #F3EEFD;
  --color-brand-100: #E4D8FB;
  --color-navy: #182230;
  --color-navy-80: #263345;

  /* Cores — superfícies e texto */
  --color-bg: #F5F7FA;
  --color-surface: #FFFFFF;
  --color-surface-2: #F8FAFC;
  --color-text: #182230;
  --color-text-2: #64748B;
  --color-text-3: #94A3B8; /* apenas ícones/decoração, nunca texto corrido */
  --color-border: #E2E8F0;
  --color-border-strong: #CBD5E1;

  /* Cores — feedback */
  --color-success: #0F9D8A;
  --color-success-50: #E7F6F3;
  --color-rating: #F59E0B;
  --color-rating-50: #FEF6E7;
  --color-rating-text: #B45309;
  --color-danger: #DC2626;
  --color-danger-50: #FDECEC;
  --color-info: #2563EB;
  --color-info-50: #EAF1FE;

  /* Estados desabilitados (contraste AA: #475569 sobre #E2E8F0 ≈ 6:1) */
  --color-disabled-bg: #E2E8F0;
  --color-disabled-text: #475569;

  /* Tons suaves para ícones de categoria */
  --tone-lavender-bg: #F1EBFD; --tone-lavender-fg: #6C2BD9;
  --tone-blue-bg: #E8F1FD;     --tone-blue-fg: #1D5FBF;
  --tone-green-bg: #E4F5F1;    --tone-green-fg: #0B7A6B;
  --tone-amber-bg: #FDF3E2;    --tone-amber-fg: #B45309;
  --tone-slate-bg: #EEF2F6;    --tone-slate-fg: #334155;
  --tone-rose-bg: #FCEBEE;     --tone-rose-fg: #BE123C;

  /* Tipografia */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --fs-xs: 11px;
  --fs-sm: 12px;
  --fs-md: 13px;
  --fs-base: 14px;
  --fs-lg: 16px;
  --fs-xl: 18px;
  --fs-2xl: 22px;
  --lh-tight: 1.25;
  --lh-normal: 1.45;

  /* Espaçamentos (escala 4px) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;

  /* Raios */
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;

  /* Sombras (leves, tom navy) */
  --shadow-xs: 0 1px 2px rgba(24, 34, 48, 0.04);
  --shadow-sm: 0 1px 3px rgba(24, 34, 48, 0.06), 0 1px 2px rgba(24, 34, 48, 0.04);
  --shadow-md: 0 6px 16px rgba(24, 34, 48, 0.08);
  --shadow-lg: 0 14px 32px rgba(24, 34, 48, 0.12);
  --shadow-focus: 0 0 0 3px rgba(108, 43, 217, 0.18);

  /* Ícones */
  --icon-xs: 12px;
  --icon-sm: 14px;
  --icon-md: 16px;
  --icon-lg: 20px;
  --icon-xl: 24px;

  /* Layout */
  --nav-h: 64px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);

  /* Movimento */
  --ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
  --dur-fast: 150ms;
  --dur-base: 220ms;

  /* Aliases legados (mantidos para componentes existentes) */
  --primary-purple: var(--color-brand);
  --dark-purple: var(--color-brand-dark);
  --soft-purple: var(--color-brand-50);
  --bg-page: var(--color-bg);
  --card-white: var(--color-surface);
  --text-primary: var(--color-text);
  --text-secondary: var(--color-text-2);
  --border-grey: var(--color-border);
  --success-green: var(--color-success);
  --error-red: var(--color-danger);
  --amber: var(--color-rating);
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  -webkit-tap-highlight-color: transparent;
  /* Oculta barras de rolagem nativas de SO (estilo App Nativo mobile) */
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

*::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  background: transparent !important;
}

body {
  background-color: var(--color-bg);
  color: var(--text-primary);
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  align-items: stretch;
  overflow-x: hidden;
}

/* Ocultar elementos de preview em produção */
.preview-header,
.device-notch {
  display: none !important;
}

/* Área de Viewport (Container Global do PWA) */
.viewport-wrapper {
  flex: 1;
  display: flex;
  align-items: stretch;
  justify-content: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 0;
  margin: 0;
  background-color: var(--color-bg);
  overflow: hidden;
}

/* App Container (Estilo App Nativo Mobile-First) */
.device-mockup {
  width: 100%;
  max-width: 480px;
  height: 100vh;
  height: 100dvh;
  background: var(--color-surface);
  border: none;
  border-radius: 0;
  box-shadow: 0 0 40px rgba(24, 34, 48, 0.08);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

@media (max-width: 600px) {
  body,
  .viewport-wrapper {
    background-color: var(--color-surface);
  }

  .device-mockup {
    max-width: 100%;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    border-radius: 0;
    box-shadow: none;
  }
}


/* App Screen Principal */
.app-screen {
  flex: 1;
  overflow: hidden;
  position: relative;
  background: var(--bg-page);
  display: flex;
  flex-direction: column;
}

.screen-tab {
  display: none;
  height: 100%;
  width: 100%;
  flex-direction: column;
}

.screen-tab.active {
  display: flex;
}

/* =========================================================
   HOME — REDESIGN v2 (cabeçalho branco, banner navy, cards)
   ========================================================= */

/* 1. CABEÇALHO COMPACTO (BRANCO COM DETALHES ROXOS) */
.app-header-compact {
  background: var(--color-surface);
  padding: calc(var(--space-3) + env(safe-area-inset-top, 0px)) var(--space-4) var(--space-3);
  border-bottom: 1px solid var(--color-border);
  position: relative;
  z-index: 10;
  flex-shrink: 0;
}

.header-compact-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.header-brand-user-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.header-trampou-icon {
  width: 48px;
  height: 48px;
  border-radius: 13px;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(88, 28, 135, 0.28);
  border: 1px solid rgba(147, 51, 234, 0.2);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.header-trampou-icon:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 18px rgba(88, 28, 135, 0.38);
}

.header-user-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.location-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text-2);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
}

.location-pill .loc-icon {
  color: var(--color-brand);
  font-size: 12px;
}

.greeting-text {
  font-size: var(--fs-xl);
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: -0.3px;
  line-height: var(--lh-tight);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.header-compact-actions {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-shrink: 0;
}

.notif-btn-compact {
  width: 40px;
  height: 40px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
  font-size: var(--icon-md);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  transition: all var(--dur-fast) var(--ease-standard);
}

.notif-btn-compact:hover {
  background: var(--color-surface-2);
  border-color: var(--color-border-strong);
}

.notif-btn-compact.has-unread {
  border-color: rgba(124, 58, 237, 0.35);
  background: #FDF4FF;
}

.notif-btn-compact.has-unread i {
  color: #7C3AED;
  animation: bellShake 2.4s ease infinite;
}

@keyframes bellShake {
  0%, 82%, 100% { transform: rotate(0); }
  85% { transform: rotate(14deg); }
  90% { transform: rotate(-14deg); }
  95% { transform: rotate(8deg); }
}

.notif-btn-compact .badge-dot {
  position: absolute;
  top: 7px;
  right: 8px;
  width: 9px;
  height: 9px;
  background: #EF4444;
  border: 2px solid #FFFFFF;
  border-radius: 50%;
  box-sizing: content-box;
  display: none;
}

.notif-btn-compact.has-unread .badge-dot,
.notif-btn-compact .badge-dot.active {
  display: block;
  animation: pulseDot 1.6s infinite;
}

@keyframes pulseDot {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.6); }
  70% { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.notif-btn-compact .notif-badge-counter {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #EF4444;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 800;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  border: 2px solid #FFFFFF;
  display: none;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.notif-btn-compact.has-unread .notif-badge-counter {
  display: flex;
}

.avatar-compact {
  width: 40px;
  height: 40px;
  background: var(--color-brand-50);
  color: var(--color-brand-dark);
  border: 1px solid var(--color-brand-100);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--fs-base);
  font-weight: 700;
  cursor: pointer;
  overflow: hidden;
  transition: box-shadow var(--dur-fast) var(--ease-standard);
}

.avatar-compact:hover {
  box-shadow: var(--shadow-focus);
}

.avatar-compact img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 2. BARRA DE BUSCA BRANCA COM PREENCHIMENTO INTELIGENTE */
.home-search-wrapper {
  position: relative;
  width: 100%;
  z-index: 80;
}

.search-bar-compact {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  height: 46px;
  padding: 0 6px 0 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: var(--shadow-xs);
  cursor: text;
  transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
  position: relative;
}

.search-bar-compact:hover {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-sm);
}

.search-bar-compact:focus-within {
  border-color: var(--color-border-strong);
  box-shadow: var(--shadow-sm);
}

.search-bar-compact .search-icon {
  color: var(--color-text-2);
  font-size: var(--icon-sm);
  flex-shrink: 0;
}

.home-search-input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent;
  color: var(--color-text);
  font-size: var(--fs-md);
  font-family: inherit;
  font-weight: 500;
}

.home-search-input:focus,
.home-search-input:focus-visible {
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
}

.home-search-input::placeholder {
  color: var(--color-text-3);
  font-weight: 400;
}

.search-clear-btn {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: none;
  background: var(--color-surface-2);
  color: var(--color-text-2);
  font-size: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);
  padding: 0;
}

.search-clear-btn:hover {
  background: #E2E8F0;
  color: var(--color-text);
}

/* Dropdown Flutuante de Sugestões Inteligentes */
.search-suggestions-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 16px 36px -6px rgba(16, 24, 40, 0.18), 0 4px 14px rgba(16, 24, 40, 0.08);
  border: 1px solid #E2E8F0;
  max-height: 400px;
  overflow-y: auto;
  z-index: 1000;
  padding: 8px 0;
  animation: searchDropdownFade 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-overflow-scrolling: touch;
}

@keyframes searchDropdownFade {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.dropdown-group {
  padding: 6px 12px;
}

.dropdown-group + .dropdown-group {
  border-top: 1px solid #F1F5F9;
  margin-top: 4px;
  padding-top: 8px;
}

.dropdown-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 4px 6px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--color-text-3);
}

.dropdown-header-row i {
  font-size: 11px;
  margin-right: 5px;
}

.suggestion-chips-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 2px 2px 6px;
}

.suggestion-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 11px;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-standard);
  user-select: none;
}

.suggestion-chip:hover {
  background: var(--color-brand-50);
  border-color: var(--color-brand-100);
  color: var(--color-brand-dark);
}

.suggestion-chip i {
  font-size: 11px;
  color: var(--color-brand);
}

.suggestion-pro-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 10px;
  border-radius: 12px;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-standard);
  user-select: none;
}

.suggestion-pro-item:hover,
.suggestion-pro-item.active {
  background: #F8FAFC;
}

.suggestion-pro-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--color-brand-50);
  color: var(--color-brand-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 13.5px;
  overflow: hidden;
  flex-shrink: 0;
  border: 1px solid var(--color-brand-100);
}

.suggestion-pro-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.suggestion-pro-info {
  flex: 1;
  min-width: 0;
}

.suggestion-pro-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}

.suggestion-pro-name {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.suggestion-pro-name mark,
.suggestion-pro-sub mark {
  background: #EDE9FE;
  color: var(--color-brand-dark);
  font-weight: 700;
  padding: 1px 3px;
  border-radius: 3px;
}

.suggestion-pro-badge {
  font-size: 11px;
  color: #10B981;
}

.suggestion-pro-sub {
  font-size: 12px;
  color: var(--color-text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 3px;
}

.suggestion-pro-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--color-text-3);
}

.suggestion-pro-rating {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-weight: 700;
  color: #D97706;
}

.suggestion-pro-rating i {
  font-size: 10px;
}

.suggestion-pro-bairro {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--color-text-2);
}

.suggestion-pro-arrow {
  font-size: 11px;
  color: var(--color-text-3);
  margin-left: auto;
  flex-shrink: 0;
  transition: transform var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);
}

.suggestion-pro-item:hover .suggestion-pro-arrow {
  color: var(--color-brand);
  transform: translateX(2px);
}

.suggestion-view-all-banner {
  margin: 6px 12px;
  padding: 10px 14px;
  background: var(--color-brand-50);
  border: 1px solid var(--color-brand-100);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--color-brand-dark);
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-standard);
}

.suggestion-view-all-banner:hover {
  background: #EDE9FE;
  border-color: var(--color-brand);
  transform: translateY(-1px);
}

.suggestion-view-all-banner i {
  color: var(--color-brand);
}

.suggestion-empty-state {
  padding: 24px 16px;
  text-align: center;
}

.suggestion-empty-icon {
  width: 44px;
  height: 44px;
  margin: 0 auto 10px;
  background: #F1F5F9;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-text-3);
  font-size: 18px;
}

.suggestion-empty-title {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--color-text);
  margin-bottom: 4px;
}

.suggestion-empty-desc {
  font-size: 12px;
  color: var(--color-text-2);
  line-height: 1.4;
}

.filter-icon-btn {
  width: 34px;
  height: 34px;
  background: var(--color-brand-50);
  color: var(--color-brand);
  border: none;
  border-radius: var(--radius-sm);
  font-size: var(--icon-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--dur-fast) var(--ease-standard);
}

.filter-icon-btn:hover {
  background: var(--color-brand-100);
}

/* CONTEÚDO ROLÁVEL DA HOME (Estilo App Nativo) */
.scroll-content-home {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--space-4) var(--space-4) var(--space-6);
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}

.scroll-content-home::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.home-block {
  margin-bottom: var(--space-6);
}

/* 3. BANNER PATROCINADO (NAVY + ROXO ESCURO) */
.home-ad-carousel-wrap {
  margin-bottom: var(--space-6);
  position: relative;
}

.banner-carousel-track {
  display: flex;
  gap: var(--space-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  border-radius: var(--radius-lg);
}

.banner-carousel-track::-webkit-scrollbar {
  display: none;
}

.ad-slide-card {
  flex: 0 0 100%;
  min-width: 100%;
  max-width: 100%;
  scroll-snap-align: start;
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  min-height: 136px;
  color: #fff;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--space-3);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  background-color: var(--color-navy);
  box-shadow: var(--shadow-md);
}

/* brilho decorativo discreto no canto */
.ad-slide-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(120% 140% at 100% 0%, rgba(108, 43, 217, 0.55) 0%, rgba(108, 43, 217, 0) 55%);
}

.ad-slide-card::after {
  content: '';
  position: absolute;
  right: -28px;
  bottom: -44px;
  width: 140px;
  height: 140px;
  z-index: -1;
  border-radius: 32px;
  transform: rotate(18deg);
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.ad-slide-card.theme-navy {
  background-color: var(--color-navy);
}

.ad-slide-card.theme-ink {
  background: linear-gradient(135deg, var(--color-brand-dark) 0%, #2B1A5C 48%, var(--color-navy) 100%);
}

.ad-slide-card.theme-ink::before {
  background: radial-gradient(120% 140% at 100% 0%, rgba(167, 139, 250, 0.22) 0%, rgba(167, 139, 250, 0) 55%);
}

.ad-slide-card.theme-teal {
  background-color: var(--color-navy);
}

.ad-slide-card.theme-teal::before {
  background: radial-gradient(120% 140% at 100% 0%, rgba(15, 157, 138, 0.45) 0%, rgba(15, 157, 138, 0) 55%);
}

.ad-slide-card.theme-purple-viral {
  background: linear-gradient(135deg, #4C1D95 0%, #6B21A8 50%, #9333EA 100%);
  box-shadow: 0 8px 24px rgba(107, 33, 168, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.ad-slide-card.theme-purple-viral::before {
  background: radial-gradient(120% 140% at 100% 0%, rgba(244, 63, 94, 0.35) 0%, rgba(244, 63, 94, 0) 65%);
}

.slide-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 0;
}

.badge-anuncio {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}

.badge-anuncio::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.8;
}

.slide-content h5 {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.2px;
  line-height: 1.28;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.slide-content p {
  font-size: var(--fs-sm);
  color: rgba(255, 255, 255, 0.78);
  margin-top: 4px;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.btn-slide-cta {
  margin-top: 6px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  color: var(--color-navy);
  border: none;
  font-weight: 700;
  font-size: var(--fs-sm);
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: transform var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard);
}

.btn-slide-cta i {
  font-size: 10px;
  color: var(--color-brand);
}

.btn-slide-cta:hover {
  background: #F1EBFD;
}

.btn-slide-cta:active {
  transform: scale(0.97);
}

.slide-art {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: #C4B5FD;
  flex-shrink: 0;
}

.theme-teal .slide-art {
  color: #5EEAD4;
}

.carousel-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
}

.carousel-dots .dot {
  width: 6px;
  height: 6px;
  padding: 0;
  border: none;
  background: var(--color-border-strong);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: width var(--dur-base) var(--ease-standard), background var(--dur-base) var(--ease-standard);
}

.carousel-dots .dot.active {
  width: 18px;
  background: var(--color-brand);
}

/* TÍTULOS DE BLOCO */
.block-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}

.block-title-row h4 {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-text);
  letter-spacing: -0.2px;
}

.title-with-pill {
  display: flex;
  align-items: center;
  gap: 8px;
}

.chip-local {
  background: var(--color-success-50);
  color: #0B7A6B;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 6px;
}

.see-all-compact {
  color: var(--color-brand);
  font-size: var(--fs-sm);
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  padding: 4px 0;
}

.see-all-compact i {
  font-size: 10px;
}

.see-all-compact:hover {
  color: var(--color-brand-dark);
}

/* 4. CATEGORIAS (CARTÕES BRANCOS + TONS SUAVES) */
.categories-grid-compact {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.cat-item-compact {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 12px 4px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  cursor: pointer;
  min-width: 0;
  transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);
}

.cat-item-compact:hover {
  border-color: var(--color-brand-100);
  box-shadow: var(--shadow-sm);
}

.cat-item-compact:active {
  transform: scale(0.97);
}

.cat-item-compact:focus-visible {
  outline: none;
  border-color: var(--color-brand);
  box-shadow: var(--shadow-focus);
}

.cat-icon-circle {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--icon-lg);
  background: var(--tone-slate-bg);
  color: var(--tone-slate-fg);
}

.tone-lavender { background: var(--tone-lavender-bg); color: var(--tone-lavender-fg); }
.tone-blue     { background: var(--tone-blue-bg);     color: var(--tone-blue-fg); }
.tone-green    { background: var(--tone-green-bg);    color: var(--tone-green-fg); }
.tone-amber    { background: var(--tone-amber-bg);    color: var(--tone-amber-fg); }
.tone-slate    { background: var(--tone-slate-bg);    color: var(--tone-slate-fg); }
.tone-rose     { background: var(--tone-rose-bg);     color: var(--tone-rose-fg); }

.cat-label-text {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--color-text);
  text-align: center;
  line-height: 1.25;
  max-width: 100%;
  padding: 0 2px;
  min-height: calc(1.25em * 2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  overflow-wrap: anywhere;
}

/* 5. PROFISSIONAIS EM DESTAQUE */
.pros-scroll-wrap {
  position: relative;
  margin: 0 calc(var(--space-4) * -1);
}

.pros-cards-scroll {
  display: flex;
  gap: var(--space-3);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--space-4);
  padding: 2px var(--space-4) var(--space-3);
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.pros-cards-scroll::-webkit-scrollbar {
  display: none;
}

/* Fade na borda direita indicando mais conteúdo */
.pros-scroll-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: var(--space-3);
  width: 28px;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(245, 247, 250, 0) 0%, var(--color-bg) 100%);
  transition: opacity var(--dur-base) var(--ease-standard);
}

.pros-scroll-wrap.at-end::after {
  opacity: 0;
}

.pros-scroll-progress {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin-top: 2px;
}

.pros-scroll-progress span {
  width: 14px;
  height: 3px;
  border-radius: var(--radius-pill);
  background: var(--color-border);
  transition: background var(--dur-base) var(--ease-standard);
}

.pros-scroll-progress span.active {
  background: var(--color-brand);
}

.pro-review-card {
  flex: 0 0 276px;
  min-width: 0;
  scroll-snap-align: start;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  box-shadow: var(--shadow-xs);
  cursor: pointer;
  position: relative;
  transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard), transform var(--dur-base) var(--ease-standard);
}

.pro-review-card:hover {
  border-color: var(--color-brand-100);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.pro-review-card:focus-visible {
  outline: none;
  border-color: var(--color-brand);
  box-shadow: var(--shadow-focus);
}

.pro-card-header {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.pro-card-avatar {
  width: 48px;
  height: 48px;
  background: var(--color-brand-50);
  color: var(--color-brand-dark);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: var(--fs-lg);
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--color-border);
}

.pro-card-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pro-card-header-info {
  flex: 1;
  min-width: 0;
}

.pro-card-name-row {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.pro-card-name {
  font-size: var(--fs-base);
  font-weight: 700;
  color: var(--color-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.1px;
}

.verified-badge {
  color: var(--color-brand);
  font-size: 13px;
  flex-shrink: 0;
}

.pro-card-specialty {
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--color-text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 2px;
}

.pro-card-bairro {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: var(--fs-xs);
  color: var(--color-text-2);
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pro-card-bairro i {
  font-size: 10px;
  color: var(--color-text-3);
}

/* Linha de avaliação */
.pro-card-rating-block {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.rating-score-group {
  display: flex;
  align-items: center;
  gap: 6px;
}

.rating-big-num {
  font-size: var(--fs-lg);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1;
}

.rating-stars-gold {
  color: var(--color-rating);
  font-size: 11px;
  display: inline-flex;
  gap: 1px;
}

.rating-stars-gold .star-empty {
  color: var(--color-border-strong);
}

.rating-count-pill {
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--color-text-2);
}

.rating-new-chip {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--color-brand-dark);
  background: var(--color-brand-50);
  padding: 3px 8px;
  border-radius: var(--radius-pill);
}

/* Trecho de avaliação real */
.pro-card-review-snippet {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  position: relative;
}

.review-quote-text {
  font-size: var(--fs-sm);
  color: #334155;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.review-author-date {
  font-size: var(--fs-xs);
  color: var(--color-text-2);
  font-weight: 600;
  margin-top: 6px;
  display: block;
}

/* Rodapé do card */
.pro-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--color-border);
  padding-top: var(--space-3);
  margin-top: auto;
}

.pro-services-done {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--fs-xs);
  font-weight: 500;
  color: var(--color-text-2);
  white-space: nowrap;
}

.pro-services-done i {
  color: var(--color-success);
  font-size: 12px;
}

.btn-open-profile-link {
  margin-left: auto;
  color: var(--color-brand);
  font-size: var(--fs-sm);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
}

.btn-open-profile-link i {
  font-size: 10px;
}

/* 6. DICAS E NOVIDADES */
.news-compact-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.news-card-compact {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.news-icon-pill {
  width: 36px;
  height: 36px;
  background: var(--tone-slate-bg);
  color: var(--tone-slate-fg);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--icon-sm);
  flex-shrink: 0;
}

.news-compact-info {
  flex: 1;
  min-width: 0;
}

.news-compact-info h6 {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.3;
}

.news-compact-info p {
  font-size: var(--fs-xs);
  color: var(--color-text-2);
  line-height: 1.4;
  margin-top: 2px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 7. ESPAÇO DE PUBLICIDADE LOCAL */
.ad-block {
  margin-top: var(--space-2);
}

.ad-tag-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--color-text-2);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
}

.ad-banner-compact {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.ad-icon {
  width: 40px;
  height: 40px;
  background: var(--color-navy);
  color: #fff;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--icon-md);
  flex-shrink: 0;
}

.ad-content {
  flex: 1;
  min-width: 0;
}

.ad-content h5 {
  font-size: var(--fs-md);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.3;
}

.ad-content p {
  font-size: var(--fs-xs);
  color: var(--color-text-2);
  margin-top: 2px;
  line-height: 1.4;
}

.ad-btn {
  background: var(--color-brand);
  color: #fff;
  border: none;
  font-size: var(--fs-sm);
  font-weight: 700;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--dur-fast) var(--ease-standard);
}

.ad-btn:hover {
  background: var(--color-brand-dark);
}

.home-bottom-spacer {
  height: var(--space-2);
}

/* SUBPAGES (BUSCA, PEDIDOS, CONVERSAS, PERFIL) */
.subpage-header {
  background: var(--card-white);
  padding: 14px 16px;
  border-bottom: 1px solid var(--border-grey);
}

.subpage-header h3 {
  font-size: 17px;
  font-weight: 700;
}

.search-page-body {
  padding: 14px;
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}

.search-page-body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.search-input-wrap {
  display: flex;
  align-items: center;
  background: var(--card-white);
  border: 1.5px solid var(--primary-purple);
  border-radius: 12px;
  padding: 9px 12px;
  gap: 8px;
}

.search-input-wrap input {
  flex: 1;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  font-size: 13px;
}

.search-input-wrap input:focus,
.search-input-wrap input:focus-visible {
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
}

.clear-btn {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
}

.neighborhood-filter {
  margin: 12px 0;
}

.filter-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
  display: block;
  margin-bottom: 6px;
}

.chips-scroll {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
}

.chip {
  background: var(--card-white);
  border: 1px solid var(--border-grey);
  border-radius: 16px;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
}

.chip.active {
  background: var(--soft-purple);
  color: var(--primary-purple);
  border-color: var(--primary-purple);
  font-weight: 700;
}

.results-header {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 10px;
}

.sort-selector {
  color: var(--primary-purple);
  font-weight: 600;
  cursor: pointer;
}

.search-results-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pro-card-wide {
  background: var(--card-white);
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 12px;
  display: flex;
  gap: 12px;
  box-shadow: var(--shadow-sm);
  cursor: pointer;
}

.pro-card-wide .pro-avatar {
  width: 48px;
  height: 48px;
  background: var(--soft-purple);
  color: var(--primary-purple);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 18px;
  flex-shrink: 0;
}

.pro-wide-info {
  flex: 1;
  min-width: 0;
}

.pro-wide-info h5 {
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 4px;
}

.pro-wide-info .specialty {
  font-size: 12px;
  color: var(--text-secondary);
  margin-top: 1px;
}

.pro-wide-info .loc {
  font-size: 11px;
  color: var(--text-secondary);
  margin: 3px 0;
}

.pro-wide-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 6px;
}

.cta-ver {
  color: var(--primary-purple);
  font-size: 11px;
  font-weight: 700;
}

/* Pedidos Tab */
.status-tab-bar {
  display: flex;
  background: var(--card-white);
  padding: 6px 14px;
  gap: 6px;
  overflow-x: auto;
  border-bottom: 1px solid var(--border-grey);
}

.status-btn {
  background: transparent;
  border: none;
  font-size: 12px;
  color: var(--text-secondary);
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
}

.status-btn.active {
  background: var(--soft-purple);
  color: var(--primary-purple);
  font-weight: 700;
}

.requests-list {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  overflow-y: auto;
}

.request-card {
  background: var(--card-white);
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 14px;
  box-shadow: var(--shadow-sm);
}

.request-card-top {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}

.badge-status {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 6px;
}

.badge-status.quoted {
  background: var(--soft-purple);
  color: var(--primary-purple);
}

.badge-status.pending {
  background: #FEF3C7;
  color: #92400E;
}

.badge-status.completed {
  background: #D1FAE5;
  color: #065F46;
}

.request-category {
  font-size: 11px;
  color: var(--text-secondary);
}

.request-card h5 {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 3px;
}

.request-card p {
  font-size: 12px;
  color: var(--text-secondary);
  margin-bottom: 10px;
}

.request-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--border-grey);
  padding-top: 8px;
  font-size: 11px;
}

.btn-open-chat {
  background: transparent;
  border: 1px solid var(--primary-purple);
  color: var(--primary-purple);
  border-radius: 6px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

/* Conversas Tab */
.conversations-list {
  flex: 1;
  overflow-y: auto;
}

.conversation-item {
  display: flex;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border-grey);
  background: var(--card-white);
  gap: 12px;
  cursor: pointer;
}

.conversation-item:hover {
  background: #F4F0FA;
}

.chat-avatar {
  width: 44px;
  height: 44px;
  background: var(--soft-purple);
  color: var(--primary-purple);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
}

.chat-item-info {
  flex: 1;
  min-width: 0;
}

.chat-item-top {
  display: flex;
  justify-content: space-between;
  margin-bottom: 2px;
}

.chat-item-top h5 {
  font-size: 13px;
  font-weight: 700;
}

.chat-time {
  font-size: 10px;
  color: var(--text-secondary);
}

.chat-tag-service {
  background: rgba(108, 43, 217, 0.08);
  color: var(--dark-purple);
  font-size: 10px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  display: inline-block;
  margin-bottom: 3px;
}

.chat-last-msg {
  font-size: 11px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.unread-badge {
  background: var(--primary-purple);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Perfil Tab */
.profile-scroll {
  padding: 14px;
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}

.profile-scroll::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.profile-card {
  background: var(--card-white);
  border: 1px solid var(--border-grey);
  border-radius: 16px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.profile-avatar-big {
  width: 52px;
  height: 52px;
  background: var(--soft-purple);
  color: var(--primary-purple);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

.profile-info h4 {
  font-size: 15px;
  font-weight: 700;
}

.profile-info p {
  font-size: 11px;
  color: var(--text-secondary);
}

.user-loc {
  font-size: 11px;
  color: var(--primary-purple);
  font-weight: 600;
  margin-top: 3px;
  display: block;
}

.edit-profile-btn {
  background: transparent;
  border: none;
  color: var(--primary-purple);
  font-size: 15px;
  cursor: pointer;
}

.pro-area-card {
  background: linear-gradient(135deg, var(--primary-purple), var(--dark-purple));
  color: #fff;
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.pro-card-content {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pro-badge-icon {
  font-size: 20px;
}

.pro-card-content h5 {
  font-size: 14px;
  font-weight: 700;
}

.pro-card-content p {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
}

.pro-access-btn {
  background: #fff;
  color: var(--primary-purple);
  border: none;
  font-weight: 700;
  font-size: 11px;
  padding: 5px 10px;
  border-radius: 8px;
}

.menu-group {
  background: var(--card-white);
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: 14px;
}

.menu-item {
  display: flex;
  align-items: center;
  padding: 12px 14px;
  gap: 12px;
  border-bottom: 1px solid var(--border-grey);
  cursor: pointer;
}

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

.icon-purple {
  color: var(--primary-purple);
  font-size: 16px;
}

.icon-red {
  color: var(--error-red);
  font-size: 16px;
}

.menu-text {
  flex: 1;
}

.menu-text span {
  font-size: 13px;
  font-weight: 600;
  display: block;
}

.menu-text small {
  font-size: 11px;
  color: var(--text-secondary);
}

.logout-item span {
  color: var(--error-red);
}

.app-version-tag {
  text-align: center;
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 12px;
}

/* OVERLAYS E MODAIS */
.modal-overlay {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 50;
  backdrop-filter: blur(2px);
}

.modal-overlay.active {
  display: flex;
  flex-direction: column;
}

.modal-content {
  background: var(--bg-page);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.modal-header {
  background: var(--card-white);
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border-grey);
}

.back-btn {
  background: transparent;
  border: none;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.fav-btn {
  background: transparent;
  border: none;
  font-size: 16px;
  color: var(--text-secondary);
  cursor: pointer;
}

.fav-btn.active {
  color: var(--error-red);
}

.pro-detail-body {
  flex: 1;
  overflow-y: auto;
  padding: 14px;
}

.modal-footer-cta {
  background: var(--card-white);
  padding: 10px 14px;
  border-top: 1px solid var(--border-grey);
  display: flex;
  gap: 8px;
}

.chat-cta-btn {
  flex: 1;
  background: transparent;
  border: 1.5px solid var(--primary-purple);
  color: var(--primary-purple);
  font-weight: 700;
  font-size: 12px;
  padding: 10px;
  border-radius: 10px;
  cursor: pointer;
}

.quote-cta-btn {
  flex: 2;
  background: var(--primary-purple);
  color: #fff;
  border: none;
  font-weight: 700;
  font-size: 12px;
  padding: 10px;
  border-radius: 10px;
  cursor: pointer;
}

/* CHAT MODAL INTERNO */
.chat-content {
  background: #F3F1F7;
}

.chat-header {
  background: var(--card-white);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--border-grey);
}

.chat-user-target {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  cursor: pointer;
  padding: 4px 8px;
  margin: -4px -8px;
  border-radius: 10px;
  transition: background-color var(--dur-fast) var(--ease-standard);
  user-select: none;
}

.chat-user-target:hover {
  background-color: var(--color-surface-2);
}

.chat-user-target:active {
  background-color: #EDE9FE;
}

.chat-contact-info {
  flex: 1;
  min-width: 0;
}

.chat-contact-title-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.chat-contact-info h4 {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-navy);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.chat-view-profile-arrow {
  font-size: 10px;
  color: var(--color-text-3);
  transition: transform var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);
}

.chat-user-target:hover .chat-view-profile-arrow {
  color: var(--color-brand);
  transform: translateX(2px);
}

.chat-contact-info span {
  font-size: 11px;
  color: var(--color-text-2);
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.chat-safety-banner {
  background: #FEF3C7;
  color: #92400E;
  font-size: 10px;
  font-weight: 500;
  padding: 6px 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.chat-bubble {
  max-width: 80%;
  padding: 9px 12px;
  border-radius: 14px;
  font-size: 12px;
  line-height: 1.35;
  position: relative;
}

.chat-bubble.other {
  background: var(--card-white);
  color: var(--text-primary);
  align-self: flex-start;
  border-bottom-left-radius: 3px;
  box-shadow: var(--shadow-sm);
}

.chat-bubble.me {
  background: var(--primary-purple);
  color: #fff;
  align-self: flex-end;
  border-bottom-right-radius: 3px;
}

.bubble-time {
  font-size: 9px;
  color: rgba(0, 0, 0, 0.4);
  display: block;
  text-align: right;
  margin-top: 3px;
}

.chat-bubble.me .bubble-time {
  color: rgba(255, 255, 255, 0.7);
}

.chat-input-bar {
  background: var(--card-white);
  padding: 8px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid var(--border-grey);
}

.chat-input-bar input {
  flex: 1;
  background: var(--bg-page);
  border: 1px solid var(--border-grey);
  border-radius: 18px;
  padding: 7px 12px;
  font-size: 12px;
  outline: none;
}

.attach-btn, .send-btn {
  background: transparent;
  border: none;
  font-size: 16px;
  color: var(--text-secondary);
  cursor: pointer;
}

.send-btn {
  background: var(--primary-purple);
  color: #fff;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}

/* ==============================================================================
   REGISTRO LEVE DE ATENDIMENTO E AVALIAÇÃO VERIFICADA NO CHAT
   ============================================================================== */

.chat-back-btn {
  background: transparent;
  border: none;
  font-size: 16px;
  color: var(--text-primary);
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 8px;
}

.chat-back-btn:hover {
  background: rgba(0, 0, 0, 0.05);
}

.chat-avatar-header {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7C3AED, #4F46E5);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 14px;
}

.chat-role-indicator {
  display: flex;
  align-items: center;
  gap: 4px;
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  border-radius: 20px;
  padding: 3px 8px;
  font-size: 10px;
  color: var(--text-secondary);
}

.btn-toggle-chat-role {
  background: transparent;
  border: none;
  color: var(--primary-purple);
  cursor: pointer;
  padding: 2px;
  font-size: 11px;
}

/* Barra de Ação Contextual no Topo do Chat */
.chat-attendance-bar-idle {
  background: #F8FAFC;
  border-bottom: 1px solid #E2E8F0;
  padding: 8px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.btn-chat-register-service {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #EEF2FF;
  color: #4F46E5;
  border: 1px solid #C7D2FE;
  border-radius: 20px;
  padding: 6px 12px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-chat-register-service:hover {
  background: #4F46E5;
  color: #ffffff;
}

/* Cartão de Status Contextual do Atendimento dentro da conversa */
.chat-attendance-card {
  margin: 10px 14px 6px;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid #E2E8F0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  transition: all 0.25s ease;
}

.chat-attendance-card-header {
  padding: 8px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 700;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.attendance-header-title {
  display: flex;
  align-items: center;
  gap: 6px;
}

.attendance-status-badge {
  padding: 3px 8px;
  border-radius: 12px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.chat-attendance-card-body {
  padding: 10px 12px;
}

.attendance-service-name {
  font-size: 13px;
  font-weight: 700;
  color: #1E293B;
  margin-bottom: 4px;
}

.attendance-meta-text {
  font-size: 11px;
  color: #64748B;
  line-height: 1.4;
  margin-bottom: 8px;
}

.attendance-meta-text strong {
  color: #334155;
}

.attendance-actions-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}

/* Botões de Ações Contextuais */
.btn-att-action {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.2s;
}

.btn-att-primary {
  background: #4F46E5;
  color: #ffffff;
}

.btn-att-primary:hover {
  background: #4338CA;
}

.btn-att-success {
  background: #059669;
  color: #ffffff;
}

.btn-att-success:hover {
  background: #047857;
}

.btn-att-danger {
  background: #FEE2E2;
  color: #DC2626;
  border-color: #FECACA;
}

.btn-att-danger:hover {
  background: #DC2626;
  color: #ffffff;
}

.btn-att-outline {
  background: #F8FAFC;
  color: #475569;
  border-color: #CBD5E1;
}

.btn-att-outline:hover {
  background: #E2E8F0;
  color: #1E293B;
}

.btn-att-review {
  background: linear-gradient(135deg, #F59E0B, #D97706);
  color: #ffffff;
  box-shadow: 0 2px 6px rgba(245, 158, 11, 0.3);
}

.btn-att-review:hover {
  opacity: 0.92;
}

/* Temas Visuais dos 6 Estados */
/* 1. Aguardando confirmação (pending_confirmation) */
.chat-attendance-card.state-pending {
  border-color: #FCD34D;
  background: #FFFBEB;
}
.chat-attendance-card.state-pending .chat-attendance-card-header {
  background: #FEF3C7;
  color: #92400E;
}
.chat-attendance-card.state-pending .attendance-status-badge {
  background: #FDE68A;
  color: #78350F;
}

/* 2. Serviço combinado (confirmed) */
.chat-attendance-card.state-confirmed {
  border-color: #93C5FD;
  background: #EFF6FF;
}
.chat-attendance-card.state-confirmed .chat-attendance-card-header {
  background: #DBEAFE;
  color: #1E40AF;
}
.chat-attendance-card.state-confirmed .attendance-status-badge {
  background: #BFDBFE;
  color: #1E3A8A;
}

/* 3. Conclusão solicitada (completion_requested) */
.chat-attendance-card.state-completion_requested {
  border-color: #FDBA74;
  background: #FFF7ED;
}
.chat-attendance-card.state-completion_requested .chat-attendance-card-header {
  background: #FFEDD5;
  color: #9A3412;
}
.chat-attendance-card.state-completion_requested .attendance-status-badge {
  background: #FED7AA;
  color: #7C2D12;
}

/* 4. Atendimento concluído (completed) */
.chat-attendance-card.state-completed {
  border-color: #86EFAC;
  background: #F0FDF4;
}
.chat-attendance-card.state-completed .chat-attendance-card-header {
  background: #DCFCE7;
  color: #166534;
}
.chat-attendance-card.state-completed .attendance-status-badge {
  background: #BBF7D0;
  color: #14532D;
}

/* 5. Conclusão contestada (disputed) */
.chat-attendance-card.state-disputed {
  border-color: #FCA5A5;
  background: #FEF2F2;
}
.chat-attendance-card.state-disputed .chat-attendance-card-header {
  background: #FEE2E2;
  color: #991B1B;
}
.chat-attendance-card.state-disputed .attendance-status-badge {
  background: #FECACA;
  color: #7F1D1D;
}

/* 6. Atendimento cancelado (cancelled) */
.chat-attendance-card.state-cancelled {
  border-color: #E2E8F0;
  background: #F8FAFC;
  opacity: 0.85;
}
.chat-attendance-card.state-cancelled .chat-attendance-card-header {
  background: #F1F5F9;
  color: #475569;
}
.chat-attendance-card.state-cancelled .attendance-status-badge {
  background: #E2E8F0;
  color: #334155;
}

/* Modal de Avaliação Verificada */
.verified-tag-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #DCFCE7;
  color: #166534;
  border: 1px solid #BBF7D0;
  border-radius: 12px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  margin-bottom: 12px;
}

.rating-stars-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 16px;
  font-size: 26px;
  color: #D1D5DB;
  cursor: pointer;
}

.rating-stars-picker i {
  transition: transform 0.15s, color 0.15s;
}

.rating-stars-picker i:hover,
.rating-stars-picker i.selected {
  color: #F59E0B;
  transform: scale(1.15);
}

.review-verified-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #E0E7FF;
  color: #4338CA;
  border-radius: 6px;
  padding: 2px 6px;
  font-size: 10px;
  font-weight: 600;
}

/* Modal Orçamento */
.quote-modal-box {
  margin-top: auto;
  height: auto;
  border-radius: 20px 20px 0 0;
  padding-bottom: 16px;
}

.quote-modal-box .modal-body {
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.quote-modal-box label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
}

.quote-modal-box input, .quote-modal-box select, .quote-modal-box textarea {
  border: 1px solid var(--border-grey);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
  outline: none;
}

.quote-modal-box textarea {
  resize: none;
}

.quote-modal-box .modal-footer {
  padding: 0 14px;
  display: flex;
  gap: 8px;
}

.btn-cancel {
  flex: 1;
  background: var(--border-grey);
  border: none;
  padding: 10px;
  border-radius: 8px;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
}

.btn-submit {
  flex: 2;
  background: var(--primary-purple);
  color: #fff;
  border: none;
  padding: 10px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 12px;
  cursor: pointer;
}

/* Área do Profissional */
.pro-dash-body {
  padding: 14px;
}

.dash-stat-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}

.stat-card {
  background: var(--card-white);
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 12px;
}

.stat-title {
  font-size: 10px;
  color: var(--text-secondary);
  display: block;
}

.stat-number {
  font-size: 20px;
  font-weight: 900;
  color: var(--primary-purple);
  display: block;
  margin: 3px 0;
}

.ad-boost-card {
  background: linear-gradient(135deg, var(--dark-purple), var(--primary-purple));
  color: #fff;
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 16px;
}

.boost-tag {
  background: rgba(255, 255, 255, 0.2);
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 5px;
  margin-bottom: 4px;
}

.ad-boost-card h4 {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 3px;
}

.ad-boost-card p {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 10px;
}

.boost-btn {
  background: #fff;
  color: var(--dark-purple);
  border: none;
  font-weight: 700;
  font-size: 11px;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
}

/* BARRA DE NAVEGAÇÃO INFERIOR — v2 */
.app-bottom-nav {
  flex-shrink: 0;
  height: calc(var(--nav-h) + var(--safe-bottom));
  padding: 0 var(--space-2) var(--safe-bottom);
  background: var(--color-surface);
  border-top: 1px solid var(--color-border);
  box-shadow: 0 -4px 16px rgba(24, 34, 48, 0.04);
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  z-index: 1500;
  position: relative;
}

.nav-btn {
  background: transparent;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--color-text-2);
  font-size: var(--fs-xs);
  font-weight: 500;
  cursor: pointer;
  flex: 1;
  min-width: 0;
  min-height: 48px;
  transition: color var(--dur-fast) var(--ease-standard);
}

.nav-btn * {
  pointer-events: none;
}

.nav-btn i {
  width: 52px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-pill);
  font-size: var(--icon-lg);
  transition: background var(--dur-base) var(--ease-standard), color var(--dur-fast) var(--ease-standard);
}

.nav-btn:hover {
  color: var(--color-text);
}

.nav-btn.active {
  color: var(--color-brand);
  font-weight: 600;
}

.nav-btn.active i {
  background: var(--color-brand-50);
}

.nav-btn:focus-visible {
  outline: none;
}

.nav-btn:focus-visible i {
  box-shadow: var(--shadow-focus);
}

.nav-badge-wrap {
  position: relative;
}

.nav-dot {
  position: absolute;
  top: 4px;
  right: 14px;
  width: 7px;
  height: 7px;
  background: var(--color-danger);
  border: 2px solid var(--color-surface);
  border-radius: 50%;
  box-sizing: content-box;
  display: none;
}

.nav-dot.active {
  display: block;
}

/* Toast */
.toast {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  background: #1F2937;
  color: #fff;
  padding: 9px 18px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 100;
}

.toast.show {
  transform: translateX(-50%) translateY(0);
}

/* =========================================================
   EXPLORAR SOLUÇÕES (NÃO-GENÉRICA)
   ========================================================= */
.explore-header {
  padding: 14px 16px;
  background: var(--card-white);
  border-bottom: 1px solid var(--border-grey);
}

.explore-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.explore-header h3 {
  font-size: 17px;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 2px;
}

.explore-sub {
  font-size: 11px;
  color: var(--text-secondary);
}

.explore-city-tag {
  background: var(--soft-purple);
  color: var(--primary-purple);
  font-size: 11px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.explore-scroll-body {
  padding: 14px 16px 20px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}

.explore-scroll-body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.explore-section {
  margin-bottom: 24px;
}

.explore-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 3px;
}

.explore-title-row h4 {
  font-size: 14px;
  font-weight: 800;
  color: var(--text-primary);
}

.explore-desc-text {
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 12px;
  line-height: 1.35;
}

/* 1. SOS EMERGÊNCIA */
.title-sos-pulse {
  display: flex;
  align-items: center;
  gap: 7px;
}

.sos-dot {
  width: 8px;
  height: 8px;
  background: #EF4444;
  border-radius: 50%;
  animation: pulseDot 1.5s infinite;
}

@keyframes pulseDot {
  0% { transform: scale(0.9); opacity: 0.8; box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
  70% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
  100% { transform: scale(0.9); opacity: 0.8; box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.sos-tag-live {
  background: #FEE2E2;
  color: #DC2626;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 12px;
  letter-spacing: 0.3px;
}

.sos-carousel {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.sos-carousel::-webkit-scrollbar {
  display: none;
}

.sos-card {
  flex: 0 0 160px;
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 12px;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  flex-direction: column;
}

.sos-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.06);
}

.sos-icon-box {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  margin-bottom: 8px;
}

.sos-icon-box.yellow { background: #FEF3C7; color: #D97706; }
.sos-icon-box.blue { background: #DBEAFE; color: #2563EB; }
.sos-icon-box.purple { background: var(--soft-purple); color: var(--primary-purple); }
.sos-icon-box.orange { background: #FFEDD5; color: #EA580C; }

.sos-info h5 {
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 2px;
  color: var(--text-primary);
  line-height: 1.25;
}

.sos-info span {
  font-size: 10.5px;
  color: var(--text-secondary);
  display: block;
}

.sos-info small {
  font-size: 10px;
  color: #059669;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 8px;
}

/* 2. SHOWCASE ANTES & DEPOIS */
.showcase-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 4px;
  scroll-snap-type: x mandatory;
}

.showcase-scroll::-webkit-scrollbar {
  display: none;
}

.showcase-card {
  flex: 0 0 250px;
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--border-grey);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.showcase-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}


.showcase-visual {
  position: relative;
  height: 135px;
  background: #111827;
  overflow: hidden;
}

.showcase-tag-neighborhood {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 5;
  background: rgba(17, 24, 39, 0.75);
  color: #fff;
  font-size: 9.5px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 6px;
  backdrop-filter: blur(4px);
}

.before-after-view {
  width: 100%;
  height: 100%;
  display: flex;
}

.before-after-side {
  flex: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 8px;
  background-size: cover;
  background-position: center;
}

.before-after-side.before {
  border-right: 1.5px solid rgba(255, 255, 255, 0.6);
  filter: grayscale(40%) contrast(90%);
}

.before-after-side.after {
  filter: saturate(110%);
}

.side-badge {
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.3px;
  align-self: flex-start;
}

.side-badge.before {
  background: rgba(220, 38, 38, 0.85);
  color: #fff;
}

.side-badge.after {
  background: rgba(16, 185, 129, 0.9);
  color: #fff;
}

.side-text-desc {
  font-size: 9.5px;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8);
  margin-top: 3px;
  font-weight: 500;
  line-height: 1.2;
}

.showcase-content {
  padding: 12px;
  display: flex;
  flex-direction: column;
  flex: 1;
  justify-content: space-between;
}

.showcase-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 4px;
  line-height: 1.3;
}

.showcase-pro-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 10px;
}

.showcase-pro-row strong {
  color: var(--text-primary);
}

.showcase-action-btn {
  width: 100%;
  background: var(--soft-purple);
  color: var(--primary-purple);
  border: 1px solid rgba(108, 43, 217, 0.25);
  border-radius: 10px;
  padding: 8px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
}

.showcase-action-btn:hover {
  background: var(--primary-purple);
  color: #fff;
}

/* 3. QUAL É O SEU PERRENGUE HOJE? */
.trouble-pills-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
}

.trouble-pill {
  background: #fff;
  border: 1px solid var(--border-grey);
  border-radius: 20px;
  padding: 7px 12px;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s ease;
  user-select: none;
}

.trouble-pill:hover, .trouble-pill.active {
  background: var(--soft-purple);
  border-color: var(--primary-purple);
  color: var(--primary-purple);
  font-weight: 700;
  transform: translateY(-1px);
}

.diagnosis-box {
  background: #fff;
  border: 1.5px solid var(--primary-purple);
  border-radius: 14px;
  padding: 14px;
  margin-top: 10px;
  box-shadow: 0 4px 16px rgba(108, 43, 217, 0.1);
  animation: fadeInDiag 0.25s ease-out;
}

@keyframes fadeInDiag {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

.diag-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 6px;
}

.diag-header h5 {
  font-size: 13px;
  font-weight: 800;
  color: var(--text-primary);
}

.diag-tag-urgent {
  background: #FEF3C7;
  color: #B45309;
  font-size: 9.5px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 6px;
}

.diag-cause {
  font-size: 11.5px;
  color: var(--text-secondary);
  line-height: 1.4;
  margin-bottom: 10px;
}

.diag-price-pro-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #F9FAFB;
  border: 1px solid var(--border-grey);
  padding: 10px 12px;
  border-radius: 10px;
  margin-bottom: 10px;
}

.diag-price {
  font-size: 13px;
  font-weight: 800;
  color: var(--primary-purple);
}

.diag-price-sub {
  font-size: 9.5px;
  color: var(--text-secondary);
}

.diag-cta {
  width: 100%;
  background: var(--primary-purple);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: 9px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.diag-cta:hover {
  background: var(--dark-purple);
}

/* 4. TERMÔMETRO DE PREÇOS */
.price-calculator-card {
  background: #fff;
  border: 1px solid var(--border-grey);
  border-radius: 16px;
  padding: 14px;
  box-shadow: var(--shadow-sm);
}

.price-calculator-card label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-secondary);
  display: block;
}

.custom-select-wrap select {
  width: 100%;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--border-grey);
  font-size: 12px;
  font-weight: 600;
  background: #FAF9FC;
  color: var(--text-primary);
  outline: none;
  margin: 6px 0 14px;
  cursor: pointer;
}

.price-gauge-display {
  background: #FAF9FC;
  border-radius: 12px;
  padding: 14px;
  border: 1px solid var(--border-grey);
}

.gauge-values-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 12px;
}

.gauge-main-val {
  font-size: 20px;
  font-weight: 800;
  color: var(--primary-purple);
}

.gauge-range-label {
  font-size: 11px;
  color: var(--text-secondary);
}

.price-scale-bar {
  position: relative;
  height: 8px;
  background: linear-gradient(90deg, #10B981 0%, #F59E0B 50%, #EF4444 100%);
  border-radius: 4px;
  margin: 20px 0 8px;
}

.price-indicator-pin {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 10px;
  font-weight: 800;
  color: var(--primary-purple);
  background: #fff;
  padding: 2px 7px;
  border-radius: 6px;
  border: 1.5px solid var(--primary-purple);
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  white-space: nowrap;
}

.price-scale-labels {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: var(--text-secondary);
  font-weight: 600;
}

.price-details-tip {
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  line-height: 1.35;
}

.price-details-tip i {
  color: var(--primary-purple);
  font-size: 13px;
}

/* 5. COMBOS POPULARES */
.combos-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.combo-card {
  background: #fff;
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 14px;
  position: relative;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform 0.2s, box-shadow 0.2s;
}

.combo-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
}

.combo-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #EDE9FE;
  color: #7C3AED;
  font-size: 9.5px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
}

.combo-badge.green {
  background: #DCFCE7;
  color: #15803D;
}

.combo-main h5 {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--text-primary);
  padding-right: 90px;
}

.combo-main p {
  font-size: 11px;
  color: var(--text-secondary);
  margin-bottom: 6px;
  line-height: 1.35;
}

.combo-pros {
  font-size: 10px;
  color: var(--primary-purple);
  font-weight: 700;
}

.combo-btn {
  margin-top: 10px;
  width: 100%;
  background: #FAF9FC;
  border: 1px solid var(--border-grey);
  border-radius: 8px;
  padding: 7px;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-primary);
  cursor: pointer;
  transition: all 0.2s;
}

.combo-btn:hover {
  background: var(--soft-purple);
  color: var(--primary-purple);
  border-color: var(--primary-purple);
}

/* =========================================================
   VITRINE SOCIAL DO PROFISSIONAL (ESTILO INSTAGRAM)
   ========================================================= */
.pro-vitrine-content {
  background: #FFFFFF;
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  border-radius: 0;
  padding: 0;
  overflow: hidden;
}
/* =========================================================
   VITRINE SOCIAL DO PROFISSIONAL (MODELO REFATORADO)
   ========================================================= */
.pro-vitrine-content {
  background: #FFFFFF;
  height: 100%;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

/* Barra Superior */
.vitrine-top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: #FFFFFF;
  border-bottom: 1px solid #F3F4F6;
  position: sticky;
  top: 0;
  z-index: 30;
}

.v-nav-icon-btn {
  background: none;
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 16px;
  color: #111827;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s;
}

.v-nav-icon-btn:hover {
  background: #F3F4F6;
}

.vitrine-top-handle {
  font-size: 16px;
  font-weight: 800;
  color: #111827;
  letter-spacing: -0.2px;
}

.vitrine-top-menu-wrap {
  position: relative;
}

.vitrine-dropdown-menu {
  position: absolute;
  top: 42px;
  right: 0;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
  padding: 6px;
  min-width: 220px;
  display: none;
  flex-direction: column;
  z-index: 50;
}

.vitrine-dropdown-menu.active {
  display: flex;
}

.vitrine-dropdown-menu .dropdown-item {
  background: none;
  border: none;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 12.5px;
  color: #374151;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s;
}

.vitrine-dropdown-menu .dropdown-item:hover {
  background: #F5F3FF;
  color: var(--primary-purple);
}

.vitrine-dropdown-menu .dropdown-item i {
  font-size: 14px;
  width: 16px;
}

/* Corpo Rolável (Estilo App Nativo) */
.vitrine-scroll-body {
  flex: 1;
  overflow-y: auto;
  background: #FFFFFF;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}

.vitrine-scroll-body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

/* Bloco Superior: Avatar + Nome + Métricas */
.vitrine-header-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 16px 10px;
}

.vitrine-avatar-circle {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border: 2px solid #7c3aed;
  padding: 2.5px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
}

.vitrine-avatar-photo {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.vitrine-avatar-fallback {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #7c3aed;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}

.vitrine-header-right {
  flex: 1;
  min-width: 0;
}

.vitrine-pro-name {
  font-size: 16.5px;
  font-weight: 800;
  color: #111827;
  margin: 0 0 2px 0;
  line-height: 1.2;
}

.vitrine-pro-sub-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.vitrine-pro-sub {
  font-size: 13px;
  color: #6B7280;
  font-weight: 400;
  margin-bottom: 0;
}

.vitrine-badge-24h {
  display: inline-flex;
  align-items: center;
  background: #F1F5F9;
  color: #475569;
  border: 1px solid #E2E8F0;
  font-size: 11px;
  font-weight: 600;
  padding: 1.5px 7px;
  border-radius: 999px;
}

/* Métricas: Trabalhos | Avaliações | Nota */
.vitrine-metrics-bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  max-width: 270px;
}

.v-metric-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  flex: 1;
}

.v-metric-num {
  font-size: 17px;
  font-weight: 800;
  color: #111827;
  line-height: 1.1;
}

.v-metric-num-rating {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 17px;
  font-weight: 800;
  color: #111827;
  line-height: 1.1;
}

.metric-star-icon {
  font-size: 14px;
  color: #F59E0B;
}

.v-metric-label {
  font-size: 11.5px;
  color: #6B7280;
  margin-top: 3px;
  font-weight: 400;
}

/* Bloco Bio & Descrição */
.vitrine-bio-container {
  padding: 4px 16px 14px;
}

.vitrine-headline {
  font-size: 14px;
  font-weight: 700;
  color: #111827;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 4px;
}

.headline-emoji {
  font-size: 14px;
}

.vitrine-description {
  font-size: 13px;
  line-height: 1.42;
  color: #374151;
  margin: 0 0 6px 0;
}

.vitrine-city-row {
  font-size: 12.5px;
  color: #6B7280;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 6px;
}

.vitrine-city-row i {
  font-size: 12px;
}

.vitrine-readmore-btn {
  background: none;
  border: none;
  color: #7c3aed;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  display: inline-block;
}

.vitrine-expanded-bio {
  margin-top: 8px;
  font-size: 12.5px;
  line-height: 1.45;
  color: #4B5563;
  background: #F9FAFB;
  border-left: 3px solid #7c3aed;
  padding: 8px 10px;
  border-radius: 0 8px 8px 0;
}

/* Bloco de Botões de Ação */
.vitrine-buttons-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px 14px;
}

.v-btn-solid {
  flex: 1.2;
  height: 38px;
  background: #7c3aed;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: opacity 0.15s;
}

.v-btn-solid:hover {
  opacity: 0.92;
}

.v-btn-outline {
  flex: 1.2;
  height: 38px;
  background: #FFFFFF;
  color: #7c3aed;
  border: 1.5px solid #7c3aed;
  border-radius: 8px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background 0.15s;
}

.v-btn-outline:hover {
  background: #F5F3FF;
}

.v-btn-share-square {
  width: 38px;
  height: 38px;
  background: #FFFFFF;
  color: #374151;
  border: 1.5px solid #E5E7EB;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s;
}

.v-btn-share-square:hover {
  background: #F9FAFB;
  border-color: #D1D5DB;
}

.v-btn-outline.favorited {
  background: #FEF2F2;
  color: #DC2626;
  border-color: #FECACA;
}

.v-btn-outline.favorited:hover {
  background: #FEE2E2;
}

.v-btn-outline.favorited i {
  color: #DC2626;
  animation: heartPop 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes heartPop {
  0% { transform: scale(1); }
  50% { transform: scale(1.35); }
  100% { transform: scale(1); }
}

/* Modal e Cards de Favoritos */
.empty-favorites-box {
  padding: 48px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.empty-fav-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #FDF2F8;
  color: #EC4899;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  margin-bottom: 14px;
}

.empty-fav-title {
  font-size: 15px;
  font-weight: 700;
  color: #1E293B;
  margin: 0 0 6px;
}

.empty-fav-desc {
  font-size: 12.5px;
  color: #64748B;
  line-height: 1.45;
  margin: 0 0 18px;
  max-width: 270px;
}

.btn-explore-favs {
  background: #7C3AED;
  color: #FFFFFF;
  border: none;
  padding: 9px 16px;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  box-shadow: 0 2px 6px rgba(124, 58, 237, 0.25);
  transition: opacity 0.15s;
}

.btn-explore-favs:hover {
  opacity: 0.92;
}

.fav-pro-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  transition: border-color 0.15s, box-shadow 0.15s;
}

.fav-pro-card:hover {
  border-color: #CBD5E1;
  box-shadow: 0 2px 6px rgba(0,0,0,0.04);
}

.fav-pro-left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  cursor: pointer;
}

.fav-avatar-wrap {
  position: relative;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
}

.fav-avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 1.5px solid #E2E8F0;
}

.fav-avatar-fallback {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: #7C3AED;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fav-verified {
  position: absolute;
  bottom: -2px;
  right: -2px;
  color: #7C3AED;
  background: #FFFFFF;
  border-radius: 50%;
  font-size: 12px;
}

.fav-pro-info {
  flex: 1;
  min-width: 0;
}

.fav-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.fav-name-row h5 {
  font-size: 13.5px;
  font-weight: 700;
  color: #0F172A;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fav-badge-24h {
  font-size: 9.5px;
  font-weight: 700;
  background: #F0FDF4;
  color: #16A34A;
  border: 1px solid #BBF7D0;
  padding: 1px 5px;
  border-radius: 999px;
  flex-shrink: 0;
}

.fav-specialty {
  font-size: 11.5px;
  color: #64748B;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 1px 0 2px;
}

.fav-meta-row {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: #64748B;
}

.fav-rating {
  color: #D97706;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.fav-dot-sep {
  color: #CBD5E1;
}

.fav-location {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fav-pro-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.btn-fav-chat {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #F5F3FF;
  color: #7C3AED;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: background-color 0.15s;
}

.btn-fav-chat:hover {
  background: #EDE9FE;
}

.btn-fav-remove {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: #FEF2F2;
  color: #DC2626;
  border: 1px solid #FECACA;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: all 0.15s;
}

.btn-fav-remove:hover {
  background: #FEE2E2;
}

/* Divisória */
.vitrine-separator {
  height: 6px;
  background: #FAF9FC;
  border-top: 1px solid #F3F4F6;
  border-bottom: 1px solid #F3F4F6;
  margin-bottom: 10px;
}

/* Card de Disponibilidade: Plantão 24h Discreto */
.vitrine-emergency-card {
  margin: 0 16px 10px;
}

.emergency-card-discreet {
  padding: 10px 14px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.emergency-card-discreet:hover {
  border-color: #D1D5DB;
}

.emergency-icon-box {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.emergency-icon-box.on {
  background: #F0FDF4;
  color: #16A34A;
}

.emergency-icon-box.off {
  background: #F8FAFC;
  color: #94A3B8;
}

.emergency-card-texts {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.emergency-card-title {
  font-size: 13.5px;
  font-weight: 600;
  color: #1E293B;
  line-height: 1.25;
}

.emergency-card-sub {
  font-size: 11.5px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #64748B;
  line-height: 1.3;
}

.emergency-card-sub.on {
  color: #15803D;
  font-weight: 500;
}

.emergency-card-sub.off {
  color: #94A3B8;
}

.status-indicator-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

.status-indicator-dot.dot-active {
  background: #16A34A;
}

.status-indicator-dot.dot-inactive {
  background: #CBD5E1;
}

.dot-active-tiny {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #16A34A;
  display: inline-block;
  margin-right: 4px;
}

/* Switch Discreto */
.discreet-switch {
  position: relative;
  display: inline-block;
  width: 38px;
  height: 22px;
  flex-shrink: 0;
  cursor: pointer;
}

.discreet-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.discreet-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #E2E8F0;
  transition: 0.25s ease;
  border-radius: 22px;
}

.discreet-slider:before {
  position: absolute;
  content: "";
  height: 16px;
  width: 16px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.25s ease;
  border-radius: 50%;
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}

.discreet-switch input:checked + .discreet-slider {
  background-color: #10B981;
}

.discreet-switch input:checked + .discreet-slider:before {
  transform: translateX(16px);
}

/* Botão discreto para visitante */
.btn-emergency-subtle {
  background: #F0FDF4;
  color: #15803D;
  border: 1px solid #BBF7D0;
  border-radius: 8px;
  padding: 5px 10px;
  font-size: 11.5px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.btn-emergency-subtle:hover {
  background: #DCFCE7;
  border-color: #86EFAC;
}

/* Card Meus Serviços */
.vitrine-services-card {
  margin: 0 16px 14px;
  padding: 10px 14px;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: all 0.15s;
}

.vitrine-services-card:hover {
  border-color: #D1D5DB;
  background: #FDFCFE;
}

.services-card-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.services-icon-box {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #F5F3FF;
  color: #7c3aed;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

.services-card-texts {
  display: flex;
  flex-direction: column;
}

.services-card-title {
  font-size: 14px;
  font-weight: 700;
  color: #111827;
  line-height: 1.2;
}

.services-card-sub {
  font-size: 12px;
  color: #6B7280;
  margin-top: 2px;
}

.services-card-right i {
  font-size: 13px;
  color: #9CA3AF;
}

/* Seção Meus Trabalhos */
.vitrine-works-section {
  padding: 0 16px;
}

.works-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.works-section-title {
  font-size: 15px;
  font-weight: 800;
  color: #111827;
  margin: 0;
}

.works-new-post-btn {
  background: none;
  border: none;
  color: #7c3aed;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  padding: 0;
}

.works-new-post-btn:hover {
  text-decoration: underline;
}

/* Grade 3 Colunas de Trabalhos */
.vitrine-works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}

.pro-work-tile {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  overflow: hidden;
  background: #F3F4F6;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  transition: transform 0.15s;
}

.pro-work-tile:hover {
  transform: scale(0.98);
}

.pro-work-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pro-work-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  color: #FFFFFF;
  padding: 8px;
  text-align: center;
}

.pro-work-fallback i {
  font-size: 26px;
}

.pro-work-fallback span {
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
}

.pro-work-tile-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.65) 100%);
  display: flex;
  align-items: flex-end;
  padding: 6px;
  opacity: 0;
  transition: opacity 0.2s;
}

.pro-work-tile:hover .pro-work-tile-overlay {
  opacity: 1;
}

.pro-work-badge {
  font-size: 9.5px;
  color: #FFFFFF;
  font-weight: 700;
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Espaçador inferior para que o FAB não oculte o conteúdo no final do scroll */
.vitrine-bottom-spacer {
  height: 84px;
  width: 100%;
}

/* =========================================================
   BOTÃO FLUTUANTE (FAB) DE UPLOAD DE FOTOS NO PORTFÓLIO
   Canto inferior direito com alta visibilidade e acabamento premium
   ========================================================= */
.vitrine-fab-upload {
  position: absolute;
  bottom: 22px;
  right: 18px;
  z-index: 45;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--color-brand, #6C2BD9);
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(108, 43, 217, 0.42), 0 2px 6px rgba(24, 34, 48, 0.14);
  transition: transform 0.22s var(--ease-standard, cubic-bezier(0.2, 0.8, 0.2, 1)),
              background 0.18s ease,
              box-shadow 0.22s ease;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.vitrine-fab-upload i {
  font-size: 22px;
  color: #FFFFFF;
  line-height: 1;
  transition: transform 0.22s ease;
}

.vitrine-fab-upload:hover {
  background: var(--color-brand-dark, #4C1D95);
  transform: translateY(-3px) scale(1.06);
  box-shadow: 0 14px 32px rgba(108, 43, 217, 0.5), 0 4px 10px rgba(24, 34, 48, 0.18);
}

.vitrine-fab-upload:hover i {
  transform: rotate(90deg);
}

.vitrine-fab-upload:active {
  transform: translateY(0) scale(0.94);
  box-shadow: 0 6px 16px rgba(108, 43, 217, 0.38);
}

.vitrine-fab-upload:focus-visible {
  outline: 2px solid #FFFFFF;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(108, 43, 217, 0.6);
}

/* Estado Vazio Elegante dos Trabalhos (quando o profissional ainda não postou) */
.empty-works-box {
  grid-column: 1 / -1;
  background: #F8FAFC;
  border: 1.5px dashed var(--color-border, #E2E8F0);
  border-radius: var(--radius-lg, 16px);
  padding: 32px 18px 28px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 8px 0 16px;
}

.empty-works-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--color-brand-50, #F3EEFD);
  color: var(--color-brand, #6C2BD9);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 4px;
}

.empty-works-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text, #182230);
}

.empty-works-desc {
  font-size: 12px;
  color: var(--color-text-2, #64748B);
  line-height: 1.45;
  max-width: 250px;
}

.btn-empty-upload {
  margin-top: 10px;
  background: #FFFFFF;
  border: 1px solid var(--color-brand-100, #E4D8FB);
  color: var(--color-brand, #6C2BD9);
  font-size: 12.5px;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: var(--radius-sm, 8px);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.18s ease;
}

.btn-empty-upload:hover {
  background: var(--color-brand-50, #F3EEFD);
  border-color: var(--color-brand, #6C2BD9);
  transform: translateY(-1px);
}

/* Modal Meus Serviços */
.services-sheet-content {
  background: #FFFFFF;
  border-radius: 20px 20px 0 0;
  max-height: 85vh;
  overflow-y: auto;
}

.services-sheet-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.service-card-item {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.service-card-item-info h5 {
  font-size: 13px;
  font-weight: 700;
  color: #111827;
  margin: 0 0 3px 0;
}

.service-card-item-info span {
  font-size: 12px;
  color: #7c3aed;
  font-weight: 800;
}

.service-card-item-info small {
  font-size: 10px;
  color: #6B7280;
  font-weight: normal;
}

/* Modal Avaliações */
.reviews-modal-content {
  background: #FFFFFF;
  border-radius: 20px 20px 0 0;
  max-height: 85vh;
  overflow-y: auto;
}

.btn-service-action:hover {
  background: var(--primary-purple);
  color: #fff;
}

/* Avaliações */
.reviews-summary-card {
  background: #FAF9FC;
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 14px;
  text-align: center;
  margin-bottom: 12px;
}

.reviews-score-big {
  font-size: 32px;
  font-weight: 900;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.reviews-stars-gold {
  color: #F59E0B;
  font-size: 16px;
  margin: 4px 0;
}

.reviews-verified-note {
  font-size: 10.5px;
  color: var(--text-secondary);
}

.reviews-feed-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.review-feed-card {
  background: #FFFFFF;
  border: 1px solid var(--border-grey);
  border-radius: 12px;
  padding: 12px;
  box-shadow: var(--shadow-sm);
}

.review-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.review-author-info {
  display: flex;
  align-items: center;
  gap: 8px;
}

.review-author-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--soft-purple);
  color: var(--primary-purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 700;
}

.review-author-name {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-primary);
}

.review-author-bairro {
  font-size: 10px;
  color: var(--text-secondary);
}

.review-date {
  font-size: 10px;
  color: var(--text-secondary);
}

.review-comment-text {
  font-size: 11.5px;
  line-height: 1.4;
  color: #374151;
}

/* Modal Detalhe da Publicação / Visualização Ampliada da Foto do Serviço */
#post-detail-overlay {
  background: #FFFFFF !important;
  backdrop-filter: none !important;
}

.post-modal-content {
  background: #FFFFFF;
  border-radius: 0;
  height: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: none;
}

.post-viewer-top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid #F1F5F9;
  background: #FFFFFF;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  z-index: 20;
}

.post-viewer-pro-info {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  margin: 0 8px;
}

.post-viewer-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  border: 1.5px solid #E2E8F0;
  flex-shrink: 0;
}

.post-viewer-fallback-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #7C3AED;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.post-viewer-name-box {
  flex: 1;
  min-width: 0;
}

.post-viewer-name {
  font-size: 13.5px;
  font-weight: 700;
  color: #0F172A;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 4px;
}

.post-viewer-sub {
  font-size: 11px;
  color: #64748B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.post-detail-scroll-body {
  overflow-y: auto;
  flex: 1;
  padding-bottom: 24px;
  -webkit-overflow-scrolling: touch;
}

/* Área da foto ampliada */
.post-hero-image-wrap {
  position: relative;
  width: 100%;
  background: #F8FAFC;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
  user-select: none;
  min-height: 260px;
  max-height: 420px;
}

.post-hero-full-img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  display: block;
}

.post-hero-fallback-visual {
  width: 100%;
  height: 260px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #64748B;
}

.post-hero-fallback-visual i {
  font-size: 56px;
}

.post-hero-fallback-visual span {
  font-size: 14px;
  font-weight: 600;
}

/* Coração animado de double tap */
.post-double-tap-heart {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  color: #EF4444;
  font-size: 76px;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.6);
  z-index: 10;
}

.post-double-tap-heart.pop {
  transform: translate(-50%, -50%) scale(1.15);
  opacity: 0.95;
}

.post-img-category-pill {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: rgba(15, 23, 42, 0.82);
  color: #F8FAFC;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 8px;
  backdrop-filter: blur(6px);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

/* Barra de Ações (Curtidas, Compartilhar) */
.post-interaction-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 6px;
}

.post-interaction-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.post-act-btn {
  background: none;
  border: none;
  font-size: 24px;
  color: #334155;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 2px;
  transition: transform 0.15s, color 0.15s;
}

.post-act-btn:hover {
  transform: scale(1.12);
}

.post-act-btn.liked {
  color: #EF4444;
}

.post-act-btn.liked i {
  animation: heartPop 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.post-likes-count-row {
  padding: 0 16px 10px;
  font-size: 13px;
  color: #1E293B;
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
}

.post-likes-count-row strong {
  font-weight: 700;
  color: #0F172A;
}

/* Legenda e Descrição */
.post-info-box {
  padding: 0 16px;
  margin-bottom: 12px;
}

.post-service-title {
  font-size: 15.5px;
  font-weight: 800;
  color: #0F172A;
  margin: 0 0 6px;
  line-height: 1.35;
}

.post-meta-chips-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.post-meta-chip {
  background: #F1F5F9;
  color: #475569;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.post-desc-container {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 14px;
}

.post-desc-label {
  font-size: 11px;
  font-weight: 700;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.post-desc-text {
  font-size: 13px;
  line-height: 1.55;
  color: #334155;
  margin: 0;
  white-space: pre-line;
}

/* Rodapé com botão de solicitar serviço */
.post-cta-wrap {
  padding: 0 16px;
  margin-top: 4px;
}

.btn-request-service {
  width: 100%;
  height: 44px;
  background: #7C3AED;
  color: #FFFFFF;
  border: none;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(124, 58, 237, 0.28);
  transition: opacity 0.15s, transform 0.15s;
}

.btn-request-service:hover {
  opacity: 0.94;
  transform: translateY(-1px);
}

.btn-request-service:active {
  transform: translateY(0);
}

/* =========================================================
   MODAL DE PUBLICAÇÃO ESTILO INSTAGRAM
   Foco visual na mídia selecionada com legenda e bairro
   ========================================================= */
.instagram-post-modal {
  background: #FFFFFF;
  border-radius: 20px 20px 0 0;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ig-post-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--color-border, #E2E8F0);
  background: #FFFFFF;
  position: sticky;
  top: 0;
  z-index: 10;
}

.ig-btn-back {
  background: none;
  border: none;
  color: var(--color-text, #182230);
  font-size: 18px;
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  transition: background 0.15s ease;
}

.ig-btn-back:hover {
  background: var(--color-surface-2, #F8FAFC);
}

.ig-modal-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--color-text, #182230);
  margin: 0;
}

.ig-btn-publish-header {
  background: none;
  border: none;
  color: var(--color-brand, #6C2BD9);
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  transition: opacity 0.15s ease;
}

.ig-btn-publish-header:hover {
  opacity: 0.8;
}

.ig-post-body {
  padding: 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Palco de Destaque da Mídia Estilo Instagram */
.instagram-media-stage {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  max-height: 240px;
  background: #0F172A;
  border-radius: var(--radius-lg, 16px);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.instagram-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.instagram-preview-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: #94A3B8;
  font-size: 13px;
  font-weight: 600;
}

.instagram-preview-fallback i {
  font-size: 36px;
  color: #64748B;
}

.btn-change-media-pill {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background: rgba(15, 23, 42, 0.75);
  color: #FFFFFF;
  border: 1px solid rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(8px);
  border-radius: var(--radius-pill, 999px);
  padding: 6px 14px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.btn-change-media-pill:hover {
  background: rgba(108, 43, 217, 0.9);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-1px);
}

/* Formulário e Campos */
.ig-form-fields {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ig-field-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ig-field-group label {
  font-size: 12px;
  font-weight: 700;
  color: var(--color-text, #182230);
}

.ig-input-title,
.ig-select {
  height: 44px;
  padding: 0 12px;
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-border, #E2E8F0);
  border-radius: var(--radius-md, 12px);
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text, #182230);
  transition: all 0.15s ease;
  font-family: inherit;
}

.ig-input-title:focus,
.ig-select:focus,
.ig-textarea-desc:focus {
  outline: none;
  border-color: var(--color-brand, #6C2BD9);
  box-shadow: 0 0 0 3px rgba(108, 43, 217, 0.12);
}

.ig-textarea-desc {
  padding: 10px 12px;
  background: var(--color-surface, #FFFFFF);
  border: 1px solid var(--color-border, #E2E8F0);
  border-radius: var(--radius-md, 12px);
  font-size: 13px;
  font-weight: 500;
  color: var(--color-text, #182230);
  resize: vertical;
  min-height: 75px;
  line-height: 1.45;
  font-family: inherit;
  transition: all 0.15s ease;
}

.ig-fields-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.ig-modal-footer {
  padding: 12px 16px;
  border-top: 1px solid var(--color-border, #E2E8F0);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  background: var(--color-surface, #FFFFFF);
}

.add-service-box {
  background: #FAF9FC;
  border: 1px solid var(--border-grey);
  border-radius: 12px;
  padding: 12px;
}

/* =========================================================
   ESTILOS DO SISTEMA DE AUTENTICAÇÃO E CADASTRO
   ========================================================= */

/* Badge de Papel no Perfil */
.profile-name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.user-role-badge {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding: 2px 8px;
  border-radius: 12px;
  background: var(--soft-purple);
  color: var(--primary-purple);
}

.user-role-badge.pro {
  background: #FEF3C7;
  color: #B45309;
}

/* 1. TELA INICIAL DE ACESSO (WELCOME HUB / ONBOARDING) */
.auth-welcome-content {
  background: linear-gradient(180deg, #FAF7FF 0%, #FFFFFF 100%);
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.auth-welcome-header {
  padding: 12px 16px;
  display: flex;
  justify-content: flex-end;
  flex-shrink: 0;
}

.auth-welcome-body {
  padding: 12px 20px 32px;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: min-content;
  justify-content: flex-start;
  gap: 18px;
}

.auth-brand-hero {
  text-align: center;
  margin-bottom: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.auth-hero-icon-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 12px;
}

.auth-trampou-icon-hero {
  width: 76px;
  height: 76px;
  border-radius: 20px;
  box-shadow: 0 10px 25px rgba(108, 43, 217, 0.28);
  object-fit: cover;
  transition: transform 0.25s ease;
}

.auth-trampou-icon-hero:hover {
  transform: scale(1.05);
}

.auth-hero-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  width: 100%;
}

.auth-trampou-logo-img {
  max-width: 190px;
  height: auto;
  max-height: 52px;
  object-fit: contain;
  display: block;
}

.auth-brand-hero h2 {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  line-height: 1.35;
  margin: 0 0 8px;
  padding: 0 8px;
}

.auth-brand-hero p {
  font-size: 13px;
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 320px;
  margin: 0 auto;
  padding: 0 4px;
}

.auth-role-cards {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  margin-bottom: 12px;
}

.auth-role-card {
  background: #FFFFFF;
  border: 1.5px solid var(--border-grey);
  border-radius: 16px;
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: var(--shadow-sm);
}

.auth-role-card:hover, .auth-role-card:active {
  border-color: var(--primary-purple);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(108, 43, 217, 0.12);
}

.auth-role-card.pro {
  background: linear-gradient(145deg, #FAF7FF 0%, #FFFFFF 100%);
  border-color: #E2D9F3;
}

.auth-role-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  flex-shrink: 0;
}

.auth-role-icon.purple {
  background: var(--soft-purple);
  color: var(--primary-purple);
}

.auth-role-icon.dark-purple {
  background: #EFEBFA;
  color: var(--dark-purple);
}

.auth-role-text {
  flex: 1;
}

.auth-role-text h4 {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text-primary);
  margin-bottom: 3px;
}

.auth-role-text p {
  font-size: 11.5px;
  color: var(--text-secondary);
  line-height: 1.35;
}

.role-arrow {
  color: #C4C2CF;
  font-size: 13px;
}

.auth-welcome-footer {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.auth-welcome-footer p {
  font-size: 13.5px;
  color: var(--text-secondary);
}

.btn-link-auth {
  background: none;
  border: none;
  color: var(--primary-purple);
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  text-decoration: none;
  padding: 0 2px;
}

.btn-link-auth:hover {
  text-decoration: underline;
}

.btn-guest-browse {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  padding: 8px;
}

.btn-guest-browse:hover {
  color: var(--text-primary);
}

/* 2. FORMULÁRIOS & MODAIS DE AUTH */
.auth-form-content, .auth-wizard-content {
  background: #FFFFFF;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
}

.auth-modal-header {
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--border-grey);
  background: #FFFFFF;
  z-index: 10;
}

.auth-modal-header h4 {
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
}

.auth-form-body {
  padding: 20px 20px 30px;
  overflow-y: auto;
  flex: 1;
}

.auth-intro-text {
  margin-bottom: 20px;
}

.auth-intro-text h3 {
  font-size: 18px;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 4px;
}

.auth-intro-text p {
  font-size: 12.5px;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* Input Groups */
.auth-input-group {
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
}

.auth-input-group label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 6px;
}

.label-row-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.btn-link-sm {
  background: none;
  border: none;
  color: var(--primary-purple);
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
}

.btn-link-sm:hover {
  text-decoration: underline;
}

.input-icon-wrap {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.input-icon-wrap i:first-child {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #9E9DA8;
  font-size: 14px;
  pointer-events: none;
  z-index: 1;
}

.input-icon-wrap input, .input-icon-wrap select {
  width: 100%;
  height: 46px;
  padding: 0 46px 0 40px; /* 40px esquerda para o ícone, 46px direita para o botão do olho ficar dentro e folgado */
  border: 1.5px solid var(--border-grey);
  border-radius: 12px;
  font-size: 13.5px;
  color: var(--text-primary);
  background: #FAF9FC;
  outline: none;
  transition: border-color 0.2s, background-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

/* Oculta botão nativo de revelar senha de navegadores (Edge / IE / WebKit) */
.input-icon-wrap input[type="password"]::-ms-reveal,
.input-icon-wrap input[type="password"]::-ms-clear {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

.input-icon-wrap input[type="password"]::-webkit-contacts-auto-fill-button,
.input-icon-wrap input[type="password"]::-webkit-credentials-auto-fill-button {
  visibility: hidden !important;
  display: none !important;
  pointer-events: none !important;
  height: 0 !important;
  width: 0 !important;
  margin: 0 !important;
}

.input-icon-wrap input:focus, .input-icon-wrap select:focus {
  border-color: var(--primary-purple);
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(108, 43, 217, 0.08);
}

.input-icon-wrap input::placeholder {
  color: #A09EAA;
  font-size: 12.5px;
}

.toggle-password-btn {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: #8E8D99;
  cursor: pointer;
  width: 32px;
  height: 32px;
  padding: 0;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  z-index: 5;
  transition: color 0.15s, background-color 0.15s, transform 0.1s;
}

.toggle-password-btn:hover {
  color: var(--primary-purple);
  background: rgba(124, 58, 237, 0.08);
}

.toggle-password-btn:active {
  transform: translateY(-50%) scale(0.9);
}

.toggle-password-btn i {
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  font-size: 14px;
}

.auth-input-group textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid var(--border-grey);
  border-radius: 12px;
  font-size: 13px;
  color: var(--text-primary);
  background: #FAF9FC;
  outline: none;
  resize: vertical;
  line-height: 1.4;
}

.auth-input-group textarea:focus {
  border-color: var(--primary-purple);
  background: #FFFFFF;
  box-shadow: 0 0 0 3px rgba(108, 43, 217, 0.08);
}

.field-hint {
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 4px;
}

/* Botões de Ação de Auth */
.btn-auth-primary {
  width: 100%;
  background: linear-gradient(135deg, var(--primary-purple), var(--dark-purple));
  color: #FFFFFF;
  border: none;
  border-radius: 12px;
  padding: 13px 18px;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  transition: opacity 0.2s, transform 0.15s;
  box-shadow: 0 4px 14px rgba(108, 43, 217, 0.22);
  margin-top: 8px;
}

.btn-auth-primary:hover {
  opacity: 0.95;
}

.btn-auth-primary:active {
  transform: scale(0.98);
}

.btn-auth-primary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.btn-auth-primary.success-gradient {
  background: linear-gradient(135deg, #059669, #10B981);
  box-shadow: 0 4px 14px rgba(16, 185, 129, 0.25);
}

.btn-auth-secondary {
  background: #F4F3F7;
  color: var(--text-primary);
  border: none;
  border-radius: 12px;
  padding: 12px 18px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}

.auth-bottom-switch {
  text-align: center;
  font-size: 12.5px;
  color: var(--text-secondary);
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: center;
}

/* Alertas de Notificação */
.auth-alert {
  border-radius: 10px;
  padding: 10px 14px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 12.5px;
  margin-bottom: 16px;
  line-height: 1.4;
}

.auth-alert.error {
  background: #FEF2F2;
  border: 1px solid #FCA5A5;
  color: #B91C1C;
}

.auth-alert.info {
  background: #F3E8FF;
  border: 1px solid #D8B4FE;
  color: #581C87;
}

.auth-alert.success {
  background: #ECFDF5;
  border: 1px solid #6EE7B7;
  color: #065F46;
}

/* Termos de Uso */
.auth-terms-box {
  margin: 12px 0 16px;
}

.custom-checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  user-select: none;
}

.custom-checkbox-label input[type="checkbox"] {
  width: 17px;
  height: 17px;
  accent-color: var(--primary-purple);
  margin-top: 2px;
  cursor: pointer;
  flex-shrink: 0;
}

.terms-text {
  font-size: 11.5px;
  color: var(--text-secondary);
  line-height: 1.4;
}

.terms-text a {
  color: var(--primary-purple);
  text-decoration: underline;
  font-weight: 600;
}

/* 3. WIZARD PROFISSIONAL MULTI-STEP (4 ETAPAS) */
.pro-wizard-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  background: #FAF9FC;
  border-bottom: 1px solid var(--border-grey);
}

.wizard-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.step-circle {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #EAEAEF;
  color: #8E8D99;
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}

.wizard-step span {
  font-size: 10px;
  font-weight: 600;
  color: #8E8D99;
}

.wizard-step.active .step-circle {
  background: var(--primary-purple);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(108, 43, 217, 0.3);
}

.wizard-step.active span {
  color: var(--primary-purple);
  font-weight: 700;
}

.wizard-step.completed .step-circle {
  background: var(--success-green);
  color: #FFFFFF;
}

.wizard-step.completed span {
  color: var(--text-primary);
}

.wizard-connector {
  flex: 1;
  height: 2px;
  background: #EAEAEF;
  margin: 0 6px 14px;
}

.wizard-connector.active {
  background: var(--primary-purple);
}

.wizard-draft-pill {
  background: #EFF6FF;
  color: #1D4ED8;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-bottom: 1px solid #BFDBFE;
}

.auth-wizard-body {
  overflow-y: auto;
  flex: 1;
  padding: 18px 18px 24px;
}

.wizard-step-pane {
  display: none;
}

.wizard-step-pane.active {
  display: block;
  animation: fadeInPane 0.2s ease-in-out;
}

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

.wizard-action-footer {
  margin-top: 22px;
}

.wizard-action-footer.split {
  display: flex;
  gap: 10px;
  align-items: center;
}

.wizard-action-footer.split .btn-auth-primary {
  flex: 1;
  margin-top: 0;
}

/* Criação Dinâmica de Nova Categoria no Cadastro */
.btn-link-subtle {
  background: none;
  border: none;
  color: #7C3AED;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  transition: opacity 0.15s;
}

.btn-link-subtle:hover {
  text-decoration: underline;
  opacity: 0.9;
}

.new-category-box {
  margin-top: 8px;
  padding: 10px 12px;
  background: #F5F3FF;
  border: 1.5px dashed #DDD6FE;
  border-radius: 10px;
  animation: fadeInDown 0.2s ease;
}

.new-cat-label {
  font-size: 11px;
  font-weight: 700;
  color: #6D28D9;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin-bottom: 6px;
  display: block;
}

.new-cat-input-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.btn-add-cat-confirm {
  height: 42px;
  padding: 0 14px;
  background: #7C3AED;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  transition: background 0.15s;
}

.btn-add-cat-confirm:hover {
  background: #6D28D9;
}

/* Chips Selecionáveis (Bairros e Especialidades) */
.tags-selector-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.selectable-chip {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--text-secondary);
  background: #F4F3F7;
  border: 1px solid var(--border-grey);
  border-radius: 16px;
  padding: 6px 12px;
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}

.selectable-chip:hover {
  background: #EFEBFA;
  border-color: #D3C9EE;
}

.selectable-chip.active {
  background: var(--soft-purple);
  color: var(--primary-purple);
  border-color: var(--primary-purple);
  font-weight: 700;
}

.optional-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #4B5563;
  background: #F3F4F6;
  padding: 4px 10px;
  border-radius: 8px;
  margin-top: 4px;
}

/* Upload de Avatar no Wizard */
.avatar-upload-box {
  background: #FAF9FC;
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 16px;
}

.section-sub-label {
  font-size: 12.5px;
  font-weight: 700;
  color: var(--text-primary);
  display: block;
  margin-bottom: 10px;
}

.avatar-upload-row {
  display: flex;
  align-items: center;
  gap: 14px;
}

.avatar-upload-preview {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #EDE9FE;
  color: var(--primary-purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  border: 2px solid #DDD6FE;
  flex-shrink: 0;
  overflow: hidden;
}

.avatar-upload-actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.avatar-upload-actions small {
  font-size: 10.5px;
  color: var(--text-secondary);
}

.btn-file-select {
  background: var(--card-white);
  border: 1.5px solid var(--primary-purple);
  color: var(--primary-purple);
  font-size: 11.5px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  align-self: flex-start;
}

.btn-file-select:hover {
  background: var(--soft-purple);
}

.btn-remove-sm {
  background: none;
  border: none;
  color: var(--error-red);
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
}

/* Upload de Galeria de Trabalhos */
.gallery-upload-box {
  background: #FAF9FC;
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 16px;
}

.gallery-upload-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}

.gallery-upload-header small {
  font-size: 11px;
  color: var(--text-secondary);
  display: block;
}

.btn-file-select-sm {
  background: var(--primary-purple);
  color: #fff;
  border: none;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
}

.gallery-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  min-height: 80px;
}

.gallery-preview-item {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border-grey);
}

.gallery-preview-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-item-del-btn {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  cursor: pointer;
}

.gallery-empty-tip {
  grid-column: 1 / -1;
  border: 1.5px dashed #D6D3E0;
  border-radius: 10px;
  padding: 16px 12px;
  text-align: center;
  color: #8E8D99;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
}

.gallery-empty-tip i {
  font-size: 22px;
  color: #B4B2C2;
}

/* Etapa 4: Card de Revisão */
.review-summary-card {
  background: #FAF9FC;
  border: 1px solid var(--border-grey);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 14px;
}

.summary-profile-header {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
}

.summary-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--soft-purple);
  color: var(--primary-purple);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  overflow: hidden;
  border: 2px solid #DDD6FE;
  flex-shrink: 0;
}

.summary-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.summary-header-info {
  flex: 1;
}

.summary-header-info h4 {
  font-size: 14.5px;
  font-weight: 800;
  color: var(--text-primary);
  margin-bottom: 2px;
}

.summary-badge {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  background: #E0E7FF;
  color: #3730A3;
  padding: 2px 7px;
  border-radius: 6px;
  margin-bottom: 3px;
}

.summary-header-info p {
  font-size: 11px;
  color: var(--text-secondary);
}

.btn-edit-step {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--border-grey);
  background: #FFFFFF;
  color: var(--primary-purple);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 12px;
}

.btn-edit-step:hover {
  background: var(--soft-purple);
}

.summary-divider {
  height: 1px;
  background: var(--border-grey);
  margin: 12px 0;
}

.summary-detail-row {
  margin-bottom: 8px;
  font-size: 12px;
  line-height: 1.4;
}

.detail-label {
  font-weight: 700;
  color: var(--text-primary);
  margin-right: 4px;
}

.detail-label i {
  color: var(--primary-purple);
  width: 14px;
  text-align: center;
}

.detail-value {
  color: var(--text-secondary);
}

.detail-bio {
  color: var(--text-secondary);
  font-style: italic;
  font-size: 11.5px;
  margin-top: 2px;
  padding-left: 18px;
}

.summary-photos-preview-strip {
  display: flex;
  gap: 6px;
  margin-top: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.summary-strip-thumb {
  width: 50px;
  height: 50px;
  border-radius: 6px;
  object-fit: cover;
  border: 1px solid var(--border-grey);
  flex-shrink: 0;
}

.review-assurance-box {
  background: #ECFDF5;
  border: 1px solid #A7F3D0;
  color: #065F46;
  border-radius: 10px;
  padding: 10px 12px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11.5px;
  line-height: 1.4;
}

.review-assurance-box i {
  color: #10B981;
  font-size: 14px;
  margin-top: 2px;
}


/* =========================================================
   DESIGN SYSTEM v2 — COMPONENTES REUTILIZÁVEIS
   (botões, campos, cartões e estados de interface)
   ========================================================= */

/* Foco acessível global */
:where(button, a, [role="button"], input:not(.home-search-input):not(.explore-search-input), select, textarea):focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 2px;
}

/* ---------- Botões ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  height: 44px;
  padding: 0 var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid transparent;
  font-size: var(--fs-base);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);
}
.btn:active { transform: scale(0.98); }
.btn-sm { height: 34px; padding: 0 var(--space-3); font-size: var(--fs-sm); border-radius: var(--radius-sm); }
.btn-block { width: 100%; }
.btn-primary { background: var(--color-brand); color: #fff; }
.btn-primary:hover { background: var(--color-brand-dark); }
.btn-secondary { background: var(--color-surface); color: var(--color-text); border-color: var(--color-border); }
.btn-secondary:hover { border-color: var(--color-border-strong); background: var(--color-surface-2); }
.btn-tonal { background: var(--color-brand-50); color: var(--color-brand-dark); }
.btn-tonal:hover { background: var(--color-brand-100); }
.btn-ghost { background: transparent; color: var(--color-brand); }
.btn-ghost:hover { background: var(--color-brand-50); }
.btn-danger { background: var(--color-danger); color: #fff; }
.btn:disabled,
.btn[aria-disabled="true"] {
  background: var(--color-disabled-bg);
  color: var(--color-disabled-text);
  border-color: transparent;
  cursor: not-allowed;
  transform: none;
}

/* ---------- Campos de formulário ---------- */
.field { display: flex; flex-direction: column; gap: 6px; }
.field-label { font-size: var(--fs-sm); font-weight: 600; color: var(--color-text); }
.field-input {
  height: 46px;
  padding: 0 var(--space-3);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  font-size: var(--fs-base);
  color: var(--color-text);
  transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
}
.field-input::placeholder { color: var(--color-text-2); }
.field-input:focus { outline: none; border-color: var(--color-brand); box-shadow: var(--shadow-focus); }
.field-input:disabled { background: var(--color-surface-2); color: var(--color-disabled-text); }
.field.has-error .field-input { border-color: var(--color-danger); }
.field-error { font-size: var(--fs-xs); color: var(--color-danger); font-weight: 500; }

/* ---------- Cartões ---------- */
.card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  box-shadow: var(--shadow-xs);
}
.card-interactive { cursor: pointer; transition: border-color var(--dur-fast), box-shadow var(--dur-base); }
.card-interactive:hover { border-color: var(--color-brand-100); box-shadow: var(--shadow-md); }

/* ---------- Estados: vazio / erro / sucesso ---------- */
.state-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-2);
  padding: var(--space-6) var(--space-4);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  border: 1px dashed var(--color-border-strong);
  grid-column: 1 / -1;
}
.state-block .state-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--icon-lg);
  background: var(--tone-slate-bg);
  color: var(--tone-slate-fg);
}
.state-block h6 { font-size: var(--fs-base); font-weight: 700; color: var(--color-text); }
.state-block p { font-size: var(--fs-sm); color: var(--color-text-2); line-height: var(--lh-normal); max-width: 260px; }
.state-block.is-error { border-style: solid; border-color: #F5C2C2; background: var(--color-danger-50); }
.state-block.is-error .state-icon { background: #fff; color: var(--color-danger); }
.state-block.is-success { border-style: solid; border-color: #B7E4DC; background: var(--color-success-50); }
.state-block.is-success .state-icon { background: #fff; color: var(--color-success); }

/* ---------- Carregamento (skeleton) ---------- */
.skeleton {
  position: relative;
  overflow: hidden;
  background: #EDF1F6;
  border-radius: var(--radius-sm);
}
.skeleton::after {
  content: '';
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.7) 50%, rgba(255, 255, 255, 0) 100%);
  animation: skeleton-shimmer 1.3s infinite;
}
@keyframes skeleton-shimmer { to { transform: translateX(100%); } }

.cat-skeleton {
  height: 96px;
  border-radius: var(--radius-md);
}

@media (prefers-reduced-motion: reduce) {
  .skeleton::after { animation: none; }
  * { scroll-behavior: auto !important; }
}

/* =========================================================
   AJUSTES DE COMPONENTES COMPARTILHADOS (menos roxo chapado)
   ========================================================= */

/* Card "Área do Profissional" → base navy com detalhe roxo */
.pro-area-card {
  background: var(--color-navy);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  gap: var(--space-3);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  box-shadow: var(--shadow-md);
}
.pro-area-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(120% 160% at 100% 0%, rgba(108, 43, 217, 0.5) 0%, rgba(108, 43, 217, 0) 55%);
}
.pro-card-content { gap: var(--space-3); min-width: 0; }
.pro-badge-icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #C4B5FD;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--icon-md);
}
.pro-card-content p { color: rgba(255, 255, 255, 0.78); line-height: 1.4; margin-top: 2px; }
.pro-access-btn {
  flex-shrink: 0;
  color: var(--color-navy);
  font-size: var(--fs-sm);
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.pro-access-btn i { color: var(--color-brand); font-size: 10px; }

/* Card de impulsionamento no painel → navy */
.ad-boost-card {
  background: var(--color-navy);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.ad-boost-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(120% 160% at 100% 0%, rgba(108, 43, 217, 0.5) 0%, rgba(108, 43, 217, 0) 55%);
}
.boost-btn { color: var(--color-navy); }

/* Botão primário de autenticação → roxo sólido, sem gradiente */
.btn-auth-primary {
  background: var(--color-brand);
  box-shadow: 0 2px 8px rgba(108, 43, 217, 0.18);
  transition: background var(--dur-fast) var(--ease-standard), transform var(--dur-fast) var(--ease-standard);
}
.btn-auth-primary:hover { opacity: 1; background: var(--color-brand-dark); }
.btn-auth-primary:disabled {
  opacity: 1;
  background: var(--color-disabled-bg);
  color: var(--color-disabled-text);
  box-shadow: none;
}
.btn-auth-primary.success-gradient {
  background: var(--color-success);
  box-shadow: 0 2px 8px rgba(15, 157, 138, 0.2);
}
.btn-auth-secondary { background: var(--color-surface-2); border: 1px solid var(--color-border); }

/* Avatar do perfil e localização */
.profile-avatar-big { background: var(--color-brand-50); color: var(--color-brand-dark); overflow: hidden; }
.user-loc { color: var(--color-text-2); font-weight: 500; }
.user-loc i { color: var(--color-brand); }

/* Toast em navy */
.toast { background: var(--color-navy); bottom: calc(var(--nav-h) + 24px); }

/* Preview header */
.preview-badge { color: #DDD0FB; }

/* =========================================================
   MODAL / TELA DE LISTA DE PROFISSIONAIS (RESULTADOS E CATEGORIAS)
   ========================================================= */
.pro-list-content {
  width: 100%;
  height: 100%;
  max-width: 480px;
  background: var(--bg-page);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 0;
  animation: slideInUp 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

.pro-list-header {
  background: var(--color-surface);
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
  z-index: 10;
}

.pro-list-header-info {
  flex: 1;
  min-width: 0;
}

.pro-list-header-info h4 {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pro-list-header-info span {
  font-size: 12px;
  color: var(--color-text-2);
}

.pro-list-count-badge {
  background: var(--color-brand-50);
  color: var(--color-brand-dark);
  font-size: 11.5px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 12px;
  flex-shrink: 0;
  border: 1px solid var(--color-brand-100);
}

.pro-list-filter-bar {
  background: var(--color-surface);
  padding: 8px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch;
}
.pro-list-filter-bar::-webkit-scrollbar {
  display: none !important;
}

.pro-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 20px;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-text);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.15s ease;
}

.pro-filter-chip.active {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: #FFFFFF;
  font-weight: 600;
}

.pro-list-scroll-body {
  flex: 1;
  overflow-y: auto;
  padding: 14px 16px 32px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch;
}
.pro-list-scroll-body::-webkit-scrollbar {
  display: none !important;
}

/* Card do Profissional na Listagem */
.pro-card-listing {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  padding: 14px;
  box-shadow: var(--shadow-xs);
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}

.pro-card-listing:hover {
  transform: translateY(-2px);
  border-color: var(--color-brand-100);
  box-shadow: var(--shadow-sm);
}

.pro-listing-top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.pro-listing-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: var(--color-brand-50);
  color: var(--color-brand-dark);
  border: 2px solid var(--color-brand-100);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 18px;
  overflow: hidden;
  flex-shrink: 0;
}

.pro-listing-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pro-listing-info {
  flex: 1;
  min-width: 0;
}

.pro-listing-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}

.pro-listing-name {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.2;
}

.pro-listing-specialty {
  font-size: 12.5px;
  color: var(--color-brand-dark);
  font-weight: 600;
  margin-bottom: 4px;
}

.pro-listing-meta-row {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--color-text-2);
}

.pro-listing-rating {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #D97706;
  font-weight: 700;
}

.pro-listing-bairro {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--color-text-2);
}

.pro-listing-headline {
  font-size: 12px;
  color: var(--color-text-2);
  line-height: 1.4;
  margin: 0;
}

.pro-listing-services-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.pro-service-pill {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  color: var(--color-text);
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.pro-service-pill strong {
  color: var(--color-brand);
}

.pro-listing-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 4px;
  border-top: 1px solid #F1F5F9;
}

.btn-pro-listing-primary {
  flex: 1;
  height: 38px;
  background: var(--color-brand);
  color: #FFFFFF;
  border: none;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  transition: background 0.15s ease;
}
.btn-pro-listing-primary:hover {
  background: var(--color-brand-dark);
}

.btn-pro-listing-chat {
  width: 38px;
  height: 38px;
  background: #ECFDF5;
  color: #059669;
  border: 1px solid #A7F3D0;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  cursor: pointer;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.btn-pro-listing-chat:hover {
  background: #D1FAE5;
}

/* Estado vazio na lista de profissionais */
.pro-list-empty-box {
  padding: 40px 20px;
  text-align: center;
  background: var(--color-surface);
  border-radius: 16px;
  border: 1px solid var(--color-border);
  margin-top: 10px;
}

.pro-list-empty-box i {
  font-size: 36px;
  color: var(--color-text-3);
  margin-bottom: 12px;
}

.pro-list-empty-box h5 {
  font-size: 15px;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 6px;
}

.pro-list-empty-box p {
  font-size: 12.5px;
  color: var(--color-text-2);
  line-height: 1.5;
  margin-bottom: 14px;
}

/* =========================================================
   PÁGINA EXPLORAR — LISTAGEM E CARDS COMPACTOS DE PROFISSIONAIS
   ========================================================= */

.explore-top-container {
  background: var(--color-surface);
  padding: 12px 16px 10px;
  border-bottom: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
  z-index: 10;
}

.explore-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.explore-title-wrap {
  flex: 1;
  min-width: 0;
}

.explore-page-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.2;
}

.explore-sub {
  font-size: 11.5px;
  color: var(--color-text-2);
}

.explore-search-box {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 10px;
  height: 40px;
  padding: 0 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
}

.explore-search-box:focus-within {
  border-color: var(--color-border-strong);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

.explore-search-icon {
  color: var(--color-text-3);
  font-size: 13px;
  flex-shrink: 0;
}

.explore-search-input {
  flex: 1;
  border: none !important;
  background: transparent;
  outline: none !important;
  box-shadow: none !important;
  font-size: 13px;
  font-family: inherit;
  font-weight: 500;
  color: var(--color-navy);
  min-width: 0;
}

.explore-search-input:focus,
.explore-search-input:focus-visible {
  outline: none !important;
  border: none !important;
  box-shadow: none !important;
}

.explore-search-input::placeholder {
  color: var(--color-text-3);
  font-weight: 400;
}

.explore-clear-btn {
  background: transparent;
  border: none;
  color: var(--color-text-3);
  font-size: 12px;
  cursor: pointer;
  padding: 2px 4px;
}
.explore-clear-btn:hover {
  color: var(--color-navy);
}

.explore-filters-row {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  padding: 2px 0 2px;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch;
}
.explore-filters-row::-webkit-scrollbar {
  display: none !important;
}

.explore-chip-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 18px;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--color-text-2);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all var(--dur-fast) var(--ease-standard);
}

.explore-chip-btn:hover {
  border-color: var(--color-brand-100);
  color: var(--color-brand);
}

.explore-chip-btn.active {
  background: var(--color-brand);
  border-color: var(--color-brand);
  color: #FFFFFF;
  font-weight: 600;
}
.explore-chip-btn.active i {
  color: #FFFFFF;
}

.explore-chip-bairro {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 16px;
  font-size: 11px;
  font-weight: 500;
  color: var(--color-text-2);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all var(--dur-fast) var(--ease-standard);
}

.explore-chip-bairro:hover {
  border-color: var(--color-navy);
  color: var(--color-navy);
}

.explore-chip-bairro.active {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: #FFFFFF;
  font-weight: 600;
}

.explore-results-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px 8px;
}

.explore-results-count {
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text-2);
}

.explore-sort-wrap {
  display: flex;
  align-items: center;
}

.explore-sort-select {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: 8px;
  font-size: 11.5px;
  color: var(--color-navy);
  font-weight: 500;
  padding: 4px 8px;
  cursor: pointer;
  outline: none;
}
.explore-sort-select:focus {
  border-color: var(--color-brand);
}

.compact-pros-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 16px 16px;
}

/* =========================================================
   BLOCO HORIZONTAL COMPACTO DO PROFISSIONAL (90–115px)
   ========================================================= */

.pro-compact-card {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 90px;
  max-height: 115px;
  padding: 12px 14px;
  background: #FFFFFF;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  cursor: pointer;
  user-select: none;
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
  transition: background var(--dur-fast) var(--ease-standard), 
              border-color var(--dur-fast) var(--ease-standard), 
              transform var(--dur-fast) var(--ease-standard);
  text-decoration: none;
  box-sizing: border-box;
}

.pro-compact-card:hover {
  background: #F8FAFC;
  border-color: var(--color-brand);
  transform: translateY(-1px);
}

.pro-compact-card:focus-visible {
  outline: none;
  border-color: var(--color-brand);
  box-shadow: var(--shadow-focus);
}

/* Foto do profissional (52–60 px) alinhada à esquerda */
.pro-compact-avatar {
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 50%;
  background: var(--color-brand-50);
  color: var(--color-brand);
  font-weight: 700;
  font-size: 17px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid var(--color-border);
  flex-shrink: 0;
}

.pro-compact-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Informações agrupadas no centro */
.pro-compact-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
}

/* 1. Nome do profissional em destaque */
.pro-compact-name-row {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
}

.pro-compact-name {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--color-navy);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 5. Selo de verificação verde (apenas se verificado) */
.pro-compact-verified {
  color: #0F9D8A;
  font-size: 12px;
  flex-shrink: 0;
}

/* 2. Categoria ou Especialidade em texto secundário */
.pro-compact-specialty {
  font-size: 12px;
  color: #4B5563;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

/* 3. Avaliação + 4. Localização */
.pro-compact-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: var(--color-text-2);
  margin-top: 3px;
}

.pro-compact-rating {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: var(--color-navy);
  font-weight: 700;
}

.pro-compact-rating i {
  color: #F59E0B;
  font-size: 10.5px;
}

.pro-rating-val {
  font-weight: 700;
}

.pro-reviews-cnt {
  color: #64748B;
  font-weight: 400;
  font-size: 11px;
}

.pro-compact-meta-dot {
  color: #CBD5E1;
  font-size: 11px;
}

.pro-compact-loc {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: #64748B;
  font-size: 11px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.pro-compact-loc i {
  color: #64748B;
  font-size: 10px;
}

/* Indicador discreto de navegação à direita */
.pro-compact-action {
  margin-left: 4px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pro-compact-chevron {
  color: #94A3B8;
  font-size: 12.5px;
  transition: transform var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);
}

.pro-compact-card:hover .pro-compact-chevron {
  color: var(--color-brand);
  transform: translateX(2px);
}

/* Estado vazio na listagem de profissionais */
.explore-empty-state {
  background: #FFFFFF;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 32px 16px;
  text-align: center;
  margin: 8px 0;
}

.explore-empty-state i {
  font-size: 32px;
  color: #94A3B8;
  margin-bottom: 8px;
}

.explore-empty-state h5 {
  font-size: 14px;
  font-weight: 700;
  color: var(--color-navy);
  margin-bottom: 4px;
}

.explore-empty-state p {
  font-size: 12px;
  color: var(--color-text-2);
  margin-bottom: 12px;
}

.btn-reset-filters {
  background: var(--color-brand-50);
  border: 1px solid var(--color-brand-100);
  color: var(--color-brand-dark);
  font-size: 12px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 8px;
  cursor: pointer;
}

/* =========================================================
   RESPONSIVIDADE — ANDROID / TELAS REAIS
   ========================================================= */

/* Em celulares reais, o app ocupa a tela inteira (sem moldura de preview) */
@media (max-width: 520px) {
  body { background: var(--color-bg); }
  .preview-header { display: none; }
  .viewport-wrapper { padding: 0; align-items: stretch; overflow: hidden; }
  .device-mockup,
  .device-mockup.full-width {
    width: 100%;
    max-width: none;
    height: 100vh;
    height: 100dvh;
    border-radius: 0;
    box-shadow: none;
  }
  .device-notch { display: none; }
  .toast { bottom: calc(var(--nav-h) + var(--safe-bottom) + 16px); }
}

/* PWA Modo Instalado (Standalone / Full App) */
@media (display-mode: standalone) {
  body { background: var(--color-bg); }
  .preview-header { display: none !important; }
  .viewport-wrapper { padding: 0 !important; align-items: stretch; overflow: hidden; }
  .device-mockup,
  .device-mockup.full-width {
    width: 100% !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .device-notch { display: none !important; }
}

.pwa-install-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pwa-install-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(126, 34, 206, 0.15);
}

/* Telas estreitas (ex.: Android 320–360px) */
@media (max-width: 360px) {
  .categories-grid-compact { gap: 8px; }
  .cat-item-compact { padding: 10px 2px 8px; }
  .cat-icon-circle { width: 40px; height: 40px; font-size: 18px; }
  .cat-label-text { font-size: 10.5px; }
  .pro-review-card { flex-basis: 252px; }
  .greeting-text { font-size: var(--fs-lg); }
  .slide-art { display: none; }
  .ad-slide-card { grid-template-columns: minmax(0, 1fr); }
  .nav-btn i { width: 44px; }
}

/* =========================================================
   NOVO FLUXO: PLANTÃO SOS EMERGÊNCIA & RADAR ESTILO 99
   ========================================================= */

/* 0. Botão Discreto de Emergência (Logo abaixo do menu de categorias) */
.sos-discreet-bar-wrap {
  padding: 6px 14px 10px;
  background: var(--color-surface);
  border-bottom: 1px solid var(--color-border);
}

.btn-sos-discreet {
  width: 100%;
  background: linear-gradient(135deg, #FEF2F2 0%, #FFFFFF 100%);
  border: 1px solid rgba(220, 38, 38, 0.25);
  border-radius: var(--radius-md);
  padding: 7px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(220, 38, 38, 0.06);
  transition: all var(--dur-fast) var(--ease-standard);
  text-align: left;
}

.btn-sos-discreet:hover,
.btn-sos-discreet:active {
  background: #FEE2E2;
  border-color: rgba(220, 38, 38, 0.45);
  box-shadow: 0 2px 6px rgba(220, 38, 38, 0.12);
  transform: translateY(-1px);
}

.sos-discreet-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.sos-discreet-pulse-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #FEE2E2;
  color: #DC2626;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.1);
}

.sos-discreet-text {
  display: flex;
  flex-direction: column;
}

.sos-discreet-title {
  font-size: 12.5px;
  font-weight: 800;
  color: #991B1B;
  line-height: 1.2;
}

.sos-discreet-sub {
  font-size: 10.5px;
  color: #DC2626;
  opacity: 0.85;
}

.sos-discreet-right {
  display: flex;
  align-items: center;
  gap: 6px;
}

.sos-discreet-badge {
  background: #FEE2E2;
  color: #B91C1C;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  padding: 3px 7px;
  border-radius: var(--radius-pill);
  border: 1px solid rgba(220, 38, 38, 0.2);
}

.sos-discreet-right i {
  font-size: 10.5px;
  color: #DC2626;
  opacity: 0.7;
}

/* 1. Banner Principal de Emergência SOS */
.sos-banner-card {
  position: relative;
  background: linear-gradient(145deg, #182230 0%, #0F172A 100%);
  border-radius: var(--radius-lg);
  padding: var(--space-4);
  color: #FFFFFF;
  box-shadow: 0 10px 25px rgba(220, 38, 38, 0.12), 0 4px 12px rgba(15, 23, 42, 0.25);
  border: 1px solid rgba(220, 38, 38, 0.25);
  overflow: hidden;
}

.sos-banner-glow {
  position: absolute;
  top: -40px;
  right: -40px;
  width: 130px;
  height: 130px;
  background: radial-gradient(circle, rgba(220, 38, 38, 0.35) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  filter: blur(10px);
}

.sos-banner-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-3);
  position: relative;
  z-index: 2;
}

.sos-live-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(220, 38, 38, 0.2);
  border: 1px solid rgba(220, 38, 38, 0.4);
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  font-weight: 700;
  color: #FCA5A5;
  letter-spacing: 0.3px;
}

.sos-dot-live {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #EF4444;
  box-shadow: 0 0 10px #EF4444;
  animation: radarBlip 1.5s infinite;
}

.sos-active-count {
  font-size: 11px;
  font-weight: 600;
  color: #94A3B8;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.sos-active-count i {
  color: #10B981;
}

.sos-banner-content {
  position: relative;
  z-index: 2;
  margin-bottom: var(--space-4);
}

.sos-banner-title {
  font-size: 17px;
  font-weight: 800;
  color: #FFFFFF;
  margin-bottom: 4px;
  line-height: 1.25;
}

.sos-banner-sub {
  font-size: 12px;
  line-height: 1.4;
  color: #CBD5E1;
  margin-bottom: var(--space-4);
}

.btn-sos-main-trigger {
  width: 100%;
  background: linear-gradient(135deg, #DC2626 0%, #B91C1C 100%);
  border: none;
  color: #FFFFFF;
  padding: 13px 16px;
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(220, 38, 38, 0.45);
  transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast);
}

.btn-sos-main-trigger:active {
  transform: scale(0.98);
  box-shadow: 0 2px 8px rgba(220, 38, 38, 0.4);
}

.sos-icon-pulse {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}

.sos-btn-label {
  flex: 1;
  text-align: center;
  padding: 0 8px;
}

.sos-btn-arrow {
  font-size: 12px;
  opacity: 0.8;
}

.sos-quick-categories-label {
  font-size: 11px;
  font-weight: 600;
  color: #94A3B8;
  margin-bottom: var(--space-2);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.sos-quick-categories-row {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  scrollbar-width: none;
}

.sos-quick-categories-row::-webkit-scrollbar {
  display: none;
}

.sos-chip-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #E2E8F0;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  font-size: 11.5px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  cursor: pointer;
  transition: all var(--dur-fast);
  flex-shrink: 0;
}

.sos-chip-btn:hover,
.sos-chip-btn:active {
  background: rgba(220, 38, 38, 0.25);
  border-color: rgba(220, 38, 38, 0.5);
  color: #FFFFFF;
}

.sos-chip-btn .chip-icon {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
}

.sos-chip-btn .chip-icon.yellow { background: #FEF3C7; color: #D97706; }
.sos-chip-btn .chip-icon.blue { background: #DBEAFE; color: #2563EB; }
.sos-chip-btn .chip-icon.orange { background: #FFEDD5; color: #EA580C; }
.sos-chip-btn .chip-icon.amber { background: #FEF9C3; color: #CA8A04; }
.sos-chip-btn .chip-icon.purple { background: #F3E8FF; color: #9333EA; }
.sos-chip-btn .chip-icon.slate { background: #F1F5F9; color: #475569; }
.sos-chip-btn .chip-icon.red { background: #FEE2E2; color: #DC2626; }

/* 2. Modal de Formulário de Emergência SOS */
.sos-request-modal-content {
  max-height: 88vh;
  border-top: 3px solid #DC2626;
}

.sos-modal-header {
  border-bottom: 1px solid var(--color-border);
}

.sos-header-text {
  text-align: center;
}

.sos-pill-mini {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #FEE2E2;
  color: #DC2626;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: var(--radius-pill);
  margin-bottom: 2px;
}

.sos-form-body {
  padding: var(--space-4);
  overflow-y: auto;
}

/* Busca e Seleção Específica no SOS */
.sos-search-hint-pill {
  font-size: 10px;
  font-weight: 800;
  color: #DC2626;
  background: #FEE2E2;
  padding: 2px 8px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.sos-search-box-wrap {
  position: relative;
  display: flex;
  align-items: center;
  background: #FFFFFF;
  border: 1.5px solid #CBD5E1;
  border-radius: 12px;
  padding: 3px 12px;
  margin-top: 4px;
  transition: all 0.2s ease;
}

.sos-search-box-wrap:focus-within {
  border-color: #DC2626;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12);
}

.sos-search-icon {
  color: #DC2626;
  font-size: 14px;
  margin-right: 8px;
  flex-shrink: 0;
}

.sos-search-input {
  border: none;
  background: transparent;
  width: 100%;
  font-size: 13px;
  color: #1E293B;
  outline: none;
  padding: 8px 0;
  font-family: inherit;
}

.sos-search-clear-btn {
  background: #F1F5F9;
  border: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  color: #64748B;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  flex-shrink: 0;
  margin-left: 6px;
  transition: background 0.15s ease;
}

.sos-search-clear-btn:hover {
  background: #E2E8F0;
  color: #0F172A;
}

/* Card de Profissional Específico Selecionado */
.sos-selected-pro-card {
  background: linear-gradient(135deg, #FEF2F2 0%, #FFFBEB 100%);
  border: 1.5px solid #F87171;
  border-radius: 14px;
  padding: 11px 13px;
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  box-shadow: 0 4px 14px rgba(220, 38, 38, 0.12);
  animation: modalScaleUp 0.2s ease;
}

.sos-sel-pro-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.sos-sel-avatar-wrap {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 2px solid #EF4444;
  overflow: hidden;
  flex-shrink: 0;
  background: #DC2626;
}

.sos-sel-avatar-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 18px;
  color: #FFFFFF;
  background: linear-gradient(135deg, #EF4444, #B91C1C);
}

.sos-sel-pro-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.sos-sel-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13.5px;
  font-weight: 800;
  color: #7F1D1D;
}

.sos-sel-name-row strong {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sos-sel-badge-direct {
  background: #DC2626;
  color: #FFFFFF;
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  flex-shrink: 0;
}

.sos-sel-specialty {
  font-size: 11.5px;
  font-weight: 700;
  color: #991B1B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sos-sel-loc {
  font-size: 10.5px;
  color: #64748B;
}

.sos-sel-remove-btn {
  background: #FFFFFF;
  border: 1px solid #FCA5A5;
  color: #DC2626;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s ease;
  flex-shrink: 0;
}

.sos-sel-remove-btn:hover {
  background: #FEE2E2;
}

/* Lista de Resultados da Busca */
.sos-search-results-list {
  margin-top: 10px;
  max-height: 260px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #E2E8F0;
  border-radius: 14px;
  background: #FFFFFF;
  padding: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}

.sos-results-group-title {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  color: #64748B;
  letter-spacing: 0.4px;
  padding: 6px 8px 4px;
  display: flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid #F1F5F9;
  margin-bottom: 6px;
}

.sos-search-pro-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid #F1F5F9;
  margin-bottom: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
  background: #FFFFFF;
}

.sos-search-pro-card:hover {
  background: #FEF2F2;
  border-color: #FECACA;
  transform: translateX(2px);
}

.sos-search-pro-left {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  flex: 1;
}

.sos-search-pro-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 1px solid #E2E8F0;
}

.sos-search-pro-avatar-fallback {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #7C3AED, #4F46E5);
  color: #FFFFFF;
  font-weight: 800;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sos-search-pro-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.sos-search-pro-name {
  font-size: 12.5px;
  font-weight: 800;
  color: #1E293B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sos-search-pro-spec {
  font-size: 11px;
  font-weight: 600;
  color: #DC2626;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sos-search-pro-meta {
  font-size: 10px;
  color: #64748B;
  display: flex;
  align-items: center;
  gap: 5px;
}

.sos-search-pro-action-btn {
  background: #DC2626;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: background 0.15s ease;
}

.sos-search-pro-action-btn:hover {
  background: #B91C1C;
}

.sos-search-cat-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid #F1F5F9;
  margin-bottom: 5px;
  cursor: pointer;
  transition: all 0.15s ease;
}

.sos-search-cat-item:hover {
  background: #FFFBEB;
  border-color: #FDE68A;
}

.sos-search-cat-left {
  display: flex;
  align-items: center;
  gap: 9px;
}

.sos-search-cat-icon {
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: #FEF2F2;
  color: #DC2626;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  flex-shrink: 0;
}

.sos-search-cat-title {
  font-size: 12.5px;
  font-weight: 700;
  color: #1E293B;
  display: block;
}

.sos-search-cat-desc {
  font-size: 10.5px;
  color: #64748B;
  display: block;
}

.sos-search-cat-btn {
  font-size: 11px;
  font-weight: 700;
  color: #DC2626;
  background: #FEE2E2;
  padding: 4px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

.sos-search-empty-state {
  padding: 16px;
  text-align: center;
  color: #64748B;
  font-size: 12px;
}

.sos-search-empty-state i {
  font-size: 24px;
  color: #CBD5E1;
  margin-bottom: 6px;
  display: block;
}

.sos-quick-label {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  color: #64748B;
  margin-top: 12px;
  margin-bottom: 6px;
}

.sos-pro-chips-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 6px;
}

.sos-choice-chip {
  background: var(--color-surface-2);
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
  color: var(--color-text);
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all var(--dur-fast);
  text-align: left;
}

.sos-choice-chip i {
  color: #DC2626;
  font-size: 14px;
  width: 18px;
  text-align: center;
}

.sos-choice-chip.active {
  background: #FEF2F2;
  border-color: #DC2626;
  color: #991B1B;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.2);
}

.sos-trust-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #F8FAFC;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 10px 12px;
  font-size: 11px;
  color: var(--color-text-2);
  line-height: 1.35;
  margin: var(--space-4) 0;
}

.sos-trust-badge i {
  color: #10B981;
  font-size: 16px;
  flex-shrink: 0;
}

.btn-sos-disparar {
  background: linear-gradient(135deg, #DC2626 0%, #991B1B 100%) !important;
  box-shadow: 0 6px 18px rgba(220, 38, 38, 0.4) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.3px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* 3. TELA ESTILO 99: MAPA COM PROFISSIONAIS ONLINE & RADAR SOS */
.sos-radar-overlay {
  z-index: 100 !important;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(4px);
}

.sos-radar-content {
  width: 100%;
  height: 100%;
  max-height: 100%;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
  background: #0F172A;
  padding: 0;
  margin: 0;
}

.radar-top-bar {
  position: absolute;
  top: 14px;
  left: 14px;
  right: 14px;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}

.radar-top-bar button {
  pointer-events: auto;
}

.radar-top-btn {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  transition: transform var(--dur-fast);
}

.radar-top-btn:active {
  transform: scale(0.95);
}

.radar-header-pill {
  background: rgba(15, 23, 42, 0.9);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #F8FAFC;
  padding: 7px 14px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 7px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.radar-live-blip {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #EF4444;
  box-shadow: 0 0 8px #EF4444;
  animation: radarBlip 1.2s infinite;
}

/* Viewport do Mapa Interativo */
.radar-map-viewport {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60%;
  overflow: hidden;
  background: #0F172A;
}

.radar-map-svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Anéis do Sonar Radar (Animação contínua) */
.radar-sonar-ring {
  transform-origin: 200px 200px;
  animation: sonarWave 3s infinite linear;
}

.radar-sonar-ring.ring-1 { animation-delay: 0s; }
.radar-sonar-ring.ring-2 { animation-delay: 0.75s; }
.radar-sonar-ring.ring-3 { animation-delay: 1.5s; }
.radar-sonar-ring.ring-4 { animation-delay: 2.25s; }

/* Pin do Usuário no Centro */
.radar-user-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 10;
  pointer-events: none;
}

.user-pin-pulse {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(108, 43, 217, 0.4);
  transform: translate(-50%, -50%);
  animation: sonarPulse 1.8s infinite ease-out;
}

.user-pin-core {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, #6C2BD9 0%, #4C1D95 100%);
  border: 2.5px solid #FFFFFF;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  box-shadow: 0 4px 12px rgba(108, 43, 217, 0.5);
  position: relative;
  z-index: 2;
}

.user-pin-label {
  margin-top: 4px;
  background: rgba(15, 23, 42, 0.9);
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  white-space: nowrap;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

/* Layer de Pins dos Profissionais de Plantão */
.radar-pro-pins-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.radar-pro-marker {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: auto;
  cursor: pointer;
  animation: markerBob 2.5s infinite ease-in-out;
}

.pro-marker-bubble {
  background: #182230;
  border: 2px solid #10B981;
  border-radius: 20px;
  padding: 3px 8px;
  display: flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4), 0 0 10px rgba(16, 185, 129, 0.3);
}

.pro-marker-icon {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #10B981;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
}

.pro-marker-name {
  color: #FFFFFF;
  font-size: 10.5px;
  font-weight: 700;
  white-space: nowrap;
}

.pro-marker-arrow {
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 5px solid #10B981;
}

/* Bottom Sheet deslizante estilo 99/Uber */
.radar-bottom-sheet {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 44%;
  background: #FFFFFF;
  border-radius: 24px 24px 0 0;
  padding: var(--space-4) var(--space-4) var(--space-5);
  box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 20;
}

.radar-box-state {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
}

.radar-sheet-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--space-2);
}

.radar-category-pill {
  background: #FEF2F2;
  border: 1px solid #FECACA;
  color: #DC2626;
  padding: 4px 10px;
  border-radius: var(--radius-pill);
  font-size: 11.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.radar-timer-pill {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  color: var(--color-text-2);
  padding: 4px 9px;
  border-radius: var(--radius-pill);
  font-size: 11.5px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.radar-sheet-title {
  font-size: 16px;
  font-weight: 800;
  color: var(--color-navy);
  margin-bottom: 2px;
}

.radar-sheet-subtitle {
  font-size: 12px;
  color: var(--color-text-2);
  line-height: 1.4;
  margin-bottom: var(--space-3);
}

.radar-sheet-subtitle strong {
  color: var(--color-brand);
}

/* Barra de progresso animada */
.radar-progress-track {
  width: 100%;
  height: 5px;
  background: #F1F5F9;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: var(--space-3);
}

.radar-progress-bar {
  height: 100%;
  width: 30%;
  background: linear-gradient(90deg, #DC2626, #F59E0B, #10B981);
  border-radius: 4px;
  animation: progressSlide 2s infinite ease-in-out;
}

.radar-online-badge-row {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: var(--color-text-2);
  font-weight: 600;
  margin-bottom: var(--space-3);
}

.online-indicator-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 6px #10B981;
}

.btn-cancel-radar {
  width: 100%;
  background: #F8FAFC;
  border: 1px solid var(--color-border-strong);
  color: var(--color-text-2);
  padding: 10px;
  border-radius: var(--radius-md);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all var(--dur-fast);
}

.btn-cancel-radar:hover,
.btn-cancel-radar:active {
  background: #FEE2E2;
  color: #DC2626;
  border-color: #FECACA;
}

/* Estado 2: Chamado Aceito (Estilo 99/Uber) */
.radar-accepted-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: var(--space-3);
}

.radar-accepted-check-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #10B981;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  box-shadow: 0 4px 10px rgba(16, 185, 129, 0.35);
  flex-shrink: 0;
}

.radar-accepted-title {
  font-size: 16px;
  font-weight: 800;
  color: #065F46;
  margin: 0;
}

.radar-accepted-sub {
  font-size: 11.5px;
  color: var(--color-text-2);
}

.accepted-pro-profile-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #F8FAFC;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  margin-bottom: var(--space-3);
}

.accepted-pro-avatar {
  position: relative;
  width: 50px;
  height: 50px;
  flex-shrink: 0;
}

.accepted-pro-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--color-brand);
}

.accepted-online-tag {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #10B981;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  border: 1.5px solid #FFFFFF;
}

.accepted-pro-details {
  flex: 1;
  min-width: 0;
}

.accepted-pro-name-badge {
  display: flex;
  align-items: center;
  gap: 5px;
}

.accepted-pro-name-badge h4 {
  font-size: 13.5px;
  font-weight: 800;
  color: var(--color-navy);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.accepted-verified-icon {
  color: var(--color-brand);
  font-size: 12px;
  flex-shrink: 0;
}

.accepted-pro-specialty-text {
  font-size: 11.5px;
  color: var(--color-text-2);
  margin: 1px 0 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.accepted-pro-stats {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
}

.stat-star {
  color: #B45309;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.stat-star i {
  color: #F59E0B;
}

.stat-sep {
  color: var(--color-border-strong);
}

.stat-eta {
  color: #065F46;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.accepted-actions-row {
  display: flex;
  gap: 8px;
}

.btn-open-chat-negotiate {
  flex: 1;
  background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
  color: #FFFFFF;
  border: none;
  padding: 12px 14px;
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(108, 43, 217, 0.35);
  transition: transform var(--dur-fast);
}

.btn-open-chat-negotiate:active {
  transform: scale(0.98);
}

.btn-open-whatsapp-direct {
  width: 46px;
  background: #25D366;
  color: #FFFFFF;
  border: none;
  border-radius: var(--radius-md);
  font-size: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(37, 211, 102, 0.35);
  transition: transform var(--dur-fast);
}

.btn-open-whatsapp-direct:active {
  transform: scale(0.95);
}

/* 4. Switch / Checkbox de Disponibilidade do Profissional */
.emergency-pro-switch-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #FEF2F2;
  border: 1.5px solid #FECACA;
  border-radius: var(--radius-md);
  padding: 12px;
  margin-top: 14px;
}

.emergency-switch-info {
  flex: 1;
}

.emergency-switch-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 9.5px;
  font-weight: 800;
  text-transform: uppercase;
  color: #DC2626;
  background: #FEE2E2;
  padding: 2px 6px;
  border-radius: 4px;
  margin-bottom: 2px;
}

.emergency-switch-title {
  font-size: 13px;
  font-weight: 700;
  color: #991B1B;
  display: block;
}

.emergency-switch-desc {
  font-size: 10.5px;
  color: #7F1D1D;
  line-height: 1.35;
  margin-top: 2px;
}

/* Toggle Switch estilizado */
.custom-switch-label {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}

.custom-switch-label input {
  opacity: 0;
  width: 0;
  height: 0;
}

.custom-switch-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #CBD5E1;
  transition: .3s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 24px;
}

.custom-switch-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: .3s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}

.custom-switch-label input:checked + .custom-switch-slider {
  background-color: #DC2626;
}

.custom-switch-label input:checked + .custom-switch-slider:before {
  transform: translateX(20px);
}

/* Animações Keyframes */
@keyframes radarBlip {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}

@keyframes sonarWave {
  0% { transform: scale(0.7); opacity: 0.8; }
  100% { transform: scale(1.5); opacity: 0; }
}

@keyframes sonarPulse {
  0% { transform: translate(-50%, -50%) scale(0.6); opacity: 0.8; }
  100% { transform: translate(-50%, -50%) scale(1.6); opacity: 0; }
}

@keyframes markerBob {
  0%, 100% { transform: translate(-50%, -50%) translateY(0); }
  50% { transform: translate(-50%, -50%) translateY(-6px); }
}

@keyframes progressSlide {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(100%); }
  100% { transform: translateX(300%); }
}

/* ==============================================================================
   TODAS AS CATEGORIAS — MODAL DE OPÇÕES & FILTRO DINÂMICO DE PROFISSIONAIS
   ============================================================================== */

.explore-all-cats-btn {
  background: #F1F5F9;
  border: 1.5px solid #CBD5E1;
  color: var(--color-navy);
  font-weight: 700;
  gap: 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.explore-all-cats-btn:hover {
  background: #E2E8F0;
  border-color: var(--color-brand);
  color: var(--color-brand);
}

.explore-all-cats-btn.active {
  background: var(--color-brand);
  border-color: var(--color-brand);
  color: #FFFFFF;
}

.explore-all-cats-btn.active .chip-dropdown-arrow {
  color: #FFFFFF;
}

.chip-dropdown-arrow {
  font-size: 9px;
  margin-left: 2px;
  transition: transform 0.2s ease;
}

/* Indicador de Filtro de Categoria Ativo nos Resultados */
.explore-results-info-group {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.active-category-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F5F3FF;
  border: 1px solid var(--color-brand, #7C3AED);
  color: var(--color-brand, #7C3AED);
  padding: 3px 8px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  user-select: none;
}

.active-category-pill:hover {
  background: #EDE9FE;
  transform: translateY(-1px);
}

.active-category-pill i {
  font-size: 10px;
  opacity: 0.8;
}

/* Modal Content: Todas as Categorias */
.all-cats-modal-content {
  background: #FFFFFF;
  width: 100%;
  max-width: 480px;
  border-radius: 22px 22px 0 0;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 -8px 32px rgba(15, 23, 42, 0.2);
  animation: slideUpAllCats 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes slideUpAllCats {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

.all-cats-header {
  padding: 16px 18px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #F1F5F9;
  background: #FFFFFF;
}

.all-cats-header-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.all-cats-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.all-cats-title-row h4 {
  font-size: 16px;
  font-weight: 800;
  color: #0F172A;
  margin: 0;
}

.all-cats-title-row i {
  color: var(--color-brand, #7C3AED);
  font-size: 17px;
}

.all-cats-header-info span {
  font-size: 11.5px;
  color: #64748B;
}

.all-cats-search-wrap {
  padding: 10px 18px;
  background: #FAF9FC;
  border-bottom: 1px solid #F1F5F9;
  position: relative;
  display: flex;
  align-items: center;
}

.all-cats-search-wrap i.fa-magnifying-glass {
  position: absolute;
  left: 30px;
  color: #94A3B8;
  font-size: 13px;
  pointer-events: none;
}

.all-cats-search-input {
  width: 100%;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 9px 36px 9px 34px;
  font-size: 12.5px;
  color: #1E293B;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.all-cats-search-input:focus {
  border-color: var(--color-brand, #7C3AED);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.12);
}

.all-cats-clear-btn {
  position: absolute;
  right: 28px;
  background: #F1F5F9;
  border: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  color: #64748B;
  font-size: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.all-cats-scroll-body {
  padding: 14px 18px 24px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Card Especial: Todos os Profissionais */
.all-cat-item-special {
  background: linear-gradient(135deg, #FAF5FF, #F3E8FF);
  border: 1.5px solid #DDD6FE;
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  transition: all 0.2s ease;
}

.all-cat-item-special:hover {
  border-color: var(--color-brand, #7C3AED);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(124, 58, 237, 0.12);
}

.all-cat-item-special.active {
  background: linear-gradient(135deg, #EDE9FE, #DDD6FE);
  border-color: var(--color-brand, #7C3AED);
  box-shadow: 0 0 0 2px var(--color-brand, #7C3AED);
}

.all-cat-special-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.all-cat-special-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--color-brand, #7C3AED);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
}

.all-cat-special-texts h5 {
  font-size: 13.5px;
  font-weight: 700;
  color: #1E293B;
  margin: 0 0 2px;
}

.all-cat-special-texts span {
  font-size: 11px;
  color: #64748B;
}

/* Divisor de Seção no Modal */
.all-cats-section-label {
  font-size: 10.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #94A3B8;
  margin: 6px 2px 2px;
}

/* Grid de Categorias Individuais */
.all-cats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.all-cat-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 14px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  transition: all 0.18s ease;
  position: relative;
}

.all-cat-card:hover {
  border-color: #CBD5E1;
  background: #FAF9FC;
  transform: translateY(-1px);
}

.all-cat-card.active {
  border-color: var(--color-brand, #7C3AED);
  background: #FDF4FF;
  box-shadow: 0 0 0 1.5px var(--color-brand, #7C3AED);
}

.all-cat-icon-box {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
}

.all-cat-texts {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.all-cat-name {
  font-size: 12.5px;
  font-weight: 700;
  color: #1E293B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.all-cat-card.active .all-cat-name {
  color: var(--color-brand, #7C3AED);
}

.all-cat-count {
  font-size: 10.5px;
  color: #64748B;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.all-cat-card.active .all-cat-count {
  color: #6D28D9;
  font-weight: 600;
}

.all-cat-active-check {
  color: var(--color-brand, #7C3AED);
  font-size: 12px;
  flex-shrink: 0;
}

/* ==============================================================================
   MODAL: ALERTA DE CHAMADO DE EMERGÊNCIA 24h PARA O PROFISSIONAL
   ============================================================================== */

.pro-sos-incoming-overlay {
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(6px);
  padding: 16px;
  display: none;
  align-items: center;
  justify-content: center;
}

.pro-sos-incoming-overlay.show {
  display: flex !important;
}

.pro-sos-incoming-card {
  background: #FFFFFF;
  width: 100%;
  max-width: 440px;
  border-radius: 20px;
  border: 2px solid #EF4444;
  box-shadow: 0 12px 40px rgba(239, 68, 68, 0.25), 0 4px 16px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: popInAlert 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes popInAlert {
  from { transform: scale(0.92); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}

.pro-sos-header {
  padding: 16px 18px 12px;
  background: linear-gradient(135deg, #FEF2F2, #FFF1F2);
  border-bottom: 1px solid #FEE2E2;
  display: flex;
  align-items: center;
  gap: 14px;
}

.pro-sos-siren-box {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: #EF4444;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  position: relative;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(239, 68, 68, 0.4);
}

.pro-sos-pulse-ring {
  position: absolute;
  inset: -4px;
  border-radius: 18px;
  border: 2px solid rgba(239, 68, 68, 0.6);
  animation: pulseRingAlert 1.4s infinite ease-out;
}

@keyframes pulseRingAlert {
  0% { transform: scale(0.95); opacity: 1; }
  100% { transform: scale(1.3); opacity: 0; }
}

.pro-sos-title-group h3 {
  font-size: 16px;
  font-weight: 800;
  color: #991B1B;
  margin: 3px 0 0;
}

.pro-sos-badge-urgent {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  color: #DC2626;
  background: #FEE2E2;
  padding: 2px 7px;
  border-radius: 10px;
  letter-spacing: 0.3px;
}

.pro-sos-blip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #DC2626;
  animation: pulseDot 1s infinite;
}

/* Barra de Timer */
.pro-sos-timer-wrap {
  padding: 8px 18px 10px;
  background: #FFF5F5;
  border-bottom: 1px solid #FEE2E2;
}

.pro-sos-timer-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11.5px;
  color: #7F1D1D;
  margin-bottom: 5px;
}

.pro-sos-timer-info strong {
  font-size: 13px;
  color: #DC2626;
  font-weight: 800;
}

.pro-sos-progress-bar {
  width: 100%;
  height: 6px;
  background: #FEE2E2;
  border-radius: 4px;
  overflow: hidden;
}

.pro-sos-progress-fill {
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, #10B981, #F59E0B, #EF4444);
  border-radius: 4px;
  transition: width 1s linear;
}

/* Corpo dos detalhes */
.pro-sos-body {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pro-sos-info-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.pro-sos-info-item {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 8px 12px;
}

.pro-sos-label {
  font-size: 10.5px;
  color: #64748B;
  text-transform: uppercase;
  font-weight: 700;
  display: block;
  margin-bottom: 3px;
}

.pro-sos-val-highlight {
  font-size: 13px;
  font-weight: 800;
  color: #7C3AED;
  display: flex;
  align-items: center;
  gap: 6px;
}

.pro-sos-val {
  font-size: 12.5px;
  font-weight: 700;
  color: #1E293B;
  display: flex;
  align-items: center;
  gap: 6px;
}

.pro-sos-problem-card {
  background: #FEF2F2;
  border: 1.5px solid #FECACA;
  border-radius: 12px;
  padding: 12px;
}

.pro-sos-problem-label {
  font-size: 11px;
  font-weight: 800;
  color: #991B1B;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.pro-sos-problem-text {
  font-size: 12.5px;
  color: #7F1D1D;
  line-height: 1.4;
  margin: 0 0 10px;
  font-weight: 500;
}

.pro-sos-client-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #FEE2E2;
  padding-top: 8px;
  font-size: 11.5px;
  color: #475569;
}

.pro-sos-client-meta strong {
  color: #1E293B;
}

.pro-sos-fee-hint {
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 12px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.pro-fee-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pro-fee-left i {
  font-size: 18px;
  color: #16A34A;
}

.fee-title {
  font-size: 12px;
  font-weight: 700;
  color: #166534;
  display: block;
}

.fee-sub {
  font-size: 10px;
  color: #15803D;
  display: block;
}

.fee-amount {
  font-size: 13.5px;
  font-weight: 800;
  color: #15803D;
  white-space: nowrap;
}

/* Footer com Botões de Ação */
.pro-sos-footer-actions {
  padding: 14px 18px 18px;
  border-top: 1px solid #F1F5F9;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #FFFFFF;
}

.btn-pro-reject-sos {
  flex: 1;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  color: #64748B;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s ease;
}

.btn-pro-reject-sos:hover {
  background: #FEE2E2;
  border-color: #FCA5A5;
  color: #DC2626;
}

.btn-pro-accept-sos {
  flex: 2;
  background: linear-gradient(135deg, #10B981, #059669);
  color: #FFFFFF;
  border: none;
  border-radius: 12px;
  padding: 12px 16px;
  font-size: 13.5px;
  font-weight: 800;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 14px rgba(16, 185, 129, 0.35);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.btn-pro-accept-sos:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(16, 185, 129, 0.45);
}

.btn-pro-accept-sos:active {
  transform: scale(0.98);
}

/* =========================================================
   ESTILOS DE COMPARTILHAMENTO VIRAL E CARTÃO DIGITAL PRO
   ========================================================= */

#share-pro-modal-overlay.active,
#post-review-celebration-modal.active {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px 12px !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

@keyframes modalSlideUpCenter {
  0% {
    transform: translateY(100%) scale(0.92);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

.share-modal-box {
  max-width: 440px;
  width: 100%;
  max-height: 86vh;
  height: auto;
  border-radius: 24px;
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: 0 25px 60px -12px rgba(15, 23, 42, 0.4);
  display: flex;
  flex-direction: column;
  animation: modalSlideUpCenter 0.38s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  margin: auto;
  position: relative;
}

.share-modal-box .modal-header {
  flex-shrink: 0;
  background: #FFFFFF;
  padding: 14px 18px;
  border-bottom: 1px solid #F1F5F9;
  z-index: 10;
}

.share-modal-box .modal-body {
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  padding: 16px 18px 24px !important;
  overscroll-behavior: contain;
}

.share-modal-box .modal-body::-webkit-scrollbar {
  width: 5px;
}
.share-modal-box .modal-body::-webkit-scrollbar-track {
  background: #F8FAFC;
}
.share-modal-box .modal-body::-webkit-scrollbar-thumb {
  background: #CBD5E1;
  border-radius: 999px;
}
.share-modal-box .modal-body::-webkit-scrollbar-thumb:hover {
  background: #94A3B8;
}

.share-header-icon-box {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: #F3E8FF;
  color: #7C3AED;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

.share-context-banner {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 14px;
  font-size: 11.5px;
  color: #475569;
  line-height: 1.45;
}

.share-context-banner i {
  color: #7C3AED;
  font-size: 14px;
  margin-top: 2px;
  flex-shrink: 0;
}

/* Cartão Digital de Apresentação */
.digital-pro-card-preview {
  background: linear-gradient(135deg, #1E1B4B 0%, #312E81 50%, #4338CA 100%);
  border-radius: 16px;
  padding: 16px;
  color: #FFFFFF;
  margin-bottom: 16px;
  box-shadow: 0 10px 25px rgba(67, 56, 202, 0.28);
  position: relative;
  overflow: hidden;
}

.digital-pro-card-preview::after {
  content: '';
  position: absolute;
  top: -30px;
  right: -30px;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(167, 139, 250, 0.25) 0%, transparent 70%);
  pointer-events: none;
}

.digital-card-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.digital-card-avatar-wrap {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: 2.5px solid #A78BFA;
  overflow: hidden;
  flex-shrink: 0;
  background: #1E293B;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}

.digital-card-avatar-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 24px;
  color: #FFFFFF;
  background: linear-gradient(135deg, #7C3AED, #4F46E5);
}

.digital-card-pro-info {
  flex: 1;
  min-width: 0;
}

.digital-pro-name-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 800;
  color: #FFFFFF;
}

.digital-pro-name-row strong {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.digital-verified-check {
  color: #38BDF8;
  font-size: 13px;
  flex-shrink: 0;
}

.digital-badges-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 3px 0 5px;
  flex-wrap: wrap;
}

.digital-chip-specialty {
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.25);
  backdrop-filter: blur(4px);
  color: #F1F5F9;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 6px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.digital-chip-24h {
  background: linear-gradient(135deg, #EF4444, #DC2626);
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.digital-meta-line {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #CBD5E1;
}

.digital-rating-stars {
  color: #FCD34D;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.digital-rating-stars strong {
  color: #FFFFFF;
}

.digital-dot {
  opacity: 0.6;
}

.digital-loc {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.digital-card-badge-parauapebas {
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 8px;
  font-size: 10.5px;
  font-weight: 700;
  color: #A5B4FC;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Botão Principal: WhatsApp (Alta conversão) */
.btn-share-whatsapp {
  width: 100%;
  background: linear-gradient(135deg, #25D366, #128C7E);
  color: #FFFFFF;
  border: none;
  border-radius: 14px;
  padding: 13px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(37, 211, 102, 0.35);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  margin-bottom: 14px;
  text-align: left;
}

.btn-share-whatsapp i {
  font-size: 28px;
  flex-shrink: 0;
}

.btn-share-texts {
  display: flex;
  flex-direction: column;
}

.btn-share-title {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.btn-share-sub {
  font-size: 11px;
  opacity: 0.9;
  font-weight: 500;
}

.btn-share-whatsapp:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(37, 211, 102, 0.45);
}

.btn-share-whatsapp:active {
  transform: scale(0.98);
}

/* Grupo de Copiar Link */
.share-link-group {
  margin-bottom: 12px;
}

.share-link-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  color: #64748B;
  margin-bottom: 5px;
  letter-spacing: 0.3px;
}

.share-link-input-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  border-radius: 10px;
  padding: 4px 4px 4px 10px;
}

.share-link-input-wrap input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 12px;
  color: #334155;
  outline: none;
  font-family: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.btn-copy-link {
  background: #7C3AED;
  color: #FFFFFF;
  border: none;
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.btn-copy-link:hover {
  background: #6D28D9;
}

.btn-copy-link.copied {
  background: #10B981;
}

/* Seção QR Code */
.share-qrcode-section {
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  overflow: hidden;
  margin-top: 10px;
}

.btn-toggle-qrcode {
  width: 100%;
  background: #F8FAFC;
  border: none;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 700;
  color: #475569;
  cursor: pointer;
  transition: background 0.15s ease;
}

.btn-toggle-qrcode:hover {
  background: #F1F5F9;
  color: #1E293B;
}

.btn-toggle-qrcode i.fa-qrcode {
  color: #7C3AED;
  font-size: 14px;
}

.share-qrcode-body {
  padding: 14px;
  text-align: center;
  background: #FFFFFF;
  border-top: 1px solid #E2E8F0;
}

.qrcode-wrapper {
  background: #FFFFFF;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #E2E8F0;
  display: inline-block;
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
  margin-bottom: 10px;
}

.qrcode-wrapper img {
  width: 150px;
  height: 150px;
  display: block;
}

.qrcode-tip {
  font-size: 11px;
  color: #64748B;
  line-height: 1.45;
  margin-bottom: 10px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  text-align: left;
  background: #FFFBEB;
  border: 1px solid #FDE68A;
  border-radius: 8px;
  padding: 8px 10px;
}

.qrcode-tip i {
  color: #D97706;
  font-size: 13px;
  margin-top: 2px;
  flex-shrink: 0;
}

.btn-download-qrcode {
  width: 100%;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  color: #334155;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s ease;
}

.btn-download-qrcode:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.btn-share-more-options {
  background: transparent;
  border: none;
  font-size: 11.5px;
  font-weight: 600;
  color: #7C3AED;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  border-radius: 6px;
}

.btn-share-more-options:hover {
  text-decoration: underline;
}

/* =========================================================
   MODAL: CELEBRAÇÃO PÓS-AVALIAÇÃO (VIRAL)
   ========================================================= */

.celebration-modal-box {
  max-width: 400px;
  width: 100%;
  max-height: 86vh;
  height: auto;
  border-radius: 24px;
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: 0 25px 60px -12px rgba(15, 23, 42, 0.4);
  display: flex;
  flex-direction: column;
  animation: modalSlideUpCenter 0.38s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  margin: auto;
  position: relative;
}

.celebration-modal-box .celebration-hero-art {
  flex-shrink: 0;
}

.celebration-modal-box .modal-body {
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  overscroll-behavior: contain;
}

.celebration-hero-art {
  background: linear-gradient(135deg, #FDE047 0%, #F59E0B 50%, #D97706 100%);
  padding: 24px 18px 20px;
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.celeb-sparkle-circle {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #FFFFFF;
  color: #D97706;
  font-size: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 6px 16px rgba(180, 83, 9, 0.3);
  animation: heartPop 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.celeb-badge-pill {
  background: rgba(255, 255, 255, 0.92);
  color: #92400E;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 12px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.celebration-title {
  margin: 16px 0 6px;
  font-size: 16px;
  font-weight: 800;
  color: #0F172A;
  line-height: 1.3;
}

.celebration-sub {
  font-size: 12px;
  color: #64748B;
  line-height: 1.5;
  margin-bottom: 14px;
}

.celeb-review-card-snippet {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 16px;
}

.celeb-stars-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #F59E0B;
  font-size: 16px;
  margin-bottom: 6px;
}

.celeb-quote-text {
  font-size: 12px;
  font-style: italic;
  color: #334155;
  margin: 0 0 4px;
  line-height: 1.4;
}

.celeb-quote-author {
  font-size: 10px;
  font-weight: 700;
  color: #10B981;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.celebration-actions-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.btn-celebration-whatsapp {
  width: 100%;
  background: linear-gradient(135deg, #25D366, #128C7E);
  color: #FFFFFF;
  border: none;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 14px rgba(37, 211, 102, 0.35);
  transition: all 0.2s ease;
}

.btn-celebration-whatsapp:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(37, 211, 102, 0.45);
}

.btn-celebration-whatsapp:active {
  transform: scale(0.98);
}

.btn-celebration-copy {
  width: 100%;
  background: #F8FAFC;
  border: 1px solid #CBD5E1;
  color: #334155;
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s ease;
}

.btn-celebration-copy:hover {
  background: #F1F5F9;
  color: #0F172A;
}

.btn-celebration-dismiss {
  background: transparent;
  border: none;
  color: #94A3B8;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  padding: 6px 12px;
  border-radius: 6px;
}

.btn-celebration-dismiss:hover {
  color: #64748B;
}

/* ==============================================================================
   ESTILOS DE STATUS DO BANCO SUPABASE & HINTS DE LOGIN
   ============================================================================== */
.db-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #F1F5F9;
  border: 1px solid #E2E8F0;
  color: #475569;
  font-size: 11.5px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: -0.2px;
  transition: all 0.25s ease;
}

.db-status-pill .status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #CBD5E1;
  display: inline-block;
  transition: all 0.25s ease;
}

.db-status-pill.online {
  background: #ECFDF5;
  border-color: #A7F3D0;
  color: #065F46;
}

.db-status-pill.online .status-dot {
  background: #10B981;
  box-shadow: 0 0 6px rgba(16, 185, 129, 0.6);
  animation: pulseStatus 2s infinite ease-in-out;
}

@keyframes pulseStatus {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.3); opacity: 0.75; }
}

/* =========================================================
   SHOWCASE ANTES & DEPOIS: VITRINE, PUBLICAÇÃO & VISUALIZADOR
   ========================================================= */

/* Card Discreto do Proprietário na Vitrine */
.pro-showcase-action-card {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 10px 14px;
  margin-top: 4px;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
}

.pro-showcase-action-card:hover {
  background: #FDFCFE;
  border-color: #D1D5DB;
}

.pro-showcase-card-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}

.pro-showcase-card-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #F5F3FF;
  color: #7C3AED;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
}

.pro-showcase-card-texts {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}

.pro-showcase-title-row {
  display: flex;
  align-items: center;
  gap: 7px;
}

.pro-showcase-card-title {
  font-size: 14px;
  font-weight: 700;
  color: #111827;
  line-height: 1.2;
}

.badge-trampou-pro {
  display: inline-flex;
  align-items: center;
  gap: 3.5px;
  background: linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
  color: #FFFFFF;
  font-size: 9.5px;
  font-weight: 800;
  padding: 1.5px 6px;
  border-radius: 6px;
  letter-spacing: 0.4px;
  box-shadow: 0 1px 3px rgba(245, 158, 11, 0.25);
}

.badge-trampou-pro i {
  font-size: 8.5px;
}

.pro-showcase-card-sub {
  font-size: 12px;
  color: #6B7280;
  margin-top: 2px;
}

.text-free-pill {
  color: #059669;
  font-weight: 700;
}

.pro-showcase-card-right i {
  font-size: 13px;
  color: #9CA3AF;
  transition: transform 0.15s ease;
}

.pro-showcase-action-card:hover .pro-showcase-card-right i {
  transform: translateX(2px);
  color: #6B7280;
}

/* Modal de Publicação: Layout de Tela Cheia com Footer Fixo */
.publish-showcase-content,
.showcase-viewer-content {
  background: #FFFFFF;
  height: 100%;
  max-width: 520px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

.publish-showcase-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
  padding-bottom: 24px;
  background: #F8FAFC;
}

.publish-showcase-body form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.showcase-viewer-body {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: #F8FAFC;
}

/* Banner de Lançamento Gratuito com visual ultra-moderno */
.launch-promo-card {
  background: linear-gradient(135deg, #4F46E5 0%, #7C3AED 55%, #9333EA 100%);
  color: #FFFFFF;
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 6px 18px rgba(124, 58, 237, 0.22);
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  overflow: hidden;
}

.launch-promo-card::after {
  content: '';
  position: absolute;
  top: -25px;
  right: -25px;
  width: 95px;
  height: 95px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 50%;
  pointer-events: none;
}

.launch-promo-badge-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.launch-promo-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.35);
  color: #FEF08A;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
  padding: 4px 9px;
  border-radius: 20px;
}

.launch-promo-tag-free {
  display: inline-flex;
  align-items: center;
  background: #10B981;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 800;
  padding: 4px 9px;
  border-radius: 20px;
  letter-spacing: 0.4px;
  box-shadow: 0 2px 6px rgba(16, 185, 129, 0.35);
}

.launch-promo-title {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  line-height: 1.3 !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
}

.launch-promo-text {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.92) !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}

.launch-promo-text strong {
  color: #FEF08A;
  font-weight: 700;
}

/* Grid de Upload Antes & Depois */
.before-after-upload-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 4px;
}

.upload-side-box {
  background: #FFFFFF;
  border: 1.5px solid #E2E8F0;
  border-radius: 14px;
  padding: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  transition: all 0.2s ease;
}

.upload-side-box:focus-within {
  border-color: #7C3AED;
  box-shadow: 0 4px 12px rgba(124, 58, 237, 0.1);
}

.upload-side-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.badge-side-tag {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.4px;
  padding: 3px 8px;
  border-radius: 6px;
}

.badge-side-tag.before {
  background: #FEE2E2;
  color: #B91C1C;
}

.badge-side-tag.after {
  background: #D1FAE5;
  color: #047857;
}

.upload-dropzone {
  display: block;
  position: relative;
  width: 100%;
  height: 110px;
  background: #F8FAFC;
  border: 2px dashed #CBD5E1;
  border-radius: 10px;
  cursor: pointer;
  overflow: hidden;
  transition: all 0.2s ease;
}

.upload-dropzone:hover {
  background: #F1F5F9;
  border-color: #7C3AED;
}

.dropzone-empty {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #64748B;
  text-align: center;
  padding: 6px;
}

.dropzone-empty i {
  font-size: 20px;
  color: #7C3AED;
}

.dropzone-empty span {
  font-size: 11px;
  font-weight: 700;
  color: #334155;
}

.dropzone-empty small {
  font-size: 9.5px;
  color: #94A3B8;
}

.upload-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.input-side-desc {
  width: 100%;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 7px 9px;
  font-size: 11px;
  color: #1E293B;
  outline: none;
  transition: border-color 0.15s;
}

.input-side-desc:focus {
  border-color: #7C3AED;
  background: #FFFFFF;
}

/* Caixa de Impulsionamento & Monetização PRO */
.pro-boost-monetization-box {
  background: #FFFFFF;
  border: 1.5px solid #FDE68A;
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.08);
}

.boost-header-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.boost-icon-badge {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: linear-gradient(135deg, #F59E0B, #D97706);
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}

.boost-title-wrap {
  flex: 1;
  min-width: 0;
}

.boost-title-wrap h6 {
  font-size: 12.5px;
  font-weight: 700;
  color: #0F172A;
  line-height: 1.3;
}

.boost-title-wrap span {
  font-size: 10.5px;
  color: #64748B;
  display: block;
}

.boost-toggle-wrap {
  flex-shrink: 0;
}

.boost-price-pill-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px dashed #E2E8F0;
}

.price-strikethrough {
  font-size: 12px;
  color: #94A3B8;
  text-decoration: line-through;
  font-weight: 600;
}

.price-free-launch {
  background: #D1FAE5;
  color: #047857;
  font-size: 10.5px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.3px;
}

.boost-notice-box {
  background: #FFFBEB;
  border: 1px solid #FEF3C7;
  border-radius: 10px;
  padding: 8px 10px;
  margin-top: 10px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  color: #92400E;
  line-height: 1.4;
}

.boost-notice-box i {
  color: #D97706;
  font-size: 12px;
  margin-top: 2px;
  flex-shrink: 0;
}

/* Footer Fixo e Acessível do Modal */
.publish-actions-footer {
  flex-shrink: 0;
  background: #FFFFFF;
  border-top: 1px solid #E2E8F0;
  padding: 12px 16px;
  display: flex;
  gap: 10px;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.04);
  z-index: 10;
}

.publish-actions-footer .btn-auth-secondary {
  flex: 1;
  height: 44px;
}

.publish-actions-footer .btn-auth-primary {
  flex: 2;
  height: 44px;
  font-size: 13px;
  font-weight: 800;
}

/* =========================================================
   VISUALIZADOR INTERATIVO ANTES & DEPOIS
   ========================================================= */

.viewer-badge-top {
  display: flex;
  align-items: center;
  gap: 8px;
}

.viewer-bairro-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #EEF2FF;
  color: #4F46E5;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
}

.viewer-pro-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: #ECFDF5;
  color: #059669;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
}

.viewer-title {
  font-size: 18px;
  font-weight: 800;
  color: #0F172A;
  line-height: 1.3;
}

.interactive-compare-box {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 18px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}

.compare-side-card {
  border-radius: 14px;
  overflow: hidden;
  border: 1.5px solid #E2E8F0;
  background: #F8FAFC;
  position: relative;
}

.compare-side-card.before-card {
  border-color: #FECACA;
}

.compare-side-card.after-card {
  border-color: #A7F3D0;
}

.compare-chip {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 5;
  font-size: 10px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 6px;
  letter-spacing: 0.5px;
}

.compare-chip.before {
  background: rgba(220, 38, 38, 0.9);
  color: #FFFFFF;
}

.compare-chip.after {
  background: rgba(16, 185, 129, 0.95);
  color: #FFFFFF;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);
}

.compare-img-wrap {
  width: 100%;
  height: 170px;
  position: relative;
  overflow: hidden;
}

.compare-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.compare-art-gradient {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.compare-caption {
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #334155;
  line-height: 1.4;
  background: #FFFFFF;
}

.compare-divider-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #7C3AED;
  color: #FFFFFF;
  font-size: 14px;
  align-self: center;
  box-shadow: 0 4px 10px rgba(124, 58, 237, 0.3);
  transform: rotate(90deg);
}

@media (min-width: 480px) {
  .interactive-compare-box {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
  }
  .compare-divider-arrow {
    transform: rotate(0deg);
  }
}

.viewer-pro-credit-card {
  background: #FFFFFF;
  border: 1.5px solid #E2E8F0;
  border-radius: 14px;
  padding: 12px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.credit-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #EDE9FE;
  color: #7C3AED;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
  overflow: hidden;
}

.credit-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.credit-info {
  flex: 1;
  min-width: 0;
}

.credit-role {
  font-size: 10px;
  font-weight: 600;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  display: block;
}

.credit-info h5 {
  font-size: 13.5px;
  font-weight: 700;
  color: #0F172A;
  margin: 1px 0;
}

.credit-spec {
  font-size: 11px;
  color: #64748B;
  display: block;
}

.btn-credit-profile {
  background: #F1F5F9;
  border: 1px solid #CBD5E1;
  color: #334155;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}

.btn-credit-profile:hover {
  background: #7C3AED;
  border-color: #7C3AED;
  color: #FFFFFF;
}

.btn-viewer-hire {
  width: 100%;
  background: linear-gradient(135deg, #10B981 0%, #059669 100%);
  color: #FFFFFF;
  border: none;
  border-radius: 14px;
  padding: 14px;
  font-size: 13.5px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(16, 185, 129, 0.35);
  transition: all 0.2s ease;
}

.btn-viewer-hire:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(16, 185, 129, 0.45);
}

.btn-viewer-hire:active {
  transform: translateY(0);
}

/* =========================================================
   RESPONSIVIDADE TOTAL: ONBOARDING & MODAIS DE AUTH
   ========================================================= */
@media (max-width: 640px) {
  #auth-welcome-overlay,
  #auth-login-modal,
  #auth-pro-signup-modal,
  #auth-client-signup-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    z-index: 9999 !important;
    border-radius: 0 !important;
    margin: 0 !important;
  }

  .auth-welcome-content,
  .auth-form-content,
  .auth-wizard-content {
    width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    border-radius: 0 !important;
    border: none !important;
    max-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .auth-welcome-body,
  .auth-form-body,
  .auth-wizard-body {
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    padding-bottom: calc(28px + env(safe-area-inset-bottom, 12px)) !important;
  }

  .auth-modal-header,
  .auth-welcome-header {
    padding-top: calc(10px + env(safe-area-inset-top, 0px)) !important;
  }

  .auth-role-card {
    padding: 14px 12px !important;
    gap: 12px !important;
  }

  .auth-role-icon {
    width: 42px !important;
    height: 42px !important;
    font-size: 17px !important;
  }

  .auth-role-text h4 {
    font-size: 13.5px !important;
  }

  .auth-role-text p {
    font-size: 11px !important;
  }

  .pro-wizard-stepper {
    padding: 10px 12px !important;
  }

  .step-circle {
    width: 24px !important;
    height: 24px !important;
    font-size: 10.5px !important;
  }

  .wizard-step span {
    font-size: 9px !important;
  }

  .wizard-connector {
    margin: 0 3px 12px !important;
  }
}

/* Telas ultra pequenas (menores de 360px de largura) */
@media (max-width: 360px) {
  .auth-trampou-icon-hero {
    width: 64px !important;
    height: 64px !important;
    border-radius: 16px !important;
  }

  .auth-trampou-logo-img {
    max-width: 150px !important;
  }

  .auth-brand-hero h2 {
    font-size: 16px !important;
  }

  .auth-brand-hero p {
    font-size: 12px !important;
  }

  .auth-welcome-body {
    padding: 8px 12px 24px !important;
    gap: 14px !important;
  }

  .wizard-step span {
    display: none; /* Em telas minúsculas oculta os rótulos de texto mantendo os círculos numerados */
  }

  .wizard-connector {
    margin: 0 4px 0 !important;
  }
}



