
/* ==========================================================
   CONECTA JOVEM — PERFIL / CORREÇÃO FINAL DE LAYOUT
   Corrige conflitos de CSS globais que quebravam os dados
   do perfil e deixa a página organizada e responsiva.
========================================================== */

html, body {
  width: 100%;
  min-width: 0;
  overflow-x: hidden;
}

body {
  background: #f6f7fb !important;
}

.dashboard {
  width: min(1440px, 94%) !important;
  margin: 0 auto !important;
  padding: 28px 0 50px !important;
  display: grid !important;
  grid-template-columns: 260px minmax(0, 1fr) !important;
  gap: 30px !important;
  align-items: start !important;
}

.sidebar {
  position: sticky !important;
  top: 24px !important;
  width: 260px !important;
  max-width: 260px !important;
  min-width: 0 !important;
  padding: 24px 18px !important;
  border-radius: 22px !important;
  background: #fff !important;
}

.conteudo {
  width: 100% !important;
  min-width: 0 !important;
}

.perfil-container {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  min-width: 0 !important;
}

/* ---------- Cabeçalho do perfil ---------- */

.perfil-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) auto !important;
  grid-template-areas:
    "foto nome acoes"
    "foto email acoes" !important;
  align-items: center !important;
  column-gap: 28px !important;
  row-gap: 5px !important;
  min-width: 0 !important;
  padding: 30px 32px !important;
  margin: 0 0 22px !important;
  text-align: left !important;
  border-radius: 22px !important;
  background: #fff !important;
  border: 1px solid #e3e7ef !important;
  box-shadow: 0 12px 35px rgba(15, 23, 42, .07) !important;
}

.perfil-card::before {
  height: 5px !important;
  background: linear-gradient(90deg, #7c3aed, #6c5ce7, #2563eb) !important;
}

.perfil-card .foto {
  grid-area: foto !important;
  width: 140px !important;
  height: 140px !important;
  margin: 0 auto !important;
  padding: 5px !important;
  flex-shrink: 0 !important;
}

.perfil-card h1 {
  grid-area: nome !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: #111827 !important;
  font-size: clamp(1.45rem, 2.2vw, 2rem) !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  overflow-wrap: anywhere !important;
}

.perfil-card > p {
  grid-area: email !important;
  min-width: 0 !important;
  margin: 2px 0 0 !important;
  color: #64748b !important;
  font-size: .92rem !important;
  overflow-wrap: anywhere !important;
}

.acoes-perfil {
  grid-area: acoes !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
}

.acoes-perfil .editar,
.acoes-perfil .sair {
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 11px 16px !important;
  border-radius: 12px !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
}

.acoes-perfil .editar {
  background: linear-gradient(135deg, #7c3aed, #6c5ce7) !important;
  color: #fff !important;
  border: 1px solid transparent !important;
  box-shadow: 0 8px 20px rgba(108, 92, 231, .2) !important;
}

.acoes-perfil .editar:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 24px rgba(108, 92, 231, .25) !important;
}

.acoes-perfil .sair {
  background: #fff !important;
  color: #dc2626 !important;
  border: 1px solid #fecaca !important;
}

.acoes-perfil .sair:hover {
  background: #fef2f2 !important;
}

/* ---------- Grade de informações ---------- */

.informacoes {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Evita que regras genéricas transformem os dados em 3 colunas.
   Esse era o motivo principal da sobreposição vista no perfil. */
.informacoes .dados {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  gap: 0 !important;
  margin: 0 !important;
  text-align: left !important;
  grid-template-columns: none !important;
}

.informacoes .dados p {
  display: grid !important;
  grid-template-columns: minmax(82px, 110px) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 14px !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 13px 0 !important;
  border-bottom: 1px solid #edf1f6 !important;
}

.informacoes .dados p:last-child {
  border-bottom: 0 !important;
}

.informacoes .dados strong {
  min-width: 0 !important;
  color: #172033 !important;
  font-size: .86rem !important;
  font-weight: 800 !important;
}

.informacoes .dados span {
  min-width: 0 !important;
  color: #64748b !important;
  font-size: .88rem !important;
  line-height: 1.45 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* ---------- Cards ---------- */

.informacoes .bloco {
  min-width: 0 !important;
  width: 100% !important;
  padding: 25px !important;
  margin: 0 !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid #e3e7ef !important;
  box-shadow: 0 9px 28px rgba(15, 23, 42, .055) !important;
  overflow: hidden !important;
}

.informacoes .bloco:hover {
  transform: translateY(-2px) !important;
}

.informacoes .bloco h2 {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: 0 !important;
  margin: 0 0 18px !important;
  color: #172033 !important;
  font-size: 1.08rem !important;
  line-height: 1.35 !important;
}

.informacoes .bloco h2 i {
  width: 36px !important;
  height: 36px !important;
  flex: 0 0 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 11px !important;
  background: #f1eaff !important;
  color: #7c3aed !important;
}

.informacoes .campo {
  width: 100% !important;
  min-width: 0 !important;
  padding: 13px 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid #edf1f6 !important;
}

.informacoes .campo:last-child {
  border-bottom: 0 !important;
}

.informacoes .campo h3 {
  margin: 0 0 4px !important;
  color: #172033 !important;
  font-size: .86rem !important;
  line-height: 1.4 !important;
  font-weight: 800 !important;
}

.informacoes .campo p,
.informacoes .bloco > p {
  margin: 0 !important;
  color: #64748b !important;
  font-size: .88rem !important;
  line-height: 1.5 !important;
  white-space: pre-line !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

/* Habilidades, links e currículo ficam em largura total */
.informacoes .bloco:has(.tags),
.informacoes .bloco:has(.redes-sociais),
.informacoes .bloco:last-child {
  grid-column: 1 / -1 !important;
}

.tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 9px !important;
}

.tags > span {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 32px !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  background: #f1eaff !important;
  border: 1px solid #ddd0ff !important;
  color: #6d28d9 !important;
  font-size: .82rem !important;
  font-weight: 700 !important;
}

.redes-sociais {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

.redes-sociais a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 9px 13px !important;
  border-radius: 10px !important;
  background: #f8f7ff !important;
  border: 1px solid #e5ddff !important;
  color: #6d28d9 !important;
  font-weight: 700 !important;
}

.acoes-curriculo {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: 15px !important;
}

.acoes-curriculo a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 42px !important;
  padding: 10px 14px !important;
  border-radius: 11px !important;
  font-weight: 700 !important;
}

.acoes-curriculo .upload {
  background: #f1eaff !important;
  color: #6d28d9 !important;
}

/* Mensagens */
#mensagemPerfil {
  width: 100% !important;
  margin: 0 0 16px !important;
}

/* ---------- Tablet ---------- */

@media (max-width: 1050px) {
  .dashboard {
    grid-template-columns: 220px minmax(0, 1fr) !important;
    gap: 20px !important;
    width: min(96%, 1200px) !important;
  }

  .sidebar {
    width: 220px !important;
    max-width: 220px !important;
  }

  .perfil-card {
    grid-template-columns: 125px minmax(0, 1fr) !important;
    grid-template-areas:
      "foto nome"
      "foto email"
      "foto acoes" !important;
    column-gap: 20px !important;
  }

  .perfil-card .foto {
    width: 118px !important;
    height: 118px !important;
  }

  .acoes-perfil {
    justify-content: flex-start !important;
    margin-top: 8px !important;
  }
}

/* ---------- Celular ---------- */

@media (max-width: 768px) {
  .dashboard {
    display: block !important;
    width: 100% !important;
    padding: 12px !important;
    margin: 0 !important;
  }

  .sidebar {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 16px !important;
    padding: 14px !important;
  }

  .conteudo {
    width: 100% !important;
  }

  .perfil-card {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "foto"
      "nome"
      "email"
      "acoes" !important;
    justify-items: center !important;
    text-align: center !important;
    padding: 24px 18px !important;
    gap: 8px !important;
  }

  .perfil-card .foto {
    width: 110px !important;
    height: 110px !important;
    margin-bottom: 5px !important;
  }

  .perfil-card h1 {
    font-size: 1.35rem !important;
  }

  .acoes-perfil {
    justify-content: center !important;
    width: 100% !important;
    margin-top: 8px !important;
  }

  .informacoes {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .informacoes .bloco:has(.tags),
  .informacoes .bloco:has(.redes-sociais),
  .informacoes .bloco:last-child {
    grid-column: auto !important;
  }

  .informacoes .bloco {
    padding: 20px !important;
  }
}

@media (max-width: 480px) {
  .dashboard {
    padding: 10px !important;
  }

  .sidebar {
    padding: 12px !important;
  }

  .perfil-card {
    padding: 22px 15px !important;
    border-radius: 18px !important;
  }

  .informacoes .bloco {
    padding: 18px !important;
    border-radius: 16px !important;
  }

  .informacoes .dados p {
    grid-template-columns: 1fr !important;
    gap: 3px !important;
  }

  .acoes-perfil {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .acoes-perfil a,
  .acoes-perfil button {
    width: 100% !important;
  }

  .acoes-curriculo {
    flex-direction: column !important;
  }

  .acoes-curriculo a {
    width: 100% !important;
    justify-content: center !important;
  }
}
