/* ==========================================================
   CONECTA JOVEM — PROFESSIONAL UI SYSTEM 2026
   Camada final: identidade, contraste, botões, formulários,
   acessibilidade, estados e responsividade.
   O tema é definido exclusivamente pela configuração do sistema.
========================================================== */
:root{
  --cj-p:#7c3aed;
  --cj-p-hover:#6d28d9;
  --cj-p-soft:#f3e8ff;
  --cj-bg:#f7f8fc;
  --cj-surface:#ffffff;
  --cj-surface-2:#f8fafc;
  --cj-text:#171329;
  --cj-text-2:#403b52;
  --cj-muted:#6b6478;
  --cj-border:#e2ddec;
  --cj-border-strong:#cfc5df;
  --cj-success:#15803d;
  --cj-success-bg:#f0fdf4;
  --cj-warning:#a16207;
  --cj-warning-bg:#fefce8;
  --cj-danger:#b91c1c;
  --cj-danger-bg:#fef2f2;
  --cj-shadow:0 8px 28px rgba(39,25,72,.08);
  --cj-shadow-hover:0 14px 36px rgba(39,25,72,.13);
  --cj-radius:14px;
}

html{background:var(--cj-bg);text-rendering:optimizeLegibility}
body{min-width:320px;overflow-x:hidden;background:var(--cj-bg)!important;color:var(--cj-text)!important;line-height:1.55}
*,*::before,*::after{box-sizing:border-box}
img,svg,video{max-width:100%}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.62}

/* Tipografia e leitura */
h1,h2,h3,h4,h5,h6{color:var(--cj-text);line-height:1.2}
p,li{color:var(--cj-text-2)}
.text-muted,.muted,.descricao,.subtitulo,.helper,.ajuda,.hint,.cj-muted{color:var(--cj-muted)!important}
a{color:var(--cj-p)}
a:hover{color:var(--cj-p-hover)}

/* Superfícies */
.card,.cartao,.form-card,.painel,.box,.bloco,.informacoes,
.empresa-card,.vaga-card,.candidato-card,.candidatura-card,
.notificacao-card,.notificacao,.cj-card,.cj-item,.cj-auth,
.admin-card,.admin-actions a,.cj-kpi,.cj-dash-card,.cj-dash-item,
.cj-company-mini,.info-card,.resultado,.filtros,.filtro{
  border-color:var(--cj-border)!important;
}

/* Botões — sistema único */
:is(button,.btn,.btn-primary,.btn-principal,.btn-cadastro,.btn-login,
.btn-login-principal,.btn-salvar,.btn-aplicar,.btn-atualizar,.btn-editar,
.cj-btn,.v-btn,.v-btn-primary,.material-primary,.learning-button,
.btn-visitante,.btn-upload,.btn-secondary,.btn-secundario){
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:11px;
  font-weight:750;
  line-height:1.2;
  text-decoration:none;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease,color .18s ease;
}

:is(.btn-primary,.btn-principal,.btn-cadastro,.btn-login,.btn-login-principal,
.btn-salvar,.btn-aplicar,.btn-atualizar,.cj-btn,.v-btn-primary,.material-primary,
.learning-button,.btn-visitante,.btn-upload){
  background:linear-gradient(135deg,var(--cj-p),#5b21b6)!important;
  color:#fff!important;
  border:1px solid transparent!important;
  box-shadow:0 6px 16px rgba(124,58,237,.20);
}
:is(.btn-primary,.btn-principal,.btn-cadastro,.btn-login,.btn-login-principal,
.btn-salvar,.btn-aplicar,.btn-atualizar,.cj-btn,.v-btn-primary,.material-primary,
.learning-button,.btn-visitante,.btn-upload):hover{
  background:linear-gradient(135deg,var(--cj-p-hover),#4c1d95)!important;
  color:#fff!important;
  transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(124,58,237,.26);
}
:is(.btn-secondary,.btn-secundario,.btn-detalhes,.btn-ver,.btn-cancelar,.btn-voltar,.voltar,.v-btn-outline){
  background:var(--cj-surface)!important;
  color:var(--cj-p-hover)!important;
  border:1px solid var(--cj-border-strong)!important;
  box-shadow:0 2px 8px rgba(39,25,72,.05);
}
:is(.btn-secondary,.btn-secundario,.btn-detalhes,.btn-ver,.btn-cancelar,.btn-voltar,.voltar,.v-btn-outline):hover{
  background:var(--cj-p-soft)!important;
  color:#4c1d95!important;
  border-color:#b9a4d9!important;
}
:is(.btn-sair,.btn-danger,.danger){
  background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;
}
:is(.btn-sair,.btn-danger,.danger):hover{background:#b91c1c!important;color:#fff!important}

/* Campos */
input:not([type="checkbox"]):not([type="radio"]),select,textarea{
  min-height:44px;
  width:100%;
  color:var(--cj-text)!important;
  background:var(--cj-surface)!important;
  border:1px solid var(--cj-border-strong)!important;
  border-radius:11px!important;
}
textarea{min-height:110px;resize:vertical}
input::placeholder,textarea::placeholder{color:#7d748b!important;opacity:1}
input:focus,select:focus,textarea:focus{
  outline:none!important;
  border-color:var(--cj-p)!important;
  box-shadow:0 0 0 3px rgba(124,58,237,.15)!important;
}
label,.campo label,.form-group label{color:var(--cj-text-2)!important;font-weight:700!important}

/* Status */
:is(.status-success,.sucesso,.success-message){color:var(--cj-success)!important;background:var(--cj-success-bg)!important;border-color:#bbf7d0!important}
:is(.status-error,.erro,.error-message){color:var(--cj-danger)!important;background:var(--cj-danger-bg)!important;border-color:#fecaca!important}

/* Foco acessível */
:focus-visible{outline:3px solid rgba(124,58,237,.42)!important;outline-offset:3px!important}

/* Conteúdo responsivo */
.container,.cj-container{max-width:1180px}
.grid,.cards-grid,.dashboard-grid,.cj-grid{min-width:0}
.card,.vaga-card,.empresa-card,.candidato-card,.cj-card{min-width:0;overflow-wrap:anywhere}

/* Mobile */
@media(max-width:720px){
  .container,.cj-container{width:min(100% - 24px,1180px)}
  :is(.grid,.cards-grid,.dashboard-grid,.cj-grid){grid-template-columns:1fr!important}
  :is(input,select,textarea){font-size:16px!important}
  :is(.card,.form-card,.painel,.box,.bloco,.cj-card){border-radius:12px!important}
}

/* ==========================================================
   TEMA AUTOMÁTICO: somente a configuração do dispositivo
========================================================== */

html {color-scheme:light}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
