.ind-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-5); flex-wrap: wrap; } .ind-header h2 { font-size: 1.05rem; font-weight: 700; } .ind-header-actions { display: flex; gap: var(--space-3); } .ind-subtitle { font-size: 0.85rem; color: var(--text-muted); margin-top: 2px; } /* Input de competência () — o ícone/popup nativo do browser não segue o tema do site por padrão; color-scheme faz o Chrome/Edge desenharem os dois de acordo, em vez do ícone de calendário escuro-sobre-nada ilegível no fundo escuro do site. */ #ind-form-competencia { color-scheme: dark; cursor: pointer; } :root[data-theme="light"] #ind-form-competencia { color-scheme: light; } /* Botão "Selecionar arquivo" com nome do arquivo ao lado, no lugar do nativo (feio e sem padronização entre browsers) — mesmo padrão de .ips-file-field em importacao-plano-saude.css. */ .ind-file-field { position: relative; display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; } .ind-file-field__btn { display: inline-flex; align-items: center; gap: var(--space-2); cursor: pointer; flex-shrink: 0; } .ind-file-field__input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .ind-file-field__input:focus-visible + .ind-file-field__name { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--radius-sm); } .ind-file-field__name { font-size: 0.85rem; color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 320px; } .ind-file-field__remove { flex-shrink: 0; } .ind-empty { text-align: center; color: var(--text-muted); font-size: 0.9rem; padding: var(--space-6); border: 1px dashed var(--border-subtle); border-radius: var(--radius-md); } .ind-avisos { background: rgba(var(--danger-rgb), 0.1); border: 1px solid var(--danger); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin-bottom: var(--space-4); font-size: 0.85rem; } .ind-avisos ul { margin: var(--space-2) 0 0; padding-left: var(--space-5); } .ind-lote-bar { display: flex; align-items: center; gap: var(--space-3); background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin-bottom: var(--space-4); position: sticky; top: 0; z-index: 5; } .ind-lote-bar select { padding: 6px 10px; border-radius: var(--radius-sm); border: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--text-primary); } /* "Cada gerente representa um grupo" e "cada departamento tem sua própria meta de Departamento" (CLAUDE.md): a Meta de Departamento (uma por IndicadorDepartamento) e a Meta de cada Grupo (por gerente) são preenchidas de uma vez só nesta tabela, no início da revisão — não mais espalhadas pela lista de colaboradores, que fica livre pra ser filtrada por departamento (ver .ind-departamento-filtros, que também filtra esta própria tabela) sem afetar o cálculo de nenhuma meta. */ .ind-metas-section { margin-bottom: var(--space-5); } .ind-metas-section .ind-subtitle { margin-bottom: var(--space-3); } /* Aviso pra colaboradores cujo gerente ainda não está mapeado a nenhum IndicadorDepartamento (ver Configurações → Departamentos) — a linha de Meta de Departamento não tem select nesse caso, só o texto explicando. */ .ind-meta-sem-departamento-aviso { margin: 4px 0 0; font-size: 0.78rem; color: var(--danger); } /* Botões de filtro por departamento — substituem o antigo . */ .ind-checklist-departamento-select { width: 100%; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); border: 1px solid var(--border-subtle); background: var(--bg-canvas); color: var(--text-primary); font-size: 0.85rem; outline: none; margin-bottom: var(--space-2); } .ind-checklist-departamento-select:focus { border-color: var(--accent); } /* Fica ao lado do campo "Adicionar gerente" (.modal-field-row), que estica pra preencher a altura da linha por padrão (grid) — alinhado ao rodapé pra ficar na mesma altura do input, não do label. */ .ind-departamento-gerente-add-btn { align-self: end; } /* Sugestão clicável (nome de gerente visto na última apuração, ainda sem departamento) — reseta a aparência padrão de