/* =====================================================================
   NeuroHub — Sistema de Recrutamento · Design System
   Fase 1 (aprovado 2026-09-02). Base visual única para landing + painel ADM.
   Sem dependência de framework. Importar antes do CSS de cada página.
   Fontes: Google Fonts (Sora, Inter, IBM Plex Mono).
   ===================================================================== */

/* ---------- 1. Tokens (tema claro = padrão) ---------- */
:root{
  /* Marca */
  --nh-magenta:#C64FCA;
  --nh-magenta-strong:#A2379F;   /* hover / pressed */
  --nh-magenta-wash:#F7E2F6;     /* fundo de tag, seleção */
  --nh-ink:#241F23;              /* "HUB", títulos */

  /* Superfícies e texto */
  --nh-paper:#FCFAFC;            /* fundo da aplicação */
  --nh-surface:#F3EEF3;          /* seções, inputs em repouso */
  --nh-surface-2:#FFFFFF;        /* cards */
  --nh-border:#E7DEE6;
  --nh-border-strong:#D6C9D5;
  --nh-text:#241F23;
  --nh-text-soft:#5B535B;
  --nh-muted:#877E86;

  /* Estado (independente da marca) */
  --nh-ok:#2F7D5A;      --nh-ok-wash:#E3F1EA;
  --nh-warn:#9A6410;    --nh-warn-wash:#F6EBD8;
  --nh-bad:#B5382B;     --nh-bad-wash:#F7E3E1;

  /* Elevação */
  --nh-shadow-1:0 1px 2px rgba(36,20,36,.05), 0 2px 8px rgba(36,20,36,.04);
  --nh-shadow-2:0 4px 20px rgba(36,20,36,.10);

  /* Forma */
  --nh-r-sm:6px;
  --nh-r:10px;
  --nh-r-lg:16px;

  /* Tipografia */
  --nh-font-display:"Sora","Segoe UI",system-ui,sans-serif;
  --nh-font-body:"Inter","Segoe UI",system-ui,sans-serif;
  --nh-font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  /* Escala de tipo */
  --nh-fs-display:clamp(2.1rem, 5vw, 3rem);
  --nh-fs-h1:2rem;
  --nh-fs-h2:1.5rem;
  --nh-fs-h3:1.175rem;
  --nh-fs-body:1rem;
  --nh-fs-sm:.875rem;
  --nh-fs-label:.72rem;

  /* Layout */
  --nh-maxw:1120px;
  --nh-maxw-prose:640px;
}

/* Tema escuro automático (SO em dark, sem escolha explícita "light") */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --nh-magenta:#D368D6;
    --nh-magenta-strong:#E495E6;
    --nh-magenta-wash:#3A2140;
    --nh-ink:#EDE7ED;
    --nh-paper:#131015;
    --nh-surface:#1D1922;
    --nh-surface-2:#241F2A;
    --nh-border:#352E39;
    --nh-border-strong:#4A3F4D;
    --nh-text:#EDE7ED;
    --nh-text-soft:#B7ADB7;
    --nh-muted:#9C929C;
    --nh-ok:#5FBF93;   --nh-ok-wash:#173026;
    --nh-warn:#D6A24B; --nh-warn-wash:#332714;
    --nh-bad:#E8776B;  --nh-bad-wash:#3A1F1C;
    --nh-shadow-1:0 1px 2px rgba(0,0,0,.4);
    --nh-shadow-2:0 8px 30px rgba(0,0,0,.5);
  }
}

/* Tema escuro por escolha explícita */
:root[data-theme="dark"]{
  --nh-magenta:#D368D6;
  --nh-magenta-strong:#E495E6;
  --nh-magenta-wash:#3A2140;
  --nh-ink:#EDE7ED;
  --nh-paper:#131015;
  --nh-surface:#1D1922;
  --nh-surface-2:#241F2A;
  --nh-border:#352E39;
  --nh-border-strong:#4A3F4D;
  --nh-text:#EDE7ED;
  --nh-text-soft:#B7ADB7;
  --nh-muted:#9C929C;
  --nh-ok:#5FBF93;   --nh-ok-wash:#173026;
  --nh-warn:#D6A24B; --nh-warn-wash:#332714;
  --nh-bad:#E8776B;  --nh-bad-wash:#3A1F1C;
  --nh-shadow-1:0 1px 2px rgba(0,0,0,.4);
  --nh-shadow-2:0 8px 30px rgba(0,0,0,.5);
}

/* ---------- 2. Reset mínimo ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--nh-font-body);
  font-size:var(--nh-fs-body);
  line-height:1.65;
  color:var(--nh-text);
  background:var(--nh-paper);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--nh-magenta-strong);text-underline-offset:2px}
:focus-visible{outline:2px solid var(--nh-magenta);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}

/* ---------- 3. Tipografia ---------- */
.nh-display,.nh-h1,.nh-h2,.nh-h3{font-family:var(--nh-font-display);line-height:1.2;text-wrap:balance;color:var(--nh-text);margin:0}
.nh-display{font-size:var(--nh-fs-display);font-weight:700;letter-spacing:-.02em}
.nh-h1{font-size:var(--nh-fs-h1);font-weight:700;letter-spacing:-.01em}
.nh-h2{font-size:var(--nh-fs-h2);font-weight:600}
.nh-h3{font-size:var(--nh-fs-h3);font-weight:600}
.nh-prose{max-width:var(--nh-maxw-prose)}
.nh-soft{color:var(--nh-text-soft)}
.nh-muted{color:var(--nh-muted)}
.nh-num{font-family:var(--nh-font-mono);font-variant-numeric:tabular-nums}
.nh-label{
  font-size:var(--nh-fs-label);font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--nh-muted);
}

/* Motivo das 3 barras (letra "E" da marca) — só elemento de UI, nunca recria o logo */
.nh-bars{
  display:inline-block;width:16px;height:11px;flex:none;
  background:
    linear-gradient(var(--nh-magenta),var(--nh-magenta)) 0 0/100% 3px no-repeat,
    linear-gradient(var(--nh-magenta),var(--nh-magenta)) 0 4px/100% 3px no-repeat,
    linear-gradient(var(--nh-magenta),var(--nh-magenta)) 0 8px/100% 3px no-repeat;
}

/* ---------- 4. Layout ---------- */
.nh-wrap{max-width:var(--nh-maxw);margin-inline:auto;padding-inline:24px}
.nh-stack{display:flex;flex-direction:column;gap:12px}
.nh-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.nh-grid{display:grid;gap:20px}
.nh-scroll-x{overflow-x:auto}

/* ---------- 5. Botões ---------- */
.nh-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--nh-font-body);font-weight:600;font-size:.9rem;line-height:1;
  padding:10px 16px;border-radius:var(--nh-r-sm);border:1px solid transparent;
  cursor:pointer;transition:background-color .12s ease,border-color .12s ease;
}
.nh-btn--primary{background:var(--nh-magenta);color:#fff}
.nh-btn--primary:hover{background:var(--nh-magenta-strong)}
:root[data-theme="dark"] .nh-btn--primary,
:root:not([data-theme="light"]) .nh-btn--primary{color:#1a1020}
.nh-btn--secondary{background:transparent;color:var(--nh-text);border-color:var(--nh-border-strong)}
.nh-btn--secondary:hover{background:var(--nh-surface)}
.nh-btn--ghost{background:transparent;color:var(--nh-text-soft)}
.nh-btn--ghost:hover{background:var(--nh-surface);color:var(--nh-text)}
.nh-btn--danger{background:transparent;color:var(--nh-bad);border-color:var(--nh-bad)}
.nh-btn--danger:hover{background:var(--nh-bad-wash)}
.nh-btn[disabled]{opacity:.5;cursor:not-allowed}
.nh-btn--block{width:100%}

/* ---------- 6. Campos de formulário ---------- */
.nh-field{display:block;margin-bottom:16px}
.nh-field__label{display:block;font-size:.82rem;font-weight:500;color:var(--nh-text-soft);margin-bottom:6px}
.nh-input,.nh-select,.nh-textarea{
  width:100%;font-family:var(--nh-font-body);font-size:.92rem;
  padding:10px 12px;border:1px solid var(--nh-border-strong);border-radius:var(--nh-r-sm);
  background:var(--nh-surface-2);color:var(--nh-text);
}
.nh-textarea{min-height:96px;resize:vertical}
.nh-input::placeholder,.nh-textarea::placeholder{color:var(--nh-muted)}
.nh-input:focus,.nh-select:focus,.nh-textarea:focus{
  outline:none;border-color:var(--nh-magenta);box-shadow:0 0 0 3px var(--nh-magenta-wash);
}
.nh-input--error{border-color:var(--nh-bad);box-shadow:0 0 0 3px var(--nh-bad-wash)}
.nh-input--valid{border-color:var(--nh-ok)}
.nh-field__hint{font-size:.76rem;margin-top:5px;color:var(--nh-muted)}
.nh-field__hint--error{color:var(--nh-bad)}
.nh-field__hint--ok{color:var(--nh-ok)}

/* área de upload */
.nh-upload{
  border:1.5px dashed var(--nh-border-strong);border-radius:var(--nh-r-sm);
  padding:16px;text-align:center;font-size:.82rem;color:var(--nh-muted);
  background:var(--nh-surface-2);cursor:pointer;
}
.nh-upload:hover{border-color:var(--nh-magenta)}

/* consentimento / checkbox */
.nh-check{display:flex;gap:9px;align-items:flex-start;font-size:.82rem;color:var(--nh-text-soft)}
.nh-check input{margin-top:3px;accent-color:var(--nh-magenta);flex:none}

/* ---------- 7. Tags, skills e status ---------- */
.nh-pill{
  display:inline-flex;align-items:center;gap:6px;line-height:1.3;
  font-size:.74rem;font-weight:600;padding:4px 10px;border-radius:999px;
}
.nh-pill--skill{background:var(--nh-magenta-wash);color:var(--nh-magenta-strong)}
.nh-pill--neutral{background:var(--nh-surface);color:var(--nh-text-soft);border:1px solid var(--nh-border)}

.nh-status{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.74rem;font-weight:600;padding:4px 10px;border-radius:var(--nh-r-sm);
}
.nh-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.nh-status--ok{background:var(--nh-ok-wash);color:var(--nh-ok)}
.nh-status--warn{background:var(--nh-warn-wash);color:var(--nh-warn)}
.nh-status--bad{background:var(--nh-bad-wash);color:var(--nh-bad)}

/* ---------- 8. Medidor de pontuação (3 segmentos = motivo da marca) ---------- */
.nh-meter{display:flex;flex-direction:column;gap:6px;min-width:150px}
.nh-meter__head{
  display:flex;justify-content:space-between;gap:8px;
  font-family:var(--nh-font-mono);font-size:.9rem;color:var(--nh-text);
}
.nh-meter__track{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;height:9px}
.nh-meter__track i{background:var(--nh-surface);border-radius:2px}
.nh-meter__track i.is-on{background:var(--nh-magenta)}
.nh-meter--mid .nh-meter__track i.is-on{background:var(--nh-warn)}
.nh-meter--low .nh-meter__track i.is-on{background:var(--nh-muted)}
.nh-meter__note{font-size:.72rem;color:var(--nh-muted)}

/* ---------- 9. Abas ---------- */
.nh-tabs{display:flex;gap:2px;border-bottom:1px solid var(--nh-border)}
.nh-tabs button{
  font-family:var(--nh-font-body);font-size:.85rem;font-weight:500;color:var(--nh-text-soft);
  background:none;border:0;padding:10px 14px;cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;
}
.nh-tabs button:hover{color:var(--nh-text)}
.nh-tabs button[aria-selected="true"]{color:var(--nh-text);font-weight:600;border-bottom-color:var(--nh-magenta)}

/* ---------- 10. Cards ---------- */
.nh-card{
  background:var(--nh-surface-2);border:1px solid var(--nh-border);
  border-radius:var(--nh-r);padding:18px;box-shadow:var(--nh-shadow-1);
}

/* ---------- 11. Tabelas (rankings, banco de dados) ---------- */
.nh-table{width:100%;border-collapse:collapse;font-size:.88rem}
.nh-table th{
  text-align:left;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--nh-muted);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--nh-border);
}
.nh-table td{padding:12px;border-bottom:1px solid var(--nh-border);vertical-align:middle}
.nh-table tbody tr:last-child td,.nh-table tr:last-child td{border-bottom:0}
.nh-table tbody tr:hover{background:var(--nh-surface)}

/* candidato (célula composta) */
.nh-cand{display:flex;align-items:center;gap:11px}
.nh-cand__avatar{
  width:34px;height:34px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--nh-magenta-wash);color:var(--nh-magenta-strong);
  font-weight:600;font-size:.78rem;
}
.nh-cand__name{font-size:.88rem;font-weight:600;color:var(--nh-text)}
.nh-cand__meta{font-size:.76rem;color:var(--nh-muted)}

/* ---------- 12. Painel ADM — casca ---------- */
.nh-admin{display:flex;min-height:100vh}
.nh-admin__side{
  width:200px;flex:none;background:var(--nh-surface);
  border-right:1px solid var(--nh-border);padding:18px 0;
}
.nh-admin__side .nh-admin__logo{padding:0 18px 16px}
.nh-admin__side .nh-admin__logo img{height:22px;width:auto}
.nh-admin__nav{display:flex;flex-direction:column}
.nh-admin__nav a{
  font-size:.88rem;padding:9px 18px;color:var(--nh-text-soft);
  border-left:2px solid transparent;text-decoration:none;
}
.nh-admin__nav a[aria-current="page"]{
  color:var(--nh-text);font-weight:600;
  border-left-color:var(--nh-magenta);background:var(--nh-magenta-wash);
}
.nh-admin__main{flex:1;padding:24px 28px;background:var(--nh-surface-2);min-width:0}

/* logo: um único elemento; a arte troca por tema via variável.
   Uso: <span class="nh-logo" role="img" aria-label="NeuroHub"></span> */
:root{ --nh-logo:url("/assets/img/wordmark-claro.png"); }
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){ --nh-logo:url("/assets/img/wordmark-escuro.png"); }
}
:root[data-theme="dark"]{ --nh-logo:url("/assets/img/wordmark-escuro.png"); }
:root[data-theme="light"]{ --nh-logo:url("/assets/img/wordmark-claro.png"); }
.nh-logo{
  display:block;height:26px;width:183px;   /* wordmark ~760x108 */
  background:var(--nh-logo) left center / contain no-repeat;
}

/* ---------- 13. Utilidades de acesso ---------- */
.nh-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- 14. Responsivo ---------- */
@media (max-width:860px){
  .nh-admin{flex-direction:column;min-height:0}
  .nh-admin__side{width:auto;border-right:0;border-bottom:1px solid var(--nh-border)}
  .nh-admin__nav{flex-direction:row;flex-wrap:wrap}
  .nh-admin__nav a[aria-current="page"]{border-left:0;border-bottom:2px solid var(--nh-magenta)}
}
@media (max-width:640px){
  .nh-wrap{padding-inline:16px}
}
