/* =========================================================
   CONECTA JOVEM — FIXES GLOBAIS 2026
   Camada final: pequenos ajustes de consistência, acessibilidade
   e responsividade sem substituir os estilos das páginas.
   ========================================================= */
:root {
  --cj-focus-ring: 0 0 0 3px rgba(124, 58, 237, .28);
  --cj-radius: 14px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { max-width: 100%; overflow-x: hidden; }
img, svg, video, canvas { max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid rgba(124, 58, 237, .45);
  outline-offset: 2px;
}
:where(input, select, textarea) { max-width: 100%; }
textarea { resize: vertical; }
button[disabled], input[disabled], select[disabled], textarea[disabled] {
  cursor: not-allowed;
  opacity: .65;
}
[hidden] { display: none !important; }
table { max-width: 100%; }
@media (max-width: 768px) {
  .container, .container-fluid, main, section {
    max-width: 100%;
  }
  .table-responsive, .overflow-auto {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* ==========================================================
   CORREÇÃO DEFINITIVA — MENU HAMBÚRGUER NO CELULAR
   Conecta Jovem | 2026
   ========================================================== */
@media (max-width: 768px) {
  .cj-home-header nav,
  header nav {
    display: none !important;
  }

  .cj-home-header nav.ativo,
  header nav.ativo {
    display: block !important;
    position: fixed !important;
    top: 0 !important;
    right: 0 !important;
    left: auto !important;
    width: min(88vw, 340px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    padding: 82px 18px 28px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateX(0) !important;
    z-index: 2147483000 !important;
    background: #ffffff !important;
    box-shadow: -14px 0 40px rgba(0,0,0,.22) !important;
    border-radius: 18px 0 0 18px !important;
  }

  .cj-home-header nav.ativo ul,
  header nav.ativo ul {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 7px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .cj-home-header nav.ativo ul li,
  header nav.ativo ul li {
    display: block !important;
    width: 100% !important;
  }

  .cj-home-header nav.ativo ul li a,
  header nav.ativo ul li a {
    display: flex !important;
    align-items: center !important;
    min-height: 48px !important;
    width: 100% !important;
    padding: 12px 14px !important;
    color: #202033 !important;
    background: transparent !important;
    text-decoration: none !important;
    white-space: normal !important;
    writing-mode: horizontal-tb !important;
    text-align: left !important;
    border-radius: 12px !important;
    font-size: .95rem !important;
    font-weight: 650 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .cj-home-header nav.ativo ul li a:hover,
  header nav.ativo ul li a:hover {
    background: #f1edff !important;
    color: #6d3df5 !important;
  }

  .cj-home-header nav.ativo .fechar-menu,
  header nav.ativo .fechar-menu {
    display: flex !important;
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    z-index: 2 !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .cj-home-header .menu-toggle,
  header .menu-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2147483001 !important;
  }

  body.menu-mobile-aberto::before {
    content: "" !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147482999 !important;
    background: rgba(7, 10, 20, .48) !important;
    pointer-events: none !important;
  }
}

/* ==========================================================
   CONECTA JOVEM — REVISÃO FINAL DE CORES / CONTRASTE 2026
   Escopo: site inteiro, com atenção especial a
   dashboard, perfil, currículo, vagas, candidaturas e edição.
   Esta camada fica por último para neutralizar conflitos entre
   os diversos CSS antigos sem alterar a estrutura HTML/JS.
   ========================================================== */
:root{
  --cj-ui-primary:#7c3aed;
  --cj-ui-primary-hover:#6d28d9;
  --cj-ui-primary-active:#5b21b6;
  --cj-ui-primary-soft:#f3e8ff;
  --cj-ui-text:#171329;
  --cj-ui-text-2:#403b52;
  --cj-ui-muted:#6b6478;
  --cj-ui-bg:#f7f7fb;
  --cj-ui-surface:#ffffff;
  --cj-ui-surface-2:#faf9ff;
  --cj-ui-border:#e4dff0;
  --cj-ui-success:#15803d;
  --cj-ui-warning:#b45309;
  --cj-ui-danger:#b91c1c;
  --cj-ui-info:#1d4ed8;
}

/* ---------- base clara ---------- */
body{background:var(--cj-ui-bg)!important;color:var(--cj-ui-text)!important;}
main,.conteudo,.content,.page-content{color:var(--cj-ui-text);}
h1,h2,h3,h4,h5,h6,strong,b{color:var(--cj-ui-text);}
p,li{color:var(--cj-ui-text-2);}
small,.muted,.text-muted,.subtitulo,.helper,.hint{color:var(--cj-ui-muted);}

/* ---------- cartões e blocos ---------- */
.card,.cartao,.form-card,.bloco,.painel,.box,.informacoes,
.empresa-card,.vaga-card,.candidato-card,.candidatura-card,
.notificacao-card,.notificacao,.vaga-principal,.perfil,.descricao,
.dashboard-card,.stat-card,.perfil-card,.profile-card,.content-card,
.content-box,.caixa,.cj-card,.page-card,.section-card,
.lista > *, .lista-vagas > *, .candidatura,
.progresso,.rodape,.notificacoes-candidaturas,.resumo-card,.ferramentas,
.vazio,.filtros,.filtros-container,.filtro,.resultado,.info-card{
  background:var(--cj-ui-surface)!important;
  color:var(--cj-ui-text)!important;
  border-color:var(--cj-ui-border)!important;
}
.card p,.cartao p,.form-card p,.bloco p,.painel p,.box p,
.empresa-card p,.vaga-card p,.candidatura-card p,.notificacao p,
.vaga-resumo,.recomendacao-motivo,.empresa-nome,.vaga-card-footer small{
  color:var(--cj-ui-text-2)!important;
}
.card h1,.card h2,.card h3,.cartao h1,.cartao h2,.cartao h3,
.form-card h1,.form-card h2,.form-card h3,.bloco h2,.painel h2,
.empresa-card h2,.vaga-card h2,.candidatura-card h2,
.titulo-vaga h2,.notificacoes-cabecalho h2,.resumo-card strong{
  color:var(--cj-ui-text)!important;
}

/* ---------- bordas e separadores ---------- */
.card *, .cartao *, .form-card *, .bloco *, .painel *,
.empresa-card *, .vaga-card *, .candidatura-card *{
  border-color:var(--cj-ui-border);
}
.vaga-card-footer{border-top-color:var(--cj-ui-border)!important;}

/* ---------- botões: padrão único roxo ---------- */
.btn-primary,.btn-principal,.btn-cadastro,.btn-login-principal,
.btn-login,.btn-candidatar,.btn-salvar,.btn-upload,.btn-aplicar,
.btn-destaque,.btn-success,.btn-enviar,.btn-ver-vaga,.radar-ver,
.v-btn-primary,.cj-btn:not(.light):not(.ghost):not(.gray):not(.danger),
.form-card button[type="submit"],button.btn-primary,button.btn-principal,
button.btn-candidatar,button.btn-salvar,button[type="submit"]{
  background:linear-gradient(135deg,var(--cj-ui-primary),var(--cj-ui-primary-hover))!important;
  color:#fff!important;
  border:1px solid var(--cj-ui-primary)!important;
  box-shadow:0 6px 16px rgba(124,58,237,.18)!important;
}
.btn-primary:hover,.btn-principal:hover,.btn-cadastro:hover,
.btn-login-principal:hover,.btn-login:hover,.btn-candidatar:hover,
.btn-salvar:hover,.btn-upload:hover,.btn-aplicar:hover,.btn-destaque:hover,
.btn-success:hover,.btn-enviar:hover,.btn-ver-vaga:hover,.radar-ver:hover,
.v-btn-primary:hover,.cj-btn:not(.light):not(.ghost):not(.gray):not(.danger):hover,
.form-card button[type="submit"]:hover,button.btn-primary:hover,
button.btn-principal:hover,button.btn-candidatar:hover,button.btn-salvar:hover,
button[type="submit"]:hover{
  background:linear-gradient(135deg,var(--cj-ui-primary-hover),var(--cj-ui-primary-active))!important;
  color:#fff!important;
  border-color:var(--cj-ui-primary-hover)!important;
}

/* Secundários/outline */
.btn-secondary,.btn-secundario,.btn-outline,.btn-detalhes,.btn-ver,
.btn-cancelar,.btn-limpar,.btn-atualizar,.v-btn-outline,.btn-pequeno,
.voltar,.btn-texto{
  background:var(--cj-ui-surface)!important;
  color:var(--cj-ui-primary)!important;
  border:1px solid var(--cj-ui-border)!important;
}
.btn-secondary:hover,.btn-secundario:hover,.btn-outline:hover,
.btn-detalhes:hover,.btn-ver:hover,.btn-cancelar:hover,.btn-limpar:hover,
.btn-atualizar:hover,.v-btn-outline:hover,.btn-pequeno:hover,.voltar:hover,
.btn-texto:hover{
  background:var(--cj-ui-primary-soft)!important;
  color:var(--cj-ui-primary-hover)!important;
  border-color:var(--cj-ui-primary)!important;
}

/* ---------- campos ---------- */
input:not([type="checkbox"]):not([type="radio"]),select,textarea,
.campo input,.campo select,.campo textarea,
.campo-busca,.ferramentas select,.btn-atualizar{
  background:var(--cj-ui-surface)!important;
  color:var(--cj-ui-text)!important;
  border-color:var(--cj-ui-border)!important;
}
input::placeholder,textarea::placeholder{color:#81788f!important;opacity:1;}
label,.campo label,.form-group label{color:var(--cj-ui-text-2)!important;}
input:focus,select:focus,textarea:focus{
  border-color:var(--cj-ui-primary)!important;
  box-shadow:0 0 0 3px rgba(124,58,237,.15)!important;
  outline:none!important;
}

/* ---------- badges/status ---------- */
.vaga-tag,.tag,.tags span,.badge,.cj-badge,.status-badge,
.vaga-tipo,.vaga-meta span{border:1px solid #ddd0f7!important;}
.vaga-tag,.tag,.badge,.cj-badge,.status-badge,.vaga-tipo{
  background:var(--cj-ui-primary-soft)!important;color:#5b21b6!important;
}
.status-enviada{background:#dbeafe!important;color:#1d4ed8!important;}
.status-analise{background:#fef3c7!important;color:#92400e!important;}
.status-aprovada{background:#dcfce7!important;color:#166534!important;}
.status-reprovada{background:#fee2e2!important;color:#991b1b!important;}
.vaga-nova{background:#dcfce7!important;color:#166534!important;}

/* ---------- paginação ---------- */
.paginacao button{
  background:var(--cj-ui-surface)!important;
  color:var(--cj-ui-text)!important;
  border-color:var(--cj-ui-border)!important;
}
.paginacao button:hover:not(:disabled),.paginacao button.ativo{
  background:var(--cj-ui-primary)!important;color:#fff!important;border-color:var(--cj-ui-primary)!important;
}

/* ---------- responsividade / prevenção de quebras ---------- */
.card,.cartao,.form-card,.bloco,.painel,.box,.empresa-card,.vaga-card,
.candidato-card,.candidatura-card,.dashboard-card,.stat-card,.perfil-card,
.profile-card{min-width:0;overflow-wrap:anywhere;}
button,a{max-width:100%;}
@media(max-width:680px){
  .card,.cartao,.form-card,.bloco,.painel,.box,.empresa-card,.vaga-card,
  .candidato-card,.candidatura-card{border-radius:14px!important;}
  button{min-height:44px;}
}
