/* folhas-lote.css — fila de geração de folhas em lote (Relatórios), gestão de
   setores e o campo Setor com botão de atalho no cadastro de pessoa.

   A barra de progresso não é enfeite: um lote de 100 folhas leva minutos, e sem
   ela a única pista de que algo acontece seria o navegador ficando lento. */

.lote-painel { margin-top: 18px; }
.lote-cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.lote-cabecalho h2 { margin: 0 0 2px; font-size: 15px; color: var(--color-text); }
.lote-cabecalho p { margin: 0; font-size: 12px; color: var(--color-text-secondary); max-width: 62ch; }

.lote-lista { display: grid; gap: 12px; }
.lote-vazio { margin: 0; padding: 18px; border: 1px dashed var(--color-border); border-radius: var(--radius-card); background: var(--color-bg); color: var(--color-text-secondary); font-size: 13px; }

.lote-card { border: 1px solid var(--color-border); border-left: 3px solid var(--color-disabled); border-radius: var(--radius-card); background: var(--color-surface); padding: 14px 16px; display: grid; gap: 10px; box-shadow: var(--shadow-card); }
.lote-card.lote-processando { border-left-color: var(--color-primary); }
.lote-card.lote-concluida { border-left-color: var(--color-success); }
.lote-card.lote-interrompida { border-left-color: var(--color-warning); }
.lote-card.lote-erro { border-left-color: var(--color-danger); }

.lote-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.lote-card-head strong { display: block; font-size: 14px; color: var(--color-text); }
.lote-card-head small { display: block; font-size: 12px; color: var(--color-text-secondary); margin-top: 2px; }
.lote-status { font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--color-text-secondary); white-space: nowrap; }
.lote-processando .lote-status { color: var(--color-primary); }
.lote-concluida .lote-status { color: var(--color-success-text); }
.lote-interrompida .lote-status { color: var(--color-warning-text); }
.lote-erro .lote-status { color: var(--color-danger-text); }

.lote-progresso { height: 8px; border-radius: var(--radius-pill); background: var(--color-primary-soft); overflow: hidden; }
.lote-progresso-barra { height: 100%; border-radius: var(--radius-pill); background: var(--color-primary); transition: width .2s ease; }
.lote-concluida .lote-progresso-barra { background: var(--color-success); }
.lote-interrompida .lote-progresso-barra { background: var(--color-warning); }
.lote-erro .lote-progresso-barra { background: var(--color-danger); }

.lote-numeros { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 12px; color: var(--color-text-secondary); }
.lote-numeros b { color: var(--color-text); font-size: 13px; }

.lote-aviso { margin: 0; font-size: 12px; color: var(--color-warning-text); background: var(--color-warning-soft); border-radius: var(--radius-control); padding: 8px 10px; }
.lote-aviso-erro { color: var(--color-danger-text); background: var(--color-danger-soft); }

.lote-falhas { font-size: 12px; }
.lote-falhas summary { cursor: pointer; color: var(--color-warning-text); font-weight: 600; }
.lote-falhas ul { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; color: var(--color-text-secondary); }
.lote-falhas strong { color: var(--color-text); }

.lote-acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

/* Modo e recorte, na coluna de filtros de Relatórios. */
.report-batch-options { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; margin-top: 10px; }
.report-batch-options fieldset { border: 0; margin: 0; padding: 0; display: flex; gap: 12px; align-items: center; }
.report-batch-options legend { float: left; margin-right: 10px; font-size: 12px; font-weight: 600; color: var(--color-text-secondary); }
.report-batch-options label { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; color: var(--color-text); }
.report-batch-summary { margin: 8px 0 0; font-size: 12px; color: var(--color-text-secondary); }
.report-batch-summary b { color: var(--color-text); }

/* Gestão de setores — tabela em Configurações e lista dentro do diálogo. */
.sector-manager-dialog { max-width: 520px; }
.sector-manager-list { display: grid; gap: 8px; margin: 14px 0; max-height: 46vh; overflow: auto; }
.sector-manager-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--color-border); border-radius: var(--radius-control); padding: 10px 12px; }
.sector-manager-row strong { display: block; font-size: 13px; color: var(--color-text); }
.sector-manager-row small { display: block; font-size: 11px; color: var(--color-text-secondary); }
.company-sectors-panel { margin-top: 24px; }

/* Campo Setor: o select ocupa a linha e o ⚙ fica encostado nele, no mesmo
   desenho já usado pelo QR Code ao lado da matrícula. */
.field-with-action { display: flex; gap: 8px; align-items: center; }
.field-with-action select { flex: 1 1 auto; min-width: 0; margin-top: 0; }
.field-with-action .qr-inline-button { font-size: 16px; line-height: 1; }

/* Lista de envio para assinatura (Relatórios). Substituiu a pilha de folhas
   completas que era desenhada uma por colaborador — a pergunta aqui é "quem
   falta assinar", não "como ficou o dia 12". */
.report-signature-panel { margin-top: 18px; }
.report-sig-state { font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.report-sig-ausente { color: var(--color-text-secondary); }
.report-sig-pendente { color: var(--color-warning-text); }
.report-sig-assinado { color: var(--color-success-text); }
.report-sig-recusado { color: var(--color-danger-text); }
.report-sig-ok { color: var(--color-success-text); font-size: 12px; }
.report-sig-warn { color: var(--color-warning-text); font-size: 12px; cursor: help; }
.report-sig-muted { color: var(--color-text-secondary); font-size: 12px; }
.report-sig-open { color: var(--color-warning-text); font-size: 12px; font-weight: 600; display: block; }
.report-sig-detalhe { display: block; font-size: 11px; color: var(--color-text-secondary); margin-top: 2px; }

/* Dois botões no cabeçalho do painel (vincular em lote + novo). O .panel-heading
   é flex com justify-content:space-between, então os dois precisam de um
   invólucro próprio para não se afastarem um do outro. */
.panel-heading-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* Origem do número da folga compensatória, no histórico. Discreta: é contexto
   da decisão, não um segundo valor competindo com o que foi creditado. */
.comp-time-origin { display: block; font-style: normal; font-size: 11px; color: var(--color-text-secondary); margin-top: 2px; }
.comp-time-origin.adjusted { color: var(--color-warning-text); }

/* Registro de alterações, dentro do histórico de compensação. */
.comp-time-audit { margin-top: 18px; border-top: 1px solid var(--color-border); padding-top: 14px; }
.comp-time-audit h3 { margin: 0 0 2px; font-size: 13px; color: var(--color-text); }
.comp-time-audit-rows { display: grid; gap: 8px; margin-top: 10px; max-height: 34vh; overflow: auto; }
.comp-time-audit-row { border-left: 3px solid var(--color-border); padding: 6px 0 6px 10px; }
.comp-time-audit-row strong { display: block; font-size: 12px; color: var(--color-text); }
.comp-time-audit-row small { display: block; font-size: 11px; color: var(--color-text-secondary); }
.comp-time-audit-created { border-left-color: var(--color-success); }
.comp-time-audit-updated { border-left-color: var(--color-warning); }
.comp-time-audit-deleted { border-left-color: var(--color-danger); }
.report-sig-faltas { color: var(--color-warning-text); font-weight: 600; }
