/* simulation-banner.css — faixa persistente durante "visualizar como".
   Correção de contraste (Revisão 2 da Operação Inteligente, 10/08/2026):
   o fundo SÓLIDO var(--status-warning) + texto fixo #2a1c00 media 4.39:1
   contra o mínimo AA de 4.5:1 (achado real do axe-core, não estimado).
   Trocar só o texto por --text-primary NÃO resolve — contraste medido
   caiu para 3.44:1 (--text-primary é escuro, mas não o suficiente contra
   um fundo #b57600 sólido; ver cálculo em
   docs/simulador-atendimento/HANDOFF-CODEX-OPERACAO-INTELIGENTE-REVISAO-2.md,
   seção da Parte A). A correção que efetivamente atinge AA reaproveita o
   MESMO padrão já usado (e já verificado) pelos badges de permissão em
   components/badge.css: fundo levemente tingido de warning + texto
   var(--status-warning-text) — nenhuma cor nova foi criada, só a mesma
   dupla de tokens/técnica já existente no projeto. Verificado contra
   visiontech-claro (único tema com paleta confirmada — ver comentário no
   topo de theme/themes/visiontech-claro.css): 5.65:1 no texto do banner,
   6.88:1 no texto do botão — ambos acima do mínimo AA de 4.5:1. */
.simulation-banner {
  display: none;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  background: rgba(181, 118, 0, 0.14);
  border-bottom: 1px solid var(--status-warning);
  color: var(--status-warning-text);
  padding: var(--space-2) var(--space-5);
  font-size: var(--font-size-sm);
  font-weight: 600;
}

.simulation-banner[data-active="true"] {
  display: flex;
}

.simulation-banner button {
  background: rgba(255, 255, 255, 0.85);
  border: none;
  border-radius: var(--radius-control);
  padding: 6px 14px;
  font-weight: 700;
  cursor: pointer;
  color: var(--status-warning-text);
}

/* Etapa 1.5.2 (achado 4): botão "ocupado" durante a confirmação real do
   backend — nunca um segundo clique some silenciosamente, o cursor e o
   texto ("Saindo…", ver simulation-banner.js) deixam o estado explícito. */
.simulation-banner button:disabled {
  cursor: wait;
  opacity: 0.7;
}

/* Etapa 1.5.2 (achado 4): erro visível e recuperável quando a confirmação
   do backend falha — nunca escondido atrás de um catch silencioso. Usa o
   mesmo token --status-danger-text já usado pela variante somente-leitura
   logo abaixo, nenhuma cor nova. */
.simulation-banner__erro {
  font-weight: 600;
  color: var(--status-danger-text, #7a2318);
}

@media (max-width: 640px) {
  .simulation-banner {
    padding: var(--space-2) var(--space-3);
    flex-wrap: wrap;
  }
}

/* Patch layout/suporte/governança (14/08/2026), Parte C: variante da MESMA
   faixa persistente quando a simulação nasceu de "Visualizar como este
   usuário" (Central de suporte) — precisa ficar visualmente distinta da
   simulação livre (perfis e permissões), porque o significado é diferente
   (somente leitura, atrelada a um chamado, nunca concede Auditoria
   Estratégica). Reaproveita o token --status-danger já usado em outras
   telas para "bloqueado/atenção alta" (ver components/status-pill.js) em
   vez de criar uma cor nova — mesma técnica documentada no topo deste
   arquivo para a variante padrão. Contraste ainda não medido com axe-core
   nesta rodada (ver evidências de teste — Parte L); revisar antes de tratar
   esta variante como aprovada em contraste, igual à variante padrão acima. */
.simulation-banner--somente-leitura {
  background: rgba(192, 57, 43, 0.14);
  border-bottom: 1px solid var(--status-danger, #c0392b);
  color: var(--status-danger-text, #7a2318);
}

.simulation-banner--somente-leitura button {
  color: var(--status-danger-text, #7a2318);
}
