/* """"""""""""""""""""""""""""""""""""""
   APP  redesign completo v2
   """""""""""""""""""""""""""""""""""""" */

/* ═══ Welcome Splash (boas-vindas ao abrir o app) ═══ */
.welcome-splash {
  position: fixed; inset: 0; z-index: 99999;
  background: radial-gradient(ellipse at center, #0e1a10 0%, #050a06 70%, #000 100%);
  display: flex; align-items: center; justify-content: center;
  animation: welcomeFadeOut .55s ease-in 2.3s forwards;
  pointer-events: none;
}
.welcome-splash.hide { animation: welcomeFadeOut .35s ease-in forwards; }
.welcome-content {
  display: flex; flex-direction: column; align-items: center; gap: 18px;
  padding: 24px;
}
.welcome-logo-wrap {
  width: 110px; height: 110px;
  display: flex; align-items: center; justify-content: center;
  animation: welcomeLogoIn 1.4s cubic-bezier(.34,1.56,.64,1) forwards, welcomeLogoOut .6s cubic-bezier(.55,0,.68,1) 1.9s forwards;
  filter: drop-shadow(0 12px 32px rgba(34, 197, 94, .45));
}
.welcome-logo { width: 100%; height: 100%; object-fit: contain; }
.welcome-platform {
  font-family: 'Playfair Display', 'Cormorant Garamond', serif;
  font-size: 30px; font-weight: 800;
  background: linear-gradient(135deg, #f0d060, #c9a227);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  opacity: 0; transform: translateY(14px);
  animation: welcomeTextIn .7s ease-out .5s forwards, welcomeTextOut .5s ease-in 2s forwards;
  letter-spacing: 0.5px;
}
.welcome-greeting {
  font-family: 'Plus Jakarta Sans', 'DM Sans', sans-serif;
  font-size: 14px; color: rgba(237, 245, 238, 0.75); font-weight: 500;
  opacity: 0; transform: translateY(12px);
  animation: welcomeTextIn .7s ease-out .8s forwards, welcomeTextOut .5s ease-in 2s forwards;
  letter-spacing: 0.2px;
}
.welcome-greeting span { color: #22c55e; font-weight: 700; }

@keyframes welcomeLogoIn {
  0%   { transform: translateY(-180px) scale(0.4); opacity: 0; }
  55%  { transform: translateY(18px) scale(1.08); opacity: 1; }
  75%  { transform: translateY(-6px) scale(1); }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}
@keyframes welcomeLogoOut {
  0%   { transform: translateY(0) scale(1); opacity: 1; }
  100% { transform: translateY(-220px) scale(0.6); opacity: 0; }
}
@keyframes welcomeTextIn  { to { opacity: 1; transform: translateY(0); } }
@keyframes welcomeTextOut { to { opacity: 0; transform: translateY(-20px); } }
@keyframes welcomeFadeOut { to { opacity: 0; visibility: hidden; } }

/* ═══ Keyframes globais ═══ */
@keyframes boostPulse   { 0%,100%{transform:scale(1) rotate(-5deg);filter:drop-shadow(0 0 8px rgba(201,162,39,.4))} 50%{transform:scale(1.15) rotate(5deg);filter:drop-shadow(0 0 20px rgba(201,162,39,.9))} }
@keyframes floatUp      { 0%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(-90px)} }
@keyframes benefitIn    { from{opacity:0;transform:translateX(-14px)} to{opacity:1;transform:none} }
@keyframes slideUp      { from{transform:translateY(100%)} to{transform:translateY(0)} }

/* ── Plan Activated Modal ── */
.plan-act-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  font-size: 14px;
  color: rgba(255,255,255,.8);
  font-family: 'Plus Jakarta Sans', sans-serif;
  animation: benefitIn .38s ease both;
}
.plan-act-row:last-child { border-bottom: none; }
.plan-act-check {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--green);
}
@keyframes slideUpSheet { from{transform:translateY(100%)} to{transform:translateY(0)} }
@keyframes exitRight    { to{transform:translateX(160%) rotate(30deg);opacity:0} }
@keyframes exitLeft     { to{transform:translateX(-160%) rotate(-30deg);opacity:0} }
@keyframes matchPop     { from{opacity:0;transform:scale(.5)} to{opacity:1;transform:scale(1)} }
@keyframes spin         { to{transform:rotate(360deg)} }
@keyframes shimmer      { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes fadeInUp     { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes pulseGold    { 0%,100%{box-shadow:0 0 0 0 rgba(201,162,39,0)} 50%{box-shadow:0 0 0 6px rgba(201,162,39,.15)} }

/* ═══ Hamburger ═══ */
.menu-btn { flex-direction: column; gap: 0; }
.hamburger { display:flex;flex-direction:column;gap:5px;width:18px; }
.hamburger span { display:block;height:2px;background:var(--text);border-radius:2px;transition:all .25s; }

/* """"""""""""""""""""""""""""""""""""""
   DRAWER MENU
   """""""""""""""""""""""""""""""""""""" */
.drawer-menu {
  position:fixed;top:0;right:0;bottom:0;
  width:min(300px,85vw);
  background:linear-gradient(175deg,#0d1f10 0%,#060e07 60%);
  border-left:1px solid rgba(255,255,255,0.06);
  box-shadow:-24px 0 80px rgba(0,0,0,.6);
  z-index:10001;
  display:flex;flex-direction:column;
  transform:translateX(100%);
  transition:transform .3s cubic-bezier(.32,.72,0,1);
  overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
.drawer-menu.open { transform:translateX(0); }

.drawer-profile {
  display:flex;align-items:center;gap:14px;
  padding:22px 18px 18px;
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-shrink:0;
}
.drawer-avatar {
  width:50px;height:50px;border-radius:50%;
  object-fit:cover;
  border:2px solid rgba(201,162,39,0.45);
  box-shadow:0 0 0 3px rgba(201,162,39,0.1);
  flex-shrink:0;
}
.drawer-user-info { flex:1;min-width:0; }
.drawer-name  { font-weight:700;font-size:15px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.drawer-plan-badge {
  display:inline-block;margin-top:4px;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;
  color:var(--gold);background:rgba(201,162,39,0.14);
  padding:2px 9px;border-radius:20px;border:1px solid rgba(201,162,39,0.2);
}
.drawer-close {
  background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.08);
  color:var(--muted);width:32px;height:32px;border-radius:50%;
  font-size:14px;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.drawer-close:active { background:rgba(255,255,255,0.12); }
.drawer-section { padding:10px 8px 4px; }
.drawer-label {
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;
  color:rgba(255,255,255,0.22);padding:0 12px;margin-bottom:4px;
}
.drawer-item {
  display:flex;align-items:center;gap:13px;
  padding:12px 14px;border-radius:14px;
  font-size:15px;font-weight:500;color:var(--text);
  cursor:pointer;transition:background .15s;
  touch-action:manipulation;position:relative;
}
.drawer-item:active { background:rgba(255,255,255,0.06);transform:scale(.98); }
.drawer-item-icon { font-size:18px;width:24px;text-align:center;flex-shrink:0; }
.drawer-item-gold   { color:var(--gold-light); }
.drawer-item-danger { color:var(--danger); }
.drawer-price {
  margin-left:auto;font-size:11px;font-weight:800;
  color:var(--gold);background:rgba(201,162,39,0.12);
  padding:3px 9px;border-radius:20px;border:1px solid rgba(201,162,39,0.2);
}
.drawer-badge {
  margin-left:auto;background:var(--rose);color:white;
  font-size:11px;font-weight:700;min-width:20px;height:20px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;padding:0 5px;
}
.drawer-divider { height:1px;background:rgba(255,255,255,0.05);margin:6px 16px; }

/* """"""""""""""""""""""""""""""""""""""
   LOGO + TOPBAR
   """""""""""""""""""""""""""""""""""""" */
.topbar-logo {
  height:36px;width:auto;object-fit:contain;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.5));
}
.topbar {
  position:relative;z-index:10;
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(var(--sat) + 14px) 18px 12px;
  flex-shrink:0;
  background:rgba(8,14,9,0.45);
  backdrop-filter:blur(22px) saturate(1.7);
  -webkit-backdrop-filter:blur(22px) saturate(1.7);
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.logo { display:flex;align-items:center;gap:8px; }
.logo-cross { width:32px;height:32px;display:flex;align-items:center;justify-content:center; }
.logo-cross::before {
  content:'';font-size:22px;
  background:linear-gradient(135deg,var(--gold),var(--green-light));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.logo-text {
  font-family:'Inter',sans-serif;font-size:19px;font-weight:400;
  color:rgba(255,255,255,0.95);
  letter-spacing:-.2px;
}
.topbar-actions { display:flex;gap:8px; }
.icon-btn {
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,0.08);
  backdrop-filter:blur(16px) saturate(1.5);-webkit-backdrop-filter:blur(16px) saturate(1.5);
  border:1px solid rgba(255,255,255,0.12);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all 0.18s;position:relative;
  box-shadow:0 4px 16px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.12);
}
.icon-btn:active { transform:scale(0.88); }
.notif-dot {
  position:absolute;top:7px;right:7px;width:7px;height:7px;
  border-radius:50%;background:var(--rose);border:2px solid var(--bg);
}

/* """"""""""""""""""""""""""""""""""""""
   HOME SCREEN
   """""""""""""""""""""""""""""""""""""" */
.home-hero {
  display:flex;align-items:center;gap:14px;
  padding:4px 20px 18px;flex-shrink:0;
}
.home-avatar {
  width:54px;height:54px;border-radius:50%;
  object-fit:cover;flex-shrink:0;
  border:2px solid rgba(201,162,39,.5);
  box-shadow:0 0 0 3px rgba(201,162,39,.1), 0 4px 16px rgba(0,0,0,.4);
}
.home-greeting { font-size:19px;font-weight:700;color:var(--text); }
.home-greeting span { color:var(--gold-light); }
.home-plan-badge {
  display:inline-flex;align-items:center;gap:4px;margin-top:5px;
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;
  color:var(--gold);background:rgba(201,162,39,0.12);
  padding:3px 10px;border-radius:20px;border:1px solid rgba(201,162,39,0.2);
}
.home-verse {
  margin:0 16px 20px;
  background:linear-gradient(135deg,rgba(13,107,53,0.1),rgba(201,162,39,0.05));
  border-left:3px solid rgba(34,197,94,0.5);
  border-radius:0 14px 14px 0;
  padding:12px 16px;
  font-size:12px;color:var(--muted);line-height:1.65;
  font-style:italic;flex-shrink:0;
}
.home-cards {
  display:flex;flex-direction:column;gap:9px;
  padding:0 16px;flex-shrink:0;
}
.home-card {
  display:flex;align-items:center;
  background:rgba(19,33,22,0.8);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:20px;padding:15px 16px;
  cursor:pointer;
  transition:transform .15s,border-color .15s;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  animation:fadeInUp .3s ease both;
}
.home-card:active { transform:scale(0.97); }
.home-card-primary {
  border-color:rgba(34,197,94,0.2);
  background:linear-gradient(135deg,rgba(13,107,53,0.18),rgba(13,107,53,0.06));
}
.home-card-gold {
  border-color:rgba(201,162,39,0.2);
  background:linear-gradient(135deg,rgba(201,162,39,0.09),rgba(201,162,39,0.02));
}
.home-card-vip {
  border-color:rgba(201,162,39,0.3);
  background:linear-gradient(135deg,rgba(201,162,39,0.13),rgba(201,162,39,0.04));
  position:relative;overflow:hidden;
}
.home-card-vip::before {
  content:'';position:absolute;top:0;right:0;
  width:80px;height:80px;
  background:radial-gradient(circle at 100% 0%,rgba(201,162,39,0.15),transparent 70%);
  pointer-events:none;
}
.home-card-left { display:flex;align-items:center;gap:14px;flex:1;min-width:0; }
.home-card-icon-wrap {
  width:46px;height:46px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;flex-shrink:0;
}
.home-card-title { font-weight:700;font-size:15px;color:var(--text);line-height:1.2; }
.home-card-sub   { font-size:12px;color:var(--muted);margin-top:3px;line-height:1.4; }
.home-card-arrow { font-size:20px;color:rgba(255,255,255,0.2);flex-shrink:0;margin-left:8px; }
.home-badge {
  background:var(--rose);color:white;font-size:11px;font-weight:700;
  min-width:22px;height:22px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;
  padding:0 6px;flex-shrink:0;margin-right:6px;
}
.home-price-tag {
  flex-shrink:0;margin-left:8px;
  font-size:12px;font-weight:800;color:var(--gold);
  background:rgba(201,162,39,0.13);padding:4px 11px;border-radius:20px;
  border:1px solid rgba(201,162,39,0.2);white-space:nowrap;
}
.home-section-divider {
  display:flex;align-items:center;gap:10px;margin:8px 2px;
}
.home-section-divider::before,.home-section-divider::after {
  content:'';flex:1;height:1px;background:rgba(255,255,255,0.07);
}
.home-section-divider span {
  font-size:10px;font-weight:700;color:var(--gold);
  text-transform:uppercase;letter-spacing:1px;white-space:nowrap;
}

/* """"""""""""""""""""""""""""""""""""""
   NAV INFERIOR
   """""""""""""""""""""""""""""""""""""" */
.bottom-nav {
  position:relative;z-index:10;
  display:flex;align-items:center;justify-content:space-around;
  margin:0 10px calc(10px + var(--sab,0px));
  padding:6px 6px;
  background:rgba(7,12,8,0.72);
  backdrop-filter:blur(32px) saturate(2);-webkit-backdrop-filter:blur(32px) saturate(2);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:44px;
  flex-shrink:0;
  box-shadow:0 10px 40px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.3),inset 0 1px 0 rgba(255,255,255,0.09);
}
.nav-item {
  display:flex;flex-direction:column;align-items:center;gap:2px;
  cursor:pointer;padding:7px 10px;border-radius:32px;
  transition:all 0.2s;position:relative;
  min-width:50px;min-height:44px;justify-content:center;
  touch-action:manipulation;
}
.nav-item.active { background:rgba(201,162,39,0.14); }
.nav-item:active { transform:scale(0.86); }
.nav-icon  { line-height:1;transition:transform .2s; }
.nav-label { font-size:8.5px;font-weight:700;color:rgba(255,255,255,0.3);letter-spacing:.3px;text-transform:uppercase; }
.nav-item.active .nav-label { color:var(--gold); }
.nav-item.active .nav-icon  { filter:drop-shadow(0 0 10px rgba(201,162,39,0.8));transform:scale(1.12); }
.nav-badge {
  position:absolute;top:5px;right:7px;background:var(--rose);color:white;
  font-size:9px;font-weight:800;min-width:16px;height:16px;padding:0 3px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;border:2px solid rgba(7,12,8,0.9);
  box-sizing:border-box;
}
/* nav center removed */

/* """"""""""""""""""""""""""""""""""""""
   ÁREA DE CARDS / SWIPE
   """""""""""""""""""""""""""""""""""""" */
.cards-area {
  flex:1;position:relative;z-index:5;
  display:flex;align-items:center;justify-content:center;
  padding:2px 10px;overflow:hidden;min-height:0;
}
/* Card expandido */
.card-expanded /* Mesma razao do overlay: e texto sobre a foto e estava bloqueando o toque na
   metade de baixo. O botao "Ver mais" fica de fora e continua clicavel. */
.card-info { pointer-events:none; }
.card-info { padding-bottom:22px; }
.card-expanded .card-expand-btn svg { transform:rotate(180deg); }
.card-stack {
  position:relative;width:100%;max-width:400px;
  height:clamp(360px,58svh,560px);
}
.profile-card {
  position:absolute;inset:0;border-radius:28px;
  overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.7),0 10px 24px rgba(0,0,0,.45);
  cursor:grab;user-select:none;
  transition:transform 0.08s ease;will-change:transform;
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.profile-card:active { cursor:grabbing; }
.card-photo {
  width:100%;height:100%;object-fit:cover;object-position:center top;
  display:block;pointer-events:none;transition:opacity .2s;
}
.card-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,transparent 28%,rgba(4,7,5,.12) 50%,rgba(4,6,5,.97) 100%);
  /* pointer-events:none — 07/09/2026.
     Este degrade cobre a foto INTEIRA (inset:0) e, por estar depois dela no
     DOM, interceptava todo clique. O trocador de fotas escuta em .card-photo,
     entao o clique nunca chegava nele: trocar de foto tocando na imagem ou na
     seta simplesmente NAO funcionava, para ninguem, desde sempre.
     Passou despercebido em teste porque disparar o evento direto no elemento
     (foto.dispatchEvent) ignora o teste de acerto e "funciona"; so um clique
     com coordenada real revela o problema.
     E enfeite visual: nao tem motivo pra receber clique. */
  pointer-events:none;
}
/* Dots de fotos */
.card-photo-dots {
  position:absolute;top:12px;left:50%;transform:translateX(-50%);
  display:flex;gap:5px;z-index:10;
}
.card-dot { width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45);transition:all .2s;box-shadow:0 1px 3px rgba(0,0,0,.4); }
.card-dot.active { background:white;width:26px;border-radius:5px; }

/* Indicadores de swipe */
.swipe-like {
  position:absolute;top:26px;left:18px;
  background:rgba(20,184,166,.92);border:3px solid #14b8a6;
  border-radius:12px;padding:5px 14px;
  font-family:'Playfair Display',serif;font-size:clamp(20px,6vw,26px);font-weight:900;
  color:white;letter-spacing:2px;transform:rotate(-15deg);
  opacity:0;transition:opacity .15s;pointer-events:none;z-index:10;
}
.swipe-nope {
  position:absolute;top:26px;right:18px;
  background:rgba(244,63,94,.92);border:3px solid #f43f5e;
  border-radius:12px;padding:5px 14px;
  font-family:'Playfair Display',serif;font-size:clamp(20px,6vw,26px);font-weight:900;
  color:white;letter-spacing:2px;transform:rotate(15deg);
  opacity:0;transition:opacity .15s;pointer-events:none;z-index:10;
}
/* Badges no topo do card */
.card-boost-badge {
  position:absolute;top:14px;left:14px;z-index:10;
  display:flex;align-items:center;gap:6px;
  background:linear-gradient(135deg,#c9a227,#d97706);
  border-radius:100px;padding:5px 12px 5px 8px;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:800;color:white;
  letter-spacing:.04em;text-transform:uppercase;
  box-shadow:0 4px 14px rgba(201,162,39,0.45);
}
.card-online-badge {
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(13,107,53,0.75);backdrop-filter:blur(10px);
  border:1px solid rgba(34,197,94,0.45);border-radius:100px;
  padding:4px 10px;font-family:'Plus Jakarta Sans',sans-serif;font-size:11px;font-weight:700;color:#4ade80;
}
.card-online-dot { width:7px;height:7px;border-radius:50%;background:#22c55e;flex-shrink:0;animation:pulseGreen 2s ease-in-out infinite; }
@keyframes pulseGreen { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(.85)} }
.card-expand-btn {
  position:absolute;bottom:16px;right:16px;z-index:10;
  width:34px;height:34px;border-radius:50%;
  background:rgba(255,255,255,0.14);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,0.18);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,0.3);
}
/* Info do card */
.card-info   { position:absolute;bottom:0;left:0;right:0;padding:18px 18px 16px;z-index:5; }
.card-name   { font-family:'Playfair Display',serif;font-size:clamp(24px,7.5vw,30px);font-weight:900;line-height:1.1; }
.card-age    { font-size:clamp(18px,5vw,22px);font-weight:300;color:rgba(255,255,255,.8);margin-left:6px; }
.card-location { display:flex;align-items:center;gap:5px;font-family:'Plus Jakarta Sans',sans-serif;font-size:clamp(12px,3.5vw,14px);color:rgba(255,255,255,0.65);margin:4px 0 6px;font-weight:500; }
.card-church { display:flex;align-items:center;gap:6px;font-size:clamp(11px,3vw,13px);color:rgba(201,162,39,0.85);margin-bottom:8px;font-weight:500; }
.card-intencao {
  display:inline-flex;align-items:center;
  background:rgba(13,107,53,.3);backdrop-filter:blur(12px);
  border:1px solid rgba(34,197,94,.4);border-radius:100px;
  padding:4px 11px;font-size:clamp(11px,3vw,12px);font-weight:600;color:var(--green-light);
}
.card-compat {
  display:inline-flex;align-items:center;
  border-radius:100px;padding:4px 10px;
  font-size:clamp(11px,3vw,12px);font-weight:700;backdrop-filter:blur(10px);
}
.card-compat.high { background:rgba(74,222,128,.2);border:1px solid rgba(74,222,128,.4);color:#4ade80; }
.card-compat.mid  { background:rgba(250,204,21,.15);border:1px solid rgba(250,204,21,.3);color:#facc15; }
.card-compat.low  { background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.7); }
.card-tags { display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px; }
.tag {
  background:rgba(255,255,255,0.12);backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,0.15);border-radius:100px;
  padding:3px 10px;font-size:clamp(11px,3vw,12px);font-weight:500;color:rgba(255,255,255,.9);
}
.card-verse { font-size:clamp(11px,3vw,12px);color:rgba(255,255,255,.55);font-style:italic;margin-top:2px;line-height:1.4; }

/* Animações saída */
.card-exit-right { animation:exitRight .45s cubic-bezier(.25,.8,.5,1) forwards; }
.card-exit-left  { animation:exitLeft  .45s cubic-bezier(.25,.8,.5,1) forwards; }

/* """"""""""""""""""""""""""""""""""""""
   BOT"ES DE AÇÃO (Swipe)
   """""""""""""""""""""""""""""""""""""" */
.actions {
  position:relative;z-index:10;
  display:flex;align-items:center;justify-content:center;
  gap:clamp(8px,3.5vw,18px);
  padding:clamp(6px,2vw,10px) 20px calc(clamp(8px,2vw,14px) + var(--sab));flex-shrink:0;
}
.action-btn {
  border:none;cursor:pointer;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:clamp(18px,5.5vw,22px);
  transition:all 0.22s cubic-bezier(.34,1.56,.64,1);
  position:relative;flex-shrink:0;
}
.action-btn:active { transform:scale(0.84) !important; }
.btn-skip {
  width:clamp(54px,15vw,62px);height:clamp(54px,15vw,62px);
  background:rgba(12,20,14,0.78);
  backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);
  border:1.5px solid rgba(244,63,94,0.5);color:var(--rose);
  box-shadow:0 8px 24px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,255,255,0.08);
}
.btn-super {
  width:clamp(48px,13vw,56px);height:clamp(48px,13vw,56px);
  background:rgba(12,20,14,0.78);
  backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);
  border:1.5px solid rgba(99,102,241,0.55);color:rgba(167,168,255,0.95);
  box-shadow:0 8px 24px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,255,255,0.08);
}
.btn-like {
  width:clamp(68px,18vw,76px);height:clamp(68px,18vw,76px);
  background:linear-gradient(135deg,#e8951a 0%,#c9a227 50%,#d97706 100%);
  border:none;color:white;
  box-shadow:0 10px 32px rgba(201,162,39,0.55),0 4px 12px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.22);
}
.btn-back {
  width:clamp(42px,11vw,48px);height:clamp(42px,11vw,48px);
  background:rgba(12,20,14,0.72);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1.5px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.45);
  box-shadow:0 4px 14px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.07);
}
.btn-rewind {
  width:clamp(42px,11vw,48px);height:clamp(42px,11vw,48px);
  background:rgba(12,20,14,0.72);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1.5px solid rgba(255,255,255,0.1);color:rgba(255,255,255,0.45);
  box-shadow:0 4px 14px rgba(0,0,0,0.35),inset 0 1px 0 rgba(255,255,255,0.07);
}

/* ══════════════════════════════════════
   EXPLORAR — tela de conteúdo inspirador
   ══════════════════════════════════════ */

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

.expl-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 18px;
  margin-bottom: 12px;
  cursor: pointer;
  opacity: 0;
  transform: translateY(22px);
  transition: transform .18s, box-shadow .18s, background .18s;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.expl-card.visible {
  animation: explCardIn .4s cubic-bezier(.22,1,.36,1) forwards;
}
.expl-card:active {
  transform: scale(0.97);
  background: rgba(19,33,22,0.95);
}

/* Card destaque (Comunidade) */
.expl-featured {
  background: linear-gradient(135deg, rgba(13,50,90,0.55) 0%, rgba(8,22,42,0.7) 100%);
  border: 1.5px solid rgba(59,130,246,0.3);
  box-shadow: 0 4px 24px rgba(59,130,246,0.12);
}
.expl-featured:active {
  background: linear-gradient(135deg, rgba(13,50,90,0.7) 0%, rgba(8,22,42,0.85) 100%);
}

.expl-live-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(59,130,246,0.18);
  border: 1px solid rgba(59,130,246,0.35);
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: rgba(147,197,253,0.95);
  margin-bottom: 12px;
}
.expl-live-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #3b82f6;
  box-shadow: 0 0 6px #3b82f6;
  animation: livePulse 1.2s ease-in-out infinite;
}
@keyframes livePulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }

.expl-card-row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.expl-icon {
  width: 52px; height: 52px;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 22px;
}
.expl-icon-blue   { background: rgba(59,130,246,0.18); color: #93c5fd; }
.expl-icon-gold   { background: rgba(201,162,39,0.18); color: #fbbf24; }
.expl-icon-green  { background: rgba(34,197,94,0.18);  color: #4ade80; }
.expl-icon-rose   { background: rgba(244,63,94,0.18);  color: #fb7185; }
.expl-icon-purple { background: rgba(167,139,250,0.18);color: #a78bfa; }

.expl-info { flex: 1; min-width: 0; }
.expl-name {
  font-size: 18px; font-weight: 700;
  color: var(--text); line-height: 1.2;
  margin-bottom: 4px;
}
.expl-desc {
  font-size: 13px; color: var(--muted);
  line-height: 1.5; margin-bottom: 10px;
}
.expl-link {
  font-size: 12px; font-weight: 700;
  letter-spacing: .6px; text-transform: uppercase;
  color: var(--green-light);
  display: inline-flex; align-items: center; gap: 4px;
}
.expl-featured .expl-link { color: #93c5fd; }

/* ── Detail Sheet interno ── */
.expl-sheet {
  position: fixed; inset: 0; z-index: 9200;
  background: rgba(0,0,0,0.75);
  display: none; align-items: flex-end; justify-content: center;
}
.expl-sheet-inner {
  background: linear-gradient(175deg, #0d1f10, #060e07);
  border-radius: 28px 28px 0 0;
  width: 100%; max-width: 480px;
  max-height: 92vh;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  animation: slideUpSheet .32s cubic-bezier(.32,.72,0,1);
  padding-bottom: calc(32px + var(--sab));
}
.expl-sheet-handle {
  display: flex; justify-content: center; padding: 12px 0 0;
}
.expl-sheet-handle-bar {
  width: 36px; height: 4px;
  background: rgba(255,255,255,0.12); border-radius: 2px;
}
.expl-sheet-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 20px 16px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.expl-sheet-title {
  font-family: 'Playfair Display', serif;
  font-size: 20px; font-weight: 900;
  color: var(--text);
}
.expl-sheet-close {
  width: 32px; height: 32px; border-radius: 50%;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--muted); font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; touch-action: manipulation;
}
.expl-sheet-close:active { background: rgba(255,255,255,0.13); }

/* Content blocks dentro do sheet */
.expl-content-block {
  margin: 14px 16px 0;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 18px;
  overflow: hidden;
  opacity: 0;
  transform: translateY(16px);
}
.expl-content-block.visible {
  animation: explCardIn .38s cubic-bezier(.22,1,.36,1) forwards;
}
.expl-content-block-header {
  padding: 14px 16px 12px;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  display: flex; align-items: center; gap: 12px;
}
.expl-content-block-icon {
  width: 38px; height: 38px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; flex-shrink: 0;
}
.expl-content-block-meta { flex: 1; min-width: 0; }
.expl-content-block-tag {
  font-size: 10px; font-weight: 700; letter-spacing: .6px;
  text-transform: uppercase; color: var(--muted); margin-bottom: 2px;
}
.expl-content-block-name {
  font-size: 15px; font-weight: 700; color: var(--text); line-height: 1.25;
}
.expl-content-block-body {
  padding: 12px 16px;
  font-size: 13px; color: rgba(237,245,238,0.75);
  line-height: 1.65;
}
.expl-content-verse {
  margin-top: 10px;
  padding: 10px 13px;
  background: rgba(13,107,53,0.12);
  border-left: 3px solid var(--green-mid);
  border-radius: 0 10px 10px 0;
  font-style: italic;
  font-size: 13px; color: var(--green-light);
  line-height: 1.55;
}
.expl-content-verse span {
  display: block; margin-top: 4px;
  font-size: 11px; font-weight: 600;
  font-style: normal; color: var(--muted);
}
.expl-content-block-btn {
  display: block; width: calc(100% - 32px);
  margin: 4px 16px 14px;
  padding: 12px;
  background: rgba(13,107,53,0.14);
  border: 1px solid rgba(34,197,94,0.2);
  border-radius: 12px;
  font-size: 13px; font-weight: 600;
  color: var(--green-light);
  text-align: center; cursor: pointer;
  touch-action: manipulation;
  transition: background .15s;
}
.expl-content-block-btn:active { background: rgba(13,107,53,0.28); }

/* """"""""""""""""""""""""""""""""""""""
   MATCH OVERLAY
   """""""""""""""""""""""""""""""""""""" */
.match-overlay {
  position:fixed;inset:0;z-index:100;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:rgba(4,10,5,.97);backdrop-filter:blur(24px);
  opacity:0;pointer-events:none;transition:opacity .4s;
  padding:max(32px,calc(var(--sat)+20px)) 24px max(32px,calc(var(--sab)+20px));
}
.match-overlay.visible { opacity:1;pointer-events:all; }
.match-burst {
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%,rgba(13,107,53,.22) 0%,transparent 60%),
    radial-gradient(ellipse 50% 35% at 30% 65%,rgba(201,162,39,.12) 0%,transparent 50%);
}
.match-title {
  font-family:'Playfair Display',serif;font-size:clamp(34px,11vw,46px);font-weight:900;
  text-align:center;
  background:linear-gradient(135deg,var(--gold-light),var(--green-light),var(--gold-light));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  margin-bottom:8px;animation:matchPop .5s cubic-bezier(.34,1.56,.64,1) both;
}
.match-subtitle { font-size:16px;color:var(--muted);margin-bottom:clamp(24px,5vh,36px);text-align:center; }
.match-photos  { display:flex;gap:20px;margin-bottom:clamp(24px,5vh,36px);animation:matchPop .5s .1s cubic-bezier(.34,1.56,.64,1) both; }
.match-photo   {
  width:clamp(90px,25vw,120px);height:clamp(90px,25vw,120px);
  border-radius:50%;object-fit:cover;
  border:3px solid transparent;
  background:linear-gradient(var(--bg),var(--bg)) padding-box,
             linear-gradient(135deg,var(--gold),var(--green-light)) border-box;
  box-shadow:0 8px 32px rgba(0,0,0,.5);
}
.match-cross { font-size:30px;align-self:center;animation:matchPop .5s .05s cubic-bezier(.34,1.56,.64,1) both; }
.match-btn-primary {
  background:linear-gradient(135deg,var(--green),#065f46);border:none;
  color:white;font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;font-weight:700;
  padding:16px 48px;border-radius:100px;cursor:pointer;
  box-shadow:0 8px 32px rgba(13,107,53,.45);margin-bottom:14px;
  transition:all .2s;animation:matchPop .5s .2s cubic-bezier(.34,1.56,.64,1) both;min-height:52px;
}
.match-btn-primary:active { transform:scale(.96); }
.match-btn-sec {
  background:transparent;border:1.5px solid rgba(255,255,255,.12);color:var(--muted);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;font-weight:500;
  padding:12px 36px;border-radius:100px;cursor:pointer;transition:all .2s;min-height:44px;
}
.match-btn-sec:active { transform:scale(.96); }
.heart-float { position:fixed;pointer-events:none;z-index:200;animation:floatUp 1s ease-out forwards;font-size:28px; }

/* """"""""""""""""""""""""""""""""""""""
   TELAS GENÉRICAS
   """""""""""""""""""""""""""""""""""""" */
.screen       { display:none;flex-direction:column;flex:1;overflow:hidden;min-height:0; }
.screen.active{ display:flex; }
.scroll-area  { flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;min-height:0; }
.scroll-area::-webkit-scrollbar { display:none; }
.screen-header {
  padding:calc(var(--sat)+12px) 16px 10px;
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
}
.screen-title { font-family:'Playfair Display',serif;font-size:24px;font-weight:900; }
.back-icon-btn {
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,.08);
  border-radius:12px;width:42px;height:42px;min-width:42px;
  font-size:20px;color:var(--text);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .2s;
}
.back-icon-btn:active { transform:scale(0.88); }

/* ══════════════════════════════════════
   CHAT — tela de mensagens
   ══════════════════════════════════════ */

/* Header */
.chat-screen-header {
  display:flex;align-items:center;justify-content:space-between;
  padding:calc(16px + var(--sat,0px)) 18px 14px;
  flex-shrink:0;
}
.chat-header-btn {
  width:38px;height:38px;border-radius:12px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  color:var(--muted);cursor:pointer;touch-action:manipulation;
  transition:background .15s;
}
.chat-header-btn:active { background:rgba(255,255,255,.1); }

/* Scroll area */
.chat-scroll-area {
  flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}
.chat-scroll-area::-webkit-scrollbar { display:none; }

/* Banner premium */
.chat-promo-banner {
  display:flex;align-items:center;gap:14px;
  margin:0 16px 20px;
  padding:14px 16px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.07);
  border-radius:18px;
  cursor:pointer;touch-action:manipulation;
  transition:background .15s;
}
.chat-promo-banner:active { background:rgba(255,255,255,.07); }
.chat-promo-icon {
  width:42px;height:42px;border-radius:12px;
  background:rgba(201,162,39,.12);border:1px solid rgba(201,162,39,.2);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.chat-promo-title {
  font-size:13.5px;font-weight:700;color:var(--text);margin-bottom:3px;line-height:1.3;
}
.chat-promo-sub {
  font-size:11.5px;color:var(--muted);line-height:1.4;
}

/* Section headers */
.chat-section-header {
  display:flex;align-items:center;gap:8px;
  padding:0 18px;margin-bottom:14px;
}
.chat-section-title {
  font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.02em;
}
.chat-stories-badge {
  background:var(--rose);color:white;
  font-size:10px;font-weight:800;
  min-width:20px;height:20px;padding:0 6px;
  border-radius:100px;
  display:flex;align-items:center;justify-content:center;
}
.chat-stories-empty {
  font-size:13px;color:var(--muted);padding:4px 0;
}

/* ── Novas Conexões — cards retangulares ── */
.chat-conn-row {
  display:flex;gap:10px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  padding:0 18px 16px;
}
.chat-conn-row::-webkit-scrollbar { display:none; }

.conn-card {
  display:flex;flex-direction:column;align-items:center;gap:6px;
  cursor:pointer;flex-shrink:0;touch-action:manipulation;
  transition:transform .18s,opacity .18s;
}
.conn-card:active { transform:scale(.95);opacity:.85; }

.conn-card-img-wrap {
  width:100px;height:138px;border-radius:18px;overflow:hidden;
  position:relative;flex-shrink:0;
}
.conn-card-img {
  width:100%;height:100%;object-fit:cover;object-position:center top;
  display:block;
}
.conn-card-img.blurred { filter:blur(10px);transform:scale(1.05); }

/* Gradiente inferior suave sobre a foto */
.conn-card-overlay {
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.55) 0%,transparent 50%);
  border-radius:18px;
}
/* Badge coração */
.conn-card-heart {
  position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  width:28px;height:28px;border-radius:50%;
  background:linear-gradient(135deg,#f43f5e,#fb7185);
  border:2.5px solid rgba(255,255,255,.15);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 8px rgba(244,63,94,.5);
}
/* Card especial — Curtidas agregadas (primeiro card) */
.conn-card-curtidas .conn-card-img-wrap {
  background:linear-gradient(160deg,#1a1a2e,#0f1923);
  border:1.5px solid rgba(201,162,39,.25);
}
.conn-card-curtidas-inner {
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;
}
.conn-card-curtidas-count {
  font-size:32px;font-weight:900;color:#c9a227;line-height:1;
  text-shadow:0 0 20px rgba(201,162,39,.5);
}
.conn-card-curtidas-icon {
  width:30px;height:30px;border-radius:50%;
  background:rgba(201,162,39,.15);border:1.5px solid rgba(201,162,39,.35);
  display:flex;align-items:center;justify-content:center;
}
.conn-card-name {
  font-size:12px;font-weight:600;color:var(--text);
  max-width:100px;text-align:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* ── Lista de conversas ── */
.chat-item {
  display:flex;align-items:center;gap:14px;
  padding:12px 18px;
  cursor:pointer;transition:background .15s;
  touch-action:manipulation;position:relative;
}
.chat-item:active { background:rgba(255,255,255,.04); }
.chat-avatar {
  width:58px;height:58px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:2px solid rgba(255,255,255,.08);
  position:relative;
}
.chat-avatar-wrap { position:relative;flex-shrink:0; }
.chat-avatar-dot {
  position:absolute;bottom:1px;right:1px;
  width:13px;height:13px;border-radius:50%;
  background:var(--rose);border:2.5px solid var(--bg);
}
.chat-online-dot {
  position:absolute;bottom:1px;right:1px;
  width:11px;height:11px;border-radius:50%;
  background:#22c55e;border:2px solid var(--bg);
}
.chat-info    { flex:1;min-width:0; }
.chat-name    { font-weight:700;font-size:15px;margin-bottom:3px;color:var(--text); }
.chat-preview { font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.chat-time    { font-size:11px;color:var(--muted);flex-shrink:0; }
.chat-unread  {
  background:var(--green);color:white;font-size:10px;font-weight:800;
  min-width:20px;height:20px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;padding:0 5px;
}
.chat-item.unread .chat-preview { color:var(--text);font-weight:500; }
.chat-right { display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0; }
.chat-unread-dot { width:10px;height:10px;border-radius:50%;background:var(--green); }
.chat-sua-vez {
  font-size:11px;font-weight:700;color:#0d6b35;
  background:rgba(13,107,53,.15);border:1px solid rgba(13,107,53,.3);
  padding:3px 10px;border-radius:100px;white-space:nowrap;
}

/* Story / match strip (legado — oculto mas mantido) */
.chat-stories-section { padding:10px 18px 0; }
.chat-stories-label { display:flex;align-items:center;gap:8px;margin-bottom:12px; }
.chat-stories-ver { margin-left:auto;font-size:12px;color:var(--green-light);font-weight:600;cursor:pointer;touch-action:manipulation; }
.chat-stories-row { display:flex;gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;padding-left:2px; }
.chat-stories-row::-webkit-scrollbar { display:none; }
.chat-stories-divider { height:1px;background:rgba(255,255,255,.05);margin:10px 18px 0; }
.story-bubble { display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;flex-shrink:0;touch-action:manipulation;transition:opacity .15s; }
.story-bubble:active { opacity:.75; }
.story-ring { width:68px;height:68px;border-radius:50%;padding:3px;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0; }
.story-ring.ring-rose { background:linear-gradient(135deg,#f43f5e,#fb7185);box-shadow:0 0 0 2px var(--bg),0 0 12px rgba(244,63,94,.35); }
.story-ring.ring-green { background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 0 2px var(--bg),0 0 12px rgba(34,197,94,.3); }
.story-ring.ring-gold { background:linear-gradient(135deg,#c9a227,#f0d060);box-shadow:0 0 0 2px var(--bg),0 0 12px rgba(201,162,39,.3); }
.story-ring.ring-unread { background:linear-gradient(135deg,#f43f5e,#c026d3);box-shadow:0 0 0 2px var(--bg),0 0 16px rgba(244,63,94,.5); }
.story-img { width:62px;height:62px;border-radius:50%;object-fit:cover;border:2.5px solid var(--bg); }
.story-img.blurred { filter:blur(6px); }
.story-lock { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:50%; }
.story-badge { position:absolute;bottom:0;right:0;width:22px;height:22px;border-radius:50%;border:2.5px solid var(--bg);display:flex;align-items:center;justify-content:center; }
.story-badge.badge-rose { background:var(--rose); }
.story-badge.badge-green { background:var(--green-light); }
.story-name { font-size:11.5px;font-weight:600;color:var(--muted);max-width:70px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.story-name.name-rose { color:rgba(251,113,133,.9); }
.story-name.name-green { color:rgba(74,222,128,.9); }
.matches-strip { padding:10px 16px 8px;flex-shrink:0; }
.matches-strip-title { font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:10px; }
.matches-row { display:flex;gap:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px; }
.matches-row::-webkit-scrollbar { display:none; }
.match-mini { display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;flex-shrink:0;padding:4px; }
.match-mini-avatar { width:62px;height:62px;border-radius:50%;object-fit:cover;border:2.5px solid var(--green-light);padding:2.5px;background:var(--bg); }
.match-mini-name { font-size:11.5px;font-weight:600;color:var(--muted);text-align:center;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.match-mini-avatar.has-unread { border-color:var(--rose);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--rose); }
.new-conn-item { display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;flex-shrink:0;touch-action:manipulation; }
.new-conn-avatar-wrap { position:relative;width:62px;height:62px;flex-shrink:0; }
.new-conn-avatar { width:62px;height:62px;border-radius:50%;object-fit:cover;border:2.5px solid var(--rose);box-shadow:0 0 0 2px var(--bg),0 0 0 4px rgba(244,63,94,.35);transition:transform .18s; }
.new-conn-item:active .new-conn-avatar { transform:scale(.93); }
.new-conn-blurred { filter:blur(7px);border-color:rgba(201,162,39,.5);box-shadow:0 0 0 2px var(--bg),0 0 0 4px rgba(201,162,39,.25); }
.new-conn-lock { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.25);border-radius:50%; }
.new-conn-heart { position:absolute;bottom:-1px;right:-1px;width:20px;height:20px;background:var(--rose);border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center; }
.new-conn-name { font-size:11px;font-weight:600;color:var(--muted);text-align:center;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

/* ══════════════════════════════════════
   CHAT INDIVIDUAL
   ══════════════════════════════════════ */

/* Header */
.chat-detail-header {
  display:flex;align-items:center;gap:12px;
  padding:calc(var(--sat, 0px) + 12px) 14px 12px;
  background:rgba(8,14,9,.98);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid rgba(255,255,255,.06);
  flex-shrink:0;z-index:10;position:relative;
}
.chat-detail-avatar-wrap {
  position:relative;flex-shrink:0;cursor:pointer;
  width:44px;height:44px;
}
.chat-detail-avatar {
  width:44px;height:44px;border-radius:50%;object-fit:cover;
  border:2px solid var(--green-light);display:block;
}
.chat-detail-online-dot {
  position:absolute;bottom:1px;right:1px;
  width:11px;height:11px;border-radius:50%;
  background:#22c55e;border:2px solid var(--bg);
}
.chat-detail-info {
  flex:1;min-width:0;cursor:pointer;
}
.chat-detail-name {
  font-weight:700;font-size:16px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--text);line-height:1.2;
}
.chat-detail-status {
  font-size:11.5px;color:var(--teal);margin-top:2px;
}
.chat-detail-action-btn {
  width:38px;height:38px;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);
  color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;touch-action:manipulation;transition:background .15s;
}
.chat-detail-action-btn:active { background:rgba(255,255,255,.1); }

/* Área de mensagens */
.messages-container {
  flex:1;
  overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:12px 14px 8px;
  display:flex;flex-direction:column;
  gap:6px;
  min-height:0;
}
.messages-container::-webkit-scrollbar { display:none; }

/* Rows */
.msg-row { display:flex;align-items:flex-end;gap:8px; }
.msg-row.mine   { justify-content:flex-end; }
.msg-row.theirs { justify-content:flex-start; }

/* Bubbles */
.msg-bubble {
  max-width:75%;
  padding:10px 14px;
  border-radius:18px;
  font-size:14.5px;
  line-height:1.5;
  word-break:break-word;
  position:relative;
}
.msg-row.mine .msg-bubble {
  background:linear-gradient(135deg,#0d6b35,#065f46);
  color:white;
  border-bottom-right-radius:4px;
  box-shadow:0 2px 10px rgba(13,107,53,.3);
}
.msg-row.theirs .msg-bubble {
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.07);
  color:var(--text);
  border-bottom-left-radius:4px;
}
.msg-time {
  display:block;font-size:10px;
  margin-top:4px;opacity:.5;
  text-align:right;
}
.msg-row.theirs .msg-time { text-align:left; }

/* Data separadora */
.msg-date-sep {
  text-align:center;
  font-size:11px;color:var(--muted);
  padding:8px 0;letter-spacing:.04em;
}

/* Input area */
.message-input-area {
  display:flex;align-items:center;gap:8px;
  padding:10px 12px calc(10px + var(--sab, 0px));
  background:rgba(8,14,9,.98);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-top:1px solid rgba(255,255,255,.06);
  flex-shrink:0;
}
.message-input {
  flex:1;min-width:0;
  background:rgba(255,255,255,.07);
  border:1.5px solid rgba(255,255,255,.1);
  border-radius:24px;
  padding:12px 18px;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:16px; /* 16px impede zoom no iOS */
  color:var(--text);
  outline:none;
  -webkit-appearance:none;
  transition:border-color .2s;
  min-height:48px;
  max-height:120px;
}
.message-input::placeholder { color:var(--muted); }
.message-input:focus {
  border-color:rgba(34,197,94,.4);
  background:rgba(255,255,255,.09);
}
.send-btn {
  width:48px;height:48px;min-width:48px;
  border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--green),#065f46);
  border:none;color:white;
  cursor:pointer;touch-action:manipulation;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 16px rgba(13,107,53,.4);
  transition:transform .15s,box-shadow .15s;
}
.send-btn:active {
  transform:scale(.88);
  box-shadow:0 2px 8px rgba(13,107,53,.3);
}

/* Security Kit */
.security-kit-item {
  display:flex;align-items:center;gap:16px;
  padding:16px 8px;cursor:pointer;
  border-radius:14px;touch-action:manipulation;
  transition:background .15s;
}
.security-kit-item:active { background:rgba(255,255,255,.04); }
.security-kit-icon {
  width:42px;height:42px;border-radius:12px;
  border:1px solid;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.security-kit-text { flex:1;min-width:0; }
.security-kit-title {
  font-size:12px;font-weight:800;color:var(--text);
  letter-spacing:.07em;margin-bottom:4px;
}
.security-kit-desc {
  font-size:13px;color:var(--muted);line-height:1.45;
}

/* """"""""""""""""""""""""""""""""""""""
   QUEM ME CURTIU
   """""""""""""""""""""""""""""""""""""" */

/* Header */
.likes-header {
  padding:20px 20px 16px;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg,rgba(248,113,113,.05) 0%,transparent 100%);
  flex-shrink:0;
}
.likes-header-top {
  display:flex;align-items:center;justify-content:space-between;margin-bottom:2px;
}
.likes-header-title {
  font-family:'Playfair Display',serif;font-size:24px;font-weight:700;
  color:var(--text);display:flex;align-items:center;gap:8px;
}
.likes-header-badge {
  display:none;align-items:center;
  background:rgba(248,113,113,.15);border:1.5px solid rgba(248,113,113,.3);
  color:#f87171;font-size:12px;font-weight:700;
  padding:4px 12px;border-radius:100px;
}
.likes-header-sub { font-size:13px;color:var(--muted);margin-bottom:12px; }

/* Barra de revelações semanais */
.likes-reveal-bar {
  display:flex;align-items:center;gap:10px;
  background:rgba(201,162,39,.06);
  border:1px solid rgba(201,162,39,.18);
  border-radius:14px;padding:10px 14px;
}
.likes-reveal-dots { display:flex;gap:5px;align-items:center; }
.likes-reveal-dot {
  width:9px;height:9px;border-radius:50%;
  background:rgba(201,162,39,.22);
  transition:background .3s;
}
.likes-reveal-dot.used { background:var(--gold); }
.likes-reveal-bar-text { font-size:12px;color:var(--muted);flex:1;line-height:1.35; }
.likes-reveal-bar-text b { color:var(--gold-light);font-weight:700; }

/* Grid */
.likes-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

/* Rótulo de seção dentro do grid */
.likes-section-label {
  grid-column:1/-1;
  font-size:11px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--muted);
  padding:2px 0;display:flex;align-items:center;gap:8px;
}
.likes-section-label::after {
  content:'';flex:1;height:1px;
  background:rgba(255,255,255,.06);
}

/* Cards */
.liker-card {
  border-radius:20px;overflow:hidden;position:relative;
  aspect-ratio:3/4;
  background:var(--surface);
  border:1.5px solid rgba(255,255,255,.07);
  cursor:pointer;
  transition:transform .18s,box-shadow .18s;
  box-shadow:0 4px 18px rgba(0,0,0,.25);
}
.liker-card:active { transform:scale(.96); }
.liker-card.revealed {
  border-color:rgba(201,162,39,.3);
  box-shadow:0 4px 24px rgba(201,162,39,.1);
}

/* Fade-in de entrada */
@keyframes likerIn {
  from { opacity:0;transform:translateY(12px) scale(.97); }
  to   { opacity:1;transform:none; }
}
.liker-card { animation:likerIn .35s ease both; }

.liker-photo {
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top;
}
.liker-gradient {
  position:absolute;inset:0;
  background:linear-gradient(transparent 28%,rgba(0,0,0,.55) 58%,rgba(0,0,0,.93));
}

/* Info sobre o gradiente */
.liker-info {
  position:absolute;bottom:50px;left:0;right:0;
  padding:0 13px 6px;
}
.liker-name {
  font-weight:700;font-size:15px;color:white;
  text-shadow:0 1px 8px rgba(0,0,0,.7);line-height:1.2;
}
.liker-city {
  font-size:11px;color:rgba(255,255,255,.6);
  margin-top:3px;display:flex;align-items:center;gap:3px;
}

/* Botão match */
.liker-match-btn {
  position:absolute;bottom:0;left:0;right:0;
  padding:12px 8px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--green),var(--green-mid));
  color:white;font-weight:800;font-size:12px;letter-spacing:.02em;
  display:flex;align-items:center;justify-content:center;gap:6px;
  touch-action:manipulation;
  transition:filter .15s;
}
.liker-match-btn:active { filter:brightness(.82); }

/* Cards bloqueadas */
.liker-card.blurred .liker-photo {
  filter:blur(26px);transform:scale(1.22);
}
.liker-blur-overlay {
  position:absolute;inset:0;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:7px;padding:14px;
  background:linear-gradient(180deg,rgba(8,14,9,.15) 0%,rgba(8,14,9,.6) 100%);
}
.liker-lock-icon {
  width:46px;height:46px;border-radius:50%;
  background:rgba(201,162,39,.15);border:1.5px solid rgba(201,162,39,.4);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);margin-bottom:2px;
}
.liker-blur-title {
  font-size:13px;font-weight:700;color:white;
  text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.6);
}
.liker-blur-sub {
  font-size:10px;color:rgba(255,255,255,.55);
  text-align:center;line-height:1.4;max-width:100px;
}
.liker-reveal-btn {
  background:linear-gradient(135deg,var(--gold),#d97706);
  color:#000;font-size:11px;font-weight:800;
  border:none;border-radius:100px;padding:8px 16px;
  cursor:pointer;touch-action:manipulation;
  transition:opacity .15s,transform .15s;margin-top:3px;
}
.liker-reveal-btn:active { opacity:.8;transform:scale(.96); }

/* Banner upgrade (faixa bloqueados) */
.likes-locked-banner {
  grid-column:1/-1;
  background:linear-gradient(135deg,rgba(201,162,39,.1),rgba(201,162,39,.04));
  border:1.5px solid rgba(201,162,39,.22);
  border-radius:18px;padding:16px 18px;
  display:flex;align-items:center;gap:14px;
}
.likes-locked-banner-icon {
  width:44px;height:44px;border-radius:50%;
  background:rgba(201,162,39,.15);border:1.5px solid rgba(201,162,39,.3);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;color:var(--gold);font-size:22px;
}
.likes-locked-banner-text { flex:1;min-width:0; }
.likes-locked-banner-title {
  font-size:14px;font-weight:700;color:var(--text);line-height:1.3;
}
.likes-locked-banner-sub {
  font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4;
}
.likes-locked-banner-btn {
  background:linear-gradient(135deg,var(--gold),#d97706);
  color:#000;font-size:12px;font-weight:800;
  border:none;border-radius:100px;
  padding:9px 16px;cursor:pointer;white-space:nowrap;
  touch-action:manipulation;transition:opacity .15s;flex-shrink:0;
}
.likes-locked-banner-btn:active { opacity:.8; }

/* Loading */
.likes-loading {
  grid-column:1/-1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:70px 0;gap:14px;
}
.likes-loading-ring {
  width:38px;height:38px;border-radius:50%;
  border:3px solid rgba(248,113,113,.15);
  border-top-color:#f87171;
  animation:spin .9s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }
.likes-loading-text { font-size:13px;color:var(--muted); }

/* Empty state */
.likes-empty {
  grid-column:1/-1;display:flex;flex-direction:column;
  align-items:center;text-align:center;padding:56px 24px 32px;gap:10px;
}
.likes-empty-icon {
  width:80px;height:80px;border-radius:50%;
  background:rgba(248,113,113,.06);border:1.5px solid rgba(248,113,113,.15);
  display:flex;align-items:center;justify-content:center;margin-bottom:6px;
}
.likes-empty-title {
  font-size:18px;font-weight:700;color:var(--text);
  font-family:'Playfair Display',serif;
}
.likes-empty-sub {
  font-size:13px;color:var(--muted);line-height:1.6;max-width:260px;
}
.likes-empty-btn {
  display:flex;align-items:center;gap:7px;
  background:linear-gradient(135deg,var(--green),var(--green-mid));
  color:white;font-size:13px;font-weight:700;border:none;border-radius:100px;
  padding:11px 22px;cursor:pointer;margin-top:10px;touch-action:manipulation;
  transition:opacity .15s;box-shadow:0 4px 18px rgba(13,107,53,.25);
}
.likes-empty-btn:active { opacity:.8; }

/* """"""""""""""""""""""""""""""""""""""
   COMUNIDADE WHATSAPP
   """""""""""""""""""""""""""""""""""""" */

/* Header */
.comunidade-header {
  display:flex;align-items:center;gap:12px;
  padding:14px 16px 12px;
  border-bottom:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg,rgba(37,211,102,.06) 0%,transparent 100%);
}
.back-btn {
  width:36px;height:36px;border-radius:10px;border:1.5px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.05);color:var(--text);display:flex;
  align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;
  touch-action:manipulation;transition:background .15s;
}
.back-btn:active { background:rgba(255,255,255,.1); }
.comunidade-header-center {
  display:flex;align-items:center;gap:10px;
}
.comunidade-wpp-icon {
  width:36px;height:36px;border-radius:10px;
  background:rgba(37,211,102,.15);border:1.5px solid rgba(37,211,102,.25);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.comunidade-header-title {
  font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--text);
}
.comunidade-header-sub {
  font-size:11px;color:var(--muted);margin-top:1px;
}

/* Tabs */
.comunidade-tabs {
  display:flex;gap:8px;padding:12px 16px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.comunidade-tab {
  display:flex;align-items:center;gap:6px;
  padding:8px 16px;border-radius:100px;border:1.5px solid rgba(255,255,255,.1);
  background:transparent;color:var(--muted);font-size:13px;font-weight:600;
  cursor:pointer;touch-action:manipulation;transition:all .2s;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.comunidade-tab.active {
  background:rgba(37,211,102,.15);border-color:rgba(37,211,102,.35);
  color:#25d366;
}
.comunidade-tab:active { opacity:.8; }

/* Notice */
.comunidade-notice {
  display:flex;align-items:center;gap:8px;
  background:rgba(37,211,102,.07);border:1px solid rgba(37,211,102,.2);
  border-radius:12px;padding:10px 14px;margin-bottom:20px;
  font-size:12px;color:var(--muted);font-weight:600;
}

/* Section labels */
.comunidade-section-label {
  font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.06em;
  text-transform:uppercase;margin:0 0 10px;padding-top:4px;
}

/* Estado grid */
.comunidade-grid { display:flex;flex-direction:column;gap:8px;margin-bottom:20px; }
.comunidade-card {
  display:flex;align-items:center;gap:12px;
  background:var(--surface);border:1.5px solid rgba(255,255,255,.07);
  border-radius:14px;padding:12px 14px;cursor:pointer;
  transition:background .15s,border-color .15s;
}
.comunidade-card:active { background:var(--card);border-color:rgba(37,211,102,.2); }
.comunidade-card-flag {
  width:40px;height:40px;border-radius:10px;
  background:rgba(37,211,102,.1);border:1.5px solid rgba(37,211,102,.2);
  display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#25d366;letter-spacing:0;flex-shrink:0;
}
.comunidade-card-info { flex:1;min-width:0; }
.comunidade-card-name { font-size:14px;font-weight:700;color:var(--text); }
.comunidade-card-desc { font-size:11px;color:var(--muted);margin-top:1px; }
.comunidade-join-btn {
  background:rgba(37,211,102,.15);border:1.5px solid rgba(37,211,102,.3);
  color:#25d366;font-size:12px;font-weight:700;
  border-radius:100px;padding:6px 14px;cursor:pointer;
  touch-action:manipulation;transition:background .15s;white-space:nowrap;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.comunidade-join-btn:active { background:rgba(37,211,102,.25); }

/* Faixas etárias */
.comunidade-grid-ages { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
.comunidade-card-age {
  background:var(--surface);border:1.5px solid rgba(255,255,255,.08);
  border-radius:18px;padding:20px 16px;display:flex;flex-direction:column;
  align-items:center;text-align:center;gap:4px;cursor:pointer;
  transition:border-color .2s,background .2s;
}
.comunidade-card-age:active { border-color:rgba(37,211,102,.3);background:var(--card); }
.comunidade-age-range {
  font-family:'Playfair Display',serif;font-size:28px;font-weight:700;
  color:#25d366;line-height:1;
}
.comunidade-age-label { font-size:11px;color:var(--muted);font-weight:600; }
.comunidade-age-desc  { font-size:11px;color:var(--muted);margin-top:6px;line-height:1.4; }
.comunidade-join-full {
  width:100%;margin-top:12px;padding:9px 0;border-radius:100px;
  display:flex;align-items:center;justify-content:center;
}

/* Home card badge Novo */
.home-card-badge-new {
  font-size:10px;font-weight:800;color:#25d366;
  background:rgba(37,211,102,.12);border:1px solid rgba(37,211,102,.25);
  padding:2px 8px;border-radius:100px;margin-right:6px;white-space:nowrap;
  flex-shrink:0;
}
.home-card-whatsapp { border-color:rgba(37,211,102,.18); }
.home-card-whatsapp:active { border-color:rgba(37,211,102,.35); }

/* Drawer */
.drawer-item-whatsapp { color:#25d366!important; }

/* ══════════════════════════════════════
   PERFIL — nova tela
   ══════════════════════════════════════ */

.profile-scroll-area {
  flex:1;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding:calc(16px + var(--sat,0px)) 16px 0;
}
.profile-scroll-area::-webkit-scrollbar { display:none; }

/* Avatar + nome no topo */
.profile-top-header {
  display:flex;align-items:center;gap:16px;
  margin-bottom:18px;
}

/* Anel de progresso do perfil */
.profile-avatar-ring-wrap {
  position:relative;flex-shrink:0;
  width:72px;height:72px;
}
.profile-ring-svg {
  position:absolute;inset:0;width:72px;height:72px;
}
.profile-ring-bg {
  stroke:rgba(255,255,255,.08);
}
.profile-ring-fill {
  stroke:var(--green-light);
  transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1);
}
.profile-ring-fill.almost { stroke:#c9a227; }
.profile-ring-fill.done   { stroke:#22c55e; }
.profile-top-avatar {
  position:absolute;
  top:6px;left:6px;
  width:60px;height:60px;
  border-radius:50%;object-fit:cover;display:block;
}
.profile-ring-pct {
  position:absolute;
  bottom:-6px;left:50%;transform:translateX(-50%);
  background:var(--card);
  border:1.5px solid rgba(255,255,255,.12);
  border-radius:20px;
  font-size:10px;font-weight:800;
  color:var(--text);
  padding:1px 6px;
  white-space:nowrap;
  line-height:1.6;
}

.profile-top-name {
  font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.2;
}
.profile-top-sub {
  font-size:13px;color:var(--muted);margin-top:3px;
}
.profile-completion-label {
  font-size:12px;font-weight:600;margin-top:5px;
  color:var(--muted);
}
.profile-completion-label.done { color:#22c55e; }

/* Botão Editar Perfil */
.profile-edit-btn {
  width:100%;padding:15px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  border-radius:16px;
  color:var(--text);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:15px;font-weight:600;
  cursor:pointer;touch-action:manipulation;
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin-bottom:16px;
  transition:background .15s;
}
.profile-edit-btn:active { background:rgba(255,255,255,.1); }

/* Card do Plano */
.ppc-card {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  border-radius:20px;
  padding:20px 18px 16px;
  margin-bottom:16px;
}
.ppc-header {
  display:flex;align-items:center;gap:14px;margin-bottom:16px;
}
.ppc-icon-wrap {
  width:52px;height:52px;border-radius:14px;flex-shrink:0;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.5);
}
.ppc-icon-wrap.icon-gold   { background:rgba(201,162,39,.15);border-color:rgba(201,162,39,.25);color:#c9a227; }
.ppc-icon-wrap.icon-silver { background:rgba(180,188,200,.12);border-color:rgba(180,188,200,.2);color:#94a3b8; }
.ppc-icon-wrap.icon-diamond{ background:rgba(56,189,248,.12);border-color:rgba(56,189,248,.2);color:#38bdf8; }
.ppc-info { flex:1;min-width:0; }
.ppc-plan-name {
  font-size:18px;font-weight:800;color:var(--text);letter-spacing:-.01em;line-height:1.2;
}
.ppc-plan-status {
  font-size:10.5px;font-weight:700;letter-spacing:.1em;
  color:var(--muted);margin-top:3px;text-transform:uppercase;
}
.ppc-plan-status.active  { color:#22c55e; }
.ppc-plan-status.expired { color:var(--danger); }
.ppc-upgrade-btn {
  background:transparent;
  border:1.5px solid #c9a227;
  color:#c9a227;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:12px;font-weight:800;
  padding:8px 14px;border-radius:10px;
  cursor:pointer;touch-action:manipulation;
  letter-spacing:.06em;flex-shrink:0;
  transition:background .15s;
}
.ppc-upgrade-btn:active { background:rgba(201,162,39,.12); }
.ppc-upgrade-btn.hidden { display:none; }

.ppc-divider { height:1px;background:rgba(255,255,255,.07);margin-bottom:14px; }

/* Listas de benefícios */
.ppc-benefits-list { display:flex;flex-direction:column;gap:12px;margin-bottom:14px; }
.ppc-benefit-row   { display:flex;align-items:flex-start;gap:11px; }
.ppc-benefit-icon  {
  width:22px;height:22px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  margin-top:1px;
}
.ppc-benefit-icon.ok   { background:rgba(34,197,94,.12);border:1.5px solid rgba(34,197,94,.3); }
.ppc-benefit-icon.no   { background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1); }
.ppc-benefit-text      { font-size:14px;color:var(--text);line-height:1.4;font-weight:500; }
.ppc-benefit-text.crossed { color:rgba(255,255,255,.3);text-decoration:line-through; }
.ppc-not-label {
  font-size:10.5px;font-weight:800;color:var(--muted);
  letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:12px;margin-top:2px;
}
.ppc-expiry {
  font-size:13px;color:var(--muted);margin-top:6px;padding-top:14px;
  border-top:1px solid rgba(255,255,255,.06);
}

/* Instalar App */
.profile-install-card {
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
  border-radius:20px;
  padding:24px 20px;
  margin-bottom:16px;
  text-align:center;
  cursor:pointer;touch-action:manipulation;
  transition:background .15s;
}
.profile-install-card:active { background:rgba(255,255,255,.07); }
.profile-install-icon {
  width:50px;height:50px;border-radius:50%;
  background:linear-gradient(135deg,var(--green),#065f46);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 14px;
  box-shadow:0 6px 20px rgba(13,107,53,.35);
}
.profile-install-title {
  font-size:17px;font-weight:800;color:var(--text);margin-bottom:8px;letter-spacing:-.01em;
}
.profile-install-desc {
  font-size:13px;color:var(--muted);line-height:1.5;
}

/* Ações */
.profile-actions-list { display:flex;flex-direction:column;gap:2px;margin-bottom:8px; }
.profile-action-row {
  display:flex;align-items:center;gap:14px;
  padding:16px 4px;
  background:transparent;border:none;
  color:var(--text);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:500;
  cursor:pointer;touch-action:manipulation;
  border-bottom:1px solid rgba(255,255,255,.05);
  width:100%;text-align:left;
  transition:opacity .15s;
}
.profile-action-row:last-child { border-bottom:none; }
.profile-action-row:active { opacity:.6; }
.profile-action-row svg:first-child { color:var(--muted);flex-shrink:0; }
.profile-action-row span { flex:1; }
.profile-action-chevron { color:rgba(255,255,255,.2);flex-shrink:0; }
.profile-action-danger  { color:var(--rose); }
.profile-action-danger svg:first-child { color:var(--rose); }

/* Legado (mantido para outros usos) */
.profile-name-big      { font-family:'Playfair Display',serif;font-size:clamp(26px,8vw,32px);font-weight:900; }
.profile-section-title { font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;margin:20px 0 8px; }
.plan-card   { background:linear-gradient(135deg,rgba(13,107,53,.22),rgba(201,162,39,.08));border:1px solid rgba(34,197,94,.25);border-radius:18px;padding:16px 18px;display:flex;align-items:center;gap:14px; }
.plan-icon   { font-size:30px; }
.plan-info   { flex:1; }
.plan-name   { font-weight:700;font-size:15px;color:var(--gold-light); }
.plan-expiry { font-size:12px;color:var(--muted);margin-top:2px; }
.upgrade-btn { background:linear-gradient(135deg,var(--gold),#b8860b);border:none;color:white;font-family:'Plus Jakarta Sans',sans-serif;font-size:13px;font-weight:700;padding:9px 15px;border-radius:12px;cursor:pointer;min-height:36px; }

/* """"""""""""""""""""""""""""""""""""""
   MODAL ASSINATURA
   """""""""""""""""""""""""""""""""""""" */
.modal-overlay {
  position:fixed;inset:0;z-index:90;
  background:rgba(4,10,5,.88);backdrop-filter:blur(10px);
  display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .3s;
}
.modal-overlay.open { opacity:1;pointer-events:all; }
.modal-sheet {
  background:linear-gradient(175deg,#0d1f10,#060e07);
  border-radius:28px 28px 0 0;
  padding:24px 20px calc(24px + var(--sab));
  width:100%;border-top:1px solid rgba(255,255,255,.07);
  transform:translateY(100%);transition:transform .4s cubic-bezier(.32,.72,0,1);
}
.modal-overlay.open .modal-sheet { transform:translateY(0); }
.modal-handle { width:38px;height:4px;background:rgba(255,255,255,.15);border-radius:2px;margin:0 auto 20px; }
.modal-title  { font-family:'Playfair Display',serif;font-size:24px;font-weight:900;text-align:center;margin-bottom:6px; }
.modal-sub    { text-align:center;color:var(--muted);font-size:14px;margin-bottom:22px; }
/* Tier cards planos */
/* Checkout plan pills */
.cko-plan-pill {
  display:flex;flex-direction:column;align-items:center;
  background:rgba(255,255,255,.06);
  border:1.5px solid rgba(255,255,255,.1);
  border-radius:14px;padding:9px 16px;cursor:pointer;
  touch-action:manipulation;transition:all .18s;
  gap:2px;
}
.cko-plan-pill:active { transform:scale(.96); }
.cko-pill-name {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:13px;font-weight:700;color:rgba(255,255,255,.7);
  white-space:nowrap;
}
.cko-pill-price {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;font-weight:500;color:rgba(255,255,255,.4);
  white-space:nowrap;
}
.cko-pill-active {
  background:rgba(201,162,39,.12);
  border-color:rgba(201,162,39,.5);
}
.cko-pill-active .cko-pill-name { color:#f0d060; }
.cko-pill-active .cko-pill-price { color:#c9a227; }

.plan-tier-card {
  position:relative;border-radius:20px;padding:18px 18px 16px;
  margin-bottom:12px;cursor:pointer;border:2px solid transparent;
  transition:all .2s;overflow:hidden;
}
.plan-tier-card:active { transform:scale(.98); }

/* Bronze */
.plan-bronze { background:linear-gradient(135deg,rgba(205,127,50,.12),rgba(139,69,19,.06));border-color:rgba(205,127,50,.3); }
.plan-bronze.selected { border-color:#cd7f32;background:linear-gradient(135deg,rgba(205,127,50,.22),rgba(139,69,19,.1));box-shadow:0 0 0 1px rgba(205,127,50,.2); }
.plan-icon-bronze { background:rgba(205,127,50,.2);color:#cd7f32; }
.plan-bronze .plan-tier-name { color:#e8a462; }
.plan-bronze .plan-tier-check { background:#cd7f32; }
.plan-bronze .plan-perk svg { stroke:#cd7f32; }

/* Prata */
.plan-prata { background:linear-gradient(135deg,rgba(180,188,200,.1),rgba(148,163,184,.05));border-color:rgba(180,188,200,.25); }
.plan-prata.selected { border-color:#b0b7c3;background:linear-gradient(135deg,rgba(180,188,200,.2),rgba(148,163,184,.1));box-shadow:0 0 0 1px rgba(180,188,200,.15); }
.plan-icon-prata { background:rgba(180,188,200,.15);color:#b0b7c3; }
.plan-prata .plan-tier-name { color:#d4dae3; }
.plan-prata .plan-tier-check { background:#94a3b8; }
.plan-prata .plan-perk svg { stroke:#94a3b8; }

/* Diamante */
.plan-diamante { background:linear-gradient(135deg,rgba(56,189,248,.1),rgba(14,165,233,.05));border-color:rgba(56,189,248,.3); }
.plan-diamante.selected { border-color:#38bdf8;background:linear-gradient(135deg,rgba(56,189,248,.18),rgba(14,165,233,.08));box-shadow:0 0 0 1px rgba(56,189,248,.15),0 4px 24px rgba(56,189,248,.1); }
.plan-icon-diamante { background:rgba(56,189,248,.15);color:#38bdf8; }
.plan-diamante .plan-tier-name { color:#7dd3fc; }
.plan-diamante .plan-tier-check { background:#0ea5e9; }
.plan-diamante .plan-perk svg { stroke:#38bdf8; }

/* Shared tier */
.plan-tier-header { display:flex;align-items:center;gap:12px;margin-bottom:12px; }
.plan-tier-icon { width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.plan-tier-name   { font-weight:800;font-size:17px; }
.plan-tier-period { font-size:12px;color:var(--muted);margin-top:1px; }
.plan-tier-check  { margin-left:auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:white;flex-shrink:0; }
.plan-tier-price-row { display:flex;align-items:baseline;gap:6px;margin-bottom:12px; }
.plan-tier-price { font-family:'Playfair Display',serif;font-size:26px;font-weight:900;color:white; }
.plan-tier-price-label { font-size:12px;color:var(--muted); }
.plan-tier-perks { display:flex;flex-direction:column;gap:6px; }
.plan-perk { display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted); }
.plan-popular-badge { position:absolute;top:14px;right:14px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#0c1a2e;background:linear-gradient(135deg,#38bdf8,#0ea5e9);padding:3px 9px;border-radius:100px; }

.plan-badge { background:linear-gradient(135deg,var(--gold),#b8860b);color:white;font-size:10px;font-weight:700;padding:3px 8px;border-radius:100px;text-transform:uppercase;letter-spacing:.5px; }
.subscribe-btn {
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#c9a227 0%,#e09020 50%,#b8860b 100%);
  border:none;color:#fff;
  font-family:'Plus Jakarta Sans',sans-serif;font-size:17px;font-weight:800;
  letter-spacing:.02em;
  padding:18px 20px;border-radius:18px;cursor:pointer;width:100%;margin-top:10px;
  box-shadow:0 8px 28px rgba(201,162,39,.45),0 2px 8px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .18s,box-shadow .18s;min-height:56px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  touch-action:manipulation;
}
.subscribe-btn::before {
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,0) 55%);
  border-radius:18px;pointer-events:none;
}
.subscribe-btn:active { transform:scale(.96);box-shadow:0 4px 16px rgba(201,162,39,.3); }

/* """"""""""""""""""""""""""""""""""""""
   FORMULÁRIO DE EDI!ÒO
   """""""""""""""""""""""""""""""""""""" */
.field       { margin-bottom:12px; }
.field-label { font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:6px; }
.field-label .req { color:var(--rose); }
.input-wrap  { position:relative;display:flex;align-items:center; }
.input-icon  { position:absolute;left:16px;font-size:17px;pointer-events:none;opacity:.45;z-index:1; }
.field input,.field select,.field textarea {
  width:100%;background:rgba(14,26,16,.9);border:1.5px solid rgba(255,255,255,.09);
  border-radius:16px;padding:14px 16px 14px 46px;
  color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;font-size:16px;outline:none;
  transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;
}
.field input:focus,.field textarea:focus {
  border-color:rgba(34,197,94,.5);box-shadow:0 0 0 3px rgba(13,107,53,.12);
}
.field textarea { padding:14px 16px;resize:none;min-height:88px;line-height:1.5; }
.field input::placeholder { color:var(--muted);opacity:.6; }
/* Tags */
.tags-grid { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px; }
.tag-chip  {
  background:rgba(14,26,16,.8);border:1.5px solid rgba(255,255,255,.09);
  border-radius:100px;padding:8px 14px;
  font-size:13px;font-weight:500;cursor:pointer;
  transition:all .18s;color:var(--muted);white-space:nowrap;
  min-height:36px;display:flex;align-items:center;
}
.tag-chip.selected { background:rgba(13,107,53,.2);border-color:var(--green-mid);color:var(--green-light); }
.tag-chip:active   { transform:scale(.95); }
/* Fotos  editar perfil */
.photo-slots-grid  { display:grid;grid-template-columns:2fr 1fr;gap:8px;height:220px; }
.photo-slots-side  { display:grid;grid-template-rows:1fr 1fr;gap:8px; }
.photo-slot {
  position:relative;border-radius:16px;overflow:hidden;
  background:rgba(14,26,16,.8);border:2px dashed rgba(255,255,255,.12);
  cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;
  transition:border-color .2s;
}
.photo-slot:active { opacity:.85; }
.photo-slot img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top; }
.photo-slot:not(.has-photo) img { display:none; }
.photo-slot-overlay { position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none; }
.photo-slot.has-photo .photo-slot-overlay { position:absolute;inset:0;z-index:2;background:rgba(0,0,0,.22);display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;pointer-events:none; }
.photo-slot-icon   { font-size:22px;line-height:1; }
.slot-main .photo-slot-icon { font-size:28px; }
.photo-slot-label  { font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px; }
/* Seletor gênero */
.gender-opt {
  flex:1;padding:14px 10px;border-radius:16px;
  background:rgba(14,26,16,.8);border:2px solid rgba(255,255,255,.09);
  color:var(--muted);font-family:'Plus Jakarta Sans',sans-serif;font-size:15px;font-weight:600;
  cursor:pointer;transition:all .18s;touch-action:manipulation;
}
.gender-opt.selected { background:rgba(13,107,53,.18);border-color:var(--green-mid);color:var(--green-light); }
.gender-opt:active { transform:scale(.97); }

/* """"""""""""""""""""""""""""""""""""""
   EMPTY STATE
   """""""""""""""""""""""""""""""""""""" */
.empty-state {
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:32px 24px;width:100%;height:100%;
}
.empty-icon  { font-size:52px;margin-bottom:16px;opacity:.8; }
.empty-title { font-family:'Playfair Display',serif;font-size:20px;font-weight:900;margin-bottom:8px; }
.empty-text  { font-size:14px;color:var(--muted);line-height:1.65;max-width:240px; }

/* """"""""""""""""""""""""""""""""""""""
   BANNER INSTALAR PWA
   """""""""""""""""""""""""""""""""""""" */
.install-banner {
  position:fixed;bottom:calc(90px + var(--sab));left:12px;right:12px;
  background:linear-gradient(135deg,rgba(13,33,16,.98),rgba(6,12,7,.98));
  border:1px solid rgba(34,197,94,.2);border-radius:20px;
  padding:14px 16px;z-index:80;display:flex;align-items:center;gap:12px;
  box-shadow:0 16px 48px rgba(0,0,0,.55);animation:slideUp .4s ease;
}
.install-icon  { width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--green),var(--gold));display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0; }
.install-text  { flex:1;min-width:0; }
.install-title { font-weight:700;font-size:13px;margin-bottom:2px; }
.install-desc  { font-size:11px;color:var(--muted);line-height:1.4; }
.install-close { background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:8px;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center; }

/* """"""""""""""""""""""""""""""""""""""
   PARTÍCULAS + MISC
   """""""""""""""""""""""""""""""""""""" */
.particle { position:fixed;pointer-events:none;border-radius:50%;opacity:.1;animation:drift linear infinite; }
@keyframes drift {
  0%   { transform:translateY(100vh) scale(0);opacity:0; }
  10%  { opacity:.1; }
  90%  { opacity:.1; }
  100% { transform:translateY(-20vh) translateX(30px) scale(1.5);opacity:0; }
}
.spinner { display:none; }
button.loading .spinner { display:inline-block;animation:spin .8s linear infinite; }
button.loading { opacity:.7; }

/* """"""""""""""""""""""""""""""""""""""
   RESPONSIVE — Mobile first
   """""""""""""""""""""""""""""""""""""" */

/* Telas muito pequenas (≤ 360px — Moto G, Galaxy A) */
@media (max-width:360px) {
  .topbar       { padding-left:12px;padding-right:12px; }
  .logo-text    { font-size:16px; }
  .logo-cross   { width:26px;height:26px; }
  .logo-cross::before { font-size:18px; }
  .topbar-actions { gap:6px; }
  .icon-btn     { width:36px;height:36px; }
  .card-info    { padding:12px 12px 10px; }
  .card-name    { font-size:clamp(20px,6.5vw,26px) !important; }
  .card-age     { font-size:clamp(16px,4.5vw,20px) !important; }
  .actions      { gap:6px;padding-left:8px;padding-right:8px; }
  .btn-skip     { width:50px;height:50px; }
  .btn-like     { width:62px;height:62px; }
  .btn-super    { width:44px;height:44px; }
  .btn-back,.btn-rewind { width:38px;height:38px; }
  .bottom-nav   { margin:0 6px calc(8px + var(--sab,0px));padding:4px 4px; }
  .nav-item     { padding:6px 6px;min-width:40px; }
  .nav-label    { font-size:7.5px;letter-spacing:0; }
  .card-stack   { height:clamp(340px,56svh,480px); }
  .screen-title { font-size:20px; }
  /* Chat lista — tela pequena */
  .chat-screen-header { padding-top:calc(10px + var(--sat,0px));padding-left:14px;padding-right:14px; }
  .chat-section-title { font-size:18px; }
  .chat-conn-row      { padding:0 14px 14px;gap:8px; }
  .conn-card-img-wrap { width:88px;height:122px; }
  .chat-promo-banner  { margin:0 14px 16px;padding:12px 14px; }
  .chat-item          { padding:10px 14px; }
  .chat-avatar        { width:52px;height:52px; }
  .chat-name          { font-size:14px; }
  /* Chat individual — tela pequena */
  .chat-detail-header   { padding:calc(var(--sat,0px) + 10px) 12px 10px;gap:10px; }
  .chat-detail-avatar   { width:40px;height:40px; }
  .chat-detail-avatar-wrap { width:40px;height:40px; }
  .chat-detail-name     { font-size:15px; }
  .msg-bubble           { font-size:14px;padding:9px 13px; }
  .message-input-area   { padding:8px 10px calc(8px + var(--sab,0px));gap:7px; }
  .message-input        { padding:10px 14px;font-size:16px; }
  .send-btn             { width:44px;height:44px;min-width:44px; }
  .messages-container   { padding:10px 10px 6px; }
}

/* Telas pequenas/médias (361px–430px — iPhone SE, iPhone 14, Galaxy S) */
@media (max-width:430px) and (min-width:361px) {
  .card-stack   { height:clamp(355px,58svh,520px); }
  .logo-text    { font-size:17px; }
  /* Chat */
  .story-ring   { width:64px;height:64px; }
  .story-img    { width:58px;height:58px; }
}

/* """"""""""""""""""""""""""""""""""""""
   COMPARE MODAL — 2 colunas Prata/Ouro
   """""""""""""""""""""""""""""""""""""" */
.cmp-row {
  display:grid;
  grid-template-columns:1fr 80px 80px;
  align-items:center;
  padding:11px 16px;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.cmp-alt { background:rgba(255,255,255,0.025); }
.cmp-feat {
  font-size:13px;
  color:rgba(255,255,255,0.78);
  line-height:1.3;
}
.cmp-prata, .cmp-ouro {
  display:flex;
  align-items:center;
  justify-content:center;
}

/* """"""""""""""""""""""""""""""""""""""
   FILTER SHEET — toggle & inputs
   """""""""""""""""""""""""""""""""""""" */
.flt-toggle {
  position:relative;
  display:inline-block;
  width:46px;
  height:26px;
  flex-shrink:0;
}
.flt-toggle input { opacity:0;width:0;height:0; }
.flt-toggle-track {
  position:absolute;inset:0;
  background:rgba(255,255,255,0.1);
  border-radius:13px;
  cursor:pointer;
  transition:background .2s;
  border:1px solid rgba(255,255,255,0.1);
}
.flt-toggle-track::before {
  content:'';
  position:absolute;
  left:3px;top:3px;
  width:18px;height:18px;
  background:rgba(255,255,255,0.5);
  border-radius:50%;
  transition:transform .2s,background .2s;
}
.flt-toggle input:checked + .flt-toggle-track {
  background:#0d6b35;
  border-color:rgba(34,197,94,0.4);
}
.flt-toggle input:checked + .flt-toggle-track::before {
  transform:translateX(20px);
  background:#22c55e;
}

/* Fix select dark bg on iOS */
#fltEstado option {
  background:#0e1a10;
  color:white;
}

/* """"""""""""""""""""""""""""""""""""""
   CHAT — GRUPOS CRISTÃOS
   """""""""""""""""""""""""""""""""""""" */
.chat-group-card {
  flex-shrink:0;
  width:100px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;
  padding:12px 10px 10px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:background .15s;
}
.chat-group-card:active { background:rgba(255,255,255,0.07); }
.chat-group-icon {
  width:44px;height:44px;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;
  flex-shrink:0;
}

/* ── Campos de dados básicos em Editar Perfil (gênero/nascimento) ──
   Reaproveita o visual do cadastro (auth.css) pra manter consistência. */
.date-select {
  width: 100%;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: 14px;
  padding: 14px 10px;
  color: var(--text);
  font-family: 'DM Sans', 'Plus Jakarta Sans', sans-serif;
  font-size: 15px;
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s, box-shadow .2s;
  text-align: center;
}
.date-select:focus {
  border-color: rgba(201,162,39,0.6);
  box-shadow: 0 0 0 3px rgba(201,162,39,.12);
}
.date-select option { background: var(--surface); color: var(--text); }

.gender-btn {
  background: rgba(255,255,255,.03);
  border: 2px solid rgba(255,255,255,.1);
  border-radius: 18px;
  padding: 20px 10px 16px;
  color: rgba(255,255,255,.55);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 14px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: all .2s;
}
.gender-btn:active { transform: scale(.95); }
.gender-btn.selected {
  border-color: rgba(34,197,94,.55);
  background: rgba(13,107,53,.22);
  color: var(--green-light);
  box-shadow: 0 4px 20px rgba(13,107,53,.18);
}
.chat-group-name {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;
  font-weight:700;
  color:rgba(255,255,255,0.85);
  text-align:center;
  line-height:1.3;
}
.chat-group-count {
  font-size:10px;
  color:rgba(255,255,255,0.35);
  text-align:center;
}
.chat-group-lock {
  position:absolute;
  top:6px;right:6px;
  width:16px;height:16px;
  background:rgba(0,0,0,0.45);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.chat-group-lock::after {
  content:'🔒';
  font-size:8px;
  line-height:1;
}

/* Altura baixa (landscape ou telefones antigos) */
@media (max-height:640px) {
  .card-stack   { height:clamp(240px,46svh,360px); }
  .actions      { padding-top:6px;padding-bottom:calc(6px + var(--sab,0px));gap:8px; }
  .topbar       { padding-top:calc(var(--sat) + 8px);padding-bottom:8px; }
  .match-photos { margin-bottom:12px; }
  .match-subtitle { margin-bottom:12px; }
  .match-btn-primary { padding:14px 40px; }
  .bottom-nav   { margin-bottom:calc(6px + var(--sab,0px)); }
}

/* Altura muito baixa (landscape) */
@media (max-height:480px) {
  .card-stack   { height:clamp(180px,56svh,280px); }
  .actions      { padding-top:4px;padding-bottom:calc(4px + var(--sab,0px));gap:6px; }
  .bottom-nav   { padding:3px 4px; }
  .nav-item     { padding:5px 8px; }
  .nav-label    { display:none; }
  .topbar       { padding-bottom:6px; }
}

/* Telas grandes (≥ 430px — iPhone Plus, Pro Max) */
@media (min-width:430px) {
  .card-stack   { height:clamp(400px,62svh,580px); }
  .btn-like     { width:80px;height:80px; }
  .nav-item     { padding:9px 16px; }
}

button { touch-action:manipulation; }
.nav-item,.action-btn,.chat-item,.match-mini { touch-action:manipulation; }


/* PERFIL EXPANDIDO */
.exp-actions {
  display:flex;align-items:center;justify-content:center;
  gap:clamp(10px,3.5vw,18px);
  padding:12px 20px calc(16px + var(--sab,0px));
  background:linear-gradient(to top,rgba(8,14,9,1) 60%,transparent);
  flex-shrink:0;
}
.exp-section-label {
  font-size:10px;font-weight:700;color:rgba(255,255,255,0.3);
  text-transform:uppercase;letter-spacing:.14em;margin-bottom:8px;
}
.exp-section-header {
  display:flex;align-items:center;gap:8px;
  font-size:15px;font-weight:700;color:rgba(255,255,255,0.9);margin-bottom:10px;
}
.exp-card {
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);border-radius:16px;overflow:hidden;
}
.exp-row { display:flex;align-items:flex-start;gap:12px;padding:13px 16px; }
.exp-row + .exp-row { border-top:1px solid rgba(255,255,255,0.05); }
.exp-row-icon {
  width:32px;height:32px;border-radius:10px;flex-shrink:0;
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);
  display:flex;align-items:center;justify-content:center;margin-top:1px;
  color:rgba(255,255,255,0.55);
}
.exp-field-label { font-size:11px;font-weight:600;color:rgba(255,255,255,0.32);text-transform:uppercase;letter-spacing:.07em;margin-bottom:2px; }
.exp-field-val { font-size:14px;font-weight:500;color:rgba(255,255,255,0.85);line-height:1.4; }
.exp-intention-card {
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);border-radius:16px;
  padding:16px;display:flex;align-items:center;gap:12px;
}
.exp-intention-icon {
  width:40px;height:40px;border-radius:12px;flex-shrink:0;
  background:rgba(201,162,39,0.12);border:1px solid rgba(201,162,39,0.2);
  display:flex;align-items:center;justify-content:center;font-size:20px;
}
.exp-tag {
  background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.1);
  border-radius:100px;padding:5px 13px;font-size:12px;font-weight:500;color:rgba(255,255,255,0.72);
}
.exp-photo-dot { height:3px;border-radius:2px;background:rgba(255,255,255,0.3);flex:1;transition:all .2s;max-width:40px; }
.exp-photo-dot.active { background:white; }

/* ══════════════════════════════════════════════════════════
   SELO DE VERIFICAÇÃO
   Discreto de propósito: aparece em card, conversa, curtidas
   e perfil, então qualquer peso visual vira poluição.
   ══════════════════════════════════════════════════════════ */
.selo-verificado {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 7px;
  padding: 2px 8px 2px 6px;
  border-radius: 20px;
  background: rgba(34, 197, 94, 0.16);
  border: 1px solid rgba(34, 197, 94, 0.42);
  color: #4ade80;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.6;
  white-space: nowrap;
  vertical-align: middle;
  flex-shrink: 0;
}
.selo-verificado svg { flex-shrink: 0; }

/* Na lista de conversas e nas curtidas o espaço é curto: só o ícone. */
.selo-verificado-mini { padding: 2px; margin-left: 5px; gap: 0; }
.selo-verificado-mini .selo-verificado-txt { display: none; }

/* Celular estreito: o nome tem prioridade sobre a palavra do selo. */
@media (max-width: 360px) {
  .selo-verificado .selo-verificado-txt { display: none; }
  .selo-verificado { padding: 2px; gap: 0; }
}

/* ── Ver mais fotos: pistas visuais ────────────────────────────────────
   O carrossel por toque em zona não tem affordance nenhuma. Estas três
   peças existem pra que a pessoa SAIBA que há mais foto: contador, setas
   e as barrinhas do topo (aumentadas acima). */
.card-foto-contador {
  position:absolute; top:11px; right:12px; z-index:11;
  background:rgba(0,0,0,.45); backdrop-filter:blur(8px);
  color:#fff; font-family:'Plus Jakarta Sans',sans-serif;
  font-size:13px; font-weight:700; letter-spacing:.3px;
  padding:4px 10px; border-radius:999px;
  pointer-events:none;
}
.card-seta {
  position:absolute; top:50%; transform:translateY(-50%); z-index:11;
  width:38px; height:38px; border-radius:50%;
  background:rgba(0,0,0,.34); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .18s; pointer-events:none;   /* quem trata o toque é a foto */
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));
}
.card-seta-esq { left:10px; }
.card-seta-dir { right:10px; }

/* Botão "Ver mais" — era um círculo de 34px sem rótulo, invisível pra
   quem não tem repertório de app. Agora tem palavra. */
.card-expand-btn {
  width:auto !important; height:auto !important; border-radius:999px !important;
  padding:9px 15px !important; gap:7px;
  display:flex !important; align-items:center;
  background:rgba(0,0,0,.42) !important; backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.22);
  color:#fff; font-family:'Plus Jakarta Sans',sans-serif;
  font-size:13.5px; font-weight:700; white-space:nowrap;
}
.card-expand-btn span { line-height:1; }

/* ══════════════════════════════════════════════════════════════
   Selects de estado e cidade — 04/09/2026
   Antes vinham com style inline (background transparente, border:0,
   padding:0), o que anulava o visual de campo e deixava o estado parecendo
   texto solto no meio do formulário. Agora usam o mesmo campo dos outros e
   ganham a seta, que o appearance:none tinha comido.
   ══════════════════════════════════════════════════════════════ */
.campo-select { width: 100%; cursor: pointer; padding-right: 38px; }
.input-wrap:has(> .campo-select) { position: relative; }
.input-wrap:has(> .campo-select)::after {
  content: ''; position: absolute; right: 16px; top: 50%;
  width: 8px; height: 8px; margin-top: -6px;
  border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted);
  transform: rotate(45deg); pointer-events: none;
}

/* ══════════════════════════════════════════════════════════════
   "O que você busca?" no Editar Perfil — 04/09/2026
   Essas classes só existiam no auth.css, que o app.html não carrega. No app
   as três opções apareciam como texto solto com um emoji na frente, sem
   caixa e sem marcação da opção escolhida.
   ══════════════════════════════════════════════════════════════ */
.intencao-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 8px; margin-bottom: 8px;
}
.intencao-opt {
  background: rgba(255,255,255,.03);
  border: 2px solid rgba(255,255,255,.08);
  border-radius: 18px; padding: 16px 8px;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 8px; cursor: pointer;
  transition: border-color .2s, background .2s, color .2s;
  text-align: center; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .6px;
  color: rgba(255,255,255,.45); min-height: 86px;
}
.intencao-opt .intencao-emoji { font-size: 28px; }
.intencao-opt:active { transform: scale(.94); }
.intencao-opt.selected {
  border-color: rgba(34,197,94,.5);
  background: rgba(13,107,53,.2);
  color: var(--green-light);
  box-shadow: 0 4px 20px rgba(13,107,53,.15);
}

/* ══════════════════════════════════════════════════════════════
   14/09/2026 — tiques do chat, apagar/editar, prévia de foto,
   perfil completo e fim do deck
   ══════════════════════════════════════════════════════════════ */
@keyframes ndfFade { from { opacity: 0 } to { opacity: 1 } }
.msg-bubble { -webkit-touch-callout: none; }
.msg-tique { display: inline-flex; vertical-align: -2px; margin-left: 3px; }
.msg-editada { font-style: italic; opacity: .75; margin-right: 5px; }
.msg-apagada { font-style: italic; opacity: .6; }
.chat-preview .msg-tique { margin: 0 3px 0 0; }

.ndf-sheet-fundo { position: fixed; inset: 0; z-index: 9700; background: rgba(0,0,0,.6); display: flex; align-items: flex-end; justify-content: center; animation: ndfFade .15s ease; }
.ndf-sheet { background: var(--surface, #0e1a10); border-radius: 24px 24px 0 0; width: 100%; max-width: 480px; padding: 14px 16px calc(22px + var(--sab, 0px)); animation: slideUpSheet .26s cubic-bezier(.32,.72,0,1); }
.ndf-sheet-alca { width: 38px; height: 4px; border-radius: 2px; background: rgba(255,255,255,.16); margin: 0 auto 14px; }
.ndf-sheet-previa { font-size: 14px; color: var(--muted); text-align: center; margin: 0 8px 14px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; line-height: 1.5; }
.ndf-sheet-btn { width: 100%; padding: 15px; margin-bottom: 8px; border-radius: 14px; border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.05); color: var(--text); font: 600 15.5px 'DM Sans', sans-serif; cursor: pointer; touch-action: manipulation; }
.ndf-sheet-btn.perigo { background: rgba(244,63,94,.1); border-color: rgba(244,63,94,.3); color: #fb7185; }
.ndf-sheet-btn.neutro { background: transparent; border: none; color: var(--muted); }
.ndf-sheet-btn.ok { background: linear-gradient(135deg, #16a34a, #15803d); border: none; color: #fff; font-weight: 800; }
.ndf-sheet textarea { width: 100%; min-height: 96px; padding: 12px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text); font: 16px 'DM Sans', sans-serif; margin-bottom: 10px; resize: vertical; box-sizing: border-box; }

.ndf-foto-conf { position: fixed; inset: 0; z-index: 9750; background: rgba(3,8,5,.96); display: flex; flex-direction: column; align-items: center; justify-content: center; padding: calc(var(--sat, 0px) + 16px) 18px calc(var(--sab, 0px) + 18px); gap: 14px; animation: ndfFade .15s ease; }
.ndf-foto-conf-topo { font: 700 17px 'Plus Jakarta Sans', sans-serif; color: #fff; }
.ndf-foto-conf-img { max-width: 100%; max-height: 58vh; border-radius: 16px; object-fit: contain; box-shadow: 0 20px 50px rgba(0,0,0,.6); }
.ndf-foto-conf-aviso { max-width: 380px; text-align: center; font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.72); }
.ndf-foto-conf-botoes { display: flex; gap: 10px; width: 100%; max-width: 380px; }
.ndf-foto-conf-botoes .ndf-sheet-btn { margin: 0; flex: 1; }

.ndf-perfil { position: fixed; inset: 0; z-index: 9300; background: var(--bg, #080e09); display: flex; flex-direction: column; animation: ndfPerfilIn .28s cubic-bezier(.32,.72,0,1); }
@keyframes ndfPerfilIn { from { transform: translateY(24px); opacity: 0 } to { transform: none; opacity: 1 } }
.ndf-perfil-carregando { margin: auto; color: var(--muted); }
.ndf-perfil-topo { display: flex; align-items: center; justify-content: space-between; padding: calc(var(--sat, 0px) + 10px) 12px 10px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
.ndf-perfil-voltar { width: 40px; height: 40px; border-radius: 12px; border: none; background: rgba(255,255,255,.06); color: var(--text); font-size: 20px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.ndf-perfil-topo-nome { font: 700 16px 'Plus Jakarta Sans', sans-serif; }
.ndf-perfil-rolagem { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; width: 100%; max-width: 520px; margin: 0 auto; }
.ndf-perfil-fotos { position: relative; aspect-ratio: 4 / 5; max-height: 64vh; width: 100%; overflow: hidden; background: #000; touch-action: pan-y; }
.ndf-perfil-foto { width: 100%; height: 100%; object-fit: cover; display: block; }
.ndf-perfil-barras { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; gap: 5px; z-index: 2; }
.ndf-perfil-barras span { flex: 1; height: 3px; border-radius: 2px; background: rgba(255,255,255,.35); }
.ndf-perfil-barras span.ativa { background: #fff; }
.ndf-perfil-toque { position: absolute; top: 0; bottom: 30%; width: 50%; z-index: 1; cursor: pointer; }
.ndf-perfil-toque.esq { left: 0; } .ndf-perfil-toque.dir { right: 0; }
.ndf-perfil-sombra { position: absolute; left: 0; right: 0; bottom: 0; height: 45%; background: linear-gradient(transparent, rgba(0,0,0,.85)); pointer-events: none; }
.ndf-perfil-id { position: absolute; left: 18px; right: 18px; bottom: 16px; color: #fff; pointer-events: none; }
.ndf-perfil-nome { font: 700 28px 'Playfair Display', serif; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ndf-perfil-nome span.idade { font-weight: 400; }
.ndf-perfil-status { font-size: 13.5px; color: rgba(255,255,255,.85); margin-top: 2px; display: flex; align-items: center; gap: 6px; min-height: 18px; }
.ndf-perfil-status .on { width: 9px; height: 9px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.25); }
.ndf-perfil-chips { display: flex; gap: 8px; overflow-x: auto; padding: 14px 16px 4px; scrollbar-width: none; }
.ndf-perfil-chips::-webkit-scrollbar { display: none; }
.ndf-perfil-chips span { flex: 0 0 auto; padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid var(--border); font-size: 13px; white-space: nowrap; }
.ndf-perfil-abas { display: flex; margin: 12px 16px 0; border-bottom: 1px solid var(--border); }
.ndf-perfil-abas button { flex: 1; padding: 12px; background: none; border: none; border-bottom: 2px solid transparent; color: var(--muted); font: 700 14px 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.ndf-perfil-abas button.ativa { color: var(--text); border-bottom-color: var(--gold-light, #f0d060); }
.ndf-perfil-painel { padding: 14px 16px; }
.ndf-perfil-card { background: var(--card, #132116); border: 1px solid var(--border); border-radius: 18px; padding: 14px 16px; margin-bottom: 12px; }
.ndf-perfil-rot { font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.ndf-perfil-card p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--text); }
.ndf-perfil-card.verso p { font-style: italic; color: var(--gold-light, #f0d060); }
.ndf-perfil-linha { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: 14.5px; }
.ndf-perfil-linha:last-child { border-bottom: none; }
.ndf-perfil-linha b { color: var(--muted); font-weight: 600; }
.ndf-perfil-linha span { text-align: right; }
.ndf-perfil-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ndf-perfil-tags span { padding: 7px 12px; border-radius: 999px; background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.25); font-size: 13px; }
.ndf-perfil-vazio { text-align: center; color: var(--muted); padding: 24px 10px; font-size: 14.5px; line-height: 1.6; }
.ndf-perfil-grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; }
.ndf-perfil-grade img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; cursor: pointer; }
.ndf-perfil-rodape { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 16px calc(14px + var(--sab, 0px)); background: linear-gradient(transparent, var(--bg, #080e09) 40%); display: flex; justify-content: center; }
.ndf-perfil-cta { width: 100%; max-width: 480px; padding: 16px; border: none; border-radius: 16px; background: linear-gradient(135deg, var(--green, #0d6b35), #065f46); color: #fff; font: 800 16px 'Plus Jakarta Sans', sans-serif; cursor: pointer; }

.ndf-fim { height: 100%; overflow-y: auto; border-radius: 28px; background: radial-gradient(ellipse at 50% 0%, rgba(34,197,94,.14), transparent 60%), var(--card, #132116); border: 1px solid rgba(34,197,94,.18); padding: 22px 18px; display: flex; flex-direction: column; align-items: center; text-align: center; box-sizing: border-box; animation: ndfFimIn .45s ease both; }
@keyframes ndfFimIn { from { opacity: 0; transform: scale(.97) } to { opacity: 1; transform: none } }
.ndf-fim-icone { position: relative; width: 70px; height: 70px; margin-bottom: 8px; display: flex; align-items: center; justify-content: center; font-size: 40px; flex-shrink: 0; animation: ndfBate 1.8s ease-in-out infinite; }
.ndf-fim-icone i { position: absolute; top: 34px; width: 8px; height: 8px; border-radius: 50%; background: #f0d060; opacity: 0; animation: ndfSobe 2.4s ease-out infinite; }
.ndf-fim-icone i:nth-of-type(1) { left: 8px; animation-delay: .3s; } .ndf-fim-icone i:nth-of-type(2) { right: 6px; animation-delay: 1s; } .ndf-fim-icone i:nth-of-type(3) { left: 31px; animation-delay: 1.7s; }
@keyframes ndfBate { 0%, 100% { transform: scale(1) } 15% { transform: scale(1.12) } 30% { transform: scale(1) } }
@keyframes ndfSobe { 0% { opacity: 0; transform: translateY(18px) } 30% { opacity: 1 } 100% { opacity: 0; transform: translateY(-34px) } }
.ndf-fim-titulo { font: 700 21px 'Playfair Display', serif; margin-bottom: 6px; line-height: 1.3; }
.ndf-fim-titulo b { color: #f0d060; }
.ndf-fim-texto { font-size: 14px; color: var(--muted); line-height: 1.6; max-width: 320px; margin-bottom: 14px; }
.ndf-fim-filtros { font-size: 13px; color: var(--text); line-height: 1.5; max-width: 320px; margin: -4px auto 14px; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,0.06); }
.ndf-fim-acoes { width: 100%; display: flex; flex-direction: column; gap: 8px; text-align: left; }
.ndf-fim-acoes > button { width: 100%; padding: 13px 14px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,.05); color: var(--text); font: 700 14.5px 'Plus Jakarta Sans', sans-serif; cursor: pointer; text-align: left; touch-action: manipulation; }
.ndf-fim-acoes > button.destaque { background: linear-gradient(135deg, #16a34a, #15803d); border: none; color: #fff; text-align: center; }
.ndf-fim-palavra { width: 100%; margin-top: 14px; padding: 14px; border-radius: 16px; background: rgba(240,208,96,.07); border: 1px solid rgba(240,208,96,.22); box-sizing: border-box; }
.ndf-fim-palavra-rot { font-size: 11.5px; font-weight: 800; color: #f0d060; letter-spacing: .4px; margin-bottom: 6px; }
.ndf-fim-palavra-v { font-style: italic; font-size: 14.5px; line-height: 1.55; }
.ndf-fim-palavra-r { font-size: 12px; color: var(--muted); margin-top: 4px; }
.ndf-fim-palavra button { margin-top: 10px; background: none; border: none; color: #f0d060; font: 700 13px 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
@media (prefers-reduced-motion: reduce) {
  .ndf-fim-icone, .ndf-fim-icone i, .ndf-perfil, .ndf-fim, .ndf-sheet, .ndf-sheet-fundo, .ndf-foto-conf { animation: none !important; }
}

/* ══════════════════════════════════════════════════════════════
   MEU PERFIL REMODELADO + MENU "MINHA CONTA" + CONVITE — 14/09/2026
   (js/perfil.js). Mesma paleta do app: verde escuro, cartões --card,
   dourado só no que é ação principal.
   ══════════════════════════════════════════════════════════════ */
.mp-topo { display: flex; align-items: center; justify-content: space-between; padding: calc(var(--sat, 0px) + 12px) 16px 8px; flex-shrink: 0; }
.mp-topo-titulo { font: 800 20px 'Plus Jakarta Sans', sans-serif; color: var(--text); letter-spacing: -.02em; }
.mp-menu-btn { width: 44px; height: 44px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,.05); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; cursor: pointer; touch-action: manipulation; }
.mp-menu-btn span { display: block; width: 18px; height: 2px; border-radius: 2px; background: var(--text); }
.mp-menu-btn:active { transform: scale(.95); }
.mp-menu-btn:focus-visible, .mp-card-acao:focus-visible, .mp-status:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 2px; }
.profile-scroll-area.mp-rolagem { padding-top: 8px; }

.mp-status { width: 100%; display: flex; align-items: center; gap: 10px; padding: 12px 14px; margin: 0 0 14px; border-radius: 18px; border: 1px solid rgba(240,208,96,.28); background: linear-gradient(135deg, rgba(240,208,96,.1), rgba(34,197,94,.06)); color: var(--text); text-align: left; cursor: pointer; font-family: 'DM Sans', sans-serif; }
.mp-status.vazio { border-style: dashed; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.03); }
.mp-status-emoji { font-size: 22px; line-height: 1; flex-shrink: 0; }
.mp-status.vazio .mp-status-emoji { width: 30px; height: 30px; border-radius: 50%; background: rgba(240,208,96,.14); color: var(--gold-light); display: flex; align-items: center; justify-content: center; font-size: 18px; }
.mp-status-txt { flex: 1; min-width: 0; font-size: 15px; font-weight: 600; line-height: 1.35; }
.mp-status.vazio .mp-status-txt { color: var(--gold-light); }
.mp-status-quando { font-size: 11.5px; color: var(--muted); flex-shrink: 0; }

.mp-card { background: var(--card); border: 1px solid var(--border); border-radius: 18px; padding: 14px 16px; margin-bottom: 12px; }
.mp-card-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.mp-card-rot { font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--muted); }
.mp-card-acao { border: none; background: none; color: var(--gold-light); font: 700 13.5px 'Plus Jakarta Sans', sans-serif; cursor: pointer; padding: 4px 2px; }
.mp-texto { margin: 0; font-size: 15px; line-height: 1.65; color: var(--text); white-space: pre-line; }
.mp-vazio { margin: 0; font-size: 14px; line-height: 1.55; color: var(--muted); }
.mp-verso { margin: 0 0 8px; font-style: italic; color: var(--gold-light); font-size: 15px; line-height: 1.55; }
.mp-linha { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; padding: 6px 0; }
.mp-linha b { color: var(--muted); font-weight: 600; }
.mp-nota { font-size: 12.5px; color: var(--muted); margin-top: 10px; line-height: 1.5; }

.mp-falta { border-color: rgba(240,208,96,.22); }
.mp-falta .mp-card-rot { margin-bottom: 10px; color: var(--gold-light); }
.mp-falta-lista { display: flex; flex-wrap: wrap; gap: 8px; }
.mp-falta-lista button { padding: 9px 13px; border-radius: 999px; border: 1px solid var(--border); background: rgba(255,255,255,.05); color: var(--text); font: 600 13.5px 'DM Sans', sans-serif; cursor: pointer; }

.mp-resp { width: 100%; display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 12px 0; border: none; border-bottom: 1px solid rgba(255,255,255,.05); background: none; color: var(--text); cursor: pointer; font-family: 'DM Sans', sans-serif; }
.mp-resp-q { font-size: 12.5px; font-weight: 700; color: var(--muted); }
.mp-resp-r { font-size: 16px; line-height: 1.5; font-family: 'Playfair Display', serif; }
.mp-add { width: 100%; margin-top: 10px; padding: 12px; border-radius: 14px; border: 1px dashed rgba(240,208,96,.4); background: rgba(240,208,96,.06); color: var(--gold-light); font: 700 14px 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.mp-resp-card p { font-family: 'Playfair Display', serif; font-size: 17px; }

.mp-redes { display: flex; flex-wrap: wrap; gap: 8px; }
.mp-rede { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid var(--border); color: var(--text); text-decoration: none; font-size: 14px; font-weight: 600; }
.mp-rede.ig { border-color: rgba(236,72,153,.35); }
.mp-rede.fb { border-color: rgba(59,130,246,.35); }

.mp-acoes { display: grid; grid-template-columns: 1fr; gap: 0; margin-top: 4px; }

.mp-status-alheio { display: flex; align-items: center; gap: 12px; margin: 12px 0 2px; padding: 12px 14px; border-radius: 16px; background: linear-gradient(135deg, rgba(240,208,96,.1), rgba(34,197,94,.06)); border: 1px solid rgba(240,208,96,.25); }
.mp-status-alheio b { display: block; font-size: 15px; font-weight: 600; color: var(--text); line-height: 1.4; }
.mp-status-alheio small { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }
.mp-previa-aviso { margin: 12px 16px 0; padding: 10px 12px; border-radius: 12px; background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.25); font-size: 13.5px; text-align: center; }

.card-status { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; margin-bottom: 8px; padding: 6px 11px; border-radius: 14px; background: rgba(0,0,0,.45); border: 1px solid rgba(240,208,96,.35); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.3; backdrop-filter: blur(4px); }
.card-status span { font-size: 15px; }

/* Folhas de edição */
.mp-folha { max-height: 88vh; overflow-y: auto; }
.mp-folha-titulo { font: 800 18px 'Plus Jakarta Sans', sans-serif; color: var(--text); margin-bottom: 6px; text-wrap: balance; }
.mp-folha-sub { font-size: 14px; color: var(--muted); line-height: 1.5; margin-bottom: 14px; }
.mp-folha-rot { display: block; font-size: 12px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--muted); margin: 6px 0 8px; }
.mp-input { width: 100%; box-sizing: border-box; padding: 13px 14px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text); font: 16px 'DM Sans', sans-serif; }
.mp-input:focus { outline: none; border-color: var(--border-focus); }
.mp-contador { text-align: right; font-size: 11.5px; color: var(--muted); margin: 5px 0 10px; }
.mp-emojis { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 10px; scrollbar-width: none; }
.mp-emojis::-webkit-scrollbar { display: none; }
.mp-emojis button { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--border); background: rgba(255,255,255,.04); font-size: 21px; cursor: pointer; }
.mp-emojis button.ativo { border-color: var(--gold-light); background: rgba(240,208,96,.14); }
.mp-sugestoes { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.mp-sugestoes button { text-align: left; padding: 11px 13px; border-radius: 12px; border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text); font: 14px 'DM Sans', sans-serif; cursor: pointer; }
.mp-perguntas { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.mp-perguntas button { text-align: left; padding: 14px; border-radius: 14px; border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text); font: 600 15px 'DM Sans', sans-serif; cursor: pointer; }
.mp-prefixo { display: flex; align-items: center; border: 1px solid var(--border); border-radius: 14px; background: rgba(255,255,255,.04); margin-bottom: 10px; overflow: hidden; }
.mp-prefixo span { padding: 0 4px 0 13px; color: var(--muted); font-size: 14px; white-space: nowrap; }
.mp-prefixo .mp-input { border: none; background: none; padding-left: 2px; }

/* Menu "Minha conta" (3 linhas) — painel da direita */
.ndf-conta-fundo { position: fixed; inset: 0; z-index: 9500; background: rgba(0,0,0,0); transition: background .2s ease; }
.ndf-conta-fundo.aberto { background: rgba(0,0,0,.6); }
.ndf-conta { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 92vw); background: var(--bg); border-left: 1px solid var(--border); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .22s cubic-bezier(.32,.72,0,1); }
.ndf-conta-fundo.aberto .ndf-conta { transform: none; }
.ndf-conta-topo { display: flex; align-items: center; justify-content: space-between; padding: calc(var(--sat, 0px) + 12px) 16px 10px; border-bottom: 1px solid var(--border); }
.ndf-conta-titulo { font: 800 18px 'Plus Jakarta Sans', sans-serif; }
.ndf-conta-fechar { width: 40px; height: 40px; border-radius: 12px; border: none; background: rgba(255,255,255,.06); color: var(--text); font-size: 24px; cursor: pointer; }
.ndf-conta-rolagem { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 14px 16px 0; }
.ndf-conta-rot { font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: var(--muted); margin: 6px 2px 10px; }
.ndf-conta-lista { display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; }
.ndf-conta-lista button { display: flex; align-items: center; gap: 12px; padding: 15px 16px; border: none; border-bottom: 1px solid rgba(255,255,255,.05); background: none; color: var(--text); font: 600 15px 'DM Sans', sans-serif; text-align: left; cursor: pointer; }
.ndf-conta-lista button:last-child { border-bottom: none; }
.ndf-conta-lista button.perigo { color: #fb7185; }

/* Convite "Mostre quem você é" */
.mp-convite-fundo { position: fixed; inset: 0; z-index: 9800; background: rgba(0,0,0,.7); display: flex; align-items: center; justify-content: center; padding: 18px; animation: ndfFade .2s ease; }
.mp-convite { width: 100%; max-width: 400px; max-height: 92vh; overflow-y: auto; background: radial-gradient(ellipse at 50% 0%, rgba(240,208,96,.14), transparent 60%), var(--surface); border: 1px solid rgba(240,208,96,.25); border-radius: 26px; padding: 22px 18px 16px; animation: ndfFimIn .35s ease both; }
.mp-convite-selo { display: inline-block; padding: 5px 11px; border-radius: 999px; background: rgba(240,208,96,.14); color: var(--gold-light); font-size: 11.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.mp-convite-tit { font: 700 26px 'Playfair Display', serif; color: var(--text); margin: 12px 0 6px; }
.mp-convite-sub { font-size: 14.5px; line-height: 1.55; color: rgba(237,245,238,.75); margin-bottom: 14px; }
.mp-convite-lista { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.mp-convite-lista button { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 16px; border: 1px solid var(--border); background: rgba(255,255,255,.04); color: var(--text); text-align: left; cursor: pointer; font-family: 'DM Sans', sans-serif; }
.mp-convite-lista .ic { font-size: 22px; width: 30px; text-align: center; flex-shrink: 0; }
.mp-convite-lista .tx { flex: 1; min-width: 0; }
.mp-convite-lista b { display: block; font-size: 15px; }
.mp-convite-lista small { display: block; font-size: 12.5px; color: var(--muted); margin-top: 2px; line-height: 1.4; }
.mp-convite-lista .ok { color: var(--gold-light); font-size: 20px; font-weight: 700; }
.mp-convite-lista button.feito { opacity: .55; }
.mp-convite-lista button.feito .ok { color: #22c55e; font-size: 16px; }
.mp-convite-cta { width: 100%; padding: 16px; border: none; border-radius: 16px; background: linear-gradient(135deg, #f0d060, #c9a227); color: #1b1405; font: 800 16px 'Plus Jakarta Sans', sans-serif; cursor: pointer; box-shadow: 0 6px 22px rgba(201,162,39,.28); }
.mp-convite-depois { width: 100%; margin-top: 6px; padding: 12px; border: none; background: none; color: var(--muted); font: 600 14px 'DM Sans', sans-serif; cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
  .ndf-conta, .ndf-conta-fundo, .mp-convite, .mp-convite-fundo { transition: none; animation: none; }
}

/* ══════════════════════════════════════════════════════════════
   VITRINE DE PERFIS (aba Explorar) — 24/09/2026
   A grade desenha ~166px de largura; por isso as fotos aqui sao
   MINIATURAS (js/foto-upload.js). Mandar a foto cheia foi o que
   estourou a cota de saida do Supabase.
   ══════════════════════════════════════════════════════════════ */
.vit-filtros { display:flex; gap:7px; overflow-x:auto; padding:0 16px 12px; flex-shrink:0; scrollbar-width:none; }
.vit-filtros::-webkit-scrollbar { display:none; }
.vit-chip, .vit-sel {
  flex-shrink:0; border:1px solid var(--border); background:var(--card);
  color:var(--muted); font-family:inherit; font-size:13px; font-weight:600;
  padding:9px 14px; border-radius:11px; cursor:pointer;
}
.vit-chip.ativo { background:#17413f; color:#f2ebe1; border-color:transparent; }
.vit-sel { appearance:none; padding-right:28px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b8f72' stroke-width='3'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat:no-repeat; background-position:right 10px center; }

.vit-grade { display:grid; grid-template-columns:repeat(2,1fr); gap:11px; }
@media (min-width:620px) { .vit-grade { grid-template-columns:repeat(3,1fr); } }

.vit-card {
  background:var(--surface); border:1px solid var(--border); border-radius:17px;
  overflow:hidden; cursor:pointer; display:flex; flex-direction:column;
  transition:transform .16s ease, border-color .16s ease;
}
.vit-card:active { transform:scale(.975); }
.vit-card:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }

.vit-foto { position:relative; aspect-ratio:3/4; background:var(--card); overflow:hidden; }
.vit-foto img { width:100%; height:100%; object-fit:cover; display:block; }
.vit-semfoto {
  width:100%; height:100%; display:flex; align-items:center; justify-content:center;
  font-family:'Cormorant Garamond',Georgia,serif; font-size:42px; font-weight:700;
  color:rgba(255,255,255,.14); background:linear-gradient(160deg,#18291c,#132116);
}
/* Gradiente pro nome nunca cair sobre parte clara da foto */
.vit-foto::after {
  content:''; position:absolute; inset:auto 0 0 0; height:55%;
  background:linear-gradient(to top,rgba(8,14,9,.92),transparent); pointer-events:none;
}
.vit-selos { position:absolute; top:8px; left:8px; right:8px; display:flex; gap:5px; flex-wrap:wrap; z-index:2; }
.vit-selo { font-size:9.5px; font-weight:700; padding:4px 7px; border-radius:6px; letter-spacing:.3px; white-space:nowrap; }
.vit-selo.hoje     { background:rgba(34,197,94,.92);  color:#04180b; }
.vit-selo.semana   { background:rgba(23,65,63,.9);    color:#cfe6d5; }
.vit-selo.mes      { background:rgba(0,0,0,.55);      color:#9db3a4; }
.vit-selo.frio     { background:rgba(0,0,0,.55);      color:#8a9a8f; }
.vit-selo.destaque { background:rgba(201,162,39,.94); color:#1a1405; }
.vit-selo.verif    { background:rgba(59,130,246,.9);  color:#fff; }

.vit-nome {
  position:absolute; left:10px; right:10px; bottom:8px; z-index:2;
  font-size:15px; font-weight:700; line-height:1.25; color:#edf5ee;
  text-shadow:0 1px 6px rgba(0,0,0,.7);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.vit-local { font-size:11.5px; font-weight:500; color:rgba(237,245,238,.78); }

.vit-corpo { padding:9px 10px 10px; display:flex; flex-direction:column; gap:7px; flex:1; }
.vit-tags { display:flex; gap:5px; flex-wrap:wrap; min-height:22px; }
.vit-tag {
  background:var(--card); border:1px solid var(--border); border-radius:6px;
  padding:3px 7px; font-size:11px; color:var(--muted); white-space:nowrap;
  max-width:100%; overflow:hidden; text-overflow:ellipsis;
}
.vit-ver {
  margin-top:auto; width:100%; border:0; border-radius:10px;
  background:#17413f; color:#f2ebe1; font-family:inherit;
  font-size:13px; font-weight:700; padding:10px; cursor:pointer;
}
.vit-esqueleto {
  background:var(--surface); border:1px solid var(--border);
  border-radius:17px; aspect-ratio:3/4.6; animation:vitPulsa 1.5s ease-in-out infinite;
}
@keyframes vitPulsa { 0%,100% { opacity:.45 } 50% { opacity:.8 } }
@media (prefers-reduced-motion:reduce) { .vit-esqueleto { animation:none } }

/* 27/09/2026 — selo "Novo por aqui" (perfis com menos de 48 h) */
.card-boost-badge.card-novo-badge {
  background: linear-gradient(135deg, #2f9e6a, #1c7a50);
  color: #f2ebe1;
}

/* 27/09/2026 — quebra-gelo no chat vazio */
.ndf-qg { display:flex; flex-direction:column; gap:8px; margin:16px auto 0; max-width:340px; text-align:left; }
.ndf-qg-item {
  padding:12px 14px; border-radius:14px; border:1px solid rgba(201,162,39,.35);
  background:rgba(201,162,39,.08); color:var(--text, #edf5ee); font-family:inherit;
  font-size:14.5px; line-height:1.45; text-align:left; cursor:pointer;
}
.ndf-qg-item:active { transform:scale(.98); background:rgba(201,162,39,.16); }

/* ══ 28/09/2026 — status com foto (estilo WhatsApp) ══ */
.st-ver { position:fixed; inset:0; z-index:10100; background:#0b0f0c; display:flex; flex-direction:column; color:#fff; }
.st-barra { height:3px; margin:calc(env(safe-area-inset-top,0px) + 10px) 12px 0; background:rgba(255,255,255,.25); border-radius:3px; overflow:hidden; }
.st-barra i { display:block; height:100%; width:100%; background:#fff; transform-origin:left; animation:stBarra 7s linear forwards; }
@keyframes stBarra { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.st-topo { display:flex; align-items:center; gap:10px; padding:12px 14px; }
.st-av { width:38px; height:38px; border-radius:50%; object-fit:cover; background:#1d2a22; border:2px solid #25d366; flex-shrink:0; }
.st-topo b { display:block; font-size:15px; } .st-topo small { color:rgba(255,255,255,.65); font-size:12.5px; }
.st-x { margin-left:auto; background:none; border:none; color:#fff; font-size:30px; line-height:1; cursor:pointer; padding:4px 8px; }
.st-meio { flex:1; display:flex; align-items:center; justify-content:center; min-height:0; }
.st-foto { max-width:100%; max-height:100%; object-fit:contain; }
.st-so-texto { padding:30px; text-align:center; font-size:26px; font-weight:700; line-height:1.4; max-width:420px; }
.st-so-texto span { display:block; font-size:54px; margin-bottom:12px; }
.st-legenda { padding:14px 18px calc(env(safe-area-inset-bottom,0px) + 22px); text-align:center; font-size:16px; line-height:1.45; background:linear-gradient(transparent, rgba(0,0,0,.6)); }
.st-anel { width:44px; height:44px; border-radius:50%; padding:2px; background:conic-gradient(#25d366, #1fa855, #25d366); flex-shrink:0; display:inline-block; }
.st-anel img { width:100%; height:100%; border-radius:50%; object-fit:cover; border:2px solid var(--surface, #0e1810); display:block; }
.st-anel.mini { width:34px; height:34px; }
.mp-status-alheio.tem-foto { width:100%; text-align:left; font-family:inherit; color:inherit; cursor:pointer; }
.card-status.tem-foto { display:flex; align-items:center; gap:8px; cursor:pointer; }
.card-status.tem-foto img { width:26px; height:26px; border-radius:50%; object-fit:cover; border:2px solid #25d366; flex-shrink:0; }
.st-edit-foto { position:relative; margin:4px 0 12px; border-radius:16px; overflow:hidden; background:#0b0f0c; text-align:center; }
.st-edit-foto img { max-width:100%; max-height:300px; display:block; margin:0 auto; }
.st-tirar { position:absolute; top:8px; right:8px; padding:7px 12px; border:none; border-radius:10px; background:rgba(0,0,0,.6); color:#fff; font-family:inherit; font-size:13px; cursor:pointer; }
.st-add-foto { display:block; margin:4px 0 12px; padding:14px; border:1.5px dashed rgba(37,211,102,.55); border-radius:14px; text-align:center; color:#9be7b5; font-weight:700; cursor:pointer; }
.st-edit-foto[hidden], .st-add-foto[hidden], #stEmojis[hidden], #stIdeias[hidden], #stIdeiasRot[hidden] { display:none !important; }
@media (prefers-reduced-motion: reduce) { .st-barra i { animation:none; transform:scaleX(1); } }
