/* Administração — usuários, grupos/permissões, auditoria, perfil,
   configurações — reestilização visual v2 (Sprint 27). Escopado por
   body[data-endpoint="..."], mesmo padrão das sprints 21-26. Carrega
   depois de css/modules/index.css (dashboard-crm.css/forms-admin.css/
   operations.css, sprint 8E) em base.html, então vence a cascata sem
   editar nenhum arquivo legado.

   Achados desta sprint:
   - users, new_user e edit_user não têm NENHUMA regra data-endpoint
     em forms-admin.css/operations.css (só um "body[data-endpoint="users"]
     .ds-table {background}" isolado) — mesma lacuna encontrada em telas
     de sprints anteriores que a migração da sprint 8E não cobriu. O
     .panel.ui-card dessas 3 telas dependia só do .panel genérico do
     style.css legado. Adicionado o cartão v2 completo aqui.
   - .button-link (usada em "Voltar"/"Ver permissões finais"/"Exportar
     CSV") tem uma cor própria (#0f766e, verde-azulado) diferente do azul
     --primary usado em todo o resto do app — resquício de uma paleta
     anterior. Só é usada nestas 3 telas (permissions.html,
     effective_permissions.html, audit/index.html), então realinhado
     aqui para o mesmo azul dos demais botões de ação, sem risco de
     vazar para outras telas.
   - Nenhum bug de display/grid ausente ou variável não definida
     encontrado nesta leva — .permission-grid, .settings-grid e os
     .panel de auditoria já tinham display/estrutura corretos, só
     usavam tokens --ds-*/cores antigas. */

body[data-endpoint="users"],
body[data-endpoint="new_user"],
body[data-endpoint="edit_user"],
body[data-endpoint="user_permissions"],
body[data-endpoint="user_effective_permissions"],
body[data-endpoint="permission_groups"],
body[data-endpoint="permission_group_new"],
body[data-endpoint="permission_group_edit"],
body[data-endpoint="permission_group_permissions"],
body[data-endpoint^="audit_"],
body[data-endpoint="profile"],
body[data-endpoint="settings"],
body[data-endpoint="configuration_center"] {
  font-family: var(--font-family-v2);
}

/* ---------- Badges (Ativo/Inativo, Permitido/Negado) ---------- */
body[data-endpoint="users"] .badge,
body[data-endpoint="permission_groups"] .badge,
body[data-endpoint="user_effective_permissions"] .badge {
  border-radius: var(--radius-pill);
  padding: 6px 12px;
  font-size: 12.5px;
  font-weight: 500;
}

/* ---------- Fix: .button-link com cor fora do padrão (ver nota) ---------- */
body[data-endpoint="user_permissions"] .button-link,
body[data-endpoint="user_effective_permissions"] .button-link,
body[data-endpoint^="audit_"] .button-link {
  background: var(--primary);
}
body[data-endpoint="user_permissions"] .button-link.secondary,
body[data-endpoint="user_effective_permissions"] .button-link.secondary,
body[data-endpoint^="audit_"] .button-link.secondary {
  background: #e8edf5;
  color: #26344a;
}

/* ---------- Fix: users/new_user/edit_user sem cartão v2 (ver nota) ---------- */
body[data-endpoint="users"] .panel.ui-card,
body[data-endpoint="new_user"] .panel.ui-card,
body[data-endpoint="edit_user"] .panel.ui-card {
  background: var(--color-surface-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
}
body[data-endpoint="users"] .panel-head h2,
body[data-endpoint="new_user"] .panel-head h2,
body[data-endpoint="edit_user"] .panel-head h2 {
  color: var(--color-text-primary);
}

/* ---------- Usuários: filtros e tabela ---------- */
body[data-endpoint="users"] .ds-filter-bar {
  background: var(--color-surface-alt);
  border-color: var(--color-border-subtle);
  border-radius: var(--radius-base);
}
body[data-endpoint="users"] .ds-label,
body[data-endpoint="new_user"] .ds-label,
body[data-endpoint="edit_user"] .ds-label {
  color: var(--color-text-secondary);
}
body[data-endpoint="users"] .ds-input,
body[data-endpoint="users"] .ds-select,
body[data-endpoint="new_user"] .ds-input,
body[data-endpoint="new_user"] .ds-select,
body[data-endpoint="edit_user"] .ds-input,
body[data-endpoint="edit_user"] .ds-select {
  border-color: var(--color-border);
  border-radius: var(--radius-base);
  color: var(--color-text-primary);
}
body[data-endpoint="users"] .ds-table th {
  color: var(--color-text-tertiary);
  border-bottom-color: var(--color-border-subtle);
  font-size: 12.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body[data-endpoint="users"] .ds-table td {
  color: var(--color-text-primary);
  border-bottom-color: var(--color-border-subtle);
  font-size: 13.5px;
}
body[data-endpoint="users"] .ds-table td small {
  color: var(--color-text-tertiary);
}
body[data-endpoint="users"] .ds-pagination {
  margin-top: 20px;
}
body[data-endpoint="users"] .ds-empty-state h2 {
  color: var(--color-text-primary);
}
body[data-endpoint="users"] .ds-empty-state p {
  color: var(--color-text-secondary);
}
/* Botão "Ações" por linha — mesmo padrão navy da sprint 24. */
body[data-endpoint="users"] .actions-menu .ds-button--outline {
  background: var(--color-navy);
  border-color: var(--color-navy);
  color: var(--color-surface-white);
}
body[data-endpoint="users"] .actions-menu .ds-button--outline:hover {
  background: #1a2b52;
  border-color: #1a2b52;
}

/* ---------- Exceções individuais / matriz de permissões ---------- */
body[data-endpoint="user_permissions"] .page-head h1,
body[data-endpoint="user_effective_permissions"] .page-head h1,
body[data-endpoint^="audit_"] .page-head h1 {
  color: var(--color-text-primary);
}
body[data-endpoint="user_permissions"] .page-head .eyebrow,
body[data-endpoint="user_effective_permissions"] .page-head .eyebrow,
body[data-endpoint^="audit_"] .page-head .eyebrow {
  color: var(--color-navy);
  font-size: 11px;
  letter-spacing: 0.08em;
  font-weight: 700;
}
body[data-endpoint="user_permissions"] .page-head p,
body[data-endpoint="user_effective_permissions"] .page-head p,
body[data-endpoint^="audit_"] .page-head p {
  color: var(--color-text-secondary);
}
body[data-endpoint="user_permissions"] .permission-group h3,
body[data-endpoint="permission_group_permissions"] .permission-group legend {
  color: var(--color-text-primary);
}
body[data-endpoint="user_permissions"] .permission-group-header,
body[data-endpoint="permission_group_permissions"] .permission-group-header {
  border-bottom-color: var(--color-border-subtle);
}
body[data-endpoint="user_permissions"] .permission-item,
body[data-endpoint="permission_group_permissions"] .permission-item {
  border-bottom-color: var(--color-border-subtle);
}
body[data-endpoint="user_permissions"] .permission-item small,
body[data-endpoint="permission_group_permissions"] .permission-item small,
body[data-endpoint="user_permissions"] legend small {
  color: var(--color-text-tertiary);
}
body[data-endpoint="permission_group_permissions"] .muted {
  color: var(--color-text-secondary);
}
body[data-endpoint="user_permissions"] .sticky-actions,
body[data-endpoint="permission_group_permissions"] .sticky-actions {
  background: rgba(246, 248, 252, 0.94);
  border-top: 1px solid var(--color-border-subtle);
}
body[data-endpoint="permission_group_permissions"] .panel.ds-filter-bar {
  background: var(--color-surface-alt);
  border-color: var(--color-border-subtle);
  border-radius: var(--radius-base);
}
body[data-endpoint="permission_group_permissions"] #permission-search.ds-input {
  border-color: var(--color-border);
  border-radius: var(--radius-base);
}

/* ---------- Grupos de usuários ---------- */
body[data-endpoint="permission_groups"] .panel {
  background: var(--color-surface-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
}
body[data-endpoint="permission_groups"] .ds-input,
body[data-endpoint="permission_groups"] .ds-select {
  border-color: var(--color-border);
  border-radius: var(--radius-base);
  color: var(--color-text-primary);
}
body[data-endpoint="permission_groups"] .ds-table th {
  color: var(--color-text-tertiary);
  border-bottom-color: var(--color-border-subtle);
  font-size: 12.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body[data-endpoint="permission_groups"] .ds-table td {
  color: var(--color-text-primary);
  border-bottom-color: var(--color-border-subtle);
  font-size: 13.5px;
}
body[data-endpoint="permission_groups"] .ds-table td small {
  color: var(--color-text-tertiary);
}

/* ---------- Formulário de grupo (novo/editar) ---------- */
body[data-endpoint="permission_group_new"] .ds-label,
body[data-endpoint="permission_group_edit"] .ds-label {
  color: var(--color-text-secondary);
}
body[data-endpoint="permission_group_new"] .ds-input,
body[data-endpoint="permission_group_new"] .ds-textarea,
body[data-endpoint="permission_group_edit"] .ds-input,
body[data-endpoint="permission_group_edit"] .ds-textarea {
  border-color: var(--color-border);
  border-radius: var(--radius-base);
  color: var(--color-text-primary);
}

/* ---------- Auditoria ---------- */
body[data-endpoint^="audit_"] .panel input,
body[data-endpoint^="audit_"] .panel select {
  border-color: var(--color-border);
  border-radius: var(--radius-base);
  color: var(--color-text-primary);
}
body[data-endpoint^="audit_"] .panel label {
  color: var(--color-text-secondary);
}
body[data-endpoint^="audit_"] th {
  color: var(--color-text-tertiary);
  font-size: 12.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
body[data-endpoint^="audit_"] td {
  color: var(--color-text-primary);
}
body[data-endpoint^="audit_"] .panel h2 {
  color: var(--color-text-primary);
}
body[data-endpoint^="audit_"] dt {
  color: var(--color-text-tertiary);
  font-size: 12.5px;
}
body[data-endpoint^="audit_"] dd {
  color: var(--color-text-primary);
}
body[data-endpoint^="audit_"] pre {
  border-radius: var(--radius-base);
}
body[data-endpoint="audit_index"] nav.panel {
  background: var(--color-surface-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  color: var(--color-text-secondary);
}

/* ---------- Perfil / Configurações ---------- */
body[data-endpoint="profile"] .ds-form-grid label,
body[data-endpoint="profile"] .form-grid label {
  color: var(--color-text-secondary);
}
body[data-endpoint="profile"] input {
  border-color: var(--color-border);
  border-radius: var(--radius-base);
  color: var(--color-text-primary);
}
body[data-endpoint="settings"] .panel,
body[data-endpoint="configuration_center"] .panel {
  background: var(--color-surface-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
}
body[data-endpoint="settings"] .panel-head h2,
body[data-endpoint="configuration_center"] .panel-head h2 {
  color: var(--color-text-primary);
}
body[data-endpoint="settings"] .panel-head p,
body[data-endpoint="configuration_center"] .panel-head p {
  color: var(--color-text-secondary);
}
body[data-endpoint="settings"] .muted,
body[data-endpoint="configuration_center"] .muted {
  color: var(--color-text-tertiary);
}

/* Filas de atendimento (Sprint 44) e Motivos de encerramento (Sprint 46)
   saíram deste arquivo no Prompt 13 — foram para
   tailwind-attendance-admin.src.css, mesmo padrão Tailwind-por-tela do
   Prompt 0/1/3/4/6-12 (ver STATUS_REPORT.md #15). */
