/* ============================================================
   Contador One — Admissão One · estilos do módulo
   Complementa crm.css (reaproveitado). Apenas o que é específico
   da admissão: formulário progressivo, seções, anexos, checklist.
   Usa só os tokens do design system.
   ============================================================ */

/* ---- quadro em tela cheia: sem barra de rolagem, arraste p/ reposicionar ---- */
.crm-board {
  overflow-y: hidden;
  min-height: calc(100vh - 150px);
  cursor: grab;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.crm-board::-webkit-scrollbar { width: 0; height: 0; display: none; }
.crm-board.adm-grabbing { cursor: grabbing; }
.crm-board-flow, .crm-board-side { cursor: grab; }
.crm-board.adm-grabbing .crm-board-flow,
.crm-board.adm-grabbing .crm-board-side { cursor: grabbing; }
.crm-col { cursor: default; }

/* ---- card no board: foto do funcionário + indicadores ---- */
.adm-card-head { display: flex; align-items: center; gap: 10px; }
.adm-card-headtxt { min-width: 0; flex: 1; }
.adm-card-foto { flex: none; width: 38px; height: 38px; border-radius: 50%; background: var(--c1-azul-escuro) center/cover no-repeat; border: 1px solid var(--border); display: inline-flex; align-items: center; justify-content: center; color: #fff; font-size: 13px; font-weight: 700; }
.adm-card-foto-empty { background: var(--c1-cinza-200, #d6d2ca); color: var(--fg-muted); }
.adm-card-metas { display: flex; gap: 8px; margin-top: 9px; }
.adm-meta { display: inline-flex; align-items: center; gap: 4px; font-size: 11.5px; font-weight: 600; color: var(--fg-muted); background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 2px 9px; }
.adm-meta svg { color: var(--fg-subtle); }
.adm-tempo { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--fg-subtle); }
.adm-tempo svg { color: var(--fg-subtle); }

/* ---- formulário novo (modal) ---- */
.adm-modal-new { max-width: 680px; }
.adm-fgrid { grid-template-columns: 1fr 1fr; }
.adm-f-in { animation: admReveal .28s cubic-bezier(.2,.8,.2,1); }
@keyframes admReveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .adm-f-in { animation: none; } }

.adm-sec-h { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 700; color: var(--ink); letter-spacing: -0.01em; margin: 18px 0 4px; padding-top: 16px; border-top: 1px solid var(--border); }
.adm-fgrid > .adm-sec-h:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.adm-sec-letra { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: var(--radius-sm); background: var(--brand); color: #fff; font-size: 12px; font-weight: 700; flex: none; }
.adm-sec-letra.sm { width: 20px; height: 20px; font-size: 11px; }

.adm-f-in label { display: flex; align-items: center; gap: 6px; }
.adm-opt { font-size: 10.5px; font-weight: 600; color: var(--fg-subtle); text-transform: uppercase; letter-spacing: .04em; margin-left: auto; }
.adm-help { font-size: 11.5px; color: var(--fg-subtle); margin: -2px 0 2px; }

/* anexo (botão de upload) */
.adm-anexo { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; padding: 11px 13px; border: 1.5px dashed var(--border); border-radius: var(--radius-sm); background: var(--bg); color: var(--fg-muted); font: inherit; font-size: 13.5px; cursor: pointer; transition: border-color .15s, color .15s, background .15s; }
.adm-anexo:hover { border-color: var(--c1-laranja-300); color: var(--brand); }
.adm-anexo svg { color: var(--fg-subtle); flex: none; }
.adm-anexo span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-anexo.has { border-style: solid; border-color: var(--c1-verde); background: var(--success-bg); color: var(--ink); }
.adm-anexo.has svg { color: var(--c1-verde); }
.adm-anexo-ck { color: var(--c1-verde); }

/* foto do funcionário — botão no formulário RH + leitura no card */
.adm-foto-btn.has svg { color: var(--c1-verde); }
.adm-foto-ro { display: flex; align-items: center; gap: 12px; }
.adm-foto-thumb { flex: none; width: 64px; height: 64px; border-radius: 50%; background: var(--c1-cinza-100) center/cover no-repeat; border: 1px solid var(--border); }
.adm-foto-ro .adm-ro-open { font-size: 13px; font-weight: 600; color: var(--brand); text-decoration: none; }
.adm-foto-ro .adm-ro-open:hover { text-decoration: underline; }

/* barra de progresso do formulário */
.adm-form-prog { margin-bottom: 20px; }
.adm-form-prog-bar { height: 6px; border-radius: var(--radius-pill); background: var(--c1-cinza-100); overflow: hidden; }
.adm-form-prog-bar span { display: block; height: 100%; background: var(--brand); border-radius: var(--radius-pill); transition: width .3s cubic-bezier(.2,.8,.2,1); }
.adm-form-prog-t { font-size: 12px; color: var(--fg-muted); margin-top: 7px; font-weight: 500; }

/* ---- etiqueta de empresa / origem no card do quadro ---- */
.adm-card-emp-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: var(--brand); background: var(--c1-laranja-50); border-radius: var(--radius-pill); padding: 2px 9px; margin-bottom: 6px; max-width: 100%; }
.adm-card-link, .adm-via-link { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #25D366; }
.adm-via-link { color: #1eaf54; }

/* ---- modal do processo: leitura ---- */
.adm-left-h, .crm-m-left .adm-left-h { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--fg-subtle); margin-bottom: 14px; }
.adm-ro-anexo { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--ink); font-weight: 500; padding: 6px 10px; background: var(--success-bg); border: 1px solid var(--c1-verde); border-radius: var(--radius-sm); margin-top: 2px; }
.adm-ro-anexo svg { color: var(--c1-verde); flex: none; }

/* ---- checklist da fase atual ---- */
.adm-check-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px 18px; box-shadow: var(--shadow-sm); }
.adm-check-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.adm-check-head span:first-child { font-size: 12px; font-weight: 700; color: var(--ink); }
.adm-check-cnt { font-size: 11.5px; font-weight: 700; font-family: var(--font-mono); color: var(--fg-muted); background: var(--c1-cinza-100); border-radius: var(--radius-pill); padding: 2px 10px; }
.adm-check-cnt.done { color: #fff; background: var(--c1-verde); }
.adm-check-list { display: flex; flex-direction: column; gap: 4px; }
.adm-check { display: flex; align-items: flex-start; gap: 10px; padding: 9px 10px; border-radius: var(--radius-sm); cursor: pointer; font-size: 13.5px; color: var(--fg); transition: background .14s; }
.adm-check:hover { background: var(--bg-soft); }
.adm-check input { position: absolute; opacity: 0; width: 0; height: 0; }
.adm-check-box { width: 20px; height: 20px; flex: none; border: 1.5px solid var(--border); border-radius: var(--radius-xs); display: inline-flex; align-items: center; justify-content: center; color: transparent; transition: all .15s; margin-top: 1px; }
.adm-check.on .adm-check-box { background: var(--c1-verde); border-color: var(--c1-verde); color: #fff; }
.adm-check.on { color: var(--fg-muted); }
.adm-check-ok { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--c1-verde); margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }

.adm-coment .crm-cmt-new { margin-top: 12px; }

/* ---- read-only do anexo (coluna esquerda) com link p/ abrir/baixar ---- */
.adm-ro-anexo { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--fg); }
.adm-ro-anexo svg { color: var(--fg-subtle); flex: none; }
.adm-ro-anexo.has-file { background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 5px 8px; }
.adm-ro-open { display: inline-flex; align-items: center; gap: 7px; color: var(--brand); text-decoration: none; font-weight: 500; min-width: 0; }
.adm-ro-open span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-ro-open:hover { text-decoration: underline; }
.adm-ro-dl { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin-left: auto; border-radius: var(--radius-xs); color: var(--fg-muted); flex: none; }
.adm-ro-dl:hover { color: var(--brand); background: var(--surface); }

/* ---- painel Documentos & extração (fase Validação Empregado) ---- */
.adm-docs-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 16px 16px 18px; margin-bottom: 18px; box-shadow: var(--shadow-xs); }
.adm-docs-head { display: flex; align-items: flex-start; justify-content: space-between; }
.adm-docs-eyebrow { display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--brand); margin-bottom: 3px; }
.adm-docs-head h3 { font-size: 15px; font-weight: 700; margin: 0; color: var(--ink); letter-spacing: -.01em; }
.adm-docs-hint { font-size: 12px; color: var(--fg-muted); margin: 6px 0 13px; line-height: 1.45; }
.adm-docs-list { display: flex; flex-direction: column; gap: 7px; }
.adm-doc-row { display: flex; align-items: center; gap: 11px; width: 100%; text-align: left; background: var(--bg-soft); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 11px; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.adm-doc-row:hover { border-color: var(--c1-laranja-300); background: var(--surface); transform: translateY(-1px); }
.adm-doc-ic { width: 32px; height: 32px; flex: none; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--border); display: inline-flex; align-items: center; justify-content: center; color: var(--fg-muted); }
.adm-doc-row:hover .adm-doc-ic { color: var(--brand); border-color: var(--c1-laranja-300); }
.adm-doc-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.adm-doc-t { font-size: 13px; font-weight: 600; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-doc-sub { font-size: 11.5px; color: var(--fg-subtle); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-doc-st { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: var(--radius-pill); flex: none; white-space: nowrap; }
.adm-doc-st.pend { color: var(--fg-subtle); background: var(--c1-cinza-50, #f4f1ee); border: 1px solid var(--border); }
.adm-doc-st.lido { color: var(--c1-azul-escuro); background: color-mix(in srgb, var(--c1-azul-escuro) 9%, transparent); }
.adm-doc-st.ok { color: var(--c1-verde); background: color-mix(in srgb, var(--c1-verde) 11%, transparent); }
.adm-doc-st.alerta { color: var(--c1-dourado, #b8860b); background: color-mix(in srgb, var(--c1-dourado, #b8860b) 14%, transparent); }
.adm-doc-st.reanexar { color: var(--brand); background: var(--c1-laranja-50); border: 1px solid var(--c1-laranja-300); }
.adm-doc-chev { color: var(--fg-subtle); flex: none; }

/* item = linha + campos extraídos inline */
.adm-doc-item { border: 1px solid var(--border); border-radius: var(--radius-sm); overflow: hidden; background: var(--bg-soft); }
.adm-doc-item .adm-doc-row { border: 0; border-radius: 0; background: transparent; }
.adm-doc-item .adm-doc-row:hover { transform: none; }
.adm-doc-item.has-alert { border-color: color-mix(in srgb, var(--c1-dourado, #b8860b) 45%, var(--border)); }
.adm-doc-extra { border-top: 1px dashed var(--border); padding: 12px 13px 13px; background: var(--surface); }
.adm-doc-val { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; font-weight: 600; padding: 6px 10px; border-radius: var(--radius-sm); margin-bottom: 11px; line-height: 1.4; }
.adm-doc-val svg { flex: none; }
.adm-doc-val.ok { color: var(--c1-verde); background: color-mix(in srgb, var(--c1-verde) 10%, transparent); }
.adm-doc-val.alerta { color: var(--c1-dourado, #9a6a06); background: color-mix(in srgb, var(--c1-dourado, #b8860b) 13%, transparent); }
.adm-doc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 14px; }
.adm-doc-fld { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.adm-doc-fl { font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--fg-subtle); }
.adm-doc-fv { font-size: 13.5px; font-weight: 600; color: var(--ink); word-break: break-word; }
.adm-doc-fv.vazio { font-weight: 400; font-style: italic; color: var(--fg-subtle); }
.adm-doc-extra-f { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--border); }
.adm-doc-lock { display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 600; color: var(--fg-subtle); }
.adm-doc-edit { font-size: 12px; font-weight: 600; color: var(--brand); background: none; border: 0; cursor: pointer; padding: 4px 2px; }
.adm-doc-edit:hover { text-decoration: underline; }

/* ---- visualizador meia-tela (desktop) ---- */
.avw-ov { position: fixed; inset: 0; z-index: 260; background: var(--bg-soft); opacity: 0; visibility: hidden; transition: opacity .2s; }
.avw-ov.show { opacity: 1; visibility: visible; }
.avw-shell { display: flex; flex-direction: column; height: 100%; }
.avw-top { display: flex; align-items: center; gap: 14px; padding: 11px 18px; background: var(--surface); border-bottom: 1px solid var(--border); flex: none; }
.avw-back { width: 36px; height: 36px; flex: none; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--bg-soft); color: var(--fg-muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.avw-back:hover { color: var(--brand); border-color: var(--c1-laranja-300); }
.avw-top-t { flex: 1; min-width: 0; }
.avw-top-doc { font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; line-height: 1.2; }
.avw-top-sub { font-size: 12px; color: var(--fg-subtle); margin-top: 1px; }
.avw-top-actions { display: flex; align-items: center; gap: 8px; flex: none; }
.avw-split { display: flex; flex: 1; min-height: 0; }
.avw-left { flex: 0 0 52%; min-width: 0; background: #2a2724; display: flex; align-items: stretch; justify-content: center; overflow: hidden; position: relative; }
.avw-frame { width: 100%; height: 100%; border: 0; background: #fff; }
.avw-imgwrap { width: 100%; height: 100%; overflow: auto; display: flex; align-items: flex-start; justify-content: center; padding: 18px; }
.avw-imgwrap img { max-width: 100%; height: auto; border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); }
.avw-empty { margin: auto; text-align: center; color: rgba(255,255,255,.66); display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px; }
.avw-empty p { font-size: 13.5px; margin: 0; }
.avw-divider { flex: none; width: 8px; background: var(--border); cursor: col-resize; position: relative; display: flex; align-items: center; justify-content: center; transition: background .15s; }
.avw-divider:hover, .avw-divider:active { background: var(--c1-laranja-300); }
.avw-divider span { width: 2px; height: 30px; background: var(--surface); border-radius: 2px; opacity: .8; }
.avw-right { flex: 1; min-width: 320px; background: var(--bg-soft); display: flex; flex-direction: column; min-height: 0; }
.avw-rp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 18px 22px 12px; border-bottom: 1px solid var(--border); flex: none; }
.avw-eyebrow { display: block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--brand); margin-bottom: 3px; }
.avw-rp-head h3 { font-size: 17px; font-weight: 700; margin: 0; color: var(--ink); letter-spacing: -.01em; }
.avw-lib { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; padding: 6px 11px; border-radius: var(--radius-sm); border: 1px solid var(--border); background: var(--surface); color: var(--fg-muted); cursor: pointer; flex: none; transition: all .15s; }
.avw-lib:hover { color: var(--brand); border-color: var(--c1-laranja-300); }
.avw-lib.on { color: var(--brand); border-color: var(--c1-laranja-300); background: var(--c1-laranja-50); }
.avw-rp-body { flex: 1; overflow-y: auto; padding: 16px 22px; min-height: 0; }
.avw-rp-empty { color: var(--fg-muted); font-size: 13.5px; line-height: 1.5; padding: 26px 4px; text-align: center; }
.avw-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.avw-f { display: flex; flex-direction: column; gap: 5px; }
.avw-fl { font-size: 11.5px; font-weight: 600; color: var(--fg-muted); }
.avw-ro { font-size: 14px; font-weight: 600; color: var(--ink); padding: 8px 10px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); min-height: 36px; word-break: break-word; }
.avw-ro.vazio { color: var(--fg-subtle); font-weight: 400; font-style: italic; }
.avw-in { font-size: 14px; padding: 8px 10px; border: 1px solid var(--c1-laranja-300); border-radius: var(--radius-sm); background: var(--surface); color: var(--fg); }
.avw-in:focus { outline: none; border-color: var(--brand); box-shadow: var(--focus-ring); }
.avw-val { display: flex; gap: 9px; padding: 11px 13px; border-radius: var(--radius-sm); margin-bottom: 14px; font-size: 12.5px; line-height: 1.45; }
.avw-val svg { flex: none; margin-top: 1px; }
.avw-val.ok { background: color-mix(in srgb, var(--c1-verde) 10%, transparent); color: var(--c1-verde); }
.avw-val.alerta { background: color-mix(in srgb, var(--c1-dourado, #b8860b) 13%, transparent); color: var(--c1-dourado, #9a6a06); }
.avw-val b { display: block; margin-bottom: 3px; }
.avw-val ul { margin: 0; padding-left: 16px; }
.avw-lock-note { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--fg-subtle); margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.avw-rp-foot { display: flex; align-items: center; gap: 10px; padding: 13px 22px; border-top: 1px solid var(--border); background: var(--surface); flex: none; flex-wrap: wrap; }
.avw-status { font-size: 12.5px; color: var(--fg-muted); }
.avw-status.load { color: var(--brand); }
.avw-status.load::before { content: ""; display: inline-block; width: 12px; height: 12px; margin-right: 7px; border: 2px solid var(--c1-laranja-300); border-top-color: transparent; border-radius: 50%; vertical-align: -1px; animation: avwspin .7s linear infinite; }
@keyframes avwspin { to { transform: rotate(360deg); } }

@media (max-width: 1080px) {
  .crm-m-right { border-top: 1px solid var(--border); }
}
@media (max-width: 760px) {
  .avw-split { flex-direction: column; }
  .avw-left { flex-basis: 44% !important; }
  .avw-divider { width: auto; height: 8px; cursor: row-resize; }
  .avw-divider span { width: 30px; height: 2px; }
  .avw-fields { grid-template-columns: 1fr; }
}
