:root{
  --roxo:#8B5CF6; --violeta:#4C1D95; --dourado:#D4A24E;
  --cosmico:#0D0A14; --lunar:#F5F3FF; --lavanda:#C4B5FD;
  --display:'Cormorant Garamond',serif; --corpo:'Sora',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--corpo);background:var(--cosmico);color:var(--lunar);
  min-height:100dvh;line-height:1.6;
}
#ceu{position:fixed;inset:0;z-index:0;pointer-events:none}

.conexoes{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:1.6rem 1.2rem 4rem}

.carregando{text-align:center;padding:3rem 1rem;color:var(--lavanda)}
.lua-girando{font-size:2.5rem;display:inline-block;animation:girar 3s linear infinite}
@keyframes girar{to{transform:rotate(360deg)}}
.vazio{text-align:center;color:var(--lavanda);opacity:.85;padding:2rem 1rem}
.vazio-ilustrado{text-align:center;padding:1rem}
.vazio-ilustrado .vazio-imagem{max-width:280px;width:100%;border-radius:16px;margin:0 auto .5rem;display:block}
.vazio-ilustrado .vazio{padding:.5rem 1rem}

/* abas */
.abas-conexoes{display:flex;gap:.5rem;margin-bottom:1.4rem;border-bottom:1px solid rgba(139,92,246,.18);padding-bottom:.6rem}
.aba-conexoes{
  position:relative;background:none;border:none;color:var(--lavanda);opacity:.7;
  font-size:.88rem;padding:.5rem .9rem;border-radius:999px;cursor:pointer;font-family:var(--corpo);
}
.aba-conexoes.ativa{opacity:1;background:rgba(139,92,246,.16);color:var(--lunar);font-weight:600}
.badge-nao-lidas{
  display:inline-block;background:var(--dourado);color:#1a1522;font-size:.68rem;font-weight:700;
  border-radius:999px;padding:.05rem .4rem;margin-left:.3rem;
}

.bloco{
  background:rgba(26,21,37,.6);border:1px solid rgba(139,92,246,.2);
  border-radius:var(--sofia-radius-lg,18px);padding:var(--sofia-space-6,1.5rem);
  backdrop-filter:blur(6px);box-shadow:var(--sofia-shadow-sm,none);margin-bottom:1.2rem;
}
.bloco-titulo{font-family:var(--display);font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:var(--lunar)}

/* descoberta */
.filtros-descoberta{display:flex;gap:.6rem;margin-bottom:1.2rem;flex-wrap:wrap}
.filtros-descoberta select,.filtros-descoberta input{
  background:rgba(13,10,20,.5);border:1px solid rgba(139,92,246,.3);border-radius:8px;
  padding:.55rem .8rem;color:var(--lunar);font-family:var(--corpo);font-size:.85rem;
}
.filtros-descoberta select{flex:1;min-width:140px}
.filtros-descoberta input{flex:1;min-width:140px}
.filtros-descoberta button{
  padding:.55rem 1.2rem;border-radius:999px;border:1px solid rgba(212,162,78,.5);
  background:rgba(212,162,78,.14);color:var(--dourado);font-weight:600;cursor:pointer;
}

.grade-descoberta{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.card-perfil{
  background:rgba(26,21,37,.6);border:1px solid rgba(139,92,246,.2);border-radius:16px;
  padding:1rem;position:relative;
}
.card-perfil-foto{width:100%;aspect-ratio:1/1;border-radius:12px;object-fit:cover;margin-bottom:.7rem;background:rgba(139,92,246,.08)}
.card-perfil-sem-foto{
  width:100%;aspect-ratio:1/1;border-radius:12px;margin-bottom:.7rem;background:rgba(139,92,246,.08);
  display:flex;align-items:center;justify-content:center;font-size:2.4rem;
}
.card-perfil-nome{font-family:var(--display);font-size:1.15rem;color:var(--lunar)}
.card-perfil-meta{font-size:.78rem;color:var(--lavanda);opacity:.85;margin-bottom:.4rem}
.card-perfil-intencoes{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}
.tag-intencao{font-size:.68rem;padding:.15rem .5rem;border-radius:999px;background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.3);color:var(--lavanda)}
.card-perfil-afinidades{display:flex;flex-wrap:wrap;gap:.3rem;margin:-.1rem 0 .55rem}
.tag-afinidade{font-size:.68rem;padding:.16rem .5rem;border-radius:999px;background:rgba(212,162,78,.10);border:1px solid rgba(212,162,78,.28);color:var(--dourado);text-transform:capitalize}
.card-perfil-bio{font-size:.82rem;color:var(--lunar);opacity:.9;margin-bottom:.7rem;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card-perfil-acoes{display:flex;gap:.5rem;align-items:center}
.btn-interesse{
  flex:1;padding:.6rem;border-radius:999px;border:1px solid rgba(212,162,78,.5);
  background:rgba(212,162,78,.14);color:var(--dourado);font-weight:600;font-size:.82rem;cursor:pointer;
}
.btn-interesse:disabled{opacity:.6;cursor:default}
.btn-menu-perfil{background:none;border:none;color:var(--lavanda);font-size:1.2rem;cursor:pointer;padding:.2rem .5rem}
.menu-perfil-flutuante{
  position:absolute;top:2.4rem;right:.8rem;background:#161122;border:1px solid rgba(139,92,246,.3);
  border-radius:10px;padding:.4rem;display:flex;flex-direction:column;gap:.2rem;z-index:5;
  box-shadow:0 8px 24px rgba(13,10,20,.6);min-width:150px;
}
.menu-perfil-flutuante button{
  background:none;border:none;color:var(--lunar);text-align:left;padding:.5rem .6rem;
  border-radius:6px;cursor:pointer;font-size:.8rem;font-family:var(--corpo);
}
.menu-perfil-flutuante button:hover{background:rgba(139,92,246,.15)}
.menu-perfil-flutuante button.perigo{color:#FCA5A5}
.match-aviso{
  text-align:center;padding:.8rem;margin-top:.6rem;background:rgba(212,162,78,.14);
  border:1px solid rgba(212,162,78,.4);border-radius:10px;color:var(--dourado);font-size:.85rem;font-weight:600;
}

/* matches */
.match-item{
  display:flex;align-items:center;gap:.8rem;padding:.9rem;background:rgba(26,21,37,.6);
  border:1px solid rgba(139,92,246,.2);border-radius:14px;margin-bottom:.7rem;cursor:pointer;
}
.match-item:hover{border-color:rgba(212,162,78,.35)}
.match-foto{width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0;background:rgba(139,92,246,.1)}
.match-sem-foto{width:52px;height:52px;border-radius:50%;flex-shrink:0;background:rgba(139,92,246,.1);display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.match-corpo{flex:1;min-width:0}
.match-nome{font-weight:600;color:var(--lunar);font-size:.92rem}
.match-quando{font-size:.72rem;color:var(--lavanda);opacity:.7}
.match-badge{background:var(--dourado);color:#1a1522;font-size:.72rem;font-weight:700;border-radius:999px;padding:.15rem .55rem;flex-shrink:0}

/* chat */
.voltar-chat{background:none;border:none;color:var(--lavanda);font-size:.85rem;cursor:pointer;margin-bottom:1rem;padding:0}
.chat-cabecalho{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;font-weight:600}
.chat-mensagens{
  display:flex;flex-direction:column;gap:.5rem;max-height:50vh;overflow-y:auto;
  padding:.8rem;background:rgba(13,10,20,.4);border-radius:14px;margin-bottom:.8rem;min-height:200px;
}
.msg-bolha{max-width:75%;padding:.55rem .8rem;border-radius:14px;font-size:.88rem;line-height:1.4}
.msg-minha{align-self:flex-end;background:rgba(212,162,78,.18);border:1px solid rgba(212,162,78,.4);border-bottom-right-radius:4px}
.msg-outra{align-self:flex-start;background:rgba(139,92,246,.14);border:1px solid rgba(139,92,246,.3);border-bottom-left-radius:4px}
.chat-linha{display:flex;gap:.5rem}
.chat-linha input{
  flex:1;background:rgba(13,10,20,.5);border:1px solid rgba(139,92,246,.3);border-radius:999px;
  padding:.6rem 1rem;color:var(--lunar);font-size:.88rem;
}
.chat-linha button{
  background:rgba(212,162,78,.14);border:1px solid rgba(212,162,78,.5);color:var(--dourado);
  border-radius:999px;padding:.6rem 1.2rem;font-size:.85rem;cursor:pointer;
}

/* formulário de perfil */
.aviso-idade{font-size:.82rem;color:var(--lavanda);margin-bottom:1rem;line-height:1.5}
.campo-label{display:block;font-size:.8rem;color:var(--lavanda);margin:1rem 0 .4rem;text-transform:uppercase;letter-spacing:.04em}
#ativar-nascimento,#ativar-cidade,#ativar-bio{
  width:100%;background:rgba(13,10,20,.5);border:1px solid rgba(139,92,246,.3);border-radius:10px;
  padding:.65rem .9rem;color:var(--lunar);font-family:var(--corpo);font-size:.9rem;
}
#ativar-bio{min-height:80px;resize:vertical}
.campo-check{display:flex;gap:.6rem;align-items:flex-start;margin:.8rem 0;font-size:.82rem;color:var(--lunar);cursor:pointer}
.campo-check input{margin-top:.2rem}
.grade-intencoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.5rem}
.opcao-intencao{
  display:flex;align-items:center;gap:.5rem;padding:.5rem .7rem;background:rgba(139,92,246,.08);
  border:1px solid rgba(139,92,246,.2);border-radius:10px;font-size:.82rem;cursor:pointer;
}
.opcao-intencao.marcada{background:rgba(212,162,78,.14);border-color:rgba(212,162,78,.45)}
#btn-ativar-perfil{
  margin-top:1.4rem;width:100%;padding:.8rem;border-radius:999px;border:1px solid rgba(212,162,78,.5);
  background:rgba(212,162,78,.14);color:var(--dourado);font-weight:600;font-size:.92rem;cursor:pointer;
}
#btn-ativar-perfil:disabled{opacity:.6;cursor:default}
.compor-msg{margin-top:.6rem;font-size:.82rem;color:var(--lavanda);min-height:1.2em}
.compor-msg.erro{color:#FCA5A5}

/* meu perfil */
.meu-perfil-foto-linha{display:flex;gap:1rem;align-items:center;margin-bottom:1.2rem}
#meu-perfil-foto img{width:88px;height:88px;border-radius:50%;object-fit:cover}
#meu-perfil-foto .sem-foto{width:88px;height:88px;border-radius:50%;background:rgba(139,92,246,.08);display:flex;align-items:center;justify-content:center;font-size:2rem}
.botao-upload-foto{
  display:inline-block;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(139,92,246,.4);
  background:rgba(139,92,246,.1);color:var(--lavanda);font-size:.82rem;cursor:pointer;
}
.botao-upload-foto:hover{background:rgba(139,92,246,.2)}
.foto-nota{font-size:.72rem;color:var(--lavanda);opacity:.75;margin-top:.4rem}
#meu-perfil-resumo{font-size:.88rem;color:var(--lunar);line-height:1.7;margin-bottom:1rem}
#meu-perfil-resumo b{color:var(--dourado)}
.link-pausar{background:none;border:none;color:var(--lavanda);opacity:.75;font-size:.8rem;cursor:pointer;text-decoration:underline}
#btn-reativar-perfil{
  margin-top:.8rem;padding:.6rem 1.4rem;border-radius:999px;border:1px solid rgba(212,162,78,.5);
  background:rgba(212,162,78,.14);color:var(--dourado);font-weight:600;cursor:pointer;
}

.link-bloqueados{
  display:block;background:none;border:none;color:var(--lavanda);opacity:.8;
  font-size:.8rem;cursor:pointer;margin:0 0 1rem auto;padding:.2rem 0;
}
.link-bloqueados:hover{color:var(--dourado);opacity:1}
.bloqueado-item{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid rgba(139,92,246,.12)}
.bloqueado-item:last-child{border-bottom:none}
.bloqueado-nome{flex:1;font-size:.88rem;color:var(--lunar)}
.bloqueado-btn{
  background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.3);color:var(--lavanda);
  border-radius:999px;padding:.35rem .8rem;font-size:.78rem;cursor:pointer;
}

@media (max-width:560px){
  .filtros-descoberta{flex-direction:column}
  .grade-descoberta{grid-template-columns:repeat(2,1fr)}
  .abas-conexoes{overflow-x:auto}
}


/* onboarding e privacidade da descoberta */
.aviso-foto-rede{font-size:.78rem;color:var(--dourado);padding:.65rem .75rem;border:1px solid rgba(212,162,78,.28);border-radius:10px;background:rgba(212,162,78,.07);margin:.75rem 0 1rem}.abas-conexoes.gate-perfil .aba-conexoes:not([data-aba="perfil"]){display:none}.abas-conexoes.gate-perfil{justify-content:flex-end}.bloco-perfil-incompleto{border-color:rgba(212,162,78,.42)}
