/* Arquivo de pagamento em lote (CNAB 240) — diálogo de geração.
   Duas listas lado a lado: quem entra no arquivo e quem fica de fora. A de
   fora é a que importa mais, e por isso não é um rodapé discreto: é uma
   coluna do mesmo tamanho, com o motivo de cada pessoa. */
.cnab-dialog { width: min(880px, calc(100vw - 40px)); max-width: calc(100vw - 40px); }
.cnab-dialog .form-grid { align-items: end; }

.cnab-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-top: 4px; }
.cnab-group { display: grid; align-content: start; gap: 10px; padding: 14px 15px; border: 1px solid var(--color-border, #e1e7f0); border-radius: 14px; background: #fff; }
.cnab-group.is-out { border-style: dashed; background: #fdfcfa; }
.cnab-group > header { display: grid; gap: 3px; }
.cnab-group > header strong { font-size: 13px; color: var(--color-text, #18253a); }
.cnab-group > header small { font-size: 11px; color: var(--color-text-soft, #75839a); line-height: 1.4; }
.cnab-group-total { font-size: 12px; font-weight: 750; color: #087a5b; }
.cnab-group.is-out .cnab-group-total { color: #9a6400; }

.cnab-people { display: grid; gap: 6px; max-height: 260px; overflow-y: auto; margin: 0; padding: 0; list-style: none; }
.cnab-people li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 8px 10px; border-radius: 9px; background: #f7f9fd; font-size: 12px; }
.cnab-people strong { min-width: 0; overflow-wrap: anywhere; color: var(--color-text, #18253a); font-weight: 650; }
.cnab-people span { color: #3f4d64; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cnab-people small { grid-column: 1 / -1; color: var(--color-text-soft, #75839a); font-size: 11px; line-height: 1.35; }
.cnab-people li.is-warning { background: #fff7e6; }
.cnab-people li.is-warning small { color: #9a6400; }
.cnab-people-empty { margin: 0; padding: 10px; border-radius: 9px; background: #f7f9fd; color: var(--color-text-soft, #75839a); font-size: 12px; }

.cnab-note { margin: 12px 0 0; padding: 11px 13px; border-radius: 10px; background: #eef4ff; color: #35507c; font-size: 11px; line-height: 1.5; }
.cnab-note code { padding: 1px 5px; border-radius: 5px; background: #dbe6fb; font-size: 11px; }

.cnab-dialog .form-actions { flex-wrap: wrap; }

@media (max-width: 720px) {
  .cnab-dialog { width: calc(100vw - 20px); }
  .cnab-groups { grid-template-columns: 1fr; }
  .cnab-dialog .form-actions > button { flex: 1 1 160px; }
}

/* Cadastro de pessoas — os três blocos de "Dados de pagamento".
   Conta salário e conta de destino são coisas diferentes e precisam parecer
   diferentes: empilhar 14 campos numa grade só faria o cadastro virar um
   formulário de banco, onde ninguém sabe qual conta está preenchendo. */
.payment-section .payment-block { margin-top: 16px; padding: 14px 15px; border: 1px solid var(--color-border, #e1e7f0); border-radius: 14px; background: #fbfcfe; }
.payment-section .payment-block:first-of-type { margin-top: 12px; }
.payment-section .payment-block > h4 { margin: 0 0 3px; color: var(--color-text, #18253a); font-size: 13px; font-weight: 750; }
.payment-section .payment-block-note { margin: 0 0 12px; line-height: 1.45; }
.payment-section .payment-block .form-grid { margin: 0; }

/* Conferência do bloco CNAB em Configurações → Empresa → Financeiro.
   Um cabeçalho errado não dá erro na tela: o arquivo sai, sobe no banco e
   volta recusado depois. Este aviso é a única chance de ver antes. */
.cnab-settings-check { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #eef2f8; color: var(--color-text-soft, #64748b); font-size: 12px; font-weight: 650; line-height: 1.45; }
.cnab-settings-check.is-ok { color: #087a5b; background: #e7f8f1; }
.cnab-settings-check.is-warning { color: #9a6400; background: #fff4d8; }
.cnab-settings-check.is-error { color: #b33b4b; background: #ffedef; }

/* Grupo dos já pagos: o comprovante cobre o líquido, então ficam fora do
   arquivo. É boa notícia, não pendência — por isso não usa o âmbar do grupo
   "fora dos dois arquivos". */
.cnab-group.is-done { border-color: #bfe6d6; background: #f4fbf8; }
.cnab-group.is-done .cnab-group-total { color: #087a5b; }

/* Vincular um comprovante avulso ao holerite que chegou depois. */
.payroll-link-proof { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.payroll-link-proof select { min-width: 190px; max-width: 100%; padding: 7px 10px; border: 1px solid #dce3ec; border-radius: 8px; background: #fff; color: var(--color-text, #18253a); font-size: 12px; }
.payroll-link-proof .outline-button { padding: 8px 14px; }
.payroll-link-empty { color: var(--color-text-soft, #75839a); font-size: 11px; }
@media (max-width: 720px) {
  .payroll-link-proof { width: 100%; }
  .payroll-link-proof select { flex: 1 1 100%; }
}
