/*
  data-states.css — estados genéricos de componente de dado (carregando,
  vazio, erro, sem permissão, dados parciais, sincronização atrasada,
  divergência, sucesso, ação bloqueada — 01-design-system.md) e o título de
  seção padrão. Compartilhado entre as 3 páginas da área Administrativa
  (perfis-permissoes, matriz-completa, auditoria) para não duplicar as
  mesmas regras em cada arquivo de página.
*/
.section-title {
  font-size: var(--font-size-lg);
  font-weight: 700;
  margin: var(--space-6) 0 var(--space-3);
}

.forbidden-state,
.error-state,
.loading-state,
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-2);
  padding: var(--space-5);
  background: var(--surface-card);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-card);
}

.forbidden-state {
  border-color: var(--status-disabled);
}

.error-state {
  border-color: var(--status-danger);
  color: var(--status-danger);
}

.data-state-toolbar {
  display: flex;
  gap: var(--space-2);
  margin-bottom: var(--space-3);
  flex-wrap: wrap;
}

.stale-note,
.diverging-note,
.offline-note {
  font-size: var(--font-size-xs);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-control);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.stale-note {
  background: rgba(181, 118, 0, 0.1);
  color: var(--status-warning);
}

.diverging-note {
  background: rgba(179, 38, 30, 0.08);
  color: var(--status-danger);
}

.offline-note {
  background: rgba(169, 183, 187, 0.18);
  color: var(--status-disabled-text, var(--text-secondary));
}
