/**
 * Portal do candidato.
 *
 * Chrome próprio, mais leve que o do painel: quem entra aqui tem poucas
 * tarefas e visita de vez em quando, não opera um sistema o dia inteiro.
 * Reaproveita os tokens e os componentes de formulário já existentes.
 */

.lc-portal {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--lc-surface-alt);
}

.lc-portal__wrap { max-width: 940px; margin: 0 auto; padding: 0 var(--lc-5); width: 100%; }

/* ── Cabeçalho ─────────────────────────────────────────── */
.lc-portal__top {
  background: var(--lc-surface);
  border-bottom: 1px solid var(--lc-border);
  position: sticky; top: 0; z-index: 20;
}

.lc-portal__bar {
  max-width: 940px; margin: 0 auto;
  padding: var(--lc-3) var(--lc-5);
  display: flex; align-items: center; gap: var(--lc-5);
}

.lc-portal__brand img { display: block; height: 38px; width: auto; }

.lc-portal__nav { display: flex; gap: var(--lc-1); margin-left: auto; }

.lc-portal__nav a {
  display: inline-flex; align-items: center; gap: var(--lc-2);
  padding: var(--lc-2) var(--lc-3);
  border-radius: var(--lc-radius-sm);
  font-size: var(--lc-text-sm); font-weight: 600;
  color: var(--lc-text-muted); text-decoration: none;
}

.lc-portal__nav a:hover { background: var(--lc-surface-alt); color: var(--lc-text); }
.lc-portal__nav a.is-active { background: var(--lc-indigo); color: #fff; }
.lc-portal__sair { margin-left: var(--lc-2); }

/* ── Corpo ─────────────────────────────────────────────── */
.lc-portal__main { flex: 1; padding: var(--lc-8) 0 var(--lc-10); }
.lc-portal__main h1 { font-size: var(--lc-h2); margin: 0 0 var(--lc-5); }

.lc-portal__hero {
  display: flex; align-items: center; gap: var(--lc-5);
  margin-bottom: var(--lc-6);
}
.lc-portal__hero h1 { margin: 0; }
.lc-portal__hero--simples { align-items: flex-start; }

.lc-portal__lead { color: var(--lc-text-muted); margin: var(--lc-2) 0 0; }

.lc-portal__card {
  background: var(--lc-surface);
  border: 1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  padding: var(--lc-6);
}
.lc-portal__card + .lc-portal__card,
.lc-portal__card + form,
form + .lc-portal__card { margin-top: var(--lc-5); }
.lc-portal__card h2 { font-size: var(--lc-h4); margin: 0 0 var(--lc-4); }
.lc-portal__card--destaque { border-left: 3px solid var(--lc-amber); }
.lc-portal__card--nota { background: var(--lc-surface-alt); }

.lc-portal__secao { margin-top: var(--lc-8); }
.lc-portal__secao h2 {
  font-size: var(--lc-h4); margin: 0 0 var(--lc-4);
  display: flex; align-items: center; gap: var(--lc-3);
}

.lc-portal__nota { font-size: var(--lc-text-sm); color: var(--lc-text-muted); margin-top: var(--lc-3); }
.lc-portal__acoes { margin-top: var(--lc-5); }

/* Entrada centralizada, sem menu — antes do login não há para onde navegar. */
.lc-portal__centro { display: grid; place-items: center; min-height: 60vh; }
.lc-portal__centro .lc-portal__card { width: 100%; max-width: 420px; }
.lc-portal__centro h1 { font-size: var(--lc-h3); }

/* ── Avatar ────────────────────────────────────────────── */
.lc-avatar {
  width: var(--tam, 56px); height: var(--tam, 56px);
  border-radius: 50%; object-fit: cover;
  flex-shrink: 0; display: block;
  border: 2px solid var(--lc-border);
  background: var(--lc-surface-alt);
}

.lc-avatar--iniciais {
  display: grid; place-items: center;
  font-weight: 700; color: var(--lc-indigo);
  /* A inicial acompanha o diâmetro para caber em qualquer tamanho. */
  font-size: calc(var(--tam, 56px) * .38);
  letter-spacing: .02em;
}

.lc-foto { display: flex; align-items: center; gap: var(--lc-5); flex-wrap: wrap; }
.lc-foto__acoes { display: flex; flex-direction: column; gap: var(--lc-2); }
.lc-file input[type="file"] { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lc-file { display: inline-block; cursor: pointer; }

/* ── Preenchimento do perfil ───────────────────────────── */
.lc-barra {
  height: 10px; border-radius: 5px;
  background: var(--lc-surface-alt);
  border: 1px solid var(--lc-border);
  overflow: hidden; margin: var(--lc-3) 0;
}
.lc-barra > span { display: block; height: 100%; background: var(--lc-amber); }

.lc-faltando {
  display: flex; flex-wrap: wrap; gap: var(--lc-2);
  list-style: none; margin: var(--lc-3) 0 var(--lc-5); padding: 0;
}
.lc-faltando li {
  font-size: var(--lc-text-xs);
  padding: 3px 9px; border-radius: var(--lc-radius-pill);
  background: var(--lc-surface-alt); border: 1px solid var(--lc-border);
  color: var(--lc-text-muted);
}

/* ── Contadores ────────────────────────────────────────── */
.lc-portal__contadores {
  display: grid; gap: var(--lc-3);
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  margin-top: var(--lc-6);
}

.lc-contador {
  padding: var(--lc-4);
  border-radius: var(--lc-radius);
  background: var(--lc-surface);
  border: 1px solid var(--lc-border);
  border-top: 3px solid var(--lc-border-strong);
  text-decoration: none; color: inherit;
}
.lc-contador strong { display: block; font-size: 1.7rem; line-height: 1.05; }
.lc-contador span { font-size: var(--lc-text-xs); color: var(--lc-text-muted); }
.lc-contador:hover { box-shadow: var(--lc-shadow); }

.lc-contador--andamento { border-top-color: var(--lc-indigo); }
.lc-contador--ganho     { border-top-color: var(--lc-success); }
.lc-contador--perda     { border-top-color: #b42318; }
.lc-contador--neutro    { border-top-color: var(--lc-border-strong); }

/* ── Lista de candidaturas ─────────────────────────────── */
.lc-candidaturas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--lc-3); }

.lc-candidaturas a {
  display: block; padding: var(--lc-4);
  background: var(--lc-surface);
  border: 1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  text-decoration: none; color: inherit;
}
.lc-candidaturas a:hover { border-color: var(--lc-indigo); box-shadow: var(--lc-shadow); }

.lc-candidaturas__topo {
  display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: var(--lc-3);
}
.lc-candidaturas__meta { margin: var(--lc-2) 0 0; font-size: var(--lc-text-xs); color: var(--lc-text-muted); }
.lc-candidaturas__motivo {
  margin: var(--lc-3) 0 0; padding-top: var(--lc-3);
  border-top: 1px dashed var(--lc-border);
  font-size: var(--lc-text-sm); color: var(--lc-text-muted);
}

/* ── Detalhe ───────────────────────────────────────────── */
.lc-dados { display: grid; grid-template-columns: max-content 1fr; gap: var(--lc-2) var(--lc-5); margin: 0; }
.lc-dados dt { font-size: var(--lc-text-xs); color: var(--lc-text-muted); text-transform: uppercase; letter-spacing: .04em; }
.lc-dados dd { margin: 0; font-size: var(--lc-text-sm); }

.lc-tempo { list-style: none; margin: 0; padding: 0; }
.lc-tempo li {
  display: grid; grid-template-columns: 108px 1fr;
  gap: var(--lc-2) var(--lc-4);
  padding: var(--lc-3) 0;
  border-bottom: 1px solid var(--lc-border);
}
.lc-tempo li:last-child { border-bottom: 0; }
.lc-tempo__data { font-size: var(--lc-text-xs); color: var(--lc-text-muted); font-variant-numeric: tabular-nums; }
.lc-tempo__etapa { font-weight: 600; font-size: var(--lc-text-sm); }
.lc-tempo__motivo { grid-column: 2; font-size: var(--lc-text-sm); color: var(--lc-text-muted); }

.lc-field--curto { max-width: 140px; }
.lc-checks { display: flex; flex-wrap: wrap; gap: var(--lc-4); margin-top: var(--lc-4); }

@media (max-width: 700px) {
  .lc-portal__bar { flex-wrap: wrap; gap: var(--lc-3); }
  .lc-portal__nav { margin-left: 0; width: 100%; overflow-x: auto; }
  .lc-portal__sair { margin-left: auto; }
  .lc-portal__hero { flex-direction: column; align-items: flex-start; }
  .lc-dados { grid-template-columns: 1fr; }
  .lc-tempo li { grid-template-columns: 1fr; }
  .lc-tempo__motivo { grid-column: 1; }
}

/* ── Recorte da foto ───────────────────────────────────────
   Diálogo em tela cheia: no celular, um recorte dentro do fluxo da página
   competiria com a rolagem enquanto o dedo arrasta a imagem. */
.lc-crop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: var(--lc-4);
  background: rgba(14, 11, 36, .72);
  backdrop-filter: blur(3px);
}

.lc-crop[hidden] { display: none; }

.lc-crop__caixa {
  width: 100%;
  max-width: 400px;
  background: var(--lc-surface);
  border-radius: var(--lc-radius-lg);
  padding: var(--lc-6);
  box-shadow: var(--lc-shadow-lg);
}

.lc-crop__caixa h2 { margin: 0 0 var(--lc-2); font-size: var(--lc-h4); }

.lc-crop__palco {
  position: relative;
  width: 320px;
  height: 320px;
  max-width: 100%;
  margin: var(--lc-5) auto;
  border-radius: var(--lc-radius);
  overflow: hidden;
  background: var(--lc-surface-alt);
}

.lc-crop__palco canvas {
  display: block;
  width: 100%;
  height: 100%;
  cursor: grab;
  touch-action: none;
}

.lc-crop__palco canvas:active { cursor: grabbing; }

/* Círculo mostrando o recorte final. O avatar é redondo, então o quadrado
   sozinho enganaria sobre o que vai aparecer. */
.lc-crop__mascara {
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: 0 0 0 999px rgba(14, 11, 36, .45) inset;
  border-radius: 50%;
}

.lc-crop input[type="range"] { width: 100%; }

.lc-crop__acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--lc-3);
  margin-top: var(--lc-5);
}

@media (max-width: 420px) {
  .lc-crop__palco { width: 260px; height: 260px; }
  .lc-crop__caixa { padding: var(--lc-5); }
}

@media (prefers-reduced-motion: reduce) {
  .lc-crop { backdrop-filter: none; }
}

/* Estados da lista de competências. As classes base vivem em components.css,
   que o portal já carrega; só estes dois estados nasceram no site.css e
   precisam existir aqui também. */
.lc-skills__empty,
.lc-skills__status {
  margin-top: var(--lc-4);
  padding: var(--lc-4);
  border: 1px dashed var(--lc-border-strong);
  border-radius: var(--lc-radius-sm);
  color: var(--lc-text-muted);
  font-size: var(--lc-text-sm);
}

.lc-skills__status { border-style: solid; background: var(--lc-surface-alt); }
.lc-skills__group + .lc-skills__group { margin-top: var(--lc-5); }

/* ======================================================================
   Painel — hierarquia
   ====================================================================== */

.lc-portal__cabeca {
  display: flex;
  align-items: center;
  gap: var(--lc-5);
  padding-bottom: var(--lc-6);
  margin-bottom: var(--lc-2);
  border-bottom: 1px solid var(--lc-border);
}

.lc-portal__cabeca h1 { margin: 0; font-size: var(--lc-h2); }

.lc-portal__secao-topo {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--lc-3);
}

.lc-portal__secao-topo h2 { margin: 0; }
.lc-portal__contagem { font-size: var(--lc-text-sm); color: var(--lc-text-muted); margin: var(--lc-5) 0 var(--lc-3); }

.lc-aviso {
  display: flex;
  gap: var(--lc-3);
  align-items: flex-start;
  margin-top: var(--lc-5);
  padding: var(--lc-4);
  border-radius: var(--lc-radius);
  border: 1px solid var(--lc-border);
  background: var(--lc-surface);
  font-size: var(--lc-text-sm);
}

.lc-aviso p { margin: 0; }
.lc-aviso--atencao { border-left: 3px solid var(--lc-amber); }

/* ── Vagas no portal ───────────────────────────────────── */

.lc-vagap__lista { display: flex; flex-direction: column; gap: var(--lc-3); }

.lc-vagap {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) auto;
  gap: var(--lc-5);
  align-items: center;
  padding: var(--lc-5);
  background: var(--lc-surface);
  border: 1px solid var(--lc-border);
  border-radius: var(--lc-radius);
  transition: border-color var(--lc-fast) var(--lc-ease), box-shadow var(--lc-fast) var(--lc-ease);
}

.lc-vagap:hover { border-color: var(--lc-violet); box-shadow: var(--lc-shadow); }

/* A nota fica à esquerda porque é o que ordena a lista: quem varre a coluna
   entende a sequência sem ler os títulos. */
.lc-vagap__nota {
  display: grid;
  place-items: center;
  align-content: center;
  width: 68px;
  height: 68px;
  border-radius: var(--lc-radius);
  background: var(--lc-surface-alt);
  border: 1px solid var(--lc-border);
}

.lc-vagap__nota strong { font-size: 1.5rem; line-height: 1; font-variant-numeric: tabular-nums; }
.lc-vagap__nota span { font-size: 11px; color: var(--lc-text-muted); }

.lc-vagap--alta  .lc-vagap__nota { border-color: var(--lc-success); color: var(--lc-success); }
.lc-vagap--media .lc-vagap__nota { border-color: var(--lc-amber); color: #b45309; }

.lc-vagap__corpo h3 { margin: 0; font-size: var(--lc-text-lg); font-weight: 650; line-height: 1.3; }
.lc-vagap__corpo h3 a { color: var(--lc-text); text-decoration: none; }
.lc-vagap__corpo h3 a:hover { color: var(--lc-indigo-800); text-decoration: underline; }

.lc-vagap__meta { margin: var(--lc-2) 0 0; font-size: var(--lc-text-xs); color: var(--lc-text-muted); }
.lc-vagap__faixa { margin: var(--lc-2) 0 0; font-size: var(--lc-text-sm); font-weight: 650; }

.lc-vagap__porques {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lc-2) var(--lc-4);
  list-style: none;
  margin: var(--lc-3) 0 0;
  padding: 0;
  font-size: var(--lc-text-xs);
  color: var(--lc-text-muted);
}

.lc-vagap__porques li { display: inline-flex; align-items: center; gap: 4px; }
.lc-vagap__porques svg { color: var(--lc-success); }

.lc-vagap__acao { display: flex; flex-direction: column; align-items: stretch; gap: var(--lc-2); }
.lc-vagap__ver { font-size: var(--lc-text-xs); color: var(--lc-text-muted); text-align: center; }
.lc-btn--sm { min-height: 38px; padding: 6px 16px; font-size: var(--lc-text-sm); }

/* ── Perfil ────────────────────────────────────────────── */

.lc-perfil {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lc-6);
  align-items: flex-start;
  margin-top: var(--lc-4);
  padding: var(--lc-6);
  background: var(--lc-surface);
  border: 1px solid var(--lc-border);
  border-radius: var(--lc-radius);
}

.lc-perfil__conteudo { flex: 1 1 260px; }
.lc-perfil__conteudo p { margin: 0 0 var(--lc-2); font-size: var(--lc-text-sm); }

/* Anel de progresso em gradiente cônico: um número só, destacado sem competir
   com as barras usadas em outras telas. */
.lc-anel {
  width: 104px;
  height: 104px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: conic-gradient(
    var(--lc-amber) calc(var(--pct) * 1%),
    var(--lc-surface-alt) 0
  );
}

.lc-anel span {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: var(--lc-surface);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 680px) {
  .lc-vagap { grid-template-columns: 56px minmax(0, 1fr); }
  .lc-vagap__nota { width: 56px; height: 56px; }
  .lc-vagap__nota strong { font-size: 1.2rem; }
  .lc-vagap__acao { grid-column: 1 / -1; flex-direction: row; align-items: center; }
  .lc-portal__cabeca { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) { .lc-vagap { transition: none; } }
