/* ==========================================================================
   Recrutamento — folha de estilos única
   Direção: editorial sóbrio. Papel quente, verde-petróleo da marca (#15434b),
   um único acento latão usado com parcimônia. Tipografia de sistema (sem
   requisições externas, coerente com a política de privacidade do site).
   ========================================================================== */

:root{
  --paper:#f3f0e8;
  --card:#fffdf8;
  --ink:#1c2b2e;
  --muted:#5f6d6f;
  --line:#e2dccd;
  --field:#cfc8b8;
  --brand:#15434b;
  --brand-d:#0d2c32;
  --brand-t:#e8efee;
  --brass:#a9824a;
  --ok:#2f6b4f;
  --bad:#a63d2f;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ring:0 0 0 3px rgba(21,67,75,.22);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--brand);text-underline-offset:3px}
a:hover{color:var(--brand-d)}
:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.005em;line-height:1.2;margin:0}

/* ---------- controles compartilhados ---------- */
input:not([type=checkbox]):not([type=file]),select,textarea{
  background:#fff;border:1px solid var(--field);border-radius:6px;padding:10px 12px;min-width:0;
  transition:border-color .15s,box-shadow .15s}
input:not([type=checkbox]):not([type=file]):focus,select:focus,textarea:focus{outline:0;border-color:var(--brand);box-shadow:var(--ring)}
textarea{resize:vertical;line-height:1.45}
input[type=checkbox]{accent-color:var(--brand);width:16px;height:16px;margin:0}
input[type=file]{font-size:.9rem;max-width:100%}
input[type=file]::file-selector-button{font:inherit;font-weight:600;background:var(--brand-t);color:var(--brand);
  border:1px solid transparent;border-radius:6px;padding:8px 14px;margin-right:12px;cursor:pointer}
input[type=file]::file-selector-button:hover{border-color:var(--brand)}

button{background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:6px;padding:10px 18px;
  font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
button:hover{background:var(--brand-d);border-color:var(--brand-d)}
button.d{background:none;border-color:transparent;color:var(--bad);padding:10px 8px;font-weight:500;text-decoration:underline;text-underline-offset:3px}
button.d:hover{background:none;border-color:transparent;color:#7d261b}

@keyframes rise{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ==========================================================================
   CHAT (candidato)
   ========================================================================== */
body.chat{padding:28px 16px;min-height:100vh;min-height:100dvh}
.chat #w{max-width:600px;margin:0 auto;height:calc(100vh - 56px);height:calc(100dvh - 56px);max-height:880px;
  display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;
  box-shadow:0 22px 44px -30px rgba(13,44,50,.45)}

.chat .hd{display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--brand);color:#fff;border-bottom:3px solid var(--brass)}
.chat .mono{flex:none;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:4px;
  font:600 1.25rem/1 var(--serif)}
.chat .hd small{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.72;margin-bottom:2px}
.chat .hd h1{font-size:1.15rem;margin:0}

.chat #m{flex:1;overflow:auto;padding:22px 20px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain}
.chat .b,.chat .u{max-width:82%;padding:10px 14px;font-size:.95rem;line-height:1.5;animation:rise .18s ease-out;overflow-wrap:anywhere}
.chat .b{background:#f2efe6;color:var(--ink);border-radius:2px 14px 14px 14px;align-self:flex-start}
.chat .u{background:var(--brand);color:#fff;border-radius:14px 2px 14px 14px;align-self:flex-end}

.chat #ck{padding:10px 20px;background:#f7f3ea;border-top:1px solid var(--line);font-size:.78rem;line-height:1.45;color:var(--muted)}
.chat #ck button{margin-left:8px;padding:3px 12px;font-size:.78rem;font-weight:600;background:transparent;color:var(--brand);border-color:var(--brand)}
.chat #ck button:hover{background:var(--brand-t)}

.chat #c{padding:14px 20px 18px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:var(--card)}
.chat #c:empty{display:none}
.chat #c button{background:transparent;color:var(--brand);border:1px solid var(--brand);padding:10px 16px;text-align:left}
.chat #c button:hover{background:var(--brand-t)}
.chat #c button.s{color:var(--muted);border-color:var(--field)}
.chat #c button.s:hover{background:#f2efe6;border-color:var(--muted)}
.chat #c input:not([type=file]){flex:1;font-size:1rem}
.chat #c input ~ button:not(.s){background:var(--brand);color:#fff;text-align:center}
.chat #c input ~ button:not(.s):hover{background:var(--brand-d)}

@media (max-width:640px){
  body.chat{padding:0}
  .chat #w{height:100vh;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none}
  .chat .hd,.chat #m,.chat #ck,.chat #c{padding-left:16px;padding-right:16px}
  .chat .b,.chat .u{max-width:90%}
  .chat #c button{padding:12px 16px}
  .chat #c input:not([type=file]){flex-basis:100%}
}

/* ==========================================================================
   PAINEL (administração)
   ========================================================================== */

.admin main{max-width:1120px;margin:0 auto;padding:36px 28px 64px;flex:1;min-width:0;width:100%}
.admin h2{font-size:1.75rem;margin-bottom:22px;padding-bottom:14px;position:relative}
.admin h2::after{content:"";position:absolute;left:0;bottom:0;width:44px;height:2px;background:var(--brass)}
.admin h3{font-size:1.1rem}
.admin main > p{color:var(--muted);max-width:72ch;margin:-6px 0 22px}
.admin code{background:#ece6d7;padding:1px 6px;border-radius:3px;font-size:.88em}

form.r{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--line)}
form.r.novo{background:#eef2ef;border:1px dashed #b4c4c1;border-radius:8px;padding:16px;margin:0 0 10px}
form.r label{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;color:var(--muted);white-space:nowrap;cursor:pointer}
form.r small{color:var(--muted);font-size:.78rem;margin-left:auto}
form.r button:not(.d){min-width:92px}

.tw{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.admin table{width:100%;border-collapse:collapse}
.admin th{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:13px 16px;background:#f7f3ea;border-bottom:1px solid var(--line)}
.admin td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.admin tr:last-child td{border-bottom:0}
.admin tbody tr:hover td,.admin table:not(.kv) tr:hover td{background:#fbf9f3}
.admin td form{margin:0}
.admin td button.d{padding:4px 0}
.admin td a{font-weight:600}

.n{display:inline-block;min-width:2.8em;text-align:center;padding:2px 10px;border-radius:999px;font-weight:700;font-size:.85rem;font-variant-numeric:tabular-nums}
.n.hi{background:#e0eee6;color:var(--ok)}
.n.mid{background:#f6ecd6;color:#7a5a1c}
.n.lo{background:#f4dedb;color:var(--bad)}
.n.none{color:var(--muted);font-weight:500}

.score{font:600 1.05rem var(--sans);color:var(--muted);margin:-6px 0 18px}
.score b{font:600 1.6rem var(--serif);color:var(--ink);margin-left:6px}
.kw{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 22px;align-items:center}
.kw span{font-size:.82rem;padding:3px 10px;border-radius:999px;border:1px solid}
.kw .ok{color:var(--ok);border-color:#b9d6c6;background:#eef6f1}
.kw .miss{color:var(--bad);border-color:#e6c2bd;background:#fbefed;text-decoration:line-through;text-decoration-color:rgba(166,61,47,.45)}
.kw i{font-style:normal;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 4px 0 10px}
.kw i:first-child{margin-left:0}
.kv td:first-child{width:38%;color:var(--muted);font-size:.92rem}

/* login / instalação */
.auth{max-width:380px;margin:0 auto;padding:12vh 20px 40px}
.admin main.auth{max-width:380px;padding:12vh 20px 40px}
.auth .card{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:8px;padding:30px 28px 28px;box-shadow:0 22px 44px -32px rgba(13,44,50,.45)}
.auth small.eb{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.auth h1{font-size:1.65rem;margin-bottom:20px}
.auth p{margin:0 0 16px;color:var(--muted)}
.auth form{display:flex;flex-direction:column;gap:12px}
.auth input{width:100%}
.auth button{margin-top:4px;padding:12px 18px}

@media (max-width:720px){
  .admin main{padding:26px 16px 48px}
  .admin h2{font-size:1.5rem}
  form.r input:not([type=checkbox]),form.r select,form.r textarea{flex:1 1 100%!important;width:100%!important}
  form.r small{margin-left:0;flex-basis:100%}

  /* lista de candidatos vira cartões */
  .tw.stack{background:none;border:0;border-radius:0;overflow:visible}
  .stack table,.stack tbody{display:block}
  .stack thead{display:none}
  .stack tr{display:grid;grid-template-columns:1fr auto;gap:4px 12px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:10px}
  .stack td{display:block;padding:0;border:0;background:none!important}
  .stack td[data-l="#"]{display:none}
  .stack td[data-l="Nome"]{grid-column:1;font-size:1.02rem}
  .stack td[data-l="Nota"]{grid-column:2;grid-row:1;text-align:right}
  .stack td[data-l="Vaga"],.stack td[data-l="Data"]{grid-column:1/-1;color:var(--muted);font-size:.88rem}
  .stack td[data-l="Apagar"]{grid-column:1/-1;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}

  /* detalhe do candidato: pergunta acima da resposta */
  .kv,.kv tbody,.kv tr,.kv td{display:block;width:100%}
  .kv tr{padding:12px 16px;border-bottom:1px solid var(--line)}
  .kv tr:last-child{border-bottom:0}
  .kv td{padding:0;border:0}
  .kv td:first-child{width:100%;font-size:.8rem;margin-bottom:2px}
}

/* ==========================================================================
   DOCUMENTO (política de privacidade)
   ========================================================================== */
.doc .hd{background:var(--brand);color:#fff;border-bottom:3px solid var(--brass)}
.doc .hd div{max-width:760px;margin:0 auto;padding:16px 20px;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.doc main{max-width:760px;margin:0 auto;padding:48px 20px 72px}
.doc h1{font-size:2.1rem;line-height:1.15;margin-bottom:28px}
.doc .meta{max-width:none;background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:0 6px 6px 0;padding:16px 20px;margin:0 0 12px;font-size:.95rem}
.doc article{counter-reset:sec}
.doc h2{font-size:1.2rem;margin:36px 0 8px;padding-top:22px;border-top:1px solid var(--line);counter-increment:sec;display:flex;gap:12px;align-items:baseline}
.doc h2::before{content:counter(sec,decimal-leading-zero);font:600 .8rem var(--sans);letter-spacing:.08em;color:var(--brass)}
.doc p{margin:0 0 14px;max-width:68ch}
.doc .meta + h2{margin-top:30px}
.doc footer{margin-top:40px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted)}
@media (max-width:640px){
  .doc main{padding:32px 16px 56px}
  .doc h1{font-size:1.7rem}
  .doc .hd div{padding:14px 16px}
}

/* ==========================================================================
   AMPLIAÇÃO: dashboard, funil, candidato, mensagens, auditoria
   ========================================================================== */
.tw{overflow-x:auto}

.flash{background:#eef2ef;border:1px solid #b4c4c1;border-left:3px solid var(--brand);border-radius:6px;padding:12px 16px;margin:0 0 22px}
.erro{color:var(--bad)!important;background:#fbefed;border:1px solid #e6c2bd;border-radius:6px;padding:10px 12px}
.admin main > p.meta{margin:-8px 0 14px;font-size:.9rem}
.admin h2 small{font:500 1rem var(--sans);color:var(--muted)}
.voltar{margin:-10px 0 14px!important}
.vazio{color:var(--muted);text-align:center;padding:14px 0;margin:0}
.btn{display:inline-block;background:var(--brand);color:#fff;border:1px solid var(--brand);border-radius:6px;padding:10px 18px;font-weight:600;text-decoration:none}
.btn.s,button.s{background:transparent;color:var(--brand);border-color:var(--brand)}
.btn.s:hover,button.s:hover{background:var(--brand-t);color:var(--brand-d)}
button:disabled{opacity:.45;cursor:not-allowed}
.tag{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#ece6d7;color:var(--muted);border-radius:4px;padding:2px 6px}
.js .mv{display:none}

/* status */
.st{display:inline-block;font-size:.78rem;font-weight:700;padding:2px 10px;border-radius:999px;background:#ece6d7;color:#5a5240}
.st-novo{background:#e3ecf5;color:#27496d}.st-analise{background:#f6ecd6;color:#7a5a1c}.st-entrevista{background:#e8e1f3;color:#4b3a7a}
.st-proposta{background:#fbe6d6;color:#8a4a1c}.st-contratado{background:#e0eee6;color:var(--ok)}.st-reprovado{background:#f4dedb;color:var(--bad)}

/* dashboard */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0 0 28px}
.kpis div{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--brass);border-radius:8px;padding:14px 16px}
.kpis b{display:block;font:600 1.9rem/1.1 var(--serif);font-variant-numeric:tabular-nums}
.kpis span{color:var(--muted);font-size:.82rem}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;margin-bottom:6px}
.sec{margin:0 0 28px}.sec>h3{margin:0 0 12px}.sec>h3 small{font:400 .8rem var(--sans);color:var(--muted)}
.bar{display:grid;grid-template-columns:96px 1fr 36px;gap:10px;align-items:center;text-decoration:none;color:var(--ink);padding:5px 0}
.bar:hover{color:var(--brand)}.bar i{background:#ece6d7;border-radius:4px;height:14px;display:block;overflow:hidden}
.bar u{display:block;height:100%;background:var(--brand);border-radius:4px;min-width:2px;text-decoration:none}
.bar u.st-novo{background:#5b86b3}.bar u.st-analise{background:#c9a24d}.bar u.st-entrevista{background:#8a6fc0}.bar u.st-proposta{background:#d98a52}.bar u.st-contratado{background:var(--ok)}.bar u.st-reprovado{background:#c46a5e}
.bar b{text-align:right;font-variant-numeric:tabular-nums}
.chart{width:100%;height:auto;color:var(--brand)}.chart rect{fill:var(--brand)}.chart line{stroke:var(--line)}.chart text{font-size:7px;fill:var(--muted)}
.lista{list-style:none;margin:0;padding:0}
.lista li{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.lista li:last-child{border-bottom:0}.lista small,.lista time{color:var(--muted);font-size:.85rem;margin-left:auto}.lista li small+.n,.lista li small+time{margin-left:0}
.lista a{font-weight:600}
ul.plain{margin:0 0 14px;padding-left:20px;max-width:75ch}ul.plain li{margin-bottom:6px}

/* funil (kanban) */
.kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(172px,1fr);gap:12px;overflow-x:auto;padding-bottom:12px;align-items:start}
.kcol{background:#ece6d7;border-radius:8px;padding:10px;min-height:120px}
.kcol>h3{display:flex;justify-content:space-between;align-items:center;margin:2px 2px 10px}.kcol .st{font-family:var(--sans)}.kcol>h3 small{color:var(--muted);font:600 .85rem var(--sans)}
.kcard{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:8px}
.kcard>a{font-weight:600;display:block;overflow-wrap:anywhere}.kcard small{display:block;color:var(--muted);font-size:.8rem;margin-bottom:8px}
.kcard .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}.kcard form{margin:0}
.kcard select{padding:5px 8px;font-size:.82rem}.kcol .vazio{padding:6px 0}

/* ficha do candidato */
.head{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 22px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin:0 0 18px}
.head small{display:block;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.head .big{font:600 1.5rem var(--serif)}.head form{margin:0}
form.inl{display:flex;gap:6px}
form.stk{display:flex;flex-direction:column;gap:8px;margin:0 0 14px}form.stk button{align-self:flex-start}
form.stk label{font-size:.9rem;color:var(--muted);display:flex;gap:8px;align-items:center}
.r2{display:flex;gap:8px;flex-wrap:wrap}.r2 select{flex:1;min-width:180px}
.item{position:relative;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin:0 0 8px;overflow-wrap:anywhere}
.item small{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}.item .acts{float:right;display:flex;gap:10px;align-items:center}.item .acts form{margin:0}
.item summary{cursor:pointer;font-weight:600}.item p{margin:8px 0 0}
.bulkbar{border:0!important;padding:14px 0!important}
.pag{display:flex;gap:18px;margin-top:16px}
.admin td:first-child input[type=checkbox],.admin th:first-child input[type=checkbox]{vertical-align:middle}

@media (max-width:720px){
  .stack td[data-l="Sel"]{display:none}
  .stack td[data-l="Status"]{grid-column:1/-1}
  .kanban{grid-auto-columns:minmax(78vw,1fr)}
}
form.stk input:not([type=checkbox]),form.stk select,form.stk textarea{width:100%}
.item .acts{position:absolute;right:12px;top:10px;float:none}
.item:has(.acts){padding-right:110px}
.item .acts button.d{padding:0}


/* ==========================================================================
   PAINEL: menu lateral esquerdo + botão WhatsApp
   ========================================================================== */
.admin .shell{display:flex;min-height:100vh;align-items:stretch}
.admin .side{width:232px;flex:none;background:var(--brand);color:#fff;border-right:3px solid var(--brass);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.admin .brand{padding:22px 20px 18px;display:flex;flex-direction:column;line-height:1.15;border-bottom:1px solid rgba(255,255,255,.12)}
.admin .brand small{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7}
.admin .brand b{font:600 1.3rem var(--serif)}
.admin .side nav{display:flex;flex-direction:column;gap:2px;padding:14px 10px;flex:1}
.admin .side nav a{color:rgba(255,255,255,.8);text-decoration:none;font-weight:600;font-size:.93rem;padding:10px 12px;border-left:3px solid transparent;border-radius:0 6px 6px 0}
.admin .side nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.admin .side nav a.on{color:#fff;background:rgba(255,255,255,.14);border-left-color:var(--brass)}
.admin .side nav .grp{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);padding:18px 12px 6px;margin-top:8px;border-top:1px solid rgba(255,255,255,.12)}
.admin .side form.sair{margin:0;padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.12);display:flex;align-items:center;justify-content:space-between;gap:10px}
.admin .side .who{font-size:.84rem;color:rgba(255,255,255,.75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin .side form.sair button{min-width:0;background:none;border:1px solid rgba(255,255,255,.4);color:#fff;font-weight:500;font-size:.85rem;padding:6px 12px;border-radius:6px}
.admin .side form.sair button:hover{background:rgba(255,255,255,.12)}

/* botão WhatsApp */
a.wa{display:inline-flex;align-items:center;gap:7px;background:#128c4a;color:#fff;border:1px solid #128c4a;border-radius:6px;padding:8px 14px;font-weight:600;font-size:.9rem;text-decoration:none;line-height:1.2;margin-top:4px}
a.wa:hover{background:#0e7340;border-color:#0e7340;color:#fff}
a.wa.sm{padding:5px 10px;font-size:.82rem;margin:0}
.admin td a.wa{font-weight:600}
.acoes{display:flex;align-items:center;gap:14px;flex-wrap:wrap}

@media (max-width:720px){
  .admin .shell{flex-direction:column}
  .admin .side{width:100%;height:auto;position:static;border-right:0;border-bottom:3px solid var(--brass);overflow:visible}
  .admin .brand{padding:14px 16px 10px;border-bottom:0}
  .admin .side nav{flex-direction:row;flex:none;overflow-x:auto;gap:0;padding:0 10px 8px}
  .admin .side nav a{white-space:nowrap;padding:8px 10px;font-size:.86rem;border-left:0;border-bottom:3px solid transparent;border-radius:0}
  .admin .side nav a.on{background:none;border-bottom-color:var(--brass)}
  .admin .side nav .grp{display:none}
  .admin .side form.sair{padding:8px 16px 12px;border-top:1px solid rgba(255,255,255,.12)}
  .admin main{padding:26px 16px 48px}
}
